1// WARNING: this file was generated by ../scripts/gen-tag-table.py
2
3use ttf_parser::Tag;
4
5pub struct LangTag {
6 pub language: &'static str,
7 pub tag: Tag,
8}
9
10#[rustfmt::skip]
11pub const OPEN_TYPE_LANGUAGES: &[LangTag] = &[
12 LangTag { language: "aa", tag: Tag::from_bytes(b"AFR ") }, // Afar
13 LangTag { language: "aae", tag: Tag::from_bytes(b"SQI ") }, // Arbëreshë Albanian -> Albanian
14 LangTag { language: "aao", tag: Tag::from_bytes(b"ARA ") }, // Algerian Saharan Arabic -> Arabic
15// LangTag { language: "aaq", tag: Tag::from_bytes(b"AAQ ") }, // Eastern Abnaki -> Eastern Abenaki
16 LangTag { language: "aat", tag: Tag::from_bytes(b"SQI ") }, // Arvanitika Albanian -> Albanian
17 LangTag { language: "ab", tag: Tag::from_bytes(b"ABK ") }, // Abkhazian
18 LangTag { language: "aba", tag: Tag(0) }, // Abé != Abaza
19 LangTag { language: "abh", tag: Tag::from_bytes(b"ARA ") }, // Tajiki Arabic -> Arabic
20 LangTag { language: "abq", tag: Tag::from_bytes(b"ABA ") }, // Abaza
21 LangTag { language: "abs", tag: Tag::from_bytes(b"CPP ") }, // Ambonese Malay -> Creoles
22 LangTag { language: "abv", tag: Tag::from_bytes(b"ARA ") }, // Baharna Arabic -> Arabic
23 LangTag { language: "acf", tag: Tag::from_bytes(b"FAN ") }, // Saint Lucian Creole French -> French Antillean
24 LangTag { language: "acf", tag: Tag::from_bytes(b"CPP ") }, // Saint Lucian Creole French -> Creoles
25// LangTag { language: "ach", tag: Tag::from_bytes(b"ACH ") }, // Acoli -> Acholi
26 LangTag { language: "acm", tag: Tag::from_bytes(b"ARA ") }, // Mesopotamian Arabic -> Arabic
27 LangTag { language: "acq", tag: Tag::from_bytes(b"ARA ") }, // Ta'izzi-Adeni Arabic -> Arabic
28 LangTag { language: "acr", tag: Tag::from_bytes(b"ACR ") }, // Achi
29 LangTag { language: "acr", tag: Tag::from_bytes(b"MYN ") }, // Achi -> Mayan
30 LangTag { language: "acw", tag: Tag::from_bytes(b"ARA ") }, // Hijazi Arabic -> Arabic
31 LangTag { language: "acx", tag: Tag::from_bytes(b"ARA ") }, // Omani Arabic -> Arabic
32 LangTag { language: "acy", tag: Tag::from_bytes(b"ACY ") }, // Cypriot Arabic
33 LangTag { language: "acy", tag: Tag::from_bytes(b"ARA ") }, // Cypriot Arabic -> Arabic
34 LangTag { language: "ada", tag: Tag::from_bytes(b"DNG ") }, // Adangme -> Dangme
35 LangTag { language: "adf", tag: Tag::from_bytes(b"ARA ") }, // Dhofari Arabic -> Arabic
36 LangTag { language: "adp", tag: Tag::from_bytes(b"DZN ") }, // Adap(retired code) -> Dzongkha
37// LangTag { language: "ady", tag: Tag::from_bytes(b"ADY ") }, // Adyghe
38 LangTag { language: "aeb", tag: Tag::from_bytes(b"ARA ") }, // Tunisian Arabic -> Arabic
39 LangTag { language: "aec", tag: Tag::from_bytes(b"ARA ") }, // Saidi Arabic -> Arabic
40 LangTag { language: "af", tag: Tag::from_bytes(b"AFK ") }, // Afrikaans
41 LangTag { language: "afb", tag: Tag::from_bytes(b"ARA ") }, // Gulf Arabic -> Arabic
42 LangTag { language: "afk", tag: Tag(0) }, // Nanubae != Afrikaans
43 LangTag { language: "afs", tag: Tag::from_bytes(b"CPP ") }, // Afro-Seminole Creole -> Creoles
44 LangTag { language: "agu", tag: Tag::from_bytes(b"MYN ") }, // Aguacateco -> Mayan
45 LangTag { language: "agw", tag: Tag(0) }, // Kahua != Agaw
46 LangTag { language: "ahg", tag: Tag::from_bytes(b"AGW ") }, // Qimant -> Agaw
47 LangTag { language: "aht", tag: Tag::from_bytes(b"ATH ") }, // Ahtena -> Athapaskan
48 LangTag { language: "aig", tag: Tag::from_bytes(b"CPP ") }, // Antigua and Barbuda Creole English -> Creoles
49 LangTag { language: "aii", tag: Tag::from_bytes(b"SWA ") }, // Assyrian Neo-Aramaic -> Swadaya Aramaic
50 LangTag { language: "aii", tag: Tag::from_bytes(b"SYR ") }, // Assyrian Neo-Aramaic -> Syriac
51// LangTag { language: "aio", tag: Tag::from_bytes(b"AIO ") }, // Aiton
52 LangTag { language: "aiw", tag: Tag::from_bytes(b"ARI ") }, // Aari
53 LangTag { language: "ajp", tag: Tag::from_bytes(b"ARA ") }, // South Levantine Arabic(retired code) -> Arabic
54 LangTag { language: "ajt", tag: Tag::from_bytes(b"ARA ") }, // Judeo-Tunisian Arabic(retired code) -> Arabic
55 LangTag { language: "ak", tag: Tag::from_bytes(b"AKA ") }, // Akan [macrolanguage]
56 LangTag { language: "akb", tag: Tag::from_bytes(b"AKB ") }, // Batak Angkola
57 LangTag { language: "akb", tag: Tag::from_bytes(b"BTK ") }, // Batak Angkola -> Batak
58 LangTag { language: "aln", tag: Tag::from_bytes(b"SQI ") }, // Gheg Albanian -> Albanian
59 LangTag { language: "als", tag: Tag::from_bytes(b"SQI ") }, // Tosk Albanian -> Albanian
60// LangTag { language: "alt", tag: Tag::from_bytes(b"ALT ") }, // Southern Altai -> Altai
61 LangTag { language: "am", tag: Tag::from_bytes(b"AMH ") }, // Amharic
62 LangTag { language: "amf", tag: Tag::from_bytes(b"HBN ") }, // Hamer-Banna -> Hammer-Banna
63 LangTag { language: "amw", tag: Tag::from_bytes(b"SYR ") }, // Western Neo-Aramaic -> Syriac
64 LangTag { language: "an", tag: Tag::from_bytes(b"ARG ") }, // Aragonese
65// LangTag { language: "ang", tag: Tag::from_bytes(b"ANG ") }, // Old English (ca. 450-1100) -> Anglo-Saxon
66 LangTag { language: "aoa", tag: Tag::from_bytes(b"CPP ") }, // Angolar -> Creoles
67 LangTag { language: "apa", tag: Tag::from_bytes(b"ATH ") }, // Apache [collection] -> Athapaskan
68 LangTag { language: "apc", tag: Tag::from_bytes(b"ARA ") }, // Levantine Arabic -> Arabic
69 LangTag { language: "apd", tag: Tag::from_bytes(b"ARA ") }, // Sudanese Arabic -> Arabic
70 LangTag { language: "apj", tag: Tag::from_bytes(b"ATH ") }, // Jicarilla Apache -> Athapaskan
71 LangTag { language: "apk", tag: Tag::from_bytes(b"ATH ") }, // Kiowa Apache -> Athapaskan
72 LangTag { language: "apl", tag: Tag::from_bytes(b"ATH ") }, // Lipan Apache -> Athapaskan
73 LangTag { language: "apm", tag: Tag::from_bytes(b"ATH ") }, // Mescalero-Chiricahua Apache -> Athapaskan
74 LangTag { language: "apw", tag: Tag::from_bytes(b"ATH ") }, // Western Apache -> Athapaskan
75 LangTag { language: "ar", tag: Tag::from_bytes(b"ARA ") }, // Arabic [macrolanguage]
76 LangTag { language: "arb", tag: Tag::from_bytes(b"ARA ") }, // Standard Arabic -> Arabic
77 LangTag { language: "ari", tag: Tag(0) }, // Arikara != Aari
78 LangTag { language: "ark", tag: Tag(0) }, // Arikapú != Rakhine
79 LangTag { language: "arn", tag: Tag::from_bytes(b"MAP ") }, // Mapudungun
80 LangTag { language: "arq", tag: Tag::from_bytes(b"ARA ") }, // Algerian Arabic -> Arabic
81 LangTag { language: "ars", tag: Tag::from_bytes(b"ARA ") }, // Najdi Arabic -> Arabic
82 LangTag { language: "ary", tag: Tag::from_bytes(b"MOR ") }, // Moroccan Arabic -> Moroccan
83 LangTag { language: "ary", tag: Tag::from_bytes(b"ARA ") }, // Moroccan Arabic -> Arabic
84 LangTag { language: "arz", tag: Tag::from_bytes(b"ARA ") }, // Egyptian Arabic -> Arabic
85 LangTag { language: "as", tag: Tag::from_bytes(b"ASM ") }, // Assamese
86// LangTag { language: "ast", tag: Tag::from_bytes(b"AST ") }, // Asturian
87// LangTag { language: "ath", tag: Tag::from_bytes(b"ATH ") }, // Athapascan [collection] -> Athapaskan
88 LangTag { language: "atj", tag: Tag::from_bytes(b"RCR ") }, // Atikamekw -> R-Cree
89// LangTag { language: "ats", tag: Tag::from_bytes(b"ATS ") }, // Gros Ventre (Atsina)
90 LangTag { language: "atv", tag: Tag::from_bytes(b"ALT ") }, // Northern Altai -> Altai
91 LangTag { language: "auj", tag: Tag::from_bytes(b"BBR ") }, // Awjilah -> Berber
92 LangTag { language: "auz", tag: Tag::from_bytes(b"ARA ") }, // Uzbeki Arabic -> Arabic
93 LangTag { language: "av", tag: Tag::from_bytes(b"AVR ") }, // Avaric -> Avar
94 LangTag { language: "avl", tag: Tag::from_bytes(b"ARA ") }, // Eastern Egyptian Bedawi Arabic -> Arabic
95// LangTag { language: "avn", tag: Tag::from_bytes(b"AVN ") }, // Avatime
96// LangTag { language: "awa", tag: Tag::from_bytes(b"AWA ") }, // Awadhi
97 LangTag { language: "ay", tag: Tag::from_bytes(b"AYM ") }, // Aymara [macrolanguage]
98 LangTag { language: "ayc", tag: Tag::from_bytes(b"AYM ") }, // Southern Aymara -> Aymara
99 LangTag { language: "ayh", tag: Tag::from_bytes(b"ARA ") }, // Hadrami Arabic -> Arabic
100 LangTag { language: "ayl", tag: Tag::from_bytes(b"ARA ") }, // Libyan Arabic -> Arabic
101 LangTag { language: "ayn", tag: Tag::from_bytes(b"ARA ") }, // Sanaani Arabic -> Arabic
102 LangTag { language: "ayp", tag: Tag::from_bytes(b"ARA ") }, // North Mesopotamian Arabic -> Arabic
103 LangTag { language: "ayr", tag: Tag::from_bytes(b"AYM ") }, // Central Aymara -> Aymara
104 LangTag { language: "az", tag: Tag::from_bytes(b"AZE ") }, // Azerbaijani [macrolanguage]
105 LangTag { language: "azb", tag: Tag::from_bytes(b"AZB ") }, // South Azerbaijani -> Torki
106 LangTag { language: "azb", tag: Tag::from_bytes(b"AZE ") }, // South Azerbaijani -> Azerbaijani
107 LangTag { language: "azd", tag: Tag::from_bytes(b"NAH ") }, // Eastern Durango Nahuatl -> Nahuatl
108 LangTag { language: "azj", tag: Tag::from_bytes(b"AZE ") }, // North Azerbaijani -> Azerbaijani
109 LangTag { language: "azn", tag: Tag::from_bytes(b"NAH ") }, // Western Durango Nahuatl -> Nahuatl
110 LangTag { language: "azz", tag: Tag::from_bytes(b"NAH ") }, // Highland Puebla Nahuatl -> Nahuatl
111 LangTag { language: "ba", tag: Tag::from_bytes(b"BSH ") }, // Bashkir
112 LangTag { language: "bad", tag: Tag::from_bytes(b"BAD0") }, // Banda [collection]
113 LangTag { language: "bag", tag: Tag(0) }, // Tuki != Baghelkhandi
114 LangTag { language: "bah", tag: Tag::from_bytes(b"CPP ") }, // Bahamas Creole English -> Creoles
115 LangTag { language: "bai", tag: Tag::from_bytes(b"BML ") }, // Bamileke [collection]
116 LangTag { language: "bal", tag: Tag::from_bytes(b"BLI ") }, // Baluchi [macrolanguage]
117// LangTag { language: "ban", tag: Tag::from_bytes(b"BAN ") }, // Balinese
118// LangTag { language: "bar", tag: Tag::from_bytes(b"BAR ") }, // Bavarian
119 LangTag { language: "bau", tag: Tag(0) }, // Bada (Nigeria) != Baulé
120 LangTag { language: "bbc", tag: Tag::from_bytes(b"BBC ") }, // Batak Toba
121 LangTag { language: "bbc", tag: Tag::from_bytes(b"BTK ") }, // Batak Toba -> Batak
122 LangTag { language: "bbj", tag: Tag::from_bytes(b"BML ") }, // Ghomálá' -> Bamileke
123 LangTag { language: "bbp", tag: Tag::from_bytes(b"BAD0") }, // West Central Banda -> Banda
124 LangTag { language: "bbr", tag: Tag(0) }, // Girawa != Berber
125 LangTag { language: "bbz", tag: Tag::from_bytes(b"ARA ") }, // Babalia Creole Arabic(retired code) -> Arabic
126 LangTag { language: "bcc", tag: Tag::from_bytes(b"BLI ") }, // Southern Balochi -> Baluchi
127 LangTag { language: "bch", tag: Tag(0) }, // Bariai != Bench
128 LangTag { language: "bci", tag: Tag::from_bytes(b"BAU ") }, // Baoulé -> Baulé
129 LangTag { language: "bcl", tag: Tag::from_bytes(b"BIK ") }, // Central Bikol -> Bikol
130 LangTag { language: "bcq", tag: Tag::from_bytes(b"BCH ") }, // Bench
131 LangTag { language: "bcr", tag: Tag::from_bytes(b"ATH ") }, // Babine -> Athapaskan
132// LangTag { language: "bdc", tag: Tag::from_bytes(b"BDC ") }, // Emberá-Baudó
133// LangTag { language: "bdy", tag: Tag::from_bytes(b"BDY ") }, // Bandjalang
134 LangTag { language: "be", tag: Tag::from_bytes(b"BEL ") }, // Belarusian
135 LangTag { language: "bea", tag: Tag::from_bytes(b"ATH ") }, // Beaver -> Athapaskan
136 LangTag { language: "beb", tag: Tag::from_bytes(b"BTI ") }, // Bebele -> Beti
137// LangTag { language: "bem", tag: Tag::from_bytes(b"BEM ") }, // Bemba (Zambia)
138 LangTag { language: "ber", tag: Tag::from_bytes(b"BBR ") }, // Berber [collection]
139 LangTag { language: "bew", tag: Tag::from_bytes(b"CPP ") }, // Betawi -> Creoles
140 LangTag { language: "bfl", tag: Tag::from_bytes(b"BAD0") }, // Banda-Ndélé -> Banda
141 LangTag { language: "bfq", tag: Tag::from_bytes(b"BAD ") }, // Badaga
142 LangTag { language: "bft", tag: Tag::from_bytes(b"BLT ") }, // Balti
143 LangTag { language: "bfu", tag: Tag::from_bytes(b"LAH ") }, // Gahri -> Lahuli
144 LangTag { language: "bfy", tag: Tag::from_bytes(b"BAG ") }, // Bagheli -> Baghelkhandi
145 LangTag { language: "bg", tag: Tag::from_bytes(b"BGR ") }, // Bulgarian
146// LangTag { language: "bgc", tag: Tag::from_bytes(b"BGC ") }, // Haryanvi
147 LangTag { language: "bgn", tag: Tag::from_bytes(b"BLI ") }, // Western Balochi -> Baluchi
148 LangTag { language: "bgp", tag: Tag::from_bytes(b"BLI ") }, // Eastern Balochi -> Baluchi
149 LangTag { language: "bgq", tag: Tag::from_bytes(b"BGQ ") }, // Bagri
150 LangTag { language: "bgq", tag: Tag::from_bytes(b"RAJ ") }, // Bagri -> Rajasthani
151 LangTag { language: "bgr", tag: Tag::from_bytes(b"QIN ") }, // Bawm Chin -> Chin
152 LangTag { language: "bhb", tag: Tag::from_bytes(b"BHI ") }, // Bhili
153// LangTag { language: "bhi", tag: Tag::from_bytes(b"BHI ") }, // Bhilali -> Bhili
154 LangTag { language: "bhk", tag: Tag::from_bytes(b"BIK ") }, // Albay Bicolano(retired code) -> Bikol
155// LangTag { language: "bho", tag: Tag::from_bytes(b"BHO ") }, // Bhojpuri
156 LangTag { language: "bhr", tag: Tag::from_bytes(b"MLG ") }, // Bara Malagasy -> Malagasy
157 LangTag { language: "bi", tag: Tag::from_bytes(b"BIS ") }, // Bislama
158 LangTag { language: "bi", tag: Tag::from_bytes(b"CPP ") }, // Bislama -> Creoles
159// LangTag { language: "bik", tag: Tag::from_bytes(b"BIK ") }, // Bikol [macrolanguage]
160 LangTag { language: "bil", tag: Tag(0) }, // Bile != Bilen
161 LangTag { language: "bin", tag: Tag::from_bytes(b"EDO ") }, // Edo
162 LangTag { language: "biu", tag: Tag::from_bytes(b"QIN ") }, // Biete -> Chin
163// LangTag { language: "bjj", tag: Tag::from_bytes(b"BJJ ") }, // Kanauji
164 LangTag { language: "bjn", tag: Tag::from_bytes(b"MLY ") }, // Banjar -> Malay
165 LangTag { language: "bjo", tag: Tag::from_bytes(b"BAD0") }, // Mid-Southern Banda -> Banda
166 LangTag { language: "bjq", tag: Tag::from_bytes(b"MLG ") }, // Southern Betsimisaraka Malagasy(retired code) -> Malagasy
167 LangTag { language: "bjs", tag: Tag::from_bytes(b"CPP ") }, // Bajan -> Creoles
168 LangTag { language: "bjt", tag: Tag::from_bytes(b"BLN ") }, // Balanta-Ganja -> Balante
169 LangTag { language: "bkf", tag: Tag(0) }, // Beeke != Blackfoot
170 LangTag { language: "bko", tag: Tag::from_bytes(b"BML ") }, // Kwa' -> Bamileke
171 LangTag { language: "bla", tag: Tag::from_bytes(b"BKF ") }, // Siksika -> Blackfoot
172 LangTag { language: "ble", tag: Tag::from_bytes(b"BLN ") }, // Balanta-Kentohe -> Balante
173 LangTag { language: "blg", tag: Tag::from_bytes(b"IBA ") }, // Balau(retired code) -> Iban
174 LangTag { language: "bli", tag: Tag(0) }, // Bolia != Baluchi
175 LangTag { language: "blk", tag: Tag::from_bytes(b"BLK ") }, // Pa’o Karen
176 LangTag { language: "blk", tag: Tag::from_bytes(b"KRN ") }, // Pa'o Karen -> Karen
177 LangTag { language: "bln", tag: Tag::from_bytes(b"BIK ") }, // Southern Catanduanes Bikol -> Bikol
178 LangTag { language: "blt", tag: Tag(0) }, // Tai Dam != Balti
179 LangTag { language: "bm", tag: Tag::from_bytes(b"BMB ") }, // Bambara (Bamanankan)
180 LangTag { language: "bmb", tag: Tag(0) }, // Bembe != Bambara (Bamanankan)
181 LangTag { language: "bml", tag: Tag(0) }, // Bomboli != Bamileke
182 LangTag { language: "bmm", tag: Tag::from_bytes(b"MLG ") }, // Northern Betsimisaraka Malagasy -> Malagasy
183 LangTag { language: "bn", tag: Tag::from_bytes(b"BEN ") }, // Bangla
184 LangTag { language: "bo", tag: Tag::from_bytes(b"TIB ") }, // Tibetan
185 LangTag { language: "bpd", tag: Tag::from_bytes(b"BAD0") }, // Banda-Banda -> Banda
186 LangTag { language: "bpl", tag: Tag::from_bytes(b"CPP ") }, // Broome Pearling Lugger Pidgin -> Creoles
187 LangTag { language: "bpq", tag: Tag::from_bytes(b"CPP ") }, // Banda Malay -> Creoles
188// LangTag { language: "bpy", tag: Tag::from_bytes(b"BPY ") }, // Bishnupriya -> Bishnupriya Manipuri
189 LangTag { language: "bqi", tag: Tag::from_bytes(b"LRC ") }, // Bakhtiari -> Luri
190 LangTag { language: "bqk", tag: Tag::from_bytes(b"BAD0") }, // Banda-Mbrès -> Banda
191 LangTag { language: "br", tag: Tag::from_bytes(b"BRE ") }, // Breton
192 LangTag { language: "bra", tag: Tag::from_bytes(b"BRI ") }, // Braj -> Braj Bhasha
193 LangTag { language: "brc", tag: Tag::from_bytes(b"CPP ") }, // Berbice Creole Dutch -> Creoles
194// LangTag { language: "brh", tag: Tag::from_bytes(b"BRH ") }, // Brahui
195 LangTag { language: "bri", tag: Tag(0) }, // Mokpwe != Braj Bhasha
196 LangTag { language: "brm", tag: Tag(0) }, // Barambu != Burmese
197// LangTag { language: "brx", tag: Tag::from_bytes(b"BRX ") }, // Bodo (India)
198 LangTag { language: "bs", tag: Tag::from_bytes(b"BOS ") }, // Bosnian
199 LangTag { language: "bsh", tag: Tag(0) }, // Kati != Bashkir
200// LangTag { language: "bsk", tag: Tag::from_bytes(b"BSK ") }, // Burushaski
201 LangTag { language: "btb", tag: Tag::from_bytes(b"BTI ") }, // Beti (Cameroon)(retired code)
202 LangTag { language: "btd", tag: Tag::from_bytes(b"BTD ") }, // Batak Dairi (Pakpak)
203 LangTag { language: "btd", tag: Tag::from_bytes(b"BTK ") }, // Batak Dairi -> Batak
204 LangTag { language: "bti", tag: Tag(0) }, // Burate != Beti
205 LangTag { language: "btj", tag: Tag::from_bytes(b"MLY ") }, // Bacanese Malay -> Malay
206// LangTag { language: "btk", tag: Tag::from_bytes(b"BTK ") }, // Batak [collection]
207 LangTag { language: "btm", tag: Tag::from_bytes(b"BTM ") }, // Batak Mandailing
208 LangTag { language: "btm", tag: Tag::from_bytes(b"BTK ") }, // Batak Mandailing -> Batak
209 LangTag { language: "bto", tag: Tag::from_bytes(b"BIK ") }, // Rinconada Bikol -> Bikol
210 LangTag { language: "bts", tag: Tag::from_bytes(b"BTS ") }, // Batak Simalungun
211 LangTag { language: "bts", tag: Tag::from_bytes(b"BTK ") }, // Batak Simalungun -> Batak
212 LangTag { language: "btx", tag: Tag::from_bytes(b"BTX ") }, // Batak Karo
213 LangTag { language: "btx", tag: Tag::from_bytes(b"BTK ") }, // Batak Karo -> Batak
214 LangTag { language: "btz", tag: Tag::from_bytes(b"BTZ ") }, // Batak Alas-Kluet
215 LangTag { language: "btz", tag: Tag::from_bytes(b"BTK ") }, // Batak Alas-Kluet -> Batak
216// LangTag { language: "bug", tag: Tag::from_bytes(b"BUG ") }, // Buginese -> Bugis
217 LangTag { language: "bum", tag: Tag::from_bytes(b"BTI ") }, // Bulu (Cameroon) -> Beti
218 LangTag { language: "bve", tag: Tag::from_bytes(b"MLY ") }, // Berau Malay -> Malay
219 LangTag { language: "bvu", tag: Tag::from_bytes(b"MLY ") }, // Bukit Malay -> Malay
220 LangTag { language: "bwe", tag: Tag::from_bytes(b"KRN ") }, // Bwe Karen -> Karen
221 LangTag { language: "bxk", tag: Tag::from_bytes(b"LUH ") }, // Bukusu -> Luyia
222 LangTag { language: "bxo", tag: Tag::from_bytes(b"CPP ") }, // Barikanchi -> Creoles
223 LangTag { language: "bxp", tag: Tag::from_bytes(b"BTI ") }, // Bebil -> Beti
224 LangTag { language: "bxr", tag: Tag::from_bytes(b"RBU ") }, // Russia Buriat -> Russian Buriat
225 LangTag { language: "byn", tag: Tag::from_bytes(b"BIL ") }, // Bilin -> Bilen
226 LangTag { language: "byv", tag: Tag::from_bytes(b"BYV ") }, // Medumba
227 LangTag { language: "byv", tag: Tag::from_bytes(b"BML ") }, // Medumba -> Bamileke
228 LangTag { language: "bzc", tag: Tag::from_bytes(b"MLG ") }, // Southern Betsimisaraka Malagasy -> Malagasy
229 LangTag { language: "bzj", tag: Tag::from_bytes(b"CPP ") }, // Belize Kriol English -> Creoles
230 LangTag { language: "bzk", tag: Tag::from_bytes(b"CPP ") }, // Nicaragua Creole English -> Creoles
231 LangTag { language: "ca", tag: Tag::from_bytes(b"CAT ") }, // Catalan
232 LangTag { language: "caa", tag: Tag::from_bytes(b"MYN ") }, // Chortí -> Mayan
233 LangTag { language: "cac", tag: Tag::from_bytes(b"MYN ") }, // Chuj -> Mayan
234 LangTag { language: "caf", tag: Tag::from_bytes(b"CRR ") }, // Southern Carrier -> Carrier
235 LangTag { language: "caf", tag: Tag::from_bytes(b"ATH ") }, // Southern Carrier -> Athapaskan
236 LangTag { language: "cak", tag: Tag::from_bytes(b"CAK ") }, // Kaqchikel
237 LangTag { language: "cak", tag: Tag::from_bytes(b"MYN ") }, // Kaqchikel -> Mayan
238// LangTag { language: "cay", tag: Tag::from_bytes(b"CAY ") }, // Cayuga
239// LangTag { language: "cbg", tag: Tag::from_bytes(b"CBG ") }, // Chimila
240 LangTag { language: "cbk", tag: Tag::from_bytes(b"CBK ") }, // Chavacano -> Zamboanga Chavacano
241 LangTag { language: "cbk", tag: Tag::from_bytes(b"CPP ") }, // Chavacano -> Creoles
242 LangTag { language: "cbl", tag: Tag::from_bytes(b"QIN ") }, // Bualkhaw Chin -> Chin
243 LangTag { language: "ccl", tag: Tag::from_bytes(b"CPP ") }, // Cutchi-Swahili -> Creoles
244 LangTag { language: "ccm", tag: Tag::from_bytes(b"CPP ") }, // Malaccan Creole Malay -> Creoles
245 LangTag { language: "cco", tag: Tag::from_bytes(b"CCHN") }, // Comaltepec Chinantec -> Chinantec
246 LangTag { language: "ccq", tag: Tag::from_bytes(b"ARK ") }, // Chaungtha(retired code) -> Rakhine
247 LangTag { language: "cdo", tag: Tag::from_bytes(b"ZHS ") }, // Min Dong Chinese -> Chinese, Simplified
248 LangTag { language: "ce", tag: Tag::from_bytes(b"CHE ") }, // Chechen
249// LangTag { language: "ceb", tag: Tag::from_bytes(b"CEB ") }, // Cebuano
250 LangTag { language: "cek", tag: Tag::from_bytes(b"QIN ") }, // Eastern Khumi Chin -> Chin
251 LangTag { language: "cey", tag: Tag::from_bytes(b"QIN ") }, // Ekai Chin -> Chin
252 LangTag { language: "cfm", tag: Tag::from_bytes(b"HAL ") }, // Halam (Falam Chin)
253 LangTag { language: "cfm", tag: Tag::from_bytes(b"QIN ") }, // Falam Chin -> Chin
254// LangTag { language: "cgg", tag: Tag::from_bytes(b"CGG ") }, // Chiga
255 LangTag { language: "ch", tag: Tag::from_bytes(b"CHA ") }, // Chamorro
256 LangTag { language: "chf", tag: Tag::from_bytes(b"MYN ") }, // Tabasco Chontal -> Mayan
257 LangTag { language: "chg", tag: Tag(0) }, // Chagatai != Chaha Gurage
258 LangTag { language: "chh", tag: Tag(0) }, // Chinook != Chattisgarhi
259 LangTag { language: "chj", tag: Tag::from_bytes(b"CCHN") }, // Ojitlán Chinantec -> Chinantec
260 LangTag { language: "chk", tag: Tag::from_bytes(b"CHK0") }, // Chuukese
261 LangTag { language: "chm", tag: Tag::from_bytes(b"HMA ") }, // Mari (Russia) [macrolanguage] -> High Mari
262 LangTag { language: "chm", tag: Tag::from_bytes(b"LMA ") }, // Mari (Russia) [macrolanguage] -> Low Mari
263 LangTag { language: "chn", tag: Tag::from_bytes(b"CPP ") }, // Chinook jargon -> Creoles
264// LangTag { language: "cho", tag: Tag::from_bytes(b"CHO ") }, // Choctaw
265 LangTag { language: "chp", tag: Tag::from_bytes(b"CHP ") }, // Chipewyan
266 LangTag { language: "chp", tag: Tag::from_bytes(b"SAY ") }, // Chipewyan -> Sayisi
267 LangTag { language: "chp", tag: Tag::from_bytes(b"ATH ") }, // Chipewyan -> Athapaskan
268 LangTag { language: "chq", tag: Tag::from_bytes(b"CCHN") }, // Quiotepec Chinantec -> Chinantec
269// LangTag { language: "chr", tag: Tag::from_bytes(b"CHR ") }, // Cherokee
270// LangTag { language: "chy", tag: Tag::from_bytes(b"CHY ") }, // Cheyenne
271 LangTag { language: "chz", tag: Tag::from_bytes(b"CCHN") }, // Ozumacín Chinantec -> Chinantec
272 LangTag { language: "ciw", tag: Tag::from_bytes(b"OJB ") }, // Chippewa -> Ojibway
273// LangTag { language: "cja", tag: Tag::from_bytes(b"CJA ") }, // Western Cham
274// LangTag { language: "cjm", tag: Tag::from_bytes(b"CJM ") }, // Eastern Cham
275 LangTag { language: "cjy", tag: Tag::from_bytes(b"ZHS ") }, // Jinyu Chinese -> Chinese, Simplified
276 LangTag { language: "cka", tag: Tag::from_bytes(b"QIN ") }, // Khumi Awa Chin(retired code) -> Chin
277 LangTag { language: "ckb", tag: Tag::from_bytes(b"KUR ") }, // Central Kurdish -> Kurdish
278 LangTag { language: "ckn", tag: Tag::from_bytes(b"QIN ") }, // Kaang Chin -> Chin
279 LangTag { language: "cks", tag: Tag::from_bytes(b"CPP ") }, // Tayo -> Creoles
280 LangTag { language: "ckt", tag: Tag::from_bytes(b"CHK ") }, // Chukot -> Chukchi
281 LangTag { language: "ckz", tag: Tag::from_bytes(b"MYN ") }, // Cakchiquel-Quiché Mixed Language -> Mayan
282 LangTag { language: "clc", tag: Tag::from_bytes(b"ATH ") }, // Chilcotin -> Athapaskan
283 LangTag { language: "cld", tag: Tag::from_bytes(b"SYR ") }, // Chaldean Neo-Aramaic -> Syriac
284 LangTag { language: "cle", tag: Tag::from_bytes(b"CCHN") }, // Lealao Chinantec -> Chinantec
285 LangTag { language: "clj", tag: Tag::from_bytes(b"QIN ") }, // Laitu Chin -> Chin
286 LangTag { language: "cls", tag: Tag::from_bytes(b"SAN ") }, // Classical Sanskrit -> Sanskrit
287 LangTag { language: "clt", tag: Tag::from_bytes(b"QIN ") }, // Lautu Chin -> Chin
288// LangTag { language: "cmi", tag: Tag::from_bytes(b"CMI ") }, // Emberá-Chamí
289 LangTag { language: "cmn", tag: Tag::from_bytes(b"ZHS ") }, // Mandarin Chinese -> Chinese, Simplified
290 LangTag { language: "cmr", tag: Tag::from_bytes(b"QIN ") }, // Mro-Khimi Chin -> Chin
291 LangTag { language: "cnb", tag: Tag::from_bytes(b"QIN ") }, // Chinbon Chin -> Chin
292 LangTag { language: "cnh", tag: Tag::from_bytes(b"QIN ") }, // Hakha Chin -> Chin
293 LangTag { language: "cnk", tag: Tag::from_bytes(b"QIN ") }, // Khumi Chin -> Chin
294 LangTag { language: "cnl", tag: Tag::from_bytes(b"CCHN") }, // Lalana Chinantec -> Chinantec
295 LangTag { language: "cnp", tag: Tag::from_bytes(b"ZHS ") }, // Northern Ping Chinese -> Chinese, Simplified
296 LangTag { language: "cnr", tag: Tag::from_bytes(b"SRB ") }, // Montenegrin -> Serbian
297 LangTag { language: "cnt", tag: Tag::from_bytes(b"CCHN") }, // Tepetotutla Chinantec -> Chinantec
298 LangTag { language: "cnu", tag: Tag::from_bytes(b"BBR ") }, // Chenoua -> Berber
299 LangTag { language: "cnw", tag: Tag::from_bytes(b"QIN ") }, // Ngawn Chin -> Chin
300 LangTag { language: "co", tag: Tag::from_bytes(b"COS ") }, // Corsican
301 LangTag { language: "coa", tag: Tag::from_bytes(b"MLY ") }, // Cocos Islands Malay -> Malay
302 LangTag { language: "cob", tag: Tag::from_bytes(b"MYN ") }, // Chicomuceltec -> Mayan
303// LangTag { language: "coo", tag: Tag::from_bytes(b"COO ") }, // Comox
304// LangTag { language: "cop", tag: Tag::from_bytes(b"COP ") }, // Coptic
305 LangTag { language: "coq", tag: Tag::from_bytes(b"ATH ") }, // Coquille -> Athapaskan
306 LangTag { language: "cpa", tag: Tag::from_bytes(b"CCHN") }, // Palantla Chinantec -> Chinantec
307 LangTag { language: "cpe", tag: Tag::from_bytes(b"CPP ") }, // English-based creoles and pidgins [collection] -> Creoles
308 LangTag { language: "cpf", tag: Tag::from_bytes(b"CPP ") }, // French-based creoles and pidgins [collection] -> Creoles
309 LangTag { language: "cpi", tag: Tag::from_bytes(b"CPP ") }, // Chinese Pidgin English -> Creoles
310// LangTag { language: "cpp", tag: Tag::from_bytes(b"CPP ") }, // Portuguese-based creoles and pidgins [collection] -> Creoles
311 LangTag { language: "cpx", tag: Tag::from_bytes(b"ZHS ") }, // Pu-Xian Chinese -> Chinese, Simplified
312 LangTag { language: "cqd", tag: Tag::from_bytes(b"HMN ") }, // Chuanqiandian Cluster Miao -> Hmong
313 LangTag { language: "cqu", tag: Tag::from_bytes(b"QUH ") }, // Chilean Quechua(retired code) -> Quechua (Bolivia)
314 LangTag { language: "cqu", tag: Tag::from_bytes(b"QUZ ") }, // Chilean Quechua(retired code) -> Quechua
315 LangTag { language: "cr", tag: Tag::from_bytes(b"CRE ") }, // Cree [macrolanguage]
316 LangTag { language: "crh", tag: Tag::from_bytes(b"CRT ") }, // Crimean Tatar
317 LangTag { language: "cri", tag: Tag::from_bytes(b"CPP ") }, // Sãotomense -> Creoles
318 LangTag { language: "crj", tag: Tag::from_bytes(b"ECR ") }, // Southern East Cree -> Eastern Cree
319 LangTag { language: "crj", tag: Tag::from_bytes(b"YCR ") }, // Southern East Cree -> Y-Cree
320 LangTag { language: "crj", tag: Tag::from_bytes(b"CRE ") }, // Southern East Cree -> Cree
321 LangTag { language: "crk", tag: Tag::from_bytes(b"WCR ") }, // Plains Cree -> West-Cree
322 LangTag { language: "crk", tag: Tag::from_bytes(b"YCR ") }, // Plains Cree -> Y-Cree
323 LangTag { language: "crk", tag: Tag::from_bytes(b"CRE ") }, // Plains Cree -> Cree
324 LangTag { language: "crl", tag: Tag::from_bytes(b"ECR ") }, // Northern East Cree -> Eastern Cree
325 LangTag { language: "crl", tag: Tag::from_bytes(b"YCR ") }, // Northern East Cree -> Y-Cree
326 LangTag { language: "crl", tag: Tag::from_bytes(b"CRE ") }, // Northern East Cree -> Cree
327 LangTag { language: "crm", tag: Tag::from_bytes(b"MCR ") }, // Moose Cree
328 LangTag { language: "crm", tag: Tag::from_bytes(b"LCR ") }, // Moose Cree -> L-Cree
329 LangTag { language: "crm", tag: Tag::from_bytes(b"CRE ") }, // Moose Cree -> Cree
330 LangTag { language: "crp", tag: Tag::from_bytes(b"CPP ") }, // Creoles and pidgins [collection] -> Creoles
331 LangTag { language: "crr", tag: Tag(0) }, // Carolina Algonquian != Carrier
332 LangTag { language: "crs", tag: Tag::from_bytes(b"CPP ") }, // Seselwa Creole French -> Creoles
333 LangTag { language: "crt", tag: Tag(0) }, // Iyojwa'ja Chorote != Crimean Tatar
334 LangTag { language: "crx", tag: Tag::from_bytes(b"CRR ") }, // Carrier
335 LangTag { language: "crx", tag: Tag::from_bytes(b"ATH ") }, // Carrier -> Athapaskan
336 LangTag { language: "cs", tag: Tag::from_bytes(b"CSY ") }, // Czech
337 LangTag { language: "csa", tag: Tag::from_bytes(b"CCHN") }, // Chiltepec Chinantec -> Chinantec
338// LangTag { language: "csb", tag: Tag::from_bytes(b"CSB ") }, // Kashubian
339 LangTag { language: "csh", tag: Tag::from_bytes(b"QIN ") }, // Asho Chin -> Chin
340 LangTag { language: "csj", tag: Tag::from_bytes(b"QIN ") }, // Songlai Chin -> Chin
341 LangTag { language: "csl", tag: Tag(0) }, // Chinese Sign Language != Church Slavonic
342 LangTag { language: "cso", tag: Tag::from_bytes(b"CCHN") }, // Sochiapam Chinantec -> Chinantec
343 LangTag { language: "csp", tag: Tag::from_bytes(b"ZHS ") }, // Southern Ping Chinese -> Chinese, Simplified
344 LangTag { language: "csv", tag: Tag::from_bytes(b"QIN ") }, // Sumtu Chin -> Chin
345 LangTag { language: "csw", tag: Tag::from_bytes(b"NCR ") }, // Swampy Cree -> N-Cree
346 LangTag { language: "csw", tag: Tag::from_bytes(b"NHC ") }, // Swampy Cree -> Norway House Cree
347 LangTag { language: "csw", tag: Tag::from_bytes(b"CRE ") }, // Swampy Cree -> Cree
348 LangTag { language: "csy", tag: Tag::from_bytes(b"QIN ") }, // Siyin Chin -> Chin
349 LangTag { language: "ctc", tag: Tag::from_bytes(b"ATH ") }, // Chetco -> Athapaskan
350 LangTag { language: "ctd", tag: Tag::from_bytes(b"QIN ") }, // Tedim Chin -> Chin
351 LangTag { language: "cte", tag: Tag::from_bytes(b"CCHN") }, // Tepinapa Chinantec -> Chinantec
352// LangTag { language: "ctg", tag: Tag::from_bytes(b"CTG ") }, // Chittagonian
353 LangTag { language: "cth", tag: Tag::from_bytes(b"QIN ") }, // Thaiphum Chin -> Chin
354 LangTag { language: "ctl", tag: Tag::from_bytes(b"CCHN") }, // Tlacoatzintepec Chinantec -> Chinantec
355// LangTag { language: "cto", tag: Tag::from_bytes(b"CTO ") }, // Emberá-Catío
356 LangTag { language: "cts", tag: Tag::from_bytes(b"BIK ") }, // Northern Catanduanes Bikol -> Bikol
357// LangTag { language: "ctt", tag: Tag::from_bytes(b"CTT ") }, // Wayanad Chetti
358 LangTag { language: "ctu", tag: Tag::from_bytes(b"MYN ") }, // Chol -> Mayan
359 LangTag { language: "cu", tag: Tag::from_bytes(b"CSL ") }, // Church Slavonic
360 LangTag { language: "cuc", tag: Tag::from_bytes(b"CCHN") }, // Usila Chinantec -> Chinantec
361// LangTag { language: "cuk", tag: Tag::from_bytes(b"CUK ") }, // San Blas Kuna
362 LangTag { language: "cv", tag: Tag::from_bytes(b"CHU ") }, // Chuvash
363 LangTag { language: "cvn", tag: Tag::from_bytes(b"CCHN") }, // Valle Nacional Chinantec -> Chinantec
364 LangTag { language: "cwd", tag: Tag::from_bytes(b"DCR ") }, // Woods Cree
365 LangTag { language: "cwd", tag: Tag::from_bytes(b"TCR ") }, // Woods Cree -> TH-Cree
366 LangTag { language: "cwd", tag: Tag::from_bytes(b"CRE ") }, // Woods Cree -> Cree
367 LangTag { language: "cy", tag: Tag::from_bytes(b"WEL ") }, // Welsh
368 LangTag { language: "czh", tag: Tag::from_bytes(b"ZHS ") }, // Huizhou Chinese -> Chinese, Simplified
369 LangTag { language: "czo", tag: Tag::from_bytes(b"ZHS ") }, // Min Zhong Chinese -> Chinese, Simplified
370 LangTag { language: "czt", tag: Tag::from_bytes(b"QIN ") }, // Zotung Chin -> Chin
371 LangTag { language: "da", tag: Tag::from_bytes(b"DAN ") }, // Danish
372// LangTag { language: "dag", tag: Tag::from_bytes(b"DAG ") }, // Dagbani
373 LangTag { language: "dao", tag: Tag::from_bytes(b"QIN ") }, // Daai Chin -> Chin
374 LangTag { language: "dap", tag: Tag::from_bytes(b"NIS ") }, // Nisi (India)(retired code)
375// LangTag { language: "dar", tag: Tag::from_bytes(b"DAR ") }, // Dargwa
376// LangTag { language: "dax", tag: Tag::from_bytes(b"DAX ") }, // Dayi
377 LangTag { language: "dcr", tag: Tag::from_bytes(b"CPP ") }, // Negerhollands -> Creoles
378 LangTag { language: "de", tag: Tag::from_bytes(b"DEU ") }, // German
379 LangTag { language: "den", tag: Tag::from_bytes(b"SLA ") }, // Slave (Athapascan) [macrolanguage] -> Slavey
380 LangTag { language: "den", tag: Tag::from_bytes(b"ATH ") }, // Slave (Athapascan) [macrolanguage] -> Athapaskan
381 LangTag { language: "dep", tag: Tag::from_bytes(b"CPP ") }, // Pidgin Delaware -> Creoles
382 LangTag { language: "dgo", tag: Tag::from_bytes(b"DGO ") }, // Dogri (individual language)
383 LangTag { language: "dgo", tag: Tag::from_bytes(b"DGR ") }, // Dogri (macrolanguage)
384 LangTag { language: "dgr", tag: Tag::from_bytes(b"ATH ") }, // Tlicho -> Athapaskan
385 LangTag { language: "dhd", tag: Tag::from_bytes(b"MAW ") }, // Dhundari -> Marwari
386// LangTag { language: "dhg", tag: Tag::from_bytes(b"DHG ") }, // Dhangu
387 LangTag { language: "dhv", tag: Tag(0) }, // Dehu != Divehi (Dhivehi, Maldivian)(deprecated)
388 LangTag { language: "dib", tag: Tag::from_bytes(b"DNK ") }, // South Central Dinka -> Dinka
389 LangTag { language: "dik", tag: Tag::from_bytes(b"DNK ") }, // Southwestern Dinka -> Dinka
390 LangTag { language: "din", tag: Tag::from_bytes(b"DNK ") }, // Dinka [macrolanguage]
391 LangTag { language: "dip", tag: Tag::from_bytes(b"DNK ") }, // Northeastern Dinka -> Dinka
392 LangTag { language: "diq", tag: Tag::from_bytes(b"DIQ ") }, // Dimli
393 LangTag { language: "diq", tag: Tag::from_bytes(b"ZZA ") }, // Dimli -> Zazaki
394 LangTag { language: "diw", tag: Tag::from_bytes(b"DNK ") }, // Northwestern Dinka -> Dinka
395 LangTag { language: "dje", tag: Tag::from_bytes(b"DJR ") }, // Zarma
396 LangTag { language: "djk", tag: Tag::from_bytes(b"CPP ") }, // Eastern Maroon Creole -> Creoles
397 LangTag { language: "djr", tag: Tag::from_bytes(b"DJR0") }, // Djambarrpuyngu
398 LangTag { language: "dks", tag: Tag::from_bytes(b"DNK ") }, // Southeastern Dinka -> Dinka
399 LangTag { language: "dng", tag: Tag::from_bytes(b"DUN ") }, // Dungan
400// LangTag { language: "dnj", tag: Tag::from_bytes(b"DNJ ") }, // Dan
401 LangTag { language: "dnk", tag: Tag(0) }, // Dengka != Dinka
402 LangTag { language: "doi", tag: Tag::from_bytes(b"DGR ") }, // Dogri (macrolanguage) [macrolanguage]
403 LangTag { language: "drh", tag: Tag::from_bytes(b"MNG ") }, // Darkhat(retired code) -> Mongolian
404 LangTag { language: "dri", tag: Tag(0) }, // C'Lela != Dari
405 LangTag { language: "drw", tag: Tag::from_bytes(b"DRI ") }, // Darwazi(retired code) -> Dari
406 LangTag { language: "drw", tag: Tag::from_bytes(b"FAR ") }, // Darwazi(retired code) -> Persian
407 LangTag { language: "dsb", tag: Tag::from_bytes(b"LSB ") }, // Lower Sorbian
408 LangTag { language: "dty", tag: Tag::from_bytes(b"NEP ") }, // Dotyali -> Nepali
409// LangTag { language: "duj", tag: Tag::from_bytes(b"DUJ ") }, // Dhuwal(retired code)
410 LangTag { language: "dun", tag: Tag(0) }, // Dusun Deyah != Dungan
411 LangTag { language: "dup", tag: Tag::from_bytes(b"MLY ") }, // Duano -> Malay
412 LangTag { language: "dv", tag: Tag::from_bytes(b"DIV ") }, // Divehi (Dhivehi, Maldivian)
413 LangTag { language: "dv", tag: Tag::from_bytes(b"DHV ") }, // Divehi (Dhivehi, Maldivian)(deprecated)
414 LangTag { language: "dwk", tag: Tag::from_bytes(b"KUI ") }, // Dawik Kui -> Kui
415 LangTag { language: "dwu", tag: Tag::from_bytes(b"DUJ ") }, // Dhuwal
416 LangTag { language: "dwy", tag: Tag::from_bytes(b"DUJ ") }, // Dhuwaya -> Dhuwal
417 LangTag { language: "dyu", tag: Tag::from_bytes(b"JUL ") }, // Dyula -> Jula
418 LangTag { language: "dz", tag: Tag::from_bytes(b"DZN ") }, // Dzongkha
419 LangTag { language: "dzn", tag: Tag(0) }, // Dzando != Dzongkha
420 LangTag { language: "ecr", tag: Tag(0) }, // Eteocretan != Eastern Cree
421 LangTag { language: "ee", tag: Tag::from_bytes(b"EWE ") }, // Ewe
422// LangTag { language: "efi", tag: Tag::from_bytes(b"EFI ") }, // Efik
423 LangTag { language: "ekk", tag: Tag::from_bytes(b"ETI ") }, // Standard Estonian -> Estonian
424 LangTag { language: "eky", tag: Tag::from_bytes(b"KRN ") }, // Eastern Kayah -> Karen
425 LangTag { language: "el", tag: Tag::from_bytes(b"ELL ") }, // Modern Greek (1453-) -> Greek
426 LangTag { language: "emk", tag: Tag::from_bytes(b"EMK ") }, // Eastern Maninkakan
427 LangTag { language: "emk", tag: Tag::from_bytes(b"MNK ") }, // Eastern Maninkakan -> Maninka
428// LangTag { language: "emp", tag: Tag::from_bytes(b"EMP ") }, // Northern Emberá
429 LangTag { language: "emy", tag: Tag::from_bytes(b"MYN ") }, // Epigraphic Mayan -> Mayan
430 LangTag { language: "en", tag: Tag::from_bytes(b"ENG ") }, // English
431 LangTag { language: "enb", tag: Tag::from_bytes(b"KAL ") }, // Markweeta -> Kalenjin
432 LangTag { language: "enf", tag: Tag::from_bytes(b"FNE ") }, // Forest Enets
433 LangTag { language: "enh", tag: Tag::from_bytes(b"TNE ") }, // Tundra Enets
434 LangTag { language: "eo", tag: Tag::from_bytes(b"NTO ") }, // Esperanto
435 LangTag { language: "es", tag: Tag::from_bytes(b"ESP ") }, // Spanish
436 LangTag { language: "esg", tag: Tag::from_bytes(b"GON ") }, // Aheri Gondi -> Gondi
437 LangTag { language: "esi", tag: Tag::from_bytes(b"IPK ") }, // North Alaskan Inupiatun -> Inupiat
438 LangTag { language: "esk", tag: Tag::from_bytes(b"IPK ") }, // Northwest Alaska Inupiatun -> Inupiat
439// LangTag { language: "esu", tag: Tag::from_bytes(b"ESU ") }, // Central Yupik
440 LangTag { language: "et", tag: Tag::from_bytes(b"ETI ") }, // Estonian [macrolanguage]
441 LangTag { language: "eto", tag: Tag::from_bytes(b"BTI ") }, // Eton (Cameroon) -> Beti
442 LangTag { language: "eu", tag: Tag::from_bytes(b"EUQ ") }, // Basque
443 LangTag { language: "euq", tag: Tag(0) }, // Basque [collection] != Basque
444 LangTag { language: "eve", tag: Tag::from_bytes(b"EVN ") }, // Even
445 LangTag { language: "evn", tag: Tag::from_bytes(b"EVK ") }, // Evenki
446 LangTag { language: "ewo", tag: Tag::from_bytes(b"BTI ") }, // Ewondo -> Beti
447 LangTag { language: "eyo", tag: Tag::from_bytes(b"KAL ") }, // Keiyo -> Kalenjin
448 LangTag { language: "fa", tag: Tag::from_bytes(b"FAR ") }, // Persian [macrolanguage]
449 LangTag { language: "fab", tag: Tag::from_bytes(b"CPP ") }, // Fa d'Ambu -> Creoles
450 LangTag { language: "fan", tag: Tag::from_bytes(b"FAN0") }, // Fang (Equatorial Guinea)
451 LangTag { language: "fan", tag: Tag::from_bytes(b"BTI ") }, // Fang (Equatorial Guinea) -> Beti
452 LangTag { language: "far", tag: Tag(0) }, // Fataleka != Persian
453 LangTag { language: "fat", tag: Tag::from_bytes(b"FAT ") }, // Fanti
454 LangTag { language: "fat", tag: Tag::from_bytes(b"AKA ") }, // Fanti -> Akan
455 LangTag { language: "fbl", tag: Tag::from_bytes(b"BIK ") }, // West Albay Bikol -> Bikol
456 LangTag { language: "ff", tag: Tag::from_bytes(b"FUL ") }, // Fulah [macrolanguage]
457 LangTag { language: "ffm", tag: Tag::from_bytes(b"FUL ") }, // Maasina Fulfulde -> Fulah
458 LangTag { language: "fi", tag: Tag::from_bytes(b"FIN ") }, // Finnish
459 LangTag { language: "fil", tag: Tag::from_bytes(b"PIL ") }, // Filipino
460 LangTag { language: "fj", tag: Tag::from_bytes(b"FJI ") }, // Fijian
461 LangTag { language: "flm", tag: Tag::from_bytes(b"HAL ") }, // Halam (Falam Chin)(retired code)
462 LangTag { language: "flm", tag: Tag::from_bytes(b"QIN ") }, // Falam Chin(retired code) -> Chin
463 LangTag { language: "fmp", tag: Tag::from_bytes(b"FMP ") }, // Fe’fe’
464 LangTag { language: "fmp", tag: Tag::from_bytes(b"BML ") }, // Fe'fe' -> Bamileke
465 LangTag { language: "fng", tag: Tag::from_bytes(b"CPP ") }, // Fanagalo -> Creoles
466 LangTag { language: "fo", tag: Tag::from_bytes(b"FOS ") }, // Faroese
467// LangTag { language: "fon", tag: Tag::from_bytes(b"FON ") }, // Fon
468 LangTag { language: "fos", tag: Tag(0) }, // Siraya != Faroese
469 LangTag { language: "fpe", tag: Tag::from_bytes(b"CPP ") }, // Fernando Po Creole English -> Creoles
470 LangTag { language: "fr", tag: Tag::from_bytes(b"FRA ") }, // French
471// LangTag { language: "frc", tag: Tag::from_bytes(b"FRC ") }, // Cajun French
472// LangTag { language: "frp", tag: Tag::from_bytes(b"FRP ") }, // Arpitan
473 LangTag { language: "fub", tag: Tag::from_bytes(b"FUL ") }, // Adamawa Fulfulde -> Fulah
474 LangTag { language: "fuc", tag: Tag::from_bytes(b"FUL ") }, // Pulaar -> Fulah
475 LangTag { language: "fue", tag: Tag::from_bytes(b"FUL ") }, // Borgu Fulfulde -> Fulah
476 LangTag { language: "fuf", tag: Tag::from_bytes(b"FTA ") }, // Pular -> Futa
477 LangTag { language: "fuf", tag: Tag::from_bytes(b"FUL ") }, // Pular -> Fulah
478 LangTag { language: "fuh", tag: Tag::from_bytes(b"FUL ") }, // Western Niger Fulfulde -> Fulah
479 LangTag { language: "fui", tag: Tag::from_bytes(b"FUL ") }, // Bagirmi Fulfulde -> Fulah
480 LangTag { language: "fuq", tag: Tag::from_bytes(b"FUL ") }, // Central-Eastern Niger Fulfulde -> Fulah
481 LangTag { language: "fur", tag: Tag::from_bytes(b"FRL ") }, // Friulian
482 LangTag { language: "fuv", tag: Tag::from_bytes(b"FUV ") }, // Nigerian Fulfulde
483 LangTag { language: "fuv", tag: Tag::from_bytes(b"FUL ") }, // Nigerian Fulfulde -> Fulah
484 LangTag { language: "fy", tag: Tag::from_bytes(b"FRI ") }, // Western Frisian -> Frisian
485 LangTag { language: "ga", tag: Tag::from_bytes(b"IRI ") }, // Irish
486 LangTag { language: "ga", tag: Tag::from_bytes(b"IRT ") }, // Irish -> Irish Traditional
487 LangTag { language: "gaa", tag: Tag::from_bytes(b"GAD ") }, // Ga
488 LangTag { language: "gac", tag: Tag::from_bytes(b"CPP ") }, // Mixed Great Andamanese -> Creoles
489 LangTag { language: "gad", tag: Tag(0) }, // Gaddang != Ga
490 LangTag { language: "gae", tag: Tag(0) }, // Guarequena != Scottish Gaelic
491// LangTag { language: "gag", tag: Tag::from_bytes(b"GAG ") }, // Gagauz
492 LangTag { language: "gal", tag: Tag(0) }, // Galolen != Galician
493 LangTag { language: "gan", tag: Tag::from_bytes(b"ZHS ") }, // Gan Chinese -> Chinese, Simplified
494 LangTag { language: "gar", tag: Tag(0) }, // Galeya != Garshuni
495 LangTag { language: "gaw", tag: Tag(0) }, // Nobonob != Garhwali
496 LangTag { language: "gax", tag: Tag::from_bytes(b"ORO ") }, // Borana-Arsi-Guji Oromo -> Oromo
497 LangTag { language: "gaz", tag: Tag::from_bytes(b"ORO ") }, // West Central Oromo -> Oromo
498 LangTag { language: "gbm", tag: Tag::from_bytes(b"GAW ") }, // Garhwali
499 LangTag { language: "gce", tag: Tag::from_bytes(b"ATH ") }, // Galice -> Athapaskan
500 LangTag { language: "gcf", tag: Tag::from_bytes(b"CPP ") }, // Guadeloupean Creole French -> Creoles
501 LangTag { language: "gcl", tag: Tag::from_bytes(b"CPP ") }, // Grenadian Creole English -> Creoles
502 LangTag { language: "gcr", tag: Tag::from_bytes(b"CPP ") }, // Guianese Creole French -> Creoles
503 LangTag { language: "gd", tag: Tag::from_bytes(b"GAE ") }, // Scottish Gaelic
504 LangTag { language: "gda", tag: Tag::from_bytes(b"RAJ ") }, // Gade Lohar -> Rajasthani
505// LangTag { language: "gez", tag: Tag::from_bytes(b"GEZ ") }, // Geez
506 LangTag { language: "ggo", tag: Tag::from_bytes(b"GON ") }, // Southern Gondi(retired code) -> Gondi
507 LangTag { language: "gha", tag: Tag::from_bytes(b"BBR ") }, // Ghadamès -> Berber
508 LangTag { language: "ghc", tag: Tag::from_bytes(b"IRT ") }, // Hiberno-Scottish Gaelic -> Irish Traditional
509 LangTag { language: "ghk", tag: Tag::from_bytes(b"KRN ") }, // Geko Karen -> Karen
510 LangTag { language: "gho", tag: Tag::from_bytes(b"BBR ") }, // Ghomara -> Berber
511 LangTag { language: "gib", tag: Tag::from_bytes(b"CPP ") }, // Gibanawa -> Creoles
512// LangTag { language: "gih", tag: Tag::from_bytes(b"GIH ") }, // Githabul
513 LangTag { language: "gil", tag: Tag::from_bytes(b"GIL0") }, // Kiribati (Gilbertese)
514 LangTag { language: "gju", tag: Tag::from_bytes(b"RAJ ") }, // Gujari -> Rajasthani
515 LangTag { language: "gkp", tag: Tag::from_bytes(b"GKP ") }, // Guinea Kpelle -> Kpelle (Guinea)
516 LangTag { language: "gkp", tag: Tag::from_bytes(b"KPL ") }, // Guinea Kpelle -> Kpelle
517 LangTag { language: "gl", tag: Tag::from_bytes(b"GAL ") }, // Galician
518 LangTag { language: "gld", tag: Tag::from_bytes(b"NAN ") }, // Nanai
519// LangTag { language: "glk", tag: Tag::from_bytes(b"GLK ") }, // Gilaki
520 LangTag { language: "gmz", tag: Tag(0) }, // Mgbolizhia != Gumuz
521 LangTag { language: "gn", tag: Tag::from_bytes(b"GUA ") }, // Guarani [macrolanguage]
522 LangTag { language: "gnb", tag: Tag::from_bytes(b"QIN ") }, // Gangte -> Chin
523// LangTag { language: "gnn", tag: Tag::from_bytes(b"GNN ") }, // Gumatj
524 LangTag { language: "gno", tag: Tag::from_bytes(b"GON ") }, // Northern Gondi -> Gondi
525 LangTag { language: "gnw", tag: Tag::from_bytes(b"GUA ") }, // Western Bolivian Guaraní -> Guarani
526// LangTag { language: "gog", tag: Tag::from_bytes(b"GOG ") }, // Gogo
527 LangTag { language: "gom", tag: Tag::from_bytes(b"KOK ") }, // Goan Konkani -> Konkani
528// LangTag { language: "gon", tag: Tag::from_bytes(b"GON ") }, // Gondi [macrolanguage]
529 LangTag { language: "goq", tag: Tag::from_bytes(b"CPP ") }, // Gorap -> Creoles
530 LangTag { language: "gox", tag: Tag::from_bytes(b"BAD0") }, // Gobu -> Banda
531 LangTag { language: "gpe", tag: Tag::from_bytes(b"CPP ") }, // Ghanaian Pidgin English -> Creoles
532 LangTag { language: "gro", tag: Tag(0) }, // Groma != Garo
533 LangTag { language: "grr", tag: Tag::from_bytes(b"BBR ") }, // Taznatit -> Berber
534 LangTag { language: "grt", tag: Tag::from_bytes(b"GRO ") }, // Garo
535 LangTag { language: "gru", tag: Tag::from_bytes(b"SOG ") }, // Kistane -> Sodo Gurage
536 LangTag { language: "gsw", tag: Tag::from_bytes(b"ALS ") }, // Alsatian
537 LangTag { language: "gu", tag: Tag::from_bytes(b"GUJ ") }, // Gujarati
538 LangTag { language: "gua", tag: Tag(0) }, // Shiki != Guarani
539// LangTag { language: "guc", tag: Tag::from_bytes(b"GUC ") }, // Wayuu
540// LangTag { language: "guf", tag: Tag::from_bytes(b"GUF ") }, // Gupapuyngu
541 LangTag { language: "gug", tag: Tag::from_bytes(b"GUA ") }, // Paraguayan Guaraní -> Guarani
542 LangTag { language: "gui", tag: Tag::from_bytes(b"GUA ") }, // Eastern Bolivian Guaraní -> Guarani
543 LangTag { language: "guk", tag: Tag::from_bytes(b"GMZ ") }, // Gumuz
544 LangTag { language: "gul", tag: Tag::from_bytes(b"CPP ") }, // Sea Island Creole English -> Creoles
545 LangTag { language: "gun", tag: Tag::from_bytes(b"GUA ") }, // Mbyá Guaraní -> Guarani
546// LangTag { language: "guz", tag: Tag::from_bytes(b"GUZ ") }, // Gusii
547 LangTag { language: "gv", tag: Tag::from_bytes(b"MNX ") }, // Manx
548 LangTag { language: "gwi", tag: Tag::from_bytes(b"ATH ") }, // Gwichʼin -> Athapaskan
549 LangTag { language: "gyn", tag: Tag::from_bytes(b"CPP ") }, // Guyanese Creole English -> Creoles
550 LangTag { language: "ha", tag: Tag::from_bytes(b"HAU ") }, // Hausa
551 LangTag { language: "haa", tag: Tag::from_bytes(b"ATH ") }, // Han -> Athapaskan
552 LangTag { language: "hae", tag: Tag::from_bytes(b"ORO ") }, // Eastern Oromo -> Oromo
553 LangTag { language: "hai", tag: Tag::from_bytes(b"HAI0") }, // Haida [macrolanguage]
554 LangTag { language: "hak", tag: Tag::from_bytes(b"ZHS ") }, // Hakka Chinese -> Chinese, Simplified
555 LangTag { language: "hal", tag: Tag(0) }, // Halang != Halam (Falam Chin)
556 LangTag { language: "har", tag: Tag::from_bytes(b"HRI ") }, // Harari
557// LangTag { language: "haw", tag: Tag::from_bytes(b"HAW ") }, // Hawaiian
558 LangTag { language: "hax", tag: Tag::from_bytes(b"HAI0") }, // Southern Haida -> Haida
559// LangTag { language: "hay", tag: Tag::from_bytes(b"HAY ") }, // Haya
560// LangTag { language: "haz", tag: Tag::from_bytes(b"HAZ ") }, // Hazaragi
561 LangTag { language: "hbn", tag: Tag(0) }, // Heiban != Hammer-Banna
562 LangTag { language: "hca", tag: Tag::from_bytes(b"CPP ") }, // Andaman Creole Hindi -> Creoles
563 LangTag { language: "hdn", tag: Tag::from_bytes(b"HAI0") }, // Northern Haida -> Haida
564 LangTag { language: "he", tag: Tag::from_bytes(b"IWR ") }, // Hebrew
565 LangTag { language: "hea", tag: Tag::from_bytes(b"HMN ") }, // Northern Qiandong Miao -> Hmong
566// LangTag { language: "hei", tag: Tag::from_bytes(b"HEI ") }, // Heiltsuk
567 LangTag { language: "hi", tag: Tag::from_bytes(b"HIN ") }, // Hindi
568// LangTag { language: "hil", tag: Tag::from_bytes(b"HIL ") }, // Hiligaynon
569 LangTag { language: "hji", tag: Tag::from_bytes(b"MLY ") }, // Haji -> Malay
570 LangTag { language: "hlt", tag: Tag::from_bytes(b"QIN ") }, // Matu Chin -> Chin
571 LangTag { language: "hma", tag: Tag::from_bytes(b"HMN ") }, // Southern Mashan Hmong -> Hmong
572 LangTag { language: "hmc", tag: Tag::from_bytes(b"HMN ") }, // Central Huishui Hmong -> Hmong
573 LangTag { language: "hmd", tag: Tag::from_bytes(b"HMD ") }, // Large Flowery Miao -> A-Hmao
574 LangTag { language: "hmd", tag: Tag::from_bytes(b"HMN ") }, // Large Flowery Miao -> Hmong
575 LangTag { language: "hme", tag: Tag::from_bytes(b"HMN ") }, // Eastern Huishui Hmong -> Hmong
576 LangTag { language: "hmg", tag: Tag::from_bytes(b"HMN ") }, // Southwestern Guiyang Hmong -> Hmong
577 LangTag { language: "hmh", tag: Tag::from_bytes(b"HMN ") }, // Southwestern Huishui Hmong -> Hmong
578 LangTag { language: "hmi", tag: Tag::from_bytes(b"HMN ") }, // Northern Huishui Hmong -> Hmong
579 LangTag { language: "hmj", tag: Tag::from_bytes(b"HMN ") }, // Ge -> Hmong
580 LangTag { language: "hml", tag: Tag::from_bytes(b"HMN ") }, // Luopohe Hmong -> Hmong
581 LangTag { language: "hmm", tag: Tag::from_bytes(b"HMN ") }, // Central Mashan Hmong -> Hmong
582// LangTag { language: "hmn", tag: Tag::from_bytes(b"HMN ") }, // Hmong [macrolanguage]
583 LangTag { language: "hmp", tag: Tag::from_bytes(b"HMN ") }, // Northern Mashan Hmong -> Hmong
584 LangTag { language: "hmq", tag: Tag::from_bytes(b"HMN ") }, // Eastern Qiandong Miao -> Hmong
585 LangTag { language: "hmr", tag: Tag::from_bytes(b"QIN ") }, // Hmar -> Chin
586 LangTag { language: "hms", tag: Tag::from_bytes(b"HMN ") }, // Southern Qiandong Miao -> Hmong
587 LangTag { language: "hmw", tag: Tag::from_bytes(b"HMN ") }, // Western Mashan Hmong -> Hmong
588 LangTag { language: "hmy", tag: Tag::from_bytes(b"HMN ") }, // Southern Guiyang Hmong -> Hmong
589 LangTag { language: "hmz", tag: Tag::from_bytes(b"HMZ ") }, // Hmong Shua -> Hmong Shuat
590 LangTag { language: "hmz", tag: Tag::from_bytes(b"HMN ") }, // Hmong Shua -> Hmong
591// LangTag { language: "hnd", tag: Tag::from_bytes(b"HND ") }, // Southern Hindko -> Hindko
592 LangTag { language: "hne", tag: Tag::from_bytes(b"CHH ") }, // Chhattisgarhi -> Chattisgarhi
593 LangTag { language: "hnj", tag: Tag::from_bytes(b"HMN ") }, // Hmong Njua -> Hmong
594 LangTag { language: "hno", tag: Tag::from_bytes(b"HND ") }, // Northern Hindko -> Hindko
595 LangTag { language: "ho", tag: Tag::from_bytes(b"HMO ") }, // Hiri Motu
596 LangTag { language: "ho", tag: Tag::from_bytes(b"CPP ") }, // Hiri Motu -> Creoles
597 LangTag { language: "hoc", tag: Tag::from_bytes(b"HO ") }, // Ho
598 LangTag { language: "hoi", tag: Tag::from_bytes(b"ATH ") }, // Holikachuk -> Athapaskan
599 LangTag { language: "hoj", tag: Tag::from_bytes(b"HAR ") }, // Hadothi -> Harauti
600 LangTag { language: "hoj", tag: Tag::from_bytes(b"RAJ ") }, // Hadothi -> Rajasthani
601 LangTag { language: "hr", tag: Tag::from_bytes(b"HRV ") }, // Croatian
602 LangTag { language: "hra", tag: Tag::from_bytes(b"QIN ") }, // Hrangkhol -> Chin
603 LangTag { language: "hrm", tag: Tag::from_bytes(b"HMN ") }, // Horned Miao -> Hmong
604 LangTag { language: "hsb", tag: Tag::from_bytes(b"USB ") }, // Upper Sorbian
605 LangTag { language: "hsn", tag: Tag::from_bytes(b"ZHS ") }, // Xiang Chinese -> Chinese, Simplified
606 LangTag { language: "ht", tag: Tag::from_bytes(b"HAI ") }, // Haitian (Haitian Creole)
607 LangTag { language: "ht", tag: Tag::from_bytes(b"CPP ") }, // Haitian -> Creoles
608 LangTag { language: "hu", tag: Tag::from_bytes(b"HUN ") }, // Hungarian
609 LangTag { language: "huj", tag: Tag::from_bytes(b"HMN ") }, // Northern Guiyang Hmong -> Hmong
610 LangTag { language: "hup", tag: Tag::from_bytes(b"ATH ") }, // Hupa -> Athapaskan
611// LangTag { language: "hur", tag: Tag::from_bytes(b"HUR ") }, // Halkomelem
612 LangTag { language: "hus", tag: Tag::from_bytes(b"MYN ") }, // Huastec -> Mayan
613 LangTag { language: "hwc", tag: Tag::from_bytes(b"CPP ") }, // Hawai'i Creole English -> Creoles
614 LangTag { language: "hy", tag: Tag::from_bytes(b"HYE0") }, // Armenian -> Armenian East
615 LangTag { language: "hy", tag: Tag::from_bytes(b"HYE ") }, // Armenian
616 LangTag { language: "hyw", tag: Tag::from_bytes(b"HYE ") }, // Western Armenian -> Armenian
617 LangTag { language: "hz", tag: Tag::from_bytes(b"HER ") }, // Herero
618 LangTag { language: "ia", tag: Tag::from_bytes(b"INA ") }, // Interlingua (International Auxiliary Language Association)
619// LangTag { language: "iba", tag: Tag::from_bytes(b"IBA ") }, // Iban
620// LangTag { language: "ibb", tag: Tag::from_bytes(b"IBB ") }, // Ibibio
621 LangTag { language: "iby", tag: Tag::from_bytes(b"IJO ") }, // Ibani -> Ijo
622 LangTag { language: "icr", tag: Tag::from_bytes(b"CPP ") }, // Islander Creole English -> Creoles
623 LangTag { language: "id", tag: Tag::from_bytes(b"IND ") }, // Indonesian
624 LangTag { language: "id", tag: Tag::from_bytes(b"MLY ") }, // Indonesian -> Malay
625 LangTag { language: "ida", tag: Tag::from_bytes(b"LUH ") }, // Idakho-Isukha-Tiriki -> Luyia
626 LangTag { language: "idb", tag: Tag::from_bytes(b"CPP ") }, // Indo-Portuguese -> Creoles
627 LangTag { language: "ie", tag: Tag::from_bytes(b"ILE ") }, // Interlingue
628 LangTag { language: "ig", tag: Tag::from_bytes(b"IBO ") }, // Igbo
629 LangTag { language: "igb", tag: Tag::from_bytes(b"EBI ") }, // Ebira
630 LangTag { language: "ihb", tag: Tag::from_bytes(b"CPP ") }, // Iha Based Pidgin -> Creoles
631 LangTag { language: "ii", tag: Tag::from_bytes(b"YIM ") }, // Sichuan Yi -> Yi Modern
632 LangTag { language: "ijc", tag: Tag::from_bytes(b"IJO ") }, // Izon -> Ijo
633 LangTag { language: "ije", tag: Tag::from_bytes(b"IJO ") }, // Biseni -> Ijo
634 LangTag { language: "ijn", tag: Tag::from_bytes(b"IJO ") }, // Kalabari -> Ijo
635// LangTag { language: "ijo", tag: Tag::from_bytes(b"IJO ") }, // Ijo [collection]
636 LangTag { language: "ijs", tag: Tag::from_bytes(b"IJO ") }, // Southeast Ijo -> Ijo
637 LangTag { language: "ik", tag: Tag::from_bytes(b"IPK ") }, // Inupiaq [macrolanguage] -> Inupiat
638 LangTag { language: "ike", tag: Tag::from_bytes(b"INU ") }, // Eastern Canadian Inuktitut -> Inuktitut
639 LangTag { language: "ike", tag: Tag::from_bytes(b"INUK") }, // Eastern Canadian Inuktitut -> Nunavik Inuktitut
640 LangTag { language: "ikt", tag: Tag::from_bytes(b"INU ") }, // Inuinnaqtun -> Inuktitut
641// LangTag { language: "ilo", tag: Tag::from_bytes(b"ILO ") }, // Iloko -> Ilokano
642 LangTag { language: "in", tag: Tag::from_bytes(b"IND ") }, // Indonesian(retired code)
643 LangTag { language: "in", tag: Tag::from_bytes(b"MLY ") }, // Indonesian(retired code) -> Malay
644 LangTag { language: "ing", tag: Tag::from_bytes(b"ATH ") }, // Degexit'an -> Athapaskan
645 LangTag { language: "inh", tag: Tag::from_bytes(b"ING ") }, // Ingush
646 LangTag { language: "io", tag: Tag::from_bytes(b"IDO ") }, // Ido
647 LangTag { language: "iri", tag: Tag(0) }, // Rigwe != Irish
648// LangTag { language: "iru", tag: Tag::from_bytes(b"IRU ") }, // Irula
649 LangTag { language: "is", tag: Tag::from_bytes(b"ISL ") }, // Icelandic
650 LangTag { language: "ism", tag: Tag(0) }, // Masimasi != Inari Sami
651 LangTag { language: "it", tag: Tag::from_bytes(b"ITA ") }, // Italian
652 LangTag { language: "itz", tag: Tag::from_bytes(b"MYN ") }, // Itzá -> Mayan
653 LangTag { language: "iu", tag: Tag::from_bytes(b"INU ") }, // Inuktitut [macrolanguage]
654 LangTag { language: "iu", tag: Tag::from_bytes(b"INUK") }, // Inuktitut [macrolanguage] -> Nunavik Inuktitut
655 LangTag { language: "iw", tag: Tag::from_bytes(b"IWR ") }, // Hebrew(retired code)
656 LangTag { language: "ixl", tag: Tag::from_bytes(b"MYN ") }, // Ixil -> Mayan
657 LangTag { language: "ja", tag: Tag::from_bytes(b"JAN ") }, // Japanese
658 LangTag { language: "jac", tag: Tag::from_bytes(b"MYN ") }, // Popti' -> Mayan
659 LangTag { language: "jak", tag: Tag::from_bytes(b"MLY ") }, // Jakun -> Malay
660 LangTag { language: "jam", tag: Tag::from_bytes(b"JAM ") }, // Jamaican Creole English -> Jamaican Creole
661 LangTag { language: "jam", tag: Tag::from_bytes(b"CPP ") }, // Jamaican Creole English -> Creoles
662 LangTag { language: "jan", tag: Tag(0) }, // Jandai != Japanese
663 LangTag { language: "jax", tag: Tag::from_bytes(b"MLY ") }, // Jambi Malay -> Malay
664 LangTag { language: "jbe", tag: Tag::from_bytes(b"BBR ") }, // Judeo-Berber -> Berber
665 LangTag { language: "jbn", tag: Tag::from_bytes(b"BBR ") }, // Nafusi -> Berber
666// LangTag { language: "jbo", tag: Tag::from_bytes(b"JBO ") }, // Lojban
667// LangTag { language: "jct", tag: Tag::from_bytes(b"JCT ") }, // Krymchak
668// LangTag { language: "jdt", tag: Tag::from_bytes(b"JDT ") }, // Judeo-Tat
669 LangTag { language: "jgo", tag: Tag::from_bytes(b"BML ") }, // Ngomba -> Bamileke
670 LangTag { language: "ji", tag: Tag::from_bytes(b"JII ") }, // Yiddish(retired code)
671 LangTag { language: "jii", tag: Tag(0) }, // Jiiddu != Yiddish
672 LangTag { language: "jkm", tag: Tag::from_bytes(b"KRN ") }, // Mobwa Karen -> Karen
673 LangTag { language: "jkp", tag: Tag::from_bytes(b"KRN ") }, // Paku Karen -> Karen
674 LangTag { language: "jud", tag: Tag(0) }, // Worodougou != Ladino
675 LangTag { language: "jul", tag: Tag(0) }, // Jirel != Jula
676 LangTag { language: "jv", tag: Tag::from_bytes(b"JAV ") }, // Javanese
677 LangTag { language: "jvd", tag: Tag::from_bytes(b"CPP ") }, // Javindo -> Creoles
678 LangTag { language: "jw", tag: Tag::from_bytes(b"JAV ") }, // Javanese(retired code)
679 LangTag { language: "ka", tag: Tag::from_bytes(b"KAT ") }, // Georgian
680 LangTag { language: "kaa", tag: Tag::from_bytes(b"KRK ") }, // Karakalpak
681 LangTag { language: "kab", tag: Tag::from_bytes(b"KAB0") }, // Kabyle
682 LangTag { language: "kab", tag: Tag::from_bytes(b"BBR ") }, // Kabyle -> Berber
683 LangTag { language: "kac", tag: Tag(0) }, // Kachin != Kachchi
684 LangTag { language: "kam", tag: Tag::from_bytes(b"KMB ") }, // Kamba (Kenya)
685 LangTag { language: "kar", tag: Tag::from_bytes(b"KRN ") }, // Karen [collection]
686// LangTag { language: "kaw", tag: Tag::from_bytes(b"KAW ") }, // Kawi (Old Javanese)
687// LangTag { language: "kbc", tag: Tag::from_bytes(b"KBC ") }, // Kadiwéu
688 LangTag { language: "kbd", tag: Tag::from_bytes(b"KAB ") }, // Kabardian
689 LangTag { language: "kby", tag: Tag::from_bytes(b"KNR ") }, // Manga Kanuri -> Kanuri
690 LangTag { language: "kca", tag: Tag::from_bytes(b"KHK ") }, // Khanty -> Khanty-Kazim
691 LangTag { language: "kca", tag: Tag::from_bytes(b"KHS ") }, // Khanty -> Khanty-Shurishkar
692 LangTag { language: "kca", tag: Tag::from_bytes(b"KHV ") }, // Khanty -> Khanty-Vakhi
693 LangTag { language: "kcn", tag: Tag::from_bytes(b"CPP ") }, // Nubi -> Creoles
694// LangTag { language: "kde", tag: Tag::from_bytes(b"KDE ") }, // Makonde
695 LangTag { language: "kdr", tag: Tag::from_bytes(b"KRM ") }, // Karaim
696 LangTag { language: "kdt", tag: Tag::from_bytes(b"KUY ") }, // Kuy
697 LangTag { language: "kea", tag: Tag::from_bytes(b"KEA ") }, // Kabuverdianu (Crioulo)
698 LangTag { language: "kea", tag: Tag::from_bytes(b"CPP ") }, // Kabuverdianu -> Creoles
699 LangTag { language: "keb", tag: Tag(0) }, // Kélé != Kebena
700 LangTag { language: "kek", tag: Tag::from_bytes(b"KEK ") }, // Kekchi
701 LangTag { language: "kek", tag: Tag::from_bytes(b"MYN ") }, // Kekchí -> Mayan
702 LangTag { language: "kex", tag: Tag::from_bytes(b"KKN ") }, // Kukna -> Kokni
703 LangTag { language: "kfa", tag: Tag::from_bytes(b"KOD ") }, // Kodava -> Kodagu
704 LangTag { language: "kfr", tag: Tag::from_bytes(b"KAC ") }, // Kachhi -> Kachchi
705 LangTag { language: "kfx", tag: Tag::from_bytes(b"KUL ") }, // Kullu Pahari -> Kulvi
706 LangTag { language: "kfy", tag: Tag::from_bytes(b"KMN ") }, // Kumaoni
707 LangTag { language: "kg", tag: Tag::from_bytes(b"KON0") }, // Kongo [macrolanguage]
708 LangTag { language: "kge", tag: Tag(0) }, // Komering != Khutsuri Georgian
709 LangTag { language: "kha", tag: Tag::from_bytes(b"KSI ") }, // Khasi
710 LangTag { language: "khb", tag: Tag::from_bytes(b"XBD ") }, // Lü
711 LangTag { language: "khk", tag: Tag::from_bytes(b"MNG ") }, // Halh Mongolian -> Mongolian
712 LangTag { language: "khn", tag: Tag(0) }, // Khandesi != Khamti Shan(Microsoft fonts)
713 LangTag { language: "khs", tag: Tag(0) }, // Kasua != Khanty-Shurishkar
714 LangTag { language: "kht", tag: Tag::from_bytes(b"KHT ") }, // Khamti -> Khamti Shan
715 LangTag { language: "kht", tag: Tag::from_bytes(b"KHN ") }, // Khamti -> Khamti Shan(Microsoft fonts)
716 LangTag { language: "khv", tag: Tag(0) }, // Khvarshi != Khanty-Vakhi
717// LangTag { language: "khw", tag: Tag::from_bytes(b"KHW ") }, // Khowar
718 LangTag { language: "ki", tag: Tag::from_bytes(b"KIK ") }, // Kikuyu (Gikuyu)
719 LangTag { language: "kis", tag: Tag(0) }, // Kis != Kisii
720 LangTag { language: "kiu", tag: Tag::from_bytes(b"KIU ") }, // Kirmanjki
721 LangTag { language: "kiu", tag: Tag::from_bytes(b"ZZA ") }, // Kirmanjki -> Zazaki
722 LangTag { language: "kj", tag: Tag::from_bytes(b"KUA ") }, // Kuanyama
723 LangTag { language: "kjb", tag: Tag::from_bytes(b"MYN ") }, // Q'anjob'al -> Mayan
724// LangTag { language: "kjd", tag: Tag::from_bytes(b"KJD ") }, // Southern Kiwai
725 LangTag { language: "kjh", tag: Tag::from_bytes(b"KHA ") }, // Khakas -> Khakass
726// LangTag { language: "kjj", tag: Tag::from_bytes(b"KJJ ") }, // Khinalugh -> Khinalug
727 LangTag { language: "kjp", tag: Tag::from_bytes(b"KJP ") }, // Pwo Eastern Karen -> Eastern Pwo Karen
728 LangTag { language: "kjp", tag: Tag::from_bytes(b"KRN ") }, // Pwo Eastern Karen -> Karen
729 LangTag { language: "kjt", tag: Tag::from_bytes(b"KRN ") }, // Phrae Pwo Karen -> Karen
730// LangTag { language: "kjz", tag: Tag::from_bytes(b"KJZ ") }, // Bumthangkha
731 LangTag { language: "kk", tag: Tag::from_bytes(b"KAZ ") }, // Kazakh
732 LangTag { language: "kkn", tag: Tag(0) }, // Kon Keu != Kokni
733 LangTag { language: "kkz", tag: Tag::from_bytes(b"ATH ") }, // Kaska -> Athapaskan
734 LangTag { language: "kl", tag: Tag::from_bytes(b"GRN ") }, // Greenlandic
735 LangTag { language: "klm", tag: Tag(0) }, // Migum != Kalmyk
736 LangTag { language: "kln", tag: Tag::from_bytes(b"KAL ") }, // Kalenjin [macrolanguage]
737 LangTag { language: "km", tag: Tag::from_bytes(b"KHM ") }, // Khmer
738 LangTag { language: "kmb", tag: Tag::from_bytes(b"MBN ") }, // Kimbundu -> Mbundu
739 LangTag { language: "kmn", tag: Tag(0) }, // Awtuw != Kumaoni
740 LangTag { language: "kmo", tag: Tag(0) }, // Kwoma != Komo
741 LangTag { language: "kmr", tag: Tag::from_bytes(b"KUR ") }, // Northern Kurdish -> Kurdish
742 LangTag { language: "kms", tag: Tag(0) }, // Kamasau != Komso
743 LangTag { language: "kmv", tag: Tag::from_bytes(b"CPP ") }, // Karipúna Creole French -> Creoles
744 LangTag { language: "kmw", tag: Tag::from_bytes(b"KMO ") }, // Komo (Democratic Republic of Congo)
745// LangTag { language: "kmz", tag: Tag::from_bytes(b"KMZ ") }, // Khorasani Turkish -> Khorasani Turkic
746 LangTag { language: "kn", tag: Tag::from_bytes(b"KAN ") }, // Kannada
747 LangTag { language: "knc", tag: Tag::from_bytes(b"KNR ") }, // Central Kanuri -> Kanuri
748 LangTag { language: "kng", tag: Tag::from_bytes(b"KON0") }, // Koongo -> Kongo
749 LangTag { language: "knj", tag: Tag::from_bytes(b"MYN ") }, // Western Kanjobal -> Mayan
750 LangTag { language: "knn", tag: Tag::from_bytes(b"KOK ") }, // Konkani
751 LangTag { language: "knr", tag: Tag(0) }, // Kaningra != Kanuri
752 LangTag { language: "ko", tag: Tag::from_bytes(b"KOR ") }, // Korean
753 LangTag { language: "ko", tag: Tag::from_bytes(b"KOH ") }, // Korean -> Korean Old Hangul
754 LangTag { language: "kod", tag: Tag(0) }, // Kodi != Kodagu
755 LangTag { language: "koh", tag: Tag(0) }, // Koyo != Korean Old Hangul
756 LangTag { language: "koi", tag: Tag::from_bytes(b"KOP ") }, // Komi-Permyak
757 LangTag { language: "koi", tag: Tag::from_bytes(b"KOM ") }, // Komi-Permyak -> Komi
758// LangTag { language: "kok", tag: Tag::from_bytes(b"KOK ") }, // Konkani [macrolanguage]
759 LangTag { language: "kop", tag: Tag(0) }, // Waube != Komi-Permyak
760// LangTag { language: "kos", tag: Tag::from_bytes(b"KOS ") }, // Kosraean
761 LangTag { language: "koy", tag: Tag::from_bytes(b"ATH ") }, // Koyukon -> Athapaskan
762 LangTag { language: "koz", tag: Tag(0) }, // Korak != Komi-Zyrian
763 LangTag { language: "kpe", tag: Tag::from_bytes(b"KPL ") }, // Kpelle [macrolanguage]
764 LangTag { language: "kpl", tag: Tag(0) }, // Kpala != Kpelle
765 LangTag { language: "kpp", tag: Tag::from_bytes(b"KRN ") }, // Paku Karen(retired code) -> Karen
766 LangTag { language: "kpv", tag: Tag::from_bytes(b"KOZ ") }, // Komi-Zyrian
767 LangTag { language: "kpv", tag: Tag::from_bytes(b"KOM ") }, // Komi-Zyrian -> Komi
768 LangTag { language: "kpy", tag: Tag::from_bytes(b"KYK ") }, // Koryak
769 LangTag { language: "kqs", tag: Tag::from_bytes(b"KIS ") }, // Northern Kissi -> Kisii
770 LangTag { language: "kqy", tag: Tag::from_bytes(b"KRT ") }, // Koorete
771 LangTag { language: "kr", tag: Tag::from_bytes(b"KNR ") }, // Kanuri [macrolanguage]
772 LangTag { language: "krc", tag: Tag::from_bytes(b"KAR ") }, // Karachay-Balkar -> Karachay
773 LangTag { language: "krc", tag: Tag::from_bytes(b"BAL ") }, // Karachay-Balkar -> Balkar
774 LangTag { language: "kri", tag: Tag::from_bytes(b"KRI ") }, // Krio
775 LangTag { language: "kri", tag: Tag::from_bytes(b"CPP ") }, // Krio -> Creoles
776 LangTag { language: "krk", tag: Tag(0) }, // Kerek != Karakalpak
777// LangTag { language: "krl", tag: Tag::from_bytes(b"KRL ") }, // Karelian
778 LangTag { language: "krm", tag: Tag(0) }, // Krim(retired code) != Karaim
779 LangTag { language: "krn", tag: Tag(0) }, // Sapo != Karen
780 LangTag { language: "krt", tag: Tag::from_bytes(b"KNR ") }, // Tumari Kanuri -> Kanuri
781 LangTag { language: "kru", tag: Tag::from_bytes(b"KUU ") }, // Kurukh
782 LangTag { language: "ks", tag: Tag::from_bytes(b"KSH ") }, // Kashmiri
783 LangTag { language: "ksh", tag: Tag::from_bytes(b"KSH0") }, // Kölsch -> Ripuarian
784 LangTag { language: "ksi", tag: Tag(0) }, // Krisa != Khasi
785 LangTag { language: "ksm", tag: Tag(0) }, // Kumba != Kildin Sami
786 LangTag { language: "kss", tag: Tag::from_bytes(b"KIS ") }, // Southern Kisi -> Kisii
787 LangTag { language: "ksw", tag: Tag::from_bytes(b"KSW ") }, // S’gaw Karen
788 LangTag { language: "ksw", tag: Tag::from_bytes(b"KRN ") }, // S'gaw Karen -> Karen
789 LangTag { language: "ktb", tag: Tag::from_bytes(b"KEB ") }, // Kambaata -> Kebena
790 LangTag { language: "ktu", tag: Tag::from_bytes(b"KON ") }, // Kituba (Democratic Republic of Congo) -> Kikongo
791 LangTag { language: "ktw", tag: Tag::from_bytes(b"ATH ") }, // Kato -> Athapaskan
792 LangTag { language: "ku", tag: Tag::from_bytes(b"KUR ") }, // Kurdish [macrolanguage]
793 LangTag { language: "kui", tag: Tag(0) }, // Kuikúro-Kalapálo != Kui
794 LangTag { language: "kul", tag: Tag(0) }, // Kulere != Kulvi
795// LangTag { language: "kum", tag: Tag::from_bytes(b"KUM ") }, // Kumyk
796 LangTag { language: "kuu", tag: Tag::from_bytes(b"ATH ") }, // Upper Kuskokwim -> Athapaskan
797 LangTag { language: "kuw", tag: Tag::from_bytes(b"BAD0") }, // Kpagua -> Banda
798 LangTag { language: "kuy", tag: Tag(0) }, // Kuuku-Ya'u != Kuy
799 LangTag { language: "kv", tag: Tag::from_bytes(b"KOM ") }, // Komi [macrolanguage]
800 LangTag { language: "kvb", tag: Tag::from_bytes(b"MLY ") }, // Kubu -> Malay
801 LangTag { language: "kvl", tag: Tag::from_bytes(b"KRN ") }, // Kayaw -> Karen
802 LangTag { language: "kvq", tag: Tag::from_bytes(b"KRN ") }, // Geba Karen -> Karen
803 LangTag { language: "kvr", tag: Tag::from_bytes(b"MLY ") }, // Kerinci -> Malay
804 LangTag { language: "kvt", tag: Tag::from_bytes(b"KRN ") }, // Lahta Karen -> Karen
805 LangTag { language: "kvu", tag: Tag::from_bytes(b"KRN ") }, // Yinbaw Karen -> Karen
806 LangTag { language: "kvy", tag: Tag::from_bytes(b"KRN ") }, // Yintale Karen -> Karen
807 LangTag { language: "kw", tag: Tag::from_bytes(b"COR ") }, // Cornish
808// LangTag { language: "kwk", tag: Tag::from_bytes(b"KWK ") }, // Kwakiutl -> Kwakʼwala
809 LangTag { language: "kww", tag: Tag::from_bytes(b"CPP ") }, // Kwinti -> Creoles
810 LangTag { language: "kwy", tag: Tag::from_bytes(b"KON0") }, // San Salvador Kongo -> Kongo
811 LangTag { language: "kxc", tag: Tag::from_bytes(b"KMS ") }, // Konso -> Komso
812 LangTag { language: "kxd", tag: Tag::from_bytes(b"MLY ") }, // Brunei -> Malay
813 LangTag { language: "kxf", tag: Tag::from_bytes(b"KRN ") }, // Manumanaw Karen -> Karen
814 LangTag { language: "kxk", tag: Tag::from_bytes(b"KRN ") }, // Zayein Karen -> Karen
815 LangTag { language: "kxl", tag: Tag::from_bytes(b"KUU ") }, // Nepali Kurux(retired code) -> Kurukh
816 LangTag { language: "kxu", tag: Tag::from_bytes(b"KUI ") }, // Kui (India)(retired code)
817 LangTag { language: "ky", tag: Tag::from_bytes(b"KIR ") }, // Kirghiz (Kyrgyz)
818 LangTag { language: "kyk", tag: Tag(0) }, // Kamayo != Koryak
819 LangTag { language: "kyu", tag: Tag::from_bytes(b"KYU ") }, // Western Kayah
820 LangTag { language: "kyu", tag: Tag::from_bytes(b"KRN ") }, // Western Kayah -> Karen
821 LangTag { language: "la", tag: Tag::from_bytes(b"LAT ") }, // Latin
822 LangTag { language: "lac", tag: Tag::from_bytes(b"MYN ") }, // Lacandon -> Mayan
823 LangTag { language: "lad", tag: Tag::from_bytes(b"JUD ") }, // Ladino
824 LangTag { language: "lah", tag: Tag(0) }, // Lahnda [macrolanguage] != Lahuli
825 LangTag { language: "lak", tag: Tag(0) }, // Laka (Nigeria)(retired code) != Lak
826 LangTag { language: "lam", tag: Tag(0) }, // Lamba != Lambani
827 LangTag { language: "laz", tag: Tag(0) }, // Aribwatsa != Laz
828 LangTag { language: "lb", tag: Tag::from_bytes(b"LTZ ") }, // Luxembourgish
829 LangTag { language: "lbe", tag: Tag::from_bytes(b"LAK ") }, // Lak
830 LangTag { language: "lbj", tag: Tag::from_bytes(b"LDK ") }, // Ladakhi
831 LangTag { language: "lbl", tag: Tag::from_bytes(b"BIK ") }, // Libon Bikol -> Bikol
832 LangTag { language: "lce", tag: Tag::from_bytes(b"MLY ") }, // Loncong -> Malay
833 LangTag { language: "lcf", tag: Tag::from_bytes(b"MLY ") }, // Lubu -> Malay
834 LangTag { language: "ldi", tag: Tag::from_bytes(b"KON0") }, // Laari -> Kongo
835 LangTag { language: "ldk", tag: Tag(0) }, // Leelau != Ladakhi
836// LangTag { language: "lef", tag: Tag::from_bytes(b"LEF ") }, // Lelemi
837// LangTag { language: "lez", tag: Tag::from_bytes(b"LEZ ") }, // Lezghian -> Lezgi
838 LangTag { language: "lg", tag: Tag::from_bytes(b"LUG ") }, // Ganda
839 LangTag { language: "li", tag: Tag::from_bytes(b"LIM ") }, // Limburgish
840 LangTag { language: "lif", tag: Tag::from_bytes(b"LMB ") }, // Limbu
841// LangTag { language: "lij", tag: Tag::from_bytes(b"LIJ ") }, // Ligurian
842 LangTag { language: "lir", tag: Tag::from_bytes(b"CPP ") }, // Liberian English -> Creoles
843// LangTag { language: "lis", tag: Tag::from_bytes(b"LIS ") }, // Lisu
844// LangTag { language: "liv", tag: Tag::from_bytes(b"LIV ") }, // Liv
845 LangTag { language: "liw", tag: Tag::from_bytes(b"MLY ") }, // Col -> Malay
846 LangTag { language: "liy", tag: Tag::from_bytes(b"BAD0") }, // Banda-Bambari -> Banda
847// LangTag { language: "ljp", tag: Tag::from_bytes(b"LJP ") }, // Lampung Api -> Lampung
848 LangTag { language: "lkb", tag: Tag::from_bytes(b"LUH ") }, // Kabras -> Luyia
849// LangTag { language: "lki", tag: Tag::from_bytes(b"LKI ") }, // Laki
850 LangTag { language: "lko", tag: Tag::from_bytes(b"LUH ") }, // Khayo -> Luyia
851 LangTag { language: "lks", tag: Tag::from_bytes(b"LUH ") }, // Kisa -> Luyia
852 LangTag { language: "lld", tag: Tag::from_bytes(b"LAD ") }, // Ladin
853 LangTag { language: "lma", tag: Tag(0) }, // East Limba != Low Mari
854 LangTag { language: "lmb", tag: Tag(0) }, // Merei != Limbu
855 LangTag { language: "lmn", tag: Tag::from_bytes(b"LAM ") }, // Lambadi -> Lambani
856// LangTag { language: "lmo", tag: Tag::from_bytes(b"LMO ") }, // Lombard
857 LangTag { language: "lmw", tag: Tag(0) }, // Lake Miwok != Lomwe
858 LangTag { language: "ln", tag: Tag::from_bytes(b"LIN ") }, // Lingala
859 LangTag { language: "lna", tag: Tag::from_bytes(b"BAD0") }, // Langbashe -> Banda
860 LangTag { language: "lnl", tag: Tag::from_bytes(b"BAD0") }, // South Central Banda -> Banda
861 LangTag { language: "lo", tag: Tag::from_bytes(b"LAO ") }, // Lao
862// LangTag { language: "lom", tag: Tag::from_bytes(b"LOM ") }, // Loma (Liberia)
863 LangTag { language: "lou", tag: Tag::from_bytes(b"CPP ") }, // Louisiana Creole -> Creoles
864// LangTag { language: "lpo", tag: Tag::from_bytes(b"LPO ") }, // Lipo
865// LangTag { language: "lrc", tag: Tag::from_bytes(b"LRC ") }, // Northern Luri -> Luri
866 LangTag { language: "lri", tag: Tag::from_bytes(b"LUH ") }, // Marachi -> Luyia
867 LangTag { language: "lrm", tag: Tag::from_bytes(b"LUH ") }, // Marama -> Luyia
868 LangTag { language: "lrt", tag: Tag::from_bytes(b"CPP ") }, // Larantuka Malay -> Creoles
869 LangTag { language: "lsb", tag: Tag(0) }, // Burundian Sign Language != Lower Sorbian
870 LangTag { language: "lsm", tag: Tag::from_bytes(b"LUH ") }, // Saamia -> Luyia
871 LangTag { language: "lt", tag: Tag::from_bytes(b"LTH ") }, // Lithuanian
872 LangTag { language: "ltg", tag: Tag::from_bytes(b"LVI ") }, // Latgalian -> Latvian
873 LangTag { language: "lth", tag: Tag(0) }, // Thur != Lithuanian
874 LangTag { language: "lto", tag: Tag::from_bytes(b"LUH ") }, // Tsotso -> Luyia
875 LangTag { language: "lts", tag: Tag::from_bytes(b"LUH ") }, // Tachoni -> Luyia
876 LangTag { language: "lu", tag: Tag::from_bytes(b"LUB ") }, // Luba-Katanga
877// LangTag { language: "lua", tag: Tag::from_bytes(b"LUA ") }, // Luba-Lulua
878// LangTag { language: "luo", tag: Tag::from_bytes(b"LUO ") }, // Luo (Kenya and Tanzania)
879 LangTag { language: "lus", tag: Tag::from_bytes(b"MIZ ") }, // Lushai -> Mizo
880 LangTag { language: "lus", tag: Tag::from_bytes(b"QIN ") }, // Lushai -> Chin
881 LangTag { language: "luy", tag: Tag::from_bytes(b"LUH ") }, // Luyia [macrolanguage]
882 LangTag { language: "luz", tag: Tag::from_bytes(b"LRC ") }, // Southern Luri -> Luri
883 LangTag { language: "lv", tag: Tag::from_bytes(b"LVI ") }, // Latvian [macrolanguage]
884 LangTag { language: "lvi", tag: Tag(0) }, // Lavi != Latvian
885 LangTag { language: "lvs", tag: Tag::from_bytes(b"LVI ") }, // Standard Latvian -> Latvian
886 LangTag { language: "lwg", tag: Tag::from_bytes(b"LUH ") }, // Wanga -> Luyia
887 LangTag { language: "lzh", tag: Tag::from_bytes(b"ZHT ") }, // Literary Chinese -> Chinese, Traditional
888 LangTag { language: "lzz", tag: Tag::from_bytes(b"LAZ ") }, // Laz
889// LangTag { language: "mad", tag: Tag::from_bytes(b"MAD ") }, // Madurese -> Madura
890// LangTag { language: "mag", tag: Tag::from_bytes(b"MAG ") }, // Magahi
891 LangTag { language: "mai", tag: Tag::from_bytes(b"MTH ") }, // Maithili
892 LangTag { language: "maj", tag: Tag(0) }, // Jalapa De Díaz Mazatec != Majang
893 LangTag { language: "mak", tag: Tag::from_bytes(b"MKR ") }, // Makasar
894 LangTag { language: "mam", tag: Tag::from_bytes(b"MAM ") }, // Mam
895 LangTag { language: "mam", tag: Tag::from_bytes(b"MYN ") }, // Mam -> Mayan
896 LangTag { language: "man", tag: Tag::from_bytes(b"MNK ") }, // Mandingo [macrolanguage] -> Maninka
897 LangTag { language: "map", tag: Tag(0) }, // Austronesian [collection] != Mapudungun
898 LangTag { language: "maw", tag: Tag(0) }, // Mampruli != Marwari
899 LangTag { language: "max", tag: Tag::from_bytes(b"MLY ") }, // North Moluccan Malay -> Malay
900 LangTag { language: "max", tag: Tag::from_bytes(b"CPP ") }, // North Moluccan Malay -> Creoles
901 LangTag { language: "mbf", tag: Tag::from_bytes(b"CPP ") }, // Baba Malay -> Creoles
902 LangTag { language: "mbn", tag: Tag(0) }, // Macaguán != Mbundu
903// LangTag { language: "mbo", tag: Tag::from_bytes(b"MBO ") }, // Mbo (Cameroon)
904 LangTag { language: "mch", tag: Tag(0) }, // Maquiritari != Manchu
905 LangTag { language: "mcm", tag: Tag::from_bytes(b"CPP ") }, // Malaccan Creole Portuguese -> Creoles
906 LangTag { language: "mcr", tag: Tag(0) }, // Menya != Moose Cree
907 LangTag { language: "mct", tag: Tag::from_bytes(b"BTI ") }, // Mengisa -> Beti
908 LangTag { language: "mde", tag: Tag(0) }, // Maba (Chad) != Mende
909 LangTag { language: "mdf", tag: Tag::from_bytes(b"MOK ") }, // Moksha
910// LangTag { language: "mdr", tag: Tag::from_bytes(b"MDR ") }, // Mandar
911 LangTag { language: "mdy", tag: Tag::from_bytes(b"MLE ") }, // Male (Ethiopia)
912 LangTag { language: "men", tag: Tag::from_bytes(b"MDE ") }, // Mende (Sierra Leone)
913 LangTag { language: "meo", tag: Tag::from_bytes(b"MLY ") }, // Kedah Malay -> Malay
914// LangTag { language: "mer", tag: Tag::from_bytes(b"MER ") }, // Meru
915// LangTag { language: "mev", tag: Tag::from_bytes(b"MEV ") }, // Mano
916 LangTag { language: "mfa", tag: Tag::from_bytes(b"MFA ") }, // Pattani Malay
917 LangTag { language: "mfa", tag: Tag::from_bytes(b"MLY ") }, // Pattani Malay -> Malay
918 LangTag { language: "mfb", tag: Tag::from_bytes(b"MLY ") }, // Bangka -> Malay
919 LangTag { language: "mfe", tag: Tag::from_bytes(b"MFE ") }, // Morisyen
920 LangTag { language: "mfe", tag: Tag::from_bytes(b"CPP ") }, // Morisyen -> Creoles
921 LangTag { language: "mfp", tag: Tag::from_bytes(b"CPP ") }, // Makassar Malay -> Creoles
922 LangTag { language: "mg", tag: Tag::from_bytes(b"MLG ") }, // Malagasy [macrolanguage]
923 LangTag { language: "mga", tag: Tag::from_bytes(b"SGA ") }, // Middle Irish (900-1200) -> Old Irish
924 LangTag { language: "mh", tag: Tag::from_bytes(b"MAH ") }, // Marshallese
925 LangTag { language: "mhc", tag: Tag::from_bytes(b"MYN ") }, // Mocho -> Mayan
926 LangTag { language: "mhr", tag: Tag::from_bytes(b"LMA ") }, // Eastern Mari -> Low Mari
927 LangTag { language: "mhv", tag: Tag::from_bytes(b"ARK ") }, // Arakanese(retired code) -> Rakhine
928 LangTag { language: "mi", tag: Tag::from_bytes(b"MRI ") }, // Maori
929 LangTag { language: "min", tag: Tag::from_bytes(b"MIN ") }, // Minangkabau
930 LangTag { language: "min", tag: Tag::from_bytes(b"MLY ") }, // Minangkabau -> Malay
931 LangTag { language: "miz", tag: Tag(0) }, // Coatzospan Mixtec != Mizo
932 LangTag { language: "mk", tag: Tag::from_bytes(b"MKD ") }, // Macedonian
933 LangTag { language: "mkn", tag: Tag::from_bytes(b"CPP ") }, // Kupang Malay -> Creoles
934 LangTag { language: "mkr", tag: Tag(0) }, // Malas != Makasar
935 LangTag { language: "mku", tag: Tag::from_bytes(b"MNK ") }, // Konyanka Maninka -> Maninka
936// LangTag { language: "mkw", tag: Tag::from_bytes(b"MKW ") }, // Kituba (Congo)
937 LangTag { language: "ml", tag: Tag::from_bytes(b"MAL ") }, // Malayalam -> Malayalam Traditional
938 LangTag { language: "ml", tag: Tag::from_bytes(b"MLR ") }, // Malayalam -> Malayalam Reformed
939 LangTag { language: "mle", tag: Tag(0) }, // Manambu != Male
940 LangTag { language: "mln", tag: Tag(0) }, // Malango != Malinke
941 LangTag { language: "mlq", tag: Tag::from_bytes(b"MLN ") }, // Western Maninkakan -> Malinke
942 LangTag { language: "mlq", tag: Tag::from_bytes(b"MNK ") }, // Western Maninkakan -> Maninka
943 LangTag { language: "mlr", tag: Tag(0) }, // Vame != Malayalam Reformed
944 LangTag { language: "mmr", tag: Tag::from_bytes(b"HMN ") }, // Western Xiangxi Miao -> Hmong
945 LangTag { language: "mn", tag: Tag::from_bytes(b"MNG ") }, // Mongolian [macrolanguage]
946 LangTag { language: "mnc", tag: Tag::from_bytes(b"MCH ") }, // Manchu
947 LangTag { language: "mnd", tag: Tag(0) }, // Mondé != Mandinka
948 LangTag { language: "mng", tag: Tag(0) }, // Eastern Mnong != Mongolian
949 LangTag { language: "mnh", tag: Tag::from_bytes(b"BAD0") }, // Mono (Democratic Republic of Congo) -> Banda
950// LangTag { language: "mni", tag: Tag::from_bytes(b"MNI ") }, // Manipuri
951 LangTag { language: "mnk", tag: Tag::from_bytes(b"MND ") }, // Mandinka
952 LangTag { language: "mnk", tag: Tag::from_bytes(b"MNK ") }, // Mandinka -> Maninka
953 LangTag { language: "mnp", tag: Tag::from_bytes(b"ZHS ") }, // Min Bei Chinese -> Chinese, Simplified
954 LangTag { language: "mns", tag: Tag::from_bytes(b"MAN ") }, // Mansi
955 LangTag { language: "mnw", tag: Tag::from_bytes(b"MON ") }, // Mon
956 LangTag { language: "mnw", tag: Tag::from_bytes(b"MONT") }, // Mon -> Thailand Mon
957 LangTag { language: "mnx", tag: Tag(0) }, // Manikion != Manx
958 LangTag { language: "mo", tag: Tag::from_bytes(b"MOL ") }, // Moldavian(retired code)
959 LangTag { language: "mo", tag: Tag::from_bytes(b"ROM ") }, // Moldavian(retired code) -> Romanian
960 LangTag { language: "mod", tag: Tag::from_bytes(b"CPP ") }, // Mobilian -> Creoles
961// LangTag { language: "moh", tag: Tag::from_bytes(b"MOH ") }, // Mohawk
962 LangTag { language: "mok", tag: Tag(0) }, // Morori != Moksha
963 LangTag { language: "mop", tag: Tag::from_bytes(b"MYN ") }, // Mopán Maya -> Mayan
964 LangTag { language: "mor", tag: Tag(0) }, // Moro != Moroccan
965// LangTag { language: "mos", tag: Tag::from_bytes(b"MOS ") }, // Mossi
966 LangTag { language: "mpe", tag: Tag::from_bytes(b"MAJ ") }, // Majang
967 LangTag { language: "mqg", tag: Tag::from_bytes(b"MLY ") }, // Kota Bangun Kutai Malay -> Malay
968 LangTag { language: "mr", tag: Tag::from_bytes(b"MAR ") }, // Marathi
969 LangTag { language: "mrh", tag: Tag::from_bytes(b"QIN ") }, // Mara Chin -> Chin
970 LangTag { language: "mrj", tag: Tag::from_bytes(b"HMA ") }, // Western Mari -> High Mari
971 LangTag { language: "ms", tag: Tag::from_bytes(b"MLY ") }, // Malay [macrolanguage]
972 LangTag { language: "msc", tag: Tag::from_bytes(b"MNK ") }, // Sankaran Maninka -> Maninka
973 LangTag { language: "msh", tag: Tag::from_bytes(b"MLG ") }, // Masikoro Malagasy -> Malagasy
974 LangTag { language: "msi", tag: Tag::from_bytes(b"MLY ") }, // Sabah Malay -> Malay
975 LangTag { language: "msi", tag: Tag::from_bytes(b"CPP ") }, // Sabah Malay -> Creoles
976 LangTag { language: "mt", tag: Tag::from_bytes(b"MTS ") }, // Maltese
977 LangTag { language: "mth", tag: Tag(0) }, // Munggui != Maithili
978 LangTag { language: "mtr", tag: Tag::from_bytes(b"MAW ") }, // Mewari -> Marwari
979 LangTag { language: "mts", tag: Tag(0) }, // Yora != Maltese
980 LangTag { language: "mud", tag: Tag::from_bytes(b"CPP ") }, // Mednyj Aleut -> Creoles
981 LangTag { language: "mui", tag: Tag::from_bytes(b"MLY ") }, // Musi -> Malay
982 LangTag { language: "mun", tag: Tag(0) }, // Munda [collection] != Mundari
983 LangTag { language: "mup", tag: Tag::from_bytes(b"RAJ ") }, // Malvi -> Rajasthani
984 LangTag { language: "muq", tag: Tag::from_bytes(b"HMN ") }, // Eastern Xiangxi Miao -> Hmong
985// LangTag { language: "mus", tag: Tag::from_bytes(b"MUS ") }, // Creek -> Muscogee
986 LangTag { language: "mvb", tag: Tag::from_bytes(b"ATH ") }, // Mattole -> Athapaskan
987 LangTag { language: "mve", tag: Tag::from_bytes(b"MAW ") }, // Marwari (Pakistan)
988 LangTag { language: "mvf", tag: Tag::from_bytes(b"MNG ") }, // Peripheral Mongolian -> Mongolian
989 LangTag { language: "mwk", tag: Tag::from_bytes(b"MNK ") }, // Kita Maninkakan -> Maninka
990// LangTag { language: "mwl", tag: Tag::from_bytes(b"MWL ") }, // Mirandese
991 LangTag { language: "mwq", tag: Tag::from_bytes(b"QIN ") }, // Mün Chin -> Chin
992 LangTag { language: "mwr", tag: Tag::from_bytes(b"MAW ") }, // Marwari [macrolanguage]
993 LangTag { language: "mww", tag: Tag::from_bytes(b"MWW ") }, // Hmong Daw
994 LangTag { language: "mww", tag: Tag::from_bytes(b"HMN ") }, // Hmong Daw -> Hmong
995 LangTag { language: "my", tag: Tag::from_bytes(b"BRM ") }, // Burmese
996 LangTag { language: "mym", tag: Tag::from_bytes(b"MEN ") }, // Me’en
997// LangTag { language: "myn", tag: Tag::from_bytes(b"MYN ") }, // Mayan [collection]
998 LangTag { language: "myq", tag: Tag::from_bytes(b"MNK ") }, // Forest Maninka(retired code) -> Maninka
999 LangTag { language: "myv", tag: Tag::from_bytes(b"ERZ ") }, // Erzya
1000 LangTag { language: "mzb", tag: Tag::from_bytes(b"BBR ") }, // Tumzabt -> Berber
1001// LangTag { language: "mzn", tag: Tag::from_bytes(b"MZN ") }, // Mazanderani
1002 LangTag { language: "mzs", tag: Tag::from_bytes(b"CPP ") }, // Macanese -> Creoles
1003 LangTag { language: "na", tag: Tag::from_bytes(b"NAU ") }, // Nauru -> Nauruan
1004 LangTag { language: "nag", tag: Tag::from_bytes(b"NAG ") }, // Naga Pidgin -> Naga-Assamese
1005 LangTag { language: "nag", tag: Tag::from_bytes(b"CPP ") }, // Naga Pidgin -> Creoles
1006// LangTag { language: "nah", tag: Tag::from_bytes(b"NAH ") }, // Nahuatl [collection]
1007 LangTag { language: "nan", tag: Tag::from_bytes(b"ZHS ") }, // Min Nan Chinese -> Chinese, Simplified
1008// LangTag { language: "nap", tag: Tag::from_bytes(b"NAP ") }, // Neapolitan
1009 LangTag { language: "nas", tag: Tag(0) }, // Naasioi != Naskapi
1010 LangTag { language: "naz", tag: Tag::from_bytes(b"NAH ") }, // Coatepec Nahuatl -> Nahuatl
1011 LangTag { language: "nb", tag: Tag::from_bytes(b"NOR ") }, // Norwegian Bokmål -> Norwegian
1012 LangTag { language: "nch", tag: Tag::from_bytes(b"NAH ") }, // Central Huasteca Nahuatl -> Nahuatl
1013 LangTag { language: "nci", tag: Tag::from_bytes(b"NAH ") }, // Classical Nahuatl -> Nahuatl
1014 LangTag { language: "ncj", tag: Tag::from_bytes(b"NAH ") }, // Northern Puebla Nahuatl -> Nahuatl
1015 LangTag { language: "ncl", tag: Tag::from_bytes(b"NAH ") }, // Michoacán Nahuatl -> Nahuatl
1016 LangTag { language: "ncr", tag: Tag(0) }, // Ncane != N-Cree
1017 LangTag { language: "ncx", tag: Tag::from_bytes(b"NAH ") }, // Central Puebla Nahuatl -> Nahuatl
1018 LangTag { language: "nd", tag: Tag::from_bytes(b"NDB ") }, // North Ndebele -> Ndebele
1019 LangTag { language: "ndb", tag: Tag(0) }, // Kenswei Nsei != Ndebele
1020// LangTag { language: "ndc", tag: Tag::from_bytes(b"NDC ") }, // Ndau
1021 LangTag { language: "ndg", tag: Tag(0) }, // Ndengereko != Ndonga
1022// LangTag { language: "nds", tag: Tag::from_bytes(b"NDS ") }, // Low Saxon
1023 LangTag { language: "ne", tag: Tag::from_bytes(b"NEP ") }, // Nepali [macrolanguage]
1024 LangTag { language: "nef", tag: Tag::from_bytes(b"CPP ") }, // Nefamese -> Creoles
1025// LangTag { language: "new", tag: Tag::from_bytes(b"NEW ") }, // Newari
1026 LangTag { language: "ng", tag: Tag::from_bytes(b"NDG ") }, // Ndonga
1027// LangTag { language: "nga", tag: Tag::from_bytes(b"NGA ") }, // Ngbaka
1028 LangTag { language: "ngl", tag: Tag::from_bytes(b"LMW ") }, // Lomwe
1029 LangTag { language: "ngm", tag: Tag::from_bytes(b"CPP ") }, // Ngatik Men's Creole -> Creoles
1030 LangTag { language: "ngo", tag: Tag::from_bytes(b"SXT ") }, // Ngoni(retired code) -> Sutu
1031 LangTag { language: "ngr", tag: Tag(0) }, // Engdewu != Nagari
1032 LangTag { language: "ngu", tag: Tag::from_bytes(b"NAH ") }, // Guerrero Nahuatl -> Nahuatl
1033 LangTag { language: "nhc", tag: Tag::from_bytes(b"NAH ") }, // Tabasco Nahuatl -> Nahuatl
1034 LangTag { language: "nhd", tag: Tag::from_bytes(b"GUA ") }, // Chiripá -> Guarani
1035 LangTag { language: "nhe", tag: Tag::from_bytes(b"NAH ") }, // Eastern Huasteca Nahuatl -> Nahuatl
1036 LangTag { language: "nhg", tag: Tag::from_bytes(b"NAH ") }, // Tetelcingo Nahuatl -> Nahuatl
1037 LangTag { language: "nhi", tag: Tag::from_bytes(b"NAH ") }, // Zacatlán-Ahuacatlán-Tepetzintla Nahuatl -> Nahuatl
1038 LangTag { language: "nhk", tag: Tag::from_bytes(b"NAH ") }, // Isthmus-Cosoleacaque Nahuatl -> Nahuatl
1039 LangTag { language: "nhm", tag: Tag::from_bytes(b"NAH ") }, // Morelos Nahuatl -> Nahuatl
1040 LangTag { language: "nhn", tag: Tag::from_bytes(b"NAH ") }, // Central Nahuatl -> Nahuatl
1041 LangTag { language: "nhp", tag: Tag::from_bytes(b"NAH ") }, // Isthmus-Pajapan Nahuatl -> Nahuatl
1042 LangTag { language: "nhq", tag: Tag::from_bytes(b"NAH ") }, // Huaxcaleca Nahuatl -> Nahuatl
1043 LangTag { language: "nht", tag: Tag::from_bytes(b"NAH ") }, // Ometepec Nahuatl -> Nahuatl
1044 LangTag { language: "nhv", tag: Tag::from_bytes(b"NAH ") }, // Temascaltepec Nahuatl -> Nahuatl
1045 LangTag { language: "nhw", tag: Tag::from_bytes(b"NAH ") }, // Western Huasteca Nahuatl -> Nahuatl
1046 LangTag { language: "nhx", tag: Tag::from_bytes(b"NAH ") }, // Isthmus-Mecayapan Nahuatl -> Nahuatl
1047 LangTag { language: "nhy", tag: Tag::from_bytes(b"NAH ") }, // Northern Oaxaca Nahuatl -> Nahuatl
1048 LangTag { language: "nhz", tag: Tag::from_bytes(b"NAH ") }, // Santa María La Alta Nahuatl -> Nahuatl
1049 LangTag { language: "niq", tag: Tag::from_bytes(b"KAL ") }, // Nandi -> Kalenjin
1050 LangTag { language: "nis", tag: Tag(0) }, // Nimi != Nisi
1051// LangTag { language: "niu", tag: Tag::from_bytes(b"NIU ") }, // Niuean
1052 LangTag { language: "niv", tag: Tag::from_bytes(b"GIL ") }, // Gilyak
1053 LangTag { language: "njt", tag: Tag::from_bytes(b"CPP ") }, // Ndyuka-Trio Pidgin -> Creoles
1054 LangTag { language: "njz", tag: Tag::from_bytes(b"NIS ") }, // Nyishi -> Nisi
1055 LangTag { language: "nko", tag: Tag(0) }, // Nkonya != N’Ko
1056 LangTag { language: "nkx", tag: Tag::from_bytes(b"IJO ") }, // Nkoroo -> Ijo
1057 LangTag { language: "nl", tag: Tag::from_bytes(b"NLD ") }, // Dutch
1058 LangTag { language: "nla", tag: Tag::from_bytes(b"BML ") }, // Ngombale -> Bamileke
1059 LangTag { language: "nle", tag: Tag::from_bytes(b"LUH ") }, // East Nyala -> Luyia
1060 LangTag { language: "nln", tag: Tag::from_bytes(b"NAH ") }, // Durango Nahuatl(retired code) -> Nahuatl
1061 LangTag { language: "nlv", tag: Tag::from_bytes(b"NAH ") }, // Orizaba Nahuatl -> Nahuatl
1062 LangTag { language: "nn", tag: Tag::from_bytes(b"NYN ") }, // Norwegian Nynorsk (Nynorsk, Norwegian)
1063 LangTag { language: "nnh", tag: Tag::from_bytes(b"BML ") }, // Ngiemboon -> Bamileke
1064 LangTag { language: "nnz", tag: Tag::from_bytes(b"BML ") }, // Nda'nda' -> Bamileke
1065 LangTag { language: "no", tag: Tag::from_bytes(b"NOR ") }, // Norwegian [macrolanguage]
1066 LangTag { language: "nod", tag: Tag::from_bytes(b"NTA ") }, // Northern Thai -> Northern Tai
1067// LangTag { language: "noe", tag: Tag::from_bytes(b"NOE ") }, // Nimadi
1068// LangTag { language: "nog", tag: Tag::from_bytes(b"NOG ") }, // Nogai
1069// LangTag { language: "nov", tag: Tag::from_bytes(b"NOV ") }, // Novial
1070 LangTag { language: "npi", tag: Tag::from_bytes(b"NEP ") }, // Nepali
1071 LangTag { language: "npl", tag: Tag::from_bytes(b"NAH ") }, // Southeastern Puebla Nahuatl -> Nahuatl
1072 LangTag { language: "nqo", tag: Tag::from_bytes(b"NKO ") }, // N’Ko
1073 LangTag { language: "nr", tag: Tag::from_bytes(b"NDB ") }, // South Ndebele -> Ndebele
1074 LangTag { language: "nsk", tag: Tag::from_bytes(b"NAS ") }, // Naskapi
1075 LangTag { language: "nsm", tag: Tag(0) }, // Sumi Naga != Northern Sami
1076// LangTag { language: "nso", tag: Tag::from_bytes(b"NSO ") }, // Northern Sotho
1077 LangTag { language: "nsu", tag: Tag::from_bytes(b"NAH ") }, // Sierra Negra Nahuatl -> Nahuatl
1078 LangTag { language: "nto", tag: Tag(0) }, // Ntomba != Esperanto
1079 LangTag { language: "nue", tag: Tag::from_bytes(b"BAD0") }, // Ngundu -> Banda
1080 LangTag { language: "nuu", tag: Tag::from_bytes(b"BAD0") }, // Ngbundu -> Banda
1081 LangTag { language: "nuz", tag: Tag::from_bytes(b"NAH ") }, // Tlamacazapa Nahuatl -> Nahuatl
1082 LangTag { language: "nv", tag: Tag::from_bytes(b"NAV ") }, // Navajo
1083 LangTag { language: "nv", tag: Tag::from_bytes(b"ATH ") }, // Navajo -> Athapaskan
1084 LangTag { language: "nwe", tag: Tag::from_bytes(b"BML ") }, // Ngwe -> Bamileke
1085 LangTag { language: "ny", tag: Tag::from_bytes(b"CHI ") }, // Chichewa (Chewa, Nyanja)
1086 LangTag { language: "nyd", tag: Tag::from_bytes(b"LUH ") }, // Nyore -> Luyia
1087// LangTag { language: "nym", tag: Tag::from_bytes(b"NYM ") }, // Nyamwezi
1088 LangTag { language: "nyn", tag: Tag::from_bytes(b"NKL ") }, // Nyankole
1089// LangTag { language: "nza", tag: Tag::from_bytes(b"NZA ") }, // Tigon Mbembe -> Mbembe Tigon
1090 LangTag { language: "oc", tag: Tag::from_bytes(b"OCI ") }, // Occitan (post 1500)
1091 LangTag { language: "oj", tag: Tag::from_bytes(b"OJB ") }, // Ojibwa [macrolanguage] -> Ojibway
1092// LangTag { language: "ojb", tag: Tag::from_bytes(b"OJB ") }, // Northwestern Ojibwa -> Ojibway
1093 LangTag { language: "ojc", tag: Tag::from_bytes(b"OJB ") }, // Central Ojibwa -> Ojibway
1094 LangTag { language: "ojg", tag: Tag::from_bytes(b"OJB ") }, // Eastern Ojibwa -> Ojibway
1095 LangTag { language: "ojs", tag: Tag::from_bytes(b"OCR ") }, // Severn Ojibwa -> Oji-Cree
1096 LangTag { language: "ojs", tag: Tag::from_bytes(b"OJB ") }, // Severn Ojibwa -> Ojibway
1097 LangTag { language: "ojw", tag: Tag::from_bytes(b"OJB ") }, // Western Ojibwa -> Ojibway
1098 LangTag { language: "okd", tag: Tag::from_bytes(b"IJO ") }, // Okodia -> Ijo
1099 LangTag { language: "oki", tag: Tag::from_bytes(b"KAL ") }, // Okiek -> Kalenjin
1100 LangTag { language: "okm", tag: Tag::from_bytes(b"KOH ") }, // Middle Korean (10th-16th cent.) -> Korean Old Hangul
1101 LangTag { language: "okr", tag: Tag::from_bytes(b"IJO ") }, // Kirike -> Ijo
1102 LangTag { language: "om", tag: Tag::from_bytes(b"ORO ") }, // Oromo [macrolanguage]
1103// LangTag { language: "one", tag: Tag::from_bytes(b"ONE ") }, // Oneida
1104// LangTag { language: "ono", tag: Tag::from_bytes(b"ONO ") }, // Onondaga
1105 LangTag { language: "onx", tag: Tag::from_bytes(b"CPP ") }, // Onin Based Pidgin -> Creoles
1106 LangTag { language: "oor", tag: Tag::from_bytes(b"CPP ") }, // Oorlams -> Creoles
1107 LangTag { language: "or", tag: Tag::from_bytes(b"ORI ") }, // Odia [macrolanguage]
1108 LangTag { language: "orc", tag: Tag::from_bytes(b"ORO ") }, // Orma -> Oromo
1109 LangTag { language: "orn", tag: Tag::from_bytes(b"MLY ") }, // Orang Kanaq -> Malay
1110 LangTag { language: "oro", tag: Tag(0) }, // Orokolo != Oromo
1111 LangTag { language: "orr", tag: Tag::from_bytes(b"IJO ") }, // Oruma -> Ijo
1112 LangTag { language: "ors", tag: Tag::from_bytes(b"MLY ") }, // Orang Seletar -> Malay
1113 LangTag { language: "ory", tag: Tag::from_bytes(b"ORI ") }, // Odia
1114 LangTag { language: "os", tag: Tag::from_bytes(b"OSS ") }, // Ossetian
1115 LangTag { language: "otw", tag: Tag::from_bytes(b"OJB ") }, // Ottawa -> Ojibway
1116 LangTag { language: "oua", tag: Tag::from_bytes(b"BBR ") }, // Tagargrent -> Berber
1117 LangTag { language: "pa", tag: Tag::from_bytes(b"PAN ") }, // Punjabi
1118 LangTag { language: "paa", tag: Tag(0) }, // Papuan [collection] != Palestinian Aramaic
1119// LangTag { language: "pag", tag: Tag::from_bytes(b"PAG ") }, // Pangasinan
1120 LangTag { language: "pal", tag: Tag(0) }, // Pahlavi != Pali
1121// LangTag { language: "pam", tag: Tag::from_bytes(b"PAM ") }, // Pampanga -> Pampangan
1122 LangTag { language: "pap", tag: Tag::from_bytes(b"PAP0") }, // Papiamento -> Papiamentu
1123 LangTag { language: "pap", tag: Tag::from_bytes(b"CPP ") }, // Papiamento -> Creoles
1124 LangTag { language: "pas", tag: Tag(0) }, // Papasena != Pashto
1125// LangTag { language: "pau", tag: Tag::from_bytes(b"PAU ") }, // Palauan
1126 LangTag { language: "pbt", tag: Tag::from_bytes(b"PAS ") }, // Southern Pashto -> Pashto
1127 LangTag { language: "pbu", tag: Tag::from_bytes(b"PAS ") }, // Northern Pashto -> Pashto
1128// LangTag { language: "pcc", tag: Tag::from_bytes(b"PCC ") }, // Bouyei
1129// LangTag { language: "pcd", tag: Tag::from_bytes(b"PCD ") }, // Picard
1130 LangTag { language: "pce", tag: Tag::from_bytes(b"PLG ") }, // Ruching Palaung -> Palaung
1131 LangTag { language: "pck", tag: Tag::from_bytes(b"QIN ") }, // Paite Chin -> Chin
1132 LangTag { language: "pcm", tag: Tag::from_bytes(b"CPP ") }, // Nigerian Pidgin -> Creoles
1133// LangTag { language: "pdc", tag: Tag::from_bytes(b"PDC ") }, // Pennsylvania German
1134 LangTag { language: "pdu", tag: Tag::from_bytes(b"KRN ") }, // Kayan -> Karen
1135 LangTag { language: "pea", tag: Tag::from_bytes(b"CPP ") }, // Peranakan Indonesian -> Creoles
1136 LangTag { language: "pel", tag: Tag::from_bytes(b"MLY ") }, // Pekal -> Malay
1137 LangTag { language: "pes", tag: Tag::from_bytes(b"FAR ") }, // Iranian Persian -> Persian
1138 LangTag { language: "pey", tag: Tag::from_bytes(b"CPP ") }, // Petjo -> Creoles
1139 LangTag { language: "pga", tag: Tag::from_bytes(b"ARA ") }, // Sudanese Creole Arabic -> Arabic
1140 LangTag { language: "pga", tag: Tag::from_bytes(b"CPP ") }, // Sudanese Creole Arabic -> Creoles
1141// LangTag { language: "phk", tag: Tag::from_bytes(b"PHK ") }, // Phake
1142 LangTag { language: "pi", tag: Tag::from_bytes(b"PAL ") }, // Pali
1143 LangTag { language: "pih", tag: Tag::from_bytes(b"PIH ") }, // Pitcairn-Norfolk -> Norfolk
1144 LangTag { language: "pih", tag: Tag::from_bytes(b"CPP ") }, // Pitcairn-Norfolk -> Creoles
1145 LangTag { language: "pil", tag: Tag(0) }, // Yom != Filipino
1146 LangTag { language: "pis", tag: Tag::from_bytes(b"CPP ") }, // Pijin -> Creoles
1147 LangTag { language: "pkh", tag: Tag::from_bytes(b"QIN ") }, // Pankhu -> Chin
1148 LangTag { language: "pko", tag: Tag::from_bytes(b"KAL ") }, // Pökoot -> Kalenjin
1149 LangTag { language: "pl", tag: Tag::from_bytes(b"PLK ") }, // Polish
1150 LangTag { language: "plg", tag: Tag::from_bytes(b"PLG0") }, // Pilagá
1151 LangTag { language: "plk", tag: Tag(0) }, // Kohistani Shina != Polish
1152 LangTag { language: "pll", tag: Tag::from_bytes(b"PLG ") }, // Shwe Palaung -> Palaung
1153 LangTag { language: "pln", tag: Tag::from_bytes(b"CPP ") }, // Palenquero -> Creoles
1154 LangTag { language: "plp", tag: Tag::from_bytes(b"PAP ") }, // Palpa(retired code)
1155 LangTag { language: "plt", tag: Tag::from_bytes(b"MLG ") }, // Plateau Malagasy -> Malagasy
1156 LangTag { language: "pml", tag: Tag::from_bytes(b"CPP ") }, // Lingua Franca -> Creoles
1157// LangTag { language: "pms", tag: Tag::from_bytes(b"PMS ") }, // Piemontese
1158 LangTag { language: "pmy", tag: Tag::from_bytes(b"CPP ") }, // Papuan Malay -> Creoles
1159// LangTag { language: "pnb", tag: Tag::from_bytes(b"PNB ") }, // Western Panjabi
1160 LangTag { language: "poc", tag: Tag::from_bytes(b"MYN ") }, // Poqomam -> Mayan
1161 LangTag { language: "poh", tag: Tag::from_bytes(b"POH ") }, // Poqomchi' -> Pocomchi
1162 LangTag { language: "poh", tag: Tag::from_bytes(b"MYN ") }, // Poqomchi' -> Mayan
1163// LangTag { language: "pon", tag: Tag::from_bytes(b"PON ") }, // Pohnpeian
1164 LangTag { language: "pov", tag: Tag::from_bytes(b"CPP ") }, // Upper Guinea Crioulo -> Creoles
1165 LangTag { language: "ppa", tag: Tag::from_bytes(b"BAG ") }, // Pao(retired code) -> Baghelkhandi
1166 LangTag { language: "pre", tag: Tag::from_bytes(b"CPP ") }, // Principense -> Creoles
1167// LangTag { language: "pro", tag: Tag::from_bytes(b"PRO ") }, // Old Provençal (to 1500) -> Provençal / Old Provençal
1168 LangTag { language: "prp", tag: Tag::from_bytes(b"GUJ ") }, // Parsi(retired code) -> Gujarati
1169 LangTag { language: "prs", tag: Tag::from_bytes(b"DRI ") }, // Dari
1170 LangTag { language: "prs", tag: Tag::from_bytes(b"FAR ") }, // Dari -> Persian
1171 LangTag { language: "ps", tag: Tag::from_bytes(b"PAS ") }, // Pashto [macrolanguage]
1172 LangTag { language: "pse", tag: Tag::from_bytes(b"MLY ") }, // Central Malay -> Malay
1173 LangTag { language: "pst", tag: Tag::from_bytes(b"PAS ") }, // Central Pashto -> Pashto
1174 LangTag { language: "pt", tag: Tag::from_bytes(b"PTG ") }, // Portuguese
1175 LangTag { language: "pub", tag: Tag::from_bytes(b"QIN ") }, // Purum -> Chin
1176 LangTag { language: "puz", tag: Tag::from_bytes(b"QIN ") }, // Purum Naga(retired code) -> Chin
1177 LangTag { language: "pwo", tag: Tag::from_bytes(b"PWO ") }, // Pwo Western Karen -> Western Pwo Karen
1178 LangTag { language: "pwo", tag: Tag::from_bytes(b"KRN ") }, // Pwo Western Karen -> Karen
1179 LangTag { language: "pww", tag: Tag::from_bytes(b"KRN ") }, // Pwo Northern Karen -> Karen
1180 LangTag { language: "qu", tag: Tag::from_bytes(b"QUZ ") }, // Quechua [macrolanguage]
1181 LangTag { language: "qub", tag: Tag::from_bytes(b"QWH ") }, // Huallaga Huánuco Quechua -> Quechua (Peru)
1182 LangTag { language: "qub", tag: Tag::from_bytes(b"QUZ ") }, // Huallaga Huánuco Quechua -> Quechua
1183 LangTag { language: "quc", tag: Tag::from_bytes(b"QUC ") }, // K’iche’
1184 LangTag { language: "quc", tag: Tag::from_bytes(b"MYN ") }, // K'iche' -> Mayan
1185 LangTag { language: "qud", tag: Tag::from_bytes(b"QVI ") }, // Calderón Highland Quichua -> Quechua (Ecuador)
1186 LangTag { language: "qud", tag: Tag::from_bytes(b"QUZ ") }, // Calderón Highland Quichua -> Quechua
1187 LangTag { language: "quf", tag: Tag::from_bytes(b"QUZ ") }, // Lambayeque Quechua -> Quechua
1188 LangTag { language: "qug", tag: Tag::from_bytes(b"QVI ") }, // Chimborazo Highland Quichua -> Quechua (Ecuador)
1189 LangTag { language: "qug", tag: Tag::from_bytes(b"QUZ ") }, // Chimborazo Highland Quichua -> Quechua
1190 LangTag { language: "quh", tag: Tag::from_bytes(b"QUH ") }, // South Bolivian Quechua -> Quechua (Bolivia)
1191 LangTag { language: "quh", tag: Tag::from_bytes(b"QUZ ") }, // South Bolivian Quechua -> Quechua
1192 LangTag { language: "quk", tag: Tag::from_bytes(b"QUZ ") }, // Chachapoyas Quechua -> Quechua
1193 LangTag { language: "qul", tag: Tag::from_bytes(b"QUH ") }, // North Bolivian Quechua -> Quechua (Bolivia)
1194 LangTag { language: "qul", tag: Tag::from_bytes(b"QUZ ") }, // North Bolivian Quechua -> Quechua
1195 LangTag { language: "qum", tag: Tag::from_bytes(b"MYN ") }, // Sipacapense -> Mayan
1196 LangTag { language: "qup", tag: Tag::from_bytes(b"QVI ") }, // Southern Pastaza Quechua -> Quechua (Ecuador)
1197 LangTag { language: "qup", tag: Tag::from_bytes(b"QUZ ") }, // Southern Pastaza Quechua -> Quechua
1198 LangTag { language: "qur", tag: Tag::from_bytes(b"QWH ") }, // Yanahuanca Pasco Quechua -> Quechua (Peru)
1199 LangTag { language: "qur", tag: Tag::from_bytes(b"QUZ ") }, // Yanahuanca Pasco Quechua -> Quechua
1200 LangTag { language: "qus", tag: Tag::from_bytes(b"QUH ") }, // Santiago del Estero Quichua -> Quechua (Bolivia)
1201 LangTag { language: "qus", tag: Tag::from_bytes(b"QUZ ") }, // Santiago del Estero Quichua -> Quechua
1202 LangTag { language: "quv", tag: Tag::from_bytes(b"MYN ") }, // Sacapulteco -> Mayan
1203 LangTag { language: "quw", tag: Tag::from_bytes(b"QVI ") }, // Tena Lowland Quichua -> Quechua (Ecuador)
1204 LangTag { language: "quw", tag: Tag::from_bytes(b"QUZ ") }, // Tena Lowland Quichua -> Quechua
1205 LangTag { language: "qux", tag: Tag::from_bytes(b"QWH ") }, // Yauyos Quechua -> Quechua (Peru)
1206 LangTag { language: "qux", tag: Tag::from_bytes(b"QUZ ") }, // Yauyos Quechua -> Quechua
1207 LangTag { language: "quy", tag: Tag::from_bytes(b"QUZ ") }, // Ayacucho Quechua -> Quechua
1208// LangTag { language: "quz", tag: Tag::from_bytes(b"QUZ ") }, // Cusco Quechua -> Quechua
1209 LangTag { language: "qva", tag: Tag::from_bytes(b"QWH ") }, // Ambo-Pasco Quechua -> Quechua (Peru)
1210 LangTag { language: "qva", tag: Tag::from_bytes(b"QUZ ") }, // Ambo-Pasco Quechua -> Quechua
1211 LangTag { language: "qvc", tag: Tag::from_bytes(b"QUZ ") }, // Cajamarca Quechua -> Quechua
1212 LangTag { language: "qve", tag: Tag::from_bytes(b"QUZ ") }, // Eastern Apurímac Quechua -> Quechua
1213 LangTag { language: "qvh", tag: Tag::from_bytes(b"QWH ") }, // Huamalíes-Dos de Mayo Huánuco Quechua -> Quechua (Peru)
1214 LangTag { language: "qvh", tag: Tag::from_bytes(b"QUZ ") }, // Huamalíes-Dos de Mayo Huánuco Quechua -> Quechua
1215 LangTag { language: "qvi", tag: Tag::from_bytes(b"QVI ") }, // Imbabura Highland Quichua -> Quechua (Ecuador)
1216 LangTag { language: "qvi", tag: Tag::from_bytes(b"QUZ ") }, // Imbabura Highland Quichua -> Quechua
1217 LangTag { language: "qvj", tag: Tag::from_bytes(b"QVI ") }, // Loja Highland Quichua -> Quechua (Ecuador)
1218 LangTag { language: "qvj", tag: Tag::from_bytes(b"QUZ ") }, // Loja Highland Quichua -> Quechua
1219 LangTag { language: "qvl", tag: Tag::from_bytes(b"QWH ") }, // Cajatambo North Lima Quechua -> Quechua (Peru)
1220 LangTag { language: "qvl", tag: Tag::from_bytes(b"QUZ ") }, // Cajatambo North Lima Quechua -> Quechua
1221 LangTag { language: "qvm", tag: Tag::from_bytes(b"QWH ") }, // Margos-Yarowilca-Lauricocha Quechua -> Quechua (Peru)
1222 LangTag { language: "qvm", tag: Tag::from_bytes(b"QUZ ") }, // Margos-Yarowilca-Lauricocha Quechua -> Quechua
1223 LangTag { language: "qvn", tag: Tag::from_bytes(b"QWH ") }, // North Junín Quechua -> Quechua (Peru)
1224 LangTag { language: "qvn", tag: Tag::from_bytes(b"QUZ ") }, // North Junín Quechua -> Quechua
1225 LangTag { language: "qvo", tag: Tag::from_bytes(b"QVI ") }, // Napo Lowland Quechua -> Quechua (Ecuador)
1226 LangTag { language: "qvo", tag: Tag::from_bytes(b"QUZ ") }, // Napo Lowland Quechua -> Quechua
1227 LangTag { language: "qvp", tag: Tag::from_bytes(b"QWH ") }, // Pacaraos Quechua -> Quechua (Peru)
1228 LangTag { language: "qvp", tag: Tag::from_bytes(b"QUZ ") }, // Pacaraos Quechua -> Quechua
1229 LangTag { language: "qvs", tag: Tag::from_bytes(b"QUZ ") }, // San Martín Quechua -> Quechua
1230 LangTag { language: "qvw", tag: Tag::from_bytes(b"QWH ") }, // Huaylla Wanca Quechua -> Quechua (Peru)
1231 LangTag { language: "qvw", tag: Tag::from_bytes(b"QUZ ") }, // Huaylla Wanca Quechua -> Quechua
1232 LangTag { language: "qvz", tag: Tag::from_bytes(b"QVI ") }, // Northern Pastaza Quichua -> Quechua (Ecuador)
1233 LangTag { language: "qvz", tag: Tag::from_bytes(b"QUZ ") }, // Northern Pastaza Quichua -> Quechua
1234 LangTag { language: "qwa", tag: Tag::from_bytes(b"QWH ") }, // Corongo Ancash Quechua -> Quechua (Peru)
1235 LangTag { language: "qwa", tag: Tag::from_bytes(b"QUZ ") }, // Corongo Ancash Quechua -> Quechua
1236 LangTag { language: "qwc", tag: Tag::from_bytes(b"QUZ ") }, // Classical Quechua -> Quechua
1237 LangTag { language: "qwh", tag: Tag::from_bytes(b"QWH ") }, // Huaylas Ancash Quechua -> Quechua (Peru)
1238 LangTag { language: "qwh", tag: Tag::from_bytes(b"QUZ ") }, // Huaylas Ancash Quechua -> Quechua
1239 LangTag { language: "qws", tag: Tag::from_bytes(b"QWH ") }, // Sihuas Ancash Quechua -> Quechua (Peru)
1240 LangTag { language: "qws", tag: Tag::from_bytes(b"QUZ ") }, // Sihuas Ancash Quechua -> Quechua
1241 LangTag { language: "qwt", tag: Tag::from_bytes(b"ATH ") }, // Kwalhioqua-Tlatskanai -> Athapaskan
1242 LangTag { language: "qxa", tag: Tag::from_bytes(b"QWH ") }, // Chiquián Ancash Quechua -> Quechua (Peru)
1243 LangTag { language: "qxa", tag: Tag::from_bytes(b"QUZ ") }, // Chiquián Ancash Quechua -> Quechua
1244 LangTag { language: "qxc", tag: Tag::from_bytes(b"QWH ") }, // Chincha Quechua -> Quechua (Peru)
1245 LangTag { language: "qxc", tag: Tag::from_bytes(b"QUZ ") }, // Chincha Quechua -> Quechua
1246 LangTag { language: "qxh", tag: Tag::from_bytes(b"QWH ") }, // Panao Huánuco Quechua -> Quechua (Peru)
1247 LangTag { language: "qxh", tag: Tag::from_bytes(b"QUZ ") }, // Panao Huánuco Quechua -> Quechua
1248 LangTag { language: "qxl", tag: Tag::from_bytes(b"QVI ") }, // Salasaca Highland Quichua -> Quechua (Ecuador)
1249 LangTag { language: "qxl", tag: Tag::from_bytes(b"QUZ ") }, // Salasaca Highland Quichua -> Quechua
1250 LangTag { language: "qxn", tag: Tag::from_bytes(b"QWH ") }, // Northern Conchucos Ancash Quechua -> Quechua (Peru)
1251 LangTag { language: "qxn", tag: Tag::from_bytes(b"QUZ ") }, // Northern Conchucos Ancash Quechua -> Quechua
1252 LangTag { language: "qxo", tag: Tag::from_bytes(b"QWH ") }, // Southern Conchucos Ancash Quechua -> Quechua (Peru)
1253 LangTag { language: "qxo", tag: Tag::from_bytes(b"QUZ ") }, // Southern Conchucos Ancash Quechua -> Quechua
1254 LangTag { language: "qxp", tag: Tag::from_bytes(b"QUZ ") }, // Puno Quechua -> Quechua
1255 LangTag { language: "qxr", tag: Tag::from_bytes(b"QVI ") }, // Cañar Highland Quichua -> Quechua (Ecuador)
1256 LangTag { language: "qxr", tag: Tag::from_bytes(b"QUZ ") }, // Cañar Highland Quichua -> Quechua
1257 LangTag { language: "qxt", tag: Tag::from_bytes(b"QWH ") }, // Santa Ana de Tusi Pasco Quechua -> Quechua (Peru)
1258 LangTag { language: "qxt", tag: Tag::from_bytes(b"QUZ ") }, // Santa Ana de Tusi Pasco Quechua -> Quechua
1259 LangTag { language: "qxu", tag: Tag::from_bytes(b"QUZ ") }, // Arequipa-La Unión Quechua -> Quechua
1260 LangTag { language: "qxw", tag: Tag::from_bytes(b"QWH ") }, // Jauja Wanca Quechua -> Quechua (Peru)
1261 LangTag { language: "qxw", tag: Tag::from_bytes(b"QUZ ") }, // Jauja Wanca Quechua -> Quechua
1262 LangTag { language: "rag", tag: Tag::from_bytes(b"LUH ") }, // Logooli -> Luyia
1263// LangTag { language: "raj", tag: Tag::from_bytes(b"RAJ ") }, // Rajasthani [macrolanguage]
1264 LangTag { language: "ral", tag: Tag::from_bytes(b"QIN ") }, // Ralte -> Chin
1265// LangTag { language: "rar", tag: Tag::from_bytes(b"RAR ") }, // Rarotongan
1266 LangTag { language: "rbb", tag: Tag::from_bytes(b"PLG ") }, // Rumai Palaung -> Palaung
1267 LangTag { language: "rbl", tag: Tag::from_bytes(b"BIK ") }, // Miraya Bikol -> Bikol
1268 LangTag { language: "rcf", tag: Tag::from_bytes(b"CPP ") }, // Réunion Creole French -> Creoles
1269// LangTag { language: "rej", tag: Tag::from_bytes(b"REJ ") }, // Rejang
1270// LangTag { language: "rhg", tag: Tag::from_bytes(b"RHG ") }, // Rohingya
1271// LangTag { language: "ria", tag: Tag::from_bytes(b"RIA ") }, // Riang (India)
1272 LangTag { language: "rif", tag: Tag::from_bytes(b"RIF ") }, // Tarifit
1273 LangTag { language: "rif", tag: Tag::from_bytes(b"BBR ") }, // Tarifit -> Berber
1274// LangTag { language: "rit", tag: Tag::from_bytes(b"RIT ") }, // Ritharrngu -> Ritarungo
1275 LangTag { language: "rki", tag: Tag::from_bytes(b"ARK ") }, // Rakhine
1276// LangTag { language: "rkw", tag: Tag::from_bytes(b"RKW ") }, // Arakwal
1277 LangTag { language: "rm", tag: Tag::from_bytes(b"RMS ") }, // Romansh
1278 LangTag { language: "rmc", tag: Tag::from_bytes(b"ROY ") }, // Carpathian Romani -> Romany
1279 LangTag { language: "rmf", tag: Tag::from_bytes(b"ROY ") }, // Kalo Finnish Romani -> Romany
1280 LangTag { language: "rml", tag: Tag::from_bytes(b"ROY ") }, // Baltic Romani -> Romany
1281 LangTag { language: "rmn", tag: Tag::from_bytes(b"ROY ") }, // Balkan Romani -> Romany
1282 LangTag { language: "rmo", tag: Tag::from_bytes(b"ROY ") }, // Sinte Romani -> Romany
1283 LangTag { language: "rms", tag: Tag(0) }, // Romanian Sign Language != Romansh
1284 LangTag { language: "rmw", tag: Tag::from_bytes(b"ROY ") }, // Welsh Romani -> Romany
1285 LangTag { language: "rmy", tag: Tag::from_bytes(b"RMY ") }, // Vlax Romani
1286 LangTag { language: "rmy", tag: Tag::from_bytes(b"ROY ") }, // Vlax Romani -> Romany
1287 LangTag { language: "rmz", tag: Tag::from_bytes(b"ARK ") }, // Marma -> Rakhine
1288 LangTag { language: "rn", tag: Tag::from_bytes(b"RUN ") }, // Rundi
1289 LangTag { language: "ro", tag: Tag::from_bytes(b"ROM ") }, // Romanian
1290 LangTag { language: "rom", tag: Tag::from_bytes(b"ROY ") }, // Romany [macrolanguage]
1291 LangTag { language: "rop", tag: Tag::from_bytes(b"CPP ") }, // Kriol -> Creoles
1292 LangTag { language: "rtc", tag: Tag::from_bytes(b"QIN ") }, // Rungtu Chin -> Chin
1293// LangTag { language: "rtm", tag: Tag::from_bytes(b"RTM ") }, // Rotuman
1294 LangTag { language: "ru", tag: Tag::from_bytes(b"RUS ") }, // Russian
1295 LangTag { language: "rue", tag: Tag::from_bytes(b"RSY ") }, // Rusyn
1296// LangTag { language: "rup", tag: Tag::from_bytes(b"RUP ") }, // Aromanian
1297 LangTag { language: "rw", tag: Tag::from_bytes(b"RUA ") }, // Kinyarwanda
1298 LangTag { language: "rwr", tag: Tag::from_bytes(b"MAW ") }, // Marwari (India)
1299 LangTag { language: "sa", tag: Tag::from_bytes(b"SAN ") }, // Sanskrit [macrolanguage]
1300 LangTag { language: "sad", tag: Tag(0) }, // Sandawe != Sadri
1301 LangTag { language: "sah", tag: Tag::from_bytes(b"YAK ") }, // Yakut -> Sakha
1302 LangTag { language: "sam", tag: Tag::from_bytes(b"PAA ") }, // Samaritan Aramaic -> Palestinian Aramaic
1303// LangTag { language: "sas", tag: Tag::from_bytes(b"SAS ") }, // Sasak
1304// LangTag { language: "sat", tag: Tag::from_bytes(b"SAT ") }, // Santali
1305 LangTag { language: "say", tag: Tag(0) }, // Saya != Sayisi
1306 LangTag { language: "sc", tag: Tag::from_bytes(b"SRD ") }, // Sardinian [macrolanguage]
1307 LangTag { language: "scf", tag: Tag::from_bytes(b"CPP ") }, // San Miguel Creole French -> Creoles
1308 LangTag { language: "sch", tag: Tag::from_bytes(b"QIN ") }, // Sakachep -> Chin
1309 LangTag { language: "sci", tag: Tag::from_bytes(b"CPP ") }, // Sri Lankan Creole Malay -> Creoles
1310 LangTag { language: "sck", tag: Tag::from_bytes(b"SAD ") }, // Sadri
1311// LangTag { language: "scn", tag: Tag::from_bytes(b"SCN ") }, // Sicilian
1312// LangTag { language: "sco", tag: Tag::from_bytes(b"SCO ") }, // Scots
1313 LangTag { language: "scs", tag: Tag::from_bytes(b"SCS ") }, // North Slavey
1314 LangTag { language: "scs", tag: Tag::from_bytes(b"SLA ") }, // North Slavey -> Slavey
1315 LangTag { language: "scs", tag: Tag::from_bytes(b"ATH ") }, // North Slavey -> Athapaskan
1316 LangTag { language: "sd", tag: Tag::from_bytes(b"SND ") }, // Sindhi
1317 LangTag { language: "sdc", tag: Tag::from_bytes(b"SRD ") }, // Sassarese Sardinian -> Sardinian
1318 LangTag { language: "sdh", tag: Tag::from_bytes(b"KUR ") }, // Southern Kurdish -> Kurdish
1319 LangTag { language: "sdn", tag: Tag::from_bytes(b"SRD ") }, // Gallurese Sardinian -> Sardinian
1320 LangTag { language: "sds", tag: Tag::from_bytes(b"BBR ") }, // Sened -> Berber
1321 LangTag { language: "se", tag: Tag::from_bytes(b"NSM ") }, // Northern Sami
1322// LangTag { language: "see", tag: Tag::from_bytes(b"SEE ") }, // Seneca
1323 LangTag { language: "seh", tag: Tag::from_bytes(b"SNA ") }, // Sena
1324 LangTag { language: "sek", tag: Tag::from_bytes(b"ATH ") }, // Sekani -> Athapaskan
1325// LangTag { language: "sel", tag: Tag::from_bytes(b"SEL ") }, // Selkup
1326 LangTag { language: "sez", tag: Tag::from_bytes(b"QIN ") }, // Senthang Chin -> Chin
1327 LangTag { language: "sfm", tag: Tag::from_bytes(b"SFM ") }, // Small Flowery Miao
1328 LangTag { language: "sfm", tag: Tag::from_bytes(b"HMN ") }, // Small Flowery Miao -> Hmong
1329 LangTag { language: "sg", tag: Tag::from_bytes(b"SGO ") }, // Sango
1330// LangTag { language: "sga", tag: Tag::from_bytes(b"SGA ") }, // Old Irish (to 900)
1331 LangTag { language: "sgc", tag: Tag::from_bytes(b"KAL ") }, // Kipsigis -> Kalenjin
1332 LangTag { language: "sgo", tag: Tag(0) }, // Songa(retired code) != Sango
1333// LangTag { language: "sgs", tag: Tag::from_bytes(b"SGS ") }, // Samogitian
1334 LangTag { language: "sgw", tag: Tag::from_bytes(b"CHG ") }, // Sebat Bet Gurage -> Chaha Gurage
1335 LangTag { language: "sh", tag: Tag::from_bytes(b"BOS ") }, // Serbo-Croatian [macrolanguage] -> Bosnian
1336 LangTag { language: "sh", tag: Tag::from_bytes(b"HRV ") }, // Serbo-Croatian [macrolanguage] -> Croatian
1337 LangTag { language: "sh", tag: Tag::from_bytes(b"SRB ") }, // Serbo-Croatian [macrolanguage] -> Serbian
1338 LangTag { language: "shi", tag: Tag::from_bytes(b"SHI ") }, // Tachelhit
1339 LangTag { language: "shi", tag: Tag::from_bytes(b"BBR ") }, // Tachelhit -> Berber
1340 LangTag { language: "shl", tag: Tag::from_bytes(b"QIN ") }, // Shendu -> Chin
1341// LangTag { language: "shn", tag: Tag::from_bytes(b"SHN ") }, // Shan
1342 LangTag { language: "shu", tag: Tag::from_bytes(b"ARA ") }, // Chadian Arabic -> Arabic
1343 LangTag { language: "shy", tag: Tag::from_bytes(b"BBR ") }, // Tachawit -> Berber
1344 LangTag { language: "si", tag: Tag::from_bytes(b"SNH ") }, // Sinhala (Sinhalese)
1345 LangTag { language: "sib", tag: Tag(0) }, // Sebop != Sibe
1346// LangTag { language: "sid", tag: Tag::from_bytes(b"SID ") }, // Sidamo
1347 LangTag { language: "sig", tag: Tag(0) }, // Paasaal != Silte Gurage
1348 LangTag { language: "siz", tag: Tag::from_bytes(b"BBR ") }, // Siwi -> Berber
1349// LangTag { language: "sja", tag: Tag::from_bytes(b"SJA ") }, // Epena
1350 LangTag { language: "sjd", tag: Tag::from_bytes(b"KSM ") }, // Kildin Sami
1351 LangTag { language: "sjo", tag: Tag::from_bytes(b"SIB ") }, // Xibe -> Sibe
1352 LangTag { language: "sjs", tag: Tag::from_bytes(b"BBR ") }, // Senhaja De Srair -> Berber
1353 LangTag { language: "sk", tag: Tag::from_bytes(b"SKY ") }, // Slovak
1354 LangTag { language: "skg", tag: Tag::from_bytes(b"MLG ") }, // Sakalava Malagasy -> Malagasy
1355 LangTag { language: "skr", tag: Tag::from_bytes(b"SRK ") }, // Saraiki
1356 LangTag { language: "sks", tag: Tag(0) }, // Maia != Skolt Sami
1357 LangTag { language: "skw", tag: Tag::from_bytes(b"CPP ") }, // Skepi Creole Dutch -> Creoles
1358 LangTag { language: "sky", tag: Tag(0) }, // Sikaiana != Slovak
1359 LangTag { language: "sl", tag: Tag::from_bytes(b"SLV ") }, // Slovenian
1360 LangTag { language: "sla", tag: Tag(0) }, // Slavic [collection] != Slavey
1361 LangTag { language: "sm", tag: Tag::from_bytes(b"SMO ") }, // Samoan
1362 LangTag { language: "sma", tag: Tag::from_bytes(b"SSM ") }, // Southern Sami
1363 LangTag { language: "smd", tag: Tag::from_bytes(b"MBN ") }, // Sama(retired code) -> Mbundu
1364 LangTag { language: "smj", tag: Tag::from_bytes(b"LSM ") }, // Lule Sami
1365 LangTag { language: "sml", tag: Tag(0) }, // Central Sama != Somali
1366 LangTag { language: "smn", tag: Tag::from_bytes(b"ISM ") }, // Inari Sami
1367 LangTag { language: "sms", tag: Tag::from_bytes(b"SKS ") }, // Skolt Sami
1368 LangTag { language: "smt", tag: Tag::from_bytes(b"QIN ") }, // Simte -> Chin
1369 LangTag { language: "sn", tag: Tag::from_bytes(b"SNA0") }, // Shona
1370 LangTag { language: "snb", tag: Tag::from_bytes(b"IBA ") }, // Sebuyau(retired code) -> Iban
1371 LangTag { language: "snh", tag: Tag(0) }, // Shinabo(retired code) != Sinhala (Sinhalese)
1372// LangTag { language: "snk", tag: Tag::from_bytes(b"SNK ") }, // Soninke
1373 LangTag { language: "so", tag: Tag::from_bytes(b"SML ") }, // Somali
1374 LangTag { language: "sog", tag: Tag(0) }, // Sogdian != Sodo Gurage
1375// LangTag { language: "sop", tag: Tag::from_bytes(b"SOP ") }, // Songe
1376 LangTag { language: "spv", tag: Tag::from_bytes(b"ORI ") }, // Sambalpuri -> Odia
1377 LangTag { language: "spy", tag: Tag::from_bytes(b"KAL ") }, // Sabaot -> Kalenjin
1378 LangTag { language: "sq", tag: Tag::from_bytes(b"SQI ") }, // Albanian [macrolanguage]
1379 LangTag { language: "sr", tag: Tag::from_bytes(b"SRB ") }, // Serbian
1380 LangTag { language: "srb", tag: Tag(0) }, // Sora != Serbian
1381 LangTag { language: "src", tag: Tag::from_bytes(b"SRD ") }, // Logudorese Sardinian -> Sardinian
1382 LangTag { language: "srk", tag: Tag(0) }, // Serudung Murut != Saraiki
1383 LangTag { language: "srm", tag: Tag::from_bytes(b"CPP ") }, // Saramaccan -> Creoles
1384 LangTag { language: "srn", tag: Tag::from_bytes(b"CPP ") }, // Sranan Tongo -> Creoles
1385 LangTag { language: "sro", tag: Tag::from_bytes(b"SRD ") }, // Campidanese Sardinian -> Sardinian
1386// LangTag { language: "srr", tag: Tag::from_bytes(b"SRR ") }, // Serer
1387 LangTag { language: "srs", tag: Tag::from_bytes(b"ATH ") }, // Sarsi -> Athapaskan
1388 LangTag { language: "ss", tag: Tag::from_bytes(b"SWZ ") }, // Swati
1389 LangTag { language: "ssh", tag: Tag::from_bytes(b"ARA ") }, // Shihhi Arabic -> Arabic
1390 LangTag { language: "ssl", tag: Tag(0) }, // Western Sisaala != South Slavey
1391 LangTag { language: "ssm", tag: Tag(0) }, // Semnam != Southern Sami
1392 LangTag { language: "st", tag: Tag::from_bytes(b"SOT ") }, // Southern Sotho
1393 LangTag { language: "sta", tag: Tag::from_bytes(b"CPP ") }, // Settla -> Creoles
1394// LangTag { language: "stq", tag: Tag::from_bytes(b"STQ ") }, // Saterfriesisch -> Saterland Frisian
1395// LangTag { language: "str", tag: Tag::from_bytes(b"STR ") }, // Straits Salish
1396 LangTag { language: "stv", tag: Tag::from_bytes(b"SIG ") }, // Silt'e -> Silte Gurage
1397 LangTag { language: "su", tag: Tag::from_bytes(b"SUN ") }, // Sundanese
1398// LangTag { language: "suk", tag: Tag::from_bytes(b"SUK ") }, // Sukuma
1399 LangTag { language: "suq", tag: Tag::from_bytes(b"SUR ") }, // Suri
1400 LangTag { language: "sur", tag: Tag(0) }, // Mwaghavul != Suri
1401 LangTag { language: "sv", tag: Tag::from_bytes(b"SVE ") }, // Swedish
1402// LangTag { language: "sva", tag: Tag::from_bytes(b"SVA ") }, // Svan
1403 LangTag { language: "svc", tag: Tag::from_bytes(b"CPP ") }, // Vincentian Creole English -> Creoles
1404 LangTag { language: "sve", tag: Tag(0) }, // Serili != Swedish
1405 LangTag { language: "sw", tag: Tag::from_bytes(b"SWK ") }, // Swahili [macrolanguage]
1406 LangTag { language: "swb", tag: Tag::from_bytes(b"CMR ") }, // Maore Comorian -> Comorian
1407 LangTag { language: "swc", tag: Tag::from_bytes(b"SWK ") }, // Congo Swahili -> Swahili
1408 LangTag { language: "swh", tag: Tag::from_bytes(b"SWK ") }, // Swahili
1409 LangTag { language: "swk", tag: Tag(0) }, // Malawi Sena != Swahili
1410 LangTag { language: "swn", tag: Tag::from_bytes(b"BBR ") }, // Sawknah -> Berber
1411 LangTag { language: "swv", tag: Tag::from_bytes(b"MAW ") }, // Shekhawati -> Marwari
1412// LangTag { language: "sxu", tag: Tag::from_bytes(b"SXU ") }, // Upper Saxon
1413 LangTag { language: "syc", tag: Tag::from_bytes(b"SYR ") }, // Classical Syriac -> Syriac
1414// LangTag { language: "syl", tag: Tag::from_bytes(b"SYL ") }, // Sylheti
1415// LangTag { language: "syr", tag: Tag::from_bytes(b"SYR ") }, // Syriac [macrolanguage]
1416// LangTag { language: "szl", tag: Tag::from_bytes(b"SZL ") }, // Silesian
1417 LangTag { language: "ta", tag: Tag::from_bytes(b"TAM ") }, // Tamil
1418 LangTag { language: "taa", tag: Tag::from_bytes(b"ATH ") }, // Lower Tanana -> Athapaskan
1419// LangTag { language: "tab", tag: Tag::from_bytes(b"TAB ") }, // Tabassaran -> Tabasaran
1420 LangTag { language: "taj", tag: Tag(0) }, // Eastern Tamang != Tajiki
1421 LangTag { language: "taq", tag: Tag::from_bytes(b"TAQ ") }, // Tamasheq
1422 LangTag { language: "taq", tag: Tag::from_bytes(b"TMH ") }, // Tamasheq -> Tamashek
1423 LangTag { language: "taq", tag: Tag::from_bytes(b"BBR ") }, // Tamasheq -> Berber
1424 LangTag { language: "tas", tag: Tag::from_bytes(b"CPP ") }, // Tay Boi -> Creoles
1425 LangTag { language: "tau", tag: Tag::from_bytes(b"ATH ") }, // Upper Tanana -> Athapaskan
1426 LangTag { language: "tcb", tag: Tag::from_bytes(b"ATH ") }, // Tanacross -> Athapaskan
1427 LangTag { language: "tce", tag: Tag::from_bytes(b"ATH ") }, // Southern Tutchone -> Athapaskan
1428 LangTag { language: "tch", tag: Tag::from_bytes(b"CPP ") }, // Turks And Caicos Creole English -> Creoles
1429 LangTag { language: "tcp", tag: Tag::from_bytes(b"QIN ") }, // Tawr Chin -> Chin
1430 LangTag { language: "tcs", tag: Tag::from_bytes(b"CPP ") }, // Torres Strait Creole -> Creoles
1431 LangTag { language: "tcy", tag: Tag::from_bytes(b"TUL ") }, // Tulu
1432 LangTag { language: "tcz", tag: Tag::from_bytes(b"QIN ") }, // Thado Chin -> Chin
1433// LangTag { language: "tdc", tag: Tag::from_bytes(b"TDC ") }, // Emberá-Tadó
1434// LangTag { language: "tdd", tag: Tag::from_bytes(b"TDD ") }, // Tai Nüa -> Dehong Dai
1435 LangTag { language: "tdx", tag: Tag::from_bytes(b"MLG ") }, // Tandroy-Mahafaly Malagasy -> Malagasy
1436 LangTag { language: "te", tag: Tag::from_bytes(b"TEL ") }, // Telugu
1437 LangTag { language: "tec", tag: Tag::from_bytes(b"KAL ") }, // Terik -> Kalenjin
1438 LangTag { language: "tem", tag: Tag::from_bytes(b"TMN ") }, // Timne -> Temne
1439// LangTag { language: "tet", tag: Tag::from_bytes(b"TET ") }, // Tetum
1440 LangTag { language: "tez", tag: Tag::from_bytes(b"BBR ") }, // Tetserret -> Berber
1441 LangTag { language: "tfn", tag: Tag::from_bytes(b"ATH ") }, // Tanaina -> Athapaskan
1442 LangTag { language: "tg", tag: Tag::from_bytes(b"TAJ ") }, // Tajik -> Tajiki
1443 LangTag { language: "tgh", tag: Tag::from_bytes(b"CPP ") }, // Tobagonian Creole English -> Creoles
1444 LangTag { language: "tgj", tag: Tag::from_bytes(b"NIS ") }, // Tagin -> Nisi
1445 LangTag { language: "tgn", tag: Tag(0) }, // Tandaganon != Tongan
1446 LangTag { language: "tgr", tag: Tag(0) }, // Tareng != Tigre
1447 LangTag { language: "tgx", tag: Tag::from_bytes(b"ATH ") }, // Tagish -> Athapaskan
1448 LangTag { language: "tgy", tag: Tag(0) }, // Togoyo != Tigrinya
1449 LangTag { language: "th", tag: Tag::from_bytes(b"THA ") }, // Thai
1450// LangTag { language: "thp", tag: Tag::from_bytes(b"THP ") }, // Thompson
1451 LangTag { language: "tht", tag: Tag::from_bytes(b"ATH ") }, // Tahltan -> Athapaskan
1452 LangTag { language: "thv", tag: Tag::from_bytes(b"THV ") }, // Tahaggart Tamahaq
1453 LangTag { language: "thv", tag: Tag::from_bytes(b"TMH ") }, // Tahaggart Tamahaq -> Tamashek
1454 LangTag { language: "thv", tag: Tag::from_bytes(b"BBR ") }, // Tahaggart Tamahaq -> Berber
1455 LangTag { language: "thz", tag: Tag::from_bytes(b"THZ ") }, // Tayart Tamajeq
1456 LangTag { language: "thz", tag: Tag::from_bytes(b"TMH ") }, // Tayart Tamajeq -> Tamashek
1457 LangTag { language: "thz", tag: Tag::from_bytes(b"BBR ") }, // Tayart Tamajeq -> Berber
1458 LangTag { language: "ti", tag: Tag::from_bytes(b"TGY ") }, // Tigrinya
1459 LangTag { language: "tia", tag: Tag::from_bytes(b"BBR ") }, // Tidikelt Tamazight -> Berber
1460 LangTag { language: "tig", tag: Tag::from_bytes(b"TGR ") }, // Tigre
1461// LangTag { language: "tiv", tag: Tag::from_bytes(b"TIV ") }, // Tiv
1462// LangTag { language: "tjl", tag: Tag::from_bytes(b"TJL ") }, // Tai Laing
1463 LangTag { language: "tjo", tag: Tag::from_bytes(b"BBR ") }, // Temacine Tamazight -> Berber
1464 LangTag { language: "tk", tag: Tag::from_bytes(b"TKM ") }, // Turkmen
1465 LangTag { language: "tkg", tag: Tag::from_bytes(b"MLG ") }, // Tesaka Malagasy -> Malagasy
1466 LangTag { language: "tkm", tag: Tag(0) }, // Takelma != Turkmen
1467 LangTag { language: "tl", tag: Tag::from_bytes(b"TGL ") }, // Tagalog
1468// LangTag { language: "tli", tag: Tag::from_bytes(b"TLI ") }, // Tlingit
1469// LangTag { language: "tly", tag: Tag::from_bytes(b"TLY ") }, // Talysh
1470 LangTag { language: "tmg", tag: Tag::from_bytes(b"CPP ") }, // Ternateño -> Creoles
1471 LangTag { language: "tmh", tag: Tag::from_bytes(b"TMH ") }, // Tamashek [macrolanguage]
1472 LangTag { language: "tmh", tag: Tag::from_bytes(b"BBR ") }, // Tamashek [macrolanguage] -> Berber
1473 LangTag { language: "tmn", tag: Tag(0) }, // Taman (Indonesia) != Temne
1474 LangTag { language: "tmw", tag: Tag::from_bytes(b"MLY ") }, // Temuan -> Malay
1475 LangTag { language: "tn", tag: Tag::from_bytes(b"TNA ") }, // Tswana
1476 LangTag { language: "tna", tag: Tag(0) }, // Tacana != Tswana
1477 LangTag { language: "tne", tag: Tag(0) }, // Tinoc Kallahan(retired code) != Tundra Enets
1478 LangTag { language: "tnf", tag: Tag::from_bytes(b"DRI ") }, // Tangshewi(retired code) -> Dari
1479 LangTag { language: "tnf", tag: Tag::from_bytes(b"FAR ") }, // Tangshewi(retired code) -> Persian
1480 LangTag { language: "tng", tag: Tag(0) }, // Tobanga != Tonga
1481 LangTag { language: "to", tag: Tag::from_bytes(b"TGN ") }, // Tonga (Tonga Islands) -> Tongan
1482 LangTag { language: "tod", tag: Tag::from_bytes(b"TOD0") }, // Toma
1483 LangTag { language: "toi", tag: Tag::from_bytes(b"TNG ") }, // Tonga (Zambia)
1484 LangTag { language: "toj", tag: Tag::from_bytes(b"MYN ") }, // Tojolabal -> Mayan
1485 LangTag { language: "tol", tag: Tag::from_bytes(b"ATH ") }, // Tolowa -> Athapaskan
1486 LangTag { language: "tor", tag: Tag::from_bytes(b"BAD0") }, // Togbo-Vara Banda -> Banda
1487 LangTag { language: "tpi", tag: Tag::from_bytes(b"TPI ") }, // Tok Pisin
1488 LangTag { language: "tpi", tag: Tag::from_bytes(b"CPP ") }, // Tok Pisin -> Creoles
1489 LangTag { language: "tr", tag: Tag::from_bytes(b"TRK ") }, // Turkish
1490 LangTag { language: "trf", tag: Tag::from_bytes(b"CPP ") }, // Trinidadian Creole English -> Creoles
1491 LangTag { language: "trk", tag: Tag(0) }, // Turkic [collection] != Turkish
1492 LangTag { language: "tru", tag: Tag::from_bytes(b"TUA ") }, // Turoyo -> Turoyo Aramaic
1493 LangTag { language: "tru", tag: Tag::from_bytes(b"SYR ") }, // Turoyo -> Syriac
1494 LangTag { language: "ts", tag: Tag::from_bytes(b"TSG ") }, // Tsonga
1495 LangTag { language: "tsg", tag: Tag(0) }, // Tausug != Tsonga
1496// LangTag { language: "tsj", tag: Tag::from_bytes(b"TSJ ") }, // Tshangla
1497 LangTag { language: "tt", tag: Tag::from_bytes(b"TAT ") }, // Tatar
1498 LangTag { language: "ttc", tag: Tag::from_bytes(b"MYN ") }, // Tektiteko -> Mayan
1499 LangTag { language: "ttm", tag: Tag::from_bytes(b"ATH ") }, // Northern Tutchone -> Athapaskan
1500 LangTag { language: "ttq", tag: Tag::from_bytes(b"TTQ ") }, // Tawallammat Tamajaq
1501 LangTag { language: "ttq", tag: Tag::from_bytes(b"TMH ") }, // Tawallammat Tamajaq -> Tamashek
1502 LangTag { language: "ttq", tag: Tag::from_bytes(b"BBR ") }, // Tawallammat Tamajaq -> Berber
1503 LangTag { language: "tua", tag: Tag(0) }, // Wiarumus != Turoyo Aramaic
1504 LangTag { language: "tul", tag: Tag(0) }, // Tula != Tulu
1505// LangTag { language: "tum", tag: Tag::from_bytes(b"TUM ") }, // Tumbuka
1506// LangTag { language: "tus", tag: Tag::from_bytes(b"TUS ") }, // Tuscarora
1507 LangTag { language: "tuu", tag: Tag::from_bytes(b"ATH ") }, // Tututni -> Athapaskan
1508 LangTag { language: "tuv", tag: Tag(0) }, // Turkana != Tuvin
1509 LangTag { language: "tuy", tag: Tag::from_bytes(b"KAL ") }, // Tugen -> Kalenjin
1510// LangTag { language: "tvl", tag: Tag::from_bytes(b"TVL ") }, // Tuvalu
1511 LangTag { language: "tvy", tag: Tag::from_bytes(b"CPP ") }, // Timor Pidgin -> Creoles
1512 LangTag { language: "tw", tag: Tag::from_bytes(b"TWI ") }, // Twi
1513 LangTag { language: "tw", tag: Tag::from_bytes(b"AKA ") }, // Twi -> Akan
1514 LangTag { language: "txc", tag: Tag::from_bytes(b"ATH ") }, // Tsetsaut -> Athapaskan
1515 LangTag { language: "txy", tag: Tag::from_bytes(b"MLG ") }, // Tanosy Malagasy -> Malagasy
1516 LangTag { language: "ty", tag: Tag::from_bytes(b"THT ") }, // Tahitian
1517 LangTag { language: "tyv", tag: Tag::from_bytes(b"TUV ") }, // Tuvinian -> Tuvin
1518// LangTag { language: "tyz", tag: Tag::from_bytes(b"TYZ ") }, // Tày
1519 LangTag { language: "tzh", tag: Tag::from_bytes(b"MYN ") }, // Tzeltal -> Mayan
1520 LangTag { language: "tzj", tag: Tag::from_bytes(b"MYN ") }, // Tz'utujil -> Mayan
1521 LangTag { language: "tzm", tag: Tag::from_bytes(b"TZM ") }, // Central Atlas Tamazight -> Tamazight
1522 LangTag { language: "tzm", tag: Tag::from_bytes(b"BBR ") }, // Central Atlas Tamazight -> Berber
1523 LangTag { language: "tzo", tag: Tag::from_bytes(b"TZO ") }, // Tzotzil
1524 LangTag { language: "tzo", tag: Tag::from_bytes(b"MYN ") }, // Tzotzil -> Mayan
1525 LangTag { language: "ubl", tag: Tag::from_bytes(b"BIK ") }, // Buhi'non Bikol -> Bikol
1526// LangTag { language: "udi", tag: Tag::from_bytes(b"UDI ") }, // Udi
1527// LangTag { language: "udm", tag: Tag::from_bytes(b"UDM ") }, // Udmurt
1528 LangTag { language: "ug", tag: Tag::from_bytes(b"UYG ") }, // Uyghur
1529 LangTag { language: "uk", tag: Tag::from_bytes(b"UKR ") }, // Ukrainian
1530 LangTag { language: "uki", tag: Tag::from_bytes(b"KUI ") }, // Kui (India)
1531 LangTag { language: "uln", tag: Tag::from_bytes(b"CPP ") }, // Unserdeutsch -> Creoles
1532// LangTag { language: "umb", tag: Tag::from_bytes(b"UMB ") }, // Umbundu
1533 LangTag { language: "unr", tag: Tag::from_bytes(b"MUN ") }, // Mundari
1534 LangTag { language: "ur", tag: Tag::from_bytes(b"URD ") }, // Urdu
1535 LangTag { language: "urk", tag: Tag::from_bytes(b"MLY ") }, // Urak Lawoi' -> Malay
1536 LangTag { language: "usp", tag: Tag::from_bytes(b"MYN ") }, // Uspanteco -> Mayan
1537 LangTag { language: "uz", tag: Tag::from_bytes(b"UZB ") }, // Uzbek [macrolanguage]
1538 LangTag { language: "uzn", tag: Tag::from_bytes(b"UZB ") }, // Northern Uzbek -> Uzbek
1539 LangTag { language: "uzs", tag: Tag::from_bytes(b"UZB ") }, // Southern Uzbek -> Uzbek
1540 LangTag { language: "vap", tag: Tag::from_bytes(b"QIN ") }, // Vaiphei -> Chin
1541 LangTag { language: "ve", tag: Tag::from_bytes(b"VEN ") }, // Venda
1542// LangTag { language: "vec", tag: Tag::from_bytes(b"VEC ") }, // Venetian
1543 LangTag { language: "vi", tag: Tag::from_bytes(b"VIT ") }, // Vietnamese
1544 LangTag { language: "vic", tag: Tag::from_bytes(b"CPP ") }, // Virgin Islands Creole English -> Creoles
1545 LangTag { language: "vit", tag: Tag(0) }, // Viti != Vietnamese
1546 LangTag { language: "vkk", tag: Tag::from_bytes(b"MLY ") }, // Kaur -> Malay
1547 LangTag { language: "vkp", tag: Tag::from_bytes(b"CPP ") }, // Korlai Creole Portuguese -> Creoles
1548 LangTag { language: "vkt", tag: Tag::from_bytes(b"MLY ") }, // Tenggarong Kutai Malay -> Malay
1549 LangTag { language: "vls", tag: Tag::from_bytes(b"FLE ") }, // Vlaams -> Dutch (Flemish)
1550 LangTag { language: "vmw", tag: Tag::from_bytes(b"MAK ") }, // Makhuwa
1551 LangTag { language: "vo", tag: Tag::from_bytes(b"VOL ") }, // Volapük
1552 LangTag { language: "vro", tag: Tag::from_bytes(b"VRO ") }, // Võro
1553 LangTag { language: "vro", tag: Tag::from_bytes(b"ETI ") }, // Võro -> Estonian
1554 LangTag { language: "vsn", tag: Tag::from_bytes(b"SAN ") }, // Vedic Sanskrit -> Sanskrit
1555 LangTag { language: "wa", tag: Tag::from_bytes(b"WLN ") }, // Walloon
1556 LangTag { language: "wag", tag: Tag(0) }, // Wa'ema != Wagdi
1557// LangTag { language: "war", tag: Tag::from_bytes(b"WAR ") }, // Waray (Philippines) -> Waray-Waray
1558// LangTag { language: "wbl", tag: Tag::from_bytes(b"WBL ") }, // Wakhi
1559 LangTag { language: "wbm", tag: Tag::from_bytes(b"WA ") }, // Wa
1560 LangTag { language: "wbr", tag: Tag::from_bytes(b"WAG ") }, // Wagdi
1561 LangTag { language: "wbr", tag: Tag::from_bytes(b"RAJ ") }, // Wagdi -> Rajasthani
1562// LangTag { language: "wci", tag: Tag::from_bytes(b"WCI ") }, // Waci Gbe
1563// LangTag { language: "wdt", tag: Tag::from_bytes(b"WDT ") }, // Wendat
1564 LangTag { language: "wea", tag: Tag::from_bytes(b"KRN ") }, // Wewaw -> Karen
1565 LangTag { language: "wes", tag: Tag::from_bytes(b"CPP ") }, // Cameroon Pidgin -> Creoles
1566 LangTag { language: "weu", tag: Tag::from_bytes(b"QIN ") }, // Rawngtu Chin -> Chin
1567 LangTag { language: "wlc", tag: Tag::from_bytes(b"CMR ") }, // Mwali Comorian -> Comorian
1568 LangTag { language: "wle", tag: Tag::from_bytes(b"SIG ") }, // Wolane -> Silte Gurage
1569 LangTag { language: "wlk", tag: Tag::from_bytes(b"ATH ") }, // Wailaki -> Athapaskan
1570 LangTag { language: "wni", tag: Tag::from_bytes(b"CMR ") }, // Ndzwani Comorian -> Comorian
1571 LangTag { language: "wo", tag: Tag::from_bytes(b"WLF ") }, // Wolof
1572 LangTag { language: "wry", tag: Tag::from_bytes(b"MAW ") }, // Merwari -> Marwari
1573 LangTag { language: "wsg", tag: Tag::from_bytes(b"GON ") }, // Adilabad Gondi -> Gondi
1574// LangTag { language: "wtm", tag: Tag::from_bytes(b"WTM ") }, // Mewati
1575 LangTag { language: "wuu", tag: Tag::from_bytes(b"ZHS ") }, // Wu Chinese -> Chinese, Simplified
1576 LangTag { language: "wya", tag: Tag::from_bytes(b"WDT ") }, // Wyandot(retired code) -> Wendat
1577 LangTag { language: "wya", tag: Tag::from_bytes(b"WYN ") }, // Wyandot(retired code)
1578// LangTag { language: "wyn", tag: Tag::from_bytes(b"WYN ") }, // Wyandot
1579 LangTag { language: "xal", tag: Tag::from_bytes(b"KLM ") }, // Kalmyk
1580 LangTag { language: "xal", tag: Tag::from_bytes(b"TOD ") }, // Kalmyk -> Todo
1581 LangTag { language: "xan", tag: Tag::from_bytes(b"SEK ") }, // Xamtanga -> Sekota
1582 LangTag { language: "xbd", tag: Tag(0) }, // Bindal != Lü
1583 LangTag { language: "xh", tag: Tag::from_bytes(b"XHS ") }, // Xhosa
1584// LangTag { language: "xjb", tag: Tag::from_bytes(b"XJB ") }, // Minjungbal -> Minjangbal
1585// LangTag { language: "xkf", tag: Tag::from_bytes(b"XKF ") }, // Khengkha
1586 LangTag { language: "xmg", tag: Tag::from_bytes(b"BML ") }, // Mengaka -> Bamileke
1587 LangTag { language: "xmm", tag: Tag::from_bytes(b"MLY ") }, // Manado Malay -> Malay
1588 LangTag { language: "xmm", tag: Tag::from_bytes(b"CPP ") }, // Manado Malay -> Creoles
1589 LangTag { language: "xmv", tag: Tag::from_bytes(b"MLG ") }, // Antankarana Malagasy -> Malagasy
1590 LangTag { language: "xmw", tag: Tag::from_bytes(b"MLG ") }, // Tsimihety Malagasy -> Malagasy
1591 LangTag { language: "xnj", tag: Tag::from_bytes(b"SXT ") }, // Ngoni (Tanzania) -> Sutu
1592 LangTag { language: "xnq", tag: Tag::from_bytes(b"SXT ") }, // Ngoni (Mozambique) -> Sutu
1593 LangTag { language: "xnr", tag: Tag::from_bytes(b"DGR ") }, // Kangri -> Dogri (macrolanguage)
1594// LangTag { language: "xog", tag: Tag::from_bytes(b"XOG ") }, // Soga
1595 LangTag { language: "xpe", tag: Tag::from_bytes(b"XPE ") }, // Liberia Kpelle -> Kpelle (Liberia)
1596 LangTag { language: "xpe", tag: Tag::from_bytes(b"KPL ") }, // Liberia Kpelle -> Kpelle
1597 LangTag { language: "xsl", tag: Tag::from_bytes(b"SSL ") }, // South Slavey
1598 LangTag { language: "xsl", tag: Tag::from_bytes(b"SLA ") }, // South Slavey -> Slavey
1599 LangTag { language: "xsl", tag: Tag::from_bytes(b"ATH ") }, // South Slavey -> Athapaskan
1600 LangTag { language: "xst", tag: Tag::from_bytes(b"SIG ") }, // Silt'e(retired code) -> Silte Gurage
1601// LangTag { language: "xub", tag: Tag::from_bytes(b"XUB ") }, // Betta Kurumba -> Bette Kuruma
1602// LangTag { language: "xuj", tag: Tag::from_bytes(b"XUJ ") }, // Jennu Kurumba -> Jennu Kuruma
1603 LangTag { language: "xup", tag: Tag::from_bytes(b"ATH ") }, // Upper Umpqua -> Athapaskan
1604 LangTag { language: "xwo", tag: Tag::from_bytes(b"TOD ") }, // Written Oirat -> Todo
1605 LangTag { language: "yaj", tag: Tag::from_bytes(b"BAD0") }, // Banda-Yangere -> Banda
1606 LangTag { language: "yak", tag: Tag(0) }, // Yakama != Sakha
1607// LangTag { language: "yao", tag: Tag::from_bytes(b"YAO ") }, // Yao
1608// LangTag { language: "yap", tag: Tag::from_bytes(b"YAP ") }, // Yapese
1609 LangTag { language: "yba", tag: Tag(0) }, // Yala != Yoruba
1610 LangTag { language: "ybb", tag: Tag::from_bytes(b"BML ") }, // Yemba -> Bamileke
1611 LangTag { language: "ybd", tag: Tag::from_bytes(b"ARK ") }, // Yangbye(retired code) -> Rakhine
1612 LangTag { language: "ycr", tag: Tag(0) }, // Yilan Creole != Y-Cree
1613 LangTag { language: "ydd", tag: Tag::from_bytes(b"JII ") }, // Eastern Yiddish -> Yiddish
1614// LangTag { language: "ygp", tag: Tag::from_bytes(b"YGP ") }, // Gepo
1615 LangTag { language: "yi", tag: Tag::from_bytes(b"JII ") }, // Yiddish [macrolanguage]
1616 LangTag { language: "yih", tag: Tag::from_bytes(b"JII ") }, // Western Yiddish -> Yiddish
1617 LangTag { language: "yim", tag: Tag(0) }, // Yimchungru Naga != Yi Modern
1618// LangTag { language: "yna", tag: Tag::from_bytes(b"YNA ") }, // Aluo
1619 LangTag { language: "yo", tag: Tag::from_bytes(b"YBA ") }, // Yoruba
1620 LangTag { language: "yos", tag: Tag::from_bytes(b"QIN ") }, // Yos(retired code) -> Chin
1621 LangTag { language: "yua", tag: Tag::from_bytes(b"MYN ") }, // Yucateco -> Mayan
1622 LangTag { language: "yue", tag: Tag::from_bytes(b"ZHH ") }, // Yue Chinese -> Chinese, Traditional, Hong Kong SAR
1623// LangTag { language: "yuf", tag: Tag::from_bytes(b"YUF ") }, // Havasupai-Walapai-Yavapai
1624// LangTag { language: "ywq", tag: Tag::from_bytes(b"YWQ ") }, // Wuding-Luquan Yi
1625 LangTag { language: "za", tag: Tag::from_bytes(b"ZHA ") }, // Zhuang [macrolanguage]
1626 LangTag { language: "zch", tag: Tag::from_bytes(b"ZHA ") }, // Central Hongshuihe Zhuang -> Zhuang
1627 LangTag { language: "zdj", tag: Tag::from_bytes(b"CMR ") }, // Ngazidja Comorian -> Comorian
1628// LangTag { language: "zea", tag: Tag::from_bytes(b"ZEA ") }, // Zeeuws -> Zealandic
1629 LangTag { language: "zeh", tag: Tag::from_bytes(b"ZHA ") }, // Eastern Hongshuihe Zhuang -> Zhuang
1630 LangTag { language: "zen", tag: Tag::from_bytes(b"BBR ") }, // Zenaga -> Berber
1631 LangTag { language: "zgb", tag: Tag::from_bytes(b"ZHA ") }, // Guibei Zhuang -> Zhuang
1632 LangTag { language: "zgh", tag: Tag::from_bytes(b"ZGH ") }, // Standard Moroccan Tamazight
1633 LangTag { language: "zgh", tag: Tag::from_bytes(b"BBR ") }, // Standard Moroccan Tamazight -> Berber
1634 LangTag { language: "zgm", tag: Tag::from_bytes(b"ZHA ") }, // Minz Zhuang -> Zhuang
1635 LangTag { language: "zgn", tag: Tag::from_bytes(b"ZHA ") }, // Guibian Zhuang -> Zhuang
1636 LangTag { language: "zh", tag: Tag::from_bytes(b"ZHS ") }, // Chinese, Simplified [macrolanguage]
1637 LangTag { language: "zhd", tag: Tag::from_bytes(b"ZHA ") }, // Dai Zhuang -> Zhuang
1638 LangTag { language: "zhn", tag: Tag::from_bytes(b"ZHA ") }, // Nong Zhuang -> Zhuang
1639 LangTag { language: "zkb", tag: Tag::from_bytes(b"KHA ") }, // Koibal(retired code) -> Khakass
1640 LangTag { language: "zlj", tag: Tag::from_bytes(b"ZHA ") }, // Liujiang Zhuang -> Zhuang
1641 LangTag { language: "zlm", tag: Tag::from_bytes(b"MLY ") }, // Malay
1642 LangTag { language: "zln", tag: Tag::from_bytes(b"ZHA ") }, // Lianshan Zhuang -> Zhuang
1643 LangTag { language: "zlq", tag: Tag::from_bytes(b"ZHA ") }, // Liuqian Zhuang -> Zhuang
1644 LangTag { language: "zmi", tag: Tag::from_bytes(b"MLY ") }, // Negeri Sembilan Malay -> Malay
1645 LangTag { language: "zmz", tag: Tag::from_bytes(b"BAD0") }, // Mbandja -> Banda
1646 LangTag { language: "znd", tag: Tag(0) }, // Zande [collection] != Zande
1647 LangTag { language: "zne", tag: Tag::from_bytes(b"ZND ") }, // Zande
1648 LangTag { language: "zom", tag: Tag::from_bytes(b"QIN ") }, // Zou -> Chin
1649 LangTag { language: "zqe", tag: Tag::from_bytes(b"ZHA ") }, // Qiubei Zhuang -> Zhuang
1650 LangTag { language: "zsm", tag: Tag::from_bytes(b"MLY ") }, // Standard Malay -> Malay
1651 LangTag { language: "zu", tag: Tag::from_bytes(b"ZUL ") }, // Zulu
1652 LangTag { language: "zum", tag: Tag::from_bytes(b"LRC ") }, // Kumzari -> Luri
1653 LangTag { language: "zyb", tag: Tag::from_bytes(b"ZHA ") }, // Yongbei Zhuang -> Zhuang
1654 LangTag { language: "zyg", tag: Tag::from_bytes(b"ZHA ") }, // Yang Zhuang -> Zhuang
1655 LangTag { language: "zyj", tag: Tag::from_bytes(b"ZHA ") }, // Youjiang Zhuang -> Zhuang
1656 LangTag { language: "zyn", tag: Tag::from_bytes(b"ZHA ") }, // Yongnan Zhuang -> Zhuang
1657 LangTag { language: "zyp", tag: Tag::from_bytes(b"QIN ") }, // Zyphe Chin -> Chin
1658// LangTag { language: "zza", tag: Tag::from_bytes(b"ZZA ") }, // Zazaki [macrolanguage]
1659 LangTag { language: "zzj", tag: Tag::from_bytes(b"ZHA ") }, // Zuojiang Zhuang -> Zhuang
1660];
1661
1662fn subtag_matches(language: &str, subtag: &str) -> bool {
1663 for (i: usize, _) in language.match_indices(subtag) {
1664 if let Some(c: &u8) = language.as_bytes().get(index:i + subtag.len()) {
1665 if !c.is_ascii_alphanumeric() {
1666 return true;
1667 }
1668 } else {
1669 return true;
1670 }
1671 }
1672
1673 false
1674}
1675
1676fn lang_matches(language: &str, spec: &str) -> bool {
1677 if language.starts_with(spec) {
1678 return language.len() == spec.len() || language.as_bytes().get(index:spec.len()) == Some(&b'-');
1679 }
1680
1681 false
1682}
1683
1684fn strncmp(s1: &str, s2: &str, n: usize) -> bool {
1685 let n1: usize = core::cmp::min(v1:n, v2:s1.len());
1686 let n2: usize = core::cmp::min(v1:n, v2:s2.len());
1687 s1[..n1] == s2[..n2]
1688}
1689
1690/// Converts a multi-subtag BCP 47 language tag to language tags.
1691pub fn tags_from_complex_language(language: &str, tags: &mut smallvec::SmallVec<[Tag; 3]>) -> bool {
1692 if subtag_matches(language, "-fonnapa") {
1693 // Undetermined; North American Phonetic Alphabet
1694 tags.push(Tag::from_bytes(b"APPH")); // Phonetic transcription—Americanist conventions
1695 return true;
1696 }
1697 if subtag_matches(language, "-polyton") {
1698 // Modern Greek (1453-); Polytonic Greek
1699 tags.push(Tag::from_bytes(b"PGR ")); // Polytonic Greek
1700 return true;
1701 }
1702 if subtag_matches(language, "-arevmda") {
1703 // Armenian; Western Armenian (retired code)
1704 tags.push(Tag::from_bytes(b"HYE ")); // Armenian
1705 return true;
1706 }
1707 if subtag_matches(language, "-provenc") {
1708 // Occitan (post 1500); Provençal
1709 tags.push(Tag::from_bytes(b"PRO ")); // Provençal / Old Provençal
1710 return true;
1711 }
1712 if subtag_matches(language, "-fonipa") {
1713 // Undetermined; International Phonetic Alphabet
1714 tags.push(Tag::from_bytes(b"IPPH")); // Phonetic transcription—IPA conventions
1715 return true;
1716 }
1717 if subtag_matches(language, "-geok") {
1718 // Undetermined; Khutsuri (Asomtavruli and Nuskhuri)
1719 tags.push(Tag::from_bytes(b"KGE ")); // Khutsuri Georgian
1720 return true;
1721 }
1722 if subtag_matches(language, "-syre") {
1723 // Undetermined; Syriac (Estrangelo variant)
1724 tags.push(Tag::from_bytes(b"SYRE")); // Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre')
1725 return true;
1726 }
1727 if subtag_matches(language, "-syrj") {
1728 // Undetermined; Syriac (Western variant)
1729 tags.push(Tag::from_bytes(b"SYRJ")); // Syriac, Western script-variant (equivalent to ISO 15924 'Syrj')
1730 return true;
1731 }
1732 if subtag_matches(language, "-syrn") {
1733 // Undetermined; Syriac (Eastern variant)
1734 tags.push(Tag::from_bytes(b"SYRN")); // Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn')
1735 return true;
1736 }
1737 match language.as_bytes()[0] {
1738 b'a' => {
1739 if &language[1..] == "rt-lojban" {
1740 // Lojban(retired code)
1741 tags.push(Tag::from_bytes(b"JBO ")); // Lojban
1742 return true;
1743 }
1744 }
1745 b'c' => {
1746 if lang_matches(&language[1..], "do-hant-hk") {
1747 // Min Dong Chinese; Han (Traditional variant); Hong Kong
1748 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1749 return true;
1750 }
1751 if lang_matches(&language[1..], "do-hant-mo") {
1752 // Min Dong Chinese; Han (Traditional variant); Macao
1753 let possible_tags = &[
1754 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1755 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1756 ];
1757 tags.extend_from_slice(possible_tags);
1758 return true;
1759 }
1760 if lang_matches(&language[1..], "jy-hant-hk") {
1761 // Jinyu Chinese; Han (Traditional variant); Hong Kong
1762 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1763 return true;
1764 }
1765 if lang_matches(&language[1..], "jy-hant-mo") {
1766 // Jinyu Chinese; Han (Traditional variant); Macao
1767 let possible_tags = &[
1768 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1769 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1770 ];
1771 tags.extend_from_slice(possible_tags);
1772 return true;
1773 }
1774 if lang_matches(&language[1..], "mn-hant-hk") {
1775 // Mandarin Chinese; Han (Traditional variant); Hong Kong
1776 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1777 return true;
1778 }
1779 if lang_matches(&language[1..], "mn-hant-mo") {
1780 // Mandarin Chinese; Han (Traditional variant); Macao
1781 let possible_tags = &[
1782 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1783 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1784 ];
1785 tags.extend_from_slice(possible_tags);
1786 return true;
1787 }
1788 if lang_matches(&language[1..], "np-hant-hk") {
1789 // Northern Ping Chinese; Han (Traditional variant); Hong Kong
1790 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1791 return true;
1792 }
1793 if lang_matches(&language[1..], "np-hant-mo") {
1794 // Northern Ping Chinese; Han (Traditional variant); Macao
1795 let possible_tags = &[
1796 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1797 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1798 ];
1799 tags.extend_from_slice(possible_tags);
1800 return true;
1801 }
1802 if lang_matches(&language[1..], "px-hant-hk") {
1803 // Pu-Xian Chinese; Han (Traditional variant); Hong Kong
1804 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1805 return true;
1806 }
1807 if lang_matches(&language[1..], "px-hant-mo") {
1808 // Pu-Xian Chinese; Han (Traditional variant); Macao
1809 let possible_tags = &[
1810 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1811 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1812 ];
1813 tags.extend_from_slice(possible_tags);
1814 return true;
1815 }
1816 if lang_matches(&language[1..], "sp-hant-hk") {
1817 // Southern Ping Chinese; Han (Traditional variant); Hong Kong
1818 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1819 return true;
1820 }
1821 if lang_matches(&language[1..], "sp-hant-mo") {
1822 // Southern Ping Chinese; Han (Traditional variant); Macao
1823 let possible_tags = &[
1824 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1825 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1826 ];
1827 tags.extend_from_slice(possible_tags);
1828 return true;
1829 }
1830 if lang_matches(&language[1..], "zh-hant-hk") {
1831 // Huizhou Chinese; Han (Traditional variant); Hong Kong
1832 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1833 return true;
1834 }
1835 if lang_matches(&language[1..], "zh-hant-mo") {
1836 // Huizhou Chinese; Han (Traditional variant); Macao
1837 let possible_tags = &[
1838 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1839 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1840 ];
1841 tags.extend_from_slice(possible_tags);
1842 return true;
1843 }
1844 if lang_matches(&language[1..], "zo-hant-hk") {
1845 // Min Zhong Chinese; Han (Traditional variant); Hong Kong
1846 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1847 return true;
1848 }
1849 if lang_matches(&language[1..], "zo-hant-mo") {
1850 // Min Zhong Chinese; Han (Traditional variant); Macao
1851 let possible_tags = &[
1852 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1853 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1854 ];
1855 tags.extend_from_slice(possible_tags);
1856 return true;
1857 }
1858 if lang_matches(&language[1..], "do-hans") {
1859 // Min Dong Chinese; Han (Simplified variant)
1860 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
1861 return true;
1862 }
1863 if lang_matches(&language[1..], "do-hant") {
1864 // Min Dong Chinese; Han (Traditional variant)
1865 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1866 return true;
1867 }
1868 if lang_matches(&language[1..], "jy-hans") {
1869 // Jinyu Chinese; Han (Simplified variant)
1870 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
1871 return true;
1872 }
1873 if lang_matches(&language[1..], "jy-hant") {
1874 // Jinyu Chinese; Han (Traditional variant)
1875 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1876 return true;
1877 }
1878 if lang_matches(&language[1..], "mn-hans") {
1879 // Mandarin Chinese; Han (Simplified variant)
1880 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
1881 return true;
1882 }
1883 if lang_matches(&language[1..], "mn-hant") {
1884 // Mandarin Chinese; Han (Traditional variant)
1885 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1886 return true;
1887 }
1888 if lang_matches(&language[1..], "np-hans") {
1889 // Northern Ping Chinese; Han (Simplified variant)
1890 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
1891 return true;
1892 }
1893 if lang_matches(&language[1..], "np-hant") {
1894 // Northern Ping Chinese; Han (Traditional variant)
1895 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1896 return true;
1897 }
1898 if lang_matches(&language[1..], "px-hans") {
1899 // Pu-Xian Chinese; Han (Simplified variant)
1900 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
1901 return true;
1902 }
1903 if lang_matches(&language[1..], "px-hant") {
1904 // Pu-Xian Chinese; Han (Traditional variant)
1905 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1906 return true;
1907 }
1908 if lang_matches(&language[1..], "sp-hans") {
1909 // Southern Ping Chinese; Han (Simplified variant)
1910 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
1911 return true;
1912 }
1913 if lang_matches(&language[1..], "sp-hant") {
1914 // Southern Ping Chinese; Han (Traditional variant)
1915 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1916 return true;
1917 }
1918 if lang_matches(&language[1..], "zh-hans") {
1919 // Huizhou Chinese; Han (Simplified variant)
1920 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
1921 return true;
1922 }
1923 if lang_matches(&language[1..], "zh-hant") {
1924 // Huizhou Chinese; Han (Traditional variant)
1925 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1926 return true;
1927 }
1928 if lang_matches(&language[1..], "zo-hans") {
1929 // Min Zhong Chinese; Han (Simplified variant)
1930 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
1931 return true;
1932 }
1933 if lang_matches(&language[1..], "zo-hant") {
1934 // Min Zhong Chinese; Han (Traditional variant)
1935 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1936 return true;
1937 }
1938 if strncmp(&language[1..], "do-", 3) && subtag_matches(language, "-hk") {
1939 // Min Dong Chinese; Hong Kong
1940 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1941 return true;
1942 }
1943 if strncmp(&language[1..], "do-", 3) && subtag_matches(language, "-mo") {
1944 // Min Dong Chinese; Macao
1945 let possible_tags = &[
1946 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1947 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1948 ];
1949 tags.extend_from_slice(possible_tags);
1950 return true;
1951 }
1952 if strncmp(&language[1..], "do-", 3) && subtag_matches(language, "-tw") {
1953 // Min Dong Chinese; Taiwan, Province of China
1954 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1955 return true;
1956 }
1957 if strncmp(&language[1..], "jy-", 3) && subtag_matches(language, "-hk") {
1958 // Jinyu Chinese; Hong Kong
1959 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1960 return true;
1961 }
1962 if strncmp(&language[1..], "jy-", 3) && subtag_matches(language, "-mo") {
1963 // Jinyu Chinese; Macao
1964 let possible_tags = &[
1965 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1966 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1967 ];
1968 tags.extend_from_slice(possible_tags);
1969 return true;
1970 }
1971 if strncmp(&language[1..], "jy-", 3) && subtag_matches(language, "-tw") {
1972 // Jinyu Chinese; Taiwan, Province of China
1973 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1974 return true;
1975 }
1976 if strncmp(&language[1..], "mn-", 3) && subtag_matches(language, "-hk") {
1977 // Mandarin Chinese; Hong Kong
1978 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1979 return true;
1980 }
1981 if strncmp(&language[1..], "mn-", 3) && subtag_matches(language, "-mo") {
1982 // Mandarin Chinese; Macao
1983 let possible_tags = &[
1984 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
1985 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1986 ];
1987 tags.extend_from_slice(possible_tags);
1988 return true;
1989 }
1990 if strncmp(&language[1..], "mn-", 3) && subtag_matches(language, "-tw") {
1991 // Mandarin Chinese; Taiwan, Province of China
1992 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
1993 return true;
1994 }
1995 if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-hk") {
1996 // Northern Ping Chinese; Hong Kong
1997 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1998 return true;
1999 }
2000 if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-mo") {
2001 // Northern Ping Chinese; Macao
2002 let possible_tags = &[
2003 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2004 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2005 ];
2006 tags.extend_from_slice(possible_tags);
2007 return true;
2008 }
2009 if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-tw") {
2010 // Northern Ping Chinese; Taiwan, Province of China
2011 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2012 return true;
2013 }
2014 if strncmp(&language[1..], "px-", 3) && subtag_matches(language, "-hk") {
2015 // Pu-Xian Chinese; Hong Kong
2016 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2017 return true;
2018 }
2019 if strncmp(&language[1..], "px-", 3) && subtag_matches(language, "-mo") {
2020 // Pu-Xian Chinese; Macao
2021 let possible_tags = &[
2022 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2023 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2024 ];
2025 tags.extend_from_slice(possible_tags);
2026 return true;
2027 }
2028 if strncmp(&language[1..], "px-", 3) && subtag_matches(language, "-tw") {
2029 // Pu-Xian Chinese; Taiwan, Province of China
2030 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2031 return true;
2032 }
2033 if strncmp(&language[1..], "sp-", 3) && subtag_matches(language, "-hk") {
2034 // Southern Ping Chinese; Hong Kong
2035 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2036 return true;
2037 }
2038 if strncmp(&language[1..], "sp-", 3) && subtag_matches(language, "-mo") {
2039 // Southern Ping Chinese; Macao
2040 let possible_tags = &[
2041 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2042 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2043 ];
2044 tags.extend_from_slice(possible_tags);
2045 return true;
2046 }
2047 if strncmp(&language[1..], "sp-", 3) && subtag_matches(language, "-tw") {
2048 // Southern Ping Chinese; Taiwan, Province of China
2049 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2050 return true;
2051 }
2052 if strncmp(&language[1..], "zh-", 3) && subtag_matches(language, "-hk") {
2053 // Huizhou Chinese; Hong Kong
2054 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2055 return true;
2056 }
2057 if strncmp(&language[1..], "zh-", 3) && subtag_matches(language, "-mo") {
2058 // Huizhou Chinese; Macao
2059 let possible_tags = &[
2060 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2061 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2062 ];
2063 tags.extend_from_slice(possible_tags);
2064 return true;
2065 }
2066 if strncmp(&language[1..], "zh-", 3) && subtag_matches(language, "-tw") {
2067 // Huizhou Chinese; Taiwan, Province of China
2068 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2069 return true;
2070 }
2071 if strncmp(&language[1..], "zo-", 3) && subtag_matches(language, "-hk") {
2072 // Min Zhong Chinese; Hong Kong
2073 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2074 return true;
2075 }
2076 if strncmp(&language[1..], "zo-", 3) && subtag_matches(language, "-mo") {
2077 // Min Zhong Chinese; Macao
2078 let possible_tags = &[
2079 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2080 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2081 ];
2082 tags.extend_from_slice(possible_tags);
2083 return true;
2084 }
2085 if strncmp(&language[1..], "zo-", 3) && subtag_matches(language, "-tw") {
2086 // Min Zhong Chinese; Taiwan, Province of China
2087 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2088 return true;
2089 }
2090 }
2091 b'g' => {
2092 if lang_matches(&language[1..], "an-hant-hk") {
2093 // Gan Chinese; Han (Traditional variant); Hong Kong
2094 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2095 return true;
2096 }
2097 if lang_matches(&language[1..], "an-hant-mo") {
2098 // Gan Chinese; Han (Traditional variant); Macao
2099 let possible_tags = &[
2100 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2101 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2102 ];
2103 tags.extend_from_slice(possible_tags);
2104 return true;
2105 }
2106 if lang_matches(&language[1..], "an-hans") {
2107 // Gan Chinese; Han (Simplified variant)
2108 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2109 return true;
2110 }
2111 if lang_matches(&language[1..], "an-hant") {
2112 // Gan Chinese; Han (Traditional variant)
2113 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2114 return true;
2115 }
2116 if lang_matches(&language[1..], "a-latg") {
2117 // Irish; Latin (Gaelic variant)
2118 tags.push(Tag::from_bytes(b"IRT ")); // Irish Traditional
2119 return true;
2120 }
2121 if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-hk") {
2122 // Gan Chinese; Hong Kong
2123 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2124 return true;
2125 }
2126 if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-mo") {
2127 // Gan Chinese; Macao
2128 let possible_tags = &[
2129 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2130 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2131 ];
2132 tags.extend_from_slice(possible_tags);
2133 return true;
2134 }
2135 if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-tw") {
2136 // Gan Chinese; Taiwan, Province of China
2137 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2138 return true;
2139 }
2140 }
2141 b'h' => {
2142 if lang_matches(&language[1..], "ak-hant-hk") {
2143 // Hakka Chinese; Han (Traditional variant); Hong Kong
2144 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2145 return true;
2146 }
2147 if lang_matches(&language[1..], "ak-hant-mo") {
2148 // Hakka Chinese; Han (Traditional variant); Macao
2149 let possible_tags = &[
2150 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2151 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2152 ];
2153 tags.extend_from_slice(possible_tags);
2154 return true;
2155 }
2156 if lang_matches(&language[1..], "sn-hant-hk") {
2157 // Xiang Chinese; Han (Traditional variant); Hong Kong
2158 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2159 return true;
2160 }
2161 if lang_matches(&language[1..], "sn-hant-mo") {
2162 // Xiang Chinese; Han (Traditional variant); Macao
2163 let possible_tags = &[
2164 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2165 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2166 ];
2167 tags.extend_from_slice(possible_tags);
2168 return true;
2169 }
2170 if lang_matches(&language[1..], "ak-hans") {
2171 // Hakka Chinese; Han (Simplified variant)
2172 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2173 return true;
2174 }
2175 if lang_matches(&language[1..], "ak-hant") {
2176 // Hakka Chinese; Han (Traditional variant)
2177 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2178 return true;
2179 }
2180 if lang_matches(&language[1..], "sn-hans") {
2181 // Xiang Chinese; Han (Simplified variant)
2182 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2183 return true;
2184 }
2185 if lang_matches(&language[1..], "sn-hant") {
2186 // Xiang Chinese; Han (Traditional variant)
2187 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2188 return true;
2189 }
2190 if strncmp(&language[1..], "ak-", 3) && subtag_matches(language, "-hk") {
2191 // Hakka Chinese; Hong Kong
2192 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2193 return true;
2194 }
2195 if strncmp(&language[1..], "ak-", 3) && subtag_matches(language, "-mo") {
2196 // Hakka Chinese; Macao
2197 let possible_tags = &[
2198 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2199 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2200 ];
2201 tags.extend_from_slice(possible_tags);
2202 return true;
2203 }
2204 if strncmp(&language[1..], "ak-", 3) && subtag_matches(language, "-tw") {
2205 // Hakka Chinese; Taiwan, Province of China
2206 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2207 return true;
2208 }
2209 if strncmp(&language[1..], "sn-", 3) && subtag_matches(language, "-hk") {
2210 // Xiang Chinese; Hong Kong
2211 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2212 return true;
2213 }
2214 if strncmp(&language[1..], "sn-", 3) && subtag_matches(language, "-mo") {
2215 // Xiang Chinese; Macao
2216 let possible_tags = &[
2217 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2218 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2219 ];
2220 tags.extend_from_slice(possible_tags);
2221 return true;
2222 }
2223 if strncmp(&language[1..], "sn-", 3) && subtag_matches(language, "-tw") {
2224 // Xiang Chinese; Taiwan, Province of China
2225 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2226 return true;
2227 }
2228 }
2229 b'i' => {
2230 if &language[1..] == "-navajo" {
2231 // Navajo(retired code)
2232 let possible_tags = &[
2233 Tag::from_bytes(b"NAV "), // Navajo
2234 Tag::from_bytes(b"ATH "), // Athapaskan
2235 ];
2236 tags.extend_from_slice(possible_tags);
2237 return true;
2238 }
2239 if &language[1..] == "-hak" {
2240 // Hakka(retired code)
2241 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2242 return true;
2243 }
2244 if &language[1..] == "-lux" {
2245 // Luxembourgish(retired code)
2246 tags.push(Tag::from_bytes(b"LTZ ")); // Luxembourgish
2247 return true;
2248 }
2249 }
2250 b'l' => {
2251 if lang_matches(&language[1..], "zh-hans") {
2252 // Literary Chinese; Han (Simplified variant)
2253 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2254 return true;
2255 }
2256 }
2257 b'm' => {
2258 if lang_matches(&language[1..], "np-hant-hk") {
2259 // Min Bei Chinese; Han (Traditional variant); Hong Kong
2260 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2261 return true;
2262 }
2263 if lang_matches(&language[1..], "np-hant-mo") {
2264 // Min Bei Chinese; Han (Traditional variant); Macao
2265 let possible_tags = &[
2266 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2267 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2268 ];
2269 tags.extend_from_slice(possible_tags);
2270 return true;
2271 }
2272 if lang_matches(&language[1..], "np-hans") {
2273 // Min Bei Chinese; Han (Simplified variant)
2274 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2275 return true;
2276 }
2277 if lang_matches(&language[1..], "np-hant") {
2278 // Min Bei Chinese; Han (Traditional variant)
2279 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2280 return true;
2281 }
2282 if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-hk") {
2283 // Min Bei Chinese; Hong Kong
2284 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2285 return true;
2286 }
2287 if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-mo") {
2288 // Min Bei Chinese; Macao
2289 let possible_tags = &[
2290 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2291 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2292 ];
2293 tags.extend_from_slice(possible_tags);
2294 return true;
2295 }
2296 if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-tw") {
2297 // Min Bei Chinese; Taiwan, Province of China
2298 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2299 return true;
2300 }
2301 if strncmp(&language[1..], "nw-", 3) && subtag_matches(language, "-th") {
2302 // Mon; Thailand
2303 tags.push(Tag::from_bytes(b"MONT")); // Thailand Mon
2304 return true;
2305 }
2306 }
2307 b'n' => {
2308 if lang_matches(&language[1..], "an-hant-hk") {
2309 // Min Nan Chinese; Han (Traditional variant); Hong Kong
2310 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2311 return true;
2312 }
2313 if lang_matches(&language[1..], "an-hant-mo") {
2314 // Min Nan Chinese; Han (Traditional variant); Macao
2315 let possible_tags = &[
2316 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2317 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2318 ];
2319 tags.extend_from_slice(possible_tags);
2320 return true;
2321 }
2322 if lang_matches(&language[1..], "an-hans") {
2323 // Min Nan Chinese; Han (Simplified variant)
2324 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2325 return true;
2326 }
2327 if lang_matches(&language[1..], "an-hant") {
2328 // Min Nan Chinese; Han (Traditional variant)
2329 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2330 return true;
2331 }
2332 if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-hk") {
2333 // Min Nan Chinese; Hong Kong
2334 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2335 return true;
2336 }
2337 if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-mo") {
2338 // Min Nan Chinese; Macao
2339 let possible_tags = &[
2340 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2341 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2342 ];
2343 tags.extend_from_slice(possible_tags);
2344 return true;
2345 }
2346 if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-tw") {
2347 // Min Nan Chinese; Taiwan, Province of China
2348 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2349 return true;
2350 }
2351 if &language[1..] == "o-bok" {
2352 // Norwegian Bokmal(retired code)
2353 tags.push(Tag::from_bytes(b"NOR ")); // Norwegian
2354 return true;
2355 }
2356 if &language[1..] == "o-nyn" {
2357 // Norwegian Nynorsk(retired code)
2358 tags.push(Tag::from_bytes(b"NYN ")); // Norwegian Nynorsk (Nynorsk, Norwegian)
2359 return true;
2360 }
2361 }
2362 b'r' => {
2363 if strncmp(&language[1..], "o-", 2) && subtag_matches(language, "-md") {
2364 // Romanian; Moldova
2365 let possible_tags = &[
2366 Tag::from_bytes(b"MOL "), // Moldavian
2367 Tag::from_bytes(b"ROM "), // Romanian
2368 ];
2369 tags.extend_from_slice(possible_tags);
2370 return true;
2371 }
2372 }
2373 b'w' => {
2374 if lang_matches(&language[1..], "uu-hant-hk") {
2375 // Wu Chinese; Han (Traditional variant); Hong Kong
2376 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2377 return true;
2378 }
2379 if lang_matches(&language[1..], "uu-hant-mo") {
2380 // Wu Chinese; Han (Traditional variant); Macao
2381 let possible_tags = &[
2382 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2383 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2384 ];
2385 tags.extend_from_slice(possible_tags);
2386 return true;
2387 }
2388 if lang_matches(&language[1..], "uu-hans") {
2389 // Wu Chinese; Han (Simplified variant)
2390 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2391 return true;
2392 }
2393 if lang_matches(&language[1..], "uu-hant") {
2394 // Wu Chinese; Han (Traditional variant)
2395 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2396 return true;
2397 }
2398 if strncmp(&language[1..], "uu-", 3) && subtag_matches(language, "-hk") {
2399 // Wu Chinese; Hong Kong
2400 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2401 return true;
2402 }
2403 if strncmp(&language[1..], "uu-", 3) && subtag_matches(language, "-mo") {
2404 // Wu Chinese; Macao
2405 let possible_tags = &[
2406 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2407 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2408 ];
2409 tags.extend_from_slice(possible_tags);
2410 return true;
2411 }
2412 if strncmp(&language[1..], "uu-", 3) && subtag_matches(language, "-tw") {
2413 // Wu Chinese; Taiwan, Province of China
2414 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2415 return true;
2416 }
2417 }
2418 b'y' => {
2419 if lang_matches(&language[1..], "ue-hans") {
2420 // Yue Chinese; Han (Simplified variant)
2421 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2422 return true;
2423 }
2424 }
2425 b'z' => {
2426 if lang_matches(&language[1..], "h-hant-hk") {
2427 // Chinese [macrolanguage]; Han (Traditional variant); Hong Kong
2428 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2429 return true;
2430 }
2431 if lang_matches(&language[1..], "h-hant-mo") {
2432 // Chinese [macrolanguage]; Han (Traditional variant); Macao
2433 let possible_tags = &[
2434 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2435 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2436 ];
2437 tags.extend_from_slice(possible_tags);
2438 return true;
2439 }
2440 if &language[1..] == "h-min-nan" {
2441 // Minnan, Hokkien, Amoy, Taiwanese, Southern Min, Southern Fujian, Hoklo, Southern Fukien, Ho-lo(retired code)
2442 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2443 return true;
2444 }
2445 if lang_matches(&language[1..], "h-hans") {
2446 // Chinese [macrolanguage]; Han (Simplified variant)
2447 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2448 return true;
2449 }
2450 if lang_matches(&language[1..], "h-hant") {
2451 // Chinese [macrolanguage]; Han (Traditional variant)
2452 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2453 return true;
2454 }
2455 if &language[1..] == "h-min" {
2456 // Min, Fuzhou, Hokkien, Amoy, or Taiwanese(retired code)
2457 tags.push(Tag::from_bytes(b"ZHS ")); // Chinese, Simplified
2458 return true;
2459 }
2460 if strncmp(&language[1..], "h-", 2) && subtag_matches(language, "-hk") {
2461 // Chinese [macrolanguage]; Hong Kong
2462 tags.push(Tag::from_bytes(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2463 return true;
2464 }
2465 if strncmp(&language[1..], "h-", 2) && subtag_matches(language, "-mo") {
2466 // Chinese [macrolanguage]; Macao
2467 let possible_tags = &[
2468 Tag::from_bytes(b"ZHTM"), // Chinese, Traditional, Macao SAR
2469 Tag::from_bytes(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2470 ];
2471 tags.extend_from_slice(possible_tags);
2472 return true;
2473 }
2474 if strncmp(&language[1..], "h-", 2) && subtag_matches(language, "-tw") {
2475 // Chinese [macrolanguage]; Taiwan, Province of China
2476 tags.push(Tag::from_bytes(b"ZHT ")); // Chinese, Traditional
2477 return true;
2478 }
2479 }
2480 _ => {}
2481 }
2482 false
2483}
2484