QColorDialog如何成功显示中文?

1、在我们对Qt开发的应用程序进行国际化时,分为两部分,一部分是受开发人员控制的,比如我们在程序中用到的tr;另一部分是不受我们控制的,比如触发显示一个Qt提供的对话框,如QColorDialog,里面的内容也需要国际化,但似乎却不受我们控制,其实这部分翻译工作Qt已经帮我们做好了,有现成的.ts文件供我们使用
2、对于受我们控制的我们暂且用AppTranslator来完成翻译,不受我们控制的我们用SysTranslator来完成翻译,具体步骤如下:
–在Qt安装目录下的Src下找到对应的qt_zh_CN.qm文件,复制到当前项目的资源文件夹中,并添加到资源中
–如果没有,则找到文件qt_zh_CN.ts,复制到当前项目中,用lrelease生成qt_zh_CN.qm然后添加到项目资源中;在生成qt_zh_CN.qm前往往需要在qt_zh_CN.ts中作如下修改:
----在QColorDialog上下文中添加Pick Screen Color的翻译

<context>
	<name>QColorDialog</name>
	...
	<message>
        <source>&amp;Pick Screen Color</source>
        <translation>拾取屏幕颜色</translation>
    </message>
	...
</context>

----添加对话框确定和取消按钮的翻译

<context>
    <name>QPlatformTheme</name>
    <message>
        <location filename="../src/widgets/qdialogbuttonbox.cpp" line="+42"/>
        <location line="+18"/>
        <source>OK</source>
        <translation>确定</translation>
    </message>
    <message>
        <location line="+54"/>
        <source>Cancel</source>
        <translation>取消</translation>
    </message>
</context>

3、最后通过lrelease工具,我们得到了两份翻译文件:app_zh_CN.qm和qt_zh_CN.qm。app_zh_CN.qm通过在项目的.pro中添加:

TRANSLATIONS = app_zh_CN.ts

通过lupdate和lrelease便可得到程序的翻译文件:app_zh_CN.qm
4、安装翻译文件:
假设文件路径为项目根目录下的 Languages/qm/,并已加载到资源中

QTranslator AppTranslator;
QTranslator SysTranslator;
AppTranslator.load(QString(":/Languages/qm/app_zh_CN.qm");
SysTranslator.load(QString(":/Languages/qm/qt_zh_CN.qm");
qApp->installTranslator(&AppTranslator);
qApp->installTranslator(&SysTranslator);

5、最后效果:
在这里插入图片描述

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值