跳转到内容

界面多语言设计

使用本地消息目录、Intl 格式化和 Svelte 响应式状态;十份目录随前端打包, 不增加第三方 i18n 运行时、远端翻译或翻译管理服务。依赖版本以 manifest 和锁文件 为准;资源目标见 架构,进度见 Plan.md。

本项目 i18n 要求

  • 支持 zh-CN(默认)、zh-TW、en、ja、ko、es、fr、de、pt-BR、ru;设置页使用语言 本地名称,保存后立即切换并持久化,下次启动恢复。页面 lang 随语言更新, 供辅助技术使用;切换不触发采集,不改变统计结果。 设置保存及恢复默认值提示保留词条键,渲染时按当前语言翻译,包括切换语言的当次保存提示。
  • 语言协商:有效的用户设置 → navigator.languages → zh-CN。zh-Hant/TW/HK/MO 归入 zh-TW,其余 zh 归入 zh-CN;en/ja/ko/es/fr/de/pt/ru 归入已有目录,pt 使用 pt-BR。统计时区独立保存;周起始在用户未显式设置时沿用地区规则。
  • 扁平键使用小写点分命名空间,插值为 {name},不内嵌 HTML。新增键同步全部语言; 测试检查键集合、非空值及插值参数,不维护易过时的固定键数量。
  • 缺键回退 zh-CN 的同一键;默认语言也缺失时告警并显示键名。语言目录基线在 desktop/src/lib/i18n.svelte.ts、locales.ts,专项目录按功能合并;不引入 ICU 解析器。
  • 数字、日期、百分比、相对时间和紧凑单位由 Intl 按界面 locale 格式化。 查询日期、时区、去重、质量覆盖与原始数值遵循 数据规则, 翻译不得改变范围或把未知显示为零。
  • CSV/JSON 导出保存 ISO 日期、未本地化数值和稳定英文列头;界面说明显示格式 与导出格式分列,区域格式不影响回导。
  • 诊断 code 保持稳定英文,message 保留脱敏技术事实。面向用户的解释由前端按 code 映射文案,后端不返回本地化字符串。能力表的结构化枚举可以翻译,未映射的 note/limitations 保留原文,不因翻译缺失扩大能力。
  • 图表标签和可访问名称由应用传入并随语言更新。当前不使用 ECharts 内置工具栏 文案;若增加内置文案,须先核验注册语言和实例切换行为。
  • 设置布局按可用内容宽度调整,避免侧栏挤压表单;图表可聚焦,方向键/Shift/ Home/End/Enter 使用与鼠标相同的选区查询,见 看板交互。
  • 主导航按钮与品牌链接使用随语言更新的显式可访问名称;窄侧栏隐藏文字时名称仍保留。 Linux 实际 Orca 验收须由原生 Tab/Enter 到达十语言各五页导航,逐次核对当次 AT-SPI 焦点和真实语音输出;切换语言使用产品设置表单并回查持久化值与 HTML lang, 不能只检查 DOM、注入名称或复用先前语音确认成品行为。隔离容器可使用无硬件的音频输出, 该结果不能据此确认语言发音、物理可听性、其他页面控件或 Windows 屏幕阅读器。

验收

文档站的英文默认与浏览器语言协商独立于这些应用设置,见 文档要求。

V31 覆盖语言协商、缺键回退、保存/恢复、数字/日期/单位格式化、 导出分列及统计不随语言改变。固定测试校验全部目录;模拟 IPC 浏览器与真实 Tauri IPC/WebView2 的语言、键盘和布局结果分别记录在 最新验收。 Linux 十语言实际 Orca 焦点/语音结果见 专项验收。

CSS 页面缩放、原生 OS DPI、其他平台 WebView 和辅助技术实测须分别验证。 没有测量的项目继续登记缺口,不从类型检查或 Windows 单一环境推断已通过。