QT_ADD_LREASE

Qt Linguist.ts 파일을 .qm 파일로 변환하는 대상을 추가합니다.

이 명령은 Qt6 패키지의 LinguistTools 구성 요소에 정의되어 있습니다. 패키지를 로드합니다:

find_package(Qt6 REQUIRED COMPONENTS LinguistTools)

이 명령은 Qt 6.2에 도입되었습니다.

개요

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 ...])

6.2부터(더 이상 사용되지 않음):

qt_add_lrelease(target TS_FILES file1.ts [file2.ts ...]
                [NO_TARGET_DEPENDENCY]
                [NO_GLOBAL_TARGET]
                [QM_FILES_OUTPUT_VARIABLE variable-name]
                [OPTIONS ...])

버전 없는 명령이 비활성화되어 있으면 qt6_add_lrelease() 대신 사용하세요. 이 명령과 동일한 인수 집합을 지원합니다.

경고: 대상 디렉터리 범위와 다른 디렉터리 범위에서 qt_add_lrelease 를 호출하려면 CMake 버전 3.18 이상이 필요합니다.

설명

.ts 파일을 lrelease를 사용하여 .qm 파일로 변환하는 사용자 정의 명령을 만듭니다.

사용자 정의 명령의 실행은 기본적으로 빌드된 사용자 정의 대상에 의해 구동됩니다. 이 사용자 지정 대상의 이름은 기본적으로 ${PROJECT_NAME}_lrelease 입니다. qt_add_lrelease 을 추가로 호출하면 숫자가 추가된 대상 이름이 만들어집니다. 사용자 지정 대상 이름은 LRELEASE_TARGET 옵션으로 지정할 수 있습니다.

.ts 파일은 TS_FILES 인수를 사용하여 지정해야 합니다.

이 함수는 qt_add_lupdate와 함께 사용하도록 설계되었습니다. 편의 래퍼인 qt_add_translations도 참조하십시오.

옵션

lrelease 을 호출할 때 전달할 OPTIONS 을 추가로 설정할 수 있습니다. 가능한 옵션은 lrelease 문서에서 찾을 수 있습니다.

기본적으로 .qm 파일은 현재 빌드 디렉터리(CMAKE_CURRENT_BINARY_DIR)에 배치됩니다. 이를 변경하려면 소스 .ts 파일의 속성으로 OUTPUT_LOCATION 을 설정하면 됩니다.

예를 들어 다음 코드를 사용하면 .qm 파일이 현재 빌드 디렉터리 아래의 translations 디렉터리에 생성됩니다.

set_source_files_properties(app_en.ts app_de.ts
    PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/translations")

생성된 .qm 파일 처리

예를 들어 설치 규칙을 만드는 등 생성된 .qm 파일을 추가로 처리하려면 qt_add_lrelease 변수에 .qm 파일의 경로를 저장할 수 있습니다. 이를 위해 QM_FILES_OUTPUT_VARIABLE <variable-name> 을 함수에 전달하세요.

기본적으로 빌드

기본적으로 이 명령은 기본 빌드 대상에 추가되는 사용자 정의 대상을 만듭니다. 이렇게 하면 프로젝트가 빌드될 때 .qm 파일이 항상 최신 상태로 유지됩니다. EXCLUDE_FROM_ALL 인수를 사용하여 이 동작을 해제할 수 있습니다. 이 경우 사용자가 ${PROJECT_NAME}_lrelease 대상을 수동으로 빌드해야 합니다.

엄브렐러 대상

${target}_lrelease 대상 외에 엄브렐러 대상 release_translations 이 생성됩니다. 이 타깃은 qt_add_lrelease 으로 생성된 모든 ${target}_lrelease 타깃을 빌드합니다.

이 동작을 방지하려면 NO_GLOBAL_TARGETqt_add_lrelease 으로 전달하세요.

이 대상의 이름은 qt_add_lrelease 을 호출하기 전에 QT_GLOBAL_LRELEASE_TARGET 변수를 설정하여 재정의할 수 있습니다.

더 이상 사용되지 않는 명령 서명

이전 버전의 qt_add_lrelease 은 첫 번째 인수로 대상을 사용했습니다. 이 방법은 여전히 가능하지만 더 이상 사용되지 않습니다.

예제

주어진 .ts 파일을 .qm 파일로 변환하기 위해 myapp_lreleaserelease_translations 대상을 추가합니다. 또한 생성된 .qm 파일을 설치합니다. myapp_lrelease 타깃은 기본적으로 빌드됩니다.

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")

LRELEASE_TARGET 인수를 전달하여 생성된 대상의 이름을 지정할 수 있습니다:

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.