前言
本文使用的环境如下:操作系统:WIN7,QT library :4.8.1,IDE :VS2010。
基本原理
为了在使用多语言,必须做两件事情:
1,把想要翻译的字符串放入tr()中,如 QString str=tr("Legal");
2, 在开始的时候载入预先制作好的翻译文件(.qm)。
以下利用Qt提供的工具,把翻译文件制作出来,并在程序中加载。
步骤
1、生成TS文件
QT的国际化需要TS文件,我们可以通过以下方法创建TS文件
2、编辑TS文件
用QT自带的linguist工具,对代码里需要翻译的内容进行翻译,完成后进行发布,一般会在TS当前目录下生成QM文件
3、在QRC文件加入QM文件:
双击QRC文件,按照以下配置进行配置,主要用于load()函数
附上修改前代码:
#include <Qpushbutton> #include <QApplication> #include <Qwidget> #include <QTextCodec> #include <QObject> #include <QTranslator> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget windows; windows.setMinimumSize(300,200); windows.setMaximumSize(300,200); QPushButton QPushButton_test1(QObject::tr("test1"),&windows); QPushButton_test1.setGeometry(20,20,100,30); QPushButton QPushButton_test2(QObject::tr("test2"),&windows); QPushButton_test2.setGeometry(20,60,100,30); QPushButton QPushButton_test3(QObject::tr("test3"),&windows); QPushButton_test3.setGeometry(20,100,100,30); windows.show(); return app.exec(); }
修改后代码:
#include <Qpushbutton> #include <QApplication> #include <Qwidget> #include <QTextCodec> #include <QObject> #include <QTranslator> int main(int argc, char *argv[]) { QApplication app(argc, argv); /*新建翻译对象,并加载本地QM文件*/ QTranslator *translator=new QTranslator(0); translator->load(":/test_zh.qm"); app.installTranslator(translator); QWidget windows; windows.setMinimumSize(300,200); windows.setMaximumSize(300,200); QPushButton QPushButton_test1(QObject::tr("test1"),&windows); QPushButton_test1.setGeometry(20,20,100,30); QPushButton QPushButton_test2(QObject::tr("test2"),&windows); QPushButton_test2.setGeometry(20,60,100,30); QPushButton QPushButton_test3(QObject::tr("test3"),&windows); QPushButton_test3.setGeometry(20,100,100,30); windows.show(); return app.exec(); }