Qt第二十一章 语言家

news2024/12/28 3:00:51

文章目录

  • Qt Linguist
    • 简介
    • 使用流程
      • 1. 使用tr包裹字符串
      • 2. 生成翻译文件
      • 3. 打开翻译文件,并翻译
      • 4. 发布翻译
      • 5. 加载语言文件
      • 6. 动态切换语言
    • 各国语言代码和名称表

Qt Linguist

简介

Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻译工具。发布者、翻译者和开发者可以使用这款工具来完成他们的任务。
发布者:承担了全面发布应用程序的责任。通常他们协调开发者和翻译者的工作,可以是哟换那个lupdate工具同步源代码,进行翻译,使用lrelease同步工具为发布应用程序创建运行时使用的翻译文件。
翻译者:可以使用Qt Linguist 工具翻译应用程序的文本。当然,这必须要有专业的翻译知识。
开发者:必须创建Qt应用程序能够使用的翻译文本。也应该帮助翻译者识别短语出现的场景。

使用流程

1. 使用tr包裹字符串

#include "Widget.h"

#include <QApplication>
#include <QPushButton>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.resize(200, 200);
    auto btn = new QPushButton(QObject::tr("pushButton"), &w);
    w.show();
    return a.exec();
}

在这里插入图片描述

2. 生成翻译文件

  • 通过cmd命令生成
G:\qtproject\linguistTest>lupdate main.cpp widget.cpp widget.h -ts test_ch_ZN.ts test_en_GB.ts

这个地址是cmakelist所在地址
在这里插入图片描述

  • 如果是带ui的项目cmd命令
G:\qtproject\linguistTest2>lupdate main.cpp widget.cpp widget.h widget.ui -ts linguistTest2_zh_CN.ts

3. 打开翻译文件,并翻译

  1. 打开Linguist在这里插入图片描述
  2. 点文件>打开>进入G:\qtproject\linguistTest(你刚才的代码文件夹)>选中2个ts>打开
    弹出来的选项点确定>语言选择简体中文>确定在这里插入图片描述
  3. 选择pushButton
    在这里插入图片描述
  4. 填上要翻译的文字,点黄色的问号打勾
    在这里插入图片描述
  5. 点保存

4. 发布翻译

  1. G:\qtproject\linguistTest(代码文件夹)打开cmd命令
  2. 输入命令lrelease test_ch_ZN.ts test_en_GB.ts
    在这里插入图片描述

5. 加载语言文件

#include "Widget.h"

#include <QApplication>
#include <QPushButton>
#include <QTranslator>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);
    QTranslator translator;
    // 加载中文语言文件,如果是英文的就是test_en_GB,你自己在创建文件时定义的文件名
    if (!translator.load("test_ch_ZN", "../../")) // 相对于debug文件夹的路径,可以不带.qm后缀
        qDebug() << "翻译文件加载失败";
    // 将加载的语言文件安装到应用程序
    a.installTranslator(&translator);
    
    Widget w;
    w.resize(200, 200);
    auto btn = new QPushButton(QObject::tr("pushButton"), &w);
    w.show();
    return a.exec();
}

6. 动态切换语言

各国语言代码和名称表

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

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

相关文章

齐护【百度AI对话】编程系统文心一言大语音模型对话ESP32图形化Mixly编程Scratch编程Arduino

齐护【百度AI对话】编程系统 一、前言 ​ 在这个日新月异的时代&#xff0c;AI的触角已延伸至互联网、金融、医疗、教育等每一个角落&#xff0c;其影响力不容忽视。从日常中的智能推荐到医疗前沿的精准诊断&#xff0c;从定制化教育到智能化的投资策略&#xff0c;AI正以前所…

ET6框架(一)介绍及环境部署

文章目录 一、什么是ET框架&#xff1f;二、ET框架特色&#xff1a;三、开发环境准备&#xff1a;四、.Net Core下载安装五、安装Visual Studio六、下载Mongodb七.安装Robo 3T八、下载ET版本分支 一、什么是ET框架&#xff1f; 1.ET(客户端&#xff0c;服务器端)是一个开源的双…

C++ 136类和对象_面像对像_多态_虚析构和纯虚析构

136类和对象_面像对像_多态_虚析构和纯虚析构 学习内容 1.抽象类 2.虚函数 3.纯虚函数 /4.虚析构 和 纯虚析构 总结: 1.虚析构或纯虚析构就是用来解决通过父类指针释放子类对象 2.如果子类中没有堆区数据&#xff0c;可以不写为虚析构或纯虚析构 3.拥有纯虚析构函数的类也属于…

【网络安全】XML-RPC PHP WordPress漏洞

未经许可,不得转载。 文章目录 前言WordPressWordPress中的Xmlrpc.php利用前提:Xmlrpc可访问深度利用1、用户名枚举2、跨站点端口攻击(XSPA)或端口扫描3、使用xmlrpc.php进行暴力攻击前言 本文将解释xmlrpc.php WordPress 漏洞及利用方式,并以三种攻击方法进行阐发: 1、…

【焕新】同为科技(TOWE)23周年庆典

每年的8月23日&#xff0c;都是一个值得铭记、守护、欢庆的日子。这一天同为科技&#xff08;TOWE&#xff09;迎来公司成立23周年纪念日&#xff0c;是属于TOWE品牌向前、长远的里程碑。从2001到2024&#xff0c;从品牌与文化&#xff0c;从产品到服务。 同为科技&#xff08;…

GB28181国标联网网关:助力视频设备与平台的全面互联互通

联网网关概述 在安防行业视频监控联网项目中&#xff0c;经常会有视频数据的跨部门、跨系统共享需求&#xff0c;随着联网需求的增多&#xff0c;在行业内国标GB28181协议又是最为常见应用最为广泛的联网协议&#xff0c;这也使得无论是设备厂家、后端平台厂家都开发出了符合各…

Linux的yum包管理工具(在线安装)

Linux的软件从哪里下载&#xff1f; 我们用的Linux系统都是国外的&#xff0c;所以下载软件自然从国外下载。但是访问国外网址太慢了&#xff0c;有没有什么办法快一点呢&#xff1f; 有&#xff01; 啊&#xff0c;还有这么美的事情&#xff1f;快点告诉我&#xff01; 好…

Android手机安装Kali系统并配置ddns-go

正文共&#xff1a;777 字 15 图&#xff0c;预估阅读时间&#xff1a;1 分钟 前面我们介绍了如果在Linux系统使用ddns-go实现IPv6地址的自动解析&#xff08;使用ddns-go实现自动配置IPv6的DDNS&#xff09;&#xff0c;但在日常使用中&#xff0c;如果使用服务器开虚机的方式…

Web入门-03.HTTP协议-概述

一.HTTP协议 在上一节中的请求路径复制之后&#xff0c;我们粘贴到记事本中会看到http://localhost:8080/hello。这是因为使用了http协议。 HTTP&#xff1a;超文本传输协议。定义了浏览器和服务器之间数据传输的规则。该规则就是浏览器与服务器之间数据传输的格式。 客户端浏…

超详细Git基本命令使用(二)

&#x1f600;前言 本篇博文是关于 Git基本命令的使用&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力&#x1f6…

QJson的写入和解析基本操作

一、QJson简介 QJson 是一个用于处理 JSON&#xff08;JavaScript Object Notation&#xff09;数据的 C 库 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式 JSON 的语法简洁明了&#xff0c;使用人类可读的文本格式来表示数据 它由键值…

CSS3视图过渡动画

概述 网站的主题切换无非就是文字、背景图片或者颜色,我们可以先来看下 Element UI 官网的切换主题的动效: PS:Antdesign UI的主题切换动画也是大同小异。 实现的两种方式 CSS 为主 <script setup> const changeTheme = (e) => {if (document.startViewTransi…

IBM退出中国,LabVIEW未来走向何方?

IBM作为全球科技行业的领军企业之一&#xff0c;近日宣布退出中国市场的决定引起了广泛关注。IBM的退出不仅仅是企业战略的调整&#xff0c;还反映了全球经济和政治环境的变化。深入分析IBM退出中国的原因&#xff0c;并预测NI&#xff08;National Instruments&#xff09;未来…

深入探索蒙特卡洛树搜索(MCTS):原理、应用与优化

深入探索蒙特卡洛树搜索&#xff08;MCTS&#xff09;&#xff1a;原理、应用与优化 引言 在人工智能与游戏开发领域&#xff0c;蒙特卡洛树搜索&#xff08;Monte Carlo Tree Search, MCTS&#xff09;作为一种高效的启发式搜索算法&#xff0c;凭借其卓越的性能和广泛的应用…

Spring security 密码加密使用

一、密码加密 2011年12月21日&#xff0c;有人在网络上公开了一个包含600万个CSDN 用户资料的数据库&#xff0c;数据全部为明文储存&#xff0c;包含用户名、密码以及注册邮箱。事件发生后CSDN 在微博、官方网站等渠道发出了声明、解释说此数据库系2009 年备份所用&#xff0c…

网易大数据模型

网易大数据平台 https://sf.163.com/

番茄叶部病害-目标检测数据集(包括VOC格式、YOLO格式)

番茄叶部病害-目标检测数据集&#xff08;包括VOC格式、YOLO格式&#xff09; 数据集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1hZdoXcYEcJaw9spazrxGZg?pwdtsaw 提取码&#xff1a;tsaw 数据集信息介绍&#xff1a; 共有 534 张图像和一一对应的标注文件 标…

【Kotlin设计模式】Kotlin实现外观模式

前言 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;旨在为子系统中的一组接口提供一个统一的接口。外观模式定义了一个高层接口&#xff0c;使得这一子系统更加容易使用。它将复杂的子系统封装在一个简单的接口后面&#xff0c;从而降低了客…

边缘物联网平台AIoTedge推荐

AIoTedge是一个创新的智能边缘计算平台&#xff0c;它通过边云协同的架构设计&#xff0c;实现了多点部署和分布式计算&#xff0c;提高了数据处理的速度和效率&#xff0c;同时确保了数据的安全性和隐私性。平台具备强大的分布式AIoT处理能力&#xff0c;适用于多种场景&#…

移动端+PC端源码,智慧城管执法系统,后端框架:springboot,移动端:uniapp

市管理综合执法管理平台实现执法办案、业务全流程在线办理&#xff0c;依托移动端PC端的“两端”应用模式&#xff0c;保障能够通过信息化手段进行日常的执法办案工作&#xff0c;强化执法监督功能。提供了案件在线办理、当事人信用管理、文书电子送达、沿街店铺分析等功能&…