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.