1 | #[rustfmt::skip] |
2 | static TABLE: &[(u16, Language, &str, &str)] = &[ |
3 | (0x0000, Language::Unknown, "Unknown" , "Unknown" ), |
4 | (0x0436, Language::Afrikaans_SouthAfrica, "Afrikaans" , "South Africa" ), |
5 | (0x041C, Language::Albanian_Albania, "Albanian" , "Albania" ), |
6 | (0x0484, Language::Alsatian_France, "Alsatian" , "France" ), |
7 | (0x045E, Language::Amharic_Ethiopia, "Amharic" , "Ethiopia" ), |
8 | (0x1401, Language::Arabic_Algeria, "Arabic" , "Algeria" ), |
9 | (0x3C01, Language::Arabic_Bahrain, "Arabic" , "Bahrain" ), |
10 | (0x0C01, Language::Arabic_Egypt, "Arabic" , "Egypt" ), |
11 | (0x0801, Language::Arabic_Iraq, "Arabic" , "Iraq" ), |
12 | (0x2C01, Language::Arabic_Jordan, "Arabic" , "Jordan" ), |
13 | (0x3401, Language::Arabic_Kuwait, "Arabic" , "Kuwait" ), |
14 | (0x3001, Language::Arabic_Lebanon, "Arabic" , "Lebanon" ), |
15 | (0x1001, Language::Arabic_Libya, "Arabic" , "Libya" ), |
16 | (0x1801, Language::Arabic_Morocco, "Arabic" , "Morocco" ), |
17 | (0x2001, Language::Arabic_Oman, "Arabic" , "Oman" ), |
18 | (0x4001, Language::Arabic_Qatar, "Arabic" , "Qatar" ), |
19 | (0x0401, Language::Arabic_SaudiArabia, "Arabic" , "Saudi Arabia" ), |
20 | (0x2801, Language::Arabic_Syria, "Arabic" , "Syria" ), |
21 | (0x1C01, Language::Arabic_Tunisia, "Arabic" , "Tunisia" ), |
22 | (0x3801, Language::Arabic_UAE, "Arabic" , "U.A.E." ), |
23 | (0x2401, Language::Arabic_Yemen, "Arabic" , "Yemen" ), |
24 | (0x042B, Language::Armenian_Armenia, "Armenian" , "Armenia" ), |
25 | (0x044D, Language::Assamese_India, "Assamese" , "India" ), |
26 | (0x082C, Language::Azeri_Cyrillic_Azerbaijan, "Azeri (Cyrillic)" , "Azerbaijan" ), |
27 | (0x042C, Language::Azeri_Latin_Azerbaijan, "Azeri (Latin)" , "Azerbaijan" ), |
28 | (0x046D, Language::Bashkir_Russia, "Bashkir" , "Russia" ), |
29 | (0x042D, Language::Basque_Basque, "Basque" , "Basque" ), |
30 | (0x0423, Language::Belarusian_Belarus, "Belarusian" , "Belarus" ), |
31 | (0x0845, Language::Bengali_Bangladesh, "Bengali" , "Bangladesh" ), |
32 | (0x0445, Language::Bengali_India, "Bengali" , "India" ), |
33 | (0x201A, Language::Bosnian_Cyrillic_BosniaAndHerzegovina, "Bosnian (Cyrillic)" , "Bosnia and Herzegovina" ), |
34 | (0x141A, Language::Bosnian_Latin_BosniaAndHerzegovina, "Bosnian (Latin)" , "Bosnia and Herzegovina" ), |
35 | (0x047E, Language::Breton_France, "Breton" , "France" ), |
36 | (0x0402, Language::Bulgarian_Bulgaria, "Bulgarian" , "Bulgaria" ), |
37 | (0x0403, Language::Catalan_Catalan, "Catalan" , "Catalan" ), |
38 | (0x0C04, Language::Chinese_HongKongSAR, "Chinese" , "Hong Kong S.A.R." ), |
39 | (0x1404, Language::Chinese_MacaoSAR, "Chinese" , "Macao S.A.R." ), |
40 | (0x0804, Language::Chinese_PeoplesRepublicOfChina, "Chinese" , "People's Republic of China" ), |
41 | (0x1004, Language::Chinese_Singapore, "Chinese" , "Singapore" ), |
42 | (0x0404, Language::Chinese_Taiwan, "Chinese" , "Taiwan" ), |
43 | (0x0483, Language::Corsican_France, "Corsican" , "France" ), |
44 | (0x041A, Language::Croatian_Croatia, "Croatian" , "Croatia" ), |
45 | (0x101A, Language::Croatian_Latin_BosniaAndHerzegovina, "Croatian (Latin)" , "Bosnia and Herzegovina" ), |
46 | (0x0405, Language::Czech_CzechRepublic, "Czech" , "Czech Republic" ), |
47 | (0x0406, Language::Danish_Denmark, "Danish" , "Denmark" ), |
48 | (0x048C, Language::Dari_Afghanistan, "Dari" , "Afghanistan" ), |
49 | (0x0465, Language::Divehi_Maldives, "Divehi" , "Maldives" ), |
50 | (0x0813, Language::Dutch_Belgium, "Dutch" , "Belgium" ), |
51 | (0x0413, Language::Dutch_Netherlands, "Dutch" , "Netherlands" ), |
52 | (0x0C09, Language::English_Australia, "English" , "Australia" ), |
53 | (0x2809, Language::English_Belize, "English" , "Belize" ), |
54 | (0x1009, Language::English_Canada, "English" , "Canada" ), |
55 | (0x2409, Language::English_Caribbean, "English" , "Caribbean" ), |
56 | (0x4009, Language::English_India, "English" , "India" ), |
57 | (0x1809, Language::English_Ireland, "English" , "Ireland" ), |
58 | (0x2009, Language::English_Jamaica, "English" , "Jamaica" ), |
59 | (0x4409, Language::English_Malaysia, "English" , "Malaysia" ), |
60 | (0x1409, Language::English_NewZealand, "English" , "New Zealand" ), |
61 | (0x3409, Language::English_RepublicOfThePhilippines, "English" , "Republic of the Philippines" ), |
62 | (0x4809, Language::English_Singapore, "English" , "Singapore" ), |
63 | (0x1C09, Language::English_SouthAfrica, "English" , "South Africa" ), |
64 | (0x2C09, Language::English_TrinidadAndTobago, "English" , "Trinidad and Tobago" ), |
65 | (0x0809, Language::English_UnitedKingdom, "English" , "United Kingdom" ), |
66 | (0x0409, Language::English_UnitedStates, "English" , "United States" ), |
67 | (0x3009, Language::English_Zimbabwe, "English" , "Zimbabwe" ), |
68 | (0x0425, Language::Estonian_Estonia, "Estonian" , "Estonia" ), |
69 | (0x0438, Language::Faroese_FaroeIslands, "Faroese" , "Faroe Islands" ), |
70 | (0x0464, Language::Filipino_Philippines, "Filipino" , "Philippines" ), |
71 | (0x040B, Language::Finnish_Finland, "Finnish" , "Finland" ), |
72 | (0x080C, Language::French_Belgium, "French" , "Belgium" ), |
73 | (0x0C0C, Language::French_Canada, "French" , "Canada" ), |
74 | (0x040C, Language::French_France, "French" , "France" ), |
75 | (0x140c, Language::French_Luxembourg, "French" , "Luxembourg" ), |
76 | (0x180C, Language::French_PrincipalityOfMonaco, "French" , "Principality of Monaco" ), |
77 | (0x100C, Language::French_Switzerland, "French" , "Switzerland" ), |
78 | (0x0462, Language::Frisian_Netherlands, "Frisian" , "Netherlands" ), |
79 | (0x0456, Language::Galician_Galician, "Galician" , "Galician" ), |
80 | (0x0437, Language::Georgian_Georgia, "Georgian" , "Georgia" ), |
81 | (0x0C07, Language::German_Austria, "German" , "Austria" ), |
82 | (0x0407, Language::German_Germany, "German" , "Germany" ), |
83 | (0x1407, Language::German_Liechtenstein, "German" , "Liechtenstein" ), |
84 | (0x1007, Language::German_Luxembourg, "German" , "Luxembourg" ), |
85 | (0x0807, Language::German_Switzerland, "German" , "Switzerland" ), |
86 | (0x0408, Language::Greek_Greece, "Greek" , "Greece" ), |
87 | (0x046F, Language::Greenlandic_Greenland, "Greenlandic" , "Greenland" ), |
88 | (0x0447, Language::Gujarati_India, "Gujarati" , "India" ), |
89 | (0x0468, Language::Hausa_Latin_Nigeria, "Hausa (Latin)" , "Nigeria" ), |
90 | (0x040D, Language::Hebrew_Israel, "Hebrew" , "Israel" ), |
91 | (0x0439, Language::Hindi_India, "Hindi" , "India" ), |
92 | (0x040E, Language::Hungarian_Hungary, "Hungarian" , "Hungary" ), |
93 | (0x040F, Language::Icelandic_Iceland, "Icelandic" , "Iceland" ), |
94 | (0x0470, Language::Igbo_Nigeria, "Igbo" , "Nigeria" ), |
95 | (0x0421, Language::Indonesian_Indonesia, "Indonesian" , "Indonesia" ), |
96 | (0x045D, Language::Inuktitut_Canada, "Inuktitut" , "Canada" ), |
97 | (0x085D, Language::Inuktitut_Latin_Canada, "Inuktitut (Latin)" , "Canada" ), |
98 | (0x083C, Language::Irish_Ireland, "Irish" , "Ireland" ), |
99 | (0x0434, Language::isiXhosa_SouthAfrica, "isiXhosa" , "South Africa" ), |
100 | (0x0435, Language::isiZulu_SouthAfrica, "isiZulu" , "South Africa" ), |
101 | (0x0410, Language::Italian_Italy, "Italian" , "Italy" ), |
102 | (0x0810, Language::Italian_Switzerland, "Italian" , "Switzerland" ), |
103 | (0x0411, Language::Japanese_Japan, "Japanese" , "Japan" ), |
104 | (0x044B, Language::Kannada_India, "Kannada" , "India" ), |
105 | (0x043F, Language::Kazakh_Kazakhstan, "Kazakh" , "Kazakhstan" ), |
106 | (0x0453, Language::Khmer_Cambodia, "Khmer" , "Cambodia" ), |
107 | (0x0486, Language::Kiche_Guatemala, "K'iche" , "Guatemala" ), |
108 | (0x0487, Language::Kinyarwanda_Rwanda, "Kinyarwanda" , "Rwanda" ), |
109 | (0x0441, Language::Kiswahili_Kenya, "Kiswahili" , "Kenya" ), |
110 | (0x0457, Language::Konkani_India, "Konkani" , "India" ), |
111 | (0x0412, Language::Korean_Korea, "Korean" , "Korea" ), |
112 | (0x0440, Language::Kyrgyz_Kyrgyzstan, "Kyrgyz" , "Kyrgyzstan" ), |
113 | (0x0454, Language::Lao_LaoPDR, "Lao" , "Lao P.D.R." ), |
114 | (0x0426, Language::Latvian_Latvia, "Latvian" , "Latvia" ), |
115 | (0x0427, Language::Lithuanian_Lithuania, "Lithuanian" , "Lithuania" ), |
116 | (0x082E, Language::LowerSorbian_Germany, "Lower Sorbian" , "Germany" ), |
117 | (0x046E, Language::Luxembourgish_Luxembourg, "Luxembourgish" , "Luxembourg" ), |
118 | (0x042F, Language::Macedonian_NorthMacedonia, "Macedonian" , "North Macedonia" ), |
119 | (0x083E, Language::Malay_BruneiDarussalam, "Malay" , "Brunei Darussalam" ), |
120 | (0x043E, Language::Malay_Malaysia, "Malay" , "Malaysia" ), |
121 | (0x044C, Language::Malayalam_India, "Malayalam" , "India" ), |
122 | (0x043A, Language::Maltese_Malta, "Maltese" , "Malta" ), |
123 | (0x0481, Language::Maori_NewZealand, "Maori" , "New Zealand" ), |
124 | (0x047A, Language::Mapudungun_Chile, "Mapudungun" , "Chile" ), |
125 | (0x044E, Language::Marathi_India, "Marathi" , "India" ), |
126 | (0x047C, Language::Mohawk_Mohawk, "Mohawk" , "Mohawk" ), |
127 | (0x0450, Language::Mongolian_Cyrillic_Mongolia, "Mongolian (Cyrillic)" , "Mongolia" ), |
128 | (0x0850, Language::Mongolian_Traditional_PeoplesRepublicOfChina, "Mongolian (Traditional)" , "People's Republic of China" ), |
129 | (0x0461, Language::Nepali_Nepal, "Nepali" , "Nepal" ), |
130 | (0x0414, Language::Norwegian_Bokmal_Norway, "Norwegian (Bokmal)" , "Norway" ), |
131 | (0x0814, Language::Norwegian_Nynorsk_Norway, "Norwegian (Nynorsk)" , "Norway" ), |
132 | (0x0482, Language::Occitan_France, "Occitan" , "France" ), |
133 | (0x0448, Language::Odia_India, "Odia (formerly Oriya)" , "India" ), |
134 | (0x0463, Language::Pashto_Afghanistan, "Pashto" , "Afghanistan" ), |
135 | (0x0415, Language::Polish_Poland, "Polish" , "Poland" ), |
136 | (0x0416, Language::Portuguese_Brazil, "Portuguese" , "Brazil" ), |
137 | (0x0816, Language::Portuguese_Portugal, "Portuguese" , "Portugal" ), |
138 | (0x0446, Language::Punjabi_India, "Punjabi" , "India" ), |
139 | (0x046B, Language::Quechua_Bolivia, "Quechua" , "Bolivia" ), |
140 | (0x086B, Language::Quechua_Ecuador, "Quechua" , "Ecuador" ), |
141 | (0x0C6B, Language::Quechua_Peru, "Quechua" , "Peru" ), |
142 | (0x0418, Language::Romanian_Romania, "Romanian" , "Romania" ), |
143 | (0x0417, Language::Romansh_Switzerland, "Romansh" , "Switzerland" ), |
144 | (0x0419, Language::Russian_Russia, "Russian" , "Russia" ), |
145 | (0x243B, Language::Sami_Inari_Finland, "Sami (Inari)" , "Finland" ), |
146 | (0x103B, Language::Sami_Lule_Norway, "Sami (Lule)" , "Norway" ), |
147 | (0x143B, Language::Sami_Lule_Sweden, "Sami (Lule)" , "Sweden" ), |
148 | (0x0C3B, Language::Sami_Northern_Finland, "Sami (Northern)" , "Finland" ), |
149 | (0x043B, Language::Sami_Northern_Norway, "Sami (Northern)" , "Norway" ), |
150 | (0x083B, Language::Sami_Northern_Sweden, "Sami (Northern)" , "Sweden" ), |
151 | (0x203B, Language::Sami_Skolt_Finland, "Sami (Skolt)" , "Finland" ), |
152 | (0x183B, Language::Sami_Southern_Norway, "Sami (Southern)" , "Norway" ), |
153 | (0x1C3B, Language::Sami_Southern_Sweden, "Sami (Southern)" , "Sweden" ), |
154 | (0x044F, Language::Sanskrit_India, "Sanskrit" , "India" ), |
155 | (0x1C1A, Language::Serbian_Cyrillic_BosniaAndHerzegovina, "Serbian (Cyrillic)" , "Bosnia and Herzegovina" ), |
156 | (0x0C1A, Language::Serbian_Cyrillic_Serbia, "Serbian (Cyrillic)" , "Serbia" ), |
157 | (0x181A, Language::Serbian_Latin_BosniaAndHerzegovina, "Serbian (Latin)" , "Bosnia and Herzegovina" ), |
158 | (0x081A, Language::Serbian_Latin_Serbia, "Serbian (Latin)" , "Serbia" ), |
159 | (0x046C, Language::SesothoSaLeboa_SouthAfrica, "Sesotho sa Leboa" , "South Africa" ), |
160 | (0x0432, Language::Setswana_SouthAfrica, "Setswana" , "South Africa" ), |
161 | (0x045B, Language::Sinhala_SriLanka, "Sinhala" , "Sri Lanka" ), |
162 | (0x041B, Language::Slovak_Slovakia, "Slovak" , "Slovakia" ), |
163 | (0x0424, Language::Slovenian_Slovenia, "Slovenian" , "Slovenia" ), |
164 | (0x2C0A, Language::Spanish_Argentina, "Spanish" , "Argentina" ), |
165 | (0x400A, Language::Spanish_Bolivia, "Spanish" , "Bolivia" ), |
166 | (0x340A, Language::Spanish_Chile, "Spanish" , "Chile" ), |
167 | (0x240A, Language::Spanish_Colombia, "Spanish" , "Colombia" ), |
168 | (0x140A, Language::Spanish_CostaRica, "Spanish" , "Costa Rica" ), |
169 | (0x1C0A, Language::Spanish_DominicanRepublic, "Spanish" , "Dominican Republic" ), |
170 | (0x300A, Language::Spanish_Ecuador, "Spanish" , "Ecuador" ), |
171 | (0x440A, Language::Spanish_ElSalvador, "Spanish" , "El Salvador" ), |
172 | (0x100A, Language::Spanish_Guatemala, "Spanish" , "Guatemala" ), |
173 | (0x480A, Language::Spanish_Honduras, "Spanish" , "Honduras" ), |
174 | (0x080A, Language::Spanish_Mexico, "Spanish" , "Mexico" ), |
175 | (0x4C0A, Language::Spanish_Nicaragua, "Spanish" , "Nicaragua" ), |
176 | (0x180A, Language::Spanish_Panama, "Spanish" , "Panama" ), |
177 | (0x3C0A, Language::Spanish_Paraguay, "Spanish" , "Paraguay" ), |
178 | (0x280A, Language::Spanish_Peru, "Spanish" , "Peru" ), |
179 | (0x500A, Language::Spanish_PuertoRico, "Spanish" , "Puerto Rico" ), |
180 | (0x0C0A, Language::Spanish_ModernSort_Spain, "Spanish (Modern Sort)" , "Spain" ), |
181 | (0x040A, Language::Spanish_TraditionalSort_Spain, "Spanish (Traditional Sort)" , "Spain" ), |
182 | (0x540A, Language::Spanish_UnitedStates, "Spanish" , "United States" ), |
183 | (0x380A, Language::Spanish_Uruguay, "Spanish" , "Uruguay" ), |
184 | (0x200A, Language::Spanish_Venezuela, "Spanish" , "Venezuela" ), |
185 | (0x081D, Language::Swedish_Finland, "Swedish" , "Finland" ), |
186 | (0x041D, Language::Swedish_Sweden, "Swedish" , "Sweden" ), |
187 | (0x045A, Language::Syriac_Syria, "Syriac" , "Syria" ), |
188 | (0x0428, Language::Tajik_Cyrillic_Tajikistan, "Tajik (Cyrillic)" , "Tajikistan" ), |
189 | (0x085F, Language::Tamazight_Latin_Algeria, "Tamazight (Latin)" , "Algeria" ), |
190 | (0x0449, Language::Tamil_India, "Tamil" , "India" ), |
191 | (0x0444, Language::Tatar_Russia, "Tatar" , "Russia" ), |
192 | (0x044A, Language::Telugu_India, "Telugu" , "India" ), |
193 | (0x041E, Language::Thai_Thailand, "Thai" , "Thailand" ), |
194 | (0x0451, Language::Tibetan_PRC, "Tibetan" , "PRC" ), |
195 | (0x041F, Language::Turkish_Turkey, "Turkish" , "Turkey" ), |
196 | (0x0442, Language::Turkmen_Turkmenistan, "Turkmen" , "Turkmenistan" ), |
197 | (0x0480, Language::Uighur_PRC, "Uighur" , "PRC" ), |
198 | (0x0422, Language::Ukrainian_Ukraine, "Ukrainian" , "Ukraine" ), |
199 | (0x042E, Language::UpperSorbian_Germany, "Upper Sorbian" , "Germany" ), |
200 | (0x0420, Language::Urdu_IslamicRepublicOfPakistan, "Urdu" , "Islamic Republic of Pakistan" ), |
201 | (0x0843, Language::Uzbek_Cyrillic_Uzbekistan, "Uzbek (Cyrillic)" , "Uzbekistan" ), |
202 | (0x0443, Language::Uzbek_Latin_Uzbekistan, "Uzbek (Latin)" , "Uzbekistan" ), |
203 | (0x042A, Language::Vietnamese_Vietnam, "Vietnamese" , "Vietnam" ), |
204 | (0x0452, Language::Welsh_UnitedKingdom, "Welsh" , "United Kingdom" ), |
205 | (0x0488, Language::Wolof_Senegal, "Wolof" , "Senegal" ), |
206 | (0x0485, Language::Yakut_Russia, "Yakut" , "Russia" ), |
207 | (0x0478, Language::Yi_PRC, "Yi" , "PRC" ), |
208 | (0x046A, Language::Yoruba_Nigeria, "Yoruba" , "Nigeria" ), |
209 | ]; |
210 | |
211 | /// A [`Name`](crate::name::Name) language. |
212 | /// |
213 | /// Consists of Language + Region pairs. |
214 | /// |
215 | /// <https://learn.microsoft.com/en-us/typography/opentype/spec/name#windows-language-ids> |
216 | #[allow (missing_docs)] |
217 | #[allow (non_camel_case_types)] |
218 | #[derive (Clone, Copy, PartialEq, Eq, Debug)] |
219 | pub enum Language { |
220 | Unknown = 0, |
221 | Afrikaans_SouthAfrica, |
222 | Albanian_Albania, |
223 | Alsatian_France, |
224 | Amharic_Ethiopia, |
225 | Arabic_Algeria, |
226 | Arabic_Bahrain, |
227 | Arabic_Egypt, |
228 | Arabic_Iraq, |
229 | Arabic_Jordan, |
230 | Arabic_Kuwait, |
231 | Arabic_Lebanon, |
232 | Arabic_Libya, |
233 | Arabic_Morocco, |
234 | Arabic_Oman, |
235 | Arabic_Qatar, |
236 | Arabic_SaudiArabia, |
237 | Arabic_Syria, |
238 | Arabic_Tunisia, |
239 | Arabic_UAE, |
240 | Arabic_Yemen, |
241 | Armenian_Armenia, |
242 | Assamese_India, |
243 | Azeri_Cyrillic_Azerbaijan, |
244 | Azeri_Latin_Azerbaijan, |
245 | Bashkir_Russia, |
246 | Basque_Basque, |
247 | Belarusian_Belarus, |
248 | Bengali_Bangladesh, |
249 | Bengali_India, |
250 | Bosnian_Cyrillic_BosniaAndHerzegovina, |
251 | Bosnian_Latin_BosniaAndHerzegovina, |
252 | Breton_France, |
253 | Bulgarian_Bulgaria, |
254 | Catalan_Catalan, |
255 | Chinese_HongKongSAR, |
256 | Chinese_MacaoSAR, |
257 | Chinese_PeoplesRepublicOfChina, |
258 | Chinese_Singapore, |
259 | Chinese_Taiwan, |
260 | Corsican_France, |
261 | Croatian_Croatia, |
262 | Croatian_Latin_BosniaAndHerzegovina, |
263 | Czech_CzechRepublic, |
264 | Danish_Denmark, |
265 | Dari_Afghanistan, |
266 | Divehi_Maldives, |
267 | Dutch_Belgium, |
268 | Dutch_Netherlands, |
269 | English_Australia, |
270 | English_Belize, |
271 | English_Canada, |
272 | English_Caribbean, |
273 | English_India, |
274 | English_Ireland, |
275 | English_Jamaica, |
276 | English_Malaysia, |
277 | English_NewZealand, |
278 | English_RepublicOfThePhilippines, |
279 | English_Singapore, |
280 | English_SouthAfrica, |
281 | English_TrinidadAndTobago, |
282 | English_UnitedKingdom, |
283 | English_UnitedStates, |
284 | English_Zimbabwe, |
285 | Estonian_Estonia, |
286 | Faroese_FaroeIslands, |
287 | Filipino_Philippines, |
288 | Finnish_Finland, |
289 | French_Belgium, |
290 | French_Canada, |
291 | French_France, |
292 | French_Luxembourg, |
293 | French_PrincipalityOfMonaco, |
294 | French_Switzerland, |
295 | Frisian_Netherlands, |
296 | Galician_Galician, |
297 | Georgian_Georgia, |
298 | German_Austria, |
299 | German_Germany, |
300 | German_Liechtenstein, |
301 | German_Luxembourg, |
302 | German_Switzerland, |
303 | Greek_Greece, |
304 | Greenlandic_Greenland, |
305 | Gujarati_India, |
306 | Hausa_Latin_Nigeria, |
307 | Hebrew_Israel, |
308 | Hindi_India, |
309 | Hungarian_Hungary, |
310 | Icelandic_Iceland, |
311 | Igbo_Nigeria, |
312 | Indonesian_Indonesia, |
313 | Inuktitut_Canada, |
314 | Inuktitut_Latin_Canada, |
315 | Irish_Ireland, |
316 | isiXhosa_SouthAfrica, |
317 | isiZulu_SouthAfrica, |
318 | Italian_Italy, |
319 | Italian_Switzerland, |
320 | Japanese_Japan, |
321 | Kannada_India, |
322 | Kazakh_Kazakhstan, |
323 | Khmer_Cambodia, |
324 | Kiche_Guatemala, |
325 | Kinyarwanda_Rwanda, |
326 | Kiswahili_Kenya, |
327 | Konkani_India, |
328 | Korean_Korea, |
329 | Kyrgyz_Kyrgyzstan, |
330 | Lao_LaoPDR, |
331 | Latvian_Latvia, |
332 | Lithuanian_Lithuania, |
333 | LowerSorbian_Germany, |
334 | Luxembourgish_Luxembourg, |
335 | Macedonian_NorthMacedonia, |
336 | Malay_BruneiDarussalam, |
337 | Malay_Malaysia, |
338 | Malayalam_India, |
339 | Maltese_Malta, |
340 | Maori_NewZealand, |
341 | Mapudungun_Chile, |
342 | Marathi_India, |
343 | Mohawk_Mohawk, |
344 | Mongolian_Cyrillic_Mongolia, |
345 | Mongolian_Traditional_PeoplesRepublicOfChina, |
346 | Nepali_Nepal, |
347 | Norwegian_Bokmal_Norway, |
348 | Norwegian_Nynorsk_Norway, |
349 | Occitan_France, |
350 | Odia_India, |
351 | Pashto_Afghanistan, |
352 | Polish_Poland, |
353 | Portuguese_Brazil, |
354 | Portuguese_Portugal, |
355 | Punjabi_India, |
356 | Quechua_Bolivia, |
357 | Quechua_Ecuador, |
358 | Quechua_Peru, |
359 | Romanian_Romania, |
360 | Romansh_Switzerland, |
361 | Russian_Russia, |
362 | Sami_Inari_Finland, |
363 | Sami_Lule_Norway, |
364 | Sami_Lule_Sweden, |
365 | Sami_Northern_Finland, |
366 | Sami_Northern_Norway, |
367 | Sami_Northern_Sweden, |
368 | Sami_Skolt_Finland, |
369 | Sami_Southern_Norway, |
370 | Sami_Southern_Sweden, |
371 | Sanskrit_India, |
372 | Serbian_Cyrillic_BosniaAndHerzegovina, |
373 | Serbian_Cyrillic_Serbia, |
374 | Serbian_Latin_BosniaAndHerzegovina, |
375 | Serbian_Latin_Serbia, |
376 | SesothoSaLeboa_SouthAfrica, |
377 | Setswana_SouthAfrica, |
378 | Sinhala_SriLanka, |
379 | Slovak_Slovakia, |
380 | Slovenian_Slovenia, |
381 | Spanish_Argentina, |
382 | Spanish_Bolivia, |
383 | Spanish_Chile, |
384 | Spanish_Colombia, |
385 | Spanish_CostaRica, |
386 | Spanish_DominicanRepublic, |
387 | Spanish_Ecuador, |
388 | Spanish_ElSalvador, |
389 | Spanish_Guatemala, |
390 | Spanish_Honduras, |
391 | Spanish_Mexico, |
392 | Spanish_Nicaragua, |
393 | Spanish_Panama, |
394 | Spanish_Paraguay, |
395 | Spanish_Peru, |
396 | Spanish_PuertoRico, |
397 | Spanish_ModernSort_Spain, |
398 | Spanish_TraditionalSort_Spain, |
399 | Spanish_UnitedStates, |
400 | Spanish_Uruguay, |
401 | Spanish_Venezuela, |
402 | Swedish_Finland, |
403 | Swedish_Sweden, |
404 | Syriac_Syria, |
405 | Tajik_Cyrillic_Tajikistan, |
406 | Tamazight_Latin_Algeria, |
407 | Tamil_India, |
408 | Tatar_Russia, |
409 | Telugu_India, |
410 | Thai_Thailand, |
411 | Tibetan_PRC, |
412 | Turkish_Turkey, |
413 | Turkmen_Turkmenistan, |
414 | Uighur_PRC, |
415 | Ukrainian_Ukraine, |
416 | UpperSorbian_Germany, |
417 | Urdu_IslamicRepublicOfPakistan, |
418 | Uzbek_Cyrillic_Uzbekistan, |
419 | Uzbek_Latin_Uzbekistan, |
420 | Vietnamese_Vietnam, |
421 | Welsh_UnitedKingdom, |
422 | Wolof_Senegal, |
423 | Yakut_Russia, |
424 | Yi_PRC, |
425 | Yoruba_Nigeria, |
426 | } |
427 | |
428 | impl Language { |
429 | pub(crate) fn windows_language(id: u16) -> Self { |
430 | if let Some(index: usize) = TABLE.iter().position(|v: &(u16, Language, &str, &str)| v.0 == id) { |
431 | TABLE[index].1 |
432 | } else { |
433 | Self::Unknown |
434 | } |
435 | } |
436 | |
437 | /// Returns the primary language. |
438 | pub fn primary_language(&self) -> &'static str { |
439 | TABLE[*self as usize].2 |
440 | } |
441 | |
442 | /// Returns a language region. |
443 | pub fn region(&self) -> &'static str { |
444 | TABLE[*self as usize].3 |
445 | } |
446 | } |
447 | |
448 | impl core::fmt::Display for Language { |
449 | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { |
450 | write!(f, " {} ( {})" , self.primary_language(), self.region()) |
451 | } |
452 | } |
453 | |