如何将QT国际化与CMake整合?

Ash*_*iya 19 c++ qt qt4 cmake internationalization

问候所有,

我正在尝试使用CMake进行QT国际化.我已经配置了我的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})
Run Code Online (Sandbox Code Playgroud)

但它不会生成任何TS或QM文件.

我的问题 -

1.Cmake(通过使用QT工具)生成TS文件自动从源中提取"tr()"方法吗?(这意味着我不必创建任何TS文件,上面的i18n/core_jp.ts将自动生成)

2. QM文件有什么特别之处?

提前致谢

Nas*_*zta 7

CMake文档中查看QT4_CREATE_TRANSLATIONQT4_ADD_TRANSLATION宏.

所以你应该做到以下几点:

SET(Lang_files
  example.ts
)
...
QT4_CREATE_TRANSLATION(LangSrcs ${Lang_files})
...
ADD_EXECUTABLE(project_name ... others sources ... ${LangSrcs})
Run Code Online (Sandbox Code Playgroud)


Rom*_*her 4

根据http://itk.org/Wiki/CMake:How_To_Build_Qt4_Software翻译二进制文件 (*.qm)

也来自该网站的底部

Usage - Updating the .ts files
Run Code Online (Sandbox Code Playgroud)

当您希望它处理所有源文件(寻找要翻译的新文本)时,请配置 cmake 以打开 UPDATE_TRANSLATIONS,然后创建您的项目。除了生成 .qm 文件之外,CMake 还将修改 SOURCE 文件夹中的 .ts 文件。警告:请注意,CMake 将更新源 .ts 文件,这意味着如果>您执行 make clean,它将删除您的源 .ts 文件!因此,最好尽快关闭 UPDATE_TRANSLATIONS。