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

VS + Qt 开发多语言,中英文

1 在工程 Translation Files 筛选目录下新建 multilingual_en.ts 和 multilingual_zh.ts

1) 右击 Translation Files / 添加 / 新建项

2) 弹框左侧选择 Visual C++/Qt, 右侧选择 Qt Translation Files

3) 选择语言

4) Finish

2 更新 ts 文件,

         右击 multilingual_en.ts  选择 lupdate , 右击 multilingual_zh.ts  选择 lupdate 

3 编辑 multilingual_en.ts  和 multilingual_zh.ts 

4 生成 qm 文件:multilingual_en.qm 和 multilingual_zh.qm

        右击 multilingual_en.ts  选择 lrelease, 右击 multilingual_zh.ts  选择 lrelease

5 工程加载 qm 文件 multilingual_en.qm 和 multilingual_zh.qm

6 main 函数中加载默认 qm 文件,或根据配置加载

static const QMap<int, QString> g_mapLanguage
{{0, "English"},{1, "Chinese"},
};QString strLang = g_mapLanguage.value(1);  // 默认中文
QTranslator translator;
if (strLang == XmlConfig::GetCfgInstance()->GetLanguageCfg())
{translator.load("./Resources/multilingual_zh.qm");
}
else
{translator.load("./Resources/multilingual_en.qm");
}
app.installTranslator(&translator);

7 在每个要切换语言的类文件实现 

protected:void changeEvent(QEvent* event) override;void TranslateUI();void MonitoringClass::changeEvent(QEvent* event)
{if (0 != event){switch (event->type()){case QEvent::LanguageChange:TranslateUI();break;default:break;}}QWidget::changeEvent(event);
}void MonitoringClass::TranslateUI()
{LOG4_TRACE("MonitoringClass::TranslateUI");qDebug() << "Test string:" << tr("QuickStart") << " , "  << tr("NewEntry");ui.btnQuickStart->setText(tr("QuickStart"));ui.btnStepByStep->setText(tr("NewEntry"));ui.btnMonitor->setText(tr("Monitoring"));	ui.btnHelp->setText(tr("Help"));ui.btnGoHome->setText(tr("Home"));
}

8 重新编译

如果重新编辑ts文件,或重新生成qm文件,可以删除后,在工程目录下 选择ts文件右击 执行 lupdate 或 lrelease 

http://www.dtcms.com/a/581385.html

相关文章:

  • 游戏开发入门,简单小游戏原理-关于2D渲染的一些小想法
  • Bootstrap4 徽章(Badges)
  • CSE(ChannelSigExplorer)生物电单信道可视化分析平台
  • IntelliJ IDEA 插件开发指南,编写你的第一个IDEA插件
  • 自己搭建一个网站需要多少钱?建站模板网站设计
  • Docker 部署 Oracle Linux 实操全流程
  • 做局域网网站教程php网站后台上传图片有没有推荐到首页的功能
  • Spring Boot 自定义组件深度解析
  • 海外IP如何代理可以提高效率
  • [人工智能-大模型-132]:模型层 - AI模型的演进
  • Python每日一练---第九天:H指数
  • go中es(olivere/elastic/v7)增加日志
  • css之动画
  • 域名费用和网站服务器费用是同样的吗解析软件的网站
  • 【C++】现代C++的新特性constexpr,及其在C++14、C++17、C++20中的进化
  • 求制作网站音乐网站建设规划
  • 免费响应式模板网站网站换空间要重新备案吗
  • 【Rust】时间轮的数据结构于设计模式
  • 解决cryptography库报错【DLL load failed while importing _rust】
  • JASP:一款免费开源的统计软件,SPSS替代产品
  • 【JS Utils】Vue2 自定义计算属性 (兼容 uniapp 和 Vue 2.7 以前版本)
  • React 16
  • 东莞网站建设技术支持南京网站建设 零云建站
  • wordpress通知站点360搜索品牌建设与管理提案
  • Python实现手写数字识别
  • 零成本体验云计算!阿贝云免费服务器深度测评
  • 如何在Mac上同步iPhone短信
  • 网站建设好后有些什么资料软件工程月薪一般多少
  • Fastapi 进阶一:Fastapi依赖注入机制详解
  • Java实用面试经验:接口编程概念与技巧总结