diff options
| author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-05-19 16:49:48 +0200 |
|---|---|---|
| committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-05-19 16:52:58 +0200 |
| commit | 733eb9af409a0482d92fe8411b1a2bd53375cc71 (patch) | |
| tree | 41578ac9fa0e91ba09b23860dd23863b1ef15f52 | |
| parent | 9f89ffa71c7029803c96a102efee0ab65edc6ead (diff) | |
| download | rockbox-733eb9af409a0482d92fe8411b1a2bd53375cc71.zip rockbox-733eb9af409a0482d92fe8411b1a2bd53375cc71.tar.gz rockbox-733eb9af409a0482d92fe8411b1a2bd53375cc71.tar.bz2 rockbox-733eb9af409a0482d92fe8411b1a2bd53375cc71.tar.xz | |
Show nicer language names in voice creation dialog.
Instead of showing the internal language names show some more human friendly
string. Currently only applies to the voice creation dialog, the language
configuration dialog needs further adjustments to support display strings
differing from values.
Change-Id: Ic94838f1079c1d09a666d7dbd9682c577f686b3f
| -rw-r--r-- | rbutil/rbutilqt/base/systeminfo.cpp | 6 | ||||
| -rw-r--r-- | rbutil/rbutilqt/base/systeminfo.h | 2 | ||||
| -rw-r--r-- | rbutil/rbutilqt/base/ttssapi.cpp | 8 | ||||
| -rw-r--r-- | rbutil/rbutilqt/createvoicewindow.cpp | 22 | ||||
| -rw-r--r-- | rbutil/rbutilqt/rbutil.ini | 86 |
5 files changed, 65 insertions, 59 deletions
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp index 1f7be72..44bcf3c 100644 --- a/rbutil/rbutilqt/base/systeminfo.cpp +++ b/rbutil/rbutilqt/base/systeminfo.cpp @@ -143,16 +143,16 @@ QStringList SystemInfo::platforms(enum SystemInfo::PlatformType type, QString va return result; } -QMap<QString, QString> SystemInfo::languages(void) +QMap<QString, QStringList> SystemInfo::languages(void) { ensureSystemInfoExists(); - QMap<QString, QString> result; + QMap<QString, QStringList> result; systemInfos->beginGroup("languages"); QStringList a = systemInfos->childKeys(); for(int i = 0; i < a.size(); i++) { - result.insert(a.at(i), systemInfos->value(a.at(i), "null").toString()); + result.insert(a.at(i), systemInfos->value(a.at(i), "null").toStringList()); } systemInfos->endGroup(); return result; diff --git a/rbutil/rbutilqt/base/systeminfo.h b/rbutil/rbutilqt/base/systeminfo.h index f8c31a9..420dbf3 100644 --- a/rbutil/rbutilqt/base/systeminfo.h +++ b/rbutil/rbutilqt/base/systeminfo.h @@ -79,7 +79,7 @@ class SystemInfo : public QObject static QStringList platforms(enum PlatformType type = PlatformAll, QString variant=""); //! returns a map of all languages - static QMap<QString, QString> languages(void); + static QMap<QString, QStringList> languages(void); //! returns a map of usb-ids and their targets static QMap<int, QString> usbIdMap(enum MapType); //! get a value from system settings diff --git a/rbutil/rbutilqt/base/ttssapi.cpp b/rbutil/rbutilqt/base/ttssapi.cpp index 00c6355..09c1dd0 100644 --- a/rbutil/rbutilqt/base/ttssapi.cpp +++ b/rbutil/rbutilqt/base/ttssapi.cpp @@ -38,10 +38,14 @@ TTSBase::Capabilities TTSSapi::capabilities() void TTSSapi::generateSettings() { // language - QMap<QString, QString> languages = SystemInfo::languages(); + QMap<QString, QStringList> languages = SystemInfo::languages(); + QStringList langs; + for(int i = 0; i < languages.values().size(); ++i) { + langs.append(languages.values().at(i).at(0)); + } EncTtsSetting* setting =new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST, tr("Language:"),RbSettings::subValue("sapi",RbSettings::TtsLanguage), - languages.values()); + langs); connect(setting,SIGNAL(dataChanged()),this,SLOT(updateVoiceList())); insertSetting(eLANGUAGE,setting); // voice diff --git a/rbutil/rbutilqt/createvoicewindow.cpp b/rbutil/rbutilqt/createvoicewindow.cpp index d1db014..a45425a 100644 --- a/rbutil/rbutilqt/createvoicewindow.cpp +++ b/rbutil/rbutilqt/createvoicewindow.cpp @@ -52,7 +52,7 @@ void CreateVoiceWindow::accept() //configure voicecreator voicecreator->setMountPoint(RbSettings::value(RbSettings::Mountpoint).toString()); - voicecreator->setLang(ui.comboLanguage->currentText()); + voicecreator->setLang(ui.comboLanguage->itemData(ui.comboLanguage->currentIndex()).toString()); voicecreator->setWavtrimThreshold(ui.wavtrimthreshold->value()); //start creating @@ -69,25 +69,25 @@ void CreateVoiceWindow::accept() void CreateVoiceWindow::updateSettings(void) { // fill in language combobox - QMap<QString, QString> languages = SystemInfo::languages(); + QMap<QString, QStringList> languages = SystemInfo::languages(); for(int i = 0; i < languages.keys().size(); i++) { QString key = languages.keys().at(i); - ui.comboLanguage->addItem(languages.value(key), key); + ui.comboLanguage->addItem(languages.value(key).at(1), languages.value(key).at(0)); } // set saved lang - int sel = ui.comboLanguage->findText( + int sel = ui.comboLanguage->findData( RbSettings::value(RbSettings::VoiceLanguage).toString()); // if no saved language is found try to figure the language from the UI lang if(sel == -1) { - QString f = RbSettings::value(RbSettings::Language).toString(); + QString uilang = RbSettings::value(RbSettings::Language).toString(); // if no language is set default to english. Make sure not to check an empty string. - if(f.isEmpty()) f = "english"; + QString f = "english"; + if(!uilang.isEmpty() && languages.contains(uilang)) { + f = languages.value(uilang).at(0); + } sel = ui.comboLanguage->findData(f); - qDebug() << "sel =" << sel; - // still nothing found? - if(sel == -1) - sel = ui.comboLanguage->findText("english", Qt::MatchStartsWith); + qDebug() << "[CreateVoiceWindow] Selected language index:" << sel; } ui.comboLanguage->setCurrentIndex(sel); @@ -125,7 +125,7 @@ void CreateVoiceWindow::saveSettings(void) { // save selected language RbSettings::setValue(RbSettings::VoiceLanguage, - ui.comboLanguage->currentText()); + ui.comboLanguage->itemData(ui.comboLanguage->currentIndex()).toString()); // save wavtrim threshold value RbSettings::setValue(RbSettings::WavtrimThreshold, ui.wavtrimthreshold->value()); diff --git a/rbutil/rbutilqt/rbutil.ini b/rbutil/rbutilqt/rbutil.ini index c740d35..8cfaf4b 100644 --- a/rbutil/rbutilqt/rbutil.ini +++ b/rbutil/rbutilqt/rbutil.ini @@ -849,47 +849,49 @@ name="Sansa Fuze+ (Recovery Mode)" ; The language string is sent to the server when retrieving the list of ; strings. Each entry name is the code for the language and used for storing in ; the configuration. +; Format: +; <language code>=<language string as sent to server>,<human readable string> [languages] -af=afrikaans -bg=bulgarian -ca=catala -cs=czech -da=dansk -de=deutsch -el=greek -en=english -en_US=english-us -eo=esperanto -es=espanol -et=eesti -eu=basque -fi=finnish -fr=francais -gl=galego -he=hebrew -hi=hindi -hu=magyar -is=islenska -it=italiano -ja=japanese -ko=korean -lt=lietuviu -lv=latviesu -nb=norsk -nl=nederlands -nn=norsk-nynorsk -pl=polski -pt=portugues -pt_BR=portugues-brasileiro -ro=romaneste -ru=russian -sk=slovak -sl=slovenscina -sv=svenska -th=thai -tl=tagalog -tr=turkce -wa=wallisertitsch -zh_CN=chinese-simp -zh_TW=chinese-trad +af=afrikaans,Afrikaans +bg=bulgarian,Bulgarian +ca=catala,Catala +cs=czech,Czech +da=dansk,Dansk +de=deutsch,Deutsch +el=greek,Greek +en=english,English (UK) +en_US=english-us,English (US) +eo=esperanto,Esperanto +es=espanol,Espanol +et=eesti,Eesti +eu=basque,Basque +fi=finnish,Finnish +fr=francais,Francais +gl=galego,Galego +he=hebrew,Hebrew +hi=hindi,Hindi +hu=magyar,Magyar +is=islenska,Islenska +it=italiano,Italiano +ja=japanese,Japanese +ko=korean,Korean +lt=lietuviu,Lietuviu +lv=latviesu,Latviesu +nb=norsk,Norsk +nl=nederlands,Netherlands +nn=norsk-nynorsk,Norsk (Nyorsk) +pl=polski,Polski +pt=portugues,Portugues +pt_BR=portugues-brasileiro,Portugues (Brasileiro) +ro=romaneste,Romaneste +ru=russian,Russian +sk=slovak,Slovak +sl=slovenscina,Slovenscina +sv=svenska,Svenska +th=thai,Thai +tl=tagalog,Tagalog +tr=turkce,Turkce +wa=wallisertitsch,Wallisertitsch +zh_CN=chinese-simp,Chinese (simplified) +zh_TW=chinese-trad,Chinese (traditional) |