现在不少应用都是要求有多语言切换的, 使用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条评论
快来发表一下你的评论吧 !