现在不少应用都是要求有多语言切换的, 使用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);
}
注意: 如果语言包加载不成功, 看看路径是否是正确的, 再看看生成的文件是否有问题!
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !