Qt 5.6 QMessageBox 按钮显示为中文及 QTextEdit右键显示中文

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

1. 通过 修改5.6\Src\qttranslations\translations\qt_zh_CN.ts 文件 实现 QMessageBox及QTextEdit的中文显示

     步骤1:解决QMessageBox的中文显示,将qtbase_ja.ts文件中的QPlatformTheme 的context 内容复制到 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>&amp;Yes</source>
        <translatorcomment>确认</translatorcomment>
        <translation type="unfinished">(&amp;Y)</translation>
    </message>
    <message>
        <source>Yes to &amp;All</source>
        <translation>全部</translation>
    </message>
    <message>
        <source>&amp;No</source>
        <translation>取消</translation>
    </message>
    <message>
        <source>Ignore</source>
        <translation>忽略</translation>
    </message>
    <message>
        <source>Close</source>
        <translation>关闭</translation>
    </message>
    <message>
        <source>Cancel</source>
        <translation>取消</translation>
    </message>
</context>

步骤2:解决QTextEdit右键的中文显示,将qtbase_ja.ts中context节点中name为QWidgetTextControl的节点全部复制到 qt_zh_CN.ts ,并修改;

<context>
    <name>QWidgetTextControl</name>
    <message>
        <location filename="widgets/qwidgettextcontrol.cpp" line="2230"/>
        <source>&amp;Undo</source>
        <translation type="unfinished">撤销(&amp;U)</translation>
    </message>
    <message>
        <location filename="widgets/qwidgettextcontrol.cpp" line="2234"/>
        <source>&amp;Redo</source>
        <translation type="unfinished">恢复(&amp;R)</translation>
    </message>
    <message>
        <location filename="widgets/qwidgettextcontrol.cpp" line="2241"/>
        <source>Cu&amp;t</source>
        <translation type="unfinished">剪切(&amp;T)</translation>
    </message>
    <message>
        <location filename="widgets/qwidgettextcontrol.cpp" line="2250"/>
        <source>&amp;Copy</source>
        <translation type="unfinished">复制(&amp;C)</translation>
    </message>
    <message>
        <location filename="widgets/qwidgettextcontrol.cpp" line="2259"/>
        <source>Copy &amp;Link Location</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="widgets/qwidgettextcontrol.cpp" line="2267"/>
        <source>&amp;Paste</source>
        <translation type="unfinished">粘贴(&amp;P)</translation>
    </message>
    <message>
        <location filename="widgets/qwidgettextcontrol.cpp" line="2272"/>
        <source>Delete</source>
        <translation type="unfinished">删除</translation>
    </message>
    <message>
        <location filename="widgets/qwidgettextcontrol.cpp" line="2281"/>
        <source>Select All</source>
        <translation type="unfinished">选择全部</translation>
    </message>
</context>

步骤3:更新完 qt_zh_CN.ts文件需重新发布,利用lrelease 重新发布

步骤4:将发布得到的qm文件加载到程序中,代码如下:

QApplication app(argc, argv);
QTranslator translatorAll;
bool bREt = translatorAll.load(QString("./translation/qt_zh_CN.qm"));
app.installTranslator(&translatorAll);


实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值