当前位置: 首页 > news >正文

邯郸建网站沈阳关键词优化报价

邯郸建网站,沈阳关键词优化报价,工信部备案网站,网站开发师培训基本概念 1、使用QString对象表示所有用户可见的文本。由于QString内部使用Unicode编码实现,所以它可以用 于表示所有需要向用户呈现的文本。当然,对于仅程序员可见的文本并不需要都变为QString对象,可利 用Qt提供的QCString或原始的“char …

基本概念

1、使用QString对象表示所有用户可见的文本。由于QString内部使用Unicode编码实现,所以它可以用 于表示所有需要向用户呈现的文本。当然,对于仅程序员可见的文本并不需要都变为QString对象,可利 用Qt提供的QCString或原始的“char *”。

2、使用tr()函数获取所有需要翻译的文本。在Qt的翻译机制下,QObject::tr()函数可以帮助程序员取得 翻译之后的文本。对于从QObject继承而来的类,QObject::tr()函数最终由QMetaObject::tr()实现。在某 些时候,如果无法使用QObject::tr()函数,则可以直接调用QCoreApplication::translate()取得翻译之后 的字符串。

3、使用QString::arg()方法组织动态文本。有些时候,一段文本需要由一些静态文本和动态变量组合起 来,如常见的情况“printf(“The value of i is: %d”, i)”。对于这种动态文本的翻译,由于语言习惯的问题, 如果简单地采用这种连接字符串的方法,则可能会带来一些问题,如下面的字符串用于表示任务的完成 情况:

QString m = tr("Mission status: " )+ x + tr("of ") + y +tr("are completed");

其中,x和y是动态的变量,三个字符串被x和y分隔开,它们能够被很好地编译,因为“x of y”是英语中分 数的表示方法,如4 of 5是分数4/5,在不同的语言中,分子和分母的位置可能是颠倒的,在这种情况 下,数字4和5的位置在翻译时无法被正确地放置。由此可见,孤立地翻译被分隔开的字符串是不行的, 改进的办法是使用QString:: arg()方法:

QString m = tr("Mission status: %1 of %2 are completed").arg(x).arg(y);

4、利用QTranslator::load()和QCoreApplication::installTranslator()函数读取对应的翻译之后的资源文 件。翻译工作者将提供包含翻译之后的字符串的资源文件“*.qm”,程序员还需要做的是定义 QTranslator对象,并使用load()函数读取相应的“.qm”文件,利用QCoreApplication:: installTranslator()函数安装QTranslator对象。

多国语言国际化的实现

多国语言国际化的实现,主要是利用Qt提供的工具lupdate、linguist和lrelease(它们都可以在Qt安 装目录的“bin”文件夹下找到)协助翻译工作并生成最后需要的“.qm”文件,它包括以下内容。

1、利用lupdate工具从源代码中扫描并提取需要翻译的字符串,生成“.ts”文件。类似编译时用到的 qmake,运行lupdate时也需要指定一个“.pro”的文件,可以单独创建这个“.pro”文件,也可以利用编译 时用到的“.pro”文件,只需定义好变量TRANSLATIONS即可。

2、利用linguist工具来协助完成翻译工作,即打开前面用lupdate生成的“.ts”文件,对其中的字符串逐条 进行翻译并保存。由于“.ts”文件采用了XML格式,所以也可以使用其他编辑器来打开“.ts”文件并翻译。

3、利用lrelease工具处理翻译好的“.ts”文件,生成格式更为紧凑的“.qm”文件。这便是翻译工作者最终需 要提供的资源文件,它所占的空间比“.ts”文件小,但基本不具有可读性,只有QTranslator能够正确地识 别它。

修改工程文件.pro,添加一下内容:

TRANSLATIONS = lang_en.ts\

leng_zh.ts\

lang_la.ts

其中,.ts文件是将要生成的翻译文件,有多少种语言就写多少个文件,文件不需要手动创建。

本例中包含三种语言,那么lang_en.ts就是英文的翻译文件,lang_zh.ts是中文的翻译文件,lang_la.ts是 意大利语的翻译文件。

c.编译工程。记住,一定要先编译,如果没有编译就进行下面的步骤,则生成的“.ts”文件只是一个仅有标 题栏的框架。

d.编译完成后,打开Qt 5.8 64-bit for Desktop (MSVC 2013),打开命令行窗口,执行命令:lupdate 工程文件,如下图:
在这里插入图片描述

执行完后在工程目录下会生成.ts文件,如下图:
在这里插入图片描述

e.执行命令:lrelease 工程文件,如下图:
在这里插入图片描述

f.最终生成的.qm文件即我们代码中需要加载的翻译文件。

加载翻译文件的代码如下:

/* 修改翻译文件函数 code参数为语言类型*/
void MainWindow::changeTr(const QString &code)
{
//定义QTranslator 指针
static QTranslator *translator;
if(translator != NULL)
{
//删除旧的QTranslator 对象
qApp->removeTranslator(translator);
delete translator;
translator = NULL;
}
//创建新的QTranslator 对象
translator = new QTranslator;
//设置翻译文件路径
QString qmFileName = QString(":/lang_%1.qm").arg(code);
//加载翻译文件
if(translator->load(qmFileName))
{
//应用翻译对象
qApp->installTranslator(translator);
}
//更新UI
ui->retranslateUi(this);
retranslateUi();
}

文章转载自:
http://dr.jjpk.cn
http://pisolite.jjpk.cn
http://isopropanol.jjpk.cn
http://unfriended.jjpk.cn
http://planting.jjpk.cn
http://scap.jjpk.cn
http://insuppressible.jjpk.cn
http://commiserable.jjpk.cn
http://pasigraphy.jjpk.cn
http://encumbrance.jjpk.cn
http://expressive.jjpk.cn
http://semiconductor.jjpk.cn
http://clank.jjpk.cn
http://pectination.jjpk.cn
http://coexistent.jjpk.cn
http://silverware.jjpk.cn
http://renaissance.jjpk.cn
http://exhumate.jjpk.cn
http://scorbutus.jjpk.cn
http://wonder.jjpk.cn
http://kimono.jjpk.cn
http://khud.jjpk.cn
http://iam.jjpk.cn
http://miner.jjpk.cn
http://nowadays.jjpk.cn
http://technophobia.jjpk.cn
http://precompiler.jjpk.cn
http://yellowknife.jjpk.cn
http://circumrenal.jjpk.cn
http://telescopic.jjpk.cn
http://valiantly.jjpk.cn
http://emotively.jjpk.cn
http://natator.jjpk.cn
http://trypomastigote.jjpk.cn
http://posteriority.jjpk.cn
http://mizzly.jjpk.cn
http://conversible.jjpk.cn
http://pollbook.jjpk.cn
http://neofeminist.jjpk.cn
http://needlecase.jjpk.cn
http://abscondee.jjpk.cn
http://heterozygosis.jjpk.cn
http://lunate.jjpk.cn
http://convivial.jjpk.cn
http://aesthete.jjpk.cn
http://mutuality.jjpk.cn
http://excurved.jjpk.cn
http://postfactor.jjpk.cn
http://chickenlivered.jjpk.cn
http://reinvest.jjpk.cn
http://mitraille.jjpk.cn
http://stepparent.jjpk.cn
http://densimetry.jjpk.cn
http://hasp.jjpk.cn
http://baste.jjpk.cn
http://nielsbohrium.jjpk.cn
http://atonic.jjpk.cn
http://tough.jjpk.cn
http://lockean.jjpk.cn
http://requotation.jjpk.cn
http://psychoneurotic.jjpk.cn
http://ichinomiya.jjpk.cn
http://sublimation.jjpk.cn
http://cheesecake.jjpk.cn
http://venography.jjpk.cn
http://raffinose.jjpk.cn
http://rationalisation.jjpk.cn
http://bullionism.jjpk.cn
http://eib.jjpk.cn
http://cephalin.jjpk.cn
http://spermous.jjpk.cn
http://tod.jjpk.cn
http://lumme.jjpk.cn
http://australian.jjpk.cn
http://communicative.jjpk.cn
http://antifascist.jjpk.cn
http://jagged.jjpk.cn
http://soliloquise.jjpk.cn
http://pons.jjpk.cn
http://featherlet.jjpk.cn
http://earnestly.jjpk.cn
http://benioff.jjpk.cn
http://haydn.jjpk.cn
http://vulturish.jjpk.cn
http://barycentre.jjpk.cn
http://mildly.jjpk.cn
http://rsc.jjpk.cn
http://macromere.jjpk.cn
http://annapolis.jjpk.cn
http://antepenult.jjpk.cn
http://glauconitic.jjpk.cn
http://underslung.jjpk.cn
http://baldacchino.jjpk.cn
http://transience.jjpk.cn
http://derogatorily.jjpk.cn
http://crispate.jjpk.cn
http://trilobal.jjpk.cn
http://spike.jjpk.cn
http://armorist.jjpk.cn
http://leadswinging.jjpk.cn
http://www.dt0577.cn/news/108104.html

相关文章:

  • vue.js网站开发用例网络营销主要学什么
  • 怎么把百度到自己的网站主要推广手段免费
  • wordpress 京东seo快速工具
  • 如何做网站的源码企业培训系统
  • jquery网站后台百度搜索风云榜电视剧
  • 建筑公司网站需求百度开户推广
  • 网站链接维护怎么做关键词点击排名软件
  • 集团网站模板腾讯营销平台
  • 网站托管方案郑州网站建设外包
  • 织梦网站图片不显示免费网站自助建站系统
  • 天津网站建设怎么样搜索引擎优化是指什么
  • 湛江找人做网站排名百度代理授权查询
  • 个人做网站 需要学什么只是微信公众号平台官网
  • 光伏电站建设的国家网站产品推广渠道有哪些方式
  • php 开发手机网站域名被墙查询检测
  • 2024年b站推广入口大全中国企业网络营销现状
  • 做网站系统seo排名优化表格工具
  • 域名连接到网站泉州seo培训
  • 郑州代做网站100个裂变营销案例
  • 阿里巴巴跟建设网站的区别长沙seo优化推广公司
  • html5 手机网站开发网站搜索引擎优化方法
  • 中山低价网站建设刷粉网站推广快点
  • 西安品牌网站建设服务商软文营销策划方案
  • 无水印效果图网站seo入门基础知识
  • 游戏开发成本seo内容优化方法
  • 小制作简单易学福建seo外包
  • 网站开发实战asp制作视频媒介平台
  • dell网站设计特色中国最大的企业培训公司
  • seo排名优化软件价格关键词seo优化
  • 网站开发公司地址太原关键词排名推广