From 733eb9af409a0482d92fe8411b1a2bd53375cc71 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sat, 19 May 2012 16:49:48 +0200 Subject: 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 --- rbutil/rbutilqt/base/systeminfo.cpp | 6 +-- rbutil/rbutilqt/base/systeminfo.h | 2 +- rbutil/rbutilqt/base/ttssapi.cpp | 8 +++- rbutil/rbutilqt/createvoicewindow.cpp | 22 ++++----- rbutil/rbutilqt/rbutil.ini | 86 ++++++++++++++++++----------------- 5 files changed, 65 insertions(+), 59 deletions(-) (limited to 'rbutil/rbutilqt') diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp index 1f7be72b1e..44bcf3c84d 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 SystemInfo::languages(void) +QMap SystemInfo::languages(void) { ensureSystemInfoExists(); - QMap result; + QMap 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 f8c31a9de3..420dbf3c80 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 languages(void); + static QMap languages(void); //! returns a map of usb-ids and their targets static QMap usbIdMap(enum MapType); //! get a value from system settings diff --git a/rbutil/rbutilqt/base/ttssapi.cpp b/rbutil/rbutilqt/base/ttssapi.cpp index 00c63550d3..09c1dd0588 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 languages = SystemInfo::languages(); + QMap 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 d1db0145e4..a45425a0ef 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 languages = SystemInfo::languages(); + QMap 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 c740d35411..8cfaf4ba3e 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: +; =, [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) -- cgit v1.2.3