• 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文件夹下,然后运行

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

  • 相关阅读:
    [ USACO 2018 OPEN ] Out of Sorts (Platinum)
    [ USACO 2018 OPEN ] Out of Sorts (Gold)
    [ USACO 2018 OPEN ] Out of Sorts (Silver)
    [ BZOJ 4236 ] JOIOJI
    [ HAOI 2012 ] 容易题
    [ HAOI 2008 ] 玩具取名
    「BZOJ 4502」串
    Codeforces 493 E.Devu and Birthday Celebration
    「TJOI 2018」教科书般的亵渎
    「TJOI 2018」游园会 Party
  • 原文地址:https://www.cnblogs.com/shiyixirui/p/15011752.html
Copyright © 2020-2023  润新知