update 3rdparty/language

This commit is contained in:
arcan1s 2014-08-26 10:46:14 +04:00
parent f9d71577f3
commit eb3753ab25
3 changed files with 25 additions and 15 deletions

12
sources/3rdparty/language/config.h vendored Normal file
View File

@ -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 */

View File

@ -21,15 +21,18 @@
#include <QFile> #include <QFile>
#include <QLocale> #include <QLocale>
#include "config.h"
Language::Language() Language::Language()
{ {
} }
QString Language::checkLanguage(const QString language, const QString defaultLanguage) QString Language::checkLanguage(const QString language)
{ {
QStringList availableLanguages = getAvailableLanguages(); QStringList availableLanguages = getAvailableLanguages();
if (availableLanguages.count() == 0) return QString();
for (int i=0; i<availableLanguages.count(); i++) for (int i=0; i<availableLanguages.count(); i++)
if (language == availableLanguages[i]) if (language == availableLanguages[i])
return availableLanguages[i]; return availableLanguages[i];
@ -37,22 +40,22 @@ QString Language::checkLanguage(const QString language, const QString defaultLan
if (language.contains(availableLanguages[i] + QChar('_'))) if (language.contains(availableLanguages[i] + QChar('_')))
return availableLanguages[i]; return availableLanguages[i];
return defaultLanguage; return availableLanguages[0];
} }
QString Language::defineLanguage(const QString configPath, const QString options) QString Language::defineLanguage(const QString configPath, const QString options)
{ {
QMap<QString, QString> optionsDict = parseOptions(options); QMap<QString, QString> optionsDict = parseOptions(options);
if (optionsDict.contains(QString("LANGUAGE"))) if (optionsDict.contains(QString(LANGUAGE_KEY)))
if (getAvailableLanguages().contains(optionsDict[QString("LANGUAGE")])) if (getAvailableLanguages().contains(optionsDict[QString(LANGUAGE_KEY)]))
return optionsDict[QString("LANGUAGE")]; return optionsDict[QString(LANGUAGE_KEY)];
QString language; QString language;
language = defineLanguageFromFile(configPath); language = defineLanguageFromFile(configPath);
if (language.isEmpty()) if (language.isEmpty())
language = defineLanguageFromLocale(); language = defineLanguageFromLocale();
language = checkLanguage(language, QString("en")); language = checkLanguage(language);
return language; return language;
} }
@ -78,8 +81,8 @@ QString Language::defineLanguageFromFile(const QString configPath)
} }
configFile.close(); configFile.close();
if (settings.contains(QString("LANGUAGE"))) if (settings.contains(QString(LANGUAGE_KEY)))
return settings[QString("LANGUAGE")]; return settings[QString(LANGUAGE_KEY)];
else else
return QString(""); return QString("");
} }
@ -93,11 +96,7 @@ QString Language::defineLanguageFromLocale()
QStringList Language::getAvailableLanguages() QStringList Language::getAvailableLanguages()
{ {
QStringList languages; return QString(LANGUAGES).split(QChar(','));
languages.append(QString("en"));
// put your languages here
return languages;
} }

View File

@ -27,8 +27,7 @@ class Language : public QObject
public: public:
explicit Language(); explicit Language();
static QString checkLanguage(const QString language, static QString checkLanguage(const QString language);
const QString defaultLanguage = QString("en"));
static QString defineLanguage(const QString configPath, static QString defineLanguage(const QString configPath,
const QString options = QString("OPTIONS")); const QString options = QString("OPTIONS"));
static QString defineLanguageFromFile(const QString configPath); static QString defineLanguageFromFile(const QString configPath);