目录
- 1.在工程手动创建`languages`文件夹
- 2.修改`CMakeLists.txt`
- 3.在qml上随便添加一下文字内容
- 4.`执行CMake`
- 5.把`.ts`和`.qm`添加到项目中
- 6.翻译成英文的示例
- 7.在main里面加载语言文件
- 8.启动软件自动获取电脑的语言
- 遗留问题
参考:Qt 项目(CMake)设置国际化支持
1.在工程手动创建languages文件夹
 

2.修改CMakeLists.txt
 
set(TS_FILES
    "${CMAKE_SOURCE_DIR}/languages/aidi_zh_CN.ts"
    "${CMAKE_SOURCE_DIR}/languages/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()
3.在qml上随便添加一下文字内容
例如:
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")
    Column {
        id: column
        y: 20
        spacing: 20//子项之间的间距
        Text {
            id:sfsd
            text: qsTr("苹果")
        }
        Text {
            text: qsTr("香蕉")
        }
        Text {
            text: qsTr("西瓜")
        }
    }
}
文本需要使用qsTr( )包裹
4.执行CMake
 

5.把.ts和.qm添加到项目中
 

6.翻译成英文的示例
选中.ts文件,使用Qt语言家打开
 
 
 
 
 
7.在main里面加载语言文件
#include <QTranslator>
    QTranslator qtTranslator;
    qtTranslator.load(":/languages/aidi_en_US.qm");//英文
    // qtTranslator.load(":/languages/aidi_zh_CN.qm");//中文
    app.installTranslator(&qtTranslator);
效果
 
 
8.启动软件自动获取电脑的语言
    QLocale::Language lab = QLocale::system().language();
    if(QLocale::Chinese == lab)
    {
        qDebug() << "电脑系统用的是中文n" ;
    }
    else if(QLocale::English== lab){
        qDebug() << "电脑系统用的是英文n" ;
    }
遗留问题
我只是实现了在main()函数里加载语言,
如果在程序中修改语言->记录语言配置->需要将程序重启->再加载相应的语言文件
如何实现修改语言,可以立马生效的方法,知道的欢迎在评论区留言!












![[书生·浦语大模型实战营]——在茴香豆 Web 版中创建自己领域的知识问答助手](https://img-blog.csdnimg.cn/direct/20f83b9661ae450c9737d1c320030803.png)





