-
Notifications
You must be signed in to change notification settings - Fork 0
/
translation.cpp
29 lines (22 loc) · 955 Bytes
/
translation.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "translation.h"
TranslationHandler::TranslationHandler(QQmlEngine *engine) {
this->engine = engine;
auto zh_CNtrans = std::make_shared<QTranslator>();
zh_CNtrans->load("lang/zh_CN.qm");
transMap.insert(QString("简体中文"), zh_CNtrans);
auto en_UStrans = std::make_shared<QTranslator>();
en_UStrans->load("lang/en_US.qm");
transMap.insert(QString("English"), en_UStrans);
QCoreApplication::installTranslator(en_UStrans.get());
currLang = "English";
}
void TranslationHandler::reTranslate(const QString lang) {
if (transMap.contains(lang)) {
QCoreApplication::removeTranslator(transMap.value(currLang).get());
QCoreApplication::installTranslator(transMap.find(lang).value().get());
currLang = lang;
engine->retranslate();
}
}
QStringList TranslationHandler::languages() { return transMap.keys(); }
QString TranslationHandler::getCurrLang() { return currLang; }