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

QML的中英文翻译

一、环境

        安装时勾选了「Qt Translation Tools」+「Qt Linguist」

二、步骤

  1、 在pro文件中添加

TRANSLATIONS += \translations/Lang_zh_CN.ts \translations/Lang_en.ts

保存后,执行一次 qmake(构建菜单 → Run qmake)

2、生成zh_CN.tsen_us.ts文件

2.1 用命令生成

lupdate main.qml -ts zh_CN.ts en_us.ts

2.2 利用Qt Creator生成

Qt Creator 菜单:
Tools → External → Qt Linguist → Update Translations (lupdate)
IDE 会在 translations/ 下生成 ***_zh_CN.ts***_en.ts

3.打开Qt Linguist,对应程序的版本,打开连个ts文件

翻译完成,点击文件的保存全部 与 发布全部

4.新加Langue的更改类,实现QML调用,实现语言切换的目的

class LangSwitch : public QObject
{Q_OBJECT
public:explicit LangSwitch(QGuiApplication *app,QQmlApplicationEngine *engine,QObject *parent = nullptr);Q_INVOKABLE void setLanguage(const int &index);signals:private:QGuiApplication *m_app;QQmlApplicationEngine *m_engine;QTranslator m_translator;};
LangSwitch::LangSwitch(QGuiApplication *app, QQmlApplicationEngine *engine, QObject *parent)
{m_app = app;m_engine = engine;
}void LangSwitch::setLanguage(const int &index)
{qDebug()<<"index = "<<index;m_app->removeTranslator(&m_translator);QString file = "";switch (index) {case 0:file = "Langue_zh_CN.qm";break;case 1:file = "Langue_en.qm";break;default:break;}qDebug()<<"-------------"<<m_translator.load(file);if (m_translator.load(file))m_app->installTranslator(&m_translator);// Qt 5.12.5 没有 retranslate(),手动触发m_engine->retranslate();
}

4.运行结果

 三、总结    

        用 qsTr()/tr() 包字符串 → 2. lupdate 生成 .ts → 3. Linguist 翻译 → 4. lrelease 生成 .qm → 5. main.cpp 安装 QTranslator → 6. 运行即可实现 QML 的中英文切换。

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

相关文章:

  • OpenCV计算机视觉实战(19)——特征描述符详解
  • 【前端基础】16、结构伪类(注:粗略说明)
  • Facebook广告投放进阶:ABO精测与CBO放量的协同增长策略
  • 计算机网络---DNS(域名系统)
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的多目标跟踪与行为分析优化(393)
  • [Ubuntu] xrdp共享连接 Ubuntu 屏幕 | xfce4
  • 爬虫与数据分析结合案例
  • C++11的历史和统一的初始化列表
  • 数据填报是什么?数据填报工具有哪些?
  • 蓝桥杯算法之搜索章 - 4
  • 【单板硬件开发】关于复位电路的理解
  • 掌握do-while循环:从语法到运用
  • 18.5 BERT评估指标终极指南:HuggingFace实战提升文本分类效果
  • 【LeetCode刷题集】--排序(三)
  • 基于FPGA的热电偶测温数据采集系统,替代NI的产品(二)总体设计方案
  • 用 Flink SQL 和 Paimon 打造实时数仓:深度解析与实践指南
  • 疫情可视化:基孔肯雅热风险地图实战解析
  • 自建Web应用防火墙(WAF)
  • 深入剖析 C++ STL 中的 std::list 容器
  • 机器学习-决策树(DecisionTree)
  • conda一键配置python开发环境
  • .NET Core MVC中CSHTML
  • 在 Rocky Linux 9.2 上使用 dnf 安装 Docker 全流程详解
  • 嵌入式硬件中AI硬件设计方法与技巧
  • 跨平台、低延迟、可嵌入:实时音视频技术在 AI 控制系统中的进化之路
  • day23|前端学习三件套
  • JavaScript Const的基础使用
  • 爬虫与数据分析实战
  • 爬虫和数据分析相结合案例
  • 介绍一下jQuery的AJAX异步请求