QTextEdit、QTextBrowser右键菜单汉化显示

QTextEdit、QTextBrowser右键菜单汉化显示



在我的另一篇博文中讲解了QMessageBox、QColorDialog的汉化显示,现在又发现QTextEdit、QTextBrowser的没有汉化,究其原因就是没有加载汉化文件。

必看关联文章:QMessageBox、QColorDialog、按钮汉化显示


问题分析

在qt_zh_CN.qm中,QTextEdit归属于QTextControl,而qtbase中生成的QTextEdit归属于QWidgetTextControl,因此翻译失效了。


解决方案

在本篇博客关联文章的基础上,在qt_zh_CN.ts中手动增加QWidgetTextControl的xml节点。


具体步骤

注:关联文章中使用的是Qt5.9.9版本,本篇博客使用的是Qt5.14.2,版本不影响翻译效果。

根据你实际使用的Qt版本,下载qtbase源码。例如我当前使用的是Qt5.14.2。

下载地址:https://github.com/qt/qtbase

用QtCreator打开工程qtbase-5.14\src\widgets\widgets.pro,如下图所示:

widgets.pro中增加一行,并保存,此时会自动执行qmake,如果没有自动执行,手动执行qmake即可。

执行完毕后,会在目录下生成widgets.ts翻译文件。

TRANSLATIONS += widgets.ts

用Qt语言家(Qt Linguist)软件打开widgets.ts,可以发现是存在QWidgetTextControl节点的,而原先我们的qt_zh_CN.ts中却是不存在的。

所以将需要将QWidgetTextControl节点拷贝至qt_zh_CN.ts中的QTextControl节点下,并稍作翻译修改即可。

如下图所示:

<context>
    <name>QWidgetTextControl</name>
    <message>
        <location filename="widgets/qwidgettextcontrol.cpp" line="+2317"/>
        <source>&amp;Undo</source>
        <translation>撤消(&amp;U)</translation>
    </message>
    <message>
        <location line="+4"/>
        <source>&amp;Redo</source>
        <translation>恢复(&amp;R)</translation>
    </message>
    <message>
        <location line="+7"/>
        <source>Cu&amp;t</source>
        <translation>剪切(&amp;T)</translation>
    </message>
    <message>
        <location line="+9"/>
        <source>&amp;Copy</source>
        <translation>复制(&amp;C)</translation>
    </message>
    <message>
        <location line="+9"/>
        <source>Copy &amp;Link Location</source>
        <translation>复制链接位置(&amp;L)</translation>
    </message>
    <message>
        <location line="+8"/>
        <source>&amp;Paste</source>
        <translation>粘贴(&amp;P)</translation>
    </message>
    <message>
        <location line="+5"/>
        <source>Delete</source>
        <translation>删除</translation>
    </message>
    <message>
        <location line="+9"/>
        <source>Select All</source>
        <translation>选择全部</translation>
    </message>
</context>

最后,使用Qt语言家->文件->发布,即可生成新的qt_zh_CN.qm翻译文件。


ends…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

觉皇嵌入式

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

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

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

打赏作者

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

抵扣说明:

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

余额充值