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之十四】QT实现多语言切换

QT制作多语言包,实现多语言切换。
  • houqingdong2012
  • houqingdong2012
  • 2014年07月18日 20:10
  • 8405

Qt入门-界面多语言国际化的实现

Qt为国际化的实现提供了简便的方法。下面使用Qt Linguist示例一个中文语言界面的生成。    我使用以前的实例:http://blog.csdn.net/xgbing/article/det...
  • xgbing
  • xgbing
  • 2012年07月25日 10:30
  • 10438

QT多语言

QT实现多语言步骤
  • tracing
  • tracing
  • 2016年07月05日 17:35
  • 859

QT多语言程序

  • 2017年09月01日 13:56
  • 5KB
  • 下载

qt多国语言及其动态切换的学习笔记

经过了几天的努力,从一开始的只能系统静态修改语言,到一层界面的修改,后来再到多层界面的动态切换,在此记录一下过程 1. 编写代码的时候的注意事项 首先在建立UI的时候尽量用英文的名字,虽然后来我的...
  • prompty
  • prompty
  • 2016年05月18日 10:53
  • 2192

QT国际化与多语言实现

1.Unicode编码         Unicode是一种支持世界上绝大多数文字系统的字符编码标准。QT中的QString类用于将字符串存储为Unicode。 2.应用程序如何翻译QT文件  ...
  • VIPCCJ
  • VIPCCJ
  • 2015年11月16日 13:25
  • 704

QT多国语言测试程序

#QT笔记# 项目需要刚转QT没多久,很多东西不太熟悉,需要自己摸索~~ 写下博客记录下学习笔记吧! QT不同于MFC的变量关联和消息映射,QT里叫信号和连接槽,直接编译出来cpp数组类似查表...
  • wangningyu
  • wangningyu
  • 2016年11月18日 23:22
  • 676

Qt实现多语言的切换

  • 2017年02月25日 13:32
  • 5KB
  • 下载

QT实现多国语言的动态切换

摘要:本文论述了如何使用QT实现程序的多语系支持以及多语系的动态切换。 前沿 我们生活中用到的程序大多都是支持单一语言的,比如在中国我们用到的软件大多是汉语的,也有很少部分使用的是英语的,但是很少...
  • wang_hu_feng
  • wang_hu_feng
  • 2014年09月29日 21:09
  • 2395

QT国际化,中英文等多语言界面显示的方法

在网上学习了一下QT的国际化用法,最后将自己试成功的方法总结如下: 其中遇到的问题有:生成的ts文件中 代码中的中文 有的不显示,有的显示乱码。 步骤1:...
  • liukang325
  • liukang325
  • 2014年04月22日 11:03
  • 4349
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt实现多国语言(即界面翻译)可实时进行切换
举报原因:
原因补充:

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