本例介绍了qt、qml混合编程的多语言翻译,工程目录及执行效果如下图:
一、生成资源文件
1.在pro中ti添加需要多语言翻译所需要的文件,这样编译工程时会自动生成这两个ts文件。
TRANSLATIONS = language_zh_cn.ts \
language_en_us.ts
2.使用Qt Creator自带的工具生成ts文件
3.打开Qt Linguist工具(该工具在装Qt Creator一般默认是安装的),分别打开两个文件,进行翻译,保存(英文也可以不翻译)。
4.翻译完毕,运行步骤2中的第二个工具,将会由ts文件生成qm文件,这就是动态语言翻译所需要的资源文件。
二、动态加载资源文件
在下面这个例子中,Translator作为一个语言翻译类以单例的形式存在。
1.初始化
Translator.h
#ifndef TRANSLATOR_H
#define TRANSLATOR_H
#include <QObject>
class QTranslator;
class Translator : public QObject
{
Q_OBJECT
public:
static Translator* getInstance();
private:
explicit Translator(QObject *parent = 0);
~Translator();
signals:
void languageChanged();
public slots:
void loadLanguage(QString lang);
private:
QTranslator* m_translator;
};
#endif // TRANSLATOR_H
Translator.cpp