Qt应用程序国际化

Step1, 修改.pro文件

打开.pro文件,添加如下语句

TRANSLATIONS += app_en.ts app_zh.ts

Step2,生成翻译文件.ts

使用“lupdate”工具更新翻译。点击“工具”->“外部”->“Qt语言家”->“更新翻译lupdate”。这样就生成了2个语言文件:app_en.ts,app_zh.ts。分别存放英文,中文。

Step3,翻译

用linguist(在QT安装目录下的bin目录中),打开“app_zh.ts”,选择“编辑”->“翻译文件设置”,选择“Chinese/China”。

 

选中某一个字符串,在译文文本框中输入对应于中文的字符串,在翻译完成后一定记得点一下字符串前面的“?”,使其变成一个“√”。

 

最后选择“文件”->“另存发布为…”,将语言文件发布为“app_zh.qm”文件。

Step4,静态加载语言文件

在程序中添加对国际化的支持,将main.cpp文件修改为如下内容。

 

#include <QtGui/QApplication>

#include <QTranslator>

#include "mainwindow.h"

 

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

{

   QApplication a(argc, argv);

    QTranslatortranslator;

    translator.load(QString(argv[1]));

   a.installTranslator(&translator);

    MainWindoww;

   w.show();

   

   return a.exec();

}

Step5,验证静态加载

重新执行make命令,生成可执行程序。在程序运行时通过传递命令行参数指定所使用的语言,注意不需要指定扩展名.qm,例如:

./myapp app_zh

./myapp app_en

Step4,动态加载语言文件

修改MainWindow.h文件内容如下:

 

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

 

#include <QMainWindow>

#include <QTranslator>

 

namespace Ui {

class MainWindow;

}

 

class MainWindow : public QMainWindow

{

   Q_OBJECT

   

public:

   explicit MainWindow(QWidget *parent = 0);

   ~MainWindow();

   

private slots:

   void on_actionEnglish_triggered();

 

   void on_actionChinese_triggered();

 

private:

   Ui::MainWindow *ui;

    QTranslator*translator;

};

 

#endif // MAINWINDOW_H

 

修改MainWindow.cpp文件内容如下:

 

#include "mainwindow.h"

#include "ui_mainwindow.h"

 

MainWindow::MainWindow(QWidget *parent) :

   QMainWindow(parent),

   ui(new Ui::MainWindow)

{

    translator = newQTranslator();

   ui->setupUi(this);

    ui->retranslateUi(this);

}

 

MainWindow::~MainWindow()

{

    qApp->removeTranslator(translator);

    delete translator;

    translator = NULL;

 

   delete ui;

}

 

void MainWindow::on_actionEnglish_triggered()

{

   translator->load("./mainwindow_en.qm");

   qApp->installTranslator(translator);

   ui->retranslateUi(this);

}

 

void MainWindow::on_actionChinese_triggered()

{

   translator->load("./mainwindow_zh.qm");

   qApp->installTranslator(translator);

   ui->retranslateUi(this);

}

Step5, 验证动态加载

打开可执行程序,通过language菜单即可动态切换语言。


工程文件下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值