- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Qt Creator快速入门》第2版 第9章 国际化、帮助系统和Qt插件 主 要 内 容 9.1 国际化(第1课时) 9.2 帮助系统(第2课时) 9.3 创建Qt插件(第3课时) 9.4 小结(第3课时) 9.1 国际化 国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),一个应用程序的国际化就是使该应用程序可以让其他国家的用户使用的过程。Qt支持现在使用的大多数语言,特别是: 所有东亚语言(汉语、日语和朝鲜语) 所有西方语言(使用拉丁字母) 阿拉伯语 西里尔语言(俄语和乌克兰语等) 希腊语 希伯来语 泰语和老挝语 所有在Unicode 5.1中不需要特殊处理的脚本 在Qt中,所有的输入部件和文本绘制方式对Qt所支持的所有语言都提供了内置的支持。Qt内置的字体引擎可以在同一时间正确而且精细的绘制不同的文本,这些文本可以包含来自众多不同书写系统的字符。 使用Qt Linguist翻译应用程序 在Qt中编写代码时要对需要显示的字符串调用tr()函数,完成代码编写后,对这个应用程序的翻译主要包含三步: 1.运行lupdate工具从C++源代码中提取要翻译的文本,这时会生成一个.ts文件,这个文件是XML格式的; 2.在Qt Linguist中打开.ts文件,并完成翻译工作; 3.运行lrelease工具从.ts文件中获得.qm文件,它是一个二进制文件。这里的.ts文件是供翻译人员使用的,而在程序运行时只需要使用.qm文件,这两个文件都是与平台无关的。 第一步:编写源码 QLabel *label = new QLabel(this); label-setText(tr(hello Qt!)); label-move(100,50); QLabel *label2 = new QLabel(this); label2-setText(tr(password,mainwindow)); label2-move(100,80); QLabel *label3 = new QLabel(this); int id = 123; QString name = yafei; label3-setText(tr(ID is %1,Name is %2).arg(id).arg(name)); label3-resize(150,12); label3-move(100,120); 这里向界面上添加了三个标签,因为这三个标签中的内容都是用户可见的,所以需要调用tr()函数。 tr( )函数 tr()函数一共有三个参数,它的原型如下: QString QObject::tr ( const char * sourceText, const char * disambiguation = 0, int n = -1 ) [static] 第一个参数sourceText就是要显示的字符串,tr()函数会返回sourceText的译文; 第二个参数disambiguation是消除歧义字符串,比如这里的password,如果一个程序中需要输入多个不同的密码,那么在没有上下文的情况下,就很难确定这个password到底指哪个密码。这个参数一般使用类名或者部件名,比如这里使用了mainwindow,就说明这个password是在mainwindow上的; 第三个参数n表明是否使用了复数,因为英文单词中复数一般要在单词末尾加“s”,比如“1 message”,复数时为“2 messages”。遇到这种情况,就可以使用这个参数,它可以根据数值来判断是否需要添加“s”,例如: int n = messages.count(); showMessage(tr(%n message(s) saved, , n)); 第二步,更改项目文件 要在项目文件中指定生成的.ts文件,每一种翻译语言对应一个.ts文件。打开myI18N.pro文件,在最后面添加如下一行代码: TRANSLATIONS = myI18N_zh_CN.ts 这表明后面生成的.ts文件的文件名为“myI18N_zh_CN.ts”,对于.ts的名称可以随意编写,不过一般是以区域代码来结尾,这样可以更好的区分,例如这里使用了“zh_CN”来表示简体中文。最后按下Ctrl+S保存该文件。 第三步,使用lupdate生成.ts文件 先要使用lupdate工具来提取源代码中的翻译文本,生成.t
您可能关注的文档
- 8月护士长检查记录.doc
- 8月新增人民币贷款近万亿创历史记录 房贷占比71.pptx
- 8氨基化反应.ppt
- 8正弦交流电路.ppt
- 8沉积岩沉积作用修正.ppt
- 8硬盘的保护和选购.ppt
- 8社会体育活动的分类指导.ppt
- 8第七章 儿童智力的发展.ppt
- 8第七章 动物群落在生态系统中的作用3.ppt
- 8第八章 技术进步与经济增.ppt
- 2025年贵州工业职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年西昌民族幼儿师范高等专科学校高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年西藏警官高等专科学校高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年贵州工商职业学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 2025年贵州工商职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年贵州农业职业学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年许昌职业技术学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年许昌职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
文档评论(0)