Qt翻译原生widgets(QTextEdit右键菜单等)
来源:互联网 发布:mac os x摄像头软件 编辑:程序博客网 时间:2024/05/16 09:09
简述
在国际化的处理中,如果使用 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
注意:名字可以随意取 - 由于翻译的内容属于 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);
至此,程序就可以显示为指定的语言了。
- Qt翻译原生widgets(QTextEdit右键菜单等)
- 解决QT中文5.6 QTextEdit QPlainTextEdit的右键菜单翻译不全
- qt中qlineedit和qtextedit右键菜单翻译成中文
- Qt显示中文(包括QMessageBox、文本框右键菜单等)
- Qt之中文显示(QMessageBox、QLineEdit右键菜单等)
- Qt之中文显示(QMessageBox、QLineEdit右键菜单等)
- Qt之中文显示(QMessageBox、QLineEdit右键菜单等)
- Qt之中文显示(QMessageBox、QLineEdit右键菜单等)
- QT Qtreewidget操作 右键菜单响应等
- 将QTextEdit右键菜单设置为中文
- 蛋疼的QTextEdit删除/右键菜单
- Qt5中部分自带控件菜单(QLineEdit、QTextEdit右键菜单)的汉化
- Qt5中部分自带控件菜单(QLineEdit、QTextEdit右键菜单)的汉化
- Qt之自定义菜单(右键菜单)
- Qt之自定义菜单(右键菜单)
- Qt之自定义菜单(右键菜单)
- QT-输入框右键菜单翻译文件安装
- Qt:QT右键菜单
- 爬虫----BeautifulSoup 模块
- 最大二叉搜索子树问题
- java日常笔记2016-12-19
- 【Struts2+Hibernate4】开发学生信息管理功能(三)
- 1102. Invert a Binary Tree (25)
- Qt翻译原生widgets(QTextEdit右键菜单等)
- 批量打开异磁盘下异后缀的文件
- Eclipse CDT 标准库头文件设置
- @JsonIgnore 注解
- 在阿里云的ECS上部署Laravel项目
- RF Analyzer for Android 安卓平台连接HackRF的App
- ssm框架学习---mybatis中动态sql中的sql片段
- VS2015编译Qt5.7.0生成支持XP的静态库
- cocos2dx shader分析之CCGLProgram