Qt 项目(CMake)设置国际化支持

在CMakeLists.txt中配置lupdate和lrelease程序,通过execute_process命令遍历ts文件列表,自动更新和编译翻译文件。即使cmake运行多次,已翻译的内容也不会丢失,如果有不想要的修改,可以撤销(revert)。
摘要由CSDN通过智能技术生成

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掉就好了。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值