跳转至

i18n 工程接入与翻译交接状态

历史记录 / Historical record:本文保留当时的计划、研究或验收证据,不代表 0.11 当前能力全集。现行说明见 文档入口;英文入口见 English overview。

2026-10-20,exp;本轮在现有实现上完成迁移,未合并 PR 57 的旧业务代码。

已落地

  • 语言持久化、跨窗口同步、document.lang、三模式语言选择;组件订阅语言,不通过重挂应用切换。
  • OneGUI 独立语言 Provider;表单、确认、Toast 支持消息描述符,已打开的界面随语言更新并保留输入。
  • 具名插值、可信 React 槽位、显式复数分支、Intl 日期/数字;模块级显示注册项按读取时解析。
  • 从当前界面与状态层提取词典,提供源文、调用位置、参数、批次及术语表。生成工具只复用中文完整匹配的旧候选译文。
  • 学校协议、权限、稳定路由、日历身份和用户存档名称保留原值;展示标签独立翻译。修正了迁移审查发现的 THOS 状态、洗衣机键、设置定位和课程行 Atom 身份问题。
  • 词典先经 AST 校验,不执行翻译者代码;缺键、错参数、重复属性、源文版本变化、未完成批次、越批修改和修改业务文件均会失败。
  • Vite 自动注册新增语言文件;desktop 构建前执行工程词典检查。
  • Android 桌面小组件的快照携带语言和 62 条显示模板,后台重新计算倒计时继续使用快照语言;切换语言会推送新快照,旧异步任务不能覆盖它。翻译仍只维护同一份词典。

交付入口

工程命令

pnpm i18n:check
pnpm test:i18n
pnpm i18n:handoff
pnpm --filter @onethu/desktop build

翻译模型只运行检查并填写目标语言值,不运行提取或重新生成。批次检查必须带工程基线提交,具体命令见翻译指南。

仍需区分的验收边界

工程接入完成不等于英文翻译完成。英文空值会回退中文,发布前必须用 --locale en-US --complete 验证全覆盖,并完成语言质量和真实长译文界面验收。其他语言由工程预置纯数据文件后可按同一契约填写。

官方材料只包含学堂英文首页和 Info 英文门户,没有真实英文选课内页/作业详情。本轮匿名双语解析、实际 DOMParser 和失败保护已验证;没有修改学校语言偏好,没有真实选课、退课或作业提交。真实课程英文名只改变显示,存档和导航身份不变。

本地 Chromium/WebKit 三模式、桌面/手机尺寸验证不能代替 Windows WebView2、Android/iOS 真机以及学校双账号联调。系统日历、通知、IM 自动回复、真实截图、用户/学校内容属于独立输出或原始内容边界,不进行随 UI locale 自动批量重写。

历史 PR 57 问题及原计划依据仍见 PR 57 深审。正式资源热更新按用户后续指示撤出范围;已有整包更新修复见 更新审查。