add multi language support

This commit is contained in:
2022-07-22 11:52:06 +08:00
parent ff85724982
commit ba1e96db26
25 changed files with 494 additions and 252 deletions

View File

@@ -1,13 +1,32 @@
import { useNavigate } from "react-router";
import Database from "./Database";
import { Tr, langCodeContext, LANG_OPTIONS } from "../translate";
import { useContext } from "react";
function Manage(props) {
let navigate = useNavigate();
const { langCode, setLangCode } = useContext(langCodeContext);
const codes = Object.keys(LANG_OPTIONS);
return (
<div className="page">
<h2>Manage</h2>
<p>Hi, {props.user.username}</p>
<h2>{Tr("Manage")}</h2>
<p>
{Tr("Hi")}, {props.user.username}
</p>
<select
onChange={(event) => {
setLangCode(codes[event.target.selectedIndex]);
}}
>
{codes.map((code) => {
const langOption = LANG_OPTIONS[code];
return <option key={code}>{langOption.name}</option>;
})}
</select>
{props.user.role === 0 && (
<div>
<button
@@ -15,14 +34,14 @@ function Manage(props) {
navigate("/manage/login");
}}
>
Login
{Tr("Login")}
</button>
<button
onClick={() => {
navigate("/manage/register");
}}
>
Register
{Tr("Register")}
</button>
</div>
)}
@@ -33,7 +52,7 @@ function Manage(props) {
navigate(`/manage/users/${props.user.id}`);
}}
>
Profile
{Tr("Profile")}
</button>
<button
onClick={() => {
@@ -48,15 +67,17 @@ function Manage(props) {
});
}}
>
Logout
{Tr("Logout")}
</button>
</div>
)}
<hr />
<div className="horizontal">
<button onClick={() => navigate("/manage/tags")}>Tags</button>
<button onClick={() => navigate("/manage/users")}>Users</button>
<button onClick={() => navigate("/manage/feedbacks")}>Feedbacks</button>
<button onClick={() => navigate("/manage/tags")}>{Tr("Tags")}</button>
<button onClick={() => navigate("/manage/users")}>{Tr("Users")}</button>
<button onClick={() => navigate("/manage/feedbacks")}>
{Tr("Feedbacks")}
</button>
</div>
<Database />
</div>