From 522396196cf6ac238f638532c63a0ac86b281695 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Tue, 26 Aug 2014 10:46:39 +0400 Subject: [PATCH] update language --- language/config.h | 12 ++++++++++++ language/language.cpp | 25 ++++++++++++------------- language/language.h | 3 +-- 3 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 language/config.h 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);