lupdate 사용
lupdate
명령줄 도구는 C++ 소스, C++ 헤더, Java, Python, QML 및 UI 파일에서 번역 가능한 문자열을 찾아서 TS 파일을 생성하거나 업데이트합니다.
qmake로 빌드할 때는 명령줄 또는 .pro 파일에서 처리할 파일을 지정하세요.
CMake로 빌드할 때는 CMake 명령을 사용하여 TS 파일을 생성하거나 업데이트하는 대상을 추가하고 이를 QM 파일로 변환합니다. lupdate
도구는 대상을 빌드할 때 명령에 전달한 옵션으로 실행됩니다.
프로젝트 파일에서 번역을 지정하는 방법에 대한 자세한 내용은 애플리케이션 현지화를 참조하세요.
업데이트 구문
lupdate [options] [project-file]... lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file
Where:
options
는 하나 또는 여러 개의 업데이트 옵션을 의미합니다.project-file
는 프로젝트 구성 파일입니다.source-file
는 번역 가능한 문자열이 포함된 파일입니다.path
는 번역 소스 파일이 포함된 폴더의 경로입니다.@lst-file
lst-file에서 추가 파일 이름(한 줄에 하나씩) 또는 포함 경로(한 줄에 하나씩, 접두사가-I
)를 읽습니다.ts-files
는 생성하거나 업데이트할 TS 파일입니다.
최신 도움말을 보려면 입력합니다:
lupdate -help
업데이트 옵션
옵션 | 동작 |
---|---|
-help | 최신 도움말 정보를 표시하고 종료합니다. |
-no-obsolete | 더 이상 사용되지 않고 사라진 문자열을 모두 삭제합니다. |
-extensions <ext>[,<ext>]... | 지정된 확장자를 가진 파일만 처리합니다. 쉼표를 사용하여 목록에서 확장자를 구분합니다. 공백을 사용하지 마세요. 기본값은 java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,qs,qml,qrc 입니다. |
-pluralonly | 복수형 메시지만 포함합니다. |
-silent | 수행 중인 작업을 설명하지 마세요. |
-no-sort | TS 파일에서 컨텍스트를 정렬하지 마세요. |
-no-recursive | 디렉터리를 재귀적으로 스캔하지 않습니다. |
-recursive | 디렉터리를 재귀적으로 검색합니다(기본값). |
-I <includepath> or -I<includepath> | 이 추가 위치에서 포함 파일을 찾습니다. 여러 경로를 지정할 수 있습니다. |
-locations {absolute|relative|none} | TS 파일에 소스 코드 참조를 저장하는 방법을 지정하거나 재정의합니다.
위치를 지정하지 않으면 |
-no-ui-lines | UI 파일에 대한 참조에 줄 번호를 기록하지 마세요. |
-disable-heuristic {sametext|similartext} | 명명된 병합 휴리스틱을 비활성화합니다. 여러 번 지정할 수 있습니다. |
-project <filename> | 프로젝트의 설명이 포함된 JSON 형식의 파일 이름입니다. lprodump 도구를 사용하여 .pro 파일에서 파일을 생성할 수 있습니다. |
-pro <filename> | .pro 파일의 이름입니다. .pro 파일 구문이지만 다른 파일 접미사가 있는 파일에 유용합니다. 프로젝트가 재귀적으로 병합됩니다. 이 옵션은 더 이상 사용되지 않습니다. 대신 lupdate-pro 도구를 사용하세요. |
-pro-out <directory> | 후속 .pro 파일을 처리하기 위한 가상 출력 디렉토리입니다. |
-pro-debug | .pro 파일 처리 추적. 더 자세히 설명하려면 두 번 지정합니다. |
-source-language <language>[_<region>] | 새 파일에 대한 소스 문자열의 언어를 지정합니다. 지정하지 않으면 기본값은 POSIX입니다. |
-target-language <language>[_<region>] | 새 파일의 번역 언어를 지정합니다. 언어를 지정하지 않으면 lupdate 이 파일 이름에서 언어를 결정합니다. |
-tr-function-alias <function>{+=,=}<alias>[,<function>{+=,=}<alias>]... | += 를 사용하면 <alias> 을 <function> 의 대체 철자로 인식하고, =, 을 사용하면 <alias> 을 <function> 의 유일한 철자로 인식합니다.사용 가능한
|
-ts <ts-file>... | 출력 파일을 지정합니다. TRANSLATIONS 을 재정의합니다. |
-version | lupdate 버전을 표시하고 종료합니다. |
-clang-parser [compilation-database-dir] | clang을 사용하여 .cpp 파일을 구문 분석합니다. 그렇지 않으면 사용자 정의 파서를 사용합니다. 이 옵션을 사용하려면 구문 분석할 파일에 대한 clang 컴파일 데이터베이스(compile_commands.json )가 필요합니다. 이 파일이 포함된 디렉터리 경로를 명령줄, -clang-parser 옵션 바로 뒤 또는 프로젝트 파일에 지정합니다.qmake를 사용하는 경우 .pro 파일에 명령줄에 지정한 디렉터리가 우선합니다. 경로를 지정하지 않으면 |
-project-roots <directory>... | 프로젝트 루트 디렉터리를 하나 이상 지정합니다. -clang-parser 옵션을 사용할 때는 프로젝트 루트 아래의 파일만 번역 대상으로 고려됩니다. |
예제
CMake로 업데이트 사용
CMake를 사용하여 빌드할 때는 CMake 명령을 사용하여 대상에 대한 번역을 CMakeLists.txt 파일에 추가한 다음 대상을 빌드합니다.
다음 옵션 중 하나를 선택합니다:
- 앱과 같은 대상에 qt_add_translations를 사용합니다. 이것은 qt_add_lupdate 및 qt_add_lrelease를 호출합니다.
- 대상에
qt_add_lupdate
을 사용합니다.
대상(예: app_lupdate
)을 빌드하여 .ts 파일을 업데이트합니다. 모든 대상에 대한 .ts 파일을 업데이트하려면 update_translations
대상을 빌드합니다.
qmake와 함께 lupdate 사용
단일 QML 파일에 대한 번역 파일을 생성하려면 다음과 같이 하세요:
lupdate main.qml -ts main_en.ts
다른 언어(예: 프랑스어)에 대한 번역 파일을 만들려면 main_en.ts를 main_fr.ts로 복사하고 프랑스어 TS 파일의 문자열을 번역합니다.
lupdate
는 .qrc
파일에 나열된 QML 파일을 처리합니다:
RESOURCES += qml.qrc
모든 QML 파일을 lupdate
에서 처리하도록 하려면:
lupdate application.qrc -ts myapp_en.ts
.qrc
파일을 사용하지 않고 현재 작업 디렉터리(또는 그 하위 폴더)에 있는 모든 QML 파일을 처리합니다:
lupdate . -extensions qml -ts myapp_en.ts
QML 및 C++ 소스 파일 모두에서 번역 가능한 문자열을 확인합니다:
lupdate qml.qrc filevalidator.cpp -ts myapp_en.ts
프로젝트 파일에 언어를 지정하지 않고 영어와 프랑스어에 사용할 .ts 파일을 생성하려면 다음과 같이 하세요:
lupdate qml.qrc filevalidator.cpp -ts myapp_en.ts myapp_fr.ts
Qt Linguist 을 사용하여 파일을 읽고 번역을 삽입하는 번역가에게 TS 파일을 제공합니다.
XLIFF 형식 파일
TS 파일 형식은 버전 관리 시스템에서 사용할 수 있는 사람이 읽을 수 있는 간단한 XML 형식입니다. 또한 lupdate
에서 로컬라이제이션 교환 파일 형식(XLIFF) 파일(.xlf
)을 처리할 수 있습니다.
참고: 현재 XLIFF 버전 1.1 및 1.2만 지원됩니다.
XLIFF 파일은 Qt Linguist 에서 열고 편집할 수 있습니다.
© 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.