diff --git a/src/client/web/src/components/__test__/panes.test.tsx b/src/client/web/src/components/__test__/panes.test.tsx index 63051e9..17069f2 100644 --- a/src/client/web/src/components/__test__/panes.test.tsx +++ b/src/client/web/src/components/__test__/panes.test.tsx @@ -12,10 +12,11 @@ describe("Panes", () => { const coreState = newWithWorker(mockWorker); const panes = new Panes({ - panes: coreState.panes, - admin: coreState.admin, - login: coreState.login, - update: (updater: (prevState: ICoreState) => ICoreState) => {}, + panes: coreState.panes, + admin: coreState.admin, + login: coreState.login, + msg: coreState.msg, + update: (updater: (prevState: ICoreState) => ICoreState) => {}, }); updater().init(coreState); diff --git a/src/client/web/src/components/core_state.ts b/src/client/web/src/components/core_state.ts index 39fca7e..1d5ebbb 100644 --- a/src/client/web/src/components/core_state.ts +++ b/src/client/web/src/components/core_state.ts @@ -3,7 +3,6 @@ import { List, Set, Map } from "immutable"; import BgWorker from "../worker/upload.bg.worker"; import { FgWorker } from "../worker/upload.fg.worker"; -// import { Props as PanelProps } from "./root_frame"; import { BrowserProps } from "./browser"; import { PanesProps } from "./panes"; import { LoginProps } from "./pane_login"; @@ -19,14 +18,12 @@ export interface MsgProps { pkg: Map; } export interface ICoreState { - // panel: PanelProps; isVertical: boolean; browser: BrowserProps; panes: PanesProps; login: LoginProps; admin: AdminProps; msg: MsgProps; - // settings: SettingsProps; } export function newWithWorker(worker: IWorker): ICoreState { @@ -70,7 +67,7 @@ export function initState(): ICoreState { msg: { lan: "en_US", pkg: MsgPackage.get("en_US"), - } + }, }; } diff --git a/src/client/web/src/components/layouter.tsx b/src/client/web/src/components/layouter.tsx deleted file mode 100644 index 5001a2d..0000000 --- a/src/client/web/src/components/layouter.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import * as React from "react"; - -export interface Props { - isHorizontal: boolean; - elements: Array; -} - -export interface State {} -export class Layouter extends React.Component { - constructor(p: Props) { - super(p); - } - - horizontalLayout = (children: Array): Array => { - return children.map((child: JSX.Element, idx: number) => { - // if (idx === 0) { - // return {child}; - // } - return ( - - {child} - - - ); - }); - }; - - verticalLayout = (children: Array): Array => { - return this.horizontalLayout(children); - }; - - render() { - const elements = this.props.isHorizontal - ? this.horizontalLayout(this.props.elements) - : this.verticalLayout(this.props.elements); - return
{elements}
; - } -} diff --git a/src/client/web/src/components/pane_login.tsx b/src/client/web/src/components/pane_login.tsx index c89e34c..9a63ec3 100644 --- a/src/client/web/src/components/pane_login.tsx +++ b/src/client/web/src/components/pane_login.tsx @@ -1,5 +1,4 @@ import * as React from "react"; -import { List } from "immutable"; import { ICoreState, MsgProps } from "./core_state"; import { updater } from "./state_updater"; diff --git a/src/client/web/src/components/pane_settings.tsx b/src/client/web/src/components/pane_settings.tsx index 73ba5d7..9aeea92 100644 --- a/src/client/web/src/components/pane_settings.tsx +++ b/src/client/web/src/components/pane_settings.tsx @@ -63,6 +63,11 @@ export class PaneSettings extends React.Component { } }; + setLan = (lan: string) => { + updater().setLan(lan); + this.props.update(updater().updateMsg); + }; + render() { return (
@@ -70,7 +75,9 @@ export class PaneSettings extends React.Component {
-
Update Password
+
+ {this.props.msg.pkg.get("settings.pwd.update")} +
+ +
+
+
+
-
Logout
+
+ {this.props.msg.pkg.get("login.logout")} +
= Map({ "settings.pwd.old": "current password", "settings.pwd.new1": "new password", "settings.pwd.new2": "input again password", + "settings.chooseLan": "Choose Language", + "settings.pwd.update": "Update Password", settings: "Settings", admin: "Admin", "update.ok": "Succeeded to update", @@ -61,4 +63,6 @@ export const msgs: Map = Map({ "role.add": "Add Role", "role.name": "Role Name", "admin.roles": "Roles", + zhCN: "Chinese (simplified)", + enUS: "English (USA)", }); diff --git a/src/client/web/src/i18n/msger.ts b/src/client/web/src/i18n/msger.ts index f970b98..3538f6f 100644 --- a/src/client/web/src/i18n/msger.ts +++ b/src/client/web/src/i18n/msger.ts @@ -16,9 +16,9 @@ export class Msger { export class MsgPackage { static get(key: string): Map { switch (key) { - case "en-US": + case "en_US": return Map(enMsgs); - case "zh-CN": + case "zh_CN": return Map(cnMsgs); default: return Map(enMsgs); diff --git a/src/client/web/src/i18n/zh_CN.ts b/src/client/web/src/i18n/zh_CN.ts index aa328db..c276e52 100644 --- a/src/client/web/src/i18n/zh_CN.ts +++ b/src/client/web/src/i18n/zh_CN.ts @@ -38,6 +38,8 @@ export const msgs: Map = Map({ "settings.pwd.new1": "新密码", "settings.pwd.new2": "再次输入新密码", settings: "设置", + "settings.chooseLan": "选择语言", + "settings.pwd.update": "更新密码", admin: "管理", "update.ok": "更新成功", "update.fail": "更新失败", @@ -60,4 +62,6 @@ export const msgs: Map = Map({ "role.add": "新增角色", "role.name": "角色名字", "admin.roles": "角色列表", + "zhCN": "中文简体", + "enUS": "英语美国", });