Qt国际化(lupdate/linguits/lrelease)生成.ts和转换成.qm文件

本文介绍如何在QT项目中实现多语言支持。包括使用tr()函数标记待翻译文本、使用lupdate生成翻译文件、利用linguist进行翻译编辑以及通过lrelease发布翻译。最后展示了如何在程序中加载并使用翻译文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 1、需要翻译的文本
    在编写QT程序的时候,对于要翻译的文本,应当使用tr()包含起来。
    我们先来看看tr函数的原型,这是一个静态函数。
    QString QObject::tr(const char * sourceText, const char * disambiguation = 0, int n = -1)
    备注:因为Qt中的类都继承自QObject类,所以这里直接使用了tr,如果不是在继承自QT的类中使用,应该用Object::tr(…)来调用

  • 2、lupdate更新翻译
    先说一下lupdate的使用格式:
    lupdate [选项] [项目文件]…
    lupdate [选项] [源文件 | 路径 | @ lst 文件]…-ts ts 文件 | @ lst 文件
    生成ts文件
    1)直接通过指令生成,这个方式会忽略掉pro文件中指定要生成的翻译文件
    在这里插入图片描述
    2)通过配置Pro生成
    在pro文件中添加:TRANSLATIONS = MyTest.ts
    在这里插入图片描述

  • 3、linguits翻译文本
    更新需要翻译的文本也是有两种方式:
    1)直接打开上面生成的.ts文件
    在这里插入图片描述
    2)通过linguits工具翻译
    在这里插入图片描述
    在这里插入图片描述

  • 4、lrelease发布翻译
    1)直接通过lrelease命令生成qm文件
    lrelease MyTest.ts -qm MyTest.qm
    2)通过QtCreator生成qm文件
    在这里插入图片描述

  • 4、在程序中使用翻译文件
    在QT程序中要使用翻译文件,需要使用到类QTranslation。现在来修改main.cpp.

#include <QApplication>
#include <QTranslator>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTranslator translator;           //定义翻译器变量
    if (translator.load("MyTest.qm"))   //加载翻译文件
    {
        a.installTranslator(&translator); //安装翻译器
    }
    return a.exec();
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值