qt_collect_translation_source_targets
Recopila los destinos que pueden traducirse.
El comando está definido en el componente LinguistTools del paquete Qt6. Cargue el paquete con:
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)
Este comando se introdujo en Qt 6.7.
Sinopsis
qt_collect_translation_source_targets(out_var [DIRECTORY path])
Si los comandos versionless están deshabilitados, utilice qt6_collect_translation_source_targets() en su lugar. Admite el mismo conjunto de argumentos que este comando.
Descripción
Recopila los objetivos que pueden traducirse en DIRECTORY y todos los subdirectorios. Si no se especifica DIRECTORY, la recopilación de destinos se inicia en CMAKE_CURRENT_SOURCE_DIR.
El comando almacena la lista de destinos en la variable especificada como primer argumento.
Excluir objetivos de la traducción
Por defecto, todos los ejecutables y bibliotecas no importados pueden ser traducidos.
Se pueden excluir objetivos individuales estableciendo la propiedad de objetivo QT_EXCLUDE_FROM_TRANSLATION.
Los destinos situados por debajo de un directorio determinado pueden excluirse estableciendo la propiedad de directorio QT_EXCLUDE_FROM_TRANSLATION.
Cuándo llamar a este comando
El comando qt_collect_translation_source_targets lee las propiedades del directorio BUILDSYSTEM_TARGETS. Como consecuencia, sólo recoge los objetivos que ya han sido creados. Los objetivos que se crean después de llamar a qt_collect_translation_source_targets no se recopilan.
Para recopilar todos los objetivos del sistema de compilación, llame a qt_collect_translation_source_targets al final del ámbito de directorio de nivel superior CMakeLists.txt o utilice cmake_language(DEFER CALL) para configurar i18n al final del ámbito de directorio de nivel superior.
Ejemplos
Utilice el resultado de qt_collect_translation_source_targets como entrada para 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.Con CMake 3.19 y superior, puede recoger los objetivos de origen al final del ámbito del directorio. De esta manera, qt_collect_translation_source_targets puede ser llamado antes de que todos los objetivos hayan sido definidos. Sin embargo, es necesario excluir las pruebas estableciendo la propiedad de directorio QT_EXCLUDE_FROM_TRANSLATION a ON.
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)© 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.