Qt界面语言国际化

1 Qt界面语言国际化

1.1 操作步骤

操作步骤如下:

  1. 生成TS文件(LUPDATE)。
  2. 编辑TS文件(LINGUIST)。
  3. 发布TS文件(LRELESE)。
  4. 引用QM文件(QTranslator)。

生成和发布TS文件我们需要使用Qt语言家来完成,而编辑则需要利用linguist.exe软件来完成。

下面看下具体的步骤:

  • tr函数:在程序设计阶段,程序代码中每一个用户可见的字符串都用 tr()函数封装,以便QT提取界面字符串用于生成翻译资源文件。用UI设计器可视化窗体时同一用一种语言,如汉语。
  • ts 文件:在项目配置文件(.pro 文件)中设置需要导出的翻译文件(.ts)名称,使用 lupdate 工具扫描项目文件中需要翻译的字符串,并生成翻译文件。
  • Linguist 翻译专家:使用 Qt 的 Linguist 程序打开生成的翻译文件,将程序中的字符串翻译为需要的语言,如将所有中文字符串翻译为英文。
  • qm 文件:使用 lrelease 工具编译翻译好的翻译文件,生成更为紧凑的“.qm”文件。
  • 翻译器:在应用程序中使用 QTranslator 调用不同的“.qm”文件,实现不同的语言界面。

另外我们为了生成TS文件我们需要在工程配置文件中加入如下配置:

TRANSLATIONS = chinese.ts \
               english.ts

下面看下如何引用qm文件:

#include <QCoreApplication>
#include <qdebug.h>
#include <QTranslator>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    /// 翻译器对象
    QTranslator *trans = new QTranslator;

    /// 加载本地的语言文件
    // 注意:请把“E:/awork/qt/__learning/chapter1_Linguist/”改为您本地的路径
    /// 中文包
    //trans->load("E:/awork/qt/__learning/chapter1_Linguist/chinese.qm");

    /// 英文包
    trans->load("E:/awork/qt/__learning/chapter1_Linguist/english.qm");

    /// 安装翻译器
    a.installTranslator(trans);

    /// 字符串:根据语言包,来显示对应的字符信息
    qDebug() << QObject::tr("hello_msg");

    return a.exec();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值