)}
diff --git a/web/src/component/UserProfile.js b/web/src/component/UserProfile.js
index 926d095..3eb66ae 100644
--- a/web/src/component/UserProfile.js
+++ b/web/src/component/UserProfile.js
@@ -1,6 +1,7 @@
-import { useState, useEffect } from "react";
+import { useState, useEffect, useContext } from "react";
import { useParams } from "react-router";
import ReviewEntry from "./ReviewEntry";
+import { Tr, tr, langCodeContext } from "../translate";
function UserProfile(props) {
let params = useParams();
@@ -15,6 +16,7 @@ function UserProfile(props) {
active: false,
avatar_id: 0,
});
+ const { langCode } = useContext(langCodeContext);
function getReviews() {
fetch("/api/v1/get_reviews_by_user", {
@@ -63,7 +65,7 @@ function UserProfile(props) {
return (
-
User Profile
+
{Tr("User Profile")}
- Save Username
+ {Tr("Save username")}
setOldPassword(e.target.value)}
/>
setNewPassword(e.target.value)}
/>
setNewPasswordConfirm(e.target.value)}
/>
-
Reviews
+
{Tr("Reviews")}
{reviews.map((review) => (
))}
diff --git a/web/src/translate/index.js b/web/src/translate/index.js
new file mode 100644
index 0000000..7590b3b
--- /dev/null
+++ b/web/src/translate/index.js
@@ -0,0 +1,44 @@
+import { createContext, renderToString } from "react";
+import MAP_zh_CN from "./zh_CN";
+
+const LANG_OPTIONS = {
+ "en-US": {
+ name: "English",
+ langMap: {},
+ matches: ["en-US", "en"],
+ },
+ "zh-CN": {
+ name: "中文(简体)",
+ langMap: MAP_zh_CN,
+ matches: ["zh-CN", "zh"],
+ },
+};
+
+const langCodeContext = createContext("en-US");
+
+function tr(text, langCode) {
+ const option = LANG_OPTIONS[langCode];
+ if (option === undefined) {
+ return text;
+ }
+ const langMap = LANG_OPTIONS[langCode].langMap;
+
+ const translatedText = langMap[text.toLowerCase()];
+ if (translatedText === undefined) {
+ return text;
+ }
+
+ return translatedText;
+}
+
+function Tr(text) {
+ return (
+
+ {({ langCode }) => {
+ return tr(text, langCode);
+ }}
+
+ );
+}
+
+export { tr, Tr, LANG_OPTIONS, langCodeContext };
diff --git a/web/src/translate/zh_CN.js b/web/src/translate/zh_CN.js
new file mode 100644
index 0000000..38142b4
--- /dev/null
+++ b/web/src/translate/zh_CN.js
@@ -0,0 +1,105 @@
+const LANG_zh_CN = {
+ "feeling luckly": "随机",
+ files: "文件",
+ folders: "文件夹",
+ manage: "管理",
+ "manage user": "用户管理",
+ active: "激活",
+ "search files": "搜索文件",
+ "search folders": "搜索文件夹",
+ "enter filename": "输入文件名",
+ "enter folder name": "输入文件名",
+ search: "搜索",
+ "last page": "上一页",
+ all: "全部",
+ "loading...": "加载中...",
+ "next page": "下一页",
+ "search polders": "搜索文件夹",
+ "share with others!": "分享给好友!",
+ "click the filename below to enjoy music!": "点击下面的文件名开始享受音乐!",
+ "share link": "分享链接",
+ hi: "您好",
+ profile: "个人信息",
+ "user profile": "用户信息",
+ "save username": "更改用户名",
+ save: "保存",
+ reset: "重置",
+ "old password": "旧密码",
+ "new password": "新密码",
+ "confirm new password": "确认新密码",
+ "change password": "更改密码",
+ reviews: "评论",
+ review: "评论",
+ on: "在",
+ edit: "编辑",
+ "modified on": "修改于",
+ share: "分享",
+ delete: "删除",
+ remove: "移除",
+ "file details": "文件详情",
+ download: "下载",
+ logout: "登出",
+ tags: "标签",
+ "add tag": "添加标签",
+ "select a tag": "选择一个标签",
+ "review page": "评论页面",
+ submit: "提交",
+ users: "用户",
+ feedbacks: "反馈",
+ feedback: "反馈",
+ date: "时间",
+ action: "操作",
+ "new tag name": "新标签名",
+ "new tag description": "新标签描述",
+ "update database": "更新索引",
+ "updating...": "更新中...",
+ refresh: "刷新",
+ filename: "文件名",
+ "folder name": "文件夹名",
+ size: "大小",
+ "player status": "播放状态",
+ play: "播放",
+ stop: "停止",
+ "stop timer": "定时停止",
+ loop: "循环",
+ raw: "无损",
+ prepare: "预转码",
+ "file size": "文件大小",
+ login: "登陆",
+ register: "注册",
+ "play: play using browser player.": "播放: 使用浏览器播放",
+ "info for more actions.": "详细: 查看更多相关信息",
+ info: "详细",
+ close: "关闭",
+ "please enter username and password": "请输入用户名和密码",
+ username: "用户名",
+ password: "密码",
+ "please fill out all fields": "请完整填写所有信息",
+ "password do not match": "两次密码不一致",
+ "password updated successfully!": "密码已成功更新!",
+ role: "身份",
+ user: "用户",
+ admin: "管理员",
+ anonymous: "匿名",
+ "select a role": "选择身份",
+ "walk path": "遍历目录",
+ "pattern wav flac mp3": "拓展名 wav flac mp3",
+ "review updated": "已修改评论",
+ "review deleted": "已删除评论",
+ "edit review": "编辑评论",
+ view: "查看",
+ "tag updated successfully": "标签修改成功",
+ "tag deleted successfully": "标签删除成功",
+ "edit tag": "编辑标签",
+ id: "编号",
+ "created by": "创建者",
+ "create tag": "创建新标签",
+ name: "名称",
+ description: "描述",
+ "are you sure you want to delete this file?": "你确定要删除这个文件吗?",
+ "filename updated": "已修改文件名",
+ "please select a tag": "请选择一个标签",
+ "files in folder": "文件夹内",
+};
+
+export default LANG_zh_CN;