qt_add_lupdate
添加目标以生成或更新Qt Linguist 的.ts文件。
该命令定义在Qt6 包的LinguistTools 组件中。使用以下命令加载该包:
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)该命令于 Qt 6.2 版本中引入。
语法
自 6.7 起:
qt_add_lupdate(TS_FILES file1.ts [file2.ts ...]
[PLURALS_TS_FILE file.ts]
[SOURCE_TARGETS target1 [target2 ...]]
[SOURCES source1.cpp [sources2.cpp ...]]
[INCLUDE_DIRECTORIES directory1 [directory2 ...]]
[LUPDATE_TARGET target-name]
[NO_GLOBAL_TARGET]
[OPTIONS ...])自 6.2 起(已弃用):
qt_add_lupdate(target TS_FILES file1.ts [file2.ts ...]
[SOURCES source1.cpp [sources2.cpp ...]]
[INCLUDE_DIRECTORIES directory1 [directory2 ...]]
[NO_GLOBAL_TARGET]
[OPTIONS ...])如果禁用了无版本号的命令,请改用 `qt6_add_lupdate() `。它支持与该命令相同的参数集。
描述
创建一个自定义目标,用于通过lupdate 生成或更新Qt Linguist .ts 文件。
该自定义目标的默认名称为${PROJECT_NAME}_lupdate 。后续对qt_add_lupdate 的调用将生成名称末尾附加递增数字的目标。可通过LUPDATE_TARGET 选项指定自定义目标名称。
通过SOURCE_TARGETS 参数,您可以指定包含可翻译字符串源文件的目标列表。如果未指定SOURCE_TARGETS ,则可指定SOURCES ,具体说明如下。若既未提供SOURCE_TARGETS 也未提供SOURCES ,则会调用qt_collect_translation_source_targets()命令来获取目标列表。
必须通过参数TS_FILES 指定.ts 文件。
该函数旨在与qt_add_lrelease() 配合使用。另请参阅便捷封装函数qt_add_translations()。
源文件和包含目录
通过SOURCES ,您可以显式指定包含可翻译字符串的其他源文件。
您可以使用INCLUDE_DIRECTORIES 显式指定这些源文件的包含目录。
选项
您可以设置在调用 `lupdate ` 时应传递的额外 `OPTIONS `。您可以在lupdate 文档中找到可用的选项。
伞式目标
除了目标${target}_lupdate 之外,还会创建一个总目标update_translations 。该目标将构建所有使用qt_add_lupdate 创建的${target}_lupdate 目标。
若要阻止此行为,请将NO_GLOBAL_TARGET 作为参数传递给qt_add_lupdate 。
在调用qt_add_lupdate 之前,可通过设置变量QT_GLOBAL_LUPDATE_TARGET 来覆盖该目标的名称。
复数形式
QT_I18N_SOURCE_LANGUAGE指定源代码字符串的编写语言。为了正确处理复数形式,请为该语言创建一个额外的.ts 文件,其中仅包含复数形式的可翻译字符串。详情请参阅“处理复数形式”。
通过PLURALS_TS_FILE ,您可以指定源语言对应的.ts 文件。该文件仅包含复数形式。
已弃用的命令签名
qt_add_lupdate 的旧版本将目标作为第一个参数。此用法已弃用。请改用SOURCE_TARGETS 参数。
示例
添加目标myapp_lupdate 和update_translations ,用于更新应用程序myapp 的.ts 文件。
qt_add_lupdate(
SOURCE_TARGETS myapp
TS_FILES myapp_de.ts
PLURALS_TS_FILE myapp_en.ts
)您可以通过传递LUPDATE_TARGET 参数来指定创建的目标名称:
qt_add_lupdate(
LUPDATE_TARGET update_application_translations
TS_FILES myapp_de.ts
PLURALS_TS_FILE myapp_en.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.