Qt之国际化
2016-07-04 09:29
253 查看
Qt中的国际化的方法有很多,常用的有使用QTextCodec类和使用tr()函数。前者将编码名称写到代码里面,除非你使用Unicode编码, 否则国际化依然是一个问题;后者就不会有这个问题,并且这也是Qt推荐的做法。因此,我们主要来说使用tr()函数的方法进行应用程序的国际化。 接下来讲解一下Qt国际化实现步骤: 一、创建一个QMainWindow用来测试,界面只有两个按钮,很简单!
二、在项目工程文件.pro中添加TRANSLATIONS += qtlanguage.ts,ts是我们需要创建的翻译文件,这个文件的名字是任意的,不过后缀名需要是ts!
三、然后我们打开命令提示符,进入到工程所在目录,比如我的是D:\Workpace\Qt-Workspace\qtLanguageTest,也就是pro文件所在的文件夹, 然后输入命令lupdate qtlanguage.pro
注意:如果此时提示命令不存在,请注意将Qt的bin目录添加到环境变量中。此时,如果更新的数目,说明ts文件创建成功。
如果你有兴趣的话,可以用记事本打开这个ts文件,这个文件实际上是一个XML文件,结构很清晰。不过,我们要使用专业的翻译工具进行翻译。
四、使用翻译工具翻译ts文件,Qt提供了一个工具:Qt Linguist,你可以在开始菜单的Qt项下面的Tools中找到, 或者在安装目录的bin中找到。用它可以打开我们的ts文件,然后进行我们的翻译工作:
打开Qt Linguist后,能够发现跳出了一个对话框(在Linux下测试的时候未发现,window中有这个功能),需要选择源语言和目标翻译语言!
完全翻译完成后保存文件,然后在文件菜单下有个“发布”。点击这个按钮,工程目录下会有一个atlanguage.qm文件,
这就是我们翻译得到的文件。Qt的qm文件实际上是二进制格式的,因此它经过了高度的优化,体积很小。
四、在mian函数中使用翻译文件atlanguage.qm:
#include <QtGui/QApplication> #include "qtlanguagetest.h" #include <QTranslator> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTranslator qtTranslator; qtTranslator.load("qtlanguage.qm"); qApp->installTranslator(&qtTranslator); QtLanguageTest w; w.show(); return a.exec(); }
翻译后的效果如下所示:
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- 浅谈Ruby on Rails的国际化
- JavaScript面对国际化编程时的一些建议
- Qt定时器和随机数详解
- php程序的国际化实现方法(利用gettext)
- Qt实现图片移动实例(图文教程)
- Qt for Android开发实例教程
- PHP中使用gettext解决国际化问题的例子(i18n)
- YII Framework框架教程之国际化实现方法
- Java国际化简介_动力节点Java学院整理
- QModelIndex/Role/Model介紹<二>
- Qt Model/View/Delegate浅谈 - QAbstractListModel
- Qt Model/View/Delegate浅谈 - roleNames()
- QT历程(一):与CryptoJs对应的AES加密
- JFinal使用Freemarker作为展示层中的国际化配置使用
- 基于PyQt5的快速开发框架QFramer
- OSX下安装PyQt
- ok6410开发板移植DirectFB手记