先写下如何用CMake队QT的国际化ts文件进行更新
find_package(Qt5LinguistTools)
SET(Lang_files ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/XXX.ts)
QT5_CREATE_TRANSLATION(LangSrcs ${Lang_files})
add_executable(${target} WIN32 ${sources} ${headers} ${LangSrcs} )
以上四行,在source文件目录下的CMakeLists.txt里。
问题:
CMake编译QT工程,生成的工程如果进行Clean或者Rebuild,ts文件(翻译文件)的翻译信息会丢失,导致需要经常备份最新翻译文件,下次cmake之前替换才能更新。
解决办法,把ts文件放在新目录里,例如TsFile目录,在目录里放一个CMakeLists.txt文件,写一句话set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM 1)
这时候source目录下的CMakeLists.txt里的SET(Lang_files ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/XXX.ts)也要改到相应目录,不然当然更新不正确。
正确如下:SET(Lang_files ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/TsFile/XXX.ts)