1pub mod base;
5pub mod currency;
6pub mod floatpath;
7pub mod lang_af;
8pub mod lang_am;
9pub mod lang_ar;
10pub mod lang_as;
11pub mod lang_az;
12pub mod lang_ba;
13pub mod lang_ban;
14pub mod lang_be;
15pub mod lang_bg;
16pub mod lang_bm;
17pub mod lang_bn;
18pub mod lang_bo;
19pub mod lang_br;
20pub mod lang_bs;
21pub mod lang_ca;
22pub mod lang_ce;
23pub mod lang_ceb;
24pub mod lang_ckb;
25pub mod lang_cnh;
26pub mod lang_cs;
27pub mod lang_cy;
28pub mod lang_da;
29pub mod lang_de;
30pub mod lang_dv;
31pub mod lang_el;
32pub mod lang_en;
33pub mod lang_en_aero;
34pub mod lang_en_aero_faa;
35pub mod lang_en_aero_nato;
36pub mod lang_en_aero_us_army;
37pub mod lang_en_aero_usn;
38pub mod lang_en_in;
39pub mod lang_en_ne;
40pub mod lang_en_ng;
41pub mod lang_en_np;
42pub mod lang_eo;
43pub mod lang_es;
44pub mod lang_es_co;
45pub mod lang_es_cr;
46pub mod lang_es_gt;
47pub mod lang_es_hn;
48pub mod lang_es_ni;
49pub mod lang_es_ve;
50pub mod lang_et;
51pub mod lang_eu;
52pub mod lang_fa;
53pub mod lang_ff;
54pub mod lang_fi;
55pub mod lang_fil;
56pub mod lang_fo;
57pub mod lang_fr;
58pub mod lang_fr_be;
59pub mod lang_fr_ch;
60pub mod lang_fr_dz;
61pub mod lang_gl;
62pub mod lang_gu;
63pub mod lang_ha;
64pub mod lang_haw;
65pub mod lang_he;
66pub mod lang_hi;
67pub mod lang_hmn;
68pub mod lang_hr;
69pub mod lang_ht;
70pub mod lang_hu;
71pub mod lang_hy;
72pub mod lang_id;
73pub mod lang_is;
74pub mod lang_it;
75pub mod lang_ja;
76pub mod lang_jv;
77pub mod lang_ka;
78pub mod lang_ki;
79pub mod lang_kk;
80pub mod lang_km;
81pub mod lang_kn;
82pub mod lang_ko;
83pub mod lang_kok;
84pub mod lang_ksw;
85pub mod lang_ku;
86pub mod lang_ky;
87pub mod lang_kz;
88pub mod lang_la;
89pub mod lang_lb;
90pub mod lang_lg;
91pub mod lang_lij;
92pub mod lang_ln;
93pub mod lang_lo;
94pub mod lang_lt;
95pub mod lang_lus;
96pub mod lang_lv;
97pub mod lang_mg;
98pub mod lang_mi;
99pub mod lang_mk;
100pub mod lang_ml;
101pub mod lang_mn;
102pub mod lang_mr;
103pub mod lang_ms;
104pub mod lang_mt;
105pub mod lang_my;
106pub mod lang_nb;
107pub mod lang_ne;
108pub mod lang_nl;
109pub mod lang_nn;
110pub mod lang_oc;
111pub mod lang_om;
112pub mod lang_or;
113pub mod lang_pa;
114pub mod lang_pap;
115pub mod lang_pl;
116pub mod lang_pli;
117pub mod lang_ps;
118pub mod lang_pt;
119pub mod lang_pt_br;
120pub mod lang_rm;
121pub mod lang_rm_puter;
122pub mod lang_rm_surmiran;
123pub mod lang_rm_sursilv;
124pub mod lang_rm_sutsilv;
125pub mod lang_rm_vallader;
126pub mod lang_ro;
127pub mod lang_ru;
128pub mod lang_rw;
129pub mod lang_sa;
130pub mod lang_sd;
131pub mod lang_si;
132pub mod lang_sk;
133pub mod lang_sl;
134pub mod lang_sn;
135pub mod lang_so;
136pub mod lang_sq;
137pub mod lang_sr;
138pub mod lang_sr_latn;
139pub mod lang_su;
140pub mod lang_sv;
141pub mod lang_sw;
142pub mod lang_ta;
143pub mod lang_te;
144pub mod lang_tet;
145pub mod lang_tg;
146pub mod lang_th;
147pub mod lang_ti;
148pub mod lang_tk;
149pub mod lang_tl;
150pub mod lang_tr;
151pub mod lang_tt;
152pub mod lang_uk;
153pub mod lang_ur;
154pub mod lang_uz;
155pub mod lang_uz_cyr;
156pub mod lang_vi;
157pub mod lang_wo;
158pub mod lang_xh;
159pub mod lang_yi;
160pub mod lang_yo;
161pub mod lang_zh;
162pub mod lang_zh_hk;
163pub mod lang_zh_tw;
164pub mod lang_zu;
165pub mod strnum;
166
167pub use base::{KwVal, Kwargs, Lang, N2WError, Result};
168pub use currency::{CurrencyForms, CurrencyValue};
169pub use floatpath::FloatValue;
170pub use lang_af::LangAf;
171pub use lang_am::LangAm;
172pub use lang_ar::LangAr;
173pub use lang_as::LangAs;
174pub use lang_az::LangAz;
175pub use lang_ba::LangBa;
176pub use lang_ban::LangBan;
177pub use lang_be::LangBe;
178pub use lang_bg::LangBg;
179pub use lang_bm::LangBm;
180pub use lang_bn::LangBn;
181pub use lang_bo::LangBo;
182pub use lang_br::LangBr;
183pub use lang_bs::LangBs;
184pub use lang_ca::LangCa;
185pub use lang_ce::LangCe;
186pub use lang_ceb::LangCeb;
187pub use lang_ckb::LangCkb;
188pub use lang_cnh::LangCnh;
189pub use lang_cs::LangCs;
190pub use lang_cy::LangCy;
191pub use lang_da::LangDa;
192pub use lang_de::LangDe;
193pub use lang_dv::LangDv;
194pub use lang_el::LangEl;
195pub use lang_en::LangEn;
196pub use lang_en_aero::LangEnAero;
197pub use lang_en_aero_faa::LangEnAeroFaa;
198pub use lang_en_aero_nato::LangEnAeroNato;
199pub use lang_en_aero_us_army::LangEnAeroUsArmy;
200pub use lang_en_aero_usn::LangEnAeroUsn;
201pub use lang_en_in::LangEnIn;
202pub use lang_en_ne::LangEnNe;
203pub use lang_en_ng::LangEnNg;
204pub use lang_en_np::LangEnNp;
205pub use lang_eo::LangEo;
206pub use lang_es::LangEs;
207pub use lang_es_co::LangEsCo;
208pub use lang_es_cr::LangEsCr;
209pub use lang_es_gt::LangEsGt;
210pub use lang_es_hn::LangEsHn;
211pub use lang_es_ni::LangEsNi;
212pub use lang_es_ve::LangEsVe;
213pub use lang_et::LangEt;
214pub use lang_eu::LangEu;
215pub use lang_fa::LangFa;
216pub use lang_ff::LangFf;
217pub use lang_fi::LangFi;
218pub use lang_fil::LangFil;
219pub use lang_fo::LangFo;
220pub use lang_fr::LangFr;
221pub use lang_fr_be::LangFrBe;
222pub use lang_fr_ch::LangFrCh;
223pub use lang_fr_dz::LangFrDz;
224pub use lang_gl::LangGl;
225pub use lang_gu::LangGu;
226pub use lang_ha::LangHa;
227pub use lang_haw::LangHaw;
228pub use lang_he::LangHe;
229pub use lang_hi::LangHi;
230pub use lang_hmn::LangHmn;
231pub use lang_hr::LangHr;
232pub use lang_ht::LangHt;
233pub use lang_hu::LangHu;
234pub use lang_hy::LangHy;
235pub use lang_id::LangId;
236pub use lang_is::LangIs;
237pub use lang_it::LangIt;
238pub use lang_ja::LangJa;
239pub use lang_jv::LangJv;
240pub use lang_ka::LangKa;
241pub use lang_ki::LangKi;
242pub use lang_kk::LangKk;
243pub use lang_km::LangKm;
244pub use lang_kn::LangKn;
245pub use lang_ko::LangKo;
246pub use lang_kok::LangKok;
247pub use lang_ksw::LangKsw;
248pub use lang_ku::LangKu;
249pub use lang_ky::LangKy;
250pub use lang_kz::LangKz;
251pub use lang_la::LangLa;
252pub use lang_lb::LangLb;
253pub use lang_lg::LangLg;
254pub use lang_lij::LangLij;
255pub use lang_ln::LangLn;
256pub use lang_lo::LangLo;
257pub use lang_lt::LangLt;
258pub use lang_lus::LangLus;
259pub use lang_lv::LangLv;
260pub use lang_mg::LangMg;
261pub use lang_mi::LangMi;
262pub use lang_mk::LangMk;
263pub use lang_ml::LangMl;
264pub use lang_mn::LangMn;
265pub use lang_mr::LangMr;
266pub use lang_ms::LangMs;
267pub use lang_mt::LangMt;
268pub use lang_my::LangMy;
269pub use lang_nb::LangNb;
270pub use lang_ne::LangNe;
271pub use lang_nl::LangNl;
272pub use lang_nn::LangNn;
273pub use lang_oc::LangOc;
274pub use lang_om::LangOm;
275pub use lang_or::LangOr;
276pub use lang_pa::LangPa;
277pub use lang_pap::LangPap;
278pub use lang_pl::LangPl;
279pub use lang_pli::LangPli;
280pub use lang_ps::LangPs;
281pub use lang_pt::LangPt;
282pub use lang_pt_br::LangPtBr;
283pub use lang_rm::LangRm;
284pub use lang_rm_puter::LangRmPuter;
285pub use lang_rm_surmiran::LangRmSurmiran;
286pub use lang_rm_sursilv::LangRmSursilv;
287pub use lang_rm_sutsilv::LangRmSutsilv;
288pub use lang_rm_vallader::LangRmVallader;
289pub use lang_ro::LangRo;
290pub use lang_ru::LangRu;
291pub use lang_rw::LangRw;
292pub use lang_sa::LangSa;
293pub use lang_sd::LangSd;
294pub use lang_si::LangSi;
295pub use lang_sk::LangSk;
296pub use lang_sl::LangSl;
297pub use lang_sn::LangSn;
298pub use lang_so::LangSo;
299pub use lang_sq::LangSq;
300pub use lang_sr::LangSr;
301pub use lang_sr_latn::LangSrLatn;
302pub use lang_su::LangSu;
303pub use lang_sv::LangSv;
304pub use lang_sw::LangSw;
305pub use lang_ta::LangTa;
306pub use lang_te::LangTe;
307pub use lang_tet::LangTet;
308pub use lang_tg::LangTg;
309pub use lang_th::LangTh;
310pub use lang_ti::LangTi;
311pub use lang_tk::LangTk;
312pub use lang_tl::LangTl;
313pub use lang_tr::LangTr;
314pub use lang_tt::LangTt;
315pub use lang_uk::LangUk;
316pub use lang_ur::LangUr;
317pub use lang_uz::LangUz;
318pub use lang_uz_cyr::LangUzCyr;
319pub use lang_vi::LangVi;
320pub use lang_wo::LangWo;
321pub use lang_xh::LangXh;
322pub use lang_yi::LangYi;
323pub use lang_yo::LangYo;
324pub use lang_zh::LangZh;
325pub use lang_zh_hk::LangZhHk;
326pub use lang_zh_tw::LangZhTw;
327pub use lang_zu::LangZu;
328pub use strnum::ParsedNumber;
329
330use std::sync::OnceLock;
331
332pub fn get_lang_by_key(lang: &str) -> Option<&'static (dyn Lang + Sync)> {
334 static AF: OnceLock<LangAf> = OnceLock::new();
335 static AM: OnceLock<LangAm> = OnceLock::new();
336 static AR: OnceLock<LangAr> = OnceLock::new();
337 static AS: OnceLock<LangAs> = OnceLock::new();
338 static AZ: OnceLock<LangAz> = OnceLock::new();
339 static BA: OnceLock<LangBa> = OnceLock::new();
340 static BAN: OnceLock<LangBan> = OnceLock::new();
341 static BE: OnceLock<LangBe> = OnceLock::new();
342 static BG: OnceLock<LangBg> = OnceLock::new();
343 static BM: OnceLock<LangBm> = OnceLock::new();
344 static BN: OnceLock<LangBn> = OnceLock::new();
345 static BO: OnceLock<LangBo> = OnceLock::new();
346 static BR: OnceLock<LangBr> = OnceLock::new();
347 static BS: OnceLock<LangBs> = OnceLock::new();
348 static CA: OnceLock<LangCa> = OnceLock::new();
349 static CE: OnceLock<LangCe> = OnceLock::new();
350 static CEB: OnceLock<LangCeb> = OnceLock::new();
351 static CKB: OnceLock<LangCkb> = OnceLock::new();
352 static CNH: OnceLock<LangCnh> = OnceLock::new();
353 static CS: OnceLock<LangCs> = OnceLock::new();
354 static CY: OnceLock<LangCy> = OnceLock::new();
355 static DA: OnceLock<LangDa> = OnceLock::new();
356 static DE: OnceLock<LangDe> = OnceLock::new();
357 static DV: OnceLock<LangDv> = OnceLock::new();
358 static EL: OnceLock<LangEl> = OnceLock::new();
359 static EN: OnceLock<LangEn> = OnceLock::new();
360 static EN_AERO: OnceLock<LangEnAero> = OnceLock::new();
361 static EN_AERO_FAA: OnceLock<LangEnAeroFaa> = OnceLock::new();
362 static EN_AERO_NATO: OnceLock<LangEnAeroNato> = OnceLock::new();
363 static EN_AERO_US_ARMY: OnceLock<LangEnAeroUsArmy> = OnceLock::new();
364 static EN_AERO_USN: OnceLock<LangEnAeroUsn> = OnceLock::new();
365 static EN_IN: OnceLock<LangEnIn> = OnceLock::new();
366 static EN_NE: OnceLock<LangEnNe> = OnceLock::new();
367 static EN_NG: OnceLock<LangEnNg> = OnceLock::new();
368 static EN_NP: OnceLock<LangEnNp> = OnceLock::new();
369 static EO: OnceLock<LangEo> = OnceLock::new();
370 static ES: OnceLock<LangEs> = OnceLock::new();
371 static ES_CO: OnceLock<LangEsCo> = OnceLock::new();
372 static ES_CR: OnceLock<LangEsCr> = OnceLock::new();
373 static ES_GT: OnceLock<LangEsGt> = OnceLock::new();
374 static ES_HN: OnceLock<LangEsHn> = OnceLock::new();
375 static ES_NI: OnceLock<LangEsNi> = OnceLock::new();
376 static ES_VE: OnceLock<LangEsVe> = OnceLock::new();
377 static ET: OnceLock<LangEt> = OnceLock::new();
378 static EU: OnceLock<LangEu> = OnceLock::new();
379 static FA: OnceLock<LangFa> = OnceLock::new();
380 static FF: OnceLock<LangFf> = OnceLock::new();
381 static FI: OnceLock<LangFi> = OnceLock::new();
382 static FIL: OnceLock<LangFil> = OnceLock::new();
383 static FO: OnceLock<LangFo> = OnceLock::new();
384 static FR: OnceLock<LangFr> = OnceLock::new();
385 static FR_BE: OnceLock<LangFrBe> = OnceLock::new();
386 static FR_CH: OnceLock<LangFrCh> = OnceLock::new();
387 static FR_DZ: OnceLock<LangFrDz> = OnceLock::new();
388 static GL: OnceLock<LangGl> = OnceLock::new();
389 static GU: OnceLock<LangGu> = OnceLock::new();
390 static HA: OnceLock<LangHa> = OnceLock::new();
391 static HAW: OnceLock<LangHaw> = OnceLock::new();
392 static HE: OnceLock<LangHe> = OnceLock::new();
393 static HI: OnceLock<LangHi> = OnceLock::new();
394 static HMN: OnceLock<LangHmn> = OnceLock::new();
395 static HR: OnceLock<LangHr> = OnceLock::new();
396 static HT: OnceLock<LangHt> = OnceLock::new();
397 static HU: OnceLock<LangHu> = OnceLock::new();
398 static HY: OnceLock<LangHy> = OnceLock::new();
399 static ID: OnceLock<LangId> = OnceLock::new();
400 static IS: OnceLock<LangIs> = OnceLock::new();
401 static IT: OnceLock<LangIt> = OnceLock::new();
402 static JA: OnceLock<LangJa> = OnceLock::new();
403 static JV: OnceLock<LangJv> = OnceLock::new();
404 static KA: OnceLock<LangKa> = OnceLock::new();
405 static KI: OnceLock<LangKi> = OnceLock::new();
406 static KK: OnceLock<LangKk> = OnceLock::new();
407 static KM: OnceLock<LangKm> = OnceLock::new();
408 static KN: OnceLock<LangKn> = OnceLock::new();
409 static KO: OnceLock<LangKo> = OnceLock::new();
410 static KOK: OnceLock<LangKok> = OnceLock::new();
411 static KSW: OnceLock<LangKsw> = OnceLock::new();
412 static KU: OnceLock<LangKu> = OnceLock::new();
413 static KY: OnceLock<LangKy> = OnceLock::new();
414 static KZ: OnceLock<LangKz> = OnceLock::new();
415 static LA: OnceLock<LangLa> = OnceLock::new();
416 static LB: OnceLock<LangLb> = OnceLock::new();
417 static LG: OnceLock<LangLg> = OnceLock::new();
418 static LIJ: OnceLock<LangLij> = OnceLock::new();
419 static LN: OnceLock<LangLn> = OnceLock::new();
420 static LO: OnceLock<LangLo> = OnceLock::new();
421 static LT: OnceLock<LangLt> = OnceLock::new();
422 static LUS: OnceLock<LangLus> = OnceLock::new();
423 static LV: OnceLock<LangLv> = OnceLock::new();
424 static MG: OnceLock<LangMg> = OnceLock::new();
425 static MI: OnceLock<LangMi> = OnceLock::new();
426 static MK: OnceLock<LangMk> = OnceLock::new();
427 static ML: OnceLock<LangMl> = OnceLock::new();
428 static MN: OnceLock<LangMn> = OnceLock::new();
429 static MR: OnceLock<LangMr> = OnceLock::new();
430 static MS: OnceLock<LangMs> = OnceLock::new();
431 static MT: OnceLock<LangMt> = OnceLock::new();
432 static MY: OnceLock<LangMy> = OnceLock::new();
433 static NB: OnceLock<LangNb> = OnceLock::new();
434 static NE: OnceLock<LangNe> = OnceLock::new();
435 static NL: OnceLock<LangNl> = OnceLock::new();
436 static NN: OnceLock<LangNn> = OnceLock::new();
437 static OC: OnceLock<LangOc> = OnceLock::new();
438 static OM: OnceLock<LangOm> = OnceLock::new();
439 static OR: OnceLock<LangOr> = OnceLock::new();
440 static PA: OnceLock<LangPa> = OnceLock::new();
441 static PAP: OnceLock<LangPap> = OnceLock::new();
442 static PL: OnceLock<LangPl> = OnceLock::new();
443 static PLI: OnceLock<LangPli> = OnceLock::new();
444 static PS: OnceLock<LangPs> = OnceLock::new();
445 static PT: OnceLock<LangPt> = OnceLock::new();
446 static PT_BR: OnceLock<LangPtBr> = OnceLock::new();
447 static RM: OnceLock<LangRm> = OnceLock::new();
448 static RM_PUTER: OnceLock<LangRmPuter> = OnceLock::new();
449 static RM_SURMIRAN: OnceLock<LangRmSurmiran> = OnceLock::new();
450 static RM_SURSILV: OnceLock<LangRmSursilv> = OnceLock::new();
451 static RM_SUTSILV: OnceLock<LangRmSutsilv> = OnceLock::new();
452 static RM_VALLADER: OnceLock<LangRmVallader> = OnceLock::new();
453 static RO: OnceLock<LangRo> = OnceLock::new();
454 static RU: OnceLock<LangRu> = OnceLock::new();
455 static RW: OnceLock<LangRw> = OnceLock::new();
456 static SA: OnceLock<LangSa> = OnceLock::new();
457 static SD: OnceLock<LangSd> = OnceLock::new();
458 static SI: OnceLock<LangSi> = OnceLock::new();
459 static SK: OnceLock<LangSk> = OnceLock::new();
460 static SL: OnceLock<LangSl> = OnceLock::new();
461 static SN: OnceLock<LangSn> = OnceLock::new();
462 static SO: OnceLock<LangSo> = OnceLock::new();
463 static SQ: OnceLock<LangSq> = OnceLock::new();
464 static SR: OnceLock<LangSr> = OnceLock::new();
465 static SR_LATN: OnceLock<LangSrLatn> = OnceLock::new();
466 static SU: OnceLock<LangSu> = OnceLock::new();
467 static SV: OnceLock<LangSv> = OnceLock::new();
468 static SW: OnceLock<LangSw> = OnceLock::new();
469 static TA: OnceLock<LangTa> = OnceLock::new();
470 static TE: OnceLock<LangTe> = OnceLock::new();
471 static TET: OnceLock<LangTet> = OnceLock::new();
472 static TG: OnceLock<LangTg> = OnceLock::new();
473 static TH: OnceLock<LangTh> = OnceLock::new();
474 static TI: OnceLock<LangTi> = OnceLock::new();
475 static TK: OnceLock<LangTk> = OnceLock::new();
476 static TL: OnceLock<LangTl> = OnceLock::new();
477 static TR: OnceLock<LangTr> = OnceLock::new();
478 static TT: OnceLock<LangTt> = OnceLock::new();
479 static UK: OnceLock<LangUk> = OnceLock::new();
480 static UR: OnceLock<LangUr> = OnceLock::new();
481 static UZ: OnceLock<LangUz> = OnceLock::new();
482 static UZ_CYR: OnceLock<LangUzCyr> = OnceLock::new();
483 static VI: OnceLock<LangVi> = OnceLock::new();
484 static WO: OnceLock<LangWo> = OnceLock::new();
485 static XH: OnceLock<LangXh> = OnceLock::new();
486 static YI: OnceLock<LangYi> = OnceLock::new();
487 static YO: OnceLock<LangYo> = OnceLock::new();
488 static ZH: OnceLock<LangZh> = OnceLock::new();
489 static ZH_HK: OnceLock<LangZhHk> = OnceLock::new();
490 static ZH_TW: OnceLock<LangZhTw> = OnceLock::new();
491 static ZU: OnceLock<LangZu> = OnceLock::new();
492 match lang {
493 "af" => Some(AF.get_or_init(LangAf::new)),
494 "am" => Some(AM.get_or_init(LangAm::new)),
495 "ar" => Some(AR.get_or_init(LangAr::new)),
496 "as" => Some(AS.get_or_init(LangAs::new)),
497 "az" => Some(AZ.get_or_init(LangAz::new)),
498 "ba" => Some(BA.get_or_init(LangBa::new)),
499 "ban" => Some(BAN.get_or_init(LangBan::new)),
500 "be" => Some(BE.get_or_init(LangBe::new)),
501 "bg" => Some(BG.get_or_init(LangBg::new)),
502 "bm" => Some(BM.get_or_init(LangBm::new)),
503 "bn" => Some(BN.get_or_init(LangBn::new)),
504 "bo" => Some(BO.get_or_init(LangBo::new)),
505 "br" => Some(BR.get_or_init(LangBr::new)),
506 "bs" => Some(BS.get_or_init(LangBs::new)),
507 "ca" => Some(CA.get_or_init(LangCa::new)),
508 "ce" => Some(CE.get_or_init(LangCe::new)),
509 "ceb" => Some(CEB.get_or_init(LangCeb::new)),
510 "ckb" => Some(CKB.get_or_init(LangCkb::new)),
511 "cnh" => Some(CNH.get_or_init(LangCnh::new)),
512 "cs" | "cz" => Some(CS.get_or_init(LangCs::new)),
513 "cy" => Some(CY.get_or_init(LangCy::new)),
514 "da" | "dk" => Some(DA.get_or_init(LangDa::new)),
515 "de" => Some(DE.get_or_init(LangDe::new)),
516 "dv" => Some(DV.get_or_init(LangDv::new)),
517 "el" => Some(EL.get_or_init(LangEl::new)),
518 "en" => Some(EN.get_or_init(LangEn::new)),
519 "en_AERO" | "en_Aero_ICAO" | "en_aero_icao" | "en_x_aero_icao" => {
520 Some(EN_AERO.get_or_init(LangEnAero::new))
521 }
522 "en_Aero_FAA" => Some(EN_AERO_FAA.get_or_init(LangEnAeroFaa::new)),
523 "en_Aero_NATO" => Some(EN_AERO_NATO.get_or_init(LangEnAeroNato::new)),
524 "en_Aero_US_Army" => Some(EN_AERO_US_ARMY.get_or_init(LangEnAeroUsArmy::new)),
525 "en_Aero_USN" | "en_Aero_US_Navy" => Some(EN_AERO_USN.get_or_init(LangEnAeroUsn::new)),
526 "en_IN" => Some(EN_IN.get_or_init(LangEnIn::new)),
527 "en_NE" => Some(EN_NE.get_or_init(LangEnNe::new)),
528 "en_NG" => Some(EN_NG.get_or_init(LangEnNg::new)),
529 "en_NP" => Some(EN_NP.get_or_init(LangEnNp::new)),
530 "eo" => Some(EO.get_or_init(LangEo::new)),
531 "es" => Some(ES.get_or_init(LangEs::new)),
532 "es_CO" => Some(ES_CO.get_or_init(LangEsCo::new)),
533 "es_CR" => Some(ES_CR.get_or_init(LangEsCr::new)),
534 "es_GT" => Some(ES_GT.get_or_init(LangEsGt::new)),
535 "es_HN" => Some(ES_HN.get_or_init(LangEsHn::new)),
536 "es_NI" => Some(ES_NI.get_or_init(LangEsNi::new)),
537 "es_VE" => Some(ES_VE.get_or_init(LangEsVe::new)),
538 "et" => Some(ET.get_or_init(LangEt::new)),
539 "eu" => Some(EU.get_or_init(LangEu::new)),
540 "fa" => Some(FA.get_or_init(LangFa::new)),
541 "ff" => Some(FF.get_or_init(LangFf::new)),
542 "fi" => Some(FI.get_or_init(LangFi::new)),
543 "fil" => Some(FIL.get_or_init(LangFil::new)),
544 "fo" => Some(FO.get_or_init(LangFo::new)),
545 "fr" => Some(FR.get_or_init(LangFr::new)),
546 "fr_BE" => Some(FR_BE.get_or_init(LangFrBe::new)),
547 "fr_CH" => Some(FR_CH.get_or_init(LangFrCh::new)),
548 "fr_DZ" => Some(FR_DZ.get_or_init(LangFrDz::new)),
549 "gl" => Some(GL.get_or_init(LangGl::new)),
550 "gu" => Some(GU.get_or_init(LangGu::new)),
551 "ha" => Some(HA.get_or_init(LangHa::new)),
552 "haw" => Some(HAW.get_or_init(LangHaw::new)),
553 "he" => Some(HE.get_or_init(LangHe::new)),
554 "hi" => Some(HI.get_or_init(LangHi::new)),
555 "hmn" => Some(HMN.get_or_init(LangHmn::new)),
556 "hr" => Some(HR.get_or_init(LangHr::new)),
557 "ht" => Some(HT.get_or_init(LangHt::new)),
558 "hu" => Some(HU.get_or_init(LangHu::new)),
559 "hy" => Some(HY.get_or_init(LangHy::new)),
560 "id" => Some(ID.get_or_init(LangId::new)),
561 "is" => Some(IS.get_or_init(LangIs::new)),
562 "it" => Some(IT.get_or_init(LangIt::new)),
563 "ja" | "jp" => Some(JA.get_or_init(LangJa::new)),
564 "jv" | "jw" => Some(JV.get_or_init(LangJv::new)),
565 "ka" => Some(KA.get_or_init(LangKa::new)),
566 "ki" => Some(KI.get_or_init(LangKi::new)),
567 "kk" => Some(KK.get_or_init(LangKk::new)),
568 "km" => Some(KM.get_or_init(LangKm::new)),
569 "kn" => Some(KN.get_or_init(LangKn::new)),
570 "ko" => Some(KO.get_or_init(LangKo::new)),
571 "kok" => Some(KOK.get_or_init(LangKok::new)),
572 "ksw" => Some(KSW.get_or_init(LangKsw::new)),
573 "ku" => Some(KU.get_or_init(LangKu::new)),
574 "ky" => Some(KY.get_or_init(LangKy::new)),
575 "kz" => Some(KZ.get_or_init(LangKz::new)),
576 "la" => Some(LA.get_or_init(LangLa::new)),
577 "lb" => Some(LB.get_or_init(LangLb::new)),
578 "lg" => Some(LG.get_or_init(LangLg::new)),
579 "lij" => Some(LIJ.get_or_init(LangLij::new)),
580 "ln" => Some(LN.get_or_init(LangLn::new)),
581 "lo" => Some(LO.get_or_init(LangLo::new)),
582 "lt" => Some(LT.get_or_init(LangLt::new)),
583 "lus" | "miz" => Some(LUS.get_or_init(LangLus::new)),
584 "lv" => Some(LV.get_or_init(LangLv::new)),
585 "mg" => Some(MG.get_or_init(LangMg::new)),
586 "mi" => Some(MI.get_or_init(LangMi::new)),
587 "mk" => Some(MK.get_or_init(LangMk::new)),
588 "ml" => Some(ML.get_or_init(LangMl::new)),
589 "mn" => Some(MN.get_or_init(LangMn::new)),
590 "mr" => Some(MR.get_or_init(LangMr::new)),
591 "ms" => Some(MS.get_or_init(LangMs::new)),
592 "mt" => Some(MT.get_or_init(LangMt::new)),
593 "my" => Some(MY.get_or_init(LangMy::new)),
594 "nb" | "no" => Some(NB.get_or_init(LangNb::new)),
595 "ne" => Some(NE.get_or_init(LangNe::new)),
596 "nl" => Some(NL.get_or_init(LangNl::new)),
597 "nn" => Some(NN.get_or_init(LangNn::new)),
598 "oc" => Some(OC.get_or_init(LangOc::new)),
599 "om" => Some(OM.get_or_init(LangOm::new)),
600 "or" => Some(OR.get_or_init(LangOr::new)),
601 "pa" => Some(PA.get_or_init(LangPa::new)),
602 "pap" => Some(PAP.get_or_init(LangPap::new)),
603 "pl" => Some(PL.get_or_init(LangPl::new)),
604 "pli" => Some(PLI.get_or_init(LangPli::new)),
605 "ps" => Some(PS.get_or_init(LangPs::new)),
606 "pt" => Some(PT.get_or_init(LangPt::new)),
607 "pt_BR" => Some(PT_BR.get_or_init(LangPtBr::new)),
608 "rm" => Some(RM.get_or_init(LangRm::new)),
609 "rm_puter" => Some(RM_PUTER.get_or_init(LangRmPuter::new)),
610 "rm_surmiran" => Some(RM_SURMIRAN.get_or_init(LangRmSurmiran::new)),
611 "rm_sursilv" => Some(RM_SURSILV.get_or_init(LangRmSursilv::new)),
612 "rm_sutsilv" => Some(RM_SUTSILV.get_or_init(LangRmSutsilv::new)),
613 "rm_vallader" => Some(RM_VALLADER.get_or_init(LangRmVallader::new)),
614 "ro" => Some(RO.get_or_init(LangRo::new)),
615 "ru" => Some(RU.get_or_init(LangRu::new)),
616 "rw" => Some(RW.get_or_init(LangRw::new)),
617 "sa" => Some(SA.get_or_init(LangSa::new)),
618 "sd" => Some(SD.get_or_init(LangSd::new)),
619 "si" => Some(SI.get_or_init(LangSi::new)),
620 "sk" => Some(SK.get_or_init(LangSk::new)),
621 "sl" => Some(SL.get_or_init(LangSl::new)),
622 "sn" => Some(SN.get_or_init(LangSn::new)),
623 "so" => Some(SO.get_or_init(LangSo::new)),
624 "sq" => Some(SQ.get_or_init(LangSq::new)),
625 "sr" | "sr_Cyrl" => Some(SR.get_or_init(LangSr::new)),
626 "sr_Latn" => Some(SR_LATN.get_or_init(LangSrLatn::new)),
627 "su" => Some(SU.get_or_init(LangSu::new)),
628 "sv" => Some(SV.get_or_init(LangSv::new)),
629 "sw" => Some(SW.get_or_init(LangSw::new)),
630 "ta" => Some(TA.get_or_init(LangTa::new)),
631 "te" => Some(TE.get_or_init(LangTe::new)),
632 "tet" => Some(TET.get_or_init(LangTet::new)),
633 "tg" => Some(TG.get_or_init(LangTg::new)),
634 "th" => Some(TH.get_or_init(LangTh::new)),
635 "ti" => Some(TI.get_or_init(LangTi::new)),
636 "tk" => Some(TK.get_or_init(LangTk::new)),
637 "tl" => Some(TL.get_or_init(LangTl::new)),
638 "tr" => Some(TR.get_or_init(LangTr::new)),
639 "tt" => Some(TT.get_or_init(LangTt::new)),
640 "uk" => Some(UK.get_or_init(LangUk::new)),
641 "ur" => Some(UR.get_or_init(LangUr::new)),
642 "uz" => Some(UZ.get_or_init(LangUz::new)),
643 "uz_Cyrl" | "uz_cyr" => Some(UZ_CYR.get_or_init(LangUzCyr::new)),
644 "vi" => Some(VI.get_or_init(LangVi::new)),
645 "wo" => Some(WO.get_or_init(LangWo::new)),
646 "xh" => Some(XH.get_or_init(LangXh::new)),
647 "yi" => Some(YI.get_or_init(LangYi::new)),
648 "yo" => Some(YO.get_or_init(LangYo::new)),
649 "cn" | "zh" | "zh_CN" => Some(ZH.get_or_init(LangZh::new)),
650 "zh_HK" => Some(ZH_HK.get_or_init(LangZhHk::new)),
651 "zh_TW" => Some(ZH_TW.get_or_init(LangZhTw::new)),
652 "zu" => Some(ZU.get_or_init(LangZu::new)),
653 _ => None,
654 }
655}
656
657pub fn supported_lang_keys() -> Vec<&'static str> {
659 vec![
660 "af",
661 "am",
662 "ar",
663 "as",
664 "az",
665 "ba",
666 "ban",
667 "be",
668 "bg",
669 "bm",
670 "bn",
671 "bo",
672 "br",
673 "bs",
674 "ca",
675 "ce",
676 "ceb",
677 "ckb",
678 "cn",
679 "cnh",
680 "cs",
681 "cy",
682 "cz",
683 "da",
684 "de",
685 "dk",
686 "dv",
687 "el",
688 "en",
689 "en_AERO",
690 "en_Aero_FAA",
691 "en_Aero_ICAO",
692 "en_Aero_NATO",
693 "en_Aero_USN",
694 "en_Aero_US_Army",
695 "en_Aero_US_Navy",
696 "en_IN",
697 "en_NE",
698 "en_NG",
699 "en_NP",
700 "en_aero_icao",
701 "en_x_aero_icao",
702 "eo",
703 "es",
704 "es_CO",
705 "es_CR",
706 "es_GT",
707 "es_HN",
708 "es_NI",
709 "es_VE",
710 "et",
711 "eu",
712 "fa",
713 "ff",
714 "fi",
715 "fil",
716 "fo",
717 "fr",
718 "fr_BE",
719 "fr_CH",
720 "fr_DZ",
721 "gl",
722 "gu",
723 "ha",
724 "haw",
725 "he",
726 "hi",
727 "hmn",
728 "hr",
729 "ht",
730 "hu",
731 "hy",
732 "id",
733 "is",
734 "it",
735 "ja",
736 "jp",
737 "jv",
738 "jw",
739 "ka",
740 "ki",
741 "kk",
742 "km",
743 "kn",
744 "ko",
745 "kok",
746 "ksw",
747 "ku",
748 "ky",
749 "kz",
750 "la",
751 "lb",
752 "lg",
753 "lij",
754 "ln",
755 "lo",
756 "lt",
757 "lus",
758 "lv",
759 "mg",
760 "mi",
761 "miz",
762 "mk",
763 "ml",
764 "mn",
765 "mr",
766 "ms",
767 "mt",
768 "my",
769 "nb",
770 "ne",
771 "nl",
772 "nn",
773 "no",
774 "oc",
775 "om",
776 "or",
777 "pa",
778 "pap",
779 "pl",
780 "pli",
781 "ps",
782 "pt",
783 "pt_BR",
784 "rm",
785 "rm_puter",
786 "rm_surmiran",
787 "rm_sursilv",
788 "rm_sutsilv",
789 "rm_vallader",
790 "ro",
791 "ru",
792 "rw",
793 "sa",
794 "sd",
795 "si",
796 "sk",
797 "sl",
798 "sn",
799 "so",
800 "sq",
801 "sr",
802 "sr_Cyrl",
803 "sr_Latn",
804 "su",
805 "sv",
806 "sw",
807 "ta",
808 "te",
809 "tet",
810 "tg",
811 "th",
812 "ti",
813 "tk",
814 "tl",
815 "tr",
816 "tt",
817 "uk",
818 "ur",
819 "uz",
820 "uz_Cyrl",
821 "uz_cyr",
822 "vi",
823 "wo",
824 "xh",
825 "yi",
826 "yo",
827 "zh",
828 "zh_CN",
829 "zh_HK",
830 "zh_TW",
831 "zu",
832 ]
833}