From b9d2c0a6c218a012fc4702bc459ab370f771244f Mon Sep 17 00:00:00 2001 From: ubbo Date: Mon, 29 Mar 2010 18:56:21 +0000 Subject: add language-select box, does nothing yet, but lists languages ;-) git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@288 34ebc366-c3a9-4b3c-9f84-69acf7962910 --- settingsdialog.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) (limited to 'settingsdialog.cpp') diff --git a/settingsdialog.cpp b/settingsdialog.cpp index 7b89a65..90e35ef 100755 --- a/settingsdialog.cpp +++ b/settingsdialog.cpp @@ -31,6 +31,9 @@ #include #include #include +#include +#include +#include #include "settingsdialog.h" SettingsDialog::SettingsDialog() @@ -75,11 +78,28 @@ SettingsDialog::SettingsDialog() groupBox2->setLayout(iconStyleBox); groupBox1->setLayout(iconSizeBox); + + /**/ + QGroupBox *langBox = new QGroupBox(tr("Language")); + QHBoxLayout *hbox2 = new QHBoxLayout(); + QComboBox *langSelectBox = new QComboBox; + + QHash lang = listLanguages(); + + foreach(QString l , lang) { + langSelectBox->addItem(l); + //qDebug() << l; + } + + hbox2->addWidget(langSelectBox); + langBox->setLayout(hbox2); + /**/ QVBoxLayout *vbox = new QVBoxLayout(); vbox->addWidget(groupBox1); vbox->addWidget(groupBox2); - vbox->addWidget(buttonBox); + vbox->addWidget(langBox); + vbox->addWidget(buttonBox); setLayout(vbox); exec(); } @@ -109,3 +129,33 @@ void SettingsDialog::applySettings() accept(); } +// http://www.informit.com/articles/article.aspx?p=1405555&seqNum=3 +QHash SettingsDialog::listLanguages() { + + // translate this String to language used, the language list gets + // filled from this + QString(tr("English")); + + //QStringList languages; + QHash languages; + + QString appPath = qApp->applicationDirPath(); + QDir qmDir = QDir(appPath + "/ts/"); + QStringList fileNames = + qmDir.entryList(QStringList("gpg4usb_*.qm")); + + for (int i = 0; i < fileNames.size(); ++i) { + QString locale = fileNames[i]; + locale.remove(0, locale.indexOf('_') + 1); + locale.chop(3); + + QTranslator translator; + translator.load(fileNames[i], qmDir.absolutePath()); + QString language = translator.translate("SettingsDialog", + "English"); + languages.insert(locale, language); + + } + return languages; +} + -- cgit v1.2.3