语言切换与 OneGUI 验收¶
历史记录 / Historical record:本文保留当时的计划、研究或验收证据,不代表 0.11 当前能力全集。现行说明见 文档入口;英文入口见 English overview。
OneGUI 新增独立语言 Provider,内部 26 个默认文本与无障碍标签具有完整中英文默认值。宿主可注入词典,库不依赖桌面应用的国际化代码;切换语言不通过重新挂载组件实现。
node tools/gui-locale-test.mjs 的 65 项断言通过,包括默认中文、英文覆盖、嵌套 Provider、调用方自带内容保留和实际组件服务端渲染。非视觉导出已在 OneGUI 护栏明确分类,没有提高基线。
最终分别设置 I18N_TEST_ENGINES=chromium、I18N_TEST_ENGINES=webkit 运行 node tools/i18n-browser-test.mjs,两次均自然退出 0,各 77 项断言(合计 152 项界面检查和两次无运行时异常检查):
- Chromium 和 WebKit,1280×900 与 390×844,完整、极简、实用三种模式。
- 实际语言下拉框切换,文档语言和持久化状态更新;页面路由保持不变。
- 完整模式收藏夹导入草稿、简洁模式 API 输入草稿保留,输入 DOM 实例未被替换。
- 通过真实日程设置按钮打开新建弹窗;另一个实际应用窗口切换语言后,弹窗及编辑内容保持。点击取消后没有新增日历数据。
- 英文状态下稳定设置锚点仍能定位,语言控件在窄屏保持可见、可命中。
- 单独长译文夹具只替换英语词典响应,真实界面布局不变。标题可换行,下拉框可操作,没有横向页面溢出;说明仍遵循现有多行省略样式。
报告为 report.json。已人工查看桌面设置、手机日程草稿和长译文夹具。
首次最终合跑在 Chromium 界面检查后因 browser.close 超过既有 15 秒清理时限失败,未记为通过。随后按引擎完整重跑,使用同一断言和清理时限,均完成正常退出。未跳过检查或延长时限。
此次证明语言基础设施、现有英文公共文案与交互状态保持。当前未翻译词条仍回退中文,截图中的中英文混合不能视为完整英文翻译验收。浏览器使用独立上下文与预览数据,阻断外网,没有读取真实账号或发起学校请求;390 视口和触摸输入不代表实体手机或原生 WebView 验收。
业务表单补验¶
全部 28 个业务 openFormModal 调用及插件门面入口的固定标题、字段标签、占位文案与选项标签改用消息描述符,在已打开的表单里继续跟随语言。插件提供的原始字符串与字段内容仍原样传递;选项值、用户输入和字段默认值不参与翻译。组织加入表单的历史默认成员名“我”及空名提交回退恢复为固定原值,避免把不同语言的译文写进组织成员数据。
node tools/i18n-business-forms-browser-test.mjs 最终自然退出 0,共 28 项:3 项调用与持久化边界检查、24 项实际交互检查和 1 项无运行时异常检查。使用 Chromium 1280×900 与 WebKit 390×844,通过通讯录和组织主页两条实际入口打开新建组织表单;另一真实应用窗口切换中英文后,标题和三项标签更新,同一表单及输入 DOM、组织名、简介和链接草稿保留。切回中文、真实点击取消后,组织快照不变。
报告见 业务表单 report.json。已人工查看桌面通讯录表单与WebKit 手机组织表单。截图等待现有弹层动画结束;初次脚本将“新建组织”误写为“创建组织”并假定标题为 heading,修正选择器后通过,未改产品行为或放宽断言。
本专项只为尚未翻译的 8 个词典条目注入英文夹具,真实业务组件与样式保持原实现;因此它证明业务调用正确延迟翻译,不证明这些词条已经完成正式翻译。所有表单均取消,没有创建、加入或修改真实组织。WebKit 触摸仿真不代表实体设备。最终桌面 TypeScript 检查通过。