Как интегрировать интернационализацию QT в CMake?
Приветствуем всех,
Я пытаюсь использовать интернационализацию QT с помощью CMake.
Я сконфигурировал свой файл cmake следующим образом:
#Internalization - this should generate core_jp.ts ?
SET(rinzo_core_TRANSLATIONS
i18n/core_jp.ts
)
#these are my source files in the project
SET(FILES_TO_TRANSLATE
${rinzo_core_srcs}
${rinzo_core_moh_srcs}
)
QT4_CREATE_TRANSLATION(QM_FILES ${FILES_TO_TRANSLATE} ${rinzo_core_TRANSLATIONS})
QT4_ADD_TRANSLATION(QM ${rinzo_core_TRANSLATIONS})
Но он не генерирует никаких файлов TS и QM.
Мои вопросы -
1.Cmake(используя инструменты QT) генерирует TS файлы, автоматически извлекающие методы "tr()" из источника? (это означает, что мне не нужно создавать какой-либо файл TS, а выше i18n/core_jp.ts будет автоматически размножаться)
2. Что это за файлы QM?
Заранее спасибо
Ответы
Ответ 1
В документации CMake смотрите макросы QT4_CREATE_TRANSLATION
и QT4_ADD_TRANSLATION
.
Итак, вы должны сделать следующее:
SET(Lang_files
example.ts
)
...
QT4_CREATE_TRANSLATION(LangSrcs ${Lang_files})
...
ADD_EXECUTABLE(project_name ... others sources ... ${LangSrcs})
Ответ 2
Перевод двоичных файлов (*.qm) в соответствии с http://itk.org/Wiki/CMake:How_To_Build_Qt4_Software
Также из нижней части этого веб-сайта
Usage - Updating the .ts files
Если вы хотите, чтобы он обрабатывал все ваши исходные файлы (поиск новых текстов для перевести), настроить cmake для включения UPDATE_TRANSLATIONS, а затем сделайте ваш проект. CMake изменит ваш .ts в папках SOURCE в дополнение к генерации .qm файлов. ПРЕДУПРЕЖДЕНИЕ: Имейте в виду, что CMake будет обновлять исходные файлы .ts, а это означает, что если > вы сделаете make clean, он УДАЛЯЕТ ваши исходные файлы .ts! Поэтому было бы неплохо выключить UPDATE_TRANSLATIONS как можно скорее.
Ответ 3
Вы можете использовать lupdate.exe, linguist.exe и lrelease.exe из qt/[qt_version]/[msvc | mingw |...]/bin/?