Qt5国际化

1.国际化支持的实现

Qt自己提供了一种国际化方案,而不是采用INI配置文件的方式。Qt中的国际化方法与GNU gettext类似,它提供了tr()函数与gettext()函数对应,而翻译后的资源文件则以".qm"命名,且其国际化的机制与它的元对象系统紧密相关。

 

在支持国际化的过程中,通常在Qt中利用QString、QTranslator等类和tr()函数能够很方便地完成国际化支持,具体工作如下。

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()组织动态文本

QString m = tr("My name is %1 age is %2").arg(x).arg(y);

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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农飞飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值