跳转至

国际化(i18n)

界面文案通过 Qt 的翻译系统(QTranslator + .ts / .qm)实现中英文切换;文档本身通过 mkdocs i18n 插件以 docs/zhdocs/en 两个目录实现。

代码中的国际化

  • 标记字符串:所有用户可见文本使用 QCoreApplication.translate(context, text)context 通常用页面类名,便于在 .ts 中归类。
  • 翻译源文件i18n/zh_CN.tsi18n/en_US.ts 是 XML 格式的翻译源,可用 Qt Linguist 编辑,也可通过脚本批量更新。
  • 编译为 .qm:用 lrelease.ts 编译成二进制 .qm,程序运行时由 core.settings.apply_language() 加载对应 .qminstallTranslator
  • 中文为源语言:当语言为 zh_CN 时卸载翻译器,直接显示源码中的中文字符串。

Example

新增页面时,在构造函数中: python btn.setText(QCoreApplication.translate("XinGongneng", "计算")) 然后在 i18n/en_US.ts 的对应 <message> 中填写英文译文。

文档中的国际化

  • 文档分为 docs/zh/(默认)与 docs/en/ 两个独立目录,结构完全一致。
  • mkdocs.yml 使用 i18n 插件(docs_structure: folder),依据子目录名 zh / en 构建对应语言站点。
  • 导航里的中文文本通过 nav_translations 映射为英文,无需在 en/ 目录重复维护导航。
  • 新增文档页面时,务必在 zh/en/ 同步创建,保持文件名与相对路径一致。

Warning

删除或重命名 zh/ 下的页面后,要同步更新 en/mkdocs.ymlnav,否则 mkdocs build --strict 会报断链。