cmake编译文件如何不借用外部工具生成ts、qm文件
在CmakeLists.txt中添加如下代码
//生成ts文件的文件夹
set(TS_DIR "${CMAKE_SOURCE_DIR}/resource/trans")
set(TS_FILES
"${TS_DIR}/aidiapp.ts"
"${TS_DIR}/aidi_zh_CN.ts"
"${TS_DIR}/aidi_zh_TW.ts"
"${TS_DIR}/aidi_en_US.ts"
)
//模拟更新和发布的命令代码
find_program(LUPDATE_EXECUTABLE lupdate)
find_program(LRELEASE_EXECUTABLE lrelease)
//生成ts和qm文件
foreach(_ts_file ${TS_FILES})
execute_process(
COMMAND ${LUPDATE_EXECUTABLE} -recursive ${CMAKE_SOURCE_DIR} -ts ${_ts_file})
execute_process(
COMMAND ${LRELEASE_EXECUTABLE} ${_ts_file})
endforeach()
注意:每次cmake都会更新ts文件,相应的qm也会变,且可能有的朋友也和我一样担心会把之前翻译好的覆盖掉,实际证明不会发生这种情况。如果每次cmake以后ts都会有修改,如果没有想要添加的翻译,直接revert掉就好了。