欢迎来到天天文库
浏览记录
ID:36698579
大小:987.60 KB
页数:18页
时间:2019-05-10
《《Qt多国语言国际化》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第15章Qt多国语言国际化15.1概念15.2实例15.1概念15.1.1QString、QTranslator等类和tr()函数的作用在支持国际化的过程中,一般在Qt中利用QString、QTranslator等类和tr()函数能够很方便的完成加入国际化的支持,具体工作如下:(1)使用QString对象来表示所有用户可见的文本。(2)使用tr()函数来取得所有需要翻译的文本。(3)使用QString::arg()来组织动态文本。比如下面的字符串用来表示任务的完成情况:QStringm=tr(“M
2、issionstatus:“)+x+tr(“of“)+y+tr(”arecompleted”);(4)利用QTranslator::load()和QCoreApplication::installTranslator()来读取对应的翻译之后的资源文件。15.1.2*.qm文件的生成对于翻译工作者,主要是利用Qt提供的工具lupdate、linguist和lrelease来协助翻译工作并生成最后需要的.qm文件,它包括以下内容:(1)利用lupdate工具从源代码中扫描并提取需要翻译的字符串,生成.
3、ts文件。类似编译时用到的qmake,运行lupdate时我们也需要指定一个.pro的文件,这个.pro文件可以单独创建,也可以利用编译时用到的.pro文件。(2)利用linguist工具来协助完成翻译工作,即打开前面用lupdate生成的.ts文件,对其中的字符串逐条进行翻译并保存。(3)利用lrelease工具处理翻译好的.ts文件,生成格式更为紧凑的.qm文件。这便是翻译工作者最终需要提供的资源文件,它所占的空间比.ts文件小,但基本不具有可读性,只有QTranslator能正确的识别它。1
4、5.2实例5.2.1实例1(1)新建一个GUI工程TestHello.pro,然后在UI文件上添加两个按钮,并分别把文本修改为hello、china,如图15.1所示。5.2.1实例1(2)修改TestHello.pro文件,添加:TRANSLATIONS=TestHello.ts(3)编译。假如没有编译而进行下面的步骤,生成的ts文件只是一个只有标题栏的框架。(4)编译完成后,假如是windows下就cmd,假如是linux就开终端。单击“开始”->“所有程序”->“QtSDKbyNokiaV2
5、010.03(OpenSource)”->“QtCommondPrompt”命令打开“QtCommondPrompt”窗口,cd进入TestHello.pro工程目录,执行命令:lupdateTestHello.pro5.2.1实例1在工程下生成一个ts文件,假如没有编译的话,会提示Found1sourcetext。假如编译后,会提示Found3sourcetext,如图15.2所示。5.2.1实例1(5)单击“开始”->“所有程序”->“QtSDKbyNokiaV2010.03(OpenSour
6、ce)”->“Tools”->“QtLinguist”命令,运行Qt自带工具QtLinguist。单击菜单“文件”→“打开”命令,选择“TestHello.ts”文件,单击“打开”按钮,然后根据需要设置源语言和目标语言,此处为默认状态:源语言为任意国家语言,目标语言为china国家的chinese。(6)在第二栏选择要翻译的字符串,在下面两行中输入对应的翻译文字,然后单击上面的按钮。5.2.1实例1(7)单击“File”→“release”,或者在命令行输入“lreleaseTestHello.p
7、ro”,生成TestHello.qm文件,如图15.3所示。5.2.1实例1(8)修改源代码。添加前,具体代码如下:intmain(intargc,char*argv[]){QApplicationa(argc,argv);MainWindoww;w.show();returna.exec();}5.2.1实例1添加后,具体代码如下:#includeintmain(intargc,char*argv[]){QApplicationa(argc,argv);QTransla
8、tor*translator=newQTranslator;translator->load("../TestHello.qm");a.installTranslator(translator);MainWindoww;w.show();returna.exec();}15.2.2实例2此实例是用一个下拉菜单来选择语言,然后下面有一个需要翻译文字的标签。(1)在头文件LangSwitch.h中定义了类LangSwitch,创建用户界面。#include
此文档下载收益归作者所有