【原创】VS2010+QT4.8.1多语言翻译例子程序

前言

本文使用的环境如下:操作系统:WIN7,QT library :4.8.1,IDE :VS2010。

基本原理

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

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

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

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

步骤

1、生成TS文件

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

clip_image001

clip_image002

2、编辑TS文件

用QT自带的linguist工具,对代码里需要翻译的内容进行翻译,完成后进行发布,一般会在TS当前目录下生成QM文件

clip_image003

3、在QRC文件加入QM文件:

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

clip_image004

附上修改前代码:

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

}

 

转载于:https://www.cnblogs.com/xiaole10368/p/5384421.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值