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

新建一个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

点击打开链接


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
Qt实现国际化和多语言切换需要以下步骤: 1. 在Qt项目创建一个“ts”文件,用于存储翻译后的资源。可以使用Qt自带的工具“Qt Linguist”来创建和编辑这些文件。 2. 在Qt项目使用Qt翻译API来翻译界面元素。例如,使用tr()函数来标记需要翻译的字符串。 3. 使用lupdate工具来生成一个“.ts”文件,其包含需要翻译的所有字符串。 4. 使用Qt Linguist编辑器来翻译这些字符串,并将它们保存到“.ts”文件。 5. 使用lrelease工具来生成一个二进制的翻译文件“qm”文件,其包含翻译后的资源。 6. 在Qt项目加载这些翻译文件,并在运行时切换语言。 下面是一个简单的示例代码,演示如何在Qt实现语言切换: ```cpp #include <QApplication> #include <QTranslator> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 加载翻译文件 QTranslator translator; translator.load("myapp_zh.qm"); app.installTranslator(&translator); // 设置界面元素的翻译 QLabel label(tr("Hello World!")); label.show(); return app.exec(); } ``` 在上面的例子,我们使用了QTranslator类来加载翻译文件,并使用installTranslator()函数将其安装到应用程序。我们还使用了tr()函数来标记需要翻译的字符串。 当应用程序启动时,它将自动加载当前系统语言对应的翻译文件。如果用户切换语言,我们只需要重新加载对应的翻译文件即可。 希望这可以帮助你实现Qt的国际化和多语言切换

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值