原文:https://blog.csdn.net/liang19890820/article/details/53738384

简述

在国际化的处理中,如果使用 Qt widgets 自带的原生功能,其中很多文本并不会被自行翻译,例如:QTextEdit 右键菜单(复制、粘贴)。

最好的方式是 Qt 能提供相关模块的 ts 翻译源,开发者根据所要翻译的内容自行翻译。但是,查找 Qt 安装目录,并没有相关的的翻译源。既然这样,那我们只能自行解决了!

| 版权声明:一去、二三里,未经博主允许不得转载。

添加翻译源

Qt 部件相关的模块为 widgets,由于需要翻译的文本属于 widgets 的源码,进入 widgets 源码相关路径(例如,D:\Qt\Qt5.7.0\5.7\Src\qtbase\src\widgets),打开 widgets.pro,添加:

TRANSLATIONS += widgets.ts
  • 1

注意:名字可以随意取 - 由于翻译的内容属于 widgets 模块,为了见名知义,所以起名为 widgets.ts。

提取翻译源

要提取翻译源 widgets.ts,可以通过下面两种方式:

  • 使用命令行,lupdate widgets.pro
  • 在 Qt Creator 的系统菜单中,选择:工具 -> 外部 -> Qt语言家 -> 更新翻译(lupdate)

以命令行为例:

D:\Qt\Qt5.7.0\5.7\Src\qtbase\src\widgets>lupdate widgets.pro
Updating ‘widgets.ts’…
Found 218 source text(s) (218 new and 0 already existing)

D:\Qt\Qt5.7.0\5.7\Src\qtbase\src\widgets>

执行 lupdate 之后,就会在 widgets.pro 所在目录下生成一个 widgets.ts 文件。

发布

用 Qt Linguist 打开 widgets.ts,找到需要翻译的部件,进行翻译。以 QTextEdit 右键菜单(复制、粘贴)为例,由于 QTextEdit 右键菜单通过 QWidgetTextControl 实现,找到 QWidgetTextControl。

翻译相关选项,例如:

&Undo -> 撤销
&Red -> 重做
Cu&t -> 剪贴
&Copy -> 复制
Copy &Link Location -> 复制链接地址
&Paste -> 粘贴
Delete -> 删除
Select All -> 全选

保存翻译后的文件,选择:文件 -> 发布,这时会生成一个名为 widgets.qm 的文件(也可使用 lrelease widgets.ts 来生成)。

注意:其他 widgets,例如:QLineEdit 和 QMessageBox 也可以通过相同方式来翻译。

加载翻译文件

使用 QTranslator 加载生成的 widgets.qm 文件:

QTranslator translator;
translator.load(":/qm/widgets.qm");
app.installTranslator(&translator); 
  • 1
  • 2
  • 3

至此,程序就可以显示为指定的语言了。

Qt 翻译原生 widgets(QTextEdit 右键菜单等)相关推荐

  1. qt中qlineedit和qtextedit右键菜单翻译成中文

    qt中qlineedit和qtextedit右键菜单翻译成中文 qlineedit和qtextedit属于qwidget控件,在源码中找到../widgets/widgets.pro,在.pro文件最 ...

  2. QT5 QLineEdit QTextEdit右键菜单的汉化

    QT学习笔记1-右键菜单项汉化 直接上效果 1 汉化完整 2 QTextEdit未汉化 QTextEdit右键菜单的汉化 为了汉化QT5 的文本编辑控件的右键菜单选项网上搜了半天才偶然解决了问题,特此 ...

  3. Qt增加QTextEdit右键菜单增加中文翻译

    QT中有些控件,比如QTextEdit.QLineEdit和QWebEnginePage的右键菜单经常没有中文翻译. 比如下面QTextEdit的右键菜单: 那么遇到这种情况我们可以自己创建翻译文件 ...

  4. 将QTextEdit右键菜单设置为中文

    在Qt的安装目录C:\Qt\Qt5.7.0VS2015\5.7\msvc2015\translations中有名为qt_zh_CN.qm翻译文件,QLineEdit等通过加载该翻译文件就能实现右键中文 ...

  5. qt 桌面悬浮球 ToolTip 右键菜单

    腾讯管家或者360桌面总会带一个很没用的悬浮球,qt做出这种效果非常简单 设置窗体无边框和无背景(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint) ...

  6. Qt 仿酷狗播放列表右键菜单

    在使用QSS美化右键菜单的时候,遇到了很多细节上的问题,在网上查不到这些细节解决方法,甚是头疼,不改好自己心里又不爽,好在自己的查查改改最终解决了.我看别人的代码的时候最喜欢看图,不然没有兴趣.上效果 ...

  7. [QT_015]Qt学习之基于条目控件的自定义特性(拖拽+右键菜单+样式)

    本文转自:<Qt编程指南>        作者:奇先生 Qt编程指南,Qt新手教程,Qt Programming Guide 本节介绍基于条目控件的定制特性,首先介绍条目的拖拽,列表控件. ...

  8. [转载]Qt之中文显示(QMessageBox、QLineEdit右键菜单等)

    原文地址:Qt之中文显示(QMessageBox.QLineEdit右键菜单等)作者:一去丶二三里 在编写Qt程序的时候,总会碰到中文问题,一直都很困惑,原本在使用QLineEdit的时候总会出现右键 ...

  9. [转载]Qt之中文显示(QMessageBox、QLineEdit右键菜单等)_vortex_新浪博客

    原文地址:Qt之中文显示(QMessageBox.QLineEdit右键菜单等)作者:一去丶二三里 在编写Qt程序的时候,总会碰到中文问题,一直都很困惑,原本在使用QLineEdit的时候总会出现右键 ...

最新文章

  1. Visual Studio 2019连接自动的Sql Server开发版数据库(C#语言)
  2. Qt修炼手册4_信号与槽
  3. Echarts图标自适应问题(已解决)
  4. android apk如何入门
  5. mysql 操作类 C .net_.NET MYSQL数据库操作基类( C#源码)
  6. python中input数组_python – 在NumPy数组中搜索序列
  7. 云计算(1)---基础知识
  8. CentOS下MySQL安装后配置和设置
  9. SLAM无人车通过上摄像头扫描二维码重定位
  10. 【笔试/面试】数组及其内存结构
  11. 原子结构示意图全部_原子结构示意图规则
  12. 谷歌服务框架_谷歌服务框架下载_谷歌服务框架全版本整理
  13. Maven使用指南 配置阿里云镜像提高下载速度
  14. pancakeswap 开盘抢跑机器人 (附代码)
  15. [uni-app]h5+app页面背景图全屏显示
  16. html5不断切换的场景,HTML5场景: 沉舟侧畔千帆过(漂浮和沉没的帆船)
  17. 微信扫描二维码无法下载文件的解决办法
  18. 比尔.盖兹另辟Vista新战场?
  19. 基于DDPG、TD3的UR5装配仿真及其对比
  20. TensorBoard可视化高维向量

热门文章

  1. android layoutparams参数,LayoutParams使用什么度量单位?
  2. 圆与圆的位置关系题目含答案_圆中考数学题汇总附答案
  3. PyTorch-softmax,argmax,soft-argmax
  4. 【猿说VUE】Vue效果法宝,过渡动画
  5. C++ explicit关键字详解
  6. NNDL 作业5:卷积与几种常见的卷积核
  7. mysql 5.7.4 m14,windows下如何安装配置mysql-5.7-m14-winx64(zip格式的安装)
  8. 物流系统管理课程(十五)
  9. 千年庭院 -余秋雨
  10. C# FileUpload使用过程遇到的问题