summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2015-05-10 16:01:07 +0200
committerTannin <devnull@localhost>2015-05-10 16:01:07 +0200
commitf32b4c3ce1311607cf1b01c4d53d42141a546657 (patch)
treec73da56ab2e38983e5cefd476f1202e7be62b114 /src/settings.cpp
parent83a896d0a9b40322b673101dd32a8d6b2acefe89 (diff)
- language list in settings no longer contains english twice
- language names in settings are now in the native language
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 54be183a..002db3ef 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -445,7 +445,7 @@ void Settings::writePluginBlacklist()
void Settings::addLanguages(QComboBox *languageBox)
{
- languageBox->addItem("English", "en_US");
+ std::vector<std::pair<QString, QString>> languages;
QDirIterator langIter(QCoreApplication::applicationDirPath() + "/translations", QDir::Files);
QString pattern = ToQString(AppConfig::translationPrefix()) + "_([a-z]{2,3}(_[A-Z]{2,2})?).qm";
@@ -456,7 +456,7 @@ void Settings::addLanguages(QComboBox *languageBox)
if (exp.exactMatch(file)) {
QString languageCode = exp.cap(1);
QLocale locale(languageCode);
- QString languageString = QLocale::languageToString(locale.language());
+ QString languageString = QString("%1 (%2)").arg(locale.nativeLanguageName()).arg(locale.nativeCountryName()); //QLocale::languageToString(locale.language());
if (locale.language() == QLocale::Chinese) {
if (languageCode == "zh_TW") {
languageString = "Chinese (traditional)";
@@ -464,9 +464,18 @@ void Settings::addLanguages(QComboBox *languageBox)
languageString = "Chinese (simplified)";
}
}
- languageBox->addItem(QString("%1").arg(languageString), exp.cap(1));
+ languages.push_back(std::make_pair(QString("%1").arg(languageString), exp.cap(1)));
+ //languageBox->addItem(QString("%1").arg(languageString), exp.cap(1));
}
}
+ if (!languageBox->findText("English")) {
+ languages.push_back(std::make_pair(QString("English"), QString("en_US")));
+ //languageBox->addItem("English", "en_US");
+ }
+ std::sort(languages.begin(), languages.end());
+ for (const auto &lang : languages) {
+ languageBox->addItem(lang.first, lang.second);
+ }
}
void Settings::addStyles(QComboBox *styleBox)