刚开始听到这个名字我还觉得很高大上,最后发现这不就是系统语言选择吗,适应不同国家的人
先在widget.cpp写个要翻译的东西,我这里想做英语翻译成汉语、日语、泰语三种
#include "widget.h"
Widget::Widget(QWidget *parent): QWidget(parent){
QLabel *label = new QLabel(this);
label->setText(tr("hello Qt!"));
label->move(100,50);
QLabel *label2 = new QLabel(this);
label2->setText(tr("password","mainwindow"));
label2->move(100,80);
QLabel *label3 = new QLabel(this);
int id = 123;
QString name = "yafei";
label3->setText(tr("ID is %1,Name is %2").arg(id).arg(name));
label3->resize(150,12);
label3->move(100,120);
}
Widget::~Widget()
{
}
然后在.pro文件中加一句TRANSLATIONS = xxx_zh_CN.ts,这个xxx是你pro文件名字,zh_CN是中国大陆,假如我们要添加日文,泰文那就这样
Qinternation_th.ts
Qinternation_ja.ts
一次放一个到TRANSLATIONS =这个后面,然后Ctrl+S,会在你项目文件下生成ts文件
然后最好先点击更新翻译
然后打开你对应的Linguist
左上角文件打开,你要翻译几个一次直接打开就好
我之前以为他自动翻译的,没想到还得自己手动翻译,点击有道翻译然后翻译然后记得打上每个前面的对钩,然后保存,可以选择在Linguist中发布
也可以回到Qt
这下就上次生成了.qm文件
然后编写代码:
#include "widget.h"
#include <QApplication>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
//translator.load(":/Qinternation_zh_CN.qm");
//translator.load(":/Qinternation_th.qm");
translator.load(":/Qinternation_ja.qm");
a.installTranslator(&translator);
Widget w;
w.show();
return a.exec();
}
就ok了