当前位置: 首页 > news >正文

QTextEdit、QTextBrowser右键菜单汉化显示

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…

http://www.lryc.cn/news/575343.html

相关文章:

  • 数据结构大项目
  • 科技与人类贪欲
  • 医疗AI专科子模型联邦集成编程分析
  • 图像质量对比感悟
  • 【RESTful接口设计规范全解析】URL路径设计 + 动词名词区分 + 状态码 + 返回值结构 + 最佳实践 + 新手常见误区汇总
  • 2D 基准情况下贝叶斯优化应用的概率推理
  • centos 7 安装NVIDIA Container Toolkit
  • 云原生 Cloud Native
  • OBCP第三章 OceanBase SQL 引擎高级技术学习笔记
  • Rust 中的 HTTP 请求利器:reqwest
  • 【STM32】端口复用和重映射
  • 一次性登录令牌(Login Ticket)生成机制分析
  • 环境太多?不好管理怎么办?TakMll 工具帮你快速切换和管理多语言、多版本情况下的版本切换。
  • 【Actix Web】Rust Web开发实战:Actix Web框架全面指南
  • 从零到一训练一个 0.6B 的 MoE 大语言模型
  • 百面Bert
  • 《网络攻防技术》《数据分析与挖掘》《网络体系结构与安全防护》这三个研究领域就业如何?
  • ASP.NET Core Web API 实现 JWT 身份验证
  • list类的详细讲解
  • 基于 Python 的批量文件重命名软件设计与实现
  • 二叉树理论基础
  • 【偏微分方程】基本概念
  • 逆向入门(8)汇编篇-rol指令的学习
  • 【kubernetes】--Service
  • 深入理解提示词工程:原理、分类与实战应用
  • 基于 opencv+yolov8+easyocr的车牌追踪识别
  • linux-修改文件命令(补充)
  • Windows 安装 Redis8.0.2
  • 多传感器标定简介
  • day042-负载均衡与web集群搭建