使用 lrelease
lrelease 命令行工具可将TS文件转换为QM文件。QM文件格式是一种紧凑的二进制格式,供本地化应用程序使用。它能提供极快的翻译检索速度。
使用 qmake 进行构建时,请在命令行或 .pro 文件中指定待处理的文件。
使用 CMake 进行构建时,请使用CMake 命令添加目标,以创建或更新 TS 文件并将其转换为 QM 文件。lrelease 工具会根据您在构建目标时传递给相关命令的选项来运行。
无论您是发布初始测试版本还是最终正式版本,每次发布应用程序时都应运行lrelease 。应用程序运行时并不需要 QM 文件,但如果存在这些文件,应用程序会自动检测并使用它们。
注意: lrelease 工具仅会整合您标记为“已完成”的翻译。否则,它将使用原始文本。
lrelease 语法
lrelease [options] -project project-file
lrelease [options] ts-files [-qm qm-file]其中:
options表示一个或多个lrelease 选项。project-file是项目配置文件。ts-files是作为 QM 文件输入的 TS 文件。qm-file是要生成的 QM 文件的名称。
注意: 向lrelease 传递 .pro文件已不推荐使用。在使用qmake时,请使用lrelease-pro 工具或lrelease.prf 功能。
要查看最新帮助,请输入:
lrelease -helplrelease 选项
| 选项 | 操作 |
|---|---|
-help | 显示最新的帮助信息并退出。 |
-idbased | 已弃用。该标志不再需要,将在未来版本中移除。它曾用于启用基于 ID 的翻译。 |
-compress | 压缩 QM 文件。 |
-nounfinished | 不包含未完成的翻译。 |
-fail-on-invalid | 若发现翻译未通过以下检查,则操作失败:
如需了解更多详情,请参阅Qt Linguist 帮助文档 |
-fail-on-unfinished | 若发现未完成的翻译,则生成错误 |
-removeidentical | 如果翻译后的文本与源文本相同,则排除该消息。 |
-markuntranslated <prefix> | 如果某条消息没有真正的翻译,则使用在源文本前加上指定字符串的文本代替。 |
-project <filename> | 包含项目描述的 JSON 格式文件的名称。您可以使用lupdate-pro -dump-json 从 .pro 文件生成该文件。 |
-silent | 不解释正在执行的操作。 |
-verbose | 解释正在执行的操作(默认)。 |
-version | 显示lrelease 的版本信息并退出。 |
示例
在 CMake 中使用 lrelease
使用 CMake 进行构建时,请通过CMake 命令在 CMakeLists.txt 文件中为目标添加翻译,然后构建这些目标。
请选择以下选项之一:
- 在目标(例如app)上使用qt_add_translations。这将调用qt_add_lupdate和qt_add_lrelease。
- 在目标上使用 `
qt_add_lrelease`。
构建一个目标(例如app_lrelease ),以更新其 .qm 文件。若要更新所有目标的 .qm 文件,请构建目标release_translations 。
在 qmake 中使用 lrelease
若要不指定项目文件而运行lrelease :
lrelease.exe main_en.ts languages\main_fr.ts© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.