qt creater11 翻译国际化教程教程:

news2024/11/24 17:08:17

先出效果图。

闲聊几句:qt这个翻译很方便,能直接导出项目里所有文字。

具体步骤如下:

在Qt中,我们可以使用QTranslator类来实现多语言切换。以下是一般步骤:

1. 在你的源代码中,所有需要翻译的字符串都需要使用 `tr()` 函数包裹,例如 `tr("你好")`。

2. 在项目文件 (.pro) 中添加翻译文件,例如:
   ```
   TRANSLATIONS += myapp_zh_CN.ts
   TRANSLATIONS += myapp_en_US.ts
   ```
   这里的`myapp_zh_CN.ts`和`myapp_en_US.ts`是你的翻译文件,你需要根据你的应用程序实际情况来命名。

3. 使用Qt Creator的lupdate工具生成翻译文件。这可以在Qt Creator的"工具" -> "外部" -> "Qt Linguist" -> "Update Translations (lupdate)"中完成。这将生成一个.ts文件,其中包含所有需要翻译的字符串。

4. 使用Qt Linguist工具打开.ts文件并进行翻译。Qt Linguist是一个翻译工具,可以在Qt Creator的"工具" -> "外部" -> "Qt Linguist" -> "Open Qt Linguist"中打开。在这个工具中,你可以为每个字符串添加翻译。

       

5. 使用lrelease工具将.ts文件转换为.qm文件。这可以在Qt Creator的"工具" -> "外部" -> "Qt Linguist" -> "Release Translations (lrelease)"中完成。

6. 在程序中加载翻译文件。你可以使用QTranslator类来加载.qm文件,例如:    
   ```
   QTranslator translator;
   translator.load("myapp_zh_CN.qm"); //.qm文件要拷贝到相对路径下
   a.installTranslator(&translator);
   ```
   这段代码需要放在main函数的开始部分。

7. 在程序中切换语言。你可以通过重新加载不同的翻译文件来实现语言切换,例如:
   ```
   QTranslator translator;
   translator.load("myapp_en_US.qm");
   qApp->installTranslator(&translator);
   ```
   这段代码可以放在你的语言切换函数中。

注意事项:

2 在ui界面上的文字可以不管。但是后台代码中的文字,要使用QObject::tr("")  来包裹. 例如:
    1) label->setText(tr("上等"));
    2)  static const char* const flowers[]={
        QT_TR_NOOP("上等"),
        QT_TR_NOOP("中等"),
        QT_TR_NOOP("劣等"),
        };    
        this->ui->cbox0->addItem(tr(flowers[i]));
3 添加翻译文件时,只在(.pro)文件中添加语句。也就是确保源码目录下没有.ts文件存在。

4  qt creater 中默认没有Qt Linguist工具。需要手动添加。路径在 Qt\Qt5.9.0\5.9\msvc2017_64\bin\linguist.exe.    根据各自安装不同,路径有所不同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/959924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题——下一个排列

下一个排列 题目链接 读懂题目 要理解题目的意思,主要是要读懂这一句:整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。 我们来逐词分析: 其整数,即我们要将这个数组的数字构成一个十进制整数,例如数组…

Android之自定义时间选择弹框

文章目录 前言一、效果图二、实现步骤1.自定义Dialog2.xml布局3.背景白色转角drawable4.取消按钮背景drawable5.确定按钮背景drawable6.NumberPicker样式和弹框样式7.弹框动画8.Activity使用 总结 前言 随着产品人员不断变态下,总是会要求我们的界面高大上&#xf…

JVM之堆和方法区

目录 1.堆 1.1 堆的结构 1.1.1 新生代(Young Generation) 1.1.2 年老代(Old Generation) 1.1.3 永久代/元空间(Permanent Generation/Metaspace) 1.2 堆的内存溢出 1.3 堆内存诊断 1.3.1 jmap 1.3.2…

五大优势,让你坚定选择低代码开发平台

随着数字化时代的到来,企业纷纷寻求新的方式来提高业务效率、降低成本,并满足不断变化的客户需求。在这个过程中,低代码平台逐渐成为一种备受瞩目的技术,因为其具有五大特殊优势,能够极大地提高企业数字化转型的效率。…

如何用代理IP解决Tik Tok直播时卡顿的问题?

Tik Tok如今已经成为了一种非常流行的社交互动模式,但是在直播过程中突然的卡顿往往会让人抓狂,流失很多客户。除非您的内容足够吸引人,不然很少有人会有耐心等下去。每每遇到这种情况,运营Tik Tok的朋友就会开始挠头,…

算法通关村——从40个亿中产生一个不存在的整数

Titile: 海量数据场景下的热门算法题 从40个亿中产生一个不存在的整数 题目要求:给定一个输入文件,包含40亿个非负整数,请设计一个算法,产生一个不存在该文件中的整数,假设你有1GB的内存来完成这项任务。 进阶&…

总线:特性、分类、性能指标、系统总线的结构、总线仲裁、总线定时、总线标准

总线(Bus),是一组为各功能部件之间进行信息传送的公共线路。 总线的特性: 机械特性(物理特性):尺寸、形状、引脚数、排列顺序。电气特性:每根信号线上的信号传输方向、表示信号有效…

六、员工信息分页+启用/禁用员工账号(前端经典大数/精度丢失问题)

员工信息分页 整体流程: 1、创建mybatisplus配置类 在config包下创建mybatisplusconfig /*** 配置MybatisPlus分页插件*/ Configuration //既然是配置类,要加配置类的注解 public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor mybatis…

【VirtualBox】安装Ubuntu

一、新建虚拟系统 点击新建 输入名称,点击下一步 配置内存大小和处理器,点击下一步 选择不添加虚拟硬盘,点击下一步 点击完成 点击继续 二、修改虚拟机硬件配置 选择虚拟机,点击 “设置” 进入 “系统 -> 主板” 页面&…

131页8万字数字化矿山整体解决方案WORD(矿山资料合集)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除,更多浏览公众号:智慧方案文库 目 录 1、煤矿综合自动化系统概述 1.1、煤矿数字化系统发展方向 1.2、建设必要性和意义 1.3、矿井综合自动化系统设计…

应用案例 | 3D视觉引导解决方案汽车零部件上下料

Part.1 行业背景 三维视觉引导技术在国内外汽车零部件领域得到了广泛应用。随着汽车制造业的不断发展和创新,对于零部件的加工和装配要求越来越高,而三维视觉引导技术能够帮助企业实现更精确、更高效的零部件上下料过程。 纵览国外,部分汽车…

【仿写spring之ioc篇】二、bean生命周期中的创建以及属性赋值

扫描类 这个类就不多说了,基本所有框架都要有这一步,这里主要关注我们目前要实现的方法,其他的具体方法可以查看源码 isComponent方法 /*** 扫描所有带有Component注解的java类,放入到BeanRegistry** return boolean*/public bo…

【前端demo】圣诞节灯泡 CSS动画实现轮流闪灯

文章目录 效果过程灯泡闪亮实现(animation和box-shadow)控制灯泡闪亮时间和顺序(animation-delay)按钮开关 代码htmlcssjs 参考代码1代码2 前端demo目录 效果 效果预览:https://codepen.io/karshey/pen/zYyBRWZ 参考…

初出茅庐的小李博客之STM32F103C8T6音乐控制器实战教程【1】

STM32F103C8T6音乐控制器实战教程[1] USB简单介绍: "USB"代表通用串行总线(Universal Serial Bus),是一种用于连接计算机及其外部设备的标准接口。USB接口允许各种设备(如打印机、存储设备、键盘、鼠标、摄…

为何电商行业都在争相使用WhatsApp引流小挂件?

WhatsApp小挂件是嵌入在网站上的聊天小部件,允许访问者同WhatsApp与您联系。点击后,它会将客户带到移动或桌面 WhatsApp应用程序,或者直接打开一个对话框,客户可以在这些地方与您发起对话。让我们看看在您的网站上拥有WhatsApp聊天…

Java实现MQTT订阅发布

一. MQTT 与 EMQX MQTT 是轻量级基于代理的发布/订阅的消息传输协议。使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。底层使用 TCP/IP 提供网络连接。 EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开…

Vue+Element-ui实现表格本地导入

表格文件存储在前端 如图,表格文件template.xlsx存储在public下的static文件夹下 注意这里的路径容易报错 a链接下载文件失败的问题(未发现文件) a.href ‘./static/template.xlsx’ 写的时候不能带public,直接这么写就可以 DownloadTemp…

星域的庞大规模已经让我们眩晕

有一句道格拉斯亚当斯的名言银河系漫游指南我最近想了很多。“空间很大,”他写道。“你不会相信它有多么巨大,令人难以置信。我的意思是,你可能认为去药店的路很长,但那只是去太空的小钱。” 星域不妨把这句引言放在其设计文档的封…

从天镜大模型,透视马上消费的“三重价值”

AI正在打开新世界。 红杉资本曾发表名为《生成式AI:一个创造性的新世界》的文章,提到生成式AI将涉及数十亿的人工劳动力,并促使这些人工劳动力的效率和创造力至少提高10%,有潜力产生数万亿美元的经济价值。 大模型,被…

2 | Window 搭建单机 Hadoop 和Spark

搭建单机 Hadoop 和 Spark 环境可以学习和测试大数据处理的基础知识。在 Windows 操作系统上搭建这两个工具需要一些配置和设置,下面是一个详细的教程: 注意: 在开始之前,请确保你已经安装了 Java 开发工具包(JDK),并且已经下载了 Hadoop 和 Spark 的最新版本。你可以从…