www.3195555.com,香港金财神,www.246bm.com,宝马论坛,www.2497.com,www.24583.com

返回首页
当前位置: 主页 > www.3195555.org >

第46篇 进阶(六) 国际化

时间:2019-10-09 01:05
  

  在第2篇中讲述如何显示中文时,曾提到使用QTextCodec和tr()的方式直接显示中文,其实这只是一种临时的方法,方便我们快速完成程序,显示效果。当真正要发布一个程序时,最好的方式是在程序中使用英文字符串,而后使用国际化工具进行翻译。

  国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),一个应用程序的国际化就是使该应用程序可以让其他国家的用户使用的过程。Qt支持现在使用的大多数语言,特别是:1.所有东亚语言(汉语、日语和朝鲜语)

  2.所有西方语言(使用拉丁字母)3.阿拉伯语4.西里尔语言(俄语和乌克兰语等)5.希腊语6.希伯来语7.泰语和老挝语8.所有在Unicode5.1中不需要特殊处理的脚本在Qt中,所有的输入部件和文本绘制方式对Qt所支持的所有语言都提供了内置的支持。Qt

  内置的字体引擎可以在同一时间正确而且精细的绘制不同的文本,这些文本可以包含来自众多不同书写系统的字符。在

  Qt中可以使用Qt Linguist工具来很容易的完成应用程序的翻译工作,在Qt中编写代码时要对需要显示的字符串调用tr()函数,完成代码编写后,对这个应用程序的翻译主要包含三步:1.运行lupdate工具从C++源代码中提取要翻译的文本,这时会生成一个.ts文件,这个文件是XML格式的;

  2.在Qt Linguist中打开.ts文件,并完成翻译工作;3.运行lrelease工具从.ts文件中获得.qm文件,它是一个二进制文件。这里的.ts文件是供翻译人员使用的,而在程序运行时只需要使用.qm文件,这两个文件都是与平台无关的。环境:

  二、更改项目文件三、使用lupdate生成.ts文件四、任何年龄都可发病,特马包中码彩图。使用QtLinguist完成翻译五、使用lrelease生成.qm文件六、使用.qm文件正文

  ”,类名为“MainWindow”,基类保持QMainWindow不变。2.建立完项目后,点击mainwindow.ui文件进入设计模式,先添加一个“

  ”菜单,刘建宏:中国足球现在是,再为其添加一个“&New”子菜单并设置快捷键为Ctrl+N(不会操作,查看这里),然后往界面上拖入一个Push Button。3.下面我们再使用代码添加几个标签,打开mainwindow.cpp文件,添加头文件

  函数会返回sourceText的译文;第二个参数disambiguation是消除歧义字符串,比如这里的password,如果一个程序中需要输入多个不同的密码,那么在没有上下文的情况下,就很难确定这个password到底指哪个密码。这个参数一般使用类名或者部件名,比如这里使用了mainwindow,就说明这个password是在mainwindow上的;第三个参数n表明是否使用了复数,因为英文单词中复数一般要在单词末尾加“s”,比如“1 message”,复数时为“2 messages”。遇到这种情况,就可以使用这个参数,它可以根据数值来判断是否需要添加“s”。4.运行程序效果如下图所示。

  我们要在项目文件中指定生成的.ts文件,每一种翻译语言对应一个.ts文件。打开myI18N.pro文件,在最后面添加如下一行代码:

  ”,对于.ts的名称可以随意编写,不过一般是以区域代码来结尾,这样可以更好的区分,例如这里使用了“zh_CN”来表示简体中文。最后需要先按下Ctrl+S保存该文件。三、使用

  完成翻译这一步一般是翻译人员来做的,就是在Qt Linguist中打开.ts文件,然后对字符串逐个进行翻译。我们在系统的开始菜单中启动Linguist(也可以直接在命令行输入“linguist”启动它;或者在Qt安装目录的tools目录下找到并启动它),然后点击界面左上角的“打开”图标,在弹出的文件对话框中进入项目目录,打开“myI18N_zh_CN”文件,这时整个界面如下图所示。

  下面来翻译程序。在翻译区域可以看到现在已经是要翻译成汉语,这是因为我们的.ts文件名中包含了中文的区域代码。如果这里没有正确显示要翻译成的语言,那么可以使用“编辑”→“翻译文件设置”菜单来更改。下面首先对“MainWindow”进行翻译,这里翻译为“应用程序主窗口”,然后按下Ctrl+Return(即回车键)完成翻译并开始翻译第二个字符串。按照这种方法完成所有字符串的翻译工作,如下表所示。

  生成.qm文件可以通过工具-外部-Qt语言家-发布翻译lrelease菜单项来完成该操作。这时会在概要信息处显示如下信息:

  Qt语言家实现国际化的例子,可以看到翻译一个程序其实是很简单的。Qt中还可以设置自动判断语言环境、动态进行语言更改等功能,详细内容可以参考帮助文档Internationalizationwith Qt或者参考《Qt Creator快速入门》第9章的相关内容。涉及到的源码:

  您需要登录才可以下载或查看,没有帐号?立即注册x点评问题已解决,全是单位文件的加密软件惹得祸!导致lupdate识别不到源代码中的tr() 浪费半下午时间!!发表于 2016-10-20 17:52

------分隔线----------------------------
最新文章
香港六宝典资料| 本港台高手论坛心水码| 今期香港红财神报彩图| 全年固定必中波色公式| 小鱼儿心水论坛藏宝图| 九龙图库开奖结果查询| 香港马报白小姐资料| 王中王开奖直播2018年香了港马| 六和高手论坛| 财神报玄机图二四六天天好彩2019|