From eb3753ab2592379a398772d19e471f8f9787ac97 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Tue, 26 Aug 2014 10:46:14 +0400 Subject: [PATCH] update 3rdparty/language --- sources/3rdparty/language/config.h | 12 ++++++++++++ sources/3rdparty/language/language.cpp | 25 ++++++++++++------------- sources/3rdparty/language/language.h | 3 +-- 3 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 sources/3rdparty/language/config.h diff --git a/sources/3rdparty/language/config.h b/sources/3rdparty/language/config.h new file mode 100644 index 0000000..d2ddbe3 --- /dev/null +++ b/sources/3rdparty/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,ru" +// language key in the configuration file +#define LANGUAGE_KEY "LANGUAGE" + + +#endif /* LANGUAGE_CONFIG_H */ diff --git a/sources/3rdparty/language/language.cpp b/sources/3rdparty/language/language.cpp index c3699f3..c42eb67 100644 --- a/sources/3rdparty/language/language.cpp +++ b/sources/3rdparty/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/sources/3rdparty/language/language.h b/sources/3rdparty/language/language.h index a9876d5..bc906b2 100644 --- a/sources/3rdparty/language/language.h +++ b/sources/3rdparty/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);