在网上看了很多qt多国语言的实现,总感觉不够详细,因此写一篇记录下,希望对新手有用
在.Pro文档中加入需要国际化转化的语言
TRANSLATIONS += English.ts\
Chinese.ts
点击更新翻译(lupdate)
在你的目录文档处会出现2个ts文档
4.在QT的安装目录下找到Linguist(可以从开始菜单找也可以右击桌面图标打开文件位置找到这个)
5.打开界面如下:
6.从文件菜单中打开刚刚的2个ts文件(逐个打开)
例如我上面的2个,先打开Chinese.ts,弹出窗口设置如下
出现如下窗口
将上述红色圈圈内的条目翻译,填入为下面框内,完成后点击文件菜单中的发布
会自动在ts文档处生成同名的文档.qm
此时基本完成所有翻译操作,下面代码实现切换功能
.h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_3_clicked();
void on_pushButton_4_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
.cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTranslator>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_3_clicked()
{
QTranslator m;
m.load("G://English.qm");
qApp->installTranslator(&m);
this->ui->retranslateUi(this);
}
void MainWindow::on_pushButton_4_clicked()
{
QTranslator m;
m.load("g:/Chinese.qm");
qApp->installTranslator(&m);
this->ui->retranslateUi(this);
}
效果图不知道怎么上传flash,自己试把。尴尬(备注:程序内部如果需要翻译建议先全部写成英文格式为: tr("translator"))