VS2010中Qt翻译文件的创建与使用范例

操作系统:WINXP

QT library :4.8.5

IDE :VS2010。

 

基本原理


 为了在使用多语言,必须做两件事情:


 1.把想要翻译的字符串放入tr()中,如 QString str=tr("Legal");


 2. 在开始的时候载入预先制作好的翻译文件(.qm)。


 以下利用Qt提供的工具,把翻译文件制作出来,并在程序中加载。

 

 1.生成TS文件


   QT的国际化需要TS文件,我们可以通过以下方法创建TS文件

 

 VS2010中Qt翻译文件的创建与使用范例 - weyresearch - weyresearch的博客


VS2010中Qt翻译文件的创建与使用范例 - weyresearch - weyresearch的博客

 

 2.lupdate

 

VS2010中Qt翻译文件的创建与使用范例 - weyresearch - weyresearch的博客

 

 3. 运行Qt Linguist,打开上一步生成的*.ts文件,进行翻译,翻译完毕后lrelease


 4.在QRC文件加入新生成的QM文件:


   双击QRC文件,按照以下配置进行配置,主要用于load()函数

 

VS2010中Qt翻译文件的创建与使用范例 - weyresearch - weyresearch的博客

附上修改前代码:

#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();
}


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值