remove translations before load

This commit is contained in:
2020-05-25 18:47:28 +03:00
parent c1fa375145
commit e90f5d23c4

View File

@@ -14,6 +14,15 @@
#endif
class __QADTranslators__ {
public:
static QMap<QString, QTranslator *> translators;
private:
};
QMap<QString, QTranslator *> __QADTranslators__::translators = QMap<QString, QTranslator *>();
QString QAD::userPath(QAD::LocationType loc, QString name) {
QString dir, ext;
switch (loc) {
@@ -58,6 +67,13 @@ QStringList QAD::resourcePaths(QString type) {
void QAD::loadTranslations(QString lang) {
QMapIterator<QString, QTranslator *> i(__QADTranslators__::translators);
while (i.hasNext()) {
i.next();
qApp->removeTranslator(i.value());
delete i.value();
}
__QADTranslators__::translators.clear();
if (lang.isEmpty())
lang = QLocale().bcp47Name();
QString short_lang = lang.left(2);
@@ -72,6 +88,7 @@ void QAD::loadTranslations(QString lang) {
QTranslator * tr = new QTranslator();
if (tr->load(dit.filePath())) {
qApp->installTranslator(tr);
__QADTranslators__::translators[dit.filePath()] = tr;
qDebug() << "Add tr" << dit.fileName();
} else {
qDebug() << "Can`t load translation" << dit.fileName();
@@ -107,10 +124,10 @@ QStringList QAD::availableTranslations() {
if (loc.language() != QLocale::C)
ret << lang[i];
}
//qDebug() << "Can`t load translation" << dit.fileName();
delete tr;
}
delete tr;
}
}
return ret.values();
}