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

List:       kde-commits
Subject:    KDE/kdelibs/kdecore
From:       John Layt <john () layt ! net>
Date:       2010-11-09 19:11:42
Message-ID: 20101109191142.40682AC89B () svn ! kde ! org
[Download RAW message or body]

SVN commit 1194746 by jlayt:

Add KLocale method to return list of all installed KDE languages.

Needed by new Locale KCM, mostly lifted from KLanguageCombo.



 M  +5 -0      localization/klocale.cpp  
 M  +13 -0     localization/klocale.h  
 M  +12 -0     localization/klocale_kde.cpp  
 M  +6 -0      localization/klocale_p.h  
 M  +5 -0      tests/klocaletest.cpp  
 M  +1 -0      tests/klocaletest.h  


--- trunk/KDE/kdelibs/kdecore/localization/klocale.cpp #1194745:1194746
@@ -677,6 +677,11 @@
     return d->allLanguagesList();
 }
 
+QStringList KLocale::allLanguagesInstalledList() const
+{
+    return d->allLanguagesInstalledList();
+}
+
 QString KLocale::languageCodeToName(const QString &language) const
 {
     return d->languageCodeToName(language);
--- trunk/KDE/kdelibs/kdecore/localization/klocale.h #1194745:1194746
@@ -1848,6 +1848,18 @@
     QStringList allLanguagesList() const;
 
     /**
+     * Provides list of all installed KDE Language Translations.
+     *
+     * Use languageCodeToName(language) to get human readable, localized
+     * language names.
+     *
+     * @return list of all installed language codes
+     *
+     * @see languageCodeToName
+     */
+    QStringList allLanguagesInstalledList() const;
+
+    /**
      * Convert a known language code to a human readable, localized form.
      * If an unknown language code is supplied, empty string is returned;
      * this will never happen if the code has been obtained by one of the
@@ -1861,6 +1873,7 @@
      * @see language
      * @see languageList
      * @see allLanguagesList
+     * @see allLanguagesInstalledList
      */
     QString languageCodeToName(const QString &language) const;
 
--- trunk/KDE/kdelibs/kdecore/localization/klocale_kde.cpp #1194745:1194746
@@ -2682,6 +2682,18 @@
     return m_languages->groupList();
 }
 
+QStringList KLocalePrivate::allLanguagesInstalledList()
+{
+    QStringList languages;
+    QStringList paths = KGlobal::dirs()->findAllResources("locale", QLatin1String("*/entry.desktop"));
+    foreach (const QString &path, paths) {
+        QString part = path.left(path.length() - 14);
+        languages.append(part.mid(part.lastIndexOf(QLatin1Char('/')) + 1));
+    }
+    languages.sort();
+    return languages;
+}
+
 QString KLocalePrivate::languageCodeToName(const QString &language)
 {
     if (!m_languages) {
--- trunk/KDE/kdelibs/kdecore/localization/klocale_p.h #1194745:1194746
@@ -210,6 +210,12 @@
     virtual QStringList allLanguagesList();
 
     /**
+     * @internal Returns a list of all installed KDE languages.
+     * The worker of the same-name KLocale API function.
+     */
+    virtual QStringList allLanguagesInstalledList();
+
+    /**
      * @internal Returns the name of the internal language.
      * The worker of the same-name KLocale API function.
      */
--- trunk/KDE/kdelibs/kdecore/tests/klocaletest.cpp #1194745:1194746
@@ -40,6 +40,11 @@
     KGlobal::locale()->setThousandsSeparator(QLatin1String(","));
 }
 
+void KLocaleTest::languages()
+{
+    kDebug() << KGlobal::locale()->allLanguagesInstalledList();
+}
+
 void
 KLocaleTest::formatNumbers()
 {
--- trunk/KDE/kdelibs/kdecore/tests/klocaletest.h #1194745:1194746
@@ -26,6 +26,7 @@
 	Q_OBJECT
 private Q_SLOTS:
 	void initTestCase();
+    void languages();
 	void formatNumbers();
 	void formatNumberStrings();
 	void readNumber();
[prev in list] [next in list] [prev in thread] [next in thread] 

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