Как интегрировать интернационализацию QT в CMake? - PullRequest
19 голосов
/ 12 апреля 2011

Привет всем,

Я пытаюсь использовать интернационализацию 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?

Заранее спасибо

Ответы [ 3 ]

7 голосов
/ 15 апреля 2011

In 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})
4 голосов
/ 12 апреля 2011

Перевод двоичных файлов (* .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 как можно скорее.

0 голосов
/ 25 января 2019

вы можете использовать lupdate.exe, linguist.exe и lrelease.exe из qt / [qt_version] / [msvc | mingw | ...] / bin /?

, вы можете использовать его так:

Usage:
    lupdate [options] [project-file]
    lupdate [options] [source-file|path]... -ts ts-files
Options:
    -help  Display this information and exit.
    -noobsolete
           Drop all obsolete strings.
    -extensions [,]...
           Process files with the given extensions only.
           The extension list must be separated with commas, not with whitespace.
           Default: 'ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx'.
    -pluralonly
           Only include plural form messages.
    -silent
           Do not explain what is being done.
    -version
           Display the version of lupdate and exit 

Итак, [source-file | path] - это ваш выбор, как я думаю.попробуйте вызвать его со списком имен исходных файлов.

...