English | 简体中文 |
---|
这份文件涵盖了此项目的翻译进度,以及添加新翻译等操作的方法。
程序代码中出现的显示文字均为英文。i18n
文件夹中提供了简体中文的翻译。
本项目的翻译文件使用 Qt Linguist 生成与编写。此应用程序是 Qt 的一部分,因此可以通过下载并安装 Qt 使用。 如果不想下载完整的开发工具套件,可以使用 lelegard/qtlinguist-installers 安装单独的 Qt Linguist 程序。
- 复制模板文件
base.ts
,并将其重命名为Musec_xx_XX.ts
。其中xx
是 ISO 639-1 语言码,XX
是 ISO 3166 国家码 ALPHA 2。 - 用 Qt Linguist 打开翻译文件。
- Qt Linguist 会自动从文件名中检测语言码和国家码,若没有检测到,则通过检测系统语言和区域设置来调整目标语言。也可以自行选择目标语言。确认目标语言无误后点击 OK。
- 翻译文本。
- 翻译完成后,保存翻译文件。
如果开发者对涉及文本的代码进行了更新(比如添加了新的显示文字),需要更新翻译文件。Qt 中的 lupdate.exe
是用于更新翻译文件的程序。可以通过 lupdate.exe --help
查看用法。
CMakeLists.txt
中添加了两个定制目标:
GenerateLocaleBase
,用于更新base.ts
。GenerateLocaleCN
,用于更新Musec_zh_CN.ts
。
可以仿照这两个目标添加自己的翻译文件。
Musec.pro
中的 TRANSLATIONS
变量列举了项目的翻译文件。可以修改此变量,以包含自己的文件。
添加完成后,使用 lupdate.exe
更新翻译文件即可:
<lupdate 路径> <项目路径>/Musec.pro
要让程序使用翻译,需要将翻译文件发布为目标文件。 要发布翻译文件,用 Qt Linguist 打开翻译文件后,选择菜单栏中的文件->发布,翻译文件所在的目录中会生成一个目标文件。 将发布的文件放在程序目录下,即可在程序中使用翻译。
可以将发布翻译的过程集成到项目文件中。
CMakeLists.txt
中,发布翻译和复制发布文件的操作是定制命令,在生成后执行:
# CMakeLists.txt
add_custom_command(TARGET Musec POST_BUILD COMMAND ${Qt5_DIR}/../../../bin/lrelease.exe ${CMAKE_SOURCE_DIR}/i18n/Musec_zh_CN.ts -qm ${CMAKE_CURRENT_BINARY_DIR}\\Musec_zh_CN.qm)
要发布自己的翻译,可以更改这一命令。
发布翻译和复制发布文件的操作由 qmake 提供支持。
CMakeLists.txt
通过相对于Qt5_DIR
的路径寻找lupdate.exe
和lrelease.exe
。如果 Qt 是由官方 提供的程序安装的,那么这两个程序的位置没有问题。Qt 可以通过包管理器安装(如 Conan 和 vcpkg),此时需要确保 机器上可以找到这两个应用程序,然后用正确的路径修改CMakeLists.txt
(可以用绝对路径)。- 翻译文件的扩展名是
.ts
。TypeScript 文件和传输流(transport stream)文件同样使用这一扩展名。