diff --git a/language-config.h b/language-config.h index 948c39d..0411e80 100644 --- a/language-config.h +++ b/language-config.h @@ -9,6 +9,8 @@ #define LANGUAGES "en" // language key in the configuration file #define LANGUAGE_KEY "LANGUAGE" +// name of config section in the file if any +#define LANGUAGE_SECTION "Common" #endif /* LANGUAGE_CONFIG_H */ diff --git a/language.cpp b/language.cpp index ce47422..51b7165 100644 --- a/language.cpp +++ b/language.cpp @@ -21,11 +21,18 @@ #include #include #include +#include #include "config.h" -Language::Language() +Language::Language(QObject *parent) + : QObject(parent) +{ +} + + +Language::~Language() { } @@ -33,30 +40,33 @@ Language::Language() QString Language::checkLanguage(const QString language) { QStringList availableLanguages = getAvailableLanguages(); - if (availableLanguages.count() == 0) return QString(""); - for (int i=0; i optionsDict = parseOptions(options); - if (optionsDict.contains(QString(LANGUAGE_KEY))) - if (getAvailableLanguages().contains(optionsDict[QString(LANGUAGE_KEY)])) - return optionsDict[QString(LANGUAGE_KEY)]; + // create instance + Language *langObject = new Language(nullptr); - QString language; - language = defineLanguageFromFile(configPath); + // define language + QString language = langObject->parseOptions(options); if (language.isEmpty()) - language = defineLanguageFromLocale(); - language = checkLanguage(language); + language = langObject->defineLanguageFromFile(configPath); + if (language.isEmpty()) + language = langObject->defineLanguageFromLocale(); + language = langObject->checkLanguage(language); + + // clear + delete langObject; return language; } @@ -66,7 +76,7 @@ QString Language::defineLanguageFromFile(const QString configPath) { QSettings settings(configPath, QSettings::IniFormat); - settings.beginGroup("Common"); + settings.beginGroup(QString(LANGUAGE_SECTION)); QString language = settings.value(QString(LANGUAGE_KEY), QString()).toString(); settings.endGroup(); @@ -86,14 +96,14 @@ QStringList Language::getAvailableLanguages() } -QMap Language::parseOptions(const QString options) +QString Language::parseOptions(const QString options) { - QMap optionsDict; + QString language; for (int i=0; i