多语言开发的流程详解

描述

现在不少应用都是要求有多语言切换的, 使用QT开发上位机也同样需要做多语言功能, 不过QT是自带了多语言翻译功能, 可以很方便的借助原生工具进行, 下面就简单来看看多语言开发的流程!

| 创建页面

根据下方页面创建一个简单的页面, 布局哪些就不要太在意, 只有能体现出效果即可!

上位机

| 生成资源

在PRO文件中加入一段配置, 增加语言文件生成脚本:

 

TRANSLATIONS += 
    cn.ts 
    en.ts

 

图片如下:

上位机

文件结构:

上位机

点击更新翻译:

上位机

查看资源:

上位机

| 翻译语言

根据自己项目构建选择合适的工具, 下图就是根据本项目构建选择的, 读者根据自己项目选择即可:

上位机

导入文件, 中文语言就选中文相关配置:

上位机

导入文件, 英文语言就选择英文相关配置:

上位机

分别对不同语言进行翻译, 需要对全部语言进行翻译:

上位机

点击生成语言包:

上位机

在文件结构中可以看到生成的语言包:

上位机

| 编写代码

1、绑定触发事件, 中文和英文都要绑定, 下图只体现了中文, 英文也是一样的道理:

上位机

2、编写代码:

 

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QTranslator"
#include "QDebug"

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

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_action_triggered()
{
    QTranslator *translator = new QTranslator;
    if( translator->load("../project/cn.qm") )
    {
        qApp->installTranslator(translator);
        qDebug() << "ok";
    }
    ui->retranslateUi(this);
}

void MainWindow::on_action_2_triggered()
{
    QTranslator *translator = new QTranslator;
    if( translator->load("../project/en.qm") )
    {
        qApp->installTranslator(translator);
        qDebug() << "ok";
    }
    ui->retranslateUi(this);
}

 

注意: 如果语言包加载不成功, 看看路径是否是正确的, 再看看生成的文件是否有问题!

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分