1.4 Qt工具之Qt Linguist介绍


***【在线视频教程】***

好文章,来自【福优学苑@音视频+流媒体】

1.4 Qt工具之Qt Linguist介绍

Qt国际化的概念

有些软件需要开发多语言界面版本,如中文本和英文本,并且在软件里可以方便地切换界面语言。

Qt也支持多语言界面

Qt国际化的三部曲

QT国际化(lupdate/linguits/lrelease)

Qt国际化的操作步骤

①tr函数:在程序设计阶段,程序代码中每一个用户可见的字符串都用tr()函数封装,以便QT提取界面字符串用于生成翻译资源文件。用UI设计器可视化窗体时同一用一种语言,如汉语

②ts文件:在项目配置文件(.pro文件)中设置需要导出的翻译文件(.ts)名称,使用lupdate工具扫描项目文件中需要翻译的字符串,并生成翻译文件

③Linguist翻译专家:使用Qt的Linguist程序打开生成的翻译文件,将程序中的字符串翻译为需要的语言,如将所有中文字符串翻译为英文

④qm文件:使用lrelease工具编译翻译好的翻译文件,生成更为紧凑的“.qm”文件

⑤翻译器:在应用程序中使用QTranslator调用不同的“.qm”文件,实现不同的语言界面

如何生成ts文件(lupdate)

image.png

image.png


然后看输出:


Updating 'chinese.ts'...

Found 1 source text(s) (1 new and 0 already existing)

Updating 'english.ts'...

Found 1 source text(s) (1 new and 0 already existing)


本地已经生成了对应的ts文件,

Ts文件就是普通的xml格式的文件。


image.png


如何编辑ts文件(Linguist)

打开本地的“linguist.exe”,

路径为:“D:\__qt598\5.9.8\mingw53_32\bin”

其中“D:\__qt598”为你本地的QT5.9.8的安装路径。

image.png

image.png


如何发布ts文件(lrelese)

image.png

image.png


Starting external tool "D:\__qt598\5.9.8\mingw53_32\bin\lrelease.exe" E:/awork/qt/__learning/chapter1_Linguist/chapter1_Linguist.pro

Info: creating stash file E:\awork\qt\__learning\chapter1_Linguist\.qmake.stash

Updating 'E:/awork/qt/__learning/chapter1_Linguist/chinese.qm'...


Generated 1 translation(s) (1 finished and 0 unfinished)

Updating 'E:/awork/qt/__learning/chapter1_Linguist/english.qm'...

Generated 1 translation(s) (1 finished and 0 unfinished)



此时,已经生产了对应的qm本地文件


如何引用qm文件(QTranslator)

QCoreApplication a(argc, argv);


QTranslator *trans = new QTranslator;

// E:/awork/qt/qtHelloworld/

// 注意:请把“E:/awork/qt/qtHelloworld/”改为您本地的路径

    trans->load("E:/awork/qt/qtHelloworld/chinese.qm");

    //trans->load("E:/awork/qt/qtHelloworld/english.qm");

    a.installTranslator(trans);


    qDebug() << QObject::tr("hello_msg");


    return a.exec();



好文章,来自【福优学苑@音视频+流媒体】
***【在线视频教程】***