QMessageBox、QColorDialog、按钮汉化显示


版本:Qt5.9.9
环境:QtCretator MinGW


在Qt源码目录下找到qt_zh_CN.ts复制一份到工程目录,该文件在:G:\install\Qt\Qt5.9.9\5.9.9\Src\qttranslations\translations

打开qt_zh_CN.ts文件,找到QColorDialog标签,添加以下内容:

<message>
        <source>&Pick Screen Color</source>
        <translation>拾取屏幕颜色(&P)</translation>
    </message>
    <message>
        <source>Cursor at %1, %2
Press ESC to cancel</source>
        <translation>坐标:%1,%2
按ECS键取消</translation>
    </message>

如下图所示:

QMessageBox、QColorDialog、按钮汉化显示_QMessageBox

找到QDialogButtonBox标签:

<context>
    <name>QDialogButtonBox</name>
    ...
    ...
    ...
</context>

QMessageBox、QColorDialog、按钮汉化显示_Qt_02

完整的复制一份这个标签并在在下方粘贴,并命名为:QPlatformTheme

如下图所示:

QMessageBox、QColorDialog、按钮汉化显示_QMessageBox_03

QMessageBox、QColorDialog、按钮汉化显示_QMessageBox_04

使用Linguist 打开这个文件,如果有问号显示,那么这是翻译有问题的,将它手动的改一下中文译文即可!

QMessageBox、QColorDialog、按钮汉化显示_QMessageBox_05

然后重新发布就可以生成.qm文件,在main函数中加载翻译文件即可!

QMessageBox、QColorDialog、按钮汉化显示_Qt_06

///
    /// 加载翻译
    ///
    QTranslator base;
    if(base.load(":/translations/qt_zh_CN.qm"))
    {
        a.installTranslator(&base);
    }else
    {
        QMessageBox::warning(nullptr, QObject::tr("警告"), QObject::tr("加载翻译文件qt_zh_CN.qm失败,部分界面可能无法汉化显示!"));
    }

注意:加载翻译文件必须要在窗口显示之前!

QMessageBox、QColorDialog、按钮汉化显示_Qt_07


ends…