QColorDialog中文翻译不全?

1.QColorDialog 界面默认显示英文文本,如何显示中文?

在解决类似于QColorDialog 类的Qt 自带对话框时,其界面常常如下图所示为英文文本,
在这里插入图片描述
可能会与整个应用程序中其它界面中文文本不协调,那么有没有办法可以让诸如QColorDialog 之类的Qt自带对话框的界面全部以中文文本的形式显示呢?
查询QT 文档得知,可以通过Qt 自带的类QTranslator 为应用程序安装一个翻译器来实现文本的自动翻译:

static const QString FILE_NAME_TRANSLATOR{ "\\qt_zh_CN.qm" };
void TestTranslate::test_Translator()
{
	QColorDialog *pColorDialog = new QColorDialog(this);
	pColorDialog->show();
	
	QTranslator *pTranslator = new QTranslator(this);
	if (pTranslator->load(QApplication::applicationDirPath()+ FILE_NAME_TRANSLATOR))
	{
		qApp->installTranslator(pTranslator);
	}
}

其中的qt_zh_CN.qm 为Qt提供的默认翻译文件,在其安装路径下能找到,经过以上步骤,QColorDialog 界面的大部分英文文本已被翻译为中文,
但是Pick Screen Color按钮 、OK 按钮和Cancel 按钮仍然为英文文本。
此时需要在Qt的安装路径下找到qt_zh_CN.ts文件并打开找到name为QColorDialog的context处添加如下代码:

	<message>
        <source>&amp;Pick Screen Color</source>
        <translation>获取屏幕颜色</translation>
    </message>

然后保存该文件,并使用Qt提供lrelease.exe工具将qt_zh_CN.ts翻译为qt_zh_CN.qm文件,在windows系统的cmd 中输入以下代码:

d:\Qt5.13\5.13.2\msvc2015_64\bin>lrelease C:\qt_zh_CN.ts  -qm  d:\qt_zh_CN.qm

注:
d:\Qt5.13\5.13.2\msvc2015_64\bin 为:lrelease.exe 所在路径
C:\qt_zh_CN.ts 为:待翻译的汉化文件
d:\qt_zh_CN.qm 为:目标文件的保存路径

经过以上步骤可以发现,QColorDialog 对话框中原先为英文的Pick Screen Color 被翻译为“获取屏幕颜色”,
在这里插入图片描述
但是对话框中OK按钮和Cancel 按钮依然为英文文本。此时,需要再次打开qt_zh_CN.ts并添加以下代码

<context>
   <name>QPlatformTheme</name>
	<message>      
        <source>OK</source>
        <translation>确定</translation>
    </message>
    <message>        
        <source>Save</source>
        <translation>保存</translation>
    </message>
    <message>       
        <source>Save All</source>
        <translation>全部保存</translation>
    </message>
    <message>      
        <source>Open</source>
        <translation>打开</translation>
    </message>
    <message>
        <source>Cancel</source>
        <translation>取消</translation>
    </message>
    <message>      
        <source>Abort</source>
        <translation>终止</translation>
    </message>
    <message>      
        <source>Close</source>
        <translation>关闭</translation>
    </message>
    <message>     
        <source>Apply</source>
        <translation>应用</translation>
    </message>
    <message>      
        <source>Reset</source>
        <translation>重置</translation>
    </message>
    <message>      
        <source>Help</source>
        <translation>帮助</translation>
    </message>
    <message>       
        <source>Discard</source>
        <translation>抛弃</translation>
    </message>
    <message>       
        <source>&amp;Yes</source>
        <translation>(&amp;Y)</translation>
    </message>
    <message>      
        <source>Yes to &amp;All</source>
        <translation>全部是(&amp;A)</translation>
    </message>
    <message>       
        <source>&amp;No</source>
        <translation>(&amp;N)</translation>
    </message>
    <message>      
        <source>N&amp;o to All</source>
        <translation>全部否(&amp;O)</translation>
    </message>
    <message>       
        <source>Retry</source>
        <translation>重试</translation>
    </message>
    <message>       
        <source>Ignore</source>
        <translation>忽略</translation>
    </message>
    <message>      
        <source>Restore Defaults</source>
        <translation>恢复默认</translation>
    </message>
</context>

然后再次翻译qt_zh_CN.ts 文件为qt_zh_CN.qm文件,并加载该qm格式文件到需要汉化翻译的应用程序中即可实现Qt所有内置对话框界面的汉化。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值