diff src/qt/optionsdialog.cpp @ 3103:2e1808aa6010 draft

GUI: change language selection format - display as "language - country (locale name)", when locale name consists of 2 parts - display as "language (locale name)", when locale name consists of 1 part
author Philip Kaufmann <phil.kaufmann@t-online.de>
date Mon, 25 Jun 2012 22:36:16 +0200
parents 1d95bb62c8a3
children c4d7950c8790
line wrap: on
line diff
--- a/src/qt/optionsdialog.cpp
+++ b/src/qt/optionsdialog.cpp
@@ -14,6 +14,7 @@
 #include <QIntValidator>
 #include <QLabel>
 #include <QLineEdit>
+#include <QLocale>
 #include <QMessageBox>
 #include <QPushButton>
 #include <QRegExp>
@@ -62,7 +63,19 @@
     ui->lang->addItem(QString("(") + tr("default") + QString(")"), QVariant(""));
     foreach(const QString &langStr, translations.entryList())
     {
-        ui->lang->addItem(langStr, QVariant(langStr));
+        QLocale locale(langStr);
+
+        /** check if the locale name consists of 2 parts (language_country) */
+        if(langStr.contains("_"))
+        {
+            /** display language strings as "language - country (locale name)", e.g. "German - Germany (de)" */
+            ui->lang->addItem(QLocale::languageToString(locale.language()) + QString(" - ") + QLocale::countryToString(locale.country()) + QString(" (") + langStr + QString(")"), QVariant(langStr));
+        }
+        else
+        {
+            /** display language strings as "language (locale name)", e.g. "German (de)" */
+            ui->lang->addItem(QLocale::languageToString(locale.language()) + QString(" (") + langStr + QString(")"), QVariant(langStr));
+        }
     }
 
     ui->unit->setModel(new BitcoinUnits(this));