diff options
Diffstat (limited to 'user/kconfigwidgets/languagename.patch')
-rw-r--r-- | user/kconfigwidgets/languagename.patch | 716 |
1 files changed, 0 insertions, 716 deletions
diff --git a/user/kconfigwidgets/languagename.patch b/user/kconfigwidgets/languagename.patch deleted file mode 100644 index d3eb89f54..000000000 --- a/user/kconfigwidgets/languagename.patch +++ /dev/null @@ -1,716 +0,0 @@ -From 91077def022a999ce46c91347f1167626266f460 Mon Sep 17 00:00:00 2001 -From: Albert Astals Cid <aacid@kde.org> -Date: Mon, 7 Jan 2019 11:42:28 +0100 -Subject: Add KLanguageName - -Summary: KLanguageName is a helper namespace that returns the name of a given language code. - -Reviewers: apol - -Reviewed By: apol - -Subscribers: hein, kde-frameworks-devel, sitter, markg, apol - -Tags: #frameworks - -Differential Revision: https://phabricator.kde.org/D10446 ---- - autotests/CMakeLists.txt | 27 ++++++ - .../kf5_entry_data.cmake/locale/ca/kf5_entry.cmake | 98 ++++++++++++++++++++++ - .../kf5_entry_data.cmake/locale/de/kf5_entry.cmake | 98 ++++++++++++++++++++++ - .../locale/en_US/kf5_entry.cmake | 44 ++++++++++ - autotests/kf5_entry_data.cmake/locale/es/.keep | 0 - .../kf5_entry_data.cmake/locale/fr/kf5_entry.cmake | 2 + - .../kf5_entry_data.cmake/locale/pt/kf5_entry.cmake | 98 ++++++++++++++++++++++ - autotests/klanguagenametest.cpp | 92 ++++++++++++++++++++ - src/CMakeLists.txt | 2 + - src/klanguagename.cpp | 67 +++++++++++++++ - src/klanguagename.h | 63 ++++++++++++++ - 11 files changed, 591 insertions(+) - create mode 100644 autotests/kf5_entry_data.cmake/locale/ca/kf5_entry.cmake - create mode 100644 autotests/kf5_entry_data.cmake/locale/de/kf5_entry.cmake - create mode 100644 autotests/kf5_entry_data.cmake/locale/en_US/kf5_entry.cmake - create mode 100644 autotests/kf5_entry_data.cmake/locale/es/.keep - create mode 100644 autotests/kf5_entry_data.cmake/locale/fr/kf5_entry.cmake - create mode 100644 autotests/kf5_entry_data.cmake/locale/pt/kf5_entry.cmake - create mode 100644 autotests/klanguagenametest.cpp - create mode 100644 src/klanguagename.cpp - create mode 100644 src/klanguagename.h - -diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt -index 1917ecb..37caaf9 100644 ---- a/autotests/CMakeLists.txt -+++ b/autotests/CMakeLists.txt -@@ -9,5 +9,32 @@ set(kconfigdialog_unittest_SRCS kconfigdialog_unittest.cpp) - kconfig_add_kcfg_files(kconfigdialog_unittest_SRCS GENERATE_MOC signaltest.kcfgc) - ecm_add_test(${kconfigdialog_unittest_SRCS} TEST_NAME "kconfigdialog_unittest" LINK_LIBRARIES Qt5::Test KF5::ConfigWidgets) - -+set(lang_entries -+ ca -+ de -+ en_US -+ es # must not have file! -+ fr -+ pt -+) -+ -+# scripty would mangle all *.desktop files, since that'd have potential of -+# breaking the test we'll need to bypass scripty by not having our files called -+# .desktop! -+# Do note that we pop these into CMAKE_LIBRARY_OUTPUT_DIRECTORY so QFINDTESTDATA -+# is able to find the fixtures in the bin dir as KDECMakeSettings sets a special -+# output dir. -+foreach(lang ${lang_entries}) -+ set(src_dir "${CMAKE_CURRENT_SOURCE_DIR}/kf5_entry_data.cmake/locale/${lang}") -+ set(src_file "${src_dir}/kf5_entry.cmake") -+ set(bin_dir "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/kf5_entry_data/locale/${lang}") -+ set(bin_file "${bin_dir}/kf5_entry.desktop") -+ file(MAKE_DIRECTORY ${bin_dir}) -+ if(EXISTS ${src_file}) # not all languages have entries -+ configure_file(${src_file} ${bin_file} COPYONLY) -+ endif() -+endforeach() -+ -+ecm_add_test(klanguagenametest.cpp LINK_LIBRARIES Qt5::Test KF5::ConfigWidgets) - - ecm_add_test(krecentfilesactiontest.cpp TEST_NAME "krecentfilesaction_test" LINK_LIBRARIES Qt5::Test KF5::ConfigWidgets) -diff --git a/autotests/kf5_entry_data.cmake/locale/ca/kf5_entry.cmake b/autotests/kf5_entry_data.cmake/locale/ca/kf5_entry.cmake -new file mode 100644 -index 0000000..a81564c ---- /dev/null -+++ b/autotests/kf5_entry_data.cmake/locale/ca/kf5_entry.cmake -@@ -0,0 +1,98 @@ -+[KCM Locale] -+Name=Catalan -+Name[af]=Katelaans -+Name[ar]=الكاتالانيّة -+Name[as]=কাটালান -+Name[be]=Каталонская -+Name[be@latin]=Katalanskaja -+Name[bg]=Каталонски -+Name[bn]=ক্যাটালান -+Name[bn_IN]=ক্যাটালান -+Name[br]=Katalaneg -+Name[bs]=katalonski -+Name[ca]=Català -+Name[ca@valencia]=Català -+Name[cs]=Katalánský -+Name[csb]=Katalońsczi -+Name[cy]=Catalaneg -+Name[da]=Catalansk -+Name[de]=Katalanisch -+Name[el]=Καταλανικά -+Name[en_GB]=Catalan -+Name[eo]=Kataluna -+Name[es]=Catalán -+Name[et]=Katalaani -+Name[eu]=Katalaniera -+Name[fa]=کاتالان -+Name[fi]=Katalaani -+Name[fr]=Catalan -+Name[fy]=Katalaansk -+Name[ga]=Catalóinis -+Name[gd]=Catalanais -+Name[gl]=Catalán -+Name[gu]=કેટેલાન -+Name[he]=קטלונית -+Name[hi]=केटेलन -+Name[hne]=केटेलन -+Name[hr]=Katalonski -+Name[hsb]=Katalansce -+Name[hu]=Katalán -+Name[ia]=Catalan -+Name[id]=Catalan -+Name[is]=Katalónska -+Name[it]=Catalano -+Name[ja]=カタロニア語 -+Name[kk]=Каталанша -+Name[km]=កាតាឡាន -+Name[kn]=ಕ್ಯಾಟಲಾನ್ -+Name[ko]=카탈루냐어 -+Name[ku]=Katalan -+Name[lb]=Katalanesch -+Name[lt]=Katalonų -+Name[lv]=Kataloņu -+Name[mai]=केटालान -+Name[mk]=Каталонски -+Name[ml]=കറ്റാലന് -+Name[mr]=केटेलन -+Name[ms]=Catalan -+Name[nb]=Katalansk -+Name[nds]=Katalaansch -+Name[ne]=कातालान -+Name[nl]=Catalaans -+Name[nn]=Katalansk -+Name[oc]=Catalan -+Name[or]=କେଟାଲାନ -+Name[pa]=ਕਾਟਾਲਾਨ -+Name[pl]=Kataloński -+Name[ps]=کېټېلېن -+Name[pt]=Catalão -+Name[pt_BR]=Catalão -+Name[ro]=Catalană -+Name[ru]=Каталонский -+Name[se]=Katalánagiella -+Name[si]=කැටලන් -+Name[sk]=Katalánčina -+Name[sl]=Katalonščina -+Name[sq]=Katalanisht -+Name[sr]=каталонски -+Name[sr@ijekavian]=каталонски -+Name[sr@ijekavianlatin]=katalonski -+Name[sr@latin]=katalonski -+Name[sv]=Katalanska -+Name[ta]=கெடலான் -+Name[te]=కెటలన్ -+Name[tg]=Каталанӣ -+Name[th]=ภาษาคาตาลัน -+Name[tr]=Katalanca -+Name[tt]=Каталон -+Name[ug]=كاتالانچە -+Name[uk]=Каталанська -+Name[uz]=Katalancha -+Name[uz@cyrillic]=Каталанча -+Name[vi]=Catalan -+Name[wa]=Catalan -+Name[xh]=Catalan -+Name[x-test]=xxCatalanxx -+Name[zh_CN]=加泰罗尼亚语 -+Name[zh_HK]=加泰隆尼亞語 -+Name[zh_TW]=加泰羅尼亞語 -diff --git a/autotests/kf5_entry_data.cmake/locale/de/kf5_entry.cmake b/autotests/kf5_entry_data.cmake/locale/de/kf5_entry.cmake -new file mode 100644 -index 0000000..e8146cb ---- /dev/null -+++ b/autotests/kf5_entry_data.cmake/locale/de/kf5_entry.cmake -@@ -0,0 +1,98 @@ -+[KCM Locale] -+Name=German -+Name[af]=Duits -+Name[ar]=الألمانيّة -+Name[as]=জাৰ্মান -+Name[be]=Нямецкая -+Name[be@latin]=Niamieckaja -+Name[bg]=Немски -+Name[bn]=জার্মান -+Name[bn_IN]=জার্মান -+Name[br]=Alamaneg -+Name[bs]=njemački -+Name[ca]=Alemany -+Name[ca@valencia]=Alemany -+Name[cs]=Německý -+Name[csb]=Miemiecczi -+Name[cy]=Almaeneg -+Name[da]=Tysk -+Name[de]=Deutsch -+Name[el]=Γερμανικά -+Name[en_GB]=German -+Name[eo]=Germana -+Name[es]=Alemán -+Name[et]=Saksa -+Name[eu]=Alemana -+Name[fa]=آلمانی -+Name[fi]=Saksa -+Name[fr]=Allemand -+Name[fy]=Dútsk -+Name[ga]=Gearmáinis -+Name[gd]=Gearmailtis -+Name[gl]=Alemán -+Name[gu]=જર્મન -+Name[he]=גרמנית -+Name[hi]=जर्मन -+Name[hne]=जर्मन -+Name[hr]=Njemački -+Name[hsb]=Němsce -+Name[hu]=Német -+Name[ia]=Germano -+Name[id]=Jerman -+Name[is]=Þýska -+Name[it]=Tedesco -+Name[ja]=ドイツ語 -+Name[kk]=Немісше -+Name[km]=អាល្លឺម៉ង់ -+Name[kn]=ಜರ್ಮನ್ -+Name[ko]=독일어 -+Name[ku]=Almanî -+Name[lb]=Däitsch -+Name[lt]=Vokiečių -+Name[lv]=Vācu -+Name[mai]=जर्मन -+Name[mk]=Германски -+Name[ml]=ജര്മ്മന് -+Name[mr]=जर्मन -+Name[ms]=Jerman -+Name[nb]=Tysk -+Name[nds]=Hoochdüütsch -+Name[ne]=जर्मनी -+Name[nl]=Duits -+Name[nn]=Tysk -+Name[oc]=Aleman -+Name[or]=ଜର୍ମାନ -+Name[pa]=ਜਰਮਨ -+Name[pl]=Niemiecki -+Name[ps]=جرمني -+Name[pt]=Alemão -+Name[pt_BR]=Alemão -+Name[ro]=Germană -+Name[ru]=Немецкий -+Name[se]=Duiskkagiella -+Name[si]=ජර්මානු -+Name[sk]=Nemčina -+Name[sl]=Nemščina -+Name[sq]=Gjermanisht -+Name[sr]=немачки -+Name[sr@ijekavian]=њемачки -+Name[sr@ijekavianlatin]=njemački -+Name[sr@latin]=nemački -+Name[sv]=Tyska -+Name[ta]=ஜெர்மன் -+Name[te]=జెర్మన్ -+Name[tg]=Олмонӣ -+Name[th]=ภาษาเยอรมัน -+Name[tr]=Almanca -+Name[tt]=Алман -+Name[ug]=گېرمانچە -+Name[uk]=Німецька -+Name[uz]=Olmoncha -+Name[uz@cyrillic]=Олмонча -+Name[vi]=Đức -+Name[wa]=Almand -+Name[xh]=German -+Name[x-test]=xxGermanxx -+Name[zh_CN]=德语 -+Name[zh_HK]=德語 -+Name[zh_TW]=德語 -diff --git a/autotests/kf5_entry_data.cmake/locale/en_US/kf5_entry.cmake b/autotests/kf5_entry_data.cmake/locale/en_US/kf5_entry.cmake -new file mode 100644 -index 0000000..6033ad4 ---- /dev/null -+++ b/autotests/kf5_entry_data.cmake/locale/en_US/kf5_entry.cmake -@@ -0,0 +1,44 @@ -+[KCM Locale] -+Name=US English -+Name[ar]=الإنجليزية الأمريكية -+Name[bs]=Američki engleski -+Name[ca]=Anglès US -+Name[ca@valencia]=Anglés US -+Name[cs]=US Angličtina -+Name[da]=US Engelsk -+Name[de]=US-Englisch -+Name[el]=US English -+Name[en_GB]=US English -+Name[es]=Inglés de EE. UU. -+Name[et]=USA inglise -+Name[eu]=AEBtako ingelesa -+Name[fi]=Amerikanenglanti -+Name[fr]=Anglais (États-Unis) -+Name[gd]=Beurla (SA) -+Name[gl]=Inglés americano -+Name[he]=אנגלית ארה"ב -+Name[hu]=Angol (amerikai) -+Name[ia]=Anglese de S.U.A. -+Name[id]=Inggris US -+Name[it]=Inglese US -+Name[ko]=미국 영어 -+Name[lt]=JAV anglų -+Name[nb]=Engelsk (USA) -+Name[nl]=VS Engels -+Name[nn]=Engelsk (USA) -+Name[pl]=Angielski amerykański -+Name[pt]=Inglês dos EUA -+Name[pt_BR]=Inglês dos EUA -+Name[ru]=Английский (США) -+Name[sk]=Americká angličtina -+Name[sl]=ameriško angleško -+Name[sr]=амерички енглески -+Name[sr@ijekavian]=амерички енглески -+Name[sr@ijekavianlatin]=američki engleski -+Name[sr@latin]=američki engleski -+Name[sv]=Amerikansk engelska -+Name[tr]=ABD İngilizcesi -+Name[uk]=Англійська (США) -+Name[x-test]=xxUS Englishxx -+Name[zh_CN]=美国英语 -+Name[zh_TW]=美式英文 -diff --git a/autotests/kf5_entry_data.cmake/locale/es/.keep b/autotests/kf5_entry_data.cmake/locale/es/.keep -new file mode 100644 -index 0000000..e69de29 -diff --git a/autotests/kf5_entry_data.cmake/locale/fr/kf5_entry.cmake b/autotests/kf5_entry_data.cmake/locale/fr/kf5_entry.cmake -new file mode 100644 -index 0000000..4f248b9 ---- /dev/null -+++ b/autotests/kf5_entry_data.cmake/locale/fr/kf5_entry.cmake -@@ -0,0 +1,2 @@ -+[KCM Locale] -+Name=French -diff --git a/autotests/kf5_entry_data.cmake/locale/pt/kf5_entry.cmake b/autotests/kf5_entry_data.cmake/locale/pt/kf5_entry.cmake -new file mode 100644 -index 0000000..6e555d0 ---- /dev/null -+++ b/autotests/kf5_entry_data.cmake/locale/pt/kf5_entry.cmake -@@ -0,0 +1,98 @@ -+[KCM Locale] -+Name=Portuguese -+Name[af]=Portugese -+Name[ar]=البرتغاليّة -+Name[as]=প'ৰ্টুগিছ্ -+Name[be]=Партугальская -+Name[be@latin]=Partuhalskaja -+Name[bg]=Португалски -+Name[bn]=পর্তুগীজ -+Name[bn_IN]=পোর্তুগিজ -+Name[br]=Portugaleg -+Name[bs]=portugalski -+Name[ca]=Portuguès -+Name[ca@valencia]=Portugués -+Name[cs]=Portugalský -+Name[csb]=Pòrtugalsczi -+Name[cy]=Portiwgaleg -+Name[da]=Portugisisk -+Name[de]=Portugiesisch -+Name[el]=Πορτογαλικά -+Name[en_GB]=Portuguese -+Name[eo]=Portugala -+Name[es]=Portugués -+Name[et]=Portugali -+Name[eu]=Portugesa -+Name[fa]=پرتغالی -+Name[fi]=Portugali -+Name[fr]=Portugais -+Name[fy]=Portugeesk -+Name[ga]=Portaingéilis -+Name[gd]=Portagailis -+Name[gl]=Portugués -+Name[gu]=પોર્ટુગીઝ -+Name[he]=פורטוגזית -+Name[hi]=पुर्तगाली -+Name[hne]=पुर्तगाली -+Name[hr]=Portugalski -+Name[hsb]=Portugalsce -+Name[hu]=Portugál -+Name[ia]=Portugese -+Name[id]=Portugis -+Name[is]=Portúgalska -+Name[it]=Portoghese -+Name[ja]=ポルトガル語 -+Name[kk]=Португалша -+Name[km]=ព័រទុយហ្គាល់ -+Name[kn]=ಪೋರ್ಚುಗೀಸ್ -+Name[ko]=포르투갈어 -+Name[ku]=Portûgalî -+Name[lb]=Portugisesch -+Name[lt]=Portugalų -+Name[lv]=Portugāļu -+Name[mai]=पुर्तगाली -+Name[mk]=Португалски -+Name[ml]=പോര്ച്ചുഗീസ് -+Name[mr]=पोर्तुगीज -+Name[ms]=Portugis -+Name[nb]=Portugisisk -+Name[nds]=Portugeesch -+Name[ne]=पोर्तुगाली -+Name[nl]=Portugees -+Name[nn]=Portugisisk -+Name[oc]=Portugués -+Name[or]=ପର୍ତ୍ତୁଗିଜ -+Name[pa]=ਪੁਰਤਗਾਲੀ -+Name[pl]=Portugalski -+Name[ps]=پورټګيز -+Name[pt]=Português -+Name[pt_BR]=Português -+Name[ro]=Portugheză -+Name[ru]=Португальский -+Name[se]=Portugálagiella -+Name[si]=පෘතුගීසි -+Name[sk]=Portugalčina -+Name[sl]=Portugalščina -+Name[sq]=Portugalisht -+Name[sr]=португалски -+Name[sr@ijekavian]=португалски -+Name[sr@ijekavianlatin]=portugalski -+Name[sr@latin]=portugalski -+Name[sv]=Portugisiska -+Name[ta]=போர்த்துக்கீசிய -+Name[te]=పొర్ట్యుగీస్ -+Name[tg]=Португалӣ -+Name[th]=ภาษาโปรตุเกส -+Name[tr]=Portekizce -+Name[tt]=Португал -+Name[ug]=پورتۇگالچە -+Name[uk]=Португальська -+Name[uz]=Portugalcha -+Name[uz@cyrillic]=Португалча -+Name[vi]=Bồ Đào Nha -+Name[wa]=Portuguès -+Name[xh]=Portuguese -+Name[x-test]=xxPortuguesexx -+Name[zh_CN]=葡萄牙语 -+Name[zh_HK]=葡萄牙語 -+Name[zh_TW]=葡萄牙語 -diff --git a/autotests/klanguagenametest.cpp b/autotests/klanguagenametest.cpp -new file mode 100644 -index 0000000..bb2b3d9 ---- /dev/null -+++ b/autotests/klanguagenametest.cpp -@@ -0,0 +1,96 @@ -+/* -+ Copyright (c) 2018 Harald Sitter <sitter@kde.org> -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) version 3, or any -+ later version accepted by the membership of KDE e.V. (or its -+ successor approved by the membership of KDE e.V.), which shall -+ act as a proxy defined in Section 6 of version 3 of the license. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with this library. If not, see <http://www.gnu.org/licenses/>. -+*/ -+ -+#include <QObject> -+#include <QtTest> -+ -+#include "klanguagename.h" -+ -+static void setEnvironment() -+{ -+ qputenv("LANG", "C.UTF-8"); -+ qputenv("LANGUAGE", "en"); -+ qputenv("XDG_DATA_DIRS", qUtf8Printable(QFINDTESTDATA("kf5_entry_data"))); -+ // There is a distinct chance of the envionrment setup being to late and -+ // causing flakey results based on the execution env. -+ // Make sure we definitely default to english. -+ QLocale::setDefault(QLocale::English); -+ -+ // NOTE -+ // - fr has no translations -+ // - es has no kf5_entry at all -+ // - other languages under testing are complete -+} -+ -+class KLanguageNameTest : public QObject -+{ -+ Q_OBJECT -+ -+private Q_SLOTS: -+ void testNameForCode() -+ { -+ // This is somewhat wrong, it should not say US. -+ QCOMPARE(KLanguageName::nameForCode("en"), QString("US English")); -+ -+ QCOMPARE(KLanguageName::nameForCode("de"), QString("German")); -+ QCOMPARE(KLanguageName::nameForCode("pt"), QString("Portuguese")); -+ QCOMPARE(KLanguageName::nameForCode("ca"), QString("Catalan")); -+ } -+ -+ void testNameForCodeInLocale() -+ { -+ // This is somewhat wrong, it should not say US. -+ QCOMPARE(KLanguageName::nameForCodeInLocale("en", "de"), QString("US-Englisch")); -+ -+ QCOMPARE(KLanguageName::nameForCodeInLocale("de", "de"), QString("Deutsch")); -+ QCOMPARE(KLanguageName::nameForCodeInLocale("pt", "de"), QString("Portugiesisch")); -+ QCOMPARE(KLanguageName::nameForCodeInLocale("ca", "de"), QString("Katalanisch")); -+ } -+ -+ void testNoTranslation() -+ { -+ // This has an entry file but no translation => QLocale. -+ QCOMPARE(KLanguageName::nameForCode("fr"), QString("French")); -+ QCOMPARE(KLanguageName::nameForCodeInLocale("fr", "de"), QString("French")); -+ // When in the same language, use the native name. -+ QCOMPARE(KLanguageName::nameForCodeInLocale("fr", "fr"), QString("français")); -+ } -+ -+ void testNoEntry() -+ { -+ // This has no entry file => QLocale. -+ QCOMPARE(KLanguageName::nameForCode("es"), QString("Spanish")); -+ QCOMPARE(KLanguageName::nameForCodeInLocale("es", "de"), QString("Spanish")); -+ // When in the same language, use the native name. -+ QCOMPARE(KLanguageName::nameForCodeInLocale("es", "es"), QString("español de España")); -+ } -+ -+ void testNoString() -+ { -+ // Qt doesn't have za support, we have no test fixture, so no string. -+ QCOMPARE(KLanguageName::nameForCode("za"), QString()); -+ } -+}; -+ -+Q_COREAPP_STARTUP_FUNCTION(setEnvironment) -+ -+QTEST_GUILESS_MAIN(KLanguageNameTest) -+ -+#include "klanguagenametest.moc" -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index a35cf3c..09fe50b 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -8,6 +8,7 @@ set(kconfigwidgets_SRCS - kcmodule.cpp - khelpclient.cpp - klanguagebutton.cpp -+ klanguagename.cpp - kpastetextaction.cpp - krecentfilesaction.cpp - kstandardaction.cpp -@@ -52,6 +53,7 @@ ecm_generate_headers(KConfigWidgets_HEADERS - KCModule - KHelpClient - KLanguageButton -+ KLanguageName - KPasteTextAction - KRecentFilesAction - KViewStateMaintainer -diff --git a/src/klanguagename.cpp b/src/klanguagename.cpp -new file mode 100644 -index 0000000..6e1a519 ---- /dev/null -+++ b/src/klanguagename.cpp -@@ -0,0 +1,67 @@ -+/* -+ * Copyright (c) 1999-2003 Hans Petter Bieker <bieker@kde.org> -+ * (c) 2007 David Jarvie <software@astrojar.org.uk> -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Library General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Library General Public License for more details. -+ * -+ * You should have received a copy of the GNU Library General Public License -+ * along with this library; see the file COPYING.LIB. If not, write to -+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ * Boston, MA 02110-1301, USA. -+ */ -+ -+#include "klanguagename.h" -+#include "kconfigwidgets_debug.h" -+ -+#include <kconfig.h> -+#include <kconfiggroup.h> -+ -+QString KLanguageName::nameForCode(const QString &code) -+{ -+ const QStringList parts = QLocale().name().split(QChar('_')); -+ return nameForCodeInLocale(code, parts.at(0)); -+} -+ -+QString KLanguageName::nameForCodeInLocale(const QString &code, const QString &outputCode) -+{ -+ const QString realCode = code == QStringLiteral("en") ? QStringLiteral("en_US") : code; -+ const QString realOutputCode = outputCode == QStringLiteral("en") ? QStringLiteral("en_US") : outputCode; -+ -+ const QString entryFile = -+ QStandardPaths::locate(QStandardPaths::GenericDataLocation, -+ QStringLiteral("locale") + QLatin1Char('/') + realCode + QStringLiteral("/kf5_entry.desktop")); -+ if (!entryFile.isEmpty()) { -+ KConfig entry(entryFile, KConfig::SimpleConfig); -+ entry.setLocale(realOutputCode); -+ const KConfigGroup group(&entry, "KCM Locale"); -+ const QString name = group.readEntry("Name"); -+ -+ // KConfig doesn't have a way to say it didn't find the entry in -+ // realOutputCode and returned the english version so we check for the -+ // english version, if it's equal to the "non-english" version we'll use -+ // otherwise we defer to QLocale. -+ entry.setLocale("en_US"); -+ const QString englishName = group.readEntry("Name"); -+ if (name != englishName || realOutputCode == QStringLiteral("en_US")) { -+ return name; -+ } -+ } -+ -+ const QLocale locale(realCode); -+ if (locale != QLocale::c()) { -+ if (realCode == realOutputCode) { -+ return locale.nativeLanguageName(); -+ } -+ return QLocale::languageToString(locale.language()); -+ } -+ -+ return QString(); -+} -diff --git a/src/klanguagename.h b/src/klanguagename.h -new file mode 100644 -index 0000000..51dc6dd ---- /dev/null -+++ b/src/klanguagename.h -@@ -0,0 +1,63 @@ -+/* -+ * Copyright (c) 1999-2003 Hans Petter Bieker <bieker@kde.org> -+ * (c) 2001 Martijn Klingens <klingens@kde.org> -+ * (c) 2007 David Jarvie <software@astrojar.org.uk> -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Library General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Library General Public License for more details. -+ * -+ * You should have received a copy of the GNU Library General Public License -+ * along with this library; see the file COPYING.LIB. If not, write to -+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ * Boston, MA 02110-1301, USA. -+ */ -+ -+#ifndef KLANGUAGENAME_H -+#define KLANGUAGENAME_H -+ -+#include "kconfigwidgets_export.h" -+ -+class QString; -+ -+/** -+ * @class KLanguageName klanguagename.h KLanguageName -+ * -+ * KLanguageName is a helper namespace that returns the name of a given language code. -+ * -+ * @since 5.55 -+ * -+ */ -+namespace KLanguageName -+{ -+ /** -+ * Returns the name of the given language code in the current locale. -+ * -+ * If it can't be found in the current locale it returns the name in English. -+ * -+ * It it can't be found in English either it returns an empty QString. -+ * -+ * @param code code (ISO 639-1) of the language whose name is wanted. -+ */ -+ KCONFIGWIDGETS_EXPORT QString nameForCode(const QString &code); -+ -+ /** -+ * Returns the name of the given language code in the other given locale code. -+ * -+ * If it can't be found in the given locale it returns the name in English. -+ * -+ * It it can't be found in English either it returns an empty QString. -+ * -+ * @param code code (ISO 639-1) of the language whose name is wanted. -+ * @param outputLocale code (ISO 639-1) of the language in which we want the name in. -+ */ -+ KCONFIGWIDGETS_EXPORT QString nameForCodeInLocale(const QString &code, const QString &outputLocale); -+} -+ -+#endif --- -cgit v1.1 - |