// GENERATED by bench/gen_registry.py — do not edit by hand.
// Language modules are discovered from src/lang_*.rs.
pub mod base;
pub mod currency;
pub mod floatpath;
pub mod presentation;
pub mod strnum;
pub mod lang_af;
pub mod lang_am;
pub mod lang_ar;
pub mod lang_as;
pub mod lang_az;
pub mod lang_ba;
pub mod lang_ban;
pub mod lang_be;
pub mod lang_bg;
pub mod lang_bm;
pub mod lang_bn;
pub mod lang_bo;
pub mod lang_br;
pub mod lang_bs;
pub mod lang_ca;
pub mod lang_ce;
pub mod lang_ceb;
pub mod lang_ckb;
pub mod lang_cnh;
pub mod lang_cs;
pub mod lang_cy;
pub mod lang_da;
pub mod lang_de;
pub mod lang_dv;
pub mod lang_el;
pub mod lang_en;
pub mod lang_en_aero;
pub mod lang_en_aero_faa;
pub mod lang_en_aero_nato;
pub mod lang_en_aero_us_army;
pub mod lang_en_aero_usn;
pub mod lang_en_in;
pub mod lang_en_ne;
pub mod lang_en_ng;
pub mod lang_en_np;
pub mod lang_eo;
pub mod lang_es;
pub mod lang_es_co;
pub mod lang_es_cr;
pub mod lang_es_gt;
pub mod lang_es_hn;
pub mod lang_es_ni;
pub mod lang_es_ve;
pub mod lang_et;
pub mod lang_eu;
pub mod lang_fa;
pub mod lang_ff;
pub mod lang_fi;
pub mod lang_fil;
pub mod lang_fo;
pub mod lang_fr;
pub mod lang_fr_be;
pub mod lang_fr_ch;
pub mod lang_fr_dz;
pub mod lang_gl;
pub mod lang_gu;
pub mod lang_ha;
pub mod lang_haw;
pub mod lang_he;
pub mod lang_hi;
pub mod lang_hmn;
pub mod lang_hr;
pub mod lang_ht;
pub mod lang_hu;
pub mod lang_hy;
pub mod lang_id;
pub mod lang_is;
pub mod lang_it;
pub mod lang_ja;
pub mod lang_jv;
pub mod lang_ka;
pub mod lang_ki;
pub mod lang_kk;
pub mod lang_km;
pub mod lang_kn;
pub mod lang_ko;
pub mod lang_kok;
pub mod lang_ksw;
pub mod lang_ku;
pub mod lang_ky;
pub mod lang_kz;
pub mod lang_la;
pub mod lang_lb;
pub mod lang_lg;
pub mod lang_lij;
pub mod lang_ln;
pub mod lang_lo;
pub mod lang_lt;
pub mod lang_lus;
pub mod lang_lv;
pub mod lang_mg;
pub mod lang_mi;
pub mod lang_mk;
pub mod lang_ml;
pub mod lang_mn;
pub mod lang_mr;
pub mod lang_ms;
pub mod lang_mt;
pub mod lang_my;
pub mod lang_nb;
pub mod lang_ne;
pub mod lang_nl;
pub mod lang_nn;
pub mod lang_oc;
pub mod lang_om;
pub mod lang_or;
pub mod lang_pa;
pub mod lang_pap;
pub mod lang_pl;
pub mod lang_pli;
pub mod lang_ps;
pub mod lang_pt;
pub mod lang_pt_br;
pub mod lang_rm;
pub mod lang_rm_puter;
pub mod lang_rm_surmiran;
pub mod lang_rm_sursilv;
pub mod lang_rm_sutsilv;
pub mod lang_rm_vallader;
pub mod lang_ro;
pub mod lang_ru;
pub mod lang_rw;
pub mod lang_sa;
pub mod lang_sd;
pub mod lang_si;
pub mod lang_sk;
pub mod lang_sl;
pub mod lang_sn;
pub mod lang_so;
pub mod lang_sq;
pub mod lang_sr;
pub mod lang_sr_latn;
pub mod lang_su;
pub mod lang_sv;
pub mod lang_sw;
pub mod lang_ta;
pub mod lang_te;
pub mod lang_tet;
pub mod lang_tg;
pub mod lang_th;
pub mod lang_ti;
pub mod lang_tk;
pub mod lang_tl;
pub mod lang_tr;
pub mod lang_tt;
pub mod lang_uk;
pub mod lang_ur;
pub mod lang_uz;
pub mod lang_uz_cyr;
pub mod lang_vi;
pub mod lang_wo;
pub mod lang_xh;
pub mod lang_yi;
pub mod lang_yo;
pub mod lang_zh;
pub mod lang_zh_hk;
pub mod lang_zh_tw;
pub mod lang_zu;
pub use base::{Kwargs, KwVal, Lang, N2WError, Result};
pub use currency::{CurrencyForms, CurrencyValue};
pub use floatpath::FloatValue;
pub use strnum::ParsedNumber;
pub use lang_af::LangAf;
pub use lang_am::LangAm;
pub use lang_ar::LangAr;
pub use lang_as::LangAs;
pub use lang_az::LangAz;
pub use lang_ba::LangBa;
pub use lang_ban::LangBan;
pub use lang_be::LangBe;
pub use lang_bg::LangBg;
pub use lang_bm::LangBm;
pub use lang_bn::LangBn;
pub use lang_bo::LangBo;
pub use lang_br::LangBr;
pub use lang_bs::LangBs;
pub use lang_ca::LangCa;
pub use lang_ce::LangCe;
pub use lang_ceb::LangCeb;
pub use lang_ckb::LangCkb;
pub use lang_cnh::LangCnh;
pub use lang_cs::LangCs;
pub use lang_cy::LangCy;
pub use lang_da::LangDa;
pub use lang_de::LangDe;
pub use lang_dv::LangDv;
pub use lang_el::LangEl;
pub use lang_en::LangEn;
pub use lang_en_aero::LangEnAero;
pub use lang_en_aero_faa::LangEnAeroFaa;
pub use lang_en_aero_nato::LangEnAeroNato;
pub use lang_en_aero_us_army::LangEnAeroUsArmy;
pub use lang_en_aero_usn::LangEnAeroUsn;
pub use lang_en_in::LangEnIn;
pub use lang_en_ne::LangEnNe;
pub use lang_en_ng::LangEnNg;
pub use lang_en_np::LangEnNp;
pub use lang_eo::LangEo;
pub use lang_es::LangEs;
pub use lang_es_co::LangEsCo;
pub use lang_es_cr::LangEsCr;
pub use lang_es_gt::LangEsGt;
pub use lang_es_hn::LangEsHn;
pub use lang_es_ni::LangEsNi;
pub use lang_es_ve::LangEsVe;
pub use lang_et::LangEt;
pub use lang_eu::LangEu;
pub use lang_fa::LangFa;
pub use lang_ff::LangFf;
pub use lang_fi::LangFi;
pub use lang_fil::LangFil;
pub use lang_fo::LangFo;
pub use lang_fr::LangFr;
pub use lang_fr_be::LangFrBe;
pub use lang_fr_ch::LangFrCh;
pub use lang_fr_dz::LangFrDz;
pub use lang_gl::LangGl;
pub use lang_gu::LangGu;
pub use lang_ha::LangHa;
pub use lang_haw::LangHaw;
pub use lang_he::LangHe;
pub use lang_hi::LangHi;
pub use lang_hmn::LangHmn;
pub use lang_hr::LangHr;
pub use lang_ht::LangHt;
pub use lang_hu::LangHu;
pub use lang_hy::LangHy;
pub use lang_id::LangId;
pub use lang_is::LangIs;
pub use lang_it::LangIt;
pub use lang_ja::LangJa;
pub use lang_jv::LangJv;
pub use lang_ka::LangKa;
pub use lang_ki::LangKi;
pub use lang_kk::LangKk;
pub use lang_km::LangKm;
pub use lang_kn::LangKn;
pub use lang_ko::LangKo;
pub use lang_kok::LangKok;
pub use lang_ksw::LangKsw;
pub use lang_ku::LangKu;
pub use lang_ky::LangKy;
pub use lang_kz::LangKz;
pub use lang_la::LangLa;
pub use lang_lb::LangLb;
pub use lang_lg::LangLg;
pub use lang_lij::LangLij;
pub use lang_ln::LangLn;
pub use lang_lo::LangLo;
pub use lang_lt::LangLt;
pub use lang_lus::LangLus;
pub use lang_lv::LangLv;
pub use lang_mg::LangMg;
pub use lang_mi::LangMi;
pub use lang_mk::LangMk;
pub use lang_ml::LangMl;
pub use lang_mn::LangMn;
pub use lang_mr::LangMr;
pub use lang_ms::LangMs;
pub use lang_mt::LangMt;
pub use lang_my::LangMy;
pub use lang_nb::LangNb;
pub use lang_ne::LangNe;
pub use lang_nl::LangNl;
pub use lang_nn::LangNn;
pub use lang_oc::LangOc;
pub use lang_om::LangOm;
pub use lang_or::LangOr;
pub use lang_pa::LangPa;
pub use lang_pap::LangPap;
pub use lang_pl::LangPl;
pub use lang_pli::LangPli;
pub use lang_ps::LangPs;
pub use lang_pt::LangPt;
pub use lang_pt_br::LangPtBr;
pub use lang_rm::LangRm;
pub use lang_rm_puter::LangRmPuter;
pub use lang_rm_surmiran::LangRmSurmiran;
pub use lang_rm_sursilv::LangRmSursilv;
pub use lang_rm_sutsilv::LangRmSutsilv;
pub use lang_rm_vallader::LangRmVallader;
pub use lang_ro::LangRo;
pub use lang_ru::LangRu;
pub use lang_rw::LangRw;
pub use lang_sa::LangSa;
pub use lang_sd::LangSd;
pub use lang_si::LangSi;
pub use lang_sk::LangSk;
pub use lang_sl::LangSl;
pub use lang_sn::LangSn;
pub use lang_so::LangSo;
pub use lang_sq::LangSq;
pub use lang_sr::LangSr;
pub use lang_sr_latn::LangSrLatn;
pub use lang_su::LangSu;
pub use lang_sv::LangSv;
pub use lang_sw::LangSw;
pub use lang_ta::LangTa;
pub use lang_te::LangTe;
pub use lang_tet::LangTet;
pub use lang_tg::LangTg;
pub use lang_th::LangTh;
pub use lang_ti::LangTi;
pub use lang_tk::LangTk;
pub use lang_tl::LangTl;
pub use lang_tr::LangTr;
pub use lang_tt::LangTt;
pub use lang_uk::LangUk;
pub use lang_ur::LangUr;
pub use lang_uz::LangUz;
pub use lang_uz_cyr::LangUzCyr;
pub use lang_vi::LangVi;
pub use lang_wo::LangWo;
pub use lang_xh::LangXh;
pub use lang_yi::LangYi;
pub use lang_yo::LangYo;
pub use lang_zh::LangZh;
pub use lang_zh_hk::LangZhHk;
pub use lang_zh_tw::LangZhTw;
pub use lang_zu::LangZu;
use std::sync::OnceLock;
/// Resolve a Python CONVERTER_CLASSES key to a cached language.
pub fn get_lang_by_key(lang: &str) -> Option<&'static (dyn Lang + Sync)> {
static AF: OnceLock<LangAf> = OnceLock::new();
static AM: OnceLock<LangAm> = OnceLock::new();
static AR: OnceLock<LangAr> = OnceLock::new();
static AS: OnceLock<LangAs> = OnceLock::new();
static AZ: OnceLock<LangAz> = OnceLock::new();
static BA: OnceLock<LangBa> = OnceLock::new();
static BAN: OnceLock<LangBan> = OnceLock::new();
static BE: OnceLock<LangBe> = OnceLock::new();
static BG: OnceLock<LangBg> = OnceLock::new();
static BM: OnceLock<LangBm> = OnceLock::new();
static BN: OnceLock<LangBn> = OnceLock::new();
static BO: OnceLock<LangBo> = OnceLock::new();
static BR: OnceLock<LangBr> = OnceLock::new();
static BS: OnceLock<LangBs> = OnceLock::new();
static CA: OnceLock<LangCa> = OnceLock::new();
static CE: OnceLock<LangCe> = OnceLock::new();
static CEB: OnceLock<LangCeb> = OnceLock::new();
static CKB: OnceLock<LangCkb> = OnceLock::new();
static CNH: OnceLock<LangCnh> = OnceLock::new();
static CS: OnceLock<LangCs> = OnceLock::new();
static CY: OnceLock<LangCy> = OnceLock::new();
static DA: OnceLock<LangDa> = OnceLock::new();
static DE: OnceLock<LangDe> = OnceLock::new();
static DV: OnceLock<LangDv> = OnceLock::new();
static EL: OnceLock<LangEl> = OnceLock::new();
static EN: OnceLock<LangEn> = OnceLock::new();
static EN_AERO: OnceLock<LangEnAero> = OnceLock::new();
static EN_AERO_FAA: OnceLock<LangEnAeroFaa> = OnceLock::new();
static EN_AERO_NATO: OnceLock<LangEnAeroNato> = OnceLock::new();
static EN_AERO_US_ARMY: OnceLock<LangEnAeroUsArmy> = OnceLock::new();
static EN_AERO_USN: OnceLock<LangEnAeroUsn> = OnceLock::new();
static EN_IN: OnceLock<LangEnIn> = OnceLock::new();
static EN_NE: OnceLock<LangEnNe> = OnceLock::new();
static EN_NG: OnceLock<LangEnNg> = OnceLock::new();
static EN_NP: OnceLock<LangEnNp> = OnceLock::new();
static EO: OnceLock<LangEo> = OnceLock::new();
static ES: OnceLock<LangEs> = OnceLock::new();
static ES_CO: OnceLock<LangEsCo> = OnceLock::new();
static ES_CR: OnceLock<LangEsCr> = OnceLock::new();
static ES_GT: OnceLock<LangEsGt> = OnceLock::new();
static ES_HN: OnceLock<LangEsHn> = OnceLock::new();
static ES_NI: OnceLock<LangEsNi> = OnceLock::new();
static ES_VE: OnceLock<LangEsVe> = OnceLock::new();
static ET: OnceLock<LangEt> = OnceLock::new();
static EU: OnceLock<LangEu> = OnceLock::new();
static FA: OnceLock<LangFa> = OnceLock::new();
static FF: OnceLock<LangFf> = OnceLock::new();
static FI: OnceLock<LangFi> = OnceLock::new();
static FIL: OnceLock<LangFil> = OnceLock::new();
static FO: OnceLock<LangFo> = OnceLock::new();
static FR: OnceLock<LangFr> = OnceLock::new();
static FR_BE: OnceLock<LangFrBe> = OnceLock::new();
static FR_CH: OnceLock<LangFrCh> = OnceLock::new();
static FR_DZ: OnceLock<LangFrDz> = OnceLock::new();
static GL: OnceLock<LangGl> = OnceLock::new();
static GU: OnceLock<LangGu> = OnceLock::new();
static HA: OnceLock<LangHa> = OnceLock::new();
static HAW: OnceLock<LangHaw> = OnceLock::new();
static HE: OnceLock<LangHe> = OnceLock::new();
static HI: OnceLock<LangHi> = OnceLock::new();
static HMN: OnceLock<LangHmn> = OnceLock::new();
static HR: OnceLock<LangHr> = OnceLock::new();
static HT: OnceLock<LangHt> = OnceLock::new();
static HU: OnceLock<LangHu> = OnceLock::new();
static HY: OnceLock<LangHy> = OnceLock::new();
static ID: OnceLock<LangId> = OnceLock::new();
static IS: OnceLock<LangIs> = OnceLock::new();
static IT: OnceLock<LangIt> = OnceLock::new();
static JA: OnceLock<LangJa> = OnceLock::new();
static JV: OnceLock<LangJv> = OnceLock::new();
static KA: OnceLock<LangKa> = OnceLock::new();
static KI: OnceLock<LangKi> = OnceLock::new();
static KK: OnceLock<LangKk> = OnceLock::new();
static KM: OnceLock<LangKm> = OnceLock::new();
static KN: OnceLock<LangKn> = OnceLock::new();
static KO: OnceLock<LangKo> = OnceLock::new();
static KOK: OnceLock<LangKok> = OnceLock::new();
static KSW: OnceLock<LangKsw> = OnceLock::new();
static KU: OnceLock<LangKu> = OnceLock::new();
static KY: OnceLock<LangKy> = OnceLock::new();
static KZ: OnceLock<LangKz> = OnceLock::new();
static LA: OnceLock<LangLa> = OnceLock::new();
static LB: OnceLock<LangLb> = OnceLock::new();
static LG: OnceLock<LangLg> = OnceLock::new();
static LIJ: OnceLock<LangLij> = OnceLock::new();
static LN: OnceLock<LangLn> = OnceLock::new();
static LO: OnceLock<LangLo> = OnceLock::new();
static LT: OnceLock<LangLt> = OnceLock::new();
static LUS: OnceLock<LangLus> = OnceLock::new();
static LV: OnceLock<LangLv> = OnceLock::new();
static MG: OnceLock<LangMg> = OnceLock::new();
static MI: OnceLock<LangMi> = OnceLock::new();
static MK: OnceLock<LangMk> = OnceLock::new();
static ML: OnceLock<LangMl> = OnceLock::new();
static MN: OnceLock<LangMn> = OnceLock::new();
static MR: OnceLock<LangMr> = OnceLock::new();
static MS: OnceLock<LangMs> = OnceLock::new();
static MT: OnceLock<LangMt> = OnceLock::new();
static MY: OnceLock<LangMy> = OnceLock::new();
static NB: OnceLock<LangNb> = OnceLock::new();
static NE: OnceLock<LangNe> = OnceLock::new();
static NL: OnceLock<LangNl> = OnceLock::new();
static NN: OnceLock<LangNn> = OnceLock::new();
static OC: OnceLock<LangOc> = OnceLock::new();
static OM: OnceLock<LangOm> = OnceLock::new();
static OR: OnceLock<LangOr> = OnceLock::new();
static PA: OnceLock<LangPa> = OnceLock::new();
static PAP: OnceLock<LangPap> = OnceLock::new();
static PL: OnceLock<LangPl> = OnceLock::new();
static PLI: OnceLock<LangPli> = OnceLock::new();
static PS: OnceLock<LangPs> = OnceLock::new();
static PT: OnceLock<LangPt> = OnceLock::new();
static PT_BR: OnceLock<LangPtBr> = OnceLock::new();
static RM: OnceLock<LangRm> = OnceLock::new();
static RM_PUTER: OnceLock<LangRmPuter> = OnceLock::new();
static RM_SURMIRAN: OnceLock<LangRmSurmiran> = OnceLock::new();
static RM_SURSILV: OnceLock<LangRmSursilv> = OnceLock::new();
static RM_SUTSILV: OnceLock<LangRmSutsilv> = OnceLock::new();
static RM_VALLADER: OnceLock<LangRmVallader> = OnceLock::new();
static RO: OnceLock<LangRo> = OnceLock::new();
static RU: OnceLock<LangRu> = OnceLock::new();
static RW: OnceLock<LangRw> = OnceLock::new();
static SA: OnceLock<LangSa> = OnceLock::new();
static SD: OnceLock<LangSd> = OnceLock::new();
static SI: OnceLock<LangSi> = OnceLock::new();
static SK: OnceLock<LangSk> = OnceLock::new();
static SL: OnceLock<LangSl> = OnceLock::new();
static SN: OnceLock<LangSn> = OnceLock::new();
static SO: OnceLock<LangSo> = OnceLock::new();
static SQ: OnceLock<LangSq> = OnceLock::new();
static SR: OnceLock<LangSr> = OnceLock::new();
static SR_LATN: OnceLock<LangSrLatn> = OnceLock::new();
static SU: OnceLock<LangSu> = OnceLock::new();
static SV: OnceLock<LangSv> = OnceLock::new();
static SW: OnceLock<LangSw> = OnceLock::new();
static TA: OnceLock<LangTa> = OnceLock::new();
static TE: OnceLock<LangTe> = OnceLock::new();
static TET: OnceLock<LangTet> = OnceLock::new();
static TG: OnceLock<LangTg> = OnceLock::new();
static TH: OnceLock<LangTh> = OnceLock::new();
static TI: OnceLock<LangTi> = OnceLock::new();
static TK: OnceLock<LangTk> = OnceLock::new();
static TL: OnceLock<LangTl> = OnceLock::new();
static TR: OnceLock<LangTr> = OnceLock::new();
static TT: OnceLock<LangTt> = OnceLock::new();
static UK: OnceLock<LangUk> = OnceLock::new();
static UR: OnceLock<LangUr> = OnceLock::new();
static UZ: OnceLock<LangUz> = OnceLock::new();
static UZ_CYR: OnceLock<LangUzCyr> = OnceLock::new();
static VI: OnceLock<LangVi> = OnceLock::new();
static WO: OnceLock<LangWo> = OnceLock::new();
static XH: OnceLock<LangXh> = OnceLock::new();
static YI: OnceLock<LangYi> = OnceLock::new();
static YO: OnceLock<LangYo> = OnceLock::new();
static ZH: OnceLock<LangZh> = OnceLock::new();
static ZH_HK: OnceLock<LangZhHk> = OnceLock::new();
static ZH_TW: OnceLock<LangZhTw> = OnceLock::new();
static ZU: OnceLock<LangZu> = OnceLock::new();
match lang {
"af" => Some(AF.get_or_init(LangAf::new)),
"am" => Some(AM.get_or_init(LangAm::new)),
"ar" => Some(AR.get_or_init(LangAr::new)),
"as" => Some(AS.get_or_init(LangAs::new)),
"az" => Some(AZ.get_or_init(LangAz::new)),
"ba" => Some(BA.get_or_init(LangBa::new)),
"ban" => Some(BAN.get_or_init(LangBan::new)),
"be" => Some(BE.get_or_init(LangBe::new)),
"bg" => Some(BG.get_or_init(LangBg::new)),
"bm" => Some(BM.get_or_init(LangBm::new)),
"bn" => Some(BN.get_or_init(LangBn::new)),
"bo" => Some(BO.get_or_init(LangBo::new)),
"br" => Some(BR.get_or_init(LangBr::new)),
"bs" => Some(BS.get_or_init(LangBs::new)),
"ca" => Some(CA.get_or_init(LangCa::new)),
"ce" => Some(CE.get_or_init(LangCe::new)),
"ceb" => Some(CEB.get_or_init(LangCeb::new)),
"ckb" => Some(CKB.get_or_init(LangCkb::new)),
"cnh" => Some(CNH.get_or_init(LangCnh::new)),
"cs" | "cz" => Some(CS.get_or_init(LangCs::new)),
"cy" => Some(CY.get_or_init(LangCy::new)),
"da" | "dk" => Some(DA.get_or_init(LangDa::new)),
"de" => Some(DE.get_or_init(LangDe::new)),
"dv" => Some(DV.get_or_init(LangDv::new)),
"el" => Some(EL.get_or_init(LangEl::new)),
"en" => Some(EN.get_or_init(LangEn::new)),
"en_AERO" | "en_Aero_ICAO" | "en_aero_icao" | "en_x_aero_icao" => Some(EN_AERO.get_or_init(LangEnAero::new)),
"en_Aero_FAA" => Some(EN_AERO_FAA.get_or_init(LangEnAeroFaa::new)),
"en_Aero_NATO" => Some(EN_AERO_NATO.get_or_init(LangEnAeroNato::new)),
"en_Aero_US_Army" => Some(EN_AERO_US_ARMY.get_or_init(LangEnAeroUsArmy::new)),
"en_Aero_USN" | "en_Aero_US_Navy" => Some(EN_AERO_USN.get_or_init(LangEnAeroUsn::new)),
"en_IN" => Some(EN_IN.get_or_init(LangEnIn::new)),
"en_NE" => Some(EN_NE.get_or_init(LangEnNe::new)),
"en_NG" => Some(EN_NG.get_or_init(LangEnNg::new)),
"en_NP" => Some(EN_NP.get_or_init(LangEnNp::new)),
"eo" => Some(EO.get_or_init(LangEo::new)),
"es" => Some(ES.get_or_init(LangEs::new)),
"es_CO" => Some(ES_CO.get_or_init(LangEsCo::new)),
"es_CR" => Some(ES_CR.get_or_init(LangEsCr::new)),
"es_GT" => Some(ES_GT.get_or_init(LangEsGt::new)),
"es_HN" => Some(ES_HN.get_or_init(LangEsHn::new)),
"es_NI" => Some(ES_NI.get_or_init(LangEsNi::new)),
"es_VE" => Some(ES_VE.get_or_init(LangEsVe::new)),
"et" => Some(ET.get_or_init(LangEt::new)),
"eu" => Some(EU.get_or_init(LangEu::new)),
"fa" => Some(FA.get_or_init(LangFa::new)),
"ff" => Some(FF.get_or_init(LangFf::new)),
"fi" => Some(FI.get_or_init(LangFi::new)),
"fil" => Some(FIL.get_or_init(LangFil::new)),
"fo" => Some(FO.get_or_init(LangFo::new)),
"fr" => Some(FR.get_or_init(LangFr::new)),
"fr_BE" => Some(FR_BE.get_or_init(LangFrBe::new)),
"fr_CH" => Some(FR_CH.get_or_init(LangFrCh::new)),
"fr_DZ" => Some(FR_DZ.get_or_init(LangFrDz::new)),
"gl" => Some(GL.get_or_init(LangGl::new)),
"gu" => Some(GU.get_or_init(LangGu::new)),
"ha" => Some(HA.get_or_init(LangHa::new)),
"haw" => Some(HAW.get_or_init(LangHaw::new)),
"he" => Some(HE.get_or_init(LangHe::new)),
"hi" => Some(HI.get_or_init(LangHi::new)),
"hmn" => Some(HMN.get_or_init(LangHmn::new)),
"hr" => Some(HR.get_or_init(LangHr::new)),
"ht" => Some(HT.get_or_init(LangHt::new)),
"hu" => Some(HU.get_or_init(LangHu::new)),
"hy" => Some(HY.get_or_init(LangHy::new)),
"id" => Some(ID.get_or_init(LangId::new)),
"is" => Some(IS.get_or_init(LangIs::new)),
"it" => Some(IT.get_or_init(LangIt::new)),
"ja" | "jp" => Some(JA.get_or_init(LangJa::new)),
"jv" | "jw" => Some(JV.get_or_init(LangJv::new)),
"ka" => Some(KA.get_or_init(LangKa::new)),
"ki" => Some(KI.get_or_init(LangKi::new)),
"kk" => Some(KK.get_or_init(LangKk::new)),
"km" => Some(KM.get_or_init(LangKm::new)),
"kn" => Some(KN.get_or_init(LangKn::new)),
"ko" => Some(KO.get_or_init(LangKo::new)),
"kok" => Some(KOK.get_or_init(LangKok::new)),
"ksw" => Some(KSW.get_or_init(LangKsw::new)),
"ku" => Some(KU.get_or_init(LangKu::new)),
"ky" => Some(KY.get_or_init(LangKy::new)),
"kz" => Some(KZ.get_or_init(LangKz::new)),
"la" => Some(LA.get_or_init(LangLa::new)),
"lb" => Some(LB.get_or_init(LangLb::new)),
"lg" => Some(LG.get_or_init(LangLg::new)),
"lij" => Some(LIJ.get_or_init(LangLij::new)),
"ln" => Some(LN.get_or_init(LangLn::new)),
"lo" => Some(LO.get_or_init(LangLo::new)),
"lt" => Some(LT.get_or_init(LangLt::new)),
"lus" | "miz" => Some(LUS.get_or_init(LangLus::new)),
"lv" => Some(LV.get_or_init(LangLv::new)),
"mg" => Some(MG.get_or_init(LangMg::new)),
"mi" => Some(MI.get_or_init(LangMi::new)),
"mk" => Some(MK.get_or_init(LangMk::new)),
"ml" => Some(ML.get_or_init(LangMl::new)),
"mn" => Some(MN.get_or_init(LangMn::new)),
"mr" => Some(MR.get_or_init(LangMr::new)),
"ms" => Some(MS.get_or_init(LangMs::new)),
"mt" => Some(MT.get_or_init(LangMt::new)),
"my" => Some(MY.get_or_init(LangMy::new)),
"nb" | "no" => Some(NB.get_or_init(LangNb::new)),
"ne" => Some(NE.get_or_init(LangNe::new)),
"nl" => Some(NL.get_or_init(LangNl::new)),
"nn" => Some(NN.get_or_init(LangNn::new)),
"oc" => Some(OC.get_or_init(LangOc::new)),
"om" => Some(OM.get_or_init(LangOm::new)),
"or" => Some(OR.get_or_init(LangOr::new)),
"pa" => Some(PA.get_or_init(LangPa::new)),
"pap" => Some(PAP.get_or_init(LangPap::new)),
"pl" => Some(PL.get_or_init(LangPl::new)),
"pli" => Some(PLI.get_or_init(LangPli::new)),
"ps" => Some(PS.get_or_init(LangPs::new)),
"pt" => Some(PT.get_or_init(LangPt::new)),
"pt_BR" => Some(PT_BR.get_or_init(LangPtBr::new)),
"rm" => Some(RM.get_or_init(LangRm::new)),
"rm_puter" => Some(RM_PUTER.get_or_init(LangRmPuter::new)),
"rm_surmiran" => Some(RM_SURMIRAN.get_or_init(LangRmSurmiran::new)),
"rm_sursilv" => Some(RM_SURSILV.get_or_init(LangRmSursilv::new)),
"rm_sutsilv" => Some(RM_SUTSILV.get_or_init(LangRmSutsilv::new)),
"rm_vallader" => Some(RM_VALLADER.get_or_init(LangRmVallader::new)),
"ro" => Some(RO.get_or_init(LangRo::new)),
"ru" => Some(RU.get_or_init(LangRu::new)),
"rw" => Some(RW.get_or_init(LangRw::new)),
"sa" => Some(SA.get_or_init(LangSa::new)),
"sd" => Some(SD.get_or_init(LangSd::new)),
"si" => Some(SI.get_or_init(LangSi::new)),
"sk" => Some(SK.get_or_init(LangSk::new)),
"sl" => Some(SL.get_or_init(LangSl::new)),
"sn" => Some(SN.get_or_init(LangSn::new)),
"so" => Some(SO.get_or_init(LangSo::new)),
"sq" => Some(SQ.get_or_init(LangSq::new)),
"sr" | "sr_Cyrl" => Some(SR.get_or_init(LangSr::new)),
"sr_Latn" => Some(SR_LATN.get_or_init(LangSrLatn::new)),
"su" => Some(SU.get_or_init(LangSu::new)),
"sv" => Some(SV.get_or_init(LangSv::new)),
"sw" => Some(SW.get_or_init(LangSw::new)),
"ta" => Some(TA.get_or_init(LangTa::new)),
"te" => Some(TE.get_or_init(LangTe::new)),
"tet" => Some(TET.get_or_init(LangTet::new)),
"tg" => Some(TG.get_or_init(LangTg::new)),
"th" => Some(TH.get_or_init(LangTh::new)),
"ti" => Some(TI.get_or_init(LangTi::new)),
"tk" => Some(TK.get_or_init(LangTk::new)),
"tl" => Some(TL.get_or_init(LangTl::new)),
"tr" => Some(TR.get_or_init(LangTr::new)),
"tt" => Some(TT.get_or_init(LangTt::new)),
"uk" => Some(UK.get_or_init(LangUk::new)),
"ur" => Some(UR.get_or_init(LangUr::new)),
"uz" => Some(UZ.get_or_init(LangUz::new)),
"uz_Cyrl" | "uz_cyr" => Some(UZ_CYR.get_or_init(LangUzCyr::new)),
"vi" => Some(VI.get_or_init(LangVi::new)),
"wo" => Some(WO.get_or_init(LangWo::new)),
"xh" => Some(XH.get_or_init(LangXh::new)),
"yi" => Some(YI.get_or_init(LangYi::new)),
"yo" => Some(YO.get_or_init(LangYo::new)),
"cn" | "zh" | "zh_CN" => Some(ZH.get_or_init(LangZh::new)),
"zh_HK" => Some(ZH_HK.get_or_init(LangZhHk::new)),
"zh_TW" => Some(ZH_TW.get_or_init(LangZhTw::new)),
"zu" => Some(ZU.get_or_init(LangZu::new)),
_ => None,
}
}
/// Every Python key the core can serve.
pub fn supported_lang_keys() -> Vec<&'static str> {
vec!["af", "am", "ar", "as", "az", "ba", "ban", "be", "bg", "bm", "bn", "bo", "br", "bs", "ca", "ce", "ceb", "ckb", "cn", "cnh", "cs", "cy", "cz", "da", "de", "dk", "dv", "el", "en", "en_AERO", "en_Aero_FAA", "en_Aero_ICAO", "en_Aero_NATO", "en_Aero_USN", "en_Aero_US_Army", "en_Aero_US_Navy", "en_IN", "en_NE", "en_NG", "en_NP", "en_aero_icao", "en_x_aero_icao", "eo", "es", "es_CO", "es_CR", "es_GT", "es_HN", "es_NI", "es_VE", "et", "eu", "fa", "ff", "fi", "fil", "fo", "fr", "fr_BE", "fr_CH", "fr_DZ", "gl", "gu", "ha", "haw", "he", "hi", "hmn", "hr", "ht", "hu", "hy", "id", "is", "it", "ja", "jp", "jv", "jw", "ka", "ki", "kk", "km", "kn", "ko", "kok", "ksw", "ku", "ky", "kz", "la", "lb", "lg", "lij", "ln", "lo", "lt", "lus", "lv", "mg", "mi", "miz", "mk", "ml", "mn", "mr", "ms", "mt", "my", "nb", "ne", "nl", "nn", "no", "oc", "om", "or", "pa", "pap", "pl", "pli", "ps", "pt", "pt_BR", "rm", "rm_puter", "rm_surmiran", "rm_sursilv", "rm_sutsilv", "rm_vallader", "ro", "ru", "rw", "sa", "sd", "si", "sk", "sl", "sn", "so", "sq", "sr", "sr_Cyrl", "sr_Latn", "su", "sv", "sw", "ta", "te", "tet", "tg", "th", "ti", "tk", "tl", "tr", "tt", "uk", "ur", "uz", "uz_Cyrl", "uz_cyr", "vi", "wo", "xh", "yi", "yo", "zh", "zh_CN", "zh_HK", "zh_TW", "zu"]
}