2019-03-21 19:24:03 -07:00
|
|
|
#include "translator.h"
|
|
|
|
|
|
|
|
#include <QApplication>
|
|
|
|
#include <QLibraryInfo>
|
|
|
|
#include <QDebug>
|
|
|
|
#include <QDir>
|
|
|
|
|
|
|
|
Translator::Translator(const QLocale &locale)
|
|
|
|
{
|
|
|
|
load(locale);
|
|
|
|
}
|
|
|
|
|
|
|
|
void Translator::load(const QLocale &locale)
|
|
|
|
{
|
|
|
|
qDebug() << "Loading Locale:" << locale;
|
|
|
|
if (qtTranslator.load(locale, "qt", "_", systemTranslationPath)) {
|
2019-03-28 20:34:17 -07:00
|
|
|
QApplication::installTranslator(&qtTranslator);
|
2019-03-21 19:24:03 -07:00
|
|
|
qDebug() << "Qt Translator installed from system path" << systemTranslationPath;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
qtTranslator.load(locale, "qt", "_", translationsPath);
|
2019-03-28 20:34:17 -07:00
|
|
|
QApplication::installTranslator(&qtTranslator);
|
2019-03-21 19:24:03 -07:00
|
|
|
qDebug() << "Qt Translator installed from standard path" << translationsPath;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (appTranslator.load(locale, "gui", "_", translationsPath))
|
2019-03-28 20:34:17 -07:00
|
|
|
QApplication::installTranslator(&appTranslator);
|
2019-03-21 19:24:03 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
QStringList Translator::getTranslations() const
|
|
|
|
{
|
|
|
|
QDir dir(translationsPath);
|
|
|
|
QStringList fileNames = dir.entryList(QStringList("qt_*.qm"));
|
|
|
|
for (QString &s : fileNames) {
|
|
|
|
s.truncate(s.lastIndexOf('.')); // "qt_de"
|
|
|
|
s.remove(0, s.indexOf('_') + 1); // "de"
|
|
|
|
}
|
|
|
|
return fileNames;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool Translator::setLocale(const QLocale & newLocale)
|
|
|
|
{
|
|
|
|
if (currentLocale == newLocale)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
QLocale::setDefault(newLocale);
|
|
|
|
currentLocale = newLocale;
|
|
|
|
load(newLocale);
|
|
|
|
return true;
|
|
|
|
}
|