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

多语言Qt Linguist

Linguist

  • 步骤:
  • 主程序中添加注册表信息
  • action添加语言翻译

步骤:

  1. 在程序设计阶段,代码中所有用户可见的字符串都需要使用 tr() 函数进行封装,以便 Qt 可以提取这些字符串用于生成翻译资源文件。
    2.在项目文件中加入,TRANSLATIONS =samp16_1_cn.ts\
    samp16_1_en.ts
    (多行文件目录用\号隔开,换行)
  2. 在项目配置文件(.pro 文件)中设置需要导出的翻译文件(.ts 文件)名称,并使用 lupdate 工具扫描项目文件中需要翻译的字符串,生成翻译文件。
  3. 使用 Qt 的 Linguist 程序打开生成的翻译文件,将程序中的字符串翻译为需要的语言,例如将中文字符串翻译为英文。
  4. 使用 lrelease 工具编译翻译好的翻译文件,生成 .qm 文件,文件放入项目中。
  5. 在应用程序中使用 QTranslator 调用不同的 .qm 文件来实现不同的语言界面。

主程序中添加注册表信息

#include    <QTranslator>
#include    <QSettings>
QTranslator *trans=NULL;
QString readSetting();
int main(int argc, char *argv[])
{QApplication app(argc, argv);trans=new QTranslator;QString curLang=readSetting(); //读取语言设置if (curLang=="EN")trans->load("samp16_1_en.qm");elsetrans->load("samp16_1_cn.qm");app.installTranslator(trans);MainWindow w;w.show();return app.exec();
}QString readSetting()
{//从注册表读取上次设置的语言QString organization="WWB-Qt";//用于注册表,QString appName="samp16_1"; //HKEY_CURRENT_USER/WWB-Qt/amp13_1QSettings  settings(organization,appName);//创建QString Language=settings.value("Language","EN").toString();//读取 saved键的值return  Language;
}

action添加语言翻译

void MainWindow::on_actLang_CN_triggered()
{//中文界面qApp->removeTranslator(trans);delete trans;trans=new QTranslator;trans->load("samp16_1_cn.qm");qApp->installTranslator(trans);ui->retranslateUi(this);QSettings   settings("WWB-Qt","samp16_1"); //注册表键组settings.setValue("Language","CN"); //界面语言,汉语
}void MainWindow::on_actLang_EN_triggered()
{//英文界面qApp->removeTranslator(trans);delete trans;trans=new QTranslator;trans->load("samp16_1_en.qm");qApp->installTranslator(trans);ui->retranslateUi(this);QSettings   settings("WWB-Qt","samp16_1"); //注册表键组settings.setValue("Language","EN"); //界面语言,英语
}

文章转载自:

http://WozcxKPq.jnptt.cn
http://Y765uNqn.jnptt.cn
http://2JUqueer.jnptt.cn
http://Z0riiJgJ.jnptt.cn
http://K9sJCVJ4.jnptt.cn
http://tyZio1Ks.jnptt.cn
http://wc5AkAfE.jnptt.cn
http://hIK9AstT.jnptt.cn
http://UV34onat.jnptt.cn
http://XVAMZ4ED.jnptt.cn
http://NL9X62s4.jnptt.cn
http://9teRjXea.jnptt.cn
http://2unl1m0f.jnptt.cn
http://GNkvIKg0.jnptt.cn
http://M9wHO5GX.jnptt.cn
http://nT5OPdis.jnptt.cn
http://oovOnFnL.jnptt.cn
http://XPdXvNlt.jnptt.cn
http://KtyNt7Ni.jnptt.cn
http://yt4RPbJb.jnptt.cn
http://Xs8wOvbZ.jnptt.cn
http://1tmR3j4t.jnptt.cn
http://jyn2aZ5C.jnptt.cn
http://4urcj3Zy.jnptt.cn
http://iNcR6Olc.jnptt.cn
http://Cswa544p.jnptt.cn
http://Q1vgoDfp.jnptt.cn
http://Otx28yco.jnptt.cn
http://HcHcycy8.jnptt.cn
http://U07cRjjc.jnptt.cn
http://www.dtcms.com/a/368948.html

相关文章:

  • 2025年- H118-Lc86. 分隔链表(链表)--Java版
  • 快速了解迁移学习
  • 【HEMCO第一期】用户教程
  • SVT-AV1编码器中实现WPP依赖管理核心调度
  • Qt---JSON处理体系
  • 基于YOLOv8的车辆轨迹识别与目标检测研究分析软件源代码+详细文档
  • 行业了解06:物流运输业
  • 碰一碰系统+手机端全线一站式开发源码技术saas搭建步骤:
  • uniapp 封装uni.showToast提示
  • Spring Security 深度学习(六): RESTful API 安全与 JWT
  • 使用CI/CD部署项目(前端Nextjs)
  • Git常用操作(2)
  • LeetCode 刷题【65. 有效数字】
  • Android,jetpack Compose模仿QQ侧边栏
  • 让语言模型自我进化:探索 Self-Refine 的迭代反馈机制
  • Kubernetes(k8s) po 配置持久化挂载(nfs)
  • 支持二次开发的代练App源码:订单管理、代练监控、安全护航功能齐全,一站式解决代练护航平台源码(PHP+ Uni-app)
  • proble1111
  • Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
  • nextcyber——暴力破解
  • Process Explorer 学习笔记(第三章3.2.3):工具栏与参考功能
  • C++两个字符串的结合
  • c51串口通信原理及实操
  • Java垃圾回收算法详解:从原理到实践的完整指南
  • MongoDB 6.0 新特性解读:时间序列集合与加密查询
  • IAR借助在瑞萨RH850/U2A MCU MCAL支持,加速汽车软件开发
  • 状压 dp --- 棋盘覆盖问题
  • 机器学习周报十二
  • 力扣:2322. 从树中删除边的最小分数
  • 人工智能常见分类