diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -11,6 +11,7 @@ test_core test_suggest test_settings + test_languageNames NAME_PREFIX "sonnet-" LINK_LIBRARIES KF5::SonnetCore Qt5::Test ) diff --git a/autotests/test_languageNames.cpp b/autotests/test_languageNames.cpp new file mode 100644 --- /dev/null +++ b/autotests/test_languageNames.cpp @@ -0,0 +1,496 @@ +// krazy:excludeall=spelling +/** + * + * Copyright (C) 2019 Waqar Ahmed + * + * 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) 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 + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#include "loader_p.h" + +#include +#include +#include + +class LanguageNameForCodeTest : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void language_names_data(); + void language_names(); +}; + +void LanguageNameForCodeTest::language_names_data() +{ + QTest::addColumn("isoCode"); + QTest::addColumn("language"); + + /*********************************************************************************/ + /*Language Names*/ + /*********************************************************************************/ + QTest::newRow("Afrikaans") << QStringLiteral("af") << QStringLiteral("Afrikaans"); + QTest::newRow("Akan") << QStringLiteral("ak") << QStringLiteral("Akan"); + QTest::newRow("Amharic") << QStringLiteral("am") << QStringLiteral("አማርኛ"); + + QTest::newRow("Arabic") << QStringLiteral("ar") << QStringLiteral("العربية"); + QTest::newRow("Assamese") << QStringLiteral("as") << QStringLiteral("অসমীয়া"); + QTest::newRow("Asturian") << QStringLiteral("ast") << QStringLiteral("asturianu"); + QTest::newRow("Azerbaijani") << QStringLiteral("az") << QStringLiteral("azərbaycan"); + QTest::newRow("Belarusian") << QStringLiteral("be") << QStringLiteral("беларуская"); + QTest::newRow("Bulgarian") << QStringLiteral("bg") << QStringLiteral("български"); + QTest::newRow("Bengali") << QStringLiteral("bn") << QStringLiteral("বাংলা"); + QTest::newRow("Tibetan") << QStringLiteral("bo") << QStringLiteral("བོད་སྐད་"); + QTest::newRow("Breton") << QStringLiteral("br") << QStringLiteral("brezhoneg"); + QTest::newRow("Bosnian") << QStringLiteral("bs") << QStringLiteral("bosanski"); + QTest::newRow("Catalan") << QStringLiteral("ca") << QStringLiteral("català"); + QTest::newRow("Chechen") << QStringLiteral("ce") << QStringLiteral("нохчийн"); + QTest::newRow("Cherokee") << QStringLiteral("chr") << QStringLiteral("ᏣᎳᎩ"); + QTest::newRow("Czech") << QStringLiteral("cs") << QStringLiteral("čeština"); + + QTest::newRow("Old Church Slavonic") + << QStringLiteral("cu") << QStringLiteral("церковнослове́нскїй"); + + QTest::newRow("Welsh") << QStringLiteral("cy") << QStringLiteral("Cymraeg"); + QTest::newRow("Danish") << QStringLiteral("da") << QStringLiteral("dansk"); + QTest::newRow("German") << QStringLiteral("de") << QStringLiteral("Deutsch"); + QTest::newRow("Lower Sorbian") + << QStringLiteral("dsb") << QStringLiteral("dolnoserbšćina"); + QTest::newRow("Dzongkha") << QStringLiteral("dz") << QStringLiteral("རྫོང་ཁ"); + QTest::newRow("Ewe") << QStringLiteral("ee") << QStringLiteral("Eʋegbe"); + QTest::newRow("Greek") << QStringLiteral("el") << QStringLiteral("Ελληνικά"); + QTest::newRow("American English") + << QStringLiteral("en") << QStringLiteral("American English"); + QTest::newRow("Esperanto") << QStringLiteral("eo") << QStringLiteral("esperanto"); + QTest::newRow("Spanish") << QStringLiteral("es") << QStringLiteral("español de España"); + QTest::newRow("Estonian") << QStringLiteral("et") << QStringLiteral("eesti"); + QTest::newRow("Basque") << QStringLiteral("eu") << QStringLiteral("euskara"); + QTest::newRow("Persian") << QStringLiteral("fa") << QStringLiteral("فارسی"); + QTest::newRow("Peul") << QStringLiteral("ff") << QStringLiteral("Pulaar"); + QTest::newRow("Finnish") << QStringLiteral("fi") << QStringLiteral("suomi"); + QTest::newRow("Faroese") << QStringLiteral("fo") << QStringLiteral("føroyskt"); + QTest::newRow("French") << QStringLiteral("fr") << QStringLiteral("français"); + QTest::newRow("Friulian") << QStringLiteral("fur") << QStringLiteral("furlan"); + QTest::newRow("West Frisian")<< QStringLiteral("fy") << QStringLiteral("Frysk"); + QTest::newRow("Irish") << QStringLiteral("ga") << QStringLiteral("Gaeilge"); + QTest::newRow("Scottish Gaelic") + << QStringLiteral("gd") << QStringLiteral("Gàidhlig"); + QTest::newRow("Galician") << QStringLiteral("gl") << QStringLiteral("galego"); + QTest::newRow("Gujarati") << QStringLiteral("gu") << QStringLiteral("ગુજરાતી"); + QTest::newRow("Manx") << QStringLiteral("gv") << QStringLiteral("Gaelg"); + QTest::newRow("Hausa") << QStringLiteral("ha") << QStringLiteral("Hausa"); + QTest::newRow("Hawaiian") << QStringLiteral("haw") << QStringLiteral("ʻŌlelo Hawaiʻi"); + QTest::newRow("Hebrew") << QStringLiteral("he") << QStringLiteral("עברית"); + QTest::newRow("Hindi") << QStringLiteral("hi") << QStringLiteral("हिन्दी"); + QTest::newRow("Croatian") << QStringLiteral("hr") << QStringLiteral("hrvatski"); + QTest::newRow("Hungarian") << QStringLiteral("hu") << QStringLiteral("magyar"); + QTest::newRow("Armenian") << QStringLiteral("hy") << QStringLiteral("հայերեն"); + QTest::newRow("Interlingua") << QStringLiteral("ia") << QStringLiteral("interlingua"); + QTest::newRow("Indonesian") << QStringLiteral("id") << QStringLiteral("Indonesia"); + QTest::newRow("Igbo") << QStringLiteral("ig") << QStringLiteral("Asụsụ Igbo"); + QTest::newRow("Sichuan Yi") << QStringLiteral("ii") << QStringLiteral("ꆈꌠꉙ"); + QTest::newRow("Icelandic") << QStringLiteral("is") << QStringLiteral("íslenska"); + QTest::newRow("Italian") << QStringLiteral("it") << QStringLiteral("italiano"); + QTest::newRow("Japanese") << QStringLiteral("ja") << QStringLiteral("日本語"); + QTest::newRow("Javanese") << QStringLiteral("jv") << QStringLiteral("Jawa"); + QTest::newRow("Georgian") << QStringLiteral("ka") << QStringLiteral("ქართული"); + QTest::newRow("Kikuyu") << QStringLiteral("ki") << QStringLiteral("Gikuyu"); + QTest::newRow("Kazakh") << QStringLiteral("kk") << QStringLiteral("қазақ тілі"); + QTest::newRow("Greenlandic") << QStringLiteral("kl") << QStringLiteral("kalaallisut"); + QTest::newRow("Cambodian") << QStringLiteral("km") << QStringLiteral("ខ្មែរ"); + QTest::newRow("Kannada") << QStringLiteral("kn") << QStringLiteral("ಕನ್ನಡ"); + QTest::newRow("Korean") << QStringLiteral("ko") << QStringLiteral("한국어"); + QTest::newRow("Kashmiri") << QStringLiteral("ks") << QStringLiteral("کٲشُر"); + QTest::newRow("Ripuarian") << QStringLiteral("ksh") << QStringLiteral("Kölsch"); + QTest::newRow("Kurdish") << QStringLiteral("ku") << QStringLiteral("kurdî"); + QTest::newRow("Cornish") << QStringLiteral("kw") << QStringLiteral("kernewek"); + + QTest::newRow("Ganda") << QStringLiteral("lg") << QStringLiteral("Luganda"); + QTest::newRow("Lingala") << QStringLiteral("ln") << QStringLiteral("lingála"); + QTest::newRow("Laotian") << QStringLiteral("lo") << QStringLiteral("ລາວ"); + QTest::newRow("Lithuanian") << QStringLiteral("lt") << QStringLiteral("lietuvių"); + QTest::newRow("Latvian") << QStringLiteral("lv") << QStringLiteral("latviešu"); + QTest::newRow("Malagasy") << QStringLiteral("mg") << QStringLiteral("Malagasy"); + QTest::newRow("Maori") << QStringLiteral("mi") << QStringLiteral("Māori"); + QTest::newRow("Macedonian") << QStringLiteral("mk") << QStringLiteral("македонски"); + QTest::newRow("Malayalam") << QStringLiteral("ml") << QStringLiteral("മലയാളം"); + QTest::newRow("Mongolian") << QStringLiteral("mn") << QStringLiteral("монгол"); + QTest::newRow("Moldovan") << QStringLiteral("mo") << QStringLiteral("română"); + QTest::newRow("Marathi") << QStringLiteral("mr") << QStringLiteral("मराठी"); + QTest::newRow("Malay") << QStringLiteral("ms") << QStringLiteral("Melayu"); + QTest::newRow("Maltese") << QStringLiteral("mt") << QStringLiteral("Malti"); + QTest::newRow("Burmese") << QStringLiteral("my") << QStringLiteral("မြန်မာ"); + QTest::newRow("Norwegian Bokmål") + << QStringLiteral("nb") << QStringLiteral("norsk bokmål"); + QTest::newRow("North Ndebele") + << QStringLiteral("nd") << QStringLiteral("isiNdebele"); + QTest::newRow("Low German / Low Saxon") + << QStringLiteral("nds") << QStringLiteral("Neddersass’sch"); + + QTest::newRow("Nepali") << QStringLiteral("ne") << QStringLiteral("नेपाली"); + QTest::newRow("Dutch") << QStringLiteral("nl") << QStringLiteral("Nederlands"); + QTest::newRow("Norwegian Nynorsk") + << QStringLiteral("nn") << QStringLiteral("nynorsk"); + QTest::newRow("Norwegian") << QStringLiteral("no") << QStringLiteral("norsk bokmål"); + QTest::newRow("Oromo") << QStringLiteral("om") << QStringLiteral("Oromoo"); + QTest::newRow("Oriya") << QStringLiteral("or") << QStringLiteral("ଓଡ଼ିଆ"); + QTest::newRow("Ossetian") << QStringLiteral("os") << QStringLiteral("ирон"); + QTest::newRow("Punjabi") << QStringLiteral("pa") << QStringLiteral("ਪੰਜਾਬੀ"); + + QTest::newRow("Polish") << QStringLiteral("pl") << QStringLiteral("polski"); + QTest::newRow("Pashto") << QStringLiteral("ps") << QStringLiteral("پښتو"); + QTest::newRow("Portuguese") << QStringLiteral("pt") << QStringLiteral("português"); + QTest::newRow("Quechua") << QStringLiteral("qu") << QStringLiteral("Runasimi"); + QTest::newRow("Raeto Romance") + << QStringLiteral("rm") << QStringLiteral("rumantsch"); + QTest::newRow("Kirundi") << QStringLiteral("rn") << QStringLiteral("Ikirundi"); + QTest::newRow("Romanian") << QStringLiteral("ro") << QStringLiteral("română"); + QTest::newRow("Russian") << QStringLiteral("ru") << QStringLiteral("русский"); + QTest::newRow("Rwandi") << QStringLiteral("rw") << QStringLiteral("Kinyarwanda"); + QTest::newRow("Sindhi") << QStringLiteral("sd") << QStringLiteral("سنڌي"); + QTest::newRow("Northern Sami") + << QStringLiteral("se") << QStringLiteral("davvisámegiella"); + QTest::newRow("Sango") << QStringLiteral("sg") << QStringLiteral("Sängö"); + QTest::newRow("Serbo-Croatian") + << QStringLiteral("sh") << QStringLiteral("српски"); + QTest::newRow("Sinhalese") << QStringLiteral("si") << QStringLiteral("සිංහල"); + QTest::newRow("Slovak") << QStringLiteral("sk") << QStringLiteral("slovenčina"); + QTest::newRow("Slovenian") << QStringLiteral("sl") << QStringLiteral("slovenščina"); + QTest::newRow("Shona") << QStringLiteral("sn") << QStringLiteral("chiShona"); + QTest::newRow("Somalia") << QStringLiteral("so") << QStringLiteral("Soomaali"); + QTest::newRow("Albanian") << QStringLiteral("sq") << QStringLiteral("shqip"); + QTest::newRow("Serbian") << QStringLiteral("sr") << QStringLiteral("српски"); + QTest::newRow("Swedish") << QStringLiteral("sv") << QStringLiteral("svenska"); + QTest::newRow("Swahili") << QStringLiteral("sw") << QStringLiteral("Kiswahili"); + QTest::newRow("Tamil") << QStringLiteral("ta") << QStringLiteral("தமிழ்"); + QTest::newRow("Telugu") << QStringLiteral("te") << QStringLiteral("తెలుగు"); + QTest::newRow("Tajik") << QStringLiteral("tg") << QStringLiteral("тоҷикӣ"); + QTest::newRow("Thai") << QStringLiteral("th") << QStringLiteral("ไทย"); + QTest::newRow("Tigrinya") << QStringLiteral("ti") << QStringLiteral("ትግርኛ"); + QTest::newRow("Turkmen") << QStringLiteral("tk") << QStringLiteral("türkmen dili"); + QTest::newRow("Tagalog") << QStringLiteral("tl") << QStringLiteral("Filipino"); + QTest::newRow("Tonga") << QStringLiteral("to") << QStringLiteral("lea fakatonga"); + QTest::newRow("Turkish") << QStringLiteral("tr") << QStringLiteral("Türkçe"); + QTest::newRow("Tatar") << QStringLiteral("tt") << QStringLiteral("татар"); + + QTest::newRow("Uyghur") << QStringLiteral("ug") << QStringLiteral("ئۇيغۇرچە"); + QTest::newRow("Ukrainian") << QStringLiteral("uk") << QStringLiteral("українська"); + QTest::newRow("Urdu") << QStringLiteral("ur") << QStringLiteral("اردو"); + QTest::newRow("Uzbek") << QStringLiteral("uz") << QStringLiteral("o‘zbek"); + QTest::newRow("Vietnamese") << QStringLiteral("vi") << QStringLiteral("Tiếng Việt"); + + QTest::newRow("Volapük") << QStringLiteral("vo") << QStringLiteral("Volapük"); + QTest::newRow("Wolof") << QStringLiteral("wo") << QStringLiteral("Wolof"); + QTest::newRow("Xhosa") << QStringLiteral("xh") << QStringLiteral("isiXhosa"); + QTest::newRow("Yiddish") << QStringLiteral("yi") << QStringLiteral("ייִדיש"); + QTest::newRow("Yoruba") << QStringLiteral("yo") << QStringLiteral("Èdè Yorùbá"); + QTest::newRow("Chinese") << QStringLiteral("zh") << QStringLiteral("简体中文"); + QTest::newRow("Zulu") << QStringLiteral("zu") << QStringLiteral("isiZulu"); + + /*********************************************************************************/ + /*Language Names With Country*/ + /*********************************************************************************/ + QTest::newRow("Afrikaans") << QStringLiteral("af_ZA") << QStringLiteral("Afrikaans (Suid-Afrika)"); + QTest::newRow("Akan") << QStringLiteral("ak_GH") << QStringLiteral("Akan (Gaana)"); + QTest::newRow("Amharic") << QStringLiteral("am_ET") << QStringLiteral("አማርኛ (ኢትዮጵያ)"); + QTest::newRow("Arabic KSA") << QStringLiteral("ar_SA") << QStringLiteral("العربية (المملكة العربية السعودية)"); + QTest::newRow("Arabic Egypt") << QStringLiteral("ar_EG") << QStringLiteral("العربية (مصر)"); + QTest::newRow("Arabic UAE") << QStringLiteral("ar_AE") << QStringLiteral("العربية (الإمارات العربية المتحدة)"); + QTest::newRow("Arabic Iraq") << QStringLiteral("ar_IQ") << QStringLiteral("العربية (العراق)"); + QTest::newRow("Arabic Syria") << QStringLiteral("ar_SY") << QStringLiteral("العربية (سوريا)"); + QTest::newRow("Assamese") << QStringLiteral("as_IN") << QStringLiteral("অসমীয়া (ভাৰত)"); + QTest::newRow("Asturian") << QStringLiteral("ast_ES") << QStringLiteral("asturianu (España)"); + QTest::newRow("Azerbaijani") << QStringLiteral("az_AZ") << QStringLiteral("azərbaycan (Azərbaycan)"); + QTest::newRow("Belarusian") << QStringLiteral("be_BY") << QStringLiteral("беларуская (Беларусь)"); + QTest::newRow("Bulgarian") << QStringLiteral("bg_BG") << QStringLiteral("български (България)"); + QTest::newRow("Bengali") << QStringLiteral("bn_BD") << QStringLiteral("বাংলা (বাংলাদেশ)"); + QTest::newRow("Tibetan") << QStringLiteral("bo_CN") << QStringLiteral("བོད་སྐད་ (རྒྱ་ནག)"); + QTest::newRow("Breton") << QStringLiteral("br_FR") << QStringLiteral("brezhoneg (Frañs)"); + QTest::newRow("Bosnian") << QStringLiteral("bs_BA") << QStringLiteral("bosanski (Bosna i Hercegovina)"); + QTest::newRow("Catalan") << QStringLiteral("ca_ES") << QStringLiteral("català (Espanya)"); + QTest::newRow("Chechen") << QStringLiteral("ce_RU") << QStringLiteral("нохчийн (Росси)"); + QTest::newRow("Cherokee") << QStringLiteral("chr_US") << QStringLiteral("ᏣᎳᎩ (ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᏍᎦᏚᎩ)"); + QTest::newRow("Czech") << QStringLiteral("cs_CZ") << QStringLiteral("čeština (Česko)"); + QTest::newRow("Welsh") << QStringLiteral("cy_GB") << QStringLiteral("Cymraeg (Y Deyrnas Unedig)"); + QTest::newRow("Danish") << QStringLiteral("da_DK") << QStringLiteral("dansk (Danmark)"); + QTest::newRow("German Germany") << QStringLiteral("de_DE") << QStringLiteral("Deutsch (Deutschland)"); + QTest::newRow("German Austria") << QStringLiteral("de_AT") << QStringLiteral("Österreichisches Deutsch (Österreich)"); + QTest::newRow("German Swiss") << QStringLiteral("de_CH") << QStringLiteral("Schweizer Hochdeutsch (Schweiz)"); + QTest::newRow("Lower Sorbian") + << QStringLiteral("dsb_DE") << QStringLiteral("dolnoserbšćina (Nimska)"); + QTest::newRow("Dzongkha") << QStringLiteral("dz_BT") << QStringLiteral("རྫོང་ཁ (འབྲུག)"); + QTest::newRow("Ewe") << QStringLiteral("ee_GH") << QStringLiteral("Eʋegbe (Ghana nutome)"); + QTest::newRow("Greek") << QStringLiteral("el_GR") << QStringLiteral("Ελληνικά (Ελλάδα)"); + QTest::newRow("American English") + << QStringLiteral("en_US") << QStringLiteral("American English (United States)"); + QTest::newRow("Canadian English") << QStringLiteral("en_CA") << QStringLiteral("Canadian English (Canada)"); + QTest::newRow("British English") << QStringLiteral("en_GB") << QStringLiteral("British English (United Kingdom)"); + QTest::newRow("Australian English") << QStringLiteral("en_AU") << QStringLiteral("Australian English (Australia)"); + QTest::newRow("South African English") << QStringLiteral("en_ZA") << QStringLiteral("English (South Africa)"); + QTest::newRow("Spanish") << QStringLiteral("es_ES") << QStringLiteral("español de España (España)"); + QTest::newRow("Estonian") << QStringLiteral("et_EE") << QStringLiteral("eesti (Eesti)"); + QTest::newRow("Persian") << QStringLiteral("fa_IR") << QStringLiteral("فارسی (ایران)"); + QTest::newRow("Finnish") << QStringLiteral("fi_FI") << QStringLiteral("suomi (Suomi)"); + QTest::newRow("Faroese") << QStringLiteral("fo_FO") << QStringLiteral("føroyskt (Føroyar)"); + QTest::newRow("French") << QStringLiteral("fr_FR") << QStringLiteral("français (France)"); + QTest::newRow("Friulian") << QStringLiteral("fur_IT") << QStringLiteral("furlan (Italie)"); + QTest::newRow("Irish") << QStringLiteral("ga_GB") << QStringLiteral("Gaeilge (Éire)"); + QTest::newRow("Scottish Gaelic") + << QStringLiteral("gd_GB") << QStringLiteral("Gàidhlig (An Rìoghachd Aonaichte)"); + QTest::newRow("Galician") << QStringLiteral("gl_ES") << QStringLiteral("galego (España)"); + QTest::newRow("Gujarati") << QStringLiteral("gu_IN") << QStringLiteral("ગુજરાતી (ભારત)"); + QTest::newRow("Manx") << QStringLiteral("gv_IM") << QStringLiteral("Gaelg (Ellan Vannin)"); + QTest::newRow("Hawaiian") << QStringLiteral("haw_US") << QStringLiteral("ʻŌlelo Hawaiʻi (ʻAmelika Hui Pū ʻIa)"); + QTest::newRow("Hebrew") << QStringLiteral("he_IL") << QStringLiteral("עברית (ישראל)"); + QTest::newRow("Hindi") << QStringLiteral("hi_IN") << QStringLiteral("हिन्दी (भारत)"); + QTest::newRow("Croatian") << QStringLiteral("hr_HR") << QStringLiteral("hrvatski (Hrvatska)"); + QTest::newRow("Hungarian") << QStringLiteral("hu_HU") << QStringLiteral("magyar (Magyarország)"); + QTest::newRow("Armenian") << QStringLiteral("hy_AM") << QStringLiteral("հայերեն (Հայաստան)"); + QTest::newRow("Indonesian") << QStringLiteral("id_ID") << QStringLiteral("Indonesia (Indonesia)"); + QTest::newRow("Igbo") << QStringLiteral("ig_NG") << QStringLiteral("Asụsụ Igbo (Naịjịrịa)"); + QTest::newRow("Sichuan Yi") << QStringLiteral("ii_CN") << QStringLiteral("ꆈꌠꉙ (ꍏꇩ)"); + QTest::newRow("Icelandic") << QStringLiteral("is_IS") << QStringLiteral("íslenska (Ísland)"); + QTest::newRow("Italian") << QStringLiteral("it_IT") << QStringLiteral("italiano (Italia)"); + QTest::newRow("Japanese") << QStringLiteral("ja_JP") << QStringLiteral("日本語 (日本)"); + QTest::newRow("Javanese") << QStringLiteral("jv_ID") << QStringLiteral("Jawa (Indonésia)"); + QTest::newRow("Georgian") << QStringLiteral("ka_GE") << QStringLiteral("ქართული (საქართველო)"); + QTest::newRow("Kikuyu") << QStringLiteral("ki_KE") << QStringLiteral("Gikuyu (Kenya)"); + QTest::newRow("Kazakh") << QStringLiteral("kk_KZ") << QStringLiteral("қазақ тілі (Қазақстан)"); + QTest::newRow("Greenlandic") << QStringLiteral("kl_GL") << QStringLiteral("kalaallisut (Kalaallit Nunaat)"); + QTest::newRow("Cambodian") << QStringLiteral("km_KH") << QStringLiteral("ខ្មែរ (កម្ពុជា)"); + QTest::newRow("Kannada") << QStringLiteral("kn_IN") << QStringLiteral("ಕನ್ನಡ (ಭಾರತ)"); + QTest::newRow("Korean") << QStringLiteral("ko_KO") << QStringLiteral("한국어 (대한민국)"); + QTest::newRow("Kurdish Turkey") << QStringLiteral("ku_TR") << QStringLiteral("kurdî (Tirkiye)"); + QTest::newRow("Cornish") << QStringLiteral("kw_GB") << QStringLiteral("kernewek (Rywvaneth Unys)"); + QTest::newRow("Ganda") << QStringLiteral("lg_UG") << QStringLiteral("Luganda (Yuganda)"); + QTest::newRow("Lingala") << QStringLiteral("ln_CD") << QStringLiteral("lingála (Republíki ya Kongó Demokratíki)"); + QTest::newRow("Laotian") << QStringLiteral("lo_LA") << QStringLiteral("ລາວ (ລາວ)"); + QTest::newRow("Lithuanian") << QStringLiteral("lt_LT") << QStringLiteral("lietuvių (Lietuva)"); + QTest::newRow("Latvian") << QStringLiteral("lv_LV") << QStringLiteral("latviešu (Latvija)"); + QTest::newRow("Malagasy") << QStringLiteral("mg_MG") << QStringLiteral("Malagasy (Madagasikara)"); + QTest::newRow("Maori") << QStringLiteral("mi_NZ") << QStringLiteral("Māori (Aotearoa)"); + QTest::newRow("Macedonian") << QStringLiteral("mk_MK") << QStringLiteral("македонски (Северна Македонија)"); + QTest::newRow("Malayalam") << QStringLiteral("ml_IN") << QStringLiteral("മലയാളം (ഇന്ത്യ)"); + QTest::newRow("Mongolian") << QStringLiteral("mn_MN") << QStringLiteral("монгол (Монгол)"); + QTest::newRow("Moldovan") << QStringLiteral("mo_MD") << QStringLiteral("română (Republica Moldova)"); + QTest::newRow("Marathi") << QStringLiteral("mr_IN") << QStringLiteral("मराठी (भारत)"); + QTest::newRow("Malay") << QStringLiteral("ms_MY") << QStringLiteral("Melayu (Malaysia)"); + QTest::newRow("Maltese") << QStringLiteral("mt_MT") << QStringLiteral("Malti (Malta)"); + QTest::newRow("Burmese") << QStringLiteral("my_MM") << QStringLiteral("မြန်မာ (မြန်မာ)"); + QTest::newRow("Norwegian Bokmål") + << QStringLiteral("nb_NO") << QStringLiteral("norsk bokmål (Norge)"); + QTest::newRow("North Ndebele") + << QStringLiteral("nd_ZW") << QStringLiteral("isiNdebele (Zimbabwe)"); + + QTest::newRow("Nepali") << QStringLiteral("ne_NP") << QStringLiteral("नेपाली (नेपाल)"); + QTest::newRow("Dutch") << QStringLiteral("nl_NL") << QStringLiteral("Nederlands (Nederland)"); + QTest::newRow("Norwegian Nynorsk") + << QStringLiteral("nn_NO") << QStringLiteral("nynorsk (Noreg)"); + QTest::newRow("Norwegian") << QStringLiteral("no_NO") << QStringLiteral("norsk bokmål (Norge)"); + QTest::newRow("Oromo") << QStringLiteral("om_ET") << QStringLiteral("Oromoo (Itoophiyaa)"); + QTest::newRow("Oriya") << QStringLiteral("or_IN") << QStringLiteral("ଓଡ଼ିଆ (ଭାରତ)"); + QTest::newRow("Ossetian") << QStringLiteral("os_RU") << QStringLiteral("ирон (Уӕрӕсе)"); + QTest::newRow("Punjabi India") << QStringLiteral("pa_IN") << QStringLiteral("ਪੰਜਾਬੀ (ਭਾਰਤ)"); + QTest::newRow("Punjabi Pakistan") << QStringLiteral("pa_PK") << QStringLiteral("پنجابی (پاکستان)"); + QTest::newRow("Polish") << QStringLiteral("pl_PL") << QStringLiteral("polski (Polska)"); + QTest::newRow("Pashto") << QStringLiteral("ps_PK") << QStringLiteral("پښتو (پاکستان)"); + QTest::newRow("Portuguese Brazil") << QStringLiteral("pt_BR") << QStringLiteral("português (Brasil)"); + QTest::newRow("Portuguese Portugal") << QStringLiteral("pt_PT") << QStringLiteral("português europeu (Portugal)"); + QTest::newRow("Raeto Romance") + << QStringLiteral("rm_CH") << QStringLiteral("rumantsch (Svizra)"); + QTest::newRow("Kirundi") << QStringLiteral("rn_BI") << QStringLiteral("Ikirundi (Uburundi)"); + QTest::newRow("Romanian") << QStringLiteral("ro_RO") << QStringLiteral("română (România)"); + QTest::newRow("Russian") << QStringLiteral("ru_RU") << QStringLiteral("русский (Россия)"); + QTest::newRow("Rwandi") << QStringLiteral("rw_RW") << QStringLiteral("Kinyarwanda (U Rwanda)"); + QTest::newRow("Sindhi") << QStringLiteral("sd_PK") << QStringLiteral("سنڌي (پاڪستان)"); + QTest::newRow("Sango") << QStringLiteral("sg_CF") << QStringLiteral("Sängö (Ködörösêse tî Bêafrîka)"); + QTest::newRow("Sinhalese") << QStringLiteral("si_LK") << QStringLiteral("සිංහල (ශ්‍රී ලංකාව)"); + QTest::newRow("Slovak") << QStringLiteral("sk_SK") << QStringLiteral("slovenčina (Slovensko)"); + QTest::newRow("Slovenian") << QStringLiteral("sl_SI") << QStringLiteral("slovenščina (Slovenija)"); + QTest::newRow("Shona") << QStringLiteral("sn_ZA") << QStringLiteral("chiShona (Zimbabwe)"); + QTest::newRow("Somalia") << QStringLiteral("so_SO") << QStringLiteral("Soomaali (Soomaaliya)"); + QTest::newRow("Albanian") << QStringLiteral("sq_AL") << QStringLiteral("shqip (Shqipëri)"); + QTest::newRow("Serbian") << QStringLiteral("sr_RS") << QStringLiteral("српски (Србија)"); + QTest::newRow("Swedish") << QStringLiteral("sv_SE") << QStringLiteral("svenska (Sverige)"); + QTest::newRow("Swahili") << QStringLiteral("sw_TZ") << QStringLiteral("Kiswahili (Tanzania)"); + QTest::newRow("Tamil") << QStringLiteral("ta_IN") << QStringLiteral("தமிழ் (இந்தியா)"); + QTest::newRow("Telugu") << QStringLiteral("te_IN") << QStringLiteral("తెలుగు (భారతదేశం)"); + QTest::newRow("Tajik") << QStringLiteral("tg_TG") << QStringLiteral("тоҷикӣ (Тоҷикистон)"); + QTest::newRow("Thai") << QStringLiteral("th_TH") << QStringLiteral("ไทย (ไทย)"); + QTest::newRow("Tigrinya") << QStringLiteral("ti_ER") << QStringLiteral("ትግርኛ (ኤርትራ)"); + QTest::newRow("Turkmen") << QStringLiteral("tk_TM") << QStringLiteral("türkmen dili (Türkmenistan)"); + QTest::newRow("Tagalog") << QStringLiteral("tl_PH") << QStringLiteral("Filipino (Pilipinas)"); + QTest::newRow("Tonga") << QStringLiteral("to_TO") << QStringLiteral("lea fakatonga (Tonga)"); + QTest::newRow("Turkish") << QStringLiteral("tr_TR") << QStringLiteral("Türkçe (Türkiye)"); + QTest::newRow("Tatar") << QStringLiteral("tt_RU") << QStringLiteral("татар (Россия)"); + QTest::newRow("Uyghur") << QStringLiteral("ug_CN") << QStringLiteral("ئۇيغۇرچە (جۇڭگو)"); + QTest::newRow("Ukrainian") << QStringLiteral("uk_UA") << QStringLiteral("українська (Україна)"); + QTest::newRow("Urdu Pakistan") << QStringLiteral("ur_PK") << QStringLiteral("اردو (پاکستان)"); + QTest::newRow("Urdu India") << QStringLiteral("ur_IN") << QStringLiteral("اردو (بھارت)"); + QTest::newRow("Uzbek") << QStringLiteral("uz_UZ") << QStringLiteral("o‘zbek (Oʻzbekiston)"); + QTest::newRow("Vietnamese") << QStringLiteral("vi_VN") << QStringLiteral("Tiếng Việt (Việt Nam)"); + QTest::newRow("Xhosa") << QStringLiteral("xh_ZA") << QStringLiteral("isiXhosa (eMzantsi Afrika)"); + QTest::newRow("Chinese") << QStringLiteral("zh_CN") << QStringLiteral("简体中文 (中国)"); + QTest::newRow("Zulu") << QStringLiteral("zu_ZA") << QStringLiteral("isiZulu (iNingizimu Afrika)"); + + /******************************************************************/ + /*These languages are present in missingLocales map, in loader.cpp*/ + /******************************************************************/ + QTest::newRow("Aragonese") << QStringLiteral("an") << QStringLiteral("aragonés"); + QTest::newRow("Kashubian") << QStringLiteral("csb") << QStringLiteral("kaszëbsczi"); + QTest::newRow("Chuvash") << QStringLiteral("cv") << QStringLiteral("чӑвашла"); + QTest::newRow("Komi") << QStringLiteral("kv") << QStringLiteral("коми"); + QTest::newRow("Latin") << QStringLiteral("la") << QStringLiteral("latīna"); + QTest::newRow("Luxembourgish") + << QStringLiteral("lb") << QStringLiteral("Lëtzebuergesch"); + QTest::newRow("Luxembourgish") + << QStringLiteral("ltz") << QStringLiteral("Lëtzebuergesch"); + QTest::newRow("Occitan") << QStringLiteral("oc") << QStringLiteral("lenga d'òc"); + QTest::newRow("Papiamentu") << QStringLiteral("pap") << QStringLiteral("Papiamentu"); + QTest::newRow("Venetian") << QStringLiteral("vec") << QStringLiteral("vèneto"); + QTest::newRow("Udmurt") << QStringLiteral("udm") << QStringLiteral("удмурт"); + + /******************************************************************************************************/ + /* These languages are not detected and hence their iso codes are returned instead of language names: */ + /******************************************************************************************************/ +/* + QTest::newRow("Afar") << QStringLiteral("aa") << QStringLiteral("Qafaraf"); + QTest::newRow("Abkhazian") << QStringLiteral("ab") << QStringLiteral("Аҧсуа"); + QTest::newRow("Alemannic") << QStringLiteral("als") << QStringLiteral("Alemannisch"); + QTest::newRow("Aramaic") << QStringLiteral("arc") << QStringLiteral("ܣܘܪܬ"); + QTest::newRow("Avar") << QStringLiteral("av") << QStringLiteral("Авар"); + QTest::newRow("Awadhi") << QStringLiteral("awa") << QStringLiteral("अवधी"); + QTest::newRow("Aymara") << QStringLiteral("ay") << QStringLiteral("Aymar"); + QTest::newRow("Bashkir") << QStringLiteral("ba") << QStringLiteral("Башҡорт"); + QTest::newRow("Bavarian") << QStringLiteral("bar") << QStringLiteral("Boarisch"); + QTest::newRow("Samogitian") << QStringLiteral("sgs") << QStringLiteral("Žemaitėška"); + QTest::newRow("Bikol") << QStringLiteral("bcl") << QStringLiteral("Bikol"); + QTest::newRow("Bihari") << QStringLiteral("bh") << QStringLiteral("भोजपुरी"); + QTest::newRow("Bislama") << QStringLiteral("bi") << QStringLiteral("Bislama"); + QTest::newRow("Bambara") << QStringLiteral("bm") << QStringLiteral("bamanankan"); + QTest::newRow("Buginese") << QStringLiteral("bug") << QStringLiteral("ᨅᨔ ᨕᨘᨁᨗ"); + QTest::newRow("Buriat") << QStringLiteral("bxr") << QStringLiteral("Буряад хэлэн"); + QTest::newRow("Cebuano") << QStringLiteral("ceb") << QStringLiteral("Sinugboanong Binisaya"); + QTest::newRow("Chamorro") << QStringLiteral("ch") << QStringLiteral("Chamoru"); + QTest::newRow("Choctaw") << QStringLiteral("cho") << QStringLiteral("Choctaw"); + QTest::newRow("Cheyenne") << QStringLiteral("chy") << QStringLiteral("Tsetsêhestâhese"); + QTest::newRow("Corsican") << QStringLiteral("co") << QStringLiteral("Corsu"); + QTest::newRow("Cree") << QStringLiteral("cr") << QStringLiteral("Nehiyaw"); + QTest::newRow("Dimli") << QStringLiteral("diq") << QStringLiteral("Zazaki"); + QTest::newRow("Divehi") << QStringLiteral("dv") << QStringLiteral("ދިވެހިބަސް"); + QTest::newRow("Extremaduran")<< QStringLiteral("ext") << QStringLiteral("Estremeñu"); + QTest::newRow("Fijian") << QStringLiteral("fj") << QStringLiteral("Na Vosa Vakaviti"); + QTest::newRow("Arpitan") << QStringLiteral("frp") << QStringLiteral("francoprovençal"); + QTest::newRow("Gan Chinese") << QStringLiteral("gan") << QStringLiteral("贛語"); + QTest::newRow("Garhwali") << QStringLiteral("gbm") << QStringLiteral("गढ़वळी"); + QTest::newRow("Gilbertese") << QStringLiteral("gil") << QStringLiteral("Taetae ni kiribati"); + QTest::newRow("Gothic") << QStringLiteral("got") << QStringLiteral("gutisk"); + QTest::newRow("Guarani") << QStringLiteral("gn") << QStringLiteral("Avañe'ẽ"); + QTest::newRow("Hakka Chinese") + << QStringLiteral("hak") << QStringLiteral("客家語"); + QTest::newRow("Hiri Motu") << QStringLiteral("ho") << QStringLiteral("Hiri Motu"); + QTest::newRow("Haitian") << QStringLiteral("ht") << QStringLiteral("Krèyol ayisyen "); + QTest::newRow("Herero") << QStringLiteral("hz") << QStringLiteral("Otsiherero"); + QTest::newRow("Interlingue") << QStringLiteral("ie") << QStringLiteral("Interlingue"); + QTest::newRow("Inupiak") << QStringLiteral("ik") << QStringLiteral("Iñupiak"); + QTest::newRow("Ilokano") << QStringLiteral("ilo") << QStringLiteral("Ilokano"); + QTest::newRow("Ingush") << QStringLiteral("inh") << QStringLiteral("ГӀалгӀай"); + QTest::newRow("Ido") << QStringLiteral("io") << QStringLiteral("Ido"); + QTest::newRow("Inuktitut") << QStringLiteral("iu") << QStringLiteral("ᐃᓄᒃᑎᑐᑦ"); + QTest::newRow("Lojban") << QStringLiteral("jbo") << QStringLiteral("Lojban"); + QTest::newRow("Kongo") << QStringLiteral("kg") << QStringLiteral("KiKongo"); + QTest::newRow("Khowar") << QStringLiteral("khw") << QStringLiteral("کھوار"); + QTest::newRow("Kanuri") << QStringLiteral("kr") << QStringLiteral("Kanuri"); + QTest::newRow("Kuanyama") << QStringLiteral("kj") << QStringLiteral("Kuanyama"); + QTest::newRow("Kirghiz") << QStringLiteral("ky") << QStringLiteral("Кыргызча"); + QTest::newRow("Latin") << QStringLiteral("la") << QStringLiteral("Latina"); + QTest::newRow("Ladino / Judeo-Spanish") + << QStringLiteral("lad") << QStringLiteral("Dzhudezmo"); + QTest::newRow("Lango") << QStringLiteral("lan") << QStringLiteral("Leb Lango"); + QTest::newRow("Limburgian") << QStringLiteral("li") << QStringLiteral("Limburgs"); + QTest::newRow("Ligurian") << QStringLiteral("lij") << QStringLiteral("Líguru"); + QTest::newRow("Lombard") << QStringLiteral("lmo") << QStringLiteral("Lumbaart"); + QTest::newRow("Laz") << QStringLiteral("lzz") << QStringLiteral("ლაზური"); + QTest::newRow("Mandarin") << QStringLiteral("man") << QStringLiteral("官話"); + QTest::newRow("Marshallese") << QStringLiteral("mh") << QStringLiteral("Kajin Majel"); + QTest::newRow("Minangkabau") << QStringLiteral("min") << QStringLiteral("Minangkabau"); + QTest::newRow("Creek / Muskogee") + << QStringLiteral("mus") << QStringLiteral("Mvskoke"); + QTest::newRow("Mirandese") << QStringLiteral("mwl") << QStringLiteral("Mirandés"); + QTest::newRow("Nauruan") << QStringLiteral("na") << QStringLiteral("Dorerin Naoero"); + QTest::newRow("Nahuatl") << QStringLiteral("nah") << QStringLiteral("Nahuatl"); + QTest::newRow("Neapolitan") << QStringLiteral("nap") << QStringLiteral("Nnapulitano"); + QTest::newRow("Newar") << QStringLiteral("new") << QStringLiteral("नेपालभाषा"); + QTest::newRow("Ndonga") << QStringLiteral("ng") << QStringLiteral("Oshiwambo"); + QTest::newRow("South Ndebele") + << QStringLiteral("nr") << QStringLiteral("isiNdebele"); + QTest::newRow("Northern Sotho") + << QStringLiteral("nso") << QStringLiteral("Sesotho sa Leboa"); + QTest::newRow("Norman") << QStringLiteral("nrm") << QStringLiteral("Nouormand"); + QTest::newRow("Navajo") << QStringLiteral("nv") << QStringLiteral("Diné bizaad "); + QTest::newRow("Chichewa") << QStringLiteral("ny") << QStringLiteral("Chi-Chewa"); + QTest::newRow("Occitan") << QStringLiteral("oc") << QStringLiteral("Occitan"); + QTest::newRow("Ojibwa") << QStringLiteral("oj") << QStringLiteral("ᐊᓂᔑᓈᐯᒧᐎᓐ"); + QTest::newRow("Pangasinan") << QStringLiteral("pag") << QStringLiteral("Pangasinan"); + QTest::newRow("Kapampangan") << QStringLiteral("pam") << QStringLiteral("Kapampangan"); + QTest::newRow("Pennsylvania German") + << QStringLiteral("pdc") << QStringLiteral("Deitsch"); + QTest::newRow("Pali") << QStringLiteral("pi") << QStringLiteral("पाऴि"); + QTest::newRow("Norfolk") << QStringLiteral("pih") << QStringLiteral("Norfuk"); + QTest::newRow("Piedmontese") << QStringLiteral("pms") << QStringLiteral("Piemontèis"); + QTest::newRow("Romani") << QStringLiteral("rmy") << QStringLiteral("Romani"); + QTest::newRow("Sanskrit") << QStringLiteral("sa") << QStringLiteral("संस्कृतम्"); + QTest::newRow("Sardinian") << QStringLiteral("sc") << QStringLiteral("Sardu"); + QTest::newRow("Sicilian") << QStringLiteral("scn") << QStringLiteral("Sicilianu"); + QTest::newRow("Scots") << QStringLiteral("sco") << QStringLiteral("Scots"); + QTest::newRow("Samoan") << QStringLiteral("sm") << QStringLiteral("Gagana Samoa"); + QTest::newRow("Swati") << QStringLiteral("ss") << QStringLiteral("SiSwati"); + QTest::newRow("Southern Sotho") + << QStringLiteral("st") << QStringLiteral("Sesotho"); + QTest::newRow("Sundanese") << QStringLiteral("su") << QStringLiteral("Basa Sunda"); + QTest::newRow("Tetum") << QStringLiteral("tet") << QStringLiteral("Tetun"); + QTest::newRow("Klingon") << QStringLiteral("tlh") << QStringLiteral("tlhIngan-Hol"); + QTest::newRow("Tswana") << QStringLiteral("tn") << QStringLiteral("Setswana"); + QTest::newRow("Tok Pisin") << QStringLiteral("tpi") << QStringLiteral("Tok Pisin"); + QTest::newRow("Tsonga") << QStringLiteral("ts") << QStringLiteral("Xitsonga"); + QTest::newRow("Tumbuka") << QStringLiteral("tum") << QStringLiteral("chiTumbuka"); + QTest::newRow("Twi") << QStringLiteral("tw") << QStringLiteral("Twi"); + QTest::newRow("Tahitian") << QStringLiteral("ty") << QStringLiteral("Reo Mā`ohi"); + QTest::newRow("Venda") << QStringLiteral("ve") << QStringLiteral("Tshivenḓa"); + QTest::newRow("West Flemish")<< QStringLiteral("vls") << QStringLiteral("West-Vlaoms"); + QTest::newRow("Walloon") << QStringLiteral("wa") << QStringLiteral("Walon"); + QTest::newRow("Waray / Samar-Leyte Visayan") + << QStringLiteral("war") << QStringLiteral("Winaray"); + QTest::newRow("Kalmyk") << QStringLiteral("xal") << QStringLiteral("Хальмг"); + QTest::newRow("Megrelian") << QStringLiteral("xmf") << QStringLiteral("მარგალური"); + QTest::newRow("Zhuang") << QStringLiteral("za") << QStringLiteral("壮语"); +*/ +} + +void LanguageNameForCodeTest::language_names() +{ + QFETCH(QString, isoCode); + QFETCH(QString, language); + + Sonnet::Loader l; + QString actualLanguage = l.languageNameForCode(isoCode); + + QCOMPARE(actualLanguage, language); +} + +QTEST_GUILESS_MAIN(LanguageNameForCodeTest) + +#include "test_languageNames.moc" diff --git a/src/core/loader.cpp b/src/core/loader.cpp --- a/src/core/loader.cpp +++ b/src/core/loader.cpp @@ -244,20 +244,65 @@ isoCode = currentDictionary; } + //These iso codes are missing in QLocale + QMap > missingLocales = { + //iso code //lang //country //English name of language + {QLatin1String("an"), {QStringLiteral("aragonés"), QString()}}, //Aragonese + {QLatin1String("an_ES"), {QStringLiteral("aragonés"), QStringLiteral("España")}}, + {QLatin1String("csb"), {QStringLiteral("kaszëbsczi"), QString()}}, //Kashubian + {QLatin1String("csb_PL"), {QStringLiteral("kaszëbsczi"), QStringLiteral("Polska")}}, + {QLatin1String("cv"), {QStringLiteral("чӑвашла"), QString()}}, //Chuvash + {QLatin1String("cv_RU"), {QStringLiteral("чӑвашла"), QStringLiteral("Россия")}}, + {QLatin1String("grc"), {QStringLiteral("Αρχαία Ελληνικά"), QString()}}, //Ancient Greek + {QLatin1String("grc_GR"), {QStringLiteral("Αρχαία Ελληνικά"), QStringLiteral("Ελλάδα")}}, + {QLatin1String("gug"), {QStringLiteral("Guarani"), QString()}}, //Gurarani + {QLatin1String("gug_PY"), {QStringLiteral("Guarani"), QStringLiteral("Paraguái")}}, + {QLatin1String("kv"), {QStringLiteral("коми"), QString()}}, //Komi + {QLatin1String("kv_RU"), {QStringLiteral("коми"), QStringLiteral("Россия")}}, + {QLatin1String("la"), {QStringLiteral("latīna"), QString()}}, //Latin + {QLatin1String("lb"), {QStringLiteral("Lëtzebuergesch"), QString()}}, //Luxembourgish + {QLatin1String("lb_LU"), {QStringLiteral("Lëtzebuergesch"), QStringLiteral("Lëtzebuerg")}}, + {QLatin1String("ltg"), {QStringLiteral("latgalīšu"), QString()}}, //Latgalian + {QLatin1String("ltz"), {QStringLiteral("Lëtzebuergesch"), QString()}}, //Luxembourgish + {QLatin1String("ltz_LU"), {QStringLiteral("Lëtzebuergesch"), QStringLiteral("Lëtzebuerg")}}, + {QLatin1String("oc"), {QStringLiteral("lenga d'òc"), QString()}}, //Occitan + {QLatin1String("pap"), {QStringLiteral("Papiamentu"), QString()}}, //Papiamentu + {QLatin1String("pap_CW"), {QStringLiteral("Papiamentu"), QStringLiteral("Kòrsou")}}, + {QLatin1String("vec"), {QStringLiteral("vèneto"), QString()}}, //Venetian + {QLatin1String("vec_IT"), {QStringLiteral("vèneto"), QStringLiteral("Italia")}}, + {QLatin1String("udm"), {QStringLiteral("удмурт"), QString()}}, //Udmurt + {QLatin1String("udm_RU"), {QStringLiteral("удмурт"), QStringLiteral("Россия")}}, + }; + QLocale locale(isoCode); - localizedCountry = locale.nativeCountryName(); + //if the length is less than 3, isoCode doesn't have a country code + if (isoCode.length() > 3) { + localizedCountry = locale.nativeCountryName(); + } localizedLang = locale.nativeLanguageName(); + //QLocale didn't have this iso code, try to find in the missingLocales table if (localizedLang.isEmpty() && localizedCountry.isEmpty()) { - return isoCode; // We have nothing + localizedLang = missingLocales.value(isoCode).first; + if (isoCode.length() > 3) { + localizedCountry = missingLocales.value(isoCode).second; + } + + //still empty, so just return the iso code + if (localizedLang.isEmpty() && localizedCountry.isEmpty()) { + return isoCode; + } } if (!localizedCountry.isEmpty() && !localizedVariant.isEmpty()) { // We have both a country name and a variant return tr("%1 (%2) [%3]", "dictionary name; %1 = language name, %2 = country name and %3 = language variant name" ).arg(localizedLang, localizedCountry, localizedVariant); } else if (!localizedCountry.isEmpty()) { // We have a country name return tr("%1 (%2)", "dictionary name; %1 = language name, %2 = country name" ).arg(localizedLang, localizedCountry); + } else if (!localizedLang.isEmpty() && !localizedVariant.isEmpty()) { // We have a country name + return tr("%1 [%2]", "dictionary name; %1 = language name, %2 = language variant name" + ).arg(localizedLang, localizedCountry); } else { // We only have a language name return localizedLang; }