qt_add_lrelease
Hinzufügen von Zielen zur Umwandlung von Qt Linguist.ts-Dateien in .qm-Dateien.
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.2 eingeführt.
Zusammenfassung
Seit 6.7:
qt_add_lrelease(TS_FILES file1.ts [file2.ts ...] [LRELEASE_TARGET target-name] [EXCLUDE_FROM_ALL] [NO_GLOBAL_TARGET] [QM_FILES_OUTPUT_VARIABLE variable-name] [OPTIONS ...])
Seit 6.2 (veraltet):
qt_add_lrelease(target TS_FILES file1.ts [file2.ts ...] [NO_TARGET_DEPENDENCY] [NO_GLOBAL_TARGET] [QM_FILES_OUTPUT_VARIABLE variable-name] [OPTIONS ...])
Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen qt6_add_lrelease()
. Er unterstützt die gleichen Argumente wie dieser Befehl.
Warnung: Der Aufruf von qt_add_lrelease
in einem anderen Verzeichnisbereich als dem Zielverzeichnisbereich erfordert mindestens CMake Version 3.18.
Beschreibung
Erzeugt einen benutzerdefinierten Befehl zur Umwandlung von .ts
Dateien in .qm
Dateien mit lrelease.
Die Ausführung des benutzerdefinierten Befehls wird durch ein benutzerdefiniertes Ziel gesteuert, das standardmäßig erstellt wird. Der Name dieses benutzerdefinierten Ziels lautet standardmäßig ${PROJECT_NAME}_lrelease
. Weitere Aufrufe von qt_add_lrelease
erzeugen Zielnamen mit angehängter steigender Nummer. Der Name des benutzerdefinierten Ziels kann mit der Option LRELEASE_TARGET
angegeben werden.
Die .ts
Dateien müssen mit dem Argument TS_FILES
angegeben werden.
Diese Funktion ist dafür gedacht, in Verbindung mit qt_add_lupdate verwendet zu werden. Siehe auch den Komfort-Wrapper qt_add_translations.
Optionen
Sie können zusätzliche OPTIONS
setzen, die übergeben werden sollen, wenn lrelease
aufgerufen wird. Mögliche Optionen finden Sie in der lrelease-Dokumentation.
Standardmäßig werden die .qm
Dateien im aktuellen Build-Verzeichnis (CMAKE_CURRENT_BINARY_DIR
) abgelegt. Um dies zu ändern, können Sie OUTPUT_LOCATION
als eine Eigenschaft der Quelldatei .ts
festlegen.
Mit dem folgenden Code werden zum Beispiel die .qm
Dateien in einem translations
Verzeichnis unterhalb des aktuellen Build-Verzeichnisses erzeugt.
set_source_files_properties(app_en.ts app_de.ts PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/translations")
Verarbeitung der generierten .qm-Dateien
Um die generierten .qm
Dateien weiter zu verarbeiten, zum Beispiel um Installationsregeln zu erstellen, kann qt_add_lrelease
die Pfade der .qm
Dateien in einer Variablen speichern. Übergeben Sie dazu QM_FILES_OUTPUT_VARIABLE <variable-name>
an die Funktion.
Standardmäßig erstellen
Standardmäßig erstellt der Befehl ein benutzerdefiniertes Ziel, das zum Standard-Build-Ziel hinzugefügt wird. Dadurch wird sichergestellt, dass die .qm
Dateien immer aktuell sind, wenn das Projekt gebaut wird. Dieses Verhalten kann mit dem Argument EXCLUDE_FROM_ALL
ausgeschaltet werden. In diesem Fall muss der Benutzer das Ziel ${PROJECT_NAME}_lrelease
manuell erstellen.
Umbrella-Ziel
Zusätzlich zum Ziel ${target}_lrelease
wird ein übergeordnetes Ziel release_translations
erstellt. Dieses Ziel erstellt alle ${target}_lrelease
Ziele, die mit qt_add_lrelease
erstellt wurden.
Übergeben Sie NO_GLOBAL_TARGET
an qt_add_lrelease
, um dieses Verhalten zu verhindern.
Der Name dieses Ziels kann überschrieben werden, indem die Variable QT_GLOBAL_LRELEASE_TARGET
vor dem Aufruf von qt_add_lrelease
gesetzt wird.
Veraltete Befehlssignatur
Ältere Versionen von qt_add_lrelease
nahmen ein Ziel als erstes Argument an. Dies ist immer noch möglich, aber veraltet.
Beispiele
Fügen Sie die Ziele myapp_lrelease
und release_translations
hinzu, um die angegebenen .ts
Dateien in .qm
Dateien zu transformieren. Installieren Sie auch die erzeugten .qm
Dateien. Das Ziel myapp_lrelease
wird standardmäßig erstellt.
project(myapp) ... qt_add_lrelease( TS_FILES myapp_de.ts myapp_fr.ts QM_FILES_OUTPUT_VARIABLE qm_files ) install(FILES ${qm_files} DESTINATION "translations")
Sie können den Namen des erstellten Ziels angeben, indem Sie das Argument LRELEASE_TARGET
übergeben:
qt_add_lrelease( LRELEASE_TARGET create_myapp_qm_files TS_FILES myapp_de.ts myapp_fr.ts QM_FILES_OUTPUT_VARIABLE qm_files )
© 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.