diff --git a/src/common/menu/MenuManager.tsx b/src/common/menu/MenuManager.tsx index 8b09d51..9d92273 100644 --- a/src/common/menu/MenuManager.tsx +++ b/src/common/menu/MenuManager.tsx @@ -16,6 +16,7 @@ import { } from '@ant-design/icons'; import {LoginOutlined} from "@ant-design/icons/lib"; import Preference from "../model/preference/Preference"; +import Lang from "../model/global/Lang"; export default class MenuManager { @@ -70,22 +71,22 @@ export default class MenuManager { if (!preference.installed) { menuItems = [ - new MenuItem('安装网站', '/install/index', ), + new MenuItem(Lang.t("layout.install"), '/install/index', ), ]; } else if (user.role === UserRole.GUEST) { menuItems = [ - new MenuItem('登录', '/user/login', ), + new MenuItem(Lang.t("user.login"), '/user/login', ), ]; } else { - menuItems.push(new MenuItem('所有文件', '/matter/list', )) - menuItems.push(new MenuItem('我的分享', '/share/list', )) + menuItems.push(new MenuItem(Lang.t("layout.allFiles"), '/matter/list', )) + menuItems.push(new MenuItem(Lang.t("layout.myShare"), '/share/list', )) if (user.role === UserRole.ADMINISTRATOR) { - menuItems.push(new MenuItem('网站偏好', '/preference/index', )) - menuItems.push(new MenuItem('监控统计', '/dashboard/index', )) - menuItems.push(new MenuItem('用户列表', '/user/list', )) + menuItems.push(new MenuItem(Lang.t("layout.setting"), '/preference/index', )) + menuItems.push(new MenuItem(Lang.t("layout.dashboard"), '/dashboard/index', )) + menuItems.push(new MenuItem(Lang.t("layout.users"), '/user/list', )) } - menuItems.push(new MenuItem('退出登录', '/user/logout', )) + menuItems.push(new MenuItem(Lang.t("layout.logout"), '/user/logout', )) } diff --git a/src/common/model/global/i18n/LangEn.ts b/src/common/model/global/i18n/LangEn.ts index da0a0d7..ac84846 100644 --- a/src/common/model/global/i18n/LangEn.ts +++ b/src/common/model/global/i18n/LangEn.ts @@ -23,6 +23,9 @@ let LangEn = { configMysql: "Config MySQL", port: "Port", schema: "Schema", + username: "Username", + password: "Password", + charset: "Charset", mysqlConnectionPass: "Connect MySQL Ok", testMysqlConnection: "Tes MySQL Connection", notice: "Notice", @@ -59,8 +62,9 @@ let LangEn = { configAdminFirst: "Please config administrator first.", createAdminSuccess: "Create administrator successfully!", validateAdminSuccess: "Validate administrator successfully!", - enterHome: "Click to enter home", - charset: "Charset", + pressToHome: "Click the button below to enter home。", + enterHome: "Finish And Enter Home", + finish: "Finish", }, layout: { allFiles: "Files", @@ -203,7 +207,7 @@ let LangEn = { newPassword: "New Password", confirmNewPassword: "Confirm New Password", cannotBeNull: "Cannot be null!", - passwordNotSame: "Old and new password not same!", + passwordNotSame: "passwords above not same!", role: "Role", singleFileSizeLimit: "Single File Limit", totalFileSizeLimit: "Total Space Limit", diff --git a/src/common/model/global/i18n/LangZh.ts b/src/common/model/global/i18n/LangZh.ts index 0e4eda0..99668fe 100644 --- a/src/common/model/global/i18n/LangZh.ts +++ b/src/common/model/global/i18n/LangZh.ts @@ -23,6 +23,9 @@ let LangZh = { configMysql: "配置MySQL", port: "端口", schema: "库名", + username: "用户名", + password: "密码", + charset: "编码", mysqlConnectionPass: "MySQL连接测试通过", testMysqlConnection: "测试MySQL连接", notice: "注意", @@ -51,7 +54,7 @@ let LangZh = { useOrCreateAdministrator: "你可以使用其中一位管理员的用户名和密码进行验证,或者创建一位新的管理员账户", validateAdministrator: "验证管理员账户", createAdministrator: "创建管理员账户", - administratorUsername: "创建管理员账户", + administratorUsername: "管理员用户名", administratorPassword: "管理员密码", administratorRePassword: "再次输入密码", usernameRule: "由于用户名将作为文件上传的目录,因此只允许字母数字以及\"_\"。", @@ -59,8 +62,10 @@ let LangZh = { configAdminFirst: "请首先配置管理员信息!", createAdminSuccess: "创建管理员成功!", validateAdminSuccess: "验证管理员成功!", - enterHome: "点击进入首页", - charset: "编码", + pressToHome: "点击下方按钮来完成安装过程并进入首页。", + enterHome: "完成,并进入首页", + + finish: "完成", }, layout: { allFiles: "所有文件", diff --git a/src/common/model/user/UserStatus.ts b/src/common/model/user/UserStatus.ts index d9f93c0..fd8d816 100644 --- a/src/common/model/user/UserStatus.ts +++ b/src/common/model/user/UserStatus.ts @@ -1,5 +1,6 @@ import ColorSelectionOption from '../base/option/ColorSelectionOption'; import Color from "../base/option/Color"; +import Lang from "../global/Lang"; enum UserStatus { @@ -11,12 +12,12 @@ let UserStatuss: UserStatus[] = Object.keys(UserStatus).map(k => k as UserStatus let UserStatusMap: { [key in keyof typeof UserStatus]: ColorSelectionOption } = { OK: { - 'name': '正常', + 'name': Lang.t("user.statusActive"), 'value': 'OK', 'color': Color.SUCCESS, }, DISABLED: { - 'name': '禁用', + 'name': Lang.t("user.statusDisabled"), 'value': 'DISABLED', 'color': Color.DANGER, }, diff --git a/src/pages/install/Index.tsx b/src/pages/install/Index.tsx index 31a99f0..cff20fc 100644 --- a/src/pages/install/Index.tsx +++ b/src/pages/install/Index.tsx @@ -12,6 +12,7 @@ import MysqlPanel from "./widget/MysqlPanel"; import CreateTablePanel from "./widget/CreateTablePanel"; import SetAdminPanel from "./widget/SetAdminPanel"; import FinishPanel from "./widget/FinishPanel"; +import Lang from "../../common/model/global/Lang"; const {TabPane} = Tabs; @@ -56,7 +57,7 @@ export default class Index extends TankComponent { return (
- + @@ -66,13 +67,13 @@ export default class Index extends TankComponent { this.activeName = activeKey this.updateUI() }}> - + { this.activeName = "second" this.updateUI() }}/> - + { this.activeName = "first" this.updateUI() @@ -81,7 +82,7 @@ export default class Index extends TankComponent { this.updateUI() }}/> - + { this.activeName = "second" this.updateUI() @@ -90,7 +91,7 @@ export default class Index extends TankComponent { this.updateUI() }}/> - + diff --git a/src/pages/install/widget/CreateTablePanel.tsx b/src/pages/install/widget/CreateTablePanel.tsx index bb9d0a6..fea4910 100644 --- a/src/pages/install/widget/CreateTablePanel.tsx +++ b/src/pages/install/widget/CreateTablePanel.tsx @@ -1,6 +1,6 @@ import React from 'react'; import './CreateTablePanel.less'; -import {Button, Spin, Tag} from 'antd'; +import {Alert, Button, Spin, Tag} from 'antd'; import Install from "../../../common/model/install/Install"; import TankComponent from "../../../common/component/TankComponent"; import Color from "../../../common/model/base/option/Color"; @@ -9,9 +9,11 @@ import { ArrowRightOutlined, CheckOutlined, FormatPainterOutlined, + SoundOutlined, SyncOutlined } from "@ant-design/icons/lib"; import MessageBoxUtil from "../../../common/util/MessageBoxUtil"; +import Lang from "../../../common/model/global/Lang"; interface IProps { @@ -67,7 +69,7 @@ export default class CreateTablePanel extends TankComponent { that.updateUI() install.httpCreateTable(function () { - MessageBoxUtil.success("建表成功!") + MessageBoxUtil.success(Lang.t("install.createTableSuccess")) }, null, function () { that.createTableLoading = false @@ -91,7 +93,7 @@ export default class CreateTablePanel extends TankComponent { this.props.onNextStep() } else { - MessageBoxUtil.error("请首先完成建表") + MessageBoxUtil.error(Lang.t("install.crateTableFirst")) } } @@ -118,25 +120,25 @@ export default class CreateTablePanel extends TankComponent { { (tableInfo.tableExist && tableInfo.missingFields.length === 0) && ( - 已安装 + {Lang.t("install.installed")} ) } { (tableInfo.tableExist && tableInfo.missingFields.length > 0) && ( - 已安装,字段缺失 + {Lang.t("install.installedButMissing")} ) } { !tableInfo.tableExist && ( - 待安装 + {Lang.t("install.toBeInstalled")} ) }
- 所有字段: + {Lang.t("install.allFields")}: { tableInfo.allFields.map(function (field: any, j: number) { @@ -153,7 +155,7 @@ export default class CreateTablePanel extends TankComponent { { (tableInfo.tableExist && tableInfo.missingFields.length > 0) && (
- 缺失字段: + {Lang.t("install.missingFields")}: { tableInfo.missingFields.map(function (field: any, j: number) { @@ -174,12 +176,31 @@ export default class CreateTablePanel extends TankComponent { }) } + +
+ +
{Lang.t("install.tableNotice")}
+
+
    +
  1. {Lang.t("install.tableNotice1")}
  2. +
  3. {Lang.t("install.tableNotice2")}
  4. +
  5. {Lang.t("install.tableNotice3")}
  6. +
  7. {Lang.t("install.tableNotice4")}
  8. +
+
+
} + type="info" + /> +
+ +
diff --git a/src/pages/install/widget/FinishPanel.tsx b/src/pages/install/widget/FinishPanel.tsx index fa0927e..729169d 100644 --- a/src/pages/install/widget/FinishPanel.tsx +++ b/src/pages/install/widget/FinishPanel.tsx @@ -4,6 +4,7 @@ import Install from "../../../common/model/install/Install"; import TankComponent from "../../../common/component/TankComponent"; import {Button, Result} from "antd"; import {HomeOutlined} from "@ant-design/icons/lib"; +import Lang from "../../../common/model/global/Lang"; interface IProps { @@ -63,12 +64,12 @@ export default class FinishPanel extends TankComponent {
} type="primary" key="home" loading={that.loading} onClick={this.finish.bind(this)}> - 完成,并进入首页 + {Lang.t("install.enterHome")} ]} /> diff --git a/src/pages/install/widget/MysqlPanel.tsx b/src/pages/install/widget/MysqlPanel.tsx index 05ac340..3665d3d 100644 --- a/src/pages/install/widget/MysqlPanel.tsx +++ b/src/pages/install/widget/MysqlPanel.tsx @@ -6,6 +6,7 @@ import TankComponent from "../../../common/component/TankComponent"; import {FormInstance} from "antd/lib/form"; import {ArrowRightOutlined, DisconnectOutlined, LinkOutlined, SoundOutlined} from "@ant-design/icons/lib"; import MessageBoxUtil from "../../../common/util/MessageBoxUtil"; +import Lang from "../../../common/model/global/Lang"; interface IProps { install: Install @@ -48,7 +49,7 @@ export default class MysqlPanel extends TankComponent { install.httpVerify(function () { install.verified = true - MessageBoxUtil.success("MySQL连接测试通过!") + MessageBoxUtil.success(Lang.t("install.mysqlConnectionPass")) that.updateUI() }, function (msg: any) { @@ -73,7 +74,7 @@ export default class MysqlPanel extends TankComponent { this.props.onNextStep() } else { - MessageBoxUtil.error("请首先验证数据库连接") + MessageBoxUtil.error(Lang.t("install.validateMysqlFirst")) } @@ -108,55 +109,55 @@ export default class MysqlPanel extends TankComponent { label="MySQL host" name="mysqlHost" initialValue={install.mysqlHost} - rules={[{required: true, message: '请输入MySQL host!'}]} + rules={[{required: true, message: Lang.t("inputRequired")}]} > @@ -100,20 +101,20 @@ export default class PhaseCreatePanel extends TankComponent { ({ validator(rule, value) { if (!value || getFieldValue('adminPassword') === value) { return Promise.resolve(); } - return Promise.reject('两次输入密码不匹配!'); + return Promise.reject(Lang.t("user.passwordNotSame")); }, }), ]} @@ -125,14 +126,14 @@ export default class PhaseCreatePanel extends TankComponent {
diff --git a/src/pages/install/widget/inner/PhaseSelectingPanel.tsx b/src/pages/install/widget/inner/PhaseSelectingPanel.tsx index 2987077..3eed394 100644 --- a/src/pages/install/widget/inner/PhaseSelectingPanel.tsx +++ b/src/pages/install/widget/inner/PhaseSelectingPanel.tsx @@ -11,6 +11,7 @@ import { SyncOutlined, UserAddOutlined } from "@ant-design/icons/lib"; +import Lang from "../../../../common/model/global/Lang"; interface IProps { install: Install @@ -70,7 +71,7 @@ export default class PhaseSelectingPanel extends TankComponent {
- 检测到系统中已经存在有以下管理员: + {Lang.t("install.detectAdministrator")}:
{ install.adminList.map(function (admin: User, index: number) { @@ -83,7 +84,7 @@ export default class PhaseSelectingPanel extends TankComponent { }
- 你可以使用其中一位管理员的用户名和密码进行验证,或者创建一位新的管理员账户 + {Lang.t("install.useOrCreateAdministrator")}
@@ -92,30 +93,30 @@ export default class PhaseSelectingPanel extends TankComponent { onClick={this.refreshAdminList.bind(this)} loading={this.loadingAdminList} > - 刷新 + {Lang.t("refresh")}
diff --git a/src/pages/install/widget/inner/PhaseVerifyPanel.tsx b/src/pages/install/widget/inner/PhaseVerifyPanel.tsx index 586a326..4b9a480 100644 --- a/src/pages/install/widget/inner/PhaseVerifyPanel.tsx +++ b/src/pages/install/widget/inner/PhaseVerifyPanel.tsx @@ -5,6 +5,7 @@ import Install from "../../../../common/model/install/Install"; import {Button, Form, Input} from "antd"; import {ArrowLeftOutlined, SendOutlined} from "@ant-design/icons/lib"; import MessageBoxUtil from "../../../../common/util/MessageBoxUtil"; +import Lang from "../../../../common/model/global/Lang"; interface IProps { @@ -46,7 +47,7 @@ export default class PhaseVerifyPanel extends TankComponent { install.adminPassword = values["adminPassword"] install.httpValidateAdmin(function () { - MessageBoxUtil.success("管理员验证成功!") + MessageBoxUtil.success(Lang.t("install.validateAdminSuccess")) that.props.onSuccess() }) @@ -72,7 +73,7 @@ export default class PhaseVerifyPanel extends TankComponent {
-

验证管理员账户

+

{Lang.t("install.validateAdministrator")}

{ }} > @@ -104,14 +105,14 @@ export default class PhaseVerifyPanel extends TankComponent {