# 中英文切换功能完善 — 进度记录 (2026-08-12) ## 目标 完善 `D:\code\机器人智慧服务系统` 的中英文(i18next)切换:补充 en/zh 词条,并消除页面上硬编码的中文。 ## 已完成(已验证) 1. **补充 en 缺失的 3 个词条**(对比 zh=828 / en=825 后定位): - `common.completed` → 'Completed' - `home.underMaintenance` → 'Under Maintenance' - `roles.abnormal` → 'Abnormal' - 验证:en 现 828 词条,3 个 key 均存在。 2. **router/index.tsx 菜单硬编码中文 → t()**: - `通知策略页面` → `` 用 `t('router.noticePolicy')` - `数据与安全页面` → `` 用 `t('router.dataSafety')` - `模块开发中`(catch-all) → `` 用 `t('router.moduleDeveloping')` - 因为 `routes` 是模块级静态对象,不能用 hook,故包装成使用 `useTranslation` 的小组件(可响应语言切换)。 ## 关键发现(影响整体方案) - **~1070 个被代码引用的 t() key 在 zh 与 en 中都不存在**(例如 `devices.tlStartCleaning`、`timelineStatusStart`、`alarmNo`、`mockDeviceSensor`、`paramLeftForwardGain` 等)。这些界面当前**直接显示原始 key 字符串**(中英文模式下都如此)。 - 中文源文本已不在代码中(替换成 t() 时未回填 locale),因此这 ~1070 个 key 的「中文」需要重新拟定。 - 页面中另有**硬编码中文**:69 个文件、约 1403 行(已统计到按文件分布)。这些中文仍在代码里,可安全提取并补到 locale。 ## 待办 / 待决定 - 大量工作需明确推进方式(见对话中的问题)。 - 临时脚本待清理:tmp_compare.cjs、tmp_findcjk.cjs、tmp_analyze2.cjs、tmp_dbg.cjs、tmp_test.cjs、tmp_verify.cjs、tmp_perfile.cjs。