summaryrefslogtreecommitdiff
path: root/user/kconfigwidgets/languagename.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/kconfigwidgets/languagename.patch')
-rw-r--r--user/kconfigwidgets/languagename.patch716
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
-