c++ QT中cmake项目,直接在cmakelist中添加翻译设置

在cmakelist中添加下列代码

方法一、

复制代码
set(TS_FILES
   ${CMAKE_CURRENT_SOURCE_DIR}/OCCQt_zh_CN.ts
)

find_program(LUPDATE_EXECUTABLE lupdate)
find_program(LRELEASE_EXECUTABLE lrelease)

foreach(_chinese_file ${TS_FILES})

    execute_process(
        COMMAND ${LUPDATE_EXECUTABLE} -recursive ${CMAKE_SOURCE_DIR} -ts ${_chinese_file})
    execute_process(
        COMMAND ${LRELEASE_EXECUTABLE} ${_chinese_file})
    execute_process(COMMAND ${CMAKE_COMMAND} -E copy 
${CMAKE_CURRENT_SOURCE_DIR}/OCCQt_zh_CN.qm translations/)

endforeach()

第一个execute_process是生成.ts,第二个execute_process是生成.qm,第三个execute_process是复制.qm到执行目录。

进行cmake,生成的.qm文件就可以在项目中使用:

复制代码
    QTranslator translator;
    translator.load(":/translations/OCCQt_zh_CN.qm", app.applicationDirPath());
    app.installTranslator(&translator)

方法二、

复制代码
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}")

set(languages
    chinese
    traditional
)
set(files ${files} resources/resources.qrc)
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES ${files})
find_program(LUPDATE_EXECUTABLE lupdate)
find_program(LRELEASE_EXECUTABLE lrelease)
foreach(_lan ${languages})
    set(_ts_file "${TS_DIR}/${PROJECT_NAME}_${_lan}.ts")
     execute_process(
       COMMAND ${LUPDATE_EXECUTABLE} -recursive ${CMAKE_SOURCE_DIR}/srcs -ts ${_ts_file})
           execute_process(
        COMMAND ${LRELEASE_EXECUTABLE} ${_ts_file}
    )
        execute_process(
        COMMAND ${CMAKE_COMMAND} -E copy ${TS_DIR}/${PROJECT_NAME}_${_lan}.qm translations/
    )
endforeach()
相关推荐
千谦阙听5 小时前
C++类和对象(中):默认成员函数、构造与析构、拷贝构造、运算符重载
开发语言·c++·学习
weixin_307779135 小时前
一维无粘 Burgers 方程的激波形成问题:MacCormack 格式求解
c++·算法·matlab
HugoStudio_SWAN6 小时前
洛谷 B4500 / B4449 / B3843 凯撒密码、密码强度与密码合规——加密与安全的三道门
c++·学习·程序人生·算法·安全
雾里看山6 小时前
源码目录、构建目录与 out-of-source build
c++·软件构建·cmake
kaixin_learn_qt_ing7 小时前
Qt Model/View
qt
Quz8 小时前
QML MouseArea:鼠标拖拽与滚轮缩放
qt·qml
渡我白衣8 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
如意猴9 小时前
【C++】001--C++入门(1)
开发语言·c++
hetao17338379 小时前
2026-09-01~09-04 hetao1733837 的刷题记录
c++·算法
CHPCWWHSU10 小时前
DeepSeek-Harness-Qt将浏览器端Agent装入桌面应用
开发语言·qt