GitHub Issue

feat(i18n): webui 前端国际化基础设施(vue-i18n 中英双语)

Discovered On May 1, 2026
Primary Metric open
## 背景 整个 `webui/frontend/` 是中文硬编码,没有 i18n 框架。`naive-ui` 自带的中文 locale 也是一次性写死。结果: - 非中文贡献者看不懂 UI,写 PR 时 string 改动难审 - README 也只有中文版,海外用户不知道项目能干啥 - 后续要加新语言(日韩印英)每次都要扫一次源码 ## 想要做什么 引入 `vue-i18n` 把 UI 字符串外置成 JSON/YAML: 1. 装 `vue-i18n@9` 并在 `main.ts` 注册 2. 新建 `src/locales/zh-CN.json` + `src/locales/en-US.json` 3. 把以下文件里的中文 UI 字符串迁出(按优先级): - `views/Wizard.vue` / `views/Run.vue` / `views/Login.vue` / `views/Setup.vue` / `views/Whatsapp.vue` - `components/TopStepper.vue`(step titles) - `components/steps/Step01_Welcome.vue` ~ `Step14_Review.vue`(最大头) - `components/PreflightPanel.vue`、`term/*.vue` 4. header 加语言切换按钮(中 / EN),选择存 `localStorage` 5. README 顶部加 EN 翻译(或 `README.en.md` 链接) ## 实现建议 - **不需要一次翻完**:中文 zh-CN 文件可以由 sed 自动拉出来(直接复制原 string)。EN 翻译可以由后续 PR 多人接力 / 或先用机器翻译占位 - 保留 `naive-ui` 的 `zhCN` / `enUS` locale provider,跟 vue-i18n 联动 - 错误信息(preflight result message)大头来自后端,那部分先不动;frontend 拿到 raw message 直接 fallback 显示 - 加个 lint 规则(grep 静态字符串)防止新代码再硬编码中文 ## 验收 - [ ] 装好 vue-i18n,框架可用 - [ ] 至少 Wizard / Run / Login 三个核心 view + TopStepper 全部走 t() 函数 - [ ] zh-CN.json 完整可切换;en-US.json 至少 50% 覆盖(剩下的 fallback zh-CN) - [ ] 语言切换 UI(header 下拉或 toggle) - [ ] README 加 EN 段(不一定全文翻译,至少 What/Install/Usage 三段) 第一版可以分多 PR 接力:基建(vitest + main.ts + locales/zh-CN.json)一个 PR,每个 view 各一个 PR。欢迎 PR 单独认领某个 view 翻译!
View Raw Thread