remove translations before load
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user