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

Qt QWebEngine 更换语言

背景

使用Qt QWebEngine开发的应用,在一些场景下,会显示英文文本,比如右键、JS弹出的对话框,所以需要进行汉化,更改语言。

准备翻译文件

Qt有提供翻译好的ts文件,我们可以直接下载ts文件qtwebengine_zh_CN.ts

打开Qt Linguist工具,打开下载好的qtwebengine_zh_CN.ts文件,然后就可以看到内容:
在这里插入图片描述

菜单栏选择文件 - 发布,即生成了qtwebengine_zh_CN.qm文件,将此文件添加到qrc文件里。

使用QTranslator

接下来就可以加载翻译文件了

if (QLocale().language() == QLocale::Chinese) {QTranslator* translator = new QTranslator();if (translator->load(":/resources/qtwebengine_zh_CN.qm")) {app.installTranslator(translator);}
}

首先使用QLocale判断当前系统环境语言是否为中文,如果是中文则加载中文翻译文件。

这里需要注意的是,一般网上给出的代码是如下形式:

int main()
{// ...QTranslator translator;  translator.load(":/qm/main_widget_zh");  app.installTranslator(&translator); // ...
}

即采用的RAII的形式创建的QTranslator对象,但是我们这里由于判断了语言函数,所以作用域的缘故,如果采用RAII会导致QTranslator对象被析构,最终加载失败。

效果

之前之后
在这里插入图片描述在这里插入图片描述

可以看到,语言已经改为中文了。

https://doc.qt.io/qt-5/qtranslator.html
https://doc.qt.io/qt-5/qlocale.html
https://runebook.dev/zh/docs/qt/internationalization

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

相关文章:

  • Docker一键开启、停止和删除所有容器
  • 2016年亚太杯APMCM数学建模大赛B题化学元素对变形钢筋性能的影响求解全过程文档及程序
  • 美颜SDK集成指南:为应用添加视频美颜功能
  • AquilaChat2-34B 主观评测接近GPT3.5水平,最新版本Base和Chat权重已开源!
  • useGeneratedKeys=“true“ keyProperty=“id“
  • Java 浅拷贝会带来的问题
  • Monocle 3 | 太牛了!单细胞必学R包!~(二)(寻找marker及注释细胞)
  • 简述JVM
  • 【多线程面试题 六】、 如何实现线程同步?
  • 地面文物古迹保护方案,用科技为文物古迹撑起“智慧伞”
  • k8s之Flannel网络插件安装提示forbidden无权限
  • 在微信小程序云开发中引入Vant Weapp组件库
  • Vue+ElementUI项目打包部署到Ubuntu服务器中
  • 面试题收集——Java基础部分(一)
  • Vue中this指向问题
  • 【iPad已停用】解锁教程
  • python不调用heapq库 实现大顶堆,小顶堆
  • STM32F4X SDIO(二) SDIO协议
  • 设计模式--7个原则
  • AltiumDesigner原理图编译错误报告信息解释
  • 使用 Visual Studio Code 编写 TypeScript程序
  • 科大讯飞发布讯飞星火 3.0;开源AI的现状
  • 公网远程访问macOS本地web服务器
  • windows 安装小乌龟
  • toon boom harmony基础
  • JPA联合主键
  • 水性杨花:揭秘CSS响应式界面设计,让内容灵活自如,犹如水之变幻
  • fio performance test
  • DevOps持续集成-Jenkins(1)
  • Pytorch代码入门学习之分类任务(二):定义数据集