行业资讯
您现在所在的位置:首页>企业动态>行业资讯

Qt国际化语言

编辑:学到牛牛IT培训    发布日期: 2023-08-09 09:00:56  

一. Linguist工作原理

Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻译工具。发布者、翻译者和开发者可以使用这款工具来完成他们的任务。

1.png

Qt Linguist为发布者提供了两款工具-lupdate和lrelease。它们可以处理qmake项目文件,或直接在文件系统上运行。翻译者可以使用Qt Linguist工具翻译应用程序的文本。开发者创建Qt应用程序能够使用的翻译文本。

为了支持国际化最关键的地方是制作多国语言包,然后再实现动态切换。Qt可以通过命令行和QtCreator来生成多国语言包。首先生成ts文件,然后生成qm文件,最后通过QTranslator类来加载qm文件,实现多语言包的切换。

二.生成ts文件

在QT的项目文件(.pro)中添加:TRANSLATIONS = xxx.ts yyy.ts(如果是多行,则用 分割):

2.png

然后执行【工具】-》【外部】-》【QT语言家】-》【更新翻译(lupdate)】,如下图所示,执行完之后项目下就会生成对应的XXX.ts、YYY.ts文件。【需要将g++编译器路径添加到系统path】

3.png

4.png

5.png

三.生成qm文件

利用QT Linguist打开生成的ts文件,将里面需要翻译的地方写上对应的语言,如下图所示:

   6.png

7.png

8.png

   ts文件翻译完成后,执行Qt Creator中的【工具】-》【外部】-》【QT语言家】-》【部署翻译(lrelease)】就会生成最终要用到的qm文件,如下图所示:

9.png

10.png

11.png

四.加载qm语言包

到这里qm语言包制作完成,工作就完成了一大半了。接下来的任务就是在代码中实现语言包的加载,即:根据不同的选择加载不同的语言包。    

void MainWindow::changeTr()

{

    QAction *act = qobject_cast<QAction *>(QObject::sender());

    qDebug() << act;

    if( act->text().contains(tr("英语")) ){

        translate("/untitled_en_CN.qm");

    }else if( act->text().contains("Chinese") ){

        translate("/untitled_zh_CN.qm");

    }

}

void MainWindow::translate( QString path )

{

    static QTranslator* translator;

    if( translator != NULL ){

        qApp->removeTranslator(translator);

        delete translator;

        translator = NULL;

    }

    translator = new QTranslator;


    QString runPath = QCoreApplication::applicationDirPath();   // 获取当前运行路径


    if( translator->load( runPath + path )){

        qApp->installTranslator(translator);

    }

    ui->retranslateUi( this );

}


免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都市金牛区西城国际A座8楼

  • 新闻频道_关注IT技术应用资讯-学到牛牛
    新闻频道_关注IT技术应用资讯-学到牛牛

    扫一扫,免费咨询

  • 新闻频道_关注IT技术应用资讯-学到牛牛
    新闻频道_关注IT技术应用资讯-学到牛牛

    微信公众号

  • 新闻频道_关注IT技术应用资讯-学到牛牛
新闻频道_关注IT技术应用资讯-学到牛牛

学一流技术,找高薪工作

新闻频道_关注IT技术应用资讯-学到牛牛

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问