Qt 5.12.10 国际化

网上有资料但是不全,所以这里记录一份比较全的

 

1.创建项目

 

 

 

 

2.编辑 demo.cpp

这里写button用来做国际化示例,运行软件后是这个样子

复制代码
#include "demo.h"
#include "ui_demo.h"
#include <QPushButton>

demo::demo(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::demo)
{
    ui->setupUi(this);

    // 按钮的文字需要使用 tr() 包含起来
    QPushButton *btn = new QPushButton(tr("test"), this);
    // 设置按钮大小
    btn->resize(100, 50);
}

demo::~demo()
{
    delete ui;
}
复制代码

 

 

 

 

3.编辑Pro文件,添加一个配置,cn.ts 是翻译文件,cn这个文件的名字可以自定义。

TRANSLATIONS += \
    cn.ts

 

 

 

 

4.点击【工具】【外部】【Qt预言家】【更新翻译】

 

 

 

 

 

 

 

 

 5.打开Qt预言家,将ts文件放进去,找到需要翻译的地方,输入翻译后的文字

 

 

 

 

 

 

6.点击【文件】【发布】,然后会生成 qm 文件

 

7.对翻译文件做静态加载,然后运行软件就可以看见按钮的文字是中文了

编辑 main.cpp  做静态加载

复制代码
#include "demo.h"

#include <QApplication>
#include <QTranslator>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTranslator trans;
    // load 需要传递两个参数,文件名称、文件目录
    trans.load("cn.qm", QApplication::applicationDirPath());
    a.installTranslator(&trans);

    demo w;
    w.show();
    return a.exec();
}
复制代码

 

8.将生成的 cn.qm 文件放到debug文件夹下,然后运行

现在显示出来的就是中文了。

 

posted @   十一的杂文录  阅读(501)  评论(1编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示