一.QT多语言如何翻译的?
在QT的多语言翻译过程中,分为两个步骤:第一步生成ts文件,第二步将ts文件翻译为qm文件。如果我们在需要多语言的情况下,qml经常使用qstr或者qwidget中使用tr等等,遍布许多个文件夹,在需要更新新的翻译时会很麻烦。整个工程收索并修改,效率十分低下。这里提供一个小技巧。
二.qml下我们将所有需要翻译的字段放入单独的qml文件中,Translate.qml
pragma Singleton
import QtQml 2.14
import QtQuick 2.15
QtObject{
property string app_Cancel: qsTr("Cancel")
property string app_OK: qsTr("OK")
}
三.qwidget下我们将翻译的字段放入单独的.h文件中,translate.h
#pragma once
#include <QObject>
#include <QDebug>
class Translate : public QObject
{
Q_OBJECT
public:
static Translate * instance() {
if( m_trans == nullptr ){
m_trans = new Translate ();
}
return m_trans;
}
const QString helloWord = QObject::tr("hello word");
}
四.其他文件需要翻译的地方调用
qml: T