qt_collect_translation_source_targets

Sammelt Ziele, die für eine Übersetzung in Frage kommen.

Der Befehl ist in der Komponente LinguistTools des Pakets Qt6 definiert. Laden Sie das Paket mit:

find_package(Qt6 REQUIRED COMPONENTS LinguistTools)

Dieser Befehl wurde in Qt 6.7 eingeführt.

Synopse

qt_collect_translation_source_targets(out_var [DIRECTORY path])

Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen qt6_collect_translation_source_targets(). Es unterstützt die gleichen Argumente wie dieser Befehl.

Beschreibung

Sammelt Ziele, die für eine Übersetzung in Frage kommen, im angegebenen DIRECTORY und allen Unterverzeichnissen. Wenn DIRECTORY nicht angegeben ist, beginnt die Zielsammlung bei CMAKE_CURRENT_SOURCE_DIR.

Der Befehl speichert die Liste der Ziele in der Variable, die als erstes Argument angegeben ist.

Ziele von der Übersetzung ausschließen

Standardmäßig kommen alle nicht importierten ausführbaren Ziele und Bibliotheken für die Übersetzung in Frage.

Einzelne Ziele können durch Setzen der Zieleigenschaft QT_EXCLUDE_FROM_TRANSLATION ausgeschlossen werden.

Ziele unterhalb eines bestimmten Verzeichnisses können durch das Setzen der Verzeichniseigenschaft QT_EXCLUDE_FROM_TRANSLATION ausgeschlossen werden.

Wann ist dieses Kommando aufzurufen?

Der qt_collect_translation_source_targets Befehl liest die BUILDSYSTEM_TARGETS Verzeichniseigenschaften. Folglich sammelt er nur Ziele, die bereits erstellt wurden. Ziele, die nach dem Aufruf von qt_collect_translation_source_targets erstellt werden, werden nicht erfasst.

Um alle Ziele des Build-Systems zu sammeln, rufen Sie qt_collect_translation_source_targets am Ende des Top-Level CMakeLists.txt auf oder verwenden Sie cmake_language(DEFER CALL), um i18n am Ende des Top-Level-Verzeichnisbereichs einzurichten.

Beispiele

Verwenden Sie das Ergebnis von qt_collect_translation_source_targets als Eingabe für qt_add_lupdate.

add_subdirectory(src)         # The actual application is defined here.

# All targets that have been defined up to this point will be in i18n_targets.
qt_collect_translation_source_targets(i18n_targets)
qt_add_lupdate(SOURCE_TARGETS ${i18n_targets})

# No targets from this directory are in i18n_targets.
add_subdirectory(tests)       # Unit tests - we don't want to translate those.

Mit CMake 3.19 und höher können Sie die Quelltexte am Ende des Verzeichnisbereichs sammeln. Auf diese Weise kann qt_collect_translation_source_targets aufgerufen werden, bevor alle Ziele definiert worden sind. Allerdings müssen Sie die Tests ausschließen, indem Sie die Verzeichniseigenschaft QT_EXCLUDE_FROM_TRANSLATION auf ON setzen.

function(set_up_translations)
    qt_collect_translation_source_targets(i18n_targets)
    qt_add_lupdate(SOURCE_TARGETS ${i18n_targets})
endfunction()

cmake_language(DEFER CALL set_up_translations)

add_subdirectory(src)         # The actual application is defined here.
add_subdirectory(tests)       # Unit tests - we don't want to translate those.
set_property(DIRECTORY tests PROPERTY QT_EXCLUDE_FROM_TRANSLATION ON)

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