File Coverage

blib/lib/Wikibase/Datatype/Languages.pm
Criterion Covered Total %
statement 17 17 100.0
branch n/a
condition n/a
subroutine 7 7 100.0
pod 2 2 100.0
total 26 26 100.0


line stmt bran cond sub pod time code
1             package Wikibase::Datatype::Languages;
2              
3 304     304   516725 use base qw(Exporter);
  304         933  
  304         50992  
4 304     304   2478 use strict;
  304         689  
  304         9451  
5 304     304   3751 use utf8;
  304         1839  
  304         2829  
6 304     304   10247 use warnings;
  304         900  
  304         24088  
7              
8 304     304   5536 use Readonly;
  304         18018  
  304         881494  
9              
10             # Constants.
11             Readonly::Array our @EXPORT => qw(all_language_codes all_term_language_codes);
12             Readonly::Hash our %TERM_LANGUAGES => (
13             # Special codes.
14             'mul' => 'multiple languages', # Q20923490
15              
16             # Codes in https://doc.wikimedia.org/mediawiki-core/master/php/Names_8php_source.html
17             # Updated 2025-01-01 in mediawiki/includes/languages/data/Names.php, commit 7d8b613868efc281ee91200be5e8a599cf59b52b
18             'aa' => 'Qafár af', # Afar
19             'aae' => 'Arbërisht', # Arbëresh
20             'ab' => 'аԥсшәа', # Abkhaz
21             'abs' => 'bahasa ambon', # Ambonese Malay, T193566
22             'ace' => 'Acèh', # Aceh
23             'acf' => 'Kwéyòl Sent Lisi', # Saint Lucian Creole
24             'acm' => 'عراقي', # Iraqi (Mesopotamian) Arabic
25             'ady' => 'адыгабзэ', # Adyghe
26             'ady-cyrl' => 'адыгабзэ', # Adyghe
27             'aeb' => 'تونسي / Tûnsî', # Tunisian Arabic (multiple scripts - defaults to Arabic)
28             'aeb-arab' => 'تونسي', # Tunisian Arabic (Arabic Script)
29             'aeb-latn' => 'Tûnsî', # Tunisian Arabic (Latin Script)
30             'af' => 'Afrikaans', # Afrikaans
31             'aln' => 'Gegë', # Gheg Albanian
32             'als' => 'Alemannisch', # Alemannic -- not a valid code, for compatibility. See gsw.
33             'alt' => 'алтай тил', # Altai, T254854
34             'am' => 'አማርኛ', # Amharic
35             'ami' => 'Pangcah', # Amis
36             'an' => 'aragonés', # Aragonese
37             'ang' => 'Ænglisc', # Old English, T25283
38             'ann' => 'Obolo', # Obolo
39             'anp' => 'अंगिका', # Angika
40             'apc' => 'شامي', # Levantine Arabic
41             'ar' => 'العربية', # Arabic
42             'arc' => 'ܐܪܡܝܐ', # Aramaic
43             'arn' => 'mapudungun', # Mapuche, Mapudungu, Araucanian (Araucano)
44             'arq' => 'جازايرية', # Algerian Spoken Arabic
45             'ary' => 'الدارجة', # Moroccan Spoken Arabic
46             'arz' => 'مصرى', # Egyptian Spoken Arabic
47             'as' => 'অসমীয়া', # Assamese
48             'ase' => 'American sign language', # American sign language
49             'ast' => 'asturianu', # Asturian
50             'atj' => 'Atikamekw', # Atikamekw
51             'av' => 'авар', # Avar
52             'avk' => 'Kotava', # Kotava
53             'awa' => 'अवधी', # Awadhi
54             'ay' => 'Aymar aru', # Aymara
55             'az' => 'azərbaycanca', # Azerbaijani
56             'azb' => 'تۆرکجه', # South Azerbaijani
57             'ba' => 'башҡортса', # Bashkir
58             'ban' => 'Basa Bali', # Balinese (Latin script)
59             'ban-bali' => 'ᬩᬲᬩᬮᬶ', # Balinese (Balinese script)
60             'bar' => 'Boarisch', # Bavarian (Austro-Bavarian and South Tyrolean)
61             'bat-smg' => 'žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 639-3 since 2010-06-30 )
62             'bbc' => 'Batak Toba', # Batak Toba (falls back to bbc-latn)
63             'bbc-latn' => 'Batak Toba', # Batak Toba
64             'bcc' => 'جهلسری بلوچی', # Southern Balochi
65             'bci' => 'wawle', # Baoulé
66             'bcl' => 'Bikol Central', # Bikol: Central Bicolano language
67             'bdr' => 'Bajau Sama', # West Coast Bajau
68             'be' => 'беларуская', # Belarusian normative
69             'be-tarask' => 'беларуская (тарашкевіца)', # Belarusian in Taraskievica orthography
70             'be-x-old' => 'беларуская (тарашкевіца)', # (be-tarask compat)
71             'bew' => 'Betawi', # Betawi
72             'bg' => 'български', # Bulgarian
73             'bgc' => 'हरियाणवी', # Haryanvi
74             'bgn' => 'روچ کپتین بلوچی', # Western Balochi
75             'bh' => 'भोजपुरी', # Bihari macro language. Falls back to Bhojpuri (bho)
76             'bho' => 'भोजपुरी', # Bhojpuri
77             'bi' => 'Bislama', # Bislama
78             'bjn' => 'Banjar', # Banjarese
79             'blk' => 'ပအိုဝ်ႏဘာႏသာႏ', # Pa'O
80             'bm' => 'bamanankan', # Bambara
81             'bn' => 'বাংলা', # Bengali
82             'bo' => 'བོད་ཡིག', # Tibetan
83             'bpy' => 'বিষ্ণুপ্রিয়া মণিপুরী', # Bishnupriya Manipuri
84             'bqi' => 'بختیاری', # Bakthiari
85             'br' => 'brezhoneg', # Breton
86             'brh' => 'Bráhuí', # Brahui
87             'bs' => 'bosanski', # Bosnian
88             'btm' => 'Batak Mandailing', # Batak Mandailing
89             'bto' => 'Iriga Bicolano', # Rinconada Bikol
90             'bug' => 'Basa Ugi', # Buginese
91             'bxr' => 'буряад', # Buryat (Russia)
92             'ca' => 'català', # Catalan
93             'cbk-zam' => 'Chavacano de Zamboanga', # Zamboanga Chavacano, T124657
94             'ccp' => '𑄌𑄋𑄴𑄟𑄳𑄦', # Chakma
95             'cdo' => '閩東語 / Mìng-dĕ̤ng-ngṳ̄', # Mindong (multiple scripts - defaults to Latin)
96             'cdo-hant' => '閩東語(傳統漢字)', # Mindong (Traditional Han script)
97             'cdo-latn' => 'Mìng-dĕ̤ng-ngṳ̄ (Bàng-uâ-cê)', # Mindong (Latin script)
98             'ce' => 'нохчийн', # Chechen
99             'ceb' => 'Cebuano', # Cebuano
100             'ch' => 'Chamoru', # Chamorro
101             'chn' => 'chinuk wawa', # Chinook Jargon
102             'cho' => 'Chahta anumpa', # Choctaw
103             'chr' => 'ᏣᎳᎩ', # Cherokee
104             'chy' => 'Tsetsêhestâhese', # Cheyenne
105             'ckb' => 'کوردی', # Central Kurdish
106             'co' => 'corsu', # Corsican
107             'cop' => 'ϯⲙⲉⲧⲣⲉⲙⲛ̀ⲭⲏⲙⲓ', # Coptic
108             'cps' => 'Capiceño', # Capiznon
109             'cpx' => '莆仙語 / Pó-sing-gṳ̂', # Puxian (multiple scripts - defaults to Traditional Han)
110             'cpx-hans' => '莆仙语(简体)', # Puxian (Simplified Han script)
111             'cpx-hant' => '莆仙語(繁體)', # Puxian (Traditional Han script)
112             'cpx-latn' => 'Pó-sing-gṳ̂ (Báⁿ-uā-ci̍)', # Puxian (Latin script)
113             'cr' => 'Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ', # Cree
114             'crh' => 'qırımtatarca', # Crimean Tatar (multiple scripts - defaults to Latin)
115             'crh-cyrl' => 'къырымтатарджа (Кирилл)', # Crimean Tatar (Cyrillic)
116             'crh-latn' => 'qırımtatarca (Latin)', # Crimean Tatar (Latin)
117             'crh-ro' => 'tatarşa', # Crimean Tatar (Romania)
118             'cs' => 'čeština', # Czech
119             'csb' => 'kaszëbsczi', # Cassubian
120             'cu' => 'словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ', # Old Church Slavonic (ancient language)
121             'cv' => 'чӑвашла', # Chuvash
122             'cy' => 'Cymraeg', # Welsh
123             'da' => 'dansk', # Danish
124             'dag' => 'dagbanli', # Dagbani
125             'de' => 'Deutsch', # German ("Du")
126             'de-at' => 'Österreichisches Deutsch', # Austrian German
127             'de-ch' => 'Schweizer Hochdeutsch', # Swiss Standard German
128             'de-formal' => 'Deutsch (Sie-Form)', # German - formal address ("Sie")
129             'dga' => 'Dagaare', # Southern Dagaare
130             'din' => 'Thuɔŋjäŋ', # Dinka
131             'diq' => 'Zazaki', # Zazaki
132             'dsb' => 'dolnoserbski', # Lower Sorbian
133             'dtp' => 'Kadazandusun', # Central Dusun
134             'dty' => 'डोटेली', # Doteli
135             'dua' => 'Duálá', # Duala
136             'dv' => 'ދިވެހިބަސް', # Dhivehi
137             'dz' => 'ཇོང་ཁ', # Dzongkha (Bhutan)
138             'ee' => 'eʋegbe', # Éwé
139             'efi' => 'Efịk', # Efik
140             'egl' => 'Emiliàn', # Emilian
141             'el' => 'Ελληνικά', # Greek
142             'eml' => 'emiliàn e rumagnòl', # Emiliano-Romagnolo / Sammarinese
143             'en' => 'English', # English
144             'en-ca' => 'Canadian English', # Canadian English
145             'en-gb' => 'British English', # British English
146             'en-x-piglatin' => 'Igpay Atinlay', # Pig Latin, for variant development
147             'eo' => 'Esperanto', # Esperanto
148             'es' => 'español', # Spanish
149             'es-419' => 'español de América Latina', # Spanish for the Latin America and Caribbean region
150             'es-formal' => 'español (formal)', # Spanish formal address
151             'et' => 'eesti', # Estonian
152             'eu' => 'euskara', # Basque
153             'ext' => 'estremeñu', # Extremaduran
154             'fa' => 'فارسی', # Persian
155             'fat' => 'mfantse', # Fante
156             'ff' => 'Fulfulde', # Fulfulde, Maasina
157             'fi' => 'suomi', # Finnish
158             'fit' => 'meänkieli', # Tornedalen Finnish
159             'fiu-vro' => 'võro', # Võro (deprecated code, 'vro' in ISO 639-3 since 2009-01-16)
160             'fj' => 'Na Vosa Vakaviti', # Fijian
161             'fo' => 'føroyskt', # Faroese
162             'fon' => 'fɔ̀ngbè', # Fon
163             'fr' => 'français', # French
164             'frc' => 'français cadien', # Cajun French
165             'frp' => 'arpetan', # Franco-Provençal/Arpitan
166             'frr' => 'Nordfriisk', # North Frisian
167             'fur' => 'furlan', # Friulian
168             'fvr' => 'poor’íŋ belé’ŋ', # Fur
169             'fy' => 'Frysk', # Frisian
170             'ga' => 'Gaeilge', # Irish
171             'gaa' => 'Ga', # Ga
172             'gag' => 'Gagauz', # Gagauz
173             'gan' => '贛語', # Gan (multiple scripts - defaults to Traditional Han)
174             'gan-hans' => '赣语(简体)', # Gan (Simplified Han)
175             'gan-hant' => '贛語(繁體)', # Gan (Traditional Han)
176             'gcf' => 'kréyòl Gwadloup', # Guadeloupean Creole
177             'gcr' => 'kriyòl gwiyannen', # Guianan Creole
178             'gd' => 'Gàidhlig', # Scots Gaelic
179             'gl' => 'galego', # Galician
180             'gld' => 'на̄ни', # Nanai
181             'glk' => 'گیلکی', # Gilaki
182             'gn' => 'Avañe\'ẽ', # Guaraní, Paraguayan
183             'gom' => 'गोंयची कोंकणी / Gõychi Konknni', # Goan Konkani
184             'gom-deva' => 'गोंयची कोंकणी', # Goan Konkani (Devanagari script)
185             'gom-latn' => 'Gõychi Konknni', # Goan Konkani (Latin script)
186             'gor' => 'Bahasa Hulontalo', # Gorontalo
187             'got' => '𐌲𐌿𐍄𐌹𐍃𐌺', # Gothic
188             'gpe' => 'Ghanaian Pidgin', # Ghanaian Pidgin
189             'grc' => 'Ἀρχαία ἑλληνικὴ', # Ancient Greek
190             'gsw' => 'Alemannisch', # Alemannic
191             'gu' => 'ગુજરાતી', # Gujarati
192             'guc' => 'wayuunaiki', # Wayuu
193             'gur' => 'farefare', # Farefare
194             'guw' => 'gungbe', # Gun
195             'gv' => 'Gaelg', # Manx
196             'ha' => 'Hausa', # Hausa
197             'hak' => '客家語 / Hak-kâ-ngî', # Hakka (multiple scripts)
198             'hak-hans' => '客家语(简体)', # Hakka (Simplified Han script)
199             'hak-hant' => '客家語(繁體)', # Hakka (Traditional Han script)
200             'hak-latn' => 'Hak-kâ-ngî (Pha̍k-fa-sṳ)', # Hakka (Latin script)
201             'haw' => 'Hawaiʻi', # Hawaiian
202             'he' => 'עברית', # Hebrew
203             'hi' => 'हिन्दी', # Hindi
204             'hif' => 'Fiji Hindi', # Fijian Hindi (multiple scripts - defaults to Latin)
205             'hif-latn' => 'Fiji Hindi', # Fiji Hindi (Latin script)
206             'hil' => 'Ilonggo', # Hiligaynon
207             'hke' => 'kihunde', # Hunde
208             'hno' => 'ہندکو', # Hindko
209             'ho' => 'Hiri Motu', # Hiri Motu
210             'hr' => 'hrvatski', # Croatian
211             'hrx' => 'Hunsrik', # Riograndenser Hunsrückisch
212             'hsb' => 'hornjoserbsce', # Upper Sorbian
213             'hsn' => '湘語', # Xiang
214             'ht' => 'Kreyòl ayisyen', # Haitian Creole French
215             'hu' => 'magyar', # Hungarian
216             'hu-formal' => 'magyar (formal)', # Hungarian formal address
217             'hy' => 'հայերեն', # Armenian, T202611
218             'hyw' => 'Արեւմտահայերէն', # Western Armenian, T201276, T219975
219             'hz' => 'Otsiherero', # Herero
220             'ia' => 'interlingua', # Interlingua (IALA)
221             'iba' => 'Jaku Iban', # Iban
222             'ibb' => 'ibibio', # Ibibio
223             'id' => 'Bahasa Indonesia', # Indonesian
224             'ie' => 'Interlingue', # Interlingue (Occidental)
225             'ig' => 'Igbo', # Igbo
226             'igl' => 'Igala', # Igala
227             'ii' => 'ꆇꉙ', # Sichuan Yi
228             'ik' => 'Iñupiatun', # Inupiaq
229             'ike-cans' => 'ᐃᓄᒃᑎᑐᑦ', # Inuktitut, Eastern Canadian (Unified Canadian Aboriginal Syllabics)
230             'ike-latn' => 'inuktitut', # Inuktitut, Eastern Canadian (Latin script)
231             'ilo' => 'Ilokano', # Ilokano
232             'inh' => 'гӀалгӀай', # Ingush
233             'io' => 'Ido', # Ido
234             'is' => 'íslenska', # Icelandic
235             'isv-cyrl' => 'меджусловјанскы', # Interslavic (Cyrillic)
236             'isv-latn' => 'medžuslovjansky', # Interslavic (Latin)
237             'it' => 'italiano', # Italian
238             'iu' => 'ᐃᓄᒃᑎᑐᑦ / inuktitut', # Inuktitut (macro language, see ike/ikt, falls back to ike-cans)
239             'ja' => '日本語', # Japanese
240             'jam' => 'Patois', # Jamaican Creole English
241             'jbo' => 'la .lojban.', # Lojban
242             'jut' => 'jysk', # Jutish / Jutlandic
243             'jv' => 'Jawa', # Javanese
244             'ka' => 'ქართული', # Georgian
245             'kaa' => 'Qaraqalpaqsha', # Karakalpak
246             'kab' => 'Taqbaylit', # Kabyle
247             'kai' => 'Karai-karai', # Karekare
248             'kbd' => 'адыгэбзэ', # Kabardian
249             'kbd-cyrl' => 'адыгэбзэ', # Kabardian (Cyrillic)
250             'kbp' => 'Kabɩyɛ', # Kabiyè
251             'kcg' => 'Tyap', # Tyap
252             'kea' => 'kabuverdianu', # Cape Verdean Creole
253             'kg' => 'Kongo', # Kongo, (FIXME!) should probably be KiKongo or KiKoongo
254             'kge' => 'Kumoring', # Komering
255             'khw' => 'کھوار', # Khowar
256             'ki' => 'Gĩkũyũ', # Gikuyu
257             'kiu' => 'Kırmancki', # Kirmanjki
258             'kj' => 'Kwanyama', # Kwanyama
259             'kjh' => 'хакас', # Khakas
260             'kjp' => 'ဖၠုံလိက်', # Eastern Pwo
261             'kk' => 'қазақша', # Kazakh (multiple scripts - defaults to Cyrillic)
262             'kk-arab' => 'قازاقشا (تٴوتە)', # Kazakh Arabic
263             'kk-cn' => 'قازاقشا (جۇنگو)', # Kazakh (China)
264             'kk-cyrl' => 'қазақша (кирил)', # Kazakh Cyrillic
265             'kk-kz' => 'қазақша (Қазақстан)', # Kazakh (Kazakhstan)
266             'kk-latn' => 'qazaqşa (latın)', # Kazakh Latin
267             'kk-tr' => 'qazaqşa (Türkïya)', # Kazakh (Turkey)
268             'kl' => 'kalaallisut', # Inuktitut, Greenlandic/Greenlandic/Kalaallisut (kal)
269             'km' => 'ភាសាខ្មែរ', # Khmer, Central
270             'kn' => 'ಕನ್ನಡ', # Kannada
271             'knc' => 'Yerwa Kanuri', # Central Kanuri
272             'ko' => '한국어', # Korean
273             'ko-kp' => '조선말', # Korean (DPRK), T190324
274             'koi' => 'перем коми', # Komi-Permyak
275             'kr' => 'kanuri', # Kanuri; deprecated, falls back to Central Kanuri (knc)
276             'krc' => 'къарачай-малкъар', # Karachay-Balkar
277             'kri' => 'Krio', # Krio
278             'krj' => 'Kinaray-a', # Kinaray-a
279             'krl' => 'karjal', # Karelian
280             'ks' => 'कॉशुर / کٲشُر', # Kashmiri (multiple scripts - defaults to Perso-Arabic)
281             'ks-arab' => 'کٲشُر', # Kashmiri (Perso-Arabic script)
282             'ks-deva' => 'कॉशुर', # Kashmiri (Devanagari script)
283             'ksh' => 'Ripoarisch', # Ripuarian
284             'ksw' => 'စှီၤ', # S'gaw Karen
285             'ku' => 'kurdî', # Kurdish (multiple scripts - defaults to Latin)
286             'ku-arab' => 'کوردی (عەرەبی)', # Northern Kurdish (Arabic script) (falls back to ckb; see also T368698)
287             'ku-latn' => 'kurdî (latînî)', # Northern Kurdish (Latin script)
288             'kum' => 'къумукъ', # Kumyk (Cyrillic, 'kum-latn' for Latin script)
289             'kus' => 'Kʋsaal', # Kusaal
290             'kv' => 'коми', # Komi-Zyrian (Cyrillic is common script but also written in Latin script)
291             'kw' => 'kernowek', # Cornish
292             'ky' => 'кыргызча', # Kirghiz
293             'la' => 'Latina', # Latin
294             'lad' => 'Ladino', # Ladino
295             'lb' => 'Lëtzebuergesch', # Luxembourgish
296             'lbe' => 'лакку', # Lak
297             'lez' => 'лезги', # Lezgi
298             'lfn' => 'Lingua Franca Nova', # Lingua Franca Nova
299             'lg' => 'Luganda', # Ganda
300             'li' => 'Limburgs', # Limburgian
301             'lij' => 'Ligure', # Ligurian
302             'liv' => 'Līvõ kēļ', # Livonian
303             'lki' => 'لەکی', # Laki
304             'lld' => 'Ladin', # Ladin
305             'lmo' => 'lombard', # Lombard - T283423
306             'ln' => 'lingála', # Lingala
307             'lo' => 'ລາວ', # Laotian
308             'loz' => 'Silozi', # Lozi
309             'lrc' => 'لۊری شومالی', # Northern Luri
310             'lt' => 'lietuvių', # Lithuanian
311             'ltg' => 'latgaļu', # Latgalian
312             'lua' => 'ciluba', # Luba-Lulua
313             'lus' => 'Mizo ţawng', # Mizo/Lushai
314             'luz' => 'لئری دوٙمینی', # Southern Luri
315             'lv' => 'latviešu', # Latvian
316             'lzh' => '文言', # Literary Chinese, T10217
317             'lzz' => 'Lazuri', # Laz
318             'mad' => 'Madhurâ', # Madurese, T264582
319             'mag' => 'मगही', # Magahi
320             'mai' => 'मैथिली', # Maithili
321             'map-bms' => 'Basa Banyumasan', # Banyumasan ('jv-x-bms')
322             'mdf' => 'мокшень', # Moksha
323             'mg' => 'Malagasy', # Malagasy
324             'mh' => 'Ebon', # Marshallese
325             'mhr' => 'олык марий', # Eastern Mari
326             'mi' => 'Māori', # Maori
327             'min' => 'Minangkabau', # Minangkabau
328             'mk' => 'македонски', # Macedonian
329             'ml' => 'മലയാളം', # Malayalam
330             'mn' => 'монгол', # Halh Mongolian (Cyrillic) (ISO 639-3: khk)
331             'mnc' => 'manju gisun', # Manchu (Latin script)
332             'mnc-latn' => 'manju gisun', # Manchu (Latin script)
333             'mnc-mong' => 'ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ', # Manchu (Mongolian script)
334             'mni' => 'ꯃꯤꯇꯩ ꯂꯣꯟ', # Manipuri/Meitei
335             'mnw' => 'ဘာသာမန်', # Mon
336             'mo' => 'молдовеняскэ', # Moldovan, deprecated (ISO 639-2: ro-Cyrl-MD)
337             'mos' => 'moore', # Mooré
338             'mr' => 'मराठी', # Marathi
339             'mrh' => 'Mara', # Mara
340             'mrj' => 'кырык мары', # Hill Mari
341             'ms' => 'Bahasa Melayu', # Malay
342             'ms-arab' => 'بهاس ملايو', # Malay (Arabic Jawi script)
343             'mt' => 'Malti', # Maltese
344             'mui' => 'Baso Palembang', # Musi/Palembang
345             'mus' => 'Mvskoke', # Muskogee/Creek
346             'mwl' => 'Mirandés', # Mirandese
347             'my' => 'မြန်မာဘာသာ', # Burmese
348             'myv' => 'эрзянь', # Erzya
349             'mzn' => 'مازِرونی', # Mazanderani
350             'na' => 'Dorerin Naoero', # Nauruan
351             'nah' => 'Nāhuatl', # Nahuatl (added to ISO 639-3 on 2006-10-31)
352             'nan' => '閩南語 / Bân-lâm-gú', # Minnan (multiple scripts), T10217, T354937
353             'nan-hant' => '閩南語(傳統漢字)', # Minnan (Traditional Han script), T354937
354             'nan-latn-pehoeji' => 'Bân-lâm-gú (Pe̍h-ōe-jī)', # Minnan (Pe̍h-ōe-jī), T354937
355             'nan-latn-tailo' => 'Bân-lâm-gú (Tâi-lô)', # Minnan (Tâi-lô), T354937
356             'nap' => 'Napulitano', # Neapolitan, T45793
357             'nb' => 'norsk bokmål', # Norwegian (Bokmal)
358             'nds' => 'Plattdüütsch', # Low German ''or'' Low Saxon
359             'nds-nl' => 'Nedersaksies', # aka Nedersaksisch: Dutch Low Saxon
360             'ne' => 'नेपाली', # Nepali
361             'new' => 'नेपाल भाषा', # Newar / Nepal Bhasha
362             'ng' => 'Oshiwambo', # Ndonga
363             'nia' => 'Li Niha', # Nias, T263968
364             'nit' => 'కొలామి', # Southeastern Kolami
365             'niu' => 'Niuē', # Niuean
366             'nl' => 'Nederlands', # Dutch
367             'nl-informal' => 'Nederlands (informeel)', # Dutch (informal address ("je"))
368             'nmz' => 'nawdm', # Nawdm
369             'nn' => 'norsk nynorsk', # Norwegian (Nynorsk)
370             'no' => 'norsk', # Norwegian macro language (falls back to nb).
371             'nod' => 'ᨣᩤᩴᨾᩮᩬᩥᨦ', # Northern Thai
372             'nog' => 'ногайша', # Nogai
373             'nov' => 'Novial', # Novial
374             'nqo' => 'ߒߞߏ', # N'Ko
375             'nr' => 'isiNdebele seSewula', # Southern Ndebele
376             'nrm' => 'Nouormand', # Norman (invalid code; 'nrf' in ISO 639 since 2014)
377             'nso' => 'Sesotho sa Leboa', # Northern Sotho
378             'nup' => 'Nupe', # Nupe
379             'nv' => 'Diné bizaad', # Navajo
380             'ny' => 'Chi-Chewa', # Chichewa
381             'nyn' => 'runyankore', # Nkore
382             'nyo' => 'Orunyoro', # Nyoro
383             'nys' => 'Nyunga', # Nyungar
384             'oc' => 'occitan', # Occitan
385             'ojb' => 'Ojibwemowin', # Ojibwe
386             'olo' => 'livvinkarjala', # Livvi-Karelian
387             'om' => 'Oromoo', # Oromo
388             'or' => 'ଓଡ଼ିଆ', # Oriya
389             'os' => 'ирон', # Ossetic, T31091
390             'pa' => 'ਪੰਜਾਬੀ', # Eastern Punjabi (Gurmukhi script) (pan)
391             'pag' => 'Pangasinan', # Pangasinan
392             'pam' => 'Kapampangan', # Pampanga
393             'pap' => 'Papiamentu', # Papiamentu
394             'pcd' => 'Picard', # Picard
395             'pcm' => 'Naijá', # Nigerian Pidgin
396             'pdc' => 'Deitsch', # Pennsylvania German
397             'pdt' => 'Plautdietsch', # Plautdietsch/Mennonite Low German
398             'pfl' => 'Pälzisch', # Palatinate German
399             'pi' => 'पालि', # Pali
400             'pih' => 'Norfuk / Pitkern', # Norfuk/Pitcairn/Norfolk
401             'pl' => 'polski', # Polish
402             'pms' => 'Piemontèis', # Piedmontese
403             'pnb' => 'پنجابی', # Western Punjabi
404             'pnt' => 'Ποντιακά', # Pontic/Pontic Greek
405             'prg' => 'prūsiskan', # Prussian
406             'ps' => 'پښتو', # Pashto
407             'pt' => 'português', # Portuguese
408             'pt-br' => 'português do Brasil', # Brazilian Portuguese
409             'pwn' => 'pinayuanan', # Paiwan
410             'qu' => 'Runa Simi', # Southern Quechua
411             'qug' => 'Runa shimi', # Kichwa/Northern Quechua (temporarily used until Kichwa has its own)
412             'rgn' => 'Rumagnôl', # Romagnol
413             'rif' => 'Tarifit', # Tarifit
414             'rki' => 'ရခိုင်', # Arakanese
415             'rm' => 'rumantsch', # Raeto-Romance
416             'rmc' => 'romaňi čhib', # Carpathian Romany
417             'rmy' => 'romani čhib', # Vlax Romany
418             'rn' => 'ikirundi', # Rundi (Kirundi)
419             'ro' => 'română', # Romanian
420             'roa-rup' => 'armãneashti', # Aromanian (deprecated code, 'rup' exists in ISO 639-3)
421             'roa-tara' => 'tarandíne', # Tarantino ('nap-x-tara')
422             'rsk' => 'руски', # Pannonian Rusyn
423             'ru' => 'русский', # Russian
424             'rue' => 'русиньскый', # Rusyn
425             'rup' => 'armãneashti', # Aromanian
426             'ruq' => 'Vlăheşte', # Megleno-Romanian (multiple scripts - defaults to Latin)
427             'ruq-cyrl' => 'Влахесте', # Megleno-Romanian (Cyrillic script)
428             'ruq-latn' => 'Vlăheşte', # Megleno-Romanian (Latin script)
429             'rut' => 'мыхаӀбишды', # Rutul
430             'rw' => 'Ikinyarwanda', # Kinyarwanda
431             'ryu' => 'うちなーぐち', # Okinawan
432             'sa' => 'संस्कृतम्', # Sanskrit
433             'sah' => 'саха тыла', # Sakha
434             'sat' => 'ᱥᱟᱱᱛᱟᱲᱤ', # Santali
435             'sc' => 'sardu', # Sardinian
436             'scn' => 'sicilianu', # Sicilian
437             'sco' => 'Scots', # Scots
438             'sd' => 'سنڌي', # Sindhi
439             'sdc' => 'Sassaresu', # Sassarese
440             'sdh' => 'کوردی خوارگ', # Southern Kurdish
441             'se' => 'davvisámegiella', # Northern Sami
442             'se-fi' => 'davvisámegiella (Suoma bealde)', # Northern Sami (Finland)
443             'se-no' => 'davvisámegiella (Norgga bealde)', # Northern Sami (Norway)
444             'se-se' => 'davvisámegiella (Ruoŧa bealde)', # Northern Sami (Sweden)
445             'sei' => 'Cmique Itom', # Seri
446             'ses' => 'Koyraboro Senni', # Koyraboro Senni
447             'sg' => 'Sängö', # Sango/Sangho
448             'sgs' => 'žemaitėška', # Samogitian
449             'sh' => 'srpskohrvatski / српскохрватски', # Serbo-Croatian (multiple scripts - defaults to Latin)
450             'sh-cyrl' => 'српскохрватски (ћирилица)', # Serbo-Croatian (Cyrillic script)
451             'sh-latn' => 'srpskohrvatski (latinica)', # Serbo-Croatian (Latin script) (default)
452             'shi' => 'Taclḥit', # Tachelhit, Shilha (multiple scripts - defaults to Latin)
453             'shi-latn' => 'Taclḥit', # Tachelhit (Latin script)
454             'shi-tfng' => 'ⵜⴰⵛⵍⵃⵉⵜ', # Tachelhit (Tifinagh script)
455             'shn' => 'ၽႃႇသႃႇတႆး ', # Shan
456             'shy' => 'tacawit', # Shawiya (Multiple scripts - defaults to Latin)
457             'shy-latn' => 'tacawit', # Shawiya (Latin script) - T194047
458             'si' => 'සිංහල', # Sinhalese
459             'simple' => 'Simple English', # Simple English
460             'sjd' => 'кӣллт са̄мь кӣлл', # Kildin Sami
461             'sje' => 'bidumsámegiella', # Pite Sami
462             'sk' => 'slovenčina', # Slovak
463             'skr' => 'سرائیکی', # Saraiki (multiple scripts - defaults to Arabic)
464             'skr-arab' => 'سرائیکی', # Saraiki (Arabic script)
465             'sl' => 'slovenščina', # Slovenian
466             'sli' => 'Schläsch', # Lower Silesian
467             'sm' => 'Gagana Samoa', # Samoan
468             'sma' => 'åarjelsaemien', # Southern Sami
469             'smn' => 'anarâškielâ', # Inari Sami
470             'sms' => 'nuõrttsääʹmǩiõll', # Skolt Sami
471             'sn' => 'chiShona', # Shona
472             'so' => 'Soomaaliga', # Somali
473             'sq' => 'shqip', # Albanian
474             'sr' => 'српски / srpski', # Serbian (multiple scripts - defaults to Cyrillic)
475             'sr-ec' => 'српски (ћирилица)', # Serbian Cyrillic ekavian
476             'sr-el' => 'srpski (latinica)', # Serbian Latin ekavian
477             'srn' => 'Sranantongo', # Sranan Tongo
478             'sro' => 'sardu campidanesu', # Campidanese Sardinian
479             'ss' => 'SiSwati', # Swati
480             'st' => 'Sesotho', # Southern Sotho
481             'stq' => 'Seeltersk', # Saterland Frisian
482             'sty' => 'себертатар', # Siberian Tatar
483             'su' => 'Sunda', # Sundanese
484             'sv' => 'svenska', # Swedish
485             'sw' => 'Kiswahili', # Swahili
486             'syl' => 'ꠍꠤꠟꠐꠤ', # Sylheti
487             'szl' => 'ślůnski', # Silesian
488             'szy' => 'Sakizaya', # Sakizaya - T174601
489             'ta' => 'தமிழ்', # Tamil
490             'tay' => 'Tayal', # Atayal
491             'tcy' => 'ತುಳು', # Tulu
492             'tdd' => 'ᥖᥭᥰ ᥖᥬᥲ ᥑᥨᥒᥰ', # Tai Nüa
493             'te' => 'తెలుగు', # Telugu
494             'tet' => 'tetun', # Tetun
495             'tg' => 'тоҷикӣ', # Tajiki (falls back to tg-cyrl)
496             'tg-cyrl' => 'тоҷикӣ', # Tajiki (Cyrllic script) (default)
497             'tg-latn' => 'tojikī', # Tajiki (Latin script)
498             'th' => 'ไทย', # Thai
499             'ti' => 'ትግርኛ', # Tigrinya
500             'tig' => 'ትግሬ', # Tigre
501             'tk' => 'Türkmençe', # Turkmen
502             'tl' => 'Tagalog', # Tagalog
503             'tly' => 'tolışi', # Talysh
504             'tly-cyrl' => 'толыши', # Talysh (Cyrillic)
505             'tn' => 'Setswana', # Setswana
506             'to' => 'lea faka-Tonga', # Tonga (Tonga Islands)
507             'tok' => 'toki pona', # Toki Pona
508             'tpi' => 'Tok Pisin', # Tok Pisin
509             'tr' => 'Türkçe', # Turkish
510             'tru' => 'Ṫuroyo', # Turoyo
511             'trv' => 'Seediq', # Taroko
512             'ts' => 'Xitsonga', # Tsonga
513             'tt' => 'татарча / tatarça', # Tatar (multiple scripts - defaults to Cyrillic)
514             'tt-cyrl' => 'татарча', # Tatar (Cyrillic script) (default)
515             'tt-latn' => 'tatarça', # Tatar (Latin script)
516             'ttj' => 'Orutooro', # Tooro
517             'tum' => 'chiTumbuka', # Tumbuka
518             'tw' => 'Twi', # Twi
519             'ty' => 'reo tahiti', # Tahitian
520             'tyv' => 'тыва дыл', # Tyvan
521             'tzm' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', # Tamazight
522             'udm' => 'удмурт', # Udmurt
523             'ug' => 'ئۇيغۇرچە / Uyghurche', # Uyghur (multiple scripts - defaults to Arabic)
524             'ug-arab' => 'ئۇيغۇرچە', # Uyghur (Arabic script) (default)
525             'ug-latn' => 'Uyghurche', # Uyghur (Latin script)
526             'uk' => 'українська', # Ukrainian
527             'ur' => 'اردو', # Urdu
528             'uz' => 'oʻzbekcha / ўзбекча', # Uzbek (multiple scripts - defaults to Latin)
529             'uz-cyrl' => 'ўзбекча', # Uzbek Cyrillic
530             'uz-latn' => 'oʻzbekcha', # Uzbek Latin (default)
531             've' => 'Tshivenda', # Venda
532             'vec' => 'vèneto', # Venetian
533             'vep' => 'vepsän kel’', # Veps
534             'vi' => 'Tiếng Việt', # Vietnamese
535             'vls' => 'West-Vlams', # West Flemish
536             'vmf' => 'Mainfränkisch', # Upper Franconian, Main-Franconian
537             'vmw' => 'emakhuwa', # Makhuwa
538             'vo' => 'Volapük', # Volapük
539             'vot' => 'Vaďďa', # Vod/Votian
540             'vro' => 'võro', # Võro
541             'wa' => 'walon', # Walloon
542             'wal' => 'wolaytta', # Wolaytta
543             'war' => 'Winaray', # Waray-Waray
544             'wls' => 'Fakaʻuvea', # Wallisian
545             'wo' => 'Wolof', # Wolof
546             'wuu' => '吴语', # Wu (multiple scripts - defaults to Simplified Han)
547             'wuu-hans' => '吴语(简体)', # Wu (Simplified Han)
548             'wuu-hant' => '吳語(正體)', # Wu (Traditional Han)
549             'xal' => 'хальмг', # Kalmyk-Oirat
550             'xh' => 'isiXhosa', # Xhosan
551             'xmf' => 'მარგალური', # Mingrelian
552             'xsy' => 'saisiyat', # SaiSiyat - T216479
553             'yi' => 'ייִדיש', # Yiddish
554             'yo' => 'Yorùbá', # Yoruba
555             'yrl' => 'Nhẽẽgatú', # Nheengatu
556             'yue' => '粵語', # Cantonese (multiple scripts - defaults to Traditional Han)
557             'yue-hans' => '粵语(简体)', # Cantonese (Simplified Han)
558             'yue-hant' => '粵語(繁體)', # Cantonese (Traditional Han)
559             'za' => 'Vahcuengh', # Zhuang
560             'zea' => 'Zeêuws', # Zeeuws / Zeaws
561             'zgh' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ', # Moroccan Amazigh (multiple scripts - defaults to Neo-Tifinagh)
562             'zgh-latn' => 'tamaziɣt tanawayt', # Moroccan Amazigh (Latin script)
563             'zh' => '中文', # (Zhōng Wén) - Chinese
564             'zh-classical' => '文言', # Classical Chinese/Literary Chinese -- (see T10217)
565             'zh-cn' => '中文(中国大陆)', # Chinese (PRC)
566             'zh-hans' => '中文(简体)', # Mandarin Chinese (Simplified Chinese script) (cmn-hans)
567             'zh-hant' => '中文(繁體)', # Mandarin Chinese (Traditional Chinese script) (cmn-hant)
568             'zh-hk' => '中文(香港)', # Chinese (Hong Kong)
569             'zh-min-nan' => 'Bân-lâm-gú', # Min-nan -- (see T10217)
570             'zh-mo' => '中文(澳門)', # Chinese (Macau)
571             'zh-my' => '中文(马来西亚)', # Chinese (Malaysia)
572             'zh-sg' => '中文(新加坡)', # Chinese (Singapore)
573             'zh-tw' => '中文(臺灣)', # Chinese (Taiwan)
574             'zh-yue' => '粵語', # Cantonese -- (see T10217)
575             'zu' => 'isiZulu', # Zulu
576              
577             # Codes from https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/lib/includes/WikibaseContentLanguages.php
578             # TODO Native names.
579             # Updated 2025-01-01 from mediawiki-extensions-Wikibase/lib/includes/WikibaseContentLanguages.php, commit 1e626b913d5d8a28cb719a55baba4fdaa3324221
580             'agq' => 'Aghem', # Aghem - T288335
581             'bag' => 'Tuki', # Tuki - T263946
582             'bas' => 'Basaa', # Basaa - T263946
583             'bax' => 'Bamum', # Bamum - T263946
584             'bbj' => "Ghomála'", # Ghomála' - T263946
585             'bfd' => 'Bafut', # Bafut - T263946
586             'bkc' => 'Baka', # Baka - T263946
587             'bkh' => 'Bakoko', # Bakoko - T263946
588             'bkm' => 'Kom', # Kom - T263946
589             'bqz' => "Mka'a", # Mka'a - T263946
590             'byv' => 'Medumba', # Medumba - T263946
591             'cak' => 'Cakchiquel', # Cakchiquel - T278854
592             'cal' => 'Carolinian', # Carolinian - T308062
593             'cnh' => 'Chin', # Chin - T263946
594             'dua' => 'Duala', # Duala - T263946
595             'en-us' => 'American English', # American English - T154589
596             'eto' => 'Eton', # Eton - T263946
597             'etu' => 'Ejagham', # Ejagham - T263946
598             'ewo' => 'Ewondo', # Ewondo - T263946
599             'fkv' => 'Finnish (Kven)', # Finnish (Kven) - T167259
600             'fmp' => "Fe'fe'", # Fe'fe' - T263946
601             'gya' => 'Gbaya', # Gbaya - T263946
602             'isu' => 'Isu', # Isu - T263946
603             'kea' => 'Kabuverdianu', # Kabuverdianu - T127435
604             'ker' => 'Kera', # Kera - T263946
605             'ksf' => 'Bafia', # Bafia - T263946
606             'lem' => 'Nomaande', # Nomaande - T263946
607             'lns' => "Lamnso'", # Lamnso' - T263946
608             'mcn' => 'Masana', # Masana - T293884
609             'mcp' => 'Maka', # Maka - T263946
610             'mua' => 'Mundang', # Mundang - T263946
611             'nan-hani' => 'Min Nan Chinese', # Min Nan Chinese - T180771
612             'nge' => 'Ngémba', # Ngémba - T263946
613             'nla' => 'Ngombala', # Ngombala - T263946
614             'nmg' => 'Kwasio', # Kwasio - T263946
615             'nnh' => 'Ngiemboon', # Ngiemboon - T263946
616             'nnz' => "Nda'nda'", # Nda'nda' - T263946
617             'nod' => 'Thai (Northern)', # Thai (Northern) - T93880
618             'osa-latn' => 'Osage', # Osage - T265297
619             'ota' => 'Turkish, Ottoman (1500–1928)', # Turkish, Ottoman (1500–1928) - T59342
620             'pap-aw' => 'Papiamento', # Papiamento - T275682
621             'quc' => 'K’iche’', # K’iche’ - T278851
622             'rmf' => 'Romani, Kalo Finnish', # Romani, Kalo Finnish - T226701
623             'rwr' => 'Marwari', # Marwari - T61905
624             'ryu' => 'Okinawan, Central', # Okinawan, Central - T271215
625             'sjd' => 'Sami, Kildin', # Sami, Kildin - T226701
626             'sju' => 'Sami, Ume', # Sami, Ume - T226701
627             'smj' => 'Lule Sámi', # Lule Sámi - T146707
628             'sms' => 'Skolt Sami', # Skolt Sami - T220118, T223544
629             'srq' => 'Sirionó', # Sirionó - T113408
630             'tpv' => 'Tanapag', # Tanapag - T308062
631             'tvu' => 'Tunen', # Tunen - T263946
632             'vut' => 'Vute', # Vute - T263946
633             'wes' => 'Pidgin (Cameroon)', # Pidgin (Cameroon) - T263946
634             'wya' => 'Wyandot', # Wyandot - T283364
635             'yas' => 'Nugunu', # Nugunu - T263946
636             'yat' => 'Yambeta', # Yambeta - T263946
637             'yav' => 'Yangben', # Yangben - T263946
638             'ybb' => 'Yemba', # Yemba - T263946
639              
640             # Other, used in Q111803082
641             'ak' => 'Akan',
642             );
643             Readonly::Hash our %LANGUAGES => (
644             %TERM_LANGUAGES,
645              
646             # Special codes.
647             'mis' => 'language without a specific language code', # Q22283016
648             'und' => 'undetermined language', # Q22282914
649             'zxx' => 'no linguistic content', # Q22282939
650             );
651              
652             our $VERSION = 0.39;
653              
654             sub all_language_codes {
655 97     97 1 221697 return keys %LANGUAGES;
656             }
657              
658             sub all_term_language_codes {
659 38     38 1 232946 return keys %TERM_LANGUAGES;
660             }
661              
662             __END__
663              
664             =pod
665              
666             =encoding utf8
667              
668             =head1 NAME
669              
670             Wikibase::Datatype::Languages - Wikibase datatype languages.
671              
672             =head1 SYNOPSIS
673              
674             use Wikibase::Datatype::Languages qw(all_language_codes);
675              
676             my @language_codes = all_language_codes();
677             my @term_language_codes = all_term_language_codes();
678              
679             =head1 DESCRIPTION
680              
681             Language codes used for multilingual information in Wikibase::Datatype objects.
682              
683             It's imported from L<https://doc.wikimedia.org/mediawiki-core/master/php/Names_8php_source.html>
684             and from L<https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/lib/includes/WikibaseContentLanguages.php> (2023-04-22).
685              
686             =head1 SUBROUTINES
687              
688             =head2 C<all_language_codes>
689              
690             my @language_codes = all_language_codes();
691              
692             Get language codes used in MediaWiki.
693              
694             Returns array with codes.
695              
696             =head2 C<all_term_language_codes>
697              
698             my @term_language_codes = all_term_language_codes();
699              
700             Get language codes used in Wikibase for terms (label, description and alias).
701              
702             Returns array with codes.
703              
704             =head1 EXAMPLE1
705              
706             =for comment filename=all_language_codes.pl
707              
708             use strict;
709             use warnings;
710              
711             use Wikibase::Datatype::Languages qw(all_language_codes);
712              
713             my @language_codes = sort { $a cmp $b } all_language_codes();
714              
715             # Print out.
716             print join "\n", @language_codes;
717             print "\n";
718              
719             # Output:
720             # aa
721             # aae
722             # ab
723             # abs
724             # ace
725             # acf
726             # acm
727             # ady
728             # ady-cyrl
729             # aeb
730             # aeb-arab
731             # aeb-latn
732             # af
733             # agq
734             # ak
735             # aln
736             # als
737             # alt
738             # am
739             # ami
740             # an
741             # ang
742             # ann
743             # anp
744             # apc
745             # ar
746             # arc
747             # arn
748             # arq
749             # ary
750             # arz
751             # as
752             # ase
753             # ast
754             # atj
755             # av
756             # avk
757             # awa
758             # ay
759             # az
760             # azb
761             # ba
762             # bag
763             # ban
764             # ban-bali
765             # bar
766             # bas
767             # bat-smg
768             # bax
769             # bbc
770             # bbc-latn
771             # bbj
772             # bcc
773             # bci
774             # bcl
775             # bdr
776             # be
777             # be-tarask
778             # be-x-old
779             # bew
780             # bfd
781             # bg
782             # bgc
783             # bgn
784             # bh
785             # bho
786             # bi
787             # bjn
788             # bkc
789             # bkh
790             # bkm
791             # blk
792             # bm
793             # bn
794             # bo
795             # bpy
796             # bqi
797             # bqz
798             # br
799             # brh
800             # bs
801             # btm
802             # bto
803             # bug
804             # bxr
805             # byv
806             # ca
807             # cak
808             # cal
809             # cbk-zam
810             # ccp
811             # cdo
812             # cdo-hant
813             # cdo-latn
814             # ce
815             # ceb
816             # ch
817             # chn
818             # cho
819             # chr
820             # chy
821             # ckb
822             # cnh
823             # co
824             # cop
825             # cps
826             # cpx
827             # cpx-hans
828             # cpx-hant
829             # cpx-latn
830             # cr
831             # crh
832             # crh-cyrl
833             # crh-latn
834             # crh-ro
835             # cs
836             # csb
837             # cu
838             # cv
839             # cy
840             # da
841             # dag
842             # de
843             # de-at
844             # de-ch
845             # de-formal
846             # dga
847             # din
848             # diq
849             # dsb
850             # dtp
851             # dty
852             # dua
853             # dv
854             # dz
855             # ee
856             # efi
857             # egl
858             # el
859             # eml
860             # en
861             # en-ca
862             # en-gb
863             # en-us
864             # en-x-piglatin
865             # eo
866             # es
867             # es-419
868             # es-formal
869             # et
870             # eto
871             # etu
872             # eu
873             # ewo
874             # ext
875             # fa
876             # fat
877             # ff
878             # fi
879             # fit
880             # fiu-vro
881             # fj
882             # fkv
883             # fmp
884             # fo
885             # fon
886             # fr
887             # frc
888             # frp
889             # frr
890             # fur
891             # fvr
892             # fy
893             # ga
894             # gaa
895             # gag
896             # gan
897             # gan-hans
898             # gan-hant
899             # gcf
900             # gcr
901             # gd
902             # gl
903             # gld
904             # glk
905             # gn
906             # gom
907             # gom-deva
908             # gom-latn
909             # gor
910             # got
911             # gpe
912             # grc
913             # gsw
914             # gu
915             # guc
916             # gur
917             # guw
918             # gv
919             # gya
920             # ha
921             # hak
922             # hak-hans
923             # hak-hant
924             # hak-latn
925             # haw
926             # he
927             # hi
928             # hif
929             # hif-latn
930             # hil
931             # hke
932             # hno
933             # ho
934             # hr
935             # hrx
936             # hsb
937             # hsn
938             # ht
939             # hu
940             # hu-formal
941             # hy
942             # hyw
943             # hz
944             # ia
945             # iba
946             # ibb
947             # id
948             # ie
949             # ig
950             # igl
951             # ii
952             # ik
953             # ike-cans
954             # ike-latn
955             # ilo
956             # inh
957             # io
958             # is
959             # isu
960             # isv-cyrl
961             # isv-latn
962             # it
963             # iu
964             # ja
965             # jam
966             # jbo
967             # jut
968             # jv
969             # ka
970             # kaa
971             # kab
972             # kai
973             # kbd
974             # kbd-cyrl
975             # kbp
976             # kcg
977             # kea
978             # ker
979             # kg
980             # kge
981             # khw
982             # ki
983             # kiu
984             # kj
985             # kjh
986             # kjp
987             # kk
988             # kk-arab
989             # kk-cn
990             # kk-cyrl
991             # kk-kz
992             # kk-latn
993             # kk-tr
994             # kl
995             # km
996             # kn
997             # knc
998             # ko
999             # ko-kp
1000             # koi
1001             # kr
1002             # krc
1003             # kri
1004             # krj
1005             # krl
1006             # ks
1007             # ks-arab
1008             # ks-deva
1009             # ksf
1010             # ksh
1011             # ksw
1012             # ku
1013             # ku-arab
1014             # ku-latn
1015             # kum
1016             # kus
1017             # kv
1018             # kw
1019             # ky
1020             # la
1021             # lad
1022             # lb
1023             # lbe
1024             # lem
1025             # lez
1026             # lfn
1027             # lg
1028             # li
1029             # lij
1030             # liv
1031             # lki
1032             # lld
1033             # lmo
1034             # ln
1035             # lns
1036             # lo
1037             # loz
1038             # lrc
1039             # lt
1040             # ltg
1041             # lua
1042             # lus
1043             # luz
1044             # lv
1045             # lzh
1046             # lzz
1047             # mad
1048             # mag
1049             # mai
1050             # map-bms
1051             # mcn
1052             # mcp
1053             # mdf
1054             # mg
1055             # mh
1056             # mhr
1057             # mi
1058             # min
1059             # mis
1060             # mk
1061             # ml
1062             # mn
1063             # mnc
1064             # mnc-latn
1065             # mnc-mong
1066             # mni
1067             # mnw
1068             # mo
1069             # mos
1070             # mr
1071             # mrh
1072             # mrj
1073             # ms
1074             # ms-arab
1075             # mt
1076             # mua
1077             # mui
1078             # mul
1079             # mus
1080             # mwl
1081             # my
1082             # myv
1083             # mzn
1084             # na
1085             # nah
1086             # nan
1087             # nan-hani
1088             # nan-hant
1089             # nan-latn-pehoeji
1090             # nan-latn-tailo
1091             # nap
1092             # nb
1093             # nds
1094             # nds-nl
1095             # ne
1096             # new
1097             # ng
1098             # nge
1099             # nia
1100             # nit
1101             # niu
1102             # nl
1103             # nl-informal
1104             # nla
1105             # nmg
1106             # nmz
1107             # nn
1108             # nnh
1109             # nnz
1110             # no
1111             # nod
1112             # nog
1113             # nov
1114             # nqo
1115             # nr
1116             # nrm
1117             # nso
1118             # nup
1119             # nv
1120             # ny
1121             # nyn
1122             # nyo
1123             # nys
1124             # oc
1125             # ojb
1126             # olo
1127             # om
1128             # or
1129             # os
1130             # osa-latn
1131             # ota
1132             # pa
1133             # pag
1134             # pam
1135             # pap
1136             # pap-aw
1137             # pcd
1138             # pcm
1139             # pdc
1140             # pdt
1141             # pfl
1142             # pi
1143             # pih
1144             # pl
1145             # pms
1146             # pnb
1147             # pnt
1148             # prg
1149             # ps
1150             # pt
1151             # pt-br
1152             # pwn
1153             # qu
1154             # quc
1155             # qug
1156             # rgn
1157             # rif
1158             # rki
1159             # rm
1160             # rmc
1161             # rmf
1162             # rmy
1163             # rn
1164             # ro
1165             # roa-rup
1166             # roa-tara
1167             # rsk
1168             # ru
1169             # rue
1170             # rup
1171             # ruq
1172             # ruq-cyrl
1173             # ruq-latn
1174             # rut
1175             # rw
1176             # rwr
1177             # ryu
1178             # sa
1179             # sah
1180             # sat
1181             # sc
1182             # scn
1183             # sco
1184             # sd
1185             # sdc
1186             # sdh
1187             # se
1188             # se-fi
1189             # se-no
1190             # se-se
1191             # sei
1192             # ses
1193             # sg
1194             # sgs
1195             # sh
1196             # sh-cyrl
1197             # sh-latn
1198             # shi
1199             # shi-latn
1200             # shi-tfng
1201             # shn
1202             # shy
1203             # shy-latn
1204             # si
1205             # simple
1206             # sjd
1207             # sje
1208             # sju
1209             # sk
1210             # skr
1211             # skr-arab
1212             # sl
1213             # sli
1214             # sm
1215             # sma
1216             # smj
1217             # smn
1218             # sms
1219             # sn
1220             # so
1221             # sq
1222             # sr
1223             # sr-ec
1224             # sr-el
1225             # srn
1226             # sro
1227             # srq
1228             # ss
1229             # st
1230             # stq
1231             # sty
1232             # su
1233             # sv
1234             # sw
1235             # syl
1236             # szl
1237             # szy
1238             # ta
1239             # tay
1240             # tcy
1241             # tdd
1242             # te
1243             # tet
1244             # tg
1245             # tg-cyrl
1246             # tg-latn
1247             # th
1248             # ti
1249             # tig
1250             # tk
1251             # tl
1252             # tly
1253             # tly-cyrl
1254             # tn
1255             # to
1256             # tok
1257             # tpi
1258             # tpv
1259             # tr
1260             # tru
1261             # trv
1262             # ts
1263             # tt
1264             # tt-cyrl
1265             # tt-latn
1266             # ttj
1267             # tum
1268             # tvu
1269             # tw
1270             # ty
1271             # tyv
1272             # tzm
1273             # udm
1274             # ug
1275             # ug-arab
1276             # ug-latn
1277             # uk
1278             # und
1279             # ur
1280             # uz
1281             # uz-cyrl
1282             # uz-latn
1283             # ve
1284             # vec
1285             # vep
1286             # vi
1287             # vls
1288             # vmf
1289             # vmw
1290             # vo
1291             # vot
1292             # vro
1293             # vut
1294             # wa
1295             # wal
1296             # war
1297             # wes
1298             # wls
1299             # wo
1300             # wuu
1301             # wuu-hans
1302             # wuu-hant
1303             # wya
1304             # xal
1305             # xh
1306             # xmf
1307             # xsy
1308             # yas
1309             # yat
1310             # yav
1311             # ybb
1312             # yi
1313             # yo
1314             # yrl
1315             # yue
1316             # yue-hans
1317             # yue-hant
1318             # za
1319             # zea
1320             # zgh
1321             # zgh-latn
1322             # zh
1323             # zh-classical
1324             # zh-cn
1325             # zh-hans
1326             # zh-hant
1327             # zh-hk
1328             # zh-min-nan
1329             # zh-mo
1330             # zh-my
1331             # zh-sg
1332             # zh-tw
1333             # zh-yue
1334             # zu
1335             # zxx
1336              
1337             =head1 EXAMPLE2
1338              
1339             =for comment filename=all_term_language_codes.pl
1340              
1341             use strict;
1342             use warnings;
1343              
1344             use Wikibase::Datatype::Languages qw(all_term_language_codes);
1345              
1346             my @term_language_codes = sort { $a cmp $b } all_term_language_codes();
1347              
1348             # Print out.
1349             print join "\n", @term_language_codes;
1350             print "\n";
1351              
1352             # Output:
1353             # aa
1354             # aae
1355             # ab
1356             # abs
1357             # ace
1358             # acf
1359             # acm
1360             # ady
1361             # ady-cyrl
1362             # aeb
1363             # aeb-arab
1364             # aeb-latn
1365             # af
1366             # agq
1367             # ak
1368             # aln
1369             # als
1370             # alt
1371             # am
1372             # ami
1373             # an
1374             # ang
1375             # ann
1376             # anp
1377             # apc
1378             # ar
1379             # arc
1380             # arn
1381             # arq
1382             # ary
1383             # arz
1384             # as
1385             # ase
1386             # ast
1387             # atj
1388             # av
1389             # avk
1390             # awa
1391             # ay
1392             # az
1393             # azb
1394             # ba
1395             # bag
1396             # ban
1397             # ban-bali
1398             # bar
1399             # bas
1400             # bat-smg
1401             # bax
1402             # bbc
1403             # bbc-latn
1404             # bbj
1405             # bcc
1406             # bci
1407             # bcl
1408             # bdr
1409             # be
1410             # be-tarask
1411             # be-x-old
1412             # bew
1413             # bfd
1414             # bg
1415             # bgc
1416             # bgn
1417             # bh
1418             # bho
1419             # bi
1420             # bjn
1421             # bkc
1422             # bkh
1423             # bkm
1424             # blk
1425             # bm
1426             # bn
1427             # bo
1428             # bpy
1429             # bqi
1430             # bqz
1431             # br
1432             # brh
1433             # bs
1434             # btm
1435             # bto
1436             # bug
1437             # bxr
1438             # byv
1439             # ca
1440             # cak
1441             # cal
1442             # cbk-zam
1443             # ccp
1444             # cdo
1445             # cdo-hant
1446             # cdo-latn
1447             # ce
1448             # ceb
1449             # ch
1450             # chn
1451             # cho
1452             # chr
1453             # chy
1454             # ckb
1455             # cnh
1456             # co
1457             # cop
1458             # cps
1459             # cpx
1460             # cpx-hans
1461             # cpx-hant
1462             # cpx-latn
1463             # cr
1464             # crh
1465             # crh-cyrl
1466             # crh-latn
1467             # crh-ro
1468             # cs
1469             # csb
1470             # cu
1471             # cv
1472             # cy
1473             # da
1474             # dag
1475             # de
1476             # de-at
1477             # de-ch
1478             # de-formal
1479             # dga
1480             # din
1481             # diq
1482             # dsb
1483             # dtp
1484             # dty
1485             # dua
1486             # dv
1487             # dz
1488             # ee
1489             # efi
1490             # egl
1491             # el
1492             # eml
1493             # en
1494             # en-ca
1495             # en-gb
1496             # en-us
1497             # en-x-piglatin
1498             # eo
1499             # es
1500             # es-419
1501             # es-formal
1502             # et
1503             # eto
1504             # etu
1505             # eu
1506             # ewo
1507             # ext
1508             # fa
1509             # fat
1510             # ff
1511             # fi
1512             # fit
1513             # fiu-vro
1514             # fj
1515             # fkv
1516             # fmp
1517             # fo
1518             # fon
1519             # fr
1520             # frc
1521             # frp
1522             # frr
1523             # fur
1524             # fvr
1525             # fy
1526             # ga
1527             # gaa
1528             # gag
1529             # gan
1530             # gan-hans
1531             # gan-hant
1532             # gcf
1533             # gcr
1534             # gd
1535             # gl
1536             # gld
1537             # glk
1538             # gn
1539             # gom
1540             # gom-deva
1541             # gom-latn
1542             # gor
1543             # got
1544             # gpe
1545             # grc
1546             # gsw
1547             # gu
1548             # guc
1549             # gur
1550             # guw
1551             # gv
1552             # gya
1553             # ha
1554             # hak
1555             # hak-hans
1556             # hak-hant
1557             # hak-latn
1558             # haw
1559             # he
1560             # hi
1561             # hif
1562             # hif-latn
1563             # hil
1564             # hke
1565             # hno
1566             # ho
1567             # hr
1568             # hrx
1569             # hsb
1570             # hsn
1571             # ht
1572             # hu
1573             # hu-formal
1574             # hy
1575             # hyw
1576             # hz
1577             # ia
1578             # iba
1579             # ibb
1580             # id
1581             # ie
1582             # ig
1583             # igl
1584             # ii
1585             # ik
1586             # ike-cans
1587             # ike-latn
1588             # ilo
1589             # inh
1590             # io
1591             # is
1592             # isu
1593             # isv-cyrl
1594             # isv-latn
1595             # it
1596             # iu
1597             # ja
1598             # jam
1599             # jbo
1600             # jut
1601             # jv
1602             # ka
1603             # kaa
1604             # kab
1605             # kai
1606             # kbd
1607             # kbd-cyrl
1608             # kbp
1609             # kcg
1610             # kea
1611             # ker
1612             # kg
1613             # kge
1614             # khw
1615             # ki
1616             # kiu
1617             # kj
1618             # kjh
1619             # kjp
1620             # kk
1621             # kk-arab
1622             # kk-cn
1623             # kk-cyrl
1624             # kk-kz
1625             # kk-latn
1626             # kk-tr
1627             # kl
1628             # km
1629             # kn
1630             # knc
1631             # ko
1632             # ko-kp
1633             # koi
1634             # kr
1635             # krc
1636             # kri
1637             # krj
1638             # krl
1639             # ks
1640             # ks-arab
1641             # ks-deva
1642             # ksf
1643             # ksh
1644             # ksw
1645             # ku
1646             # ku-arab
1647             # ku-latn
1648             # kum
1649             # kus
1650             # kv
1651             # kw
1652             # ky
1653             # la
1654             # lad
1655             # lb
1656             # lbe
1657             # lem
1658             # lez
1659             # lfn
1660             # lg
1661             # li
1662             # lij
1663             # liv
1664             # lki
1665             # lld
1666             # lmo
1667             # ln
1668             # lns
1669             # lo
1670             # loz
1671             # lrc
1672             # lt
1673             # ltg
1674             # lua
1675             # lus
1676             # luz
1677             # lv
1678             # lzh
1679             # lzz
1680             # mad
1681             # mag
1682             # mai
1683             # map-bms
1684             # mcn
1685             # mcp
1686             # mdf
1687             # mg
1688             # mh
1689             # mhr
1690             # mi
1691             # min
1692             # mk
1693             # ml
1694             # mn
1695             # mnc
1696             # mnc-latn
1697             # mnc-mong
1698             # mni
1699             # mnw
1700             # mo
1701             # mos
1702             # mr
1703             # mrh
1704             # mrj
1705             # ms
1706             # ms-arab
1707             # mt
1708             # mua
1709             # mui
1710             # mul
1711             # mus
1712             # mwl
1713             # my
1714             # myv
1715             # mzn
1716             # na
1717             # nah
1718             # nan
1719             # nan-hani
1720             # nan-hant
1721             # nan-latn-pehoeji
1722             # nan-latn-tailo
1723             # nap
1724             # nb
1725             # nds
1726             # nds-nl
1727             # ne
1728             # new
1729             # ng
1730             # nge
1731             # nia
1732             # nit
1733             # niu
1734             # nl
1735             # nl-informal
1736             # nla
1737             # nmg
1738             # nmz
1739             # nn
1740             # nnh
1741             # nnz
1742             # no
1743             # nod
1744             # nog
1745             # nov
1746             # nqo
1747             # nr
1748             # nrm
1749             # nso
1750             # nup
1751             # nv
1752             # ny
1753             # nyn
1754             # nyo
1755             # nys
1756             # oc
1757             # ojb
1758             # olo
1759             # om
1760             # or
1761             # os
1762             # osa-latn
1763             # ota
1764             # pa
1765             # pag
1766             # pam
1767             # pap
1768             # pap-aw
1769             # pcd
1770             # pcm
1771             # pdc
1772             # pdt
1773             # pfl
1774             # pi
1775             # pih
1776             # pl
1777             # pms
1778             # pnb
1779             # pnt
1780             # prg
1781             # ps
1782             # pt
1783             # pt-br
1784             # pwn
1785             # qu
1786             # quc
1787             # qug
1788             # rgn
1789             # rif
1790             # rki
1791             # rm
1792             # rmc
1793             # rmf
1794             # rmy
1795             # rn
1796             # ro
1797             # roa-rup
1798             # roa-tara
1799             # rsk
1800             # ru
1801             # rue
1802             # rup
1803             # ruq
1804             # ruq-cyrl
1805             # ruq-latn
1806             # rut
1807             # rw
1808             # rwr
1809             # ryu
1810             # sa
1811             # sah
1812             # sat
1813             # sc
1814             # scn
1815             # sco
1816             # sd
1817             # sdc
1818             # sdh
1819             # se
1820             # se-fi
1821             # se-no
1822             # se-se
1823             # sei
1824             # ses
1825             # sg
1826             # sgs
1827             # sh
1828             # sh-cyrl
1829             # sh-latn
1830             # shi
1831             # shi-latn
1832             # shi-tfng
1833             # shn
1834             # shy
1835             # shy-latn
1836             # si
1837             # simple
1838             # sjd
1839             # sje
1840             # sju
1841             # sk
1842             # skr
1843             # skr-arab
1844             # sl
1845             # sli
1846             # sm
1847             # sma
1848             # smj
1849             # smn
1850             # sms
1851             # sn
1852             # so
1853             # sq
1854             # sr
1855             # sr-ec
1856             # sr-el
1857             # srn
1858             # sro
1859             # srq
1860             # ss
1861             # st
1862             # stq
1863             # sty
1864             # su
1865             # sv
1866             # sw
1867             # syl
1868             # szl
1869             # szy
1870             # ta
1871             # tay
1872             # tcy
1873             # tdd
1874             # te
1875             # tet
1876             # tg
1877             # tg-cyrl
1878             # tg-latn
1879             # th
1880             # ti
1881             # tig
1882             # tk
1883             # tl
1884             # tly
1885             # tly-cyrl
1886             # tn
1887             # to
1888             # tok
1889             # tpi
1890             # tpv
1891             # tr
1892             # tru
1893             # trv
1894             # ts
1895             # tt
1896             # tt-cyrl
1897             # tt-latn
1898             # ttj
1899             # tum
1900             # tvu
1901             # tw
1902             # ty
1903             # tyv
1904             # tzm
1905             # udm
1906             # ug
1907             # ug-arab
1908             # ug-latn
1909             # uk
1910             # ur
1911             # uz
1912             # uz-cyrl
1913             # uz-latn
1914             # ve
1915             # vec
1916             # vep
1917             # vi
1918             # vls
1919             # vmf
1920             # vmw
1921             # vo
1922             # vot
1923             # vro
1924             # vut
1925             # wa
1926             # wal
1927             # war
1928             # wes
1929             # wls
1930             # wo
1931             # wuu
1932             # wuu-hans
1933             # wuu-hant
1934             # wya
1935             # xal
1936             # xh
1937             # xmf
1938             # xsy
1939             # yas
1940             # yat
1941             # yav
1942             # ybb
1943             # yi
1944             # yo
1945             # yrl
1946             # yue
1947             # yue-hans
1948             # yue-hant
1949             # za
1950             # zea
1951             # zgh
1952             # zgh-latn
1953             # zh
1954             # zh-classical
1955             # zh-cn
1956             # zh-hans
1957             # zh-hant
1958             # zh-hk
1959             # zh-min-nan
1960             # zh-mo
1961             # zh-my
1962             # zh-sg
1963             # zh-tw
1964             # zh-yue
1965             # zu
1966              
1967             =head1 DEPENDENCIES
1968              
1969             L<Exporter>,
1970             L<Readonly>.
1971              
1972             =head1 REPOSITORY
1973              
1974             L<https://github.com/michal-josef-spacek/Wikibase-Datatype>
1975              
1976             =head1 AUTHOR
1977              
1978             Michal Josef Špaček L<mailto:skim@cpan.org>
1979              
1980             L<http://skim.cz>
1981              
1982             =head1 LICENSE AND COPYRIGHT
1983              
1984             © 2020-2025 Michal Josef Špaček
1985              
1986             BSD 2-Clause License
1987              
1988             =head1 VERSION
1989              
1990             0.39
1991              
1992             =cut