Qt实现多国语言(即界面翻译)可实时进行切换

原创 2016年08月28日 23:23:15

新建一个Qt Widgets Application的工程,

然后在UI界面上放置QLabel以及一个按钮

最终要实现点击按钮,实现QLabel上的文字进行中英切换


大致步骤:

1.由界面的UI信息,生成ts文件

2.由ts文件,翻译后,生成qm文件

3.通过代码调用qm文件,进行语言切换

然后,在工程的pro文件下添加:

TRANSLATIONS += qzher_en.ts

再在QtCreate菜单中,如下,选择Update Translations,就会生成一个 qzher_en.ts (此文件在工程目录下,即和main.cpp同级)

我们可以用记事本打开此ts文件,内容大致如下:

它主要是一个xml文件,里面包含了UI所有的文字信息

下一步,则需要将此文字信息进行对应地进行翻译

Linux下,则打开安装目录下的: linguist

Windows则在开始菜单中可以找到:

在打开的Liguist,把上一步生成的qzher_en.ts打开,选择Source text 进行逐个翻译

翻译完后,将 qzher_en.ts 进行保存

然后再回到QtCreate中,点击Release Translations

通过此步,可以实现qzher_en.ts 生成一个对应的 qzher_en.qm

此 qm 文件,即最终需要的,它为一个二进制文件,包含需要的多国语言翻译信息

有了翻译信息后,再进行软件的翻译处理。

在此,通过一个按钮点击进行实时切换:

核心代码:

通过一个变量控制中英文来回切换,并能通过一个按钮打开翻译网站

 

#include <QApplication>

void MainWindow::onTranslation()

{

    if(!m_bTranslator)

    {

        //  翻译文件

        m_qtTranslator.load(":/qzher_en.qm");

        qApp->installTranslator(&m_qtTranslator);

        ui->retranslateUi(this);

    }

    else

    {

        qApp->removeTranslator(&m_qtTranslator);

        ui->retranslateUi(this);

    }

    m_bTranslator = !m_bTranslator;

}

 

 

#include <QDesktopServices>

#include <QUrl>

void MainWindow::onOpenLink()

{

    QDesktopServices server;

    server.openUrl(QUrl("http://www.shicimingju.com/chaxun/list/25681.html"));

}

 

只进行了诗词的翻译,按钮的文字未进行翻译,所以按钮一直没变,当然,按钮也可以进行翻译,内容和诗词一样

注: 本文所采用诗词翻译来源于 诗词名句网 http://www.shicimingju.com/chaxun/list/25681.html

源码下载:http://download.csdn.net/detail/sinat_35523212/9603246



原文:http://qzher.com/?p=589


青哲科技 致力于良心IT教育 

深圳QQ群: 3260 23167

版权声明:更多文件,请访问 qzher.com 致力于良心IT培训,深圳QQ群:326023167

相关文章推荐

Qt实现动态切换语言

要想实现动态切换语言,必须掌握动态切换语言的原理。 原理其实就是把显示的语言文字做成不同的字库文件,然后在程序中动态的加载字库文件而已。比如说我要中文显示,那么我就先做一个中文字库文件,然后在程序中...
  • csf111
  • csf111
  • 2012-07-16 20:02
  • 10026

QT动态翻译

QT实现动态翻译和语言切换        QT GUI提供语言动态转换机制并辅以相应的工具方便programmer实现界面的多语言实时动态切换功能。实现语言动态切换的方法:一个注意+五个...

QT实现动态翻译和语言切换

QT GUI提供语言动态转换机制并辅以相应的工具方便programmer实现界面的多语言实时动态切换功能。实现语言动态切换的方法:一个注意+五个步骤。        一个注意:      ...

Qt 界面上控制中英文显示切换

windows下GBK编码方式的中文移植到ubuntu下UTF-8编码方式的工作是件很令人头疼的事情,经历过一次的我深深知道是多么的痛苦, 所以从今天起我打算写程序不在代码中用一个中文.那大家要问了...

QT界面多语言的实现

QT菜单多语言的实现   系统:Win764位企业版 工具:QtCreator 3.0.1 目的:菜单做成中英文切换   步骤和过程: 1.      在PRO文件中加入语句:TRANSLATIONS...

Qt:QML生成翻译中间文件ts

在.pro文件中加入这段代码就可以生成翻译中间文件tsTRANSLATIONS+=zh_CN.ts en_us.tsc++代码中需要翻译的文字需要用tr包住,qml需要翻译的文字需要qsTr包住tr(...

Qt Quick 之 QML 与 C++ 混合编程详解

Qt Quick 技术的引入,使得你能够快速构建 UI ,具有动画、各种绚丽效果的 UI 都不在话下。但它不是万能的,也有很多局限性,原来 Qt 的一些技术,比如低阶的网络编程如 QTcpSocket...
  • foruok
  • foruok
  • 2014-07-04 12:22
  • 92736

关于QML Book翻译

基本以及完成了翻译,没有校对过,希望大家能帮忙校对。
  • zcwwcw
  • zcwwcw
  • 2014-09-10 11:03
  • 1281

Qt动态语言的切换

Qt动态语言的切换
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)