如果觉得下边这个工程有用的话,下载:http://118.25.63.144/temporary/TranslatorTest.zip

  使用qt实现动态语言切换很方便。只需要利用Qt5LinguistTools生成一个.ts文件(多个语言需要多个.ts文件),让后使用QtLinguist软件打开.ts文件,填充翻译,发布为.qm文件。让后动态读取.qm就可以了。cmake/qmake下如如何配置Qt5LinguistTools可以看下边两个简单的案例。
  需要翻译的文本应该用 tr把文本包含起来。

QString QObject::tr(const char *sourceText, const char *disambiguation = Q_OBJECT, int n = Q_OBJECT)

  需要翻译的界面应该在属性下设置为可以翻译

  更新和发布翻译

  设置翻译文本,选择Qt5LinguistTools

  • qmake

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = untitled
TEMPLATE = appDEFINES += QT_DEPRECATED_WARNINGSCONFIG += c++11SOURCES += \main.cppRESOURCES += \resource.qrcTRANSLATIONS += en.ts# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
#include <QDebug>
#include <QTranslator>
#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);QTranslator translator;translator.load(":/new/prefix1/en.qm");qApp->installTranslator(&translator);qDebug() << QObject::tr("hell word");qApp->removeTranslator(&translator);qDebug() << QObject::tr("hell word");qApp->installTranslator(&translator);qDebug() << QObject::tr("hell word");return 0;
}
  • camke
cmake_minimum_required(VERSION 3.1)project(untitled)set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 14)
option(BUILD_SHARED_LIBS "" OFF)find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Sql Test Xml Network Concurrent)
find_package(Qt5LinguistTools)set(Resourceresource.qrc)set(translateresource.qrc)qt5_create_translation(Translatemain.cppdialog.uien.ts)add_executable(${PROJECT_NAME}${Translate}${Resource}dialog.cppdialog.hdialog.uimain.cpp)target_link_libraries(${PROJECT_NAME}Qt5::CoreQt5::GuiQt5::WidgetsQt5::SqlQt5::XmlQt5::NetworkQt5::Concurrent)
#include <QTranslator>
#include <QApplication>
#include <QDebug>
#include "dialog.h"int main(int argc, char *argv[]) {QApplication a(argc, argv);QTranslator translator;translator.load(":/en.qm");qApp->installTranslator(&translator);qDebug() << QObject::tr("hell word");qApp->removeTranslator(&translator);qDebug() << QObject::tr("hell word");Dialog w;w.exec();return 0;
}
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>namespace Ui {class Dialog;
}class QTranslator;class Dialog : public QDialog {Q_OBJECTpublic:explicit Dialog(QWidget *parent = nullptr);~Dialog();protected:
//    void changeEvent(QEvent *);private slots:void on_pushButton_clicked();private:Ui::Dialog *ui;QTranslator *translator_;
};#endif // DIALOG_H
#include "dialog.h"
#include "ui_dialog.h"
#include <QTranslator>
#include <QDebug>
#include <QLibraryInfo>Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog) {ui->setupUi(this);translator_ = new QTranslator();
}Dialog::~Dialog() {delete ui;
}void Dialog::on_pushButton_clicked() {static bool is_en = 0;if(!is_en) {qApp->removeTranslator(translator_);translator_ = new QTranslator();translator_->load(":/en.qm");qApp->installTranslator(translator_);ui->retranslateUi(this);} else {qApp->removeTranslator(translator_);ui->retranslateUi(this);}is_en = !is_en;
}

Qt 语言切换 QTranslator cmake qmake相关推荐

  1. 【大话QT之十四】QT实现多语言切换

    功能需求: 网盘客户端要能够实现多国语言的切换,第一版要支持中.英文的切换.在实现过程中感觉QT对多国语言的支持还是很不错的,制作多语言包很方便,切换的逻辑也很简单.下面就来看一下QT中如何制作多语言 ...

  2. 浅谈Qt的编译方式:qmake/cmake/qbs及qbs被弃用的原因

    1.Qbs简介 https://doc.qt.io/qbs/qml-qbsmodules-qbs.html Qt 编译方式之 qbs_lucky-billy的博客-CSDN博客_qbs QBS(Qt ...

  3. 2.4 Qt多国语言切换

     如果要实现qt程序动态语言切换,最简单有效的方法是使用QTranslator类,首先使用QTranslator对象加载相应的翻译语言文件,然后用 QApplication::installTrans ...

  4. Qt之Qml 国际化—实现简易语言切换功能

    目标:实现一个下拉框,具有切换语言的功能 GIF展示: 版本Qt5.14.2,版本不能低于5.10 qml控件 1.在QML文件中把需要翻译显示的文本用qsTr(" ")包裹起来 ...

  5. Qt+C++窗体界面中英文多语言切换

     程序示例精选 Qt+C++窗体界面中英文语言切换 如需安装运行环境或远程调试,见文章底部个人微信名片,由专业技术人员远程协助! 前言 这篇博客针对<<Qt+C++窗体界面中英文语言切换& ...

  6. Qt多语言切换-Qt语言家

    csdn文章地址 github网址 1. 前言 本文利用Qt语言大师工具,实现Qt程序的多国家语言切换,在github上放置的开源代码中同时放置了所使用的 Qt语言大师程序.CSDN上有众多的Qt语言 ...

  7. QT语言家实现软件中英文切换

    环境:qtcreator 步骤: 首先是源代码中需要进行翻译转换的字符串内容要使用到tr函数包裹 工程文件.pro文件加上TRANSLATIONS += xx.ts 点击下图Qt语言家中的更新翻译,这 ...

  8. Qt 语言家实现中英文切换

    生成ts文件 在QT的项目文件(.pro)中加入:TRANSLATIONS = XXX.ts YYY.ts(假设是多行,则用 \ 切割) TRANSLATIONS = CN.ts\EN.ts 工具-- ...

  9. QT 语言家 中英文切换

    环境: vs +qt msvc 创建ts文件 第一种: 工具->QT VS Tools 选择 第二种: 点击ok后,生成.pro文件 打开.pro文件,在.pro文件中添加 TRANSLATIO ...

  10. qml中loader加载页面会闪屏_Qml动态语言切换

    此方法需要在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现 重要的事情说三遍 首先在工程文件.pro中加入TRANSLATIONS = zh_CN.ts ...

最新文章

  1. MySQL 源码 需要 什么基础_MySQL 基础之 源码 部署
  2. 内存泄漏和内存溢出的关系和区别
  3. ansible(6)——模块命令command、shell详细用法
  4. easyUI的combobox设置隐藏和显示
  5. WS-Eventing、WS-Transfer Web服务标准
  6. 数据库分库分表、读写分离的原理和实现,以及使用场景
  7. 日语输入法 android8.0,讯飞输入法发布 AndroidV8.0.6855 专注提升输入效率
  8. php get请求_《细说PHP》第四版 样章 第23章 自定义PHP接口规范 10
  9. 移动开发的跨平台技术发展史 | 技术头条
  10. jquery筛选方法-选取父子元素
  11. 【概率论与数理统计】小结7 - 统计学中的基本概念
  12. python安装第三方库太慢,很容易失败报错?教你如何提速
  13. 爬虫实战:遇上gb2312编码的网页
  14. Python游戏——Pong
  15. 3.28leet28
  16. docker 网络的解释
  17. Web安全技术—常见的攻击和防御
  18. 特斯拉充电电流设置多大_特斯拉再次升级Model S 充电状况不稳时自动降低电流...
  19. HTML常见的处理文本的标签,比如说加粗啦、斜体啦等等等。。。
  20. winrar中文去广告版下载

热门文章

  1. JAVA菜鸟的第一天
  2. 使用Subversion进行版本控制
  3. gsp计算机管理权限,新gsp计算机权限设置
  4. excel数字小写转大写公式的教程
  5. Python读取微信朋友圈
  6. 在文档阅读器上为 PDF 文档生成多级目录
  7. 明解c语言实践篇翻译_《明解c语言》已看完,练习代码此奉上
  8. 条码打印工具-Bartender的使用
  9. python 英语分词_python 英文分词
  10. 小米路由器青春版(R1CL)刷高恪软路由系统