summaryrefslogtreecommitdiff
path: root/noncore/settings/language/language.cpp
Side-by-side diff
Diffstat (limited to 'noncore/settings/language/language.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/language/language.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/noncore/settings/language/language.cpp b/noncore/settings/language/language.cpp
index 397d372..5c4284b 100644
--- a/noncore/settings/language/language.cpp
+++ b/noncore/settings/language/language.cpp
@@ -63,8 +63,9 @@ LanguageSettings::LanguageSettings( QWidget* parent, const char* name, WFlags f
{
if ( FontManager::hasUnicodeFont() )
languages->setFont(FontManager::unicodeFont(FontManager::Proportional));
+
QString tfn = QPEApplication::qpeDir()+"/i18n/";
QDir langDir = tfn;
QStringList list = langDir.entryList("*", QDir::Dirs );
@@ -85,16 +86,19 @@ LanguageSettings::LanguageSettings( QWidget* parent, const char* name, WFlags f
languages->insertItem( langName );
}
}
+ if ( langAvail. find ( "en" ) == -1 ) {
+ langAvail. prepend ( "" ); // no tr
+ languages-> insertItem ( QString ( "English [%1] (%2)" /* no tr (!) */ ). arg ( tr ( "English" )). arg ( tr( "default" )), 0 );
+ }
dl = new QPEDialogListener(this);
reset();
}
LanguageSettings::~LanguageSettings()
-{
-}
+{}
void LanguageSettings::accept()
{
applyLanguage();
@@ -102,10 +106,9 @@ void LanguageSettings::accept()
}
void LanguageSettings::applyLanguage()
{
- QString lang = langAvail.at( languages->currentItem() );
- setLanguage( lang );
+ setLanguage ( langAvail. at ( languages-> currentItem ( )));
}
void LanguageSettings::reject()
@@ -116,11 +119,13 @@ void LanguageSettings::reject()
void LanguageSettings::reset()
{
QString l = getenv("LANG");
- Config config("language");
+ Config config("locale");
+ config.setGroup("Language");
l = config.readEntry( "Language", l );
- if(l.isEmpty()) l = "en";
+ if (l.isEmpty())
+ l = "en";
actualLanguage = l;
int n = langAvail.find( l );
languages->setCurrentItem( n );
@@ -132,15 +137,20 @@ void LanguageSettings::setLanguage(const QString& lang)
{
if( lang != actualLanguage ) {
Config config("locale");
config.setGroup( "Language" );
+ if ( lang. isEmpty ( ))
+ config. removeEntry ( "Language" );
+ else
config.writeEntry( "Language", lang );
config.write();
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
+
QCopEnvelope e("QPE/System","language(QString)");
e << lang;
#endif
+
}
}
void LanguageSettings::done(int r)