summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2012-05-19 16:49:48 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2012-05-19 16:52:58 +0200
commit733eb9af409a0482d92fe8411b1a2bd53375cc71 (patch)
tree41578ac9fa0e91ba09b23860dd23863b1ef15f52
parent9f89ffa71c7029803c96a102efee0ab65edc6ead (diff)
downloadrockbox-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.cpp6
-rw-r--r--rbutil/rbutilqt/base/systeminfo.h2
-rw-r--r--rbutil/rbutilqt/base/ttssapi.cpp8
-rw-r--r--rbutil/rbutilqt/createvoicewindow.cpp22
-rw-r--r--rbutil/rbutilqt/rbutil.ini86
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)