在本页中

使用 lcheck

lcheck 命令行工具可验证 Qt XMLTS 翻译文件,并生成人类可读的报告。它是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 options

选项操作
-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

在 CI 步骤中使用 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.