本页内容

使用 lcheck

lcheck 命令行工具用于验证QtTS 翻译文件,并生成易于阅读的报告。它是Qt Linguist 工具链的一部分,旨在通过批量处理或持续集成(CI)方式,尽早发现常见的本地化问题。默认情况下,lcheck 会执行一系列检查,如果至少有一项已启用的检查失败,则返回非零退出代码。

默认检查包括:

  • 加速器检查 — 验证源文本和翻译文本中的“&”符号(助记符)数量是否一致。
  • 前后空格检查 — 验证源文本和翻译文本的首尾空格是否一致。
  • 结尾标点检查 — 验证源文本和译文以相同的标点符号结尾。
  • 位置标记检查 — 验证源文本和译文中%1 、%2 等标记的使用是否保持一致。

每项检查均可通过命令行选项单独禁用。

lcheck 语法

lcheck [options] -o report-output-file ts-file
lcheck [options] ts-file

其中:

  • options 表示一个或多个lcheck 选项。
  • ts-file 是要验证的TS 文件。
  • report-output-file 是报告文件的路径。若省略,报告将写入标准错误流。

要查看最新帮助,请输入:

lcheck -help

lcheck 选项

选项操作
-help显示最新的帮助信息并退出。
-no-accelerator禁用连字符(&)一致性检查。
-no-punctuation禁用句末标点符号一致性检查。
-no-place-marker禁用确保源文本和译文中%1 、%2 等符号使用一致性的检查。
-no-whitespaces禁用周围空白的一致性检查。
-check-finished同时检查标记为“已完成”的消息。默认情况下,已完成的翻译不会被检查。
-o <outfile>将验证报告写入<outfile> 。如果未指定,报告将写入标准错误输出。
-version显示lcheck 的版本信息并退出。

注意: 如果任何已启用的检查失败,进程退出状态将不为零。这使得lcheck 适合用于 CI 管道。

示例

将报告写入文件

lcheck -o lcheck_report.txt translations/myapp_de.ts

禁用所选检查项

以下命令将运行除“加速器”和“标点符号”之外的所有检查:

lcheck -no-accelerator -no-punctuation translations/myapp_de.ts

同时检查已完成的翻译

lcheck -check-finished translations/myapp_de.ts

在持续集成步骤中使用 lcheck

lcheck translations/myapp_de.ts && echo "Translations OK" || echo "Issues found"

在 CMake 中使用 lcheck

要在配置或构建 CMake 项目时调用 `lcheck `,请加载 `Qt6LinguistTools ` 软件包,并使用 `$<TARGET_FILE:Qt6::lcheck> ` 定位 `lcheck ` 可执行文件。

以下示例添加了一个名为check_translations 的自定义目标,该目标会对 TS 文件运行lcheck ,并将报告写入构建产物的同一目录下。

find_package(Qt6 REQUIRED COMPONENTS LinguistTools)

add_custom_command(
    OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/lcheck_report.txt"
    COMMAND $<TARGET_FILE:Qt6::lcheck>
            -o "${CMAKE_CURRENT_BINARY_DIR}/lcheck_report.txt"
            "${CMAKE_CURRENT_SOURCE_DIR}/translations/myapp_de.ts"
    DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/translations/myapp_de.ts"
    VERBATIM
)

add_custom_target(check_translations
    DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/lcheck_report.txt"
)

在 qmake 中使用 lcheck

您可以直接对 TS 文件运行lcheck ,而无需指定项目文件:

lcheck translations/myapp_de.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.