diff --git a/src/locales/en.yml b/src/locales/en.yml index 628b74df..3e289e5d 100644 --- a/src/locales/en.yml +++ b/src/locales/en.yml @@ -98,3 +98,38 @@ settingsControl: gamepadDeadzone: Gamepad Deadzone app: unsaved: '*' +appMenu: + file: + title: File + items: + new: New + open: Open + save: Save + saveAs: Save As + recent: Recent Files + location: + title: Location + items: + openDataFolder: Open Data Folder + openProjectFolder: Open Project Folder + export: + title: Export + items: + exportAsSVGByAll: Export as SVG (All) + exportAsMarkdownBySelected: Export as Markdown (Selected) + view: + title: View + items: + resetByAll: Reset View by All Content + resetBySelect: Reset View by Selected Content + more: + title: More + items: + settings: Settings + about: About + welcome: Welcome Screen + window: + title: Window + items: + refresh: Refresh + fullscreen: Full Screen diff --git a/src/locales/zh-CN.yml b/src/locales/zh-CN.yml index 8522ddca..fe85dde3 100644 --- a/src/locales/zh-CN.yml +++ b/src/locales/zh-CN.yml @@ -41,13 +41,13 @@ settingsVisual: vertical: 垂直折线 showGrid: 显示网格 windowBackgroundAlpha: 窗口不透明度 - showDebug: + showDebug: title: 显示调试信息 description: "通常为开发者使用\n开启后,画布左上角将会显示调试信息。\n若您遇到bug截图反馈时,建议开启此选项。" - alwaysShowDetails: + alwaysShowDetails: title: 始终显示节点详细信息 description: "开启后,无需鼠标移动到节点上时,才显示节点的详细信息。" - useNativeTitleBar: + useNativeTitleBar: title: 使用原生标题栏(需要重启应用) description: "开启后,窗口顶部将会出现原生的标题栏,而不是模拟的标题栏。" protectingPrivacy: @@ -74,4 +74,39 @@ settingsControl: description: "此设置项用于 使用W S A D按键来上下左右移动视角时的情景\n摩擦系数越大,滑动的距离越小,摩擦系数越小,滑动的距离越远\n此值=0时代表 绝对光滑" gamepadDeadzone: 游戏手柄死区 app: - unsaved: '*' + unsaved: "*" +appMenu: + file: + title: 文件 + items: + new: 新建 + open: 打开 + save: 保存 + saveAs: 另存为 + recent: 最近打开 + location: + title: 位置 + items: + openDataFolder: 打开数据文件夹 + openProjectFolder: 打开工程文件夹 + export: + title: 导出 + items: + exportAsSVGByAll: 导出为SVG(全部) + exportAsMarkdownBySelected: 导出为Markdown(选中) + view: + title: 视图 + items: + resetByAll: 根据全部内容重置视野 + resetBySelect: 根据选中内容重置视野 + more: + title: 更多 + items: + settings: 设置 + about: 关于 + welcome: 欢迎界面 + window: + title: 窗口 + items: + refresh: 刷新 + fullscreen: 全屏 diff --git a/src/locales/zh-TW.yml b/src/locales/zh-TW.yml index 00499a16..6222765c 100644 --- a/src/locales/zh-TW.yml +++ b/src/locales/zh-TW.yml @@ -75,3 +75,38 @@ settingsControl: app: unsaved: '*' +appMenu: + file: + title: 檔案 + items: + new: 新建 + open: 打開 + save: 保存 + saveAs: 另存為 + recent: 最近打開 + location: + title: 位置 + items: + openDataFolder: 打開數據資料夾 + openProjectFolder: 打開工程資料夾 + export: + title: 匯出 + items: + exportAsSVGByAll: 匯出為SVG(全部) + exportAsMarkdownBySelected: 匯出為Markdown(選中) + view: + title: 視圖 + items: + resetByAll: 根據全部內容重置視野 + resetBySelect: 根據選中內容重置視野 + more: + title: 更多 + items: + settings: 設定 + about: 關於 + welcome: 歡迎畫面 + window: + title: 窗口 + items: + refresh: 刷新 + fullscreen: 全螢幕 diff --git a/src/pages/_app_menu.tsx b/src/pages/_app_menu.tsx index 8c977114..5ca9e8c1 100644 --- a/src/pages/_app_menu.tsx +++ b/src/pages/_app_menu.tsx @@ -41,7 +41,7 @@ import { getCurrentWindow } from "@tauri-apps/api/window"; import { StageSaveManager } from "../core/stage/StageSaveManager"; import { StageDumperSvg } from "../core/stage/StageDumperSvg"; import { TextNode } from "../core/stageObject/entity/TextNode"; - +import { useTranslation } from "react-i18next"; export default function AppMenu({ className = "", @@ -53,7 +53,7 @@ export default function AppMenu({ const navigate = useNavigate(); const dialog = useDialog(); const [file, setFile] = useRecoilState(fileAtom); - + const { t } = useTranslation("appMenu"); const [, setRecentFilePanelOpen] = useRecoilState(isRecentFilePanelOpenAtom); const onNew = () => { @@ -293,24 +293,24 @@ export default function AppMenu({ )} onPointerDown={(e) => e.stopPropagation()} > - } title="文件"> + } title={t("file.title")}> } onClick={onNew}> - 新建 + {t("file.items.new")} } onClick={onOpen}> - 打开 + {t("file.items.open")} } onClick={() => setRecentFilePanelOpen(true)}> - 最近 + {t("file.items.recent")} } onClick={onSave}> - 保存 + {t("file.items.save")} } onClick={onSaveNew}> - 另存为 + {t("file.items.saveAs")} - } title="位置"> + } title={t("location.title")}> } onClick={() => { @@ -322,7 +322,7 @@ export default function AppMenu({ }); }} > - 打开软件数据文件夹 + {t("location.items.openDataFolder")} } @@ -335,37 +335,37 @@ export default function AppMenu({ }); }} > - 打开此文档所在文件夹 + {t("location.items.openProjectFolder")} - } title="导出"> + } title={t("export.title")}> } onClick={onSaveSVGNew}> - 全部舞台导出SVG + {t("export.items.exportAsSVGByAll")} } onClick={onSaveMarkdownNew}> - 选中的根节点导出markdown + {t("export.items.exportAsMarkdownBySelected")} - } title="视图"> + } title={t("view.title")}> } onClick={() => Camera.reset()}> - 根据全部节点重置视野 + {t("view.items.resetByAll")} } onClick={() => Camera.resetBySelected()} > - 根据选中节点重置视野 + {t("view.items.resetBySelect")} - } title="更多"> + } title={t("more.title")}> } onClick={() => navigate("/settings/visual")} > - 设置 + {t("more.items.settings")} } onClick={() => navigate("/settings/about")}> - 关于 + {t("more.items.about")} - welcome + {t("more.items.welcome")} - } title="窗口"> + } title={t("window.title")}> } onClick={() => window.location.reload()}> - 刷新 + {t("window.items.refresh")} } @@ -389,7 +389,7 @@ export default function AppMenu({ .then((res) => getCurrentWindow().setFullscreen(!res)) } > - 全屏 + {t("window.items.fullscreen")} } title="测试">