31 #include "miscellaneous/localization.h"
33 #include "definitions/definitions.h"
34 #include "miscellaneous/settings.h"
35 #include "miscellaneous/application.h"
38 #include <QTranslator>
40 #include <QFileInfoList>
44 QPointer<Localization> Localization::s_instance;
46 Localization::Localization(QObject *parent)
50 Localization::~Localization() {
51 qDebug(
"Destroying Localization instance.");
55 if (s_instance.isNull()) {
63 return qApp->settings()->value(APP_CFG_GEN,
65 QLocale::system().name()).toString();
69 QTranslator *qt_translator =
new QTranslator(qApp);
70 QTranslator *app_translator =
new QTranslator(qApp);
73 if (app_translator->load(QString(
"buildmlearn-toolkit-%1.qm").arg(desired_localization),
76 Application::installTranslator(app_translator);
77 qDebug(
"Application localization '%s' loaded successfully.",
78 qPrintable(desired_localization));
81 qWarning(
"Application localization '%s' was not loaded.",
82 qPrintable(desired_localization));
84 desired_localization = DEFAULT_LOCALE;
87 if (qt_translator->load(QString(
"qt-%1.qm").arg(desired_localization),
90 Application::installTranslator(qt_translator);
91 qDebug(
"Qt localization '%s' loaded successfully.",
92 qPrintable(desired_localization));
95 qWarning(
"Qt localization '%s' was not loaded.",
96 qPrintable(desired_localization));
99 m_loadedLanguage = desired_localization;
100 QLocale::setDefault(QLocale(desired_localization));
104 QList<Language> languages;
105 QDir file_dir(APP_LANG_PATH);
106 QTranslator translator;
109 foreach (
const QFileInfo &file, file_dir.entryInfoList(QStringList() <<
"buildmlearn-toolkit-*.qm",
112 if (translator.load(file.absoluteFilePath())) {
114 new_language.m_name = translator.translate(
"QObject",
"LANG_NAME");
115 new_language.m_code = translator.translate(
"QObject",
"LANG_ABBREV");
116 new_language.m_author = translator.translate(
"QObject",
"LANG_AUTHOR");
117 new_language.m_email = translator.translate(
"QObject",
"LANG_EMAIL");
119 languages << new_language;
static Localization * instance()
Singleton getter.
QList< Language > installedLanguages()
Gets list of installed languages.
QString desiredLanguage()
Access to code of language that should be loaded according to settings.
Representation of single localization.
void load()
Loads currently active language.