[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Languages KControl Module patch
From:       Ben Cooksley <sourtooth () gmail ! com>
Date:       2009-04-25 8:47:47
Message-ID: b366d7a00904250147j3b6dd061g784d063a3d9ec3d9 () mail ! gmail ! com
[Download RAW message or body]

Hi everyone,

Currently the Country/Region & Language KControl module only lists one
language in its "Add languages" list ( US English ). The attached
patch corrects this, ensuring that all installed languages with
translations for that module are available for adding. This also fixes
the automatic adding of the correct languages for a country/region.

May I commit?

Regards,
Ben Cooksley.

["locale-patch.patch" (text/x-patch)]

Index: default/entry.desktop
===================================================================
--- default/entry.desktop	(revision 958920)
+++ default/entry.desktop	(working copy)
@@ -1,81 +0,0 @@
-[KCM Locale]
-Name=US English
-Name[af]=Amerikaanse Engels
-Name[ar]=إنكليزية الولايات المتحدة الأمريكية
-Name[be]=Англійская (ЗША)
-Name[be@latin]=Anhielskaja (Z A)
-Name[bg]=Американски английски
-Name[bn_IN]=মার্কিন ইংরাজি
-Name[br]=Saozneg SUA
-Name[ca]=Anglès US
-Name[ca@valencia]=Anglès US
-Name[cs]=Americká angličtina
-Name[csb]=Amerikańsczi anielsczi
-Name[cy]=Saesneg UD
-Name[da]=Engelsk (US)
-Name[de]=US-Englisch
-Name[el]=Αγγλική Η Α
-Name[eo]=Usona angla
-Name[es]=Inglés de EEUU
-Name[et]=Inglise (US)
-Name[eu]=EEBBetako ingelesa
-Name[fa]=انگلیسی امریکایی
-Name[fi]=Yhdysvaltain englanti
-Name[fr]=Anglais US
-Name[fy]=VS Ingelsk
-Name[gl]=Inglés dos EEUU
-Name[gu]=US અંગ્રેજી
-Name[he]=א גלית ארה"ב
-Name[hi]=यूएस अंग्रेजी
-Name[hne]=यूएस अंगरेजी
-Name[hr]=Američki engleski
-Name[hsb]=Ameriska jendźelšćina
-Name[hu]=Amerikai angol
-Name[is]=Enska (BNA)
-Name[it]=Inglese US
-Name[ja]=英語 (アメリカ)
-Name[ka]=ინგლისუ ი (აშშ)
-Name[kk]=Ағылшын (АҚШ)
-Name[km]=អង់គ្លេស អាមេរិក
-Name[kn]=ಯು ಎಸ್ ಆಂಗ್ಲ
-Name[ko]=미국 영어
-Name[ku]=Îngilîziya DYA
-Name[lt]=JAV anglų
-Name[lv]=ASV angļu
-Name[mai]=यूएस अंग्रेजी
-Name[mk]=Англиски (САД)
-Name[ml]=യുഎസ് ഇംഗ്ലീഷ്
-Name[mr]=US अंग्रेजी
-Name[ms]=Bahasa Inggeris AS
-Name[nb]=Engelsk (USA)
-Name[nds]=Engelsch (US)
-Name[ne]=US अङ्ग्रेजी
-Name[nl]=VS Engels
-Name[nn]=Engelsk (USA)
-Name[or]=US ଇଂରାଜୀ
-Name[pa]=ਅਮਰੀਕੀ ਅੰਗਰੇਜ਼ੀ
-Name[pl]=Amerykański angielski
-Name[pt]=Inglês dos EUA
-Name[pt_BR]=Inglês dos EUA
-Name[ro]=Engleză SUA
-Name[ru]=Английский (США)
-Name[se]=Eŋgelasgiella (USA)
-Name[si]=එක්සත් ජනපද ඉංග්‍රීසි
-Name[sk]=Anglický US
-Name[sl]=Angleško ZDA
-Name[sr]=амерички енглески
-Name[sr@latin]=američki engleski
-Name[sv]=Amerikansk engelska
-Name[ta]=US ஆங்கிலம்
-Name[te]=యూఎస్ ఆంగ్లం
-Name[tg]=Англисӣ (ШМА)
-Name[th]=อังกฤษ อเมริกัน
-Name[tr]=Amerikan İngilizcesi
-Name[uk]=Англійська (США)
-Name[uz]=Inglizcha AQSH
-Name[uz@cyrillic]=Инглизча AҚШ
-Name[vi]=Tiếng Anh (Mỹ)
-Name[wa]=Inglès des Estats-Unis
-Name[x-test]=xxUS Englishxx
-Name[zh_CN]=美国英语
-Name[zh_TW]=英語 - US
Index: default/CMakeLists.txt
===================================================================
--- default/CMakeLists.txt	(revision 958920)
+++ default/CMakeLists.txt	(working copy)
@@ -1 +0,0 @@
-install( FILES entry.desktop  DESTINATION  ${LOCALE_INSTALL_DIR}/en_US )
Index: kcmlocale.cpp
===================================================================
--- kcmlocale.cpp	(revision 958920)
+++ kcmlocale.cpp	(working copy)
@@ -53,21 +53,7 @@
   return entry.readEntry("Languages", QStringList());
 }
 
-static QString readLocale(const QString &language, const QString &path, const QString &sub=QString())
-{
-  // read the name
-  QString filepath = QString::fromLatin1("%1%2/entry.desktop")
-    .arg(sub)
-    .arg(path);
 
-  KConfig entry(KStandardDirs::locate("locale", filepath));
-  entry.setLocale(language);
-  KConfigGroup entryGroup = entry.group("KCM Locale");
-  return entryGroup.readEntry("Name");
-}
-
-
-
 KLocaleConfig::KLocaleConfig(KControlLocale *locale, QWidget *parent)
   : QWidget (parent),
     m_locale(locale)
@@ -95,7 +81,15 @@
     m_upButton->setIcon(KIcon("arrow-up"));
     m_downButton->setIcon(KIcon("arrow-down"));
 
-    languageAdd->loadAllLanguages();
+    const QStringList allLanguages = locale->allLanguagesList();
+    foreach ( QString langCode, allLanguages )
+    {
+        if (locale->isApplicationTranslatedInto(langCode))
+        {
+            languageAdd->insertLanguage(langCode);
+        }
+    }
+    languageAdd->setCurrentItem(locale->language());
     
     KConfigGroup configGroup = KGlobal::config()->group("Locale");
     m_languageList = configGroup.readEntry("Language").split(':',QString::SkipEmptyParts);
@@ -205,7 +199,7 @@
   // update language widget
   m_languages->clear();
   foreach (const QString& langCode, m_languageList)
-    m_languages->addItem(readLocale(m_locale->language(),langCode));
+    m_languages->addItem(m_locale->languageCodeToName(langCode));
   slotCheckButtons();
 
   QString country = m_locale->countryCodeToName(m_locale->country());
@@ -265,7 +259,7 @@
   QStringList newLanguageList;
   foreach (const QString& langCode, languages)
   {
-    if (!readLocale(m_locale->language(),langCode).isEmpty())
+    if (!m_locale->languageCodeToName(langCode).isEmpty())
       newLanguageList += langCode;
   }
   m_locale->setLanguage( newLanguageList );


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic