From d0ddbf0bafedfe4df4cad01a8e794c49078cd026 Mon Sep 17 00:00:00 2001 From: ARCANEDEV Date: Sun, 29 Nov 2015 19:32:28 +0000 Subject: [PATCH 1/2] Adding Regional to locales --- config/localization.php | 3705 ++++++++++++----------- src/Contracts/LocalizationInterface.php | 7 + src/Entities/Locale.php | 60 +- src/Entities/LocaleCollection.php | 2 +- src/Localization.php | 10 + src/Utilities/LocalesManager.php | 13 + tests/Entities/LocaleTest.php | 57 +- tests/LocalizationTest.php | 16 + 8 files changed, 2136 insertions(+), 1734 deletions(-) diff --git a/config/localization.php b/config/localization.php index e3b9eda..b757db0 100644 --- a/config/localization.php +++ b/config/localization.php @@ -34,1814 +34,2103 @@ 'locales' => [ // A //====================================================> - 'aa' => [ - 'name' => 'Afar', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Qafar', - ], - 'ab' => [ - 'name' => 'Abkhazian', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Аҧсуа', - ], - 'ace' => [ - 'name' => 'Achinese', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Aceh', - ], - 'ady' => [ - 'name' => 'Adyghe', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Адыгэбзэ', - ], - 'ae' => [ - 'name' => 'Avestan', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Avesta', - ], - 'af' => [ - 'name' => 'Afrikaans', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Afrikaans', - ], - 'agq' => [ - 'name' => 'Aghem', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Aghem', - ], - 'ak' => [ - 'name' => 'Akan', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Akan', - ], - 'ale' => [ - 'name' => 'Aleut', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Unangax tunuu', - ], - 'am' => [ - 'name' => 'Amharic', - 'script' => 'Ethi', - 'dir' => 'ltr', - 'native' => 'አማርኛ', - ], - 'an' => [ - 'name' => 'Aragonese', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Aragonés', - ], - 'ang' => [ - 'name' => 'Old English', - 'script' => 'Runr', - 'dir' => 'ltr', - 'native' => 'Old English', - ], - 'ar' => [ - 'name' => 'Arabic', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'العربية', - ], - 'as' => [ - 'name' => 'Assamese', - 'script' => 'Beng', - 'dir' => 'ltr', - 'native' => 'অসমীয়া', - ], - 'asa' => [ - 'name' => 'Kipare', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kipare', - ], - 'av' => [ - 'name' => 'Avaric', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Авар мацӀ', - ], - 'ay' => [ - 'name' => 'Aymara', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Aymar aru', - ], - 'az' => [ - 'name' => 'Azerbaijani (Latin)', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Azərbaycanca', - ], - 'az-Cyrl' => [ - 'name' => 'Azerbaijani (Cyrillic)', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Азәрбајҹан', + 'aa' => [ + 'name' => 'Afar', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Qafar', + 'regional' => 'aa_ER', + ], + 'ab' => [ + 'name' => 'Abkhazian', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Аҧсуа', + 'regional' => '', + ], + 'ace' => [ + 'name' => 'Achinese', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Aceh', + 'regional' => '', + ], + 'ady' => [ + 'name' => 'Adyghe', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Адыгэбзэ', + 'regional' => '', + ], + 'ae' => [ + 'name' => 'Avestan', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Avesta', + 'regional' => '', + ], + 'af' => [ + 'name' => 'Afrikaans', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Afrikaans', + 'regional' => 'af_ZA', + ], + 'agq' => [ + 'name' => 'Aghem', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Aghem', + 'regional' => '', + ], + 'ak' => [ + 'name' => 'Akan', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Akan', + 'regional' => 'ak_GH', + ], + 'ale' => [ + 'name' => 'Aleut', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Unangax tunuu', + 'regional' => '', + ], + 'am' => [ + 'name' => 'Amharic', + 'script' => 'Ethi', + 'dir' => 'ltr', + 'native' => 'አማርኛ', + 'regional' => 'am_ET', + ], + 'an' => [ + 'name' => 'Aragonese', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Aragonés', + 'regional' => 'an_ES', + ], + 'ang' => [ + 'name' => 'Old English', + 'script' => 'Runr', + 'dir' => 'ltr', + 'native' => 'Old English', + 'regional' => '', + ], + 'ar' => [ + 'name' => 'Arabic', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'العربية', + 'regional' => 'ar_AE', + ], + 'as' => [ + 'name' => 'Assamese', + 'script' => 'Beng', + 'dir' => 'ltr', + 'native' => 'অসমীয়া', + 'regional' => 'as_IN', + ], + 'asa' => [ + 'name' => 'Kipare', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kipare', + 'regional' => '', + ], + 'av' => [ + 'name' => 'Avaric', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Авар мацӀ', + 'regional' => '', + ], + 'ay' => [ + 'name' => 'Aymara', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Aymar aru', + 'regional' => 'ay_PE', + ], + 'az' => [ + 'name' => 'Azerbaijani (Latin)', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Azərbaycanca', + 'regional' => 'az_AZ', + ], + 'az-Cyrl' => [ + 'name' => 'Azerbaijani (Cyrillic)', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Азәрбајҹан', + 'regional' => 'uz_UZ', ], // B //====================================================> - 'ba' => [ - 'name' => 'Bashkir', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Башҡорт теле', - ], - 'bas' => [ - 'name' => 'Basa', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ɓàsàa', - ], - 'be' => [ - 'name' => 'Belarusian', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Беларуская', - ], - 'bem' => [ - 'name' => 'Bemba', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ichibemba', - ], - 'bez' => [ - 'name' => 'Bena', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Hibena', - ], - 'bg' => [ - 'name' => 'Bulgarian', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Български', - ], - 'bh' => [ - 'name' => 'Bihari', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Bihari', - ], - 'bi' => [ - 'name' => 'Bislama', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Bislama', - ], - 'bm' => [ - 'name' => 'Bambara', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Bamanakan', - ], - 'bn' => [ - 'name' => 'Bengali', - 'script' => 'Beng', - 'dir' => 'ltr', - 'native' => 'বাংলা', - ], - 'bo' => [ - 'name' => 'Tibetan', - 'script' => 'Tibt', - 'dir' => 'ltr', - 'native' => 'པོད་སྐད་', - ], - 'br' => [ - 'name' => 'Breton', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Brezhoneg', - ], - 'bra' => [ - 'name' => 'Braj', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'ब्रज भाषा', - ], - 'brx' => [ - 'name' => 'Bodo', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'बड़ो', - ], - 'bs' => [ - 'name' => 'Bosnian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Bosanski', - ], - 'byn' => [ - 'name' => 'Blin', - 'script' => 'Ethi', - 'dir' => 'ltr', - 'native' => 'ብሊን', + 'ba' => [ + 'name' => 'Bashkir', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Башҡорт теле', + 'regional' => '', + ], + 'bas' => [ + 'name' => 'Basa', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ɓàsàa', + 'regional' => '', + ], + 'be' => [ + 'name' => 'Belarusian', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Беларуская', + 'regional' => 'be_BY', + ], + 'bem' => [ + 'name' => 'Bemba', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ichibemba', + 'regional' => 'bem_ZM', + ], + 'bez' => [ + 'name' => 'Bena', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Hibena', + 'regional' => '', + ], + 'bg' => [ + 'name' => 'Bulgarian', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Български', + 'regional' => 'bg_BG', + ], + 'bh' => [ + 'name' => 'Bihari', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Bihari', + 'regional' => '', + ], + 'bi' => [ + 'name' => 'Bislama', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Bislama', + 'regional' => '', + ], + 'bm' => [ + 'name' => 'Bambara', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Bamanakan', + 'regional' => '', + ], + 'bn' => [ + 'name' => 'Bengali', + 'script' => 'Beng', + 'dir' => 'ltr', + 'native' => 'বাংলা', + 'regional' => 'bn_BD', + ], + 'bo' => [ + 'name' => 'Tibetan', + 'script' => 'Tibt', + 'dir' => 'ltr', + 'native' => 'པོད་སྐད་', + 'regional' => 'bo_IN', + ], + 'br' => [ + 'name' => 'Breton', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Brezhoneg', + 'regional' => 'br_FR', + ], + 'bra' => [ + 'name' => 'Braj', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'ब्रज भाषा', + 'regional' => '', + ], + 'brx' => [ + 'name' => 'Bodo', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'बड़ो', + 'regional' => 'brx_IN', + ], + 'bs' => [ + 'name' => 'Bosnian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Bosanski', + 'regional' => 'bs_BA', + ], + 'byn' => [ + 'name' => 'Blin', + 'script' => 'Ethi', + 'dir' => 'ltr', + 'native' => 'ብሊን', + 'regional' => 'byn_ER', ], // C //====================================================> - 'ca' => [ - 'name' => 'Catalan', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Català', - ], - 'ca-valencia'=> [ - 'name' => 'Valencian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Valencià', - ], - 'cch' => [ - 'name' => 'Atsam', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Atsam', - ], - 'ce' => [ - 'name' => 'Chechen', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Нохчийн мотт', - ], - 'cgg' => [ - 'name' => 'Chiga', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Rukiga', - ], - 'ch' => [ - 'name' => 'Chamorro', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Chamoru', - ], - 'chr' => [ - 'name' => 'Cherokee', - 'script' => 'Cher', - 'dir' => 'ltr', - 'native' => 'ᏣᎳᎩ', - ], - 'co' => [ - 'name' => 'Corsican', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Corsu', - ], - 'cr' => [ - 'name' => 'Cree', - 'script' => 'Cans', - 'dir' => 'ltr', - 'native' => 'ᓀᐦᐃᔭᐍᐏᐣ', - ], - 'cs' => [ - 'name' => 'Czech', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Čeština', - ], - 'cu' => [ - 'name' => 'Church Slavic', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Ѩзыкъ словѣньскъ', - ], - 'cv' => [ - 'name' => 'Chuvash', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Чӑваш чӗлхи', - ], - 'cy' => [ - 'name' => 'Welsh', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Cymraeg', + 'ca' => [ + 'name' => 'Catalan', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Català', + 'regional' => 'ca_ES', + ], + 'ca-valencia' => [ + 'name' => 'Valencian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Valencià', + 'regional' => '', + ], + 'cch' => [ + 'name' => 'Atsam', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Atsam', + 'regional' => '', + ], + 'ce' => [ + 'name' => 'Chechen', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Нохчийн мотт', + 'regional' => 'ce_RU', + ], + 'cgg' => [ + 'name' => 'Chiga', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Rukiga', + 'regional' => '', + ], + 'ch' => [ + 'name' => 'Chamorro', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Chamoru', + 'regional' => '', + ], + 'chr' => [ + 'name' => 'Cherokee', + 'script' => 'Cher', + 'dir' => 'ltr', + 'native' => 'ᏣᎳᎩ', + 'regional' => '', + ], + 'co' => [ + 'name' => 'Corsican', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Corsu', + 'regional' => '', + ], + 'cr' => [ + 'name' => 'Cree', + 'script' => 'Cans', + 'dir' => 'ltr', + 'native' => 'ᓀᐦᐃᔭᐍᐏᐣ', + 'regional' => '', + ], + 'cs' => [ + 'name' => 'Czech', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Čeština', + 'regional' => 'cs_CZ', + ], + 'cu' => [ + 'name' => 'Church Slavic', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Ѩзыкъ словѣньскъ', + 'regional' => '', + ], + 'cv' => [ + 'name' => 'Chuvash', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Чӑваш чӗлхи', + 'regional' => 'cv_RU', + ], + 'cy' => [ + 'name' => 'Welsh', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Cymraeg', + 'regional' => 'cy_GB', ], // D //====================================================> - 'da' => [ - 'name' => 'Danish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Dansk', - ], - 'dav' => [ - 'name' => 'Dawida', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kitaita', - ], - 'de' => [ - 'name' => 'German', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Deutsch', - ], - 'de-AT' => [ - 'name' => 'Austrian German', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Österreichisches Deutsch', - ], - 'de-CH' => [ - 'name' => 'Swiss High German', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Schweizer Hochdeutsch', - ], - 'dje' => [ - 'name' => 'Zarma', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Zarmaciine', - ], - 'doi' => [ - 'name' => 'Dogri', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'डोगरी', - ], - 'dua' => [ - 'name' => 'Duala', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Duálá', - ], - 'dv' => [ - 'name' => 'Divehi', - 'script' => 'Thaa', - 'dir' => 'rtl', - 'native' => 'ދިވެހިބަސް', - ], - 'dyo' => [ - 'name' => 'Jola-Fonyi', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Joola', - ], - 'dz' => [ - 'name' => 'Dzongkha', - 'script' => 'Tibt', - 'dir' => 'ltr', - 'native' => 'རྫོང་ཁ', + 'da' => [ + 'name' => 'Danish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Dansk', + 'regional' => 'da_DK', + ], + 'dav' => [ + 'name' => 'Dawida', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kitaita', + 'regional' => '', + ], + 'de' => [ + 'name' => 'German', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Deutsch', + 'regional' => 'de_DE', + ], + 'de-AT' => [ + 'name' => 'Austrian German', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Österreichisches Deutsch', + 'regional' => 'de_AT', + ], + 'de-CH' => [ + 'name' => 'Swiss High German', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Schweizer Hochdeutsch', + 'regional' => 'de_CH', + ], + 'dje' => [ + 'name' => 'Zarma', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Zarmaciine', + 'regional' => '', + ], + 'doi' => [ + 'name' => 'Dogri', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'डोगरी', + 'regional' => 'doi_IN', + ], + 'dua' => [ + 'name' => 'Duala', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Duálá', + 'regional' => '', + ], + 'dv' => [ + 'name' => 'Divehi', + 'script' => 'Thaa', + 'dir' => 'rtl', + 'native' => 'ދިވެހިބަސް', + 'regional' => 'dv_MV', + ], + 'dyo' => [ + 'name' => 'Jola-Fonyi', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Joola', + 'regional' => '', + ], + 'dz' => [ + 'name' => 'Dzongkha', + 'script' => 'Tibt', + 'dir' => 'ltr', + 'native' => 'རྫོང་ཁ', + 'regional' => 'dz_BT', ], // E //====================================================> - 'ebu' => [ - 'name' => 'Kiembu', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kĩembu', - ], - 'ee' => [ - 'name' => 'Ewe', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Eʋegbe', - ], - 'en' => [ - 'name' => 'English', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'English', - ], - 'en-AU' => [ - 'name' => 'Australian English', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Australian English', - ], - 'en-GB' => [ - 'name' => 'British English', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'British English', - ], - 'en-US' => [ - 'name' => 'U.S. English', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'U.S. English', - ], - 'el' => [ - 'name' => 'Greek', - 'script' => 'Grek', - 'dir' => 'ltr', - 'native' => 'Ελληνικά', - ], - 'eo' => [ - 'name' => 'Esperanto', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Esperanto', - ], - 'es' => [ - 'name' => 'Spanish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Español', - ], - 'et' => [ - 'name' => 'Estonian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Eesti', - ], - 'eu' => [ - 'name' => 'Basque', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Euskara', - ], - 'ewo' => [ - 'name' => 'Ewondo', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ewondo', + 'ebu' => [ + 'name' => 'Kiembu', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kĩembu', + 'regional' => '', + ], + 'ee' => [ + 'name' => 'Ewe', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Eʋegbe', + 'regional' => '', + ], + 'en' => [ + 'name' => 'English', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'English', + 'regional' => 'en_GB', + ], + 'en-AU' => [ + 'name' => 'Australian English', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Australian English', + 'regional' => 'en_AU', + ], + 'en-GB' => [ + 'name' => 'British English', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'British English', + 'regional' => 'en_GB', + ], + 'en-US' => [ + 'name' => 'U.S. English', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'U.S. English', + 'regional' => 'en_US', + ], + 'el' => [ + 'name' => 'Greek', + 'script' => 'Grek', + 'dir' => 'ltr', + 'native' => 'Ελληνικά', + 'regional' => 'el_GR', + ], + 'eo' => [ + 'name' => 'Esperanto', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Esperanto', + 'regional' => '', + ], + 'es' => [ + 'name' => 'Spanish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Español', + 'regional' => 'es_ES', + ], + 'et' => [ + 'name' => 'Estonian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Eesti', + 'regional' => 'et_EE', + ], + 'eu' => [ + 'name' => 'Basque', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Euskara', + 'regional' => 'eu_ES', + ], + 'ewo' => [ + 'name' => 'Ewondo', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ewondo', + 'regional' => '', ], // F //====================================================> - 'fa' => [ - 'name' => 'Persian', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'فارسی', - ], - 'ff' => [ - 'name' => 'Fulah', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Pulaar', - ], - 'fi' => [ - 'name' => 'Finnish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Suomi', - ], - 'fil' => [ - 'name' => 'Filipino', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Filipino', - ], - 'fj' => [ - 'name' => 'Fijian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Vosa Vakaviti', - ], - 'fo' => [ - 'name' => 'Faroese', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Føroyskt', - ], - 'fr' => [ - 'name' => 'French', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Français', - ], - 'fr-CA' => [ - 'name' => 'Canadian French', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Français canadien', - ], - 'fur' => [ - 'name' => 'Friulian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Furlan', - ], - 'fy' => [ - 'name' => 'Western Frisian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Frysk', + 'fa' => [ + 'name' => 'Persian', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'فارسی', + 'regional' => 'fa_IR', + ], + 'ff' => [ + 'name' => 'Fulah', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Pulaar', + 'regional' => 'ff_SN', + ], + 'fi' => [ + 'name' => 'Finnish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Suomi', + 'regional' => 'fi_FI', + ], + 'fil' => [ + 'name' => 'Filipino', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Filipino', + 'regional' => 'fil_PH', + ], + 'fj' => [ + 'name' => 'Fijian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Vosa Vakaviti', + 'regional' => '', + ], + 'fo' => [ + 'name' => 'Faroese', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Føroyskt', + 'regional' => 'fo_FO', + ], + 'fr' => [ + 'name' => 'French', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Français', + 'regional' => 'fr_FR', + ], + 'fr-CA' => [ + 'name' => 'Canadian French', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Français canadien', + 'regional' => 'fr_CA', + ], + 'fur' => [ + 'name' => 'Friulian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Furlan', + 'regional' => 'fur_IT', + ], + 'fy' => [ + 'name' => 'Western Frisian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Frysk', + 'regional' => 'fy_DE', ], // G //====================================================> - 'ga' => [ - 'name' => 'Irish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Gaeilge', - ], - 'gaa' => [ - 'name' => 'Ga', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ga', - ], - 'gd' => [ - 'name' => 'Scottish Gaelic', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Gàidhlig', - ], - 'gl' => [ - 'name' => 'Galician', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Galego', - ], - 'gn' => [ - 'name' => 'Guaraní', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Avañe’ẽ', - ], - 'gsw' => [ - 'name' => 'Swiss German', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Schwiizertüütsch', - ], - 'gu' => [ - 'name' => 'Gujarati', - 'script' => 'Gujr', - 'dir' => 'ltr', - 'native' => 'ગુજરાતી', - ], - 'guz' => [ - 'name' => 'Ekegusii', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ekegusii', - ], - 'gv' => [ - 'name' => 'Manx', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Gaelg', + 'ga' => [ + 'name' => 'Irish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Gaeilge', + 'regional' => 'ga_IE', + ], + 'gaa' => [ + 'name' => 'Ga', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ga', + 'regional' => '', + ], + 'gd' => [ + 'name' => 'Scottish Gaelic', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Gàidhlig', + 'regional' => 'gd_GB', + ], + 'gl' => [ + 'name' => 'Galician', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Galego', + 'regional' => 'gl_ES', + ], + 'gn' => [ + 'name' => 'Guaraní', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Avañe’ẽ', + 'regional' => '', + ], + 'gsw' => [ + 'name' => 'Swiss German', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Schwiizertüütsch', + 'regional' => '', + ], + 'gu' => [ + 'name' => 'Gujarati', + 'script' => 'Gujr', + 'dir' => 'ltr', + 'native' => 'ગુજરાતી', + 'regional' => 'gu_IN', + ], + 'guz' => [ + 'name' => 'Ekegusii', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ekegusii', + 'regional' => '', + ], + 'gv' => [ + 'name' => 'Manx', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Gaelg', + 'regional' => 'gv_GB', ], // H //====================================================> - 'ha' => [ - 'name' => 'Hausa', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Hausa', - ], - 'haw' => [ - 'name' => 'Hawaiian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'ʻŌlelo Hawaiʻi', - ], - 'he' => [ - 'name' => 'Hebrew', - 'script' => 'Hebr', - 'dir' => 'rtl', - 'native' => 'עברית', - ], - 'hi' => [ - 'name' => 'Hindi', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'हिन्दी', - ], - 'ho' => [ - 'name' => 'Hiri Motu', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Hiri Motu', - ], - 'hr' => [ - 'name' => 'Croatian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Hrvatski', - ], - 'ht' => [ - 'name' => 'Haitian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kreyòl ayisyen', - ], - 'hu' => [ - 'name' => 'Hungarian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Magyar', - ], - 'hy' => [ - 'name' => 'Armenian', - 'script' => 'Armn', - 'dir' => 'ltr', - 'native' => 'Հայերէն', - ], - 'hz' => [ - 'name' => 'Herero', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Otjiherero', + 'ha' => [ + 'name' => 'Hausa', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Hausa', + 'regional' => 'ha_NG', + ], + 'haw' => [ + 'name' => 'Hawaiian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'ʻŌlelo Hawaiʻi', + 'regional' => '', + ], + 'he' => [ + 'name' => 'Hebrew', + 'script' => 'Hebr', + 'dir' => 'rtl', + 'native' => 'עברית', + 'regional' => 'he_IL', + ], + 'hi' => [ + 'name' => 'Hindi', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'हिन्दी', + 'regional' => 'hi_IN', + ], + 'ho' => [ + 'name' => 'Hiri Motu', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Hiri Motu', + 'regional' => '', + ], + 'hr' => [ + 'name' => 'Croatian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Hrvatski', + 'regional' => 'hr_HR', + ], + 'ht' => [ + 'name' => 'Haitian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kreyòl ayisyen', + 'regional' => 'ht_HT', + ], + 'hu' => [ + 'name' => 'Hungarian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Magyar', + 'regional' => 'hu_HU', + ], + 'hy' => [ + 'name' => 'Armenian', + 'script' => 'Armn', + 'dir' => 'ltr', + 'native' => 'Հայերէն', + 'regional' => 'hy_AM', + ], + 'hz' => [ + 'name' => 'Herero', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Otjiherero', + 'regional' => '', ], // I //====================================================> - 'ia' => [ - 'name' => 'Interlingua', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Interlingua', - ], - 'id' => [ - 'name' => 'Indonesian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Bahasa Indonesia', - ], - 'ig' => [ - 'name' => 'Igbo', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Igbo', - ], - 'ii' => [ - 'name' => 'Sichuan Yi', - 'script' => 'Yiii', - 'dir' => 'ltr', - 'native' => 'ꆈꌠꉙ', - ], - 'ik' => [ - 'name' => 'Inupiaq', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Iñupiaq', - ], - 'io' => [ - 'name' => 'Ido', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ido', - ], - 'is' => [ - 'name' => 'Icelandic', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Íslenska', - ], - 'it' => [ - 'name' => 'Italian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Italiano', - ], - 'iu' => [ - 'name' => 'Inuktitut (Canadian Aboriginal Syllabics)', - 'script' => 'Cans', - 'dir' => 'ltr', - 'native' => 'ᐃᓄᒃᑎᑐᑦ', - ], - 'iu-Latin' => [ - 'name' => 'Inuktitut (Latin)', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Inuktitut', + 'ia' => [ + 'name' => 'Interlingua', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Interlingua', + 'regional' => 'ia_FR', + ], + 'id' => [ + 'name' => 'Indonesian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Bahasa Indonesia', + 'regional' => 'id_ID', + ], + 'ig' => [ + 'name' => 'Igbo', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Igbo', + 'regional' => 'ig_NG', + ], + 'ii' => [ + 'name' => 'Sichuan Yi', + 'script' => 'Yiii', + 'dir' => 'ltr', + 'native' => 'ꆈꌠꉙ', + 'regional' => '', + ], + 'ik' => [ + 'name' => 'Inupiaq', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Iñupiaq', + 'regional' => 'ik_CA', + ], + 'io' => [ + 'name' => 'Ido', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ido', + 'regional' => '', + ], + 'is' => [ + 'name' => 'Icelandic', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Íslenska', + 'regional' => 'is_IS', + ], + 'it' => [ + 'name' => 'Italian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Italiano', + 'regional' => 'it_IT', + ], + 'iu' => [ + 'name' => 'Inuktitut (Canadian Aboriginal Syllabics)', + 'script' => 'Cans', + 'dir' => 'ltr', + 'native' => 'ᐃᓄᒃᑎᑐᑦ', + 'regional' => 'iu_CA', + ], + 'iu-Latin' => [ + 'name' => 'Inuktitut (Latin)', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Inuktitut', + 'regional' => 'ia_FR', ], // J //====================================================> - 'ja' => [ - 'name' => 'Japanese', - 'script' => 'Jpan', - 'dir' => 'ltr', - 'native' => '日本語', - ], - 'jmc' => [ - 'name' => 'Machame', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kimachame', - ], - 'jv' => [ - 'name' => 'Javanese (Latin)', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Basa Jawa', - ], - 'jv-Java' => [ - 'name' => 'Javanese (Javanese)', - 'script' => 'Java', - 'dir' => 'ltr', - 'native' => 'ꦧꦱꦗꦮ', + 'ja' => [ + 'name' => 'Japanese', + 'script' => 'Jpan', + 'dir' => 'ltr', + 'native' => '日本語', + 'regional' => 'ja_JP', + ], + 'jmc' => [ + 'name' => 'Machame', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kimachame', + 'regional' => '', + ], + 'jv' => [ + 'name' => 'Javanese (Latin)', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Basa Jawa', + 'regional' => '', + ], + 'jv-Java' => [ + 'name' => 'Javanese (Javanese)', + 'script' => 'Java', + 'dir' => 'ltr', + 'native' => 'ꦧꦱꦗꦮ', + 'regional' => '', ], // K //====================================================> - 'ka' => [ - 'name' => 'Georgian', - 'script' => 'Geor', - 'dir' => 'ltr', - 'native' => 'ქართული', - ], - 'kab' => [ - 'name' => 'Kabyle', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Taqbaylit', - ], - 'kaj' => [ - 'name' => 'Jju', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kaje', - ], - 'kam' => [ - 'name' => 'Kamba', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kikamba', - ], - 'kcg' => [ - 'name' => 'Tyap', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Katab', - ], - 'kde' => [ - 'name' => 'Makonde', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Chimakonde', - ], - 'kea' => [ - 'name' => 'Kabuverdianu', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kabuverdianu', - ], - 'kg' => [ - 'name' => 'Kongo', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kikongo', - ], - 'khq' => [ - 'name' => 'Koyra Chiini', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Koyra ciini', - ], - 'ki' => [ - 'name' => 'Kikuyu', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Gikuyu', - ], - 'kj' => [ - 'name' => 'Kuanyama', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kwanyama', - ], - 'kk' => [ - 'name' => 'Kazakh', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Қазақ тілі', - ], - 'kl' => [ - 'name' => 'Kalaallisut', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kalaallisut', - ], - 'kln' => [ - 'name' => 'Kalenjin', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kalenjin', - ], - 'km' => [ - 'name' => 'Khmer', - 'script' => 'Khmr', - 'dir' => 'ltr', - 'native' => 'ភាសាខ្មែរ', - ], - 'kn' => [ - 'name' => 'Kannada', - 'script' => 'Knda', - 'dir' => 'ltr', - 'native' => 'ಕನ್ನಡ', - ], - 'ko' => [ - 'name' => 'Korean', - 'script' => 'Hang', - 'dir' => 'ltr', - 'native' => '한국어', - ], - 'kok' => [ - 'name' => 'Konkani', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'कोंकणी', - ], - 'kr' => [ - 'name' => 'Kanuri', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kanuri', - ], - 'ks' => [ - 'name' => 'Kashmiri (Arabic)', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'کأشُر', - ], - 'ks-Deva' => [ - 'name' => 'Kashmiri (Devaganari)', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'कॉशुर', - ], - 'ksb' => [ - 'name' => 'Shambala', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kishambaa', - ], - 'ksf' => [ - 'name' => 'Bafia', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Rikpa', - ], - 'ksh' => [ - 'name' => 'Kölsch', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kölsch', - ], - 'ku' => [ - 'name' => 'Kurdish', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'کوردی', - ], - 'kv' => [ - 'name' => 'Komi', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Коми кыв', - ], - 'kw' => [ - 'name' => 'Cornish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kernewek', - ], - 'ky' => [ - 'name' => 'Kyrgyz', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Кыргыз', + 'ka' => [ + 'name' => 'Georgian', + 'script' => 'Geor', + 'dir' => 'ltr', + 'native' => 'ქართული', + 'regional' => 'ka_GE', + ], + 'kab' => [ + 'name' => 'Kabyle', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Taqbaylit', + 'regional' => 'kab_DZ', + ], + 'kaj' => [ + 'name' => 'Jju', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kaje', + 'regional' => '', + ], + 'kam' => [ + 'name' => 'Kamba', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kikamba', + 'regional' => '', + ], + 'kcg' => [ + 'name' => 'Tyap', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Katab', + 'regional' => '', + ], + 'kde' => [ + 'name' => 'Makonde', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Chimakonde', + 'regional' => '', + ], + 'kea' => [ + 'name' => 'Kabuverdianu', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kabuverdianu', + 'regional' => '', + ], + 'kg' => [ + 'name' => 'Kongo', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kikongo', + 'regional' => '', + ], + 'khq' => [ + 'name' => 'Koyra Chiini', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Koyra ciini', + 'regional' => '', + ], + 'ki' => [ + 'name' => 'Kikuyu', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Gikuyu', + 'regional' => '', + ], + 'kj' => [ + 'name' => 'Kuanyama', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kwanyama', + 'regional' => '', + ], + 'kk' => [ + 'name' => 'Kazakh', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Қазақ тілі', + 'regional' => 'kk_KZ', + ], + 'kl' => [ + 'name' => 'Kalaallisut', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kalaallisut', + 'regional' => 'kl_GL', + ], + 'kln' => [ + 'name' => 'Kalenjin', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kalenjin', + 'regional' => '', + ], + 'km' => [ + 'name' => 'Khmer', + 'script' => 'Khmr', + 'dir' => 'ltr', + 'native' => 'ភាសាខ្មែរ', + 'regional' => 'km_KH', + ], + 'kn' => [ + 'name' => 'Kannada', + 'script' => 'Knda', + 'dir' => 'ltr', + 'native' => 'ಕನ್ನಡ', + 'regional' => 'kn_IN', + ], + 'ko' => [ + 'name' => 'Korean', + 'script' => 'Hang', + 'dir' => 'ltr', + 'native' => '한국어', + 'regional' => 'ko_KR', + ], + 'kok' => [ + 'name' => 'Konkani', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'कोंकणी', + 'regional' => 'kok_IN', + ], + 'kr' => [ + 'name' => 'Kanuri', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kanuri', + 'regional' => '', + ], + 'ks' => [ + 'name' => 'Kashmiri (Arabic)', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'کأشُر', + 'regional' => 'ks_IN', + ], + 'ks-Deva' => [ + 'name' => 'Kashmiri (Devaganari)', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'कॉशुर', + 'regional' => 'ks_IN', + ], + 'ksb' => [ + 'name' => 'Shambala', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kishambaa', + 'regional' => '', + ], + 'ksf' => [ + 'name' => 'Bafia', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Rikpa', + 'regional' => '', + ], + 'ksh' => [ + 'name' => 'Kölsch', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kölsch', + 'regional' => '', + ], + 'ku' => [ + 'name' => 'Kurdish', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'کوردی', + 'regional' => 'ku_TR', + ], + 'kv' => [ + 'name' => 'Komi', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Коми кыв', + 'regional' => '', + ], + 'kw' => [ + 'name' => 'Cornish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kernewek', + 'regional' => 'kw_GB', + ], + 'ky' => [ + 'name' => 'Kyrgyz', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Кыргыз', + 'regional' => 'ky_KG', ], // L //====================================================> - 'la' => [ - 'name' => 'Latin', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Latine', - ], - 'lag' => [ - 'name' => 'Langi', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kɨlaangi', - ], - 'lah' => [ - 'name' => 'Lahnda', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Lahnda', - ], - 'lb' => [ - 'name' => 'Luxembourgish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Lëtzebuergesch', - ], - 'lg' => [ - 'name' => 'Ganda', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Luganda', - ], - 'li' => [ - 'name' => 'Limburgish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Limburgs', - ], - 'ln' => [ - 'name' => 'Lingala', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Lingála', - ], - 'lo' => [ - 'name' => 'Lao', - 'script' => 'Laoo', - 'dir' => 'ltr', - 'native' => 'ລາວ', - ], - 'lt' => [ - 'name' => 'Lithuanian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Lietuvių', - ], - 'lu' => [ - 'name' => 'Luba-Katanga', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Tshiluba', - ], - 'luo' => [ - 'name' => 'Luo', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Dholuo', - ], - 'luy' => [ - 'name' => 'Oluluyia', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Luluhia', - ], - 'lv' => [ - 'name' => 'Latvian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Latviešu', + 'la' => [ + 'name' => 'Latin', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Latine', + 'regional' => '', + ], + 'lag' => [ + 'name' => 'Langi', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kɨlaangi', + 'regional' => '', + ], + 'lah' => [ + 'name' => 'Lahnda', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Lahnda', + 'regional' => '', + ], + 'lb' => [ + 'name' => 'Luxembourgish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Lëtzebuergesch', + 'regional' => 'lb_LU', + ], + 'lg' => [ + 'name' => 'Ganda', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Luganda', + 'regional' => 'lg_UG', + ], + 'li' => [ + 'name' => 'Limburgish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Limburgs', + 'regional' => 'li_BE', + ], + 'ln' => [ + 'name' => 'Lingala', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Lingála', + 'regional' => '', + ], + 'lo' => [ + 'name' => 'Lao', + 'script' => 'Laoo', + 'dir' => 'ltr', + 'native' => 'ລາວ', + 'regional' => 'lo_LA', + ], + 'lt' => [ + 'name' => 'Lithuanian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Lietuvių', + 'regional' => 'lt_LT', + ], + 'lu' => [ + 'name' => 'Luba-Katanga', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Tshiluba', + 'regional' => '', + ], + 'luo' => [ + 'name' => 'Luo', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Dholuo', + 'regional' => '', + ], + 'luy' => [ + 'name' => 'Oluluyia', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Luluhia', + 'regional' => '', + ], + 'lv' => [ + 'name' => 'Latvian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Latviešu', + 'regional' => 'lv_LV', ], // M //====================================================> - 'mai' => [ - 'name' => 'Maithili', - 'script' => 'Tirh', - 'dir' => 'ltr', - 'native' => 'मैथिली', - ], - 'mas' => [ - 'name' => 'Masai', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ɔl-Maa', - ], - 'mer' => [ - 'name' => 'Kimîîru', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kĩmĩrũ', - ], - 'mfe' => [ - 'name' => 'Morisyen', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kreol morisien', - ], - 'mg' => [ - 'name' => 'Malagasy', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Malagasy', - ], - 'mgh' => [ - 'name' => 'Makhuwa-Meetto', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Makua', - ], - 'mh' => [ - 'name' => 'Marshallese', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kajin M̧ajeļ', - ], - 'mi' => [ - 'name' => 'Māori', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Māori', - ], - 'mk' => [ - 'name' => 'Macedonian', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Македонски', - ], - 'ml' => [ - 'name' => 'Malayalam', - 'script' => 'Mlym', - 'dir' => 'ltr', - 'native' => 'മലയാളം', - ], - 'mn' => [ - 'name' => 'Mongolian (Cyrillic)', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Монгол', - ], - 'mn-Mong' => [ - 'name' => 'Mongolian (Mongolian)', - 'script' => 'Mong', - 'dir' => 'rtl', - 'native' => 'ᠮᠣᠨᠭᠭᠣᠯ ᠬᠡᠯᠡ', - ], - 'mni' => [ - 'name' => 'Manipuri', - 'script' => 'Beng', - 'dir' => 'ltr', - 'native' => 'মৈতৈ', - ], - 'mr' => [ - 'name' => 'Marathi', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'मराठी', - ], - 'ms' => [ - 'name' => 'Malay', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Bahasa Melayu', - ], - 'mt' => [ - 'name' => 'Maltese', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Malti', - ], - 'mtr' => [ - 'name' => 'Mewari', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Mewari', - ], - 'mua' => [ - 'name' => 'Mundang', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Mundang', - ], - 'my' => [ - 'name' => 'Burmese', - 'script' => 'Mymr', - 'dir' => 'ltr', - 'native' => 'မြန်မာဘာသာ', + 'mai' => [ + 'name' => 'Maithili', + 'script' => 'Tirh', + 'dir' => 'ltr', + 'native' => 'मैथिली', + 'regional' => 'mai_IN', + ], + 'mas' => [ + 'name' => 'Masai', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ɔl-Maa', + 'regional' => '', + ], + 'mer' => [ + 'name' => 'Kimîîru', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kĩmĩrũ', + 'regional' => '', + ], + 'mfe' => [ + 'name' => 'Morisyen', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kreol morisien', + 'regional' => '', + ], + 'mg' => [ + 'name' => 'Malagasy', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Malagasy', + 'regional' => 'mg_MG', + ], + 'mgh' => [ + 'name' => 'Makhuwa-Meetto', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Makua', + 'regional' => '', + ], + 'mh' => [ + 'name' => 'Marshallese', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kajin M̧ajeļ', + 'regional' => 'mh_MH', + ], + 'mi' => [ + 'name' => 'Māori', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Māori', + 'regional' => 'mi_NZ', + ], + 'mk' => [ + 'name' => 'Macedonian', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Македонски', + 'regional' => 'mk_MK', + ], + 'ml' => [ + 'name' => 'Malayalam', + 'script' => 'Mlym', + 'dir' => 'ltr', + 'native' => 'മലയാളം', + 'regional' => 'ml_IN', + ], + 'mn' => [ + 'name' => 'Mongolian (Cyrillic)', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Монгол', + 'regional' => 'mn_MN', + ], + 'mn-Mong' => [ + 'name' => 'Mongolian (Mongolian)', + 'script' => 'Mong', + 'dir' => 'rtl', + 'native' => 'ᠮᠣᠨᠭᠭᠣᠯ ᠬᠡᠯᠡ', + 'regional' => 'mn_MN', + ], + 'mni' => [ + 'name' => 'Manipuri', + 'script' => 'Beng', + 'dir' => 'ltr', + 'native' => 'মৈতৈ', + 'regional' => 'mni_IN', + ], + 'mr' => [ + 'name' => 'Marathi', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'मराठी', + 'regional' => 'mr_IN', + ], + 'ms' => [ + 'name' => 'Malay', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Bahasa Melayu', + 'regional' => 'ms_MY', + ], + 'mt' => [ + 'name' => 'Maltese', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Malti', + 'regional' => 'mt_MT', + ], + 'mtr' => [ + 'name' => 'Mewari', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Mewari', + 'regional' => '', + ], + 'mua' => [ + 'name' => 'Mundang', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Mundang', + 'regional' => '', + ], + 'my' => [ + 'name' => 'Burmese', + 'script' => 'Mymr', + 'dir' => 'ltr', + 'native' => 'မြန်မာဘာသာ', + 'regional' => 'my_MM', ], // N //====================================================> - 'na' => [ - 'name' => 'Nauru', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ekakairũ Naoero', - ], - 'naq' => [ - 'name' => 'Nama', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Khoekhoegowab', - ], - 'nb' => [ - 'name' => 'Norwegian Bokmål', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Bokmål', - ], - 'nd' => [ - 'name' => 'North Ndebele', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'IsiNdebele', - ], - 'nds' => [ - 'name' => 'Low German', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Plattdüütsch', - ], - 'ne' => [ - 'name' => 'Nepali', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'नेपाली', - ], - 'ng' => [ - 'name' => 'Ndonga', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'OshiNdonga', - ], - 'nl' => [ - 'name' => 'Dutch', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Nederlands', - ], - 'nmg' => [ - 'name' => 'Kwasio', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ngumba', - ], - 'nn' => [ - 'name' => 'Norwegian Nynorsk', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Nynorsk', - ], - 'nr' => [ - 'name' => 'South Ndebele', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'IsiNdebele', - ], - 'nso' => [ - 'name' => 'Northern Sotho', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Sesotho sa Leboa', - ], - 'nus' => [ - 'name' => 'Nuer', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Thok Nath', - ], - 'nv' => [ - 'name' => 'Navajo', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Diné bizaad', - ], - 'ny' => [ - 'name' => 'Chewa', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'ChiCheŵa', - ], - 'nyn' => [ - 'name' => 'Nyankole', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Runyankore', + 'na' => [ + 'name' => 'Nauru', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ekakairũ Naoero', + 'regional' => '', + ], + 'naq' => [ + 'name' => 'Nama', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Khoekhoegowab', + 'regional' => '', + ], + 'nb' => [ + 'name' => 'Norwegian Bokmål', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Bokmål', + 'regional' => 'nb_NO', + ], + 'nd' => [ + 'name' => 'North Ndebele', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'IsiNdebele', + 'regional' => '', + ], + 'nds' => [ + 'name' => 'Low German', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Plattdüütsch', + 'regional' => 'nds_DE', + ], + 'ne' => [ + 'name' => 'Nepali', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'नेपाली', + 'regional' => '', + ], + 'ng' => [ + 'name' => 'Ndonga', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'OshiNdonga', + 'regional' => '', + ], + 'nl' => [ + 'name' => 'Dutch', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Nederlands', + 'regional' => 'nl_NL', + ], + 'nmg' => [ + 'name' => 'Kwasio', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ngumba', + 'regional' => '', + ], + 'nn' => [ + 'name' => 'Norwegian Nynorsk', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Nynorsk', + 'regional' => 'nn_NO', + ], + 'nr' => [ + 'name' => 'South Ndebele', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'IsiNdebele', + 'regional' => 'nr_ZA', + ], + 'nso' => [ + 'name' => 'Northern Sotho', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Sesotho sa Leboa', + 'regional' => 'nso_ZA', + ], + 'nus' => [ + 'name' => 'Nuer', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Thok Nath', + 'regional' => '', + ], + 'nv' => [ + 'name' => 'Navajo', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Diné bizaad', + 'regional' => '', + ], + 'ny' => [ + 'name' => 'Chewa', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'ChiCheŵa', + 'regional' => '', + ], + 'nyn' => [ + 'name' => 'Nyankole', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Runyankore', + 'regional' => '', ], // O //====================================================> - 'oc' => [ - 'name' => 'Occitan', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Occitan', - ], - 'oj' => [ - 'name' => 'Ojibwa', - 'script' => 'Cans', - 'dir' => 'ltr', - 'native' => 'ᐊᓂᔑᓈᐯᒧᐎᓐ', - ], - 'om' => [ - 'name' => 'Oromo', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Oromoo', - ], - 'or' => [ - 'name' => 'Oriya', - 'script' => 'Orya', - 'dir' => 'ltr', - 'native' => 'ଓଡ଼ିଆ', - ], - 'os' => [ - 'name' => 'Ossetic', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Ирон', + 'oc' => [ + 'name' => 'Occitan', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Occitan', + 'regional' => 'oc_FR', + ], + 'oj' => [ + 'name' => 'Ojibwa', + 'script' => 'Cans', + 'dir' => 'ltr', + 'native' => 'ᐊᓂᔑᓈᐯᒧᐎᓐ', + 'regional' => '', + ], + 'om' => [ + 'name' => 'Oromo', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Oromoo', + 'regional' => 'om_ET', + ], + 'or' => [ + 'name' => 'Oriya', + 'script' => 'Orya', + 'dir' => 'ltr', + 'native' => 'ଓଡ଼ିଆ', + 'regional' => 'or_IN', + ], + 'os' => [ + 'name' => 'Ossetic', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Ирон', + 'regional' => 'os_RU', ], // P //====================================================> - 'pa' => [ - 'name' => 'Punjabi (Gurmukhi)', - 'script' => 'Guru', - 'dir' => 'ltr', - 'native' => 'ਪੰਜਾਬੀ', - ], - 'pa-Arab' => [ - 'name' => 'Punjabi (Arabic)', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'پنجاب', - ], - 'pi' => [ - 'name' => 'Pahari-Potwari', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Pāli', - ], - 'pl' => [ - 'name' => 'Polish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Polski', - ], - 'pra' => [ - 'name' => 'Prakrit', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'प्राकृत', - ], - 'ps' => [ - 'name' => 'Pashto', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'پښتو', - ], - 'pt' => [ - 'name' => 'Portuguese', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Português', - ], - 'pt-BR' => [ - 'name' => 'Brazilian Portuguese', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Português do Brasil', + 'pa' => [ + 'name' => 'Punjabi (Gurmukhi)', + 'script' => 'Guru', + 'dir' => 'ltr', + 'native' => 'ਪੰਜਾਬੀ', + 'regional' => 'pa_IN', + ], + 'pa-Arab' => [ + 'name' => 'Punjabi (Arabic)', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'پنجاب', + 'regional' => 'pa_IN', + ], + 'pi' => [ + 'name' => 'Pahari-Potwari', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Pāli', + 'regional' => '', + ], + 'pl' => [ + 'name' => 'Polish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Polski', + 'regional' => 'pl_PL', + ], + 'pra' => [ + 'name' => 'Prakrit', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'प्राकृत', + 'regional' => '', + ], + 'ps' => [ + 'name' => 'Pashto', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'پښتو', + 'regional' => 'ps_AF', + ], + 'pt' => [ + 'name' => 'Portuguese', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Português', + 'regional' => 'pt_PT', + ], + 'pt-BR' => [ + 'name' => 'Brazilian Portuguese', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Português do Brasil', + 'regional' => 'pt_BR', ], // Q //====================================================> - 'qu' => [ - 'name' => 'Quechua', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Runa Simi', + 'qu' => [ + 'name' => 'Quechua', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Runa Simi', + 'regional' => '', ], // R //====================================================> - 'raj' => [ - 'name' => 'Rajasthani', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'राजस्थानी', - ], - 'ro' => [ - 'name' => 'Romanian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Română', - ], - 'rof' => [ - 'name' => 'Rombo', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kihorombo', - ], - 'rm' => [ - 'name' => 'Romansh', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Rumantsch', - ], - 'rn' => [ - 'name' => 'Rundi', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ikirundi', - ], - 'ru' => [ - 'name' => 'Russian', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Русский', - ], - 'rw' => [ - 'name' => 'Kinyarwanda', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kinyarwanda', - ], - 'rwk' => [ - 'name' => 'Rwa', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kiruwa', + 'raj' => [ + 'name' => 'Rajasthani', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'राजस्थानी', + 'regional' => '', + ], + 'ro' => [ + 'name' => 'Romanian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Română', + 'regional' => 'ro_RO', + ], + 'rof' => [ + 'name' => 'Rombo', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kihorombo', + 'regional' => '', + ], + 'rm' => [ + 'name' => 'Romansh', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Rumantsch', + 'regional' => '', + ], + 'rn' => [ + 'name' => 'Rundi', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ikirundi', + 'regional' => '', + ], + 'ru' => [ + 'name' => 'Russian', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Русский', + 'regional' => 'ru_RU', + ], + 'rw' => [ + 'name' => 'Kinyarwanda', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kinyarwanda', + 'regional' => 'rw_RW', + ], + 'rwk' => [ + 'name' => 'Rwa', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kiruwa', + 'regional' => '', ], // S //====================================================> - 'sa' => [ - 'name' => 'Sanskrit', - 'script' => 'Deva', - 'dir' => 'ltr', - 'native' => 'संस्कृतम्', - ], - 'sah' => [ - 'name' => 'Yakut', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Саха тыла', - ], - 'saq' => [ - 'name' => 'Samburu', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kisampur', - ], - 'sbp' => [ - 'name' => 'Sileibi', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Ishisangu', - ], - 'sc' => [ - 'name' => 'Sardinian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Sardu', - ], - 'sd' => [ - 'name' => 'Sindhi', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'سنڌي', - ], - 'se' => [ - 'name' => 'Northern Sami', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Davvisámegiella', - ], - 'seh' => [ - 'name' => 'Sena', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Sena', - ], - 'ses' => [ - 'name' => 'Songhay', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Koyraboro senni', - ], - 'sg' => [ - 'name' => 'Sango', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Sängö', - ], - 'sh' => [ - 'name' => 'Serbo-Croatian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Srpskohrvatski', - ], - 'shi' => [ - 'name' => 'Tachelhit (Latin)', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Tashelhit', - ], - 'shi-Tfng' => [ - 'name' => 'Tachelhit (Tifinagh)', - 'script' => 'Tfng', - 'dir' => 'rtl', - 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', - ], - 'si' => [ - 'name' => 'Sinhala', - 'script' => 'Sinh', - 'dir' => 'ltr', - 'native' => 'සිංහල', - ], - 'sid' => [ - 'name' => 'Sidamo', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Sidaamu Afo', - ], - 'sk' => [ - 'name' => 'Slovak', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Slovenčina', - ], - 'sl' => [ - 'name' => 'Slovene', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Slovenščina', - ], - 'sm' => [ - 'name' => 'Samoan', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Gagana fa’a Sāmoa', - ], - 'sn' => [ - 'name' => 'Shona', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'ChiShona', - ], - 'so' => [ - 'name' => 'Somali', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Soomaali', - ], - 'sq' => [ - 'name' => 'Albanian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Shqip', - ], - 'sr' => [ - 'name' => 'Serbian (Cyrillic)', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Српски', - ], - 'sr-Latin' => [ - 'name' => 'Serbian (Latin)', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Srpski', - ], - 'ss' => [ - 'name' => 'Swati', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Siswati', - ], - 'ssy' => [ - 'name' => 'Saho', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Saho', - ], - 'st' => [ - 'name' => 'Southern Sotho', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Sesotho', - ], - 'su' => [ - 'name' => 'Sundanese', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Basa Sunda', - ], - 'sv' => [ - 'name' => 'Swedish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Svenska', - ], - 'sw' => [ - 'name' => 'Swahili', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kiswahili', - ], - 'swc' => [ - 'name' => 'Congo Swahili', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kiswahili ya Kongo', + 'sa' => [ + 'name' => 'Sanskrit', + 'script' => 'Deva', + 'dir' => 'ltr', + 'native' => 'संस्कृतम्', + 'regional' => 'sa_IN', + ], + 'sah' => [ + 'name' => 'Yakut', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Саха тыла', + 'regional' => '', + ], + 'saq' => [ + 'name' => 'Samburu', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kisampur', + 'regional' => '', + ], + 'sbp' => [ + 'name' => 'Sileibi', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Ishisangu', + 'regional' => '', + ], + 'sc' => [ + 'name' => 'Sardinian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Sardu', + 'regional' => 'sc_IT', + ], + 'sd' => [ + 'name' => 'Sindhi', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'سنڌي', + 'regional' => 'sd_IN', + ], + 'se' => [ + 'name' => 'Northern Sami', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Davvisámegiella', + 'regional' => 'se_NO', + ], + 'seh' => [ + 'name' => 'Sena', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Sena', + 'regional' => '', + ], + 'ses' => [ + 'name' => 'Songhay', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Koyraboro senni', + 'regional' => '', + ], + 'sg' => [ + 'name' => 'Sango', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Sängö', + 'regional' => '', + ], + 'sh' => [ + 'name' => 'Serbo-Croatian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Srpskohrvatski', + 'regional' => '', + ], + 'shi' => [ + 'name' => 'Tachelhit (Latin)', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Tashelhit', + 'regional' => '', + ], + 'shi-Tfng' => [ + 'name' => 'Tachelhit (Tifinagh)', + 'script' => 'Tfng', + 'dir' => 'rtl', + 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', + 'regional' => '', + ], + 'si' => [ + 'name' => 'Sinhala', + 'script' => 'Sinh', + 'dir' => 'ltr', + 'native' => 'සිංහල', + 'regional' => 'si_LK', + ], + 'sid' => [ + 'name' => 'Sidamo', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Sidaamu Afo', + 'regional' => 'sid_ET', + ], + 'sk' => [ + 'name' => 'Slovak', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Slovenčina', + 'regional' => 'sk_SK', + ], + 'sl' => [ + 'name' => 'Slovene', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Slovenščina', + 'regional' => 'sl_SI', + ], + 'sm' => [ + 'name' => 'Samoan', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Gagana fa’a Sāmoa', + 'regional' => '', + ], + 'sn' => [ + 'name' => 'Shona', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'ChiShona', + 'regional' => '', + ], + 'so' => [ + 'name' => 'Somali', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Soomaali', + 'regional' => 'so_SO', + ], + 'sq' => [ + 'name' => 'Albanian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Shqip', + 'regional' => 'sq_AL', + ], + 'sr' => [ + 'name' => 'Serbian (Cyrillic)', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Српски', + 'regional' => 'sr_RS', + ], + 'sr-Latin' => [ + 'name' => 'Serbian (Latin)', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Srpski', + 'regional' => 'sr_RS', + ], + 'ss' => [ + 'name' => 'Swati', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Siswati', + 'regional' => 'ss_ZA', + ], + 'ssy' => [ + 'name' => 'Saho', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Saho', + 'regional' => '', + ], + 'st' => [ + 'name' => 'Southern Sotho', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Sesotho', + 'regional' => 'st_ZA', + ], + 'su' => [ + 'name' => 'Sundanese', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Basa Sunda', + 'regional' => '', + ], + 'sv' => [ + 'name' => 'Swedish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Svenska', + 'regional' => 'sv_FI', + ], + 'sw' => [ + 'name' => 'Swahili', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kiswahili', + 'regional' => 'sw_KE', + ], + 'swc' => [ + 'name' => 'Congo Swahili', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kiswahili ya Kongo', + 'regional' => '', ], // T //====================================================> - 'ta' => [ - 'name' => 'Tamil', - 'script' => 'Taml', - 'dir' => 'ltr', - 'native' => 'தமிழ்', - ], - 'te' => [ - 'name' => 'Telugu', - 'script' => 'Telu', - 'dir' => 'ltr', - 'native' => 'తెలుగు', - ], - 'teo' => [ - 'name' => 'Teso', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Kiteso', - ], - 'tg' => [ - 'name' => 'Tajik (Cyrillic)', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Тоҷикӣ', - ], - 'tg-Arab' => [ - 'name' => 'Tajik (Arabic)', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'تاجیکی', - ], - 'tg-Latin' => [ - 'name' => 'Tajik (Latin)', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Tojikī', - ], - 'th' => [ - 'name' => 'Thai', - 'script' => 'Thai', - 'dir' => 'ltr', - 'native' => 'ไทย', - ], - 'ti' => [ - 'name' => 'Tigrinya', - 'script' => 'Ethi', - 'dir' => 'ltr', - 'native' => 'ትግርኛ', - ], - 'tig' => [ - 'name' => 'Tigre', - 'script' => 'Ethi', - 'dir' => 'ltr', - 'native' => 'ትግረ', - ], - 'tk' => [ - 'name' => 'Turkmen', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Түркменче', - ], - 'tl' => [ - 'name' => 'Tagalog', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Tagalog', - ], - 'tn' => [ - 'name' => 'Tswana', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Setswana', - ], - 'to' => [ - 'name' => 'Tongan', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Lea fakatonga', - ], - 'tr' => [ - 'name' => 'Turkish', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Türkçe', - ], - 'trv' => [ - 'name' => 'Taroko', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Seediq', - ], - 'ts' => [ - 'name' => 'Tsonga', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Xitsonga', - ], - 'tt' => [ - 'name' => 'Tatar', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Татар теле', - ], - 'tw' => [ - 'name' => 'Twi', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Twi', - ], - 'twq' => [ - 'name' => 'Tasawaq', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Tasawaq senni', - ], - 'ty' => [ - 'name' => 'Tahitian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Reo Māohi', - ], - 'tzm' => [ - 'name' => 'Central Atlas Tamazight (Tifinagh)', - 'script' => 'Tfng', - 'dir' => 'rtl', - 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', - ], - 'tzm-Latin' => [ - 'name' => 'Central Atlas Tamazight (Latin)', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Tamazight', + 'ta' => [ + 'name' => 'Tamil', + 'script' => 'Taml', + 'dir' => 'ltr', + 'native' => 'தமிழ்', + 'regional' => 'ta_IN', + ], + 'te' => [ + 'name' => 'Telugu', + 'script' => 'Telu', + 'dir' => 'ltr', + 'native' => 'తెలుగు', + 'regional' => 'te_IN', + ], + 'teo' => [ + 'name' => 'Teso', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Kiteso', + 'regional' => '', + ], + 'tg' => [ + 'name' => 'Tajik (Cyrillic)', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Тоҷикӣ', + 'regional' => 'tg_TJ', + ], + 'tg-Arab' => [ + 'name' => 'Tajik (Arabic)', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'تاجیکی', + 'regional' => 'tg_TJ', + ], + 'tg-Latin' => [ + 'name' => 'Tajik (Latin)', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Tojikī', + 'regional' => 'tg_TJ', + ], + 'th' => [ + 'name' => 'Thai', + 'script' => 'Thai', + 'dir' => 'ltr', + 'native' => 'ไทย', + 'regional' => 'th_TH', + ], + 'ti' => [ + 'name' => 'Tigrinya', + 'script' => 'Ethi', + 'dir' => 'ltr', + 'native' => 'ትግርኛ', + 'regional' => 'ti_ET', + ], + 'tig' => [ + 'name' => 'Tigre', + 'script' => 'Ethi', + 'dir' => 'ltr', + 'native' => 'ትግረ', + 'regional' => 'tig_ER', + ], + 'tk' => [ + 'name' => 'Turkmen', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Түркменче', + 'regional' => 'tk_TM', + ], + 'tl' => [ + 'name' => 'Tagalog', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Tagalog', + 'regional' => 'tl_PH', + ], + 'tn' => [ + 'name' => 'Tswana', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Setswana', + 'regional' => 'tn_ZA', + ], + 'to' => [ + 'name' => 'Tongan', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Lea fakatonga', + 'regional' => '', + ], + 'tr' => [ + 'name' => 'Turkish', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Türkçe', + 'regional' => 'tr_TR', + ], + 'trv' => [ + 'name' => 'Taroko', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Seediq', + 'regional' => '', + ], + 'ts' => [ + 'name' => 'Tsonga', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Xitsonga', + 'regional' => 'ts_ZA', + ], + 'tt' => [ + 'name' => 'Tatar', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Татар теле', + 'regional' => 'tt_RU', + ], + 'tw' => [ + 'name' => 'Twi', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Twi', + 'regional' => '', + ], + 'twq' => [ + 'name' => 'Tasawaq', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Tasawaq senni', + 'regional' => '', + ], + 'ty' => [ + 'name' => 'Tahitian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Reo Māohi', + 'regional' => '', + ], + 'tzm' => [ + 'name' => 'Central Atlas Tamazight (Tifinagh)', + 'script' => 'Tfng', + 'dir' => 'rtl', + 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', + 'regional' => '', + ], + 'tzm-Latin' => [ + 'name' => 'Central Atlas Tamazight (Latin)', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Tamazight', + 'regional' => '', ], // U //====================================================> - 'ug' => [ - 'name' => 'Uyghur', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'ئۇيغۇرچە', - ], - 'uk' => [ - 'name' => 'Ukrainian', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Українська', - ], - 'ur' => [ - 'name' => 'Urdu', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'اردو', - ], - 'uz' => [ - 'name' => 'Uzbek (Cyrillic)', - 'script' => 'Cyrl', - 'dir' => 'ltr', - 'native' => 'Ўзбек', - ], - 'uz-Arab' => [ - 'name' => 'Uzbek (Arabic)', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'اۉزبېک', - ], - 'uz-Latin' => [ - 'name' => 'Uzbek (Latin)', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Oʼzbekcha', + 'ug' => [ + 'name' => 'Uyghur', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'ئۇيغۇرچە', + 'regional' => 'ug_CN', + ], + 'uk' => [ + 'name' => 'Ukrainian', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Українська', + 'regional' => 'uk_UA', + ], + 'ur' => [ + 'name' => 'Urdu', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'اردو', + 'regional' => 'ur_PK', + ], + 'uz' => [ + 'name' => 'Uzbek (Cyrillic)', + 'script' => 'Cyrl', + 'dir' => 'ltr', + 'native' => 'Ўзбек', + 'regional' => 'uz_UZ', + ], + 'uz-Arab' => [ + 'name' => 'Uzbek (Arabic)', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'اۉزبېک', + 'regional' => '', + ], + 'uz-Latin' => [ + 'name' => 'Uzbek (Latin)', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Oʼzbekcha', + 'regional' => 'uz_UZ', ], // V //====================================================> - 'vai' => [ - 'name' => 'Vai (Vai)', - 'script' => 'Vaii', - 'dir' => 'ltr', - 'native' => 'ꕙꔤ', - ], - 'vai-Latin' => [ - 'name' => 'Vai (Latin)', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Viyamíĩ', - ], - 've' => [ - 'name' => 'Venda', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Tshivenḓa', - ], - 'vi' => [ - 'name' => 'Vietnamese', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Tiếng Việt', - ], - 'vo' => [ - 'name' => 'Volapük', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Volapük', + 'vai' => [ + 'name' => 'Vai (Vai)', + 'script' => 'Vaii', + 'dir' => 'ltr', + 'native' => 'ꕙꔤ', + 'regional' => '', + ], + 'vai-Latin' => [ + 'name' => 'Vai (Latin)', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Viyamíĩ', + 'regional' => '', + ], + 've' => [ + 'name' => 'Venda', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Tshivenḓa', + 'regional' => 've_ZA', + ], + 'vi' => [ + 'name' => 'Vietnamese', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Tiếng Việt', + 'regional' => 'vi_VN', + ], + 'vo' => [ + 'name' => 'Volapük', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Volapük', + 'regional' => '', ], // W //====================================================> - 'wa' => [ - 'name' => 'Walloon', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Walon', - ], - 'wae' => [ - 'name' => 'Walser', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Walser', - ], - 'wal' => [ - 'name' => 'Wolaytta', - 'script' => 'Ethi', - 'dir' => 'ltr', - 'native' => 'ወላይታቱ', - ], - 'wen' => [ - 'name' => 'Sorbian', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Wendic', - ], - 'wo' => [ - 'name' => 'Wolof', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Wolof', + 'wa' => [ + 'name' => 'Walloon', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Walon', + 'regional' => 'wa_BE', + ], + 'wae' => [ + 'name' => 'Walser', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Walser', + 'regional' => 'wae_CH', + ], + 'wal' => [ + 'name' => 'Wolaytta', + 'script' => 'Ethi', + 'dir' => 'ltr', + 'native' => 'ወላይታቱ', + 'regional' => 'wal_ET', + ], + 'wen' => [ + 'name' => 'Sorbian', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Wendic', + 'regional' => '', + ], + 'wo' => [ + 'name' => 'Wolof', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Wolof', + 'regional' => 'wo_SN', ], // X //====================================================> - 'xh' => [ - 'name' => 'Xhosa', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'IsiXhosa', - ], - 'xog' => [ - 'name' => 'Soga', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Olusoga', + 'xh' => [ + 'name' => 'Xhosa', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'IsiXhosa', + 'regional' => 'xh_ZA', + ], + 'xog' => [ + 'name' => 'Soga', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Olusoga', + 'regional' => '', ], // Y //====================================================> - 'yav' => [ - 'name' => 'Yangben', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Nuasue', - ], - 'yi' => [ - 'name' => 'Yiddish', - 'script' => 'Hebr', - 'dir' => 'rtl', - 'native' => 'ייִדיש', - ], - 'yo' => [ - 'name' => 'Yoruba', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'Èdè Yorùbá', - ], - 'yue' => [ - 'name' => 'Yue', - 'script' => 'Hant', - 'dir' => 'ltr', - 'native' => '廣州話', + 'yav' => [ + 'name' => 'Yangben', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Nuasue', + 'regional' => '', + ], + 'yi' => [ + 'name' => 'Yiddish', + 'script' => 'Hebr', + 'dir' => 'rtl', + 'native' => 'ייִדיש', + 'regional' => 'yi_US', + ], + 'yo' => [ + 'name' => 'Yoruba', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'Èdè Yorùbá', + 'regional' => 'yo_NG', + ], + 'yue' => [ + 'name' => 'Yue', + 'script' => 'Hant', + 'dir' => 'ltr', + 'native' => '廣州話', + 'regional' => 'yue_HK', ], // Z //====================================================> - 'zh' => [ - 'name' => 'Chinese (Simplified)', - 'script' => 'Hans', - 'dir' => 'ltr', - 'native' => '简体中文', - ], - 'zh-Hant' => [ - 'name' => 'Chinese (Traditional)', - 'script' => 'Hant', - 'dir' => 'ltr', - 'native' => '繁體中文', - ], - 'zu' => [ - 'name' => 'Zulu', - 'script' => 'Latn', - 'dir' => 'ltr', - 'native' => 'IsiZulu', + 'zh' => [ + 'name' => 'Chinese (Simplified)', + 'script' => 'Hans', + 'dir' => 'ltr', + 'native' => '简体中文', + 'regional' => 'zh_CN', + ], + 'zh-Hant' => [ + 'name' => 'Chinese (Traditional)', + 'script' => 'Hant', + 'dir' => 'ltr', + 'native' => '繁體中文', + 'regional' => 'zh_CN', + ], + 'zu' => [ + 'name' => 'Zulu', + 'script' => 'Latn', + 'dir' => 'ltr', + 'native' => 'IsiZulu', + 'regional' => 'zu_ZA', ], ], ]; diff --git a/src/Contracts/LocalizationInterface.php b/src/Contracts/LocalizationInterface.php index 5683219..1b6e995 100644 --- a/src/Contracts/LocalizationInterface.php +++ b/src/Contracts/LocalizationInterface.php @@ -93,6 +93,13 @@ public function getCurrentLocaleDirection(); */ public function getCurrentLocaleNative(); + /** + * Returns current locale regional. + * + * @return string + */ + public function getCurrentLocaleRegional(); + /** * Set and return current locale. * diff --git a/src/Entities/Locale.php b/src/Entities/Locale.php index e67d67e..94374ca 100644 --- a/src/Entities/Locale.php +++ b/src/Entities/Locale.php @@ -51,6 +51,13 @@ class Locale implements Arrayable, Jsonable, JsonSerializable */ private $native; + /** + * Locale regional. + * + * @var string + */ + private $regional; + /** * Default locale. * @@ -75,6 +82,7 @@ public function __construct($key, array $data) $this->setScript($data['script']); $this->setDirection($data['dir']); $this->setNative($data['native']); + $this->setRegional(isset($data['regional']) ? $data['regional'] : ''); } /* ------------------------------------------------------------------------------------------------ @@ -210,6 +218,30 @@ private function setNative($native) return $this; } + /** + * Get locale regional. + * + * @return string + */ + public function regional() + { + return $this->regional; + } + + /** + * Set Regional. + * + * @param string $regional + * + * @return self + */ + private function setRegional($regional) + { + $this->regional = $regional; + + return $this; + } + /** * Check if it is a default locale. * @@ -232,6 +264,23 @@ private function setDefault() return $this; } + /* ------------------------------------------------------------------------------------------------ + | Main Functions + | ------------------------------------------------------------------------------------------------ + */ + /** + * Create Locale instance. + * + * @param string $key + * @param array $data + * + * @return self + */ + public static function make($key, array $data) + { + return new self($key, $data); + } + /* ------------------------------------------------------------------------------------------------ | Other Functions | ------------------------------------------------------------------------------------------------ @@ -244,11 +293,12 @@ private function setDefault() public function toArray() { return [ - 'key' => $this->key(), - 'name' => $this->name(), - 'script' => $this->script(), - 'dir' => $this->direction(), - 'native' => $this->native(), + 'key' => $this->key(), + 'name' => $this->name(), + 'script' => $this->script(), + 'dir' => $this->direction(), + 'native' => $this->native(), + 'regional' => $this->regional(), ]; } diff --git a/src/Entities/LocaleCollection.php b/src/Entities/LocaleCollection.php index 8c8afa7..af5aec9 100644 --- a/src/Entities/LocaleCollection.php +++ b/src/Entities/LocaleCollection.php @@ -103,7 +103,7 @@ public function loadFromArray(array $locales) $this->reset(); foreach ($locales as $key => $locale) { - $this->put($key, new Locale($key, $locale)); + $this->put($key, Locale::make($key, $locale)); } return $this; diff --git a/src/Localization.php b/src/Localization.php index bb6bbe9..c1cfc12 100644 --- a/src/Localization.php +++ b/src/Localization.php @@ -199,6 +199,16 @@ public function getCurrentLocaleNative() return $this->getCurrentLocaleEntity()->native(); } + /** + * Returns current locale regional. + * + * @return string + */ + public function getCurrentLocaleRegional() + { + return $this->getCurrentLocaleEntity()->regional(); + } + /** * Get all locales. * diff --git a/src/Utilities/LocalesManager.php b/src/Utilities/LocalesManager.php index 6bccdc8..d4392e7 100644 --- a/src/Utilities/LocalesManager.php +++ b/src/Utilities/LocalesManager.php @@ -113,6 +113,7 @@ public function setLocale($locale = null) } $this->app->setLocale($this->getCurrentLocale()); + $this->updateRegional(); return $locale; } @@ -371,4 +372,16 @@ private function filterLocales(array $supportedLocales) return in_array($locale->key(), $supportedLocales); }); } + + /** + * Update locale regional. + */ + private function updateRegional() + { + $currentLocale = $this->getCurrentLocaleEntity(); + + if ( ! empty($regional = $currentLocale->regional())) { + setlocale(LC_TIME, $regional . '.utf8'); + } + } } diff --git a/tests/Entities/LocaleTest.php b/tests/Entities/LocaleTest.php index c02e63e..fae2e76 100644 --- a/tests/Entities/LocaleTest.php +++ b/tests/Entities/LocaleTest.php @@ -29,9 +29,9 @@ public function setUp() public function tearDown() { - parent::tearDown(); - unset($this->locale); + + parent::tearDown(); } /* ------------------------------------------------------------------------------------------------ @@ -50,6 +50,8 @@ public function it_can_be_instantiated() $this->assertEquals('Latin', $this->locale->script()); $this->assertEquals('ltr', $this->locale->direction()); $this->assertEquals('English', $this->locale->native()); + $this->assertEquals('en_GB', $this->locale->regional()); + $this->assertTrue($this->locale->isDefault()); } @@ -96,33 +98,48 @@ public function it_can_convert_entity_to_json() | Other Functions | ------------------------------------------------------------------------------------------------ */ + /** + * Make a locale. + * + * @param string $key + * + * @return Locale + */ private function makeLocale($key) { - $data = $this->getLocale($key); - - return new Locale($key, $data); + return Locale::make($key, $this->getLocale($key)); } + /** + * Get locale data. + * + * @param string $key + * + * @return array + */ private function getLocale($key) { return array_get([ - 'ar' => [ - 'name' => 'Arabic', - 'script' => 'Arab', - 'dir' => 'rtl', - 'native' => 'العربية', + 'ar' => [ + 'name' => 'Arabic', + 'script' => 'Arab', + 'dir' => 'rtl', + 'native' => 'العربية', + 'regional' => 'ar_AE', ], - 'en' => [ - 'name' => 'English', - 'script' => 'Latin', - 'dir' => 'ltr', - 'native' => 'English', + 'en' => [ + 'name' => 'English', + 'script' => 'Latin', + 'dir' => 'ltr', + 'native' => 'English', + 'regional' => 'en_GB', ], - 'fr' => [ - 'name' => 'French', - 'script' => 'Latin', - 'dir' => 'ltr', - 'native' => 'Français', + 'fr' => [ + 'name' => 'French', + 'script' => 'Latin', + 'dir' => 'ltr', + 'native' => 'Français', + 'regional' => 'fr_FR', ], ], $key); } diff --git a/tests/LocalizationTest.php b/tests/LocalizationTest.php index e986a8e..315160f 100644 --- a/tests/LocalizationTest.php +++ b/tests/LocalizationTest.php @@ -428,6 +428,22 @@ public function it_can_get_current_locale_native() } } + /** @test */ + public function testGetCurrentLocaleRegional() + { + $locales = [ + 'en' => 'en_GB', + 'es' => 'es_ES', + 'fr' => 'fr_FR', + ]; + + foreach ($locales as $locale => $regional) { + $this->refreshApplication($locale); + + $this->assertEquals($regional, localization()->getCurrentLocaleRegional()); + } + } + /** @test */ public function it_can_create_url_from_uri() { From cf16be2e35206e6feaac62348f3702de8391c470 Mon Sep 17 00:00:00 2001 From: ARCANEDEV Date: Sun, 29 Nov 2015 19:32:41 +0000 Subject: [PATCH 2/2] Updating Tests --- tests/Entities/LocaleCollectionTest.php | 4 ++-- tests/Middleware/LocaleCookieRedirectTest.php | 14 -------------- tests/Middleware/LocaleSessionRedirectTest.php | 14 -------------- tests/Routing/RouterTest.php | 4 ++-- tests/Utilities/LocalesManagerTest.php | 4 ++-- tests/Utilities/NegotiatorTest.php | 4 ++-- tests/Utilities/UrlTest.php | 14 -------------- 7 files changed, 8 insertions(+), 50 deletions(-) diff --git a/tests/Entities/LocaleCollectionTest.php b/tests/Entities/LocaleCollectionTest.php index 090c014..e17d12b 100644 --- a/tests/Entities/LocaleCollectionTest.php +++ b/tests/Entities/LocaleCollectionTest.php @@ -32,9 +32,9 @@ public function setUp() public function tearDown() { - parent::tearDown(); + unset($this->locales); - unset($locales); + parent::tearDown(); } /* ------------------------------------------------------------------------------------------------ diff --git a/tests/Middleware/LocaleCookieRedirectTest.php b/tests/Middleware/LocaleCookieRedirectTest.php index f8557f5..8163692 100644 --- a/tests/Middleware/LocaleCookieRedirectTest.php +++ b/tests/Middleware/LocaleCookieRedirectTest.php @@ -12,20 +12,6 @@ */ class LocaleCookieRedirectTest extends TestCase { - /* ------------------------------------------------------------------------------------------------ - | Main Functions - | ------------------------------------------------------------------------------------------------ - */ - public function setUp() - { - parent::setUp(); - } - - public function tearDown() - { - parent::tearDown(); - } - /* ------------------------------------------------------------------------------------------------ | Test Functions | ------------------------------------------------------------------------------------------------ diff --git a/tests/Middleware/LocaleSessionRedirectTest.php b/tests/Middleware/LocaleSessionRedirectTest.php index 555df60..de337d5 100644 --- a/tests/Middleware/LocaleSessionRedirectTest.php +++ b/tests/Middleware/LocaleSessionRedirectTest.php @@ -12,20 +12,6 @@ */ class LocaleSessionRedirectTest extends TestCase { - /* ------------------------------------------------------------------------------------------------ - | Main Functions - | ------------------------------------------------------------------------------------------------ - */ - public function setUp() - { - parent::setUp(); - } - - public function tearDown() - { - parent::tearDown(); - } - /* ------------------------------------------------------------------------------------------------ | Test Functions | ------------------------------------------------------------------------------------------------ diff --git a/tests/Routing/RouterTest.php b/tests/Routing/RouterTest.php index 72cdede..a71f649 100644 --- a/tests/Routing/RouterTest.php +++ b/tests/Routing/RouterTest.php @@ -31,9 +31,9 @@ public function setUp() public function tearDown() { - parent::tearDown(); - unset($this->router); + + parent::tearDown(); } /* ------------------------------------------------------------------------------------------------ diff --git a/tests/Utilities/LocalesManagerTest.php b/tests/Utilities/LocalesManagerTest.php index 14105bb..537a029 100644 --- a/tests/Utilities/LocalesManagerTest.php +++ b/tests/Utilities/LocalesManagerTest.php @@ -34,9 +34,9 @@ public function setUp() public function tearDown() { - parent::tearDown(); - unset($this->localesManager); + + parent::tearDown(); } /* ------------------------------------------------------------------------------------------------ diff --git a/tests/Utilities/NegotiatorTest.php b/tests/Utilities/NegotiatorTest.php index 9ea45d6..de8f516 100644 --- a/tests/Utilities/NegotiatorTest.php +++ b/tests/Utilities/NegotiatorTest.php @@ -33,9 +33,9 @@ public function setUp() public function tearDown() { - parent::tearDown(); - unset($this->negotiator); + + parent::tearDown(); } /* ------------------------------------------------------------------------------------------------ diff --git a/tests/Utilities/UrlTest.php b/tests/Utilities/UrlTest.php index 6d97f30..58cb128 100644 --- a/tests/Utilities/UrlTest.php +++ b/tests/Utilities/UrlTest.php @@ -11,20 +11,6 @@ */ class UrlTest extends TestCase { - /* ------------------------------------------------------------------------------------------------ - | Main Functions - | ------------------------------------------------------------------------------------------------ - */ - public function setUp() - { - parent::setUp(); - } - - public function tearDown() - { - parent::tearDown(); - } - /* ------------------------------------------------------------------------------------------------ | Test Functions | ------------------------------------------------------------------------------------------------