diff --git a/language/config.h b/language/config.h new file mode 100644 index 0000000..9bc2d9f --- /dev/null +++ b/language/config.h @@ -0,0 +1,12 @@ +#ifndef LANGUAGE_CONFIG_H +#define LANGUAGE_CONFIG_H + + +// put your languages here comma separated +// the first language is default language +#define LANGUAGES "en" +// language key in the configuration file +#define LANGUAGE_KEY "LANGUAGE" + + +#endif /* LANGUAGE_CONFIG_H */ diff --git a/language/language.cpp b/language/language.cpp index c3699f3..c42eb67 100644 --- a/language/language.cpp +++ b/language/language.cpp @@ -21,15 +21,18 @@ #include #include +#include "config.h" + Language::Language() { } -QString Language::checkLanguage(const QString language, const QString defaultLanguage) +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"))) - if (getAvailableLanguages().contains(optionsDict[QString("LANGUAGE")])) - return optionsDict[QString("LANGUAGE")]; + if (optionsDict.contains(QString(LANGUAGE_KEY))) + if (getAvailableLanguages().contains(optionsDict[QString(LANGUAGE_KEY)])) + return optionsDict[QString(LANGUAGE_KEY)]; QString language; language = defineLanguageFromFile(configPath); if (language.isEmpty()) language = defineLanguageFromLocale(); - language = checkLanguage(language, QString("en")); + language = checkLanguage(language); return language; } @@ -78,8 +81,8 @@ QString Language::defineLanguageFromFile(const QString configPath) } configFile.close(); - if (settings.contains(QString("LANGUAGE"))) - return settings[QString("LANGUAGE")]; + if (settings.contains(QString(LANGUAGE_KEY))) + return settings[QString(LANGUAGE_KEY)]; else return QString(""); } @@ -93,11 +96,7 @@ QString Language::defineLanguageFromLocale() QStringList Language::getAvailableLanguages() { - QStringList languages; - languages.append(QString("en")); - // put your languages here - - return languages; + return QString(LANGUAGES).split(QChar(',')); } diff --git a/language/language.h b/language/language.h index a9876d5..bc906b2 100644 --- a/language/language.h +++ b/language/language.h @@ -27,8 +27,7 @@ class Language : public QObject public: explicit Language(); - static QString checkLanguage(const QString language, - const QString defaultLanguage = QString("en")); + static QString checkLanguage(const QString language); static QString defineLanguage(const QString configPath, const QString options = QString("OPTIONS")); static QString defineLanguageFromFile(const QString configPath);