当前位置: 首页 > 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.dtcms.com/a/326196.html

相关文章:

  • 快速搭建前端playwright工程
  • SpringAI实现Reread(Advisor)
  • DNS核心概念与BIND配置详解
  • C++11的历史和统一的初始化列表
  • Qt串口通信设计指南:通信层架构与实践
  • K8S学习----应用部署架构:传统、虚拟化与容器的演进与对比
  • 虚拟财产刑事辩护:跨地域性与匿名性带来的挑战
  • 记录一些sonic自动化运行中的问题
  • 常见通信协议详解:TCP、UDP、HTTP/HTTPS、WebSocket 与 GRPC
  • 基于 Axios 的 HTTP 请求封装文件解析
  • Rust:专业级错误处理工具 thiserror 详解
  • Nginx 从入门到实战:安装、配置、升级与高级应用全解析
  • Web 开发前端与后端 API 的交互
  • golang 基础案例_01
  • 【MYSQL】MySQL中On duplicate key update
  • 台式机内存条安装方法
  • Docker中安装MySQL 5的详细过程
  • 算法讲解--水果成篮
  • GitHub的简单使用方法----(2)
  • Android中Activity销毁底层原理
  • AVS Video Converter视频转换与编辑工具深度评测
  • 基于OpenCV的实时美颜技术:从传统算法到深度学习融合实现
  • 光功率dBm为何是负数?一文详解
  • Effective C++ 条款35:考虑 virtual函数以外的其他选择
  • Spring源码解析 - SpringApplication run流程-prepareContext源码分析
  • MD5:理解MD5 / MD5核心特性 / MD5 在前端开发中的常见用途 / 在线生成MD5 / js-md5
  • Linux Docker 运行SQL Server
  • loading效果实现原理
  • Elasticsearch Node.js 客户端的安装
  • 第六十一章:AI 模型的“视频加速术”:Wan视频扩散模型优化