QT国际化(lupdate/linguits/lrelease),多国语言,中英文语言切换

 

  1. 对需要翻译的文本信息全部使用tr()进行封装;并且用“英文”;(初始全是英文,方便编辑“语言文件”)
  2. 创建语言文件ts

在pro文件里添加:TRANSLATIONS = english.ts chinese.ts

Ts文件生成:利用qt的命令提示符窗口:运行(下同)lupdate.exe  *.pro,生成*ts文件

或者,菜单栏 "工具"-> "外部" -> "Qt语言家" -> "更新翻译(lupdate)"

 

3、翻译语言ts文件:(虽然原文是英文,也要有英文翻译文件)

分别运行linguits.exe english.ts;linguits.exe chinese.ts

或者,用其他编辑器直接编辑;

4、发布翻译文件qm文件:

lrelease *.pro

或者,菜单栏 "工具"-> "外部" -> "Qt语言家" -> "发布翻译(lrelease)"

5、加载翻译文件,Qm文件放在执行目录

int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

    MainWindow w;

w.show();//w里定义QTranslator * m_trans;

    a.installTranslator(w.m_trans);

    return a.exec();

}

void MainWindow::on_pushButton_2_clicked()

{//中英文切换时

m_trans->load("english.qm");

ui->retranslateUi(this);//更新主窗口时需要添加此,否则只能更新子窗口

}

void MainWindow::on_pushButton_3_clicked()

{

    m_trans->load("chinese.qm");

    ui->retranslateUi(this);

}

6、需要更新翻译,便重复" 2 " ~ " 4 " 步骤

 

参考:https://blog.csdn.net/hebbely/article/details/69388763

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值