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 文件必须用参数TS_FILES 指定。

该函数旨在与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_lupdateupdate_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
)

© 2025 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.