translator-model-api / backend /languages.py
arindae's picture
current changes + deployment
034506e
Raw
History Blame Contribute Delete
6.73 kB
"""FLORES-200 language codes supported by NLLB-200, mapped to readable names.
Each code is `<iso639-3>_<script>` (e.g. ``kor_Hang``). This is the full set of
languages the NLLB-200 model can translate between.
"""
# code -> human-readable English display name
LANGUAGES: dict[str, str] = {
"ace_Arab": "Acehnese (Arabic)",
"ace_Latn": "Acehnese (Latin)",
"acm_Arab": "Mesopotamian Arabic",
"acq_Arab": "Ta'izzi-Adeni Arabic",
"aeb_Arab": "Tunisian Arabic",
"afr_Latn": "Afrikaans",
"ajp_Arab": "South Levantine Arabic",
"aka_Latn": "Akan",
"amh_Ethi": "Amharic",
"apc_Arab": "North Levantine Arabic",
"arb_Arab": "Modern Standard Arabic",
"arb_Latn": "Modern Standard Arabic (Latin)",
"ars_Arab": "Najdi Arabic",
"ary_Arab": "Moroccan Arabic",
"arz_Arab": "Egyptian Arabic",
"asm_Beng": "Assamese",
"ast_Latn": "Asturian",
"awa_Deva": "Awadhi",
"ayr_Latn": "Central Aymara",
"azb_Arab": "South Azerbaijani",
"azj_Latn": "North Azerbaijani",
"bak_Cyrl": "Bashkir",
"bam_Latn": "Bambara",
"ban_Latn": "Balinese",
"bel_Cyrl": "Belarusian",
"bem_Latn": "Bemba",
"ben_Beng": "Bengali",
"bho_Deva": "Bhojpuri",
"bjn_Arab": "Banjar (Arabic)",
"bjn_Latn": "Banjar (Latin)",
"bod_Tibt": "Standard Tibetan",
"bos_Latn": "Bosnian",
"bug_Latn": "Buginese",
"bul_Cyrl": "Bulgarian",
"cat_Latn": "Catalan",
"ceb_Latn": "Cebuano",
"ces_Latn": "Czech",
"cjk_Latn": "Chokwe",
"ckb_Arab": "Central Kurdish",
"crh_Latn": "Crimean Tatar",
"cym_Latn": "Welsh",
"dan_Latn": "Danish",
"deu_Latn": "German",
"dik_Latn": "Southwestern Dinka",
"dyu_Latn": "Dyula",
"dzo_Tibt": "Dzongkha",
"ell_Grek": "Greek",
"eng_Latn": "English",
"epo_Latn": "Esperanto",
"est_Latn": "Estonian",
"eus_Latn": "Basque",
"ewe_Latn": "Ewe",
"fao_Latn": "Faroese",
"pes_Arab": "Western Persian",
"fij_Latn": "Fijian",
"fin_Latn": "Finnish",
"fon_Latn": "Fon",
"fra_Latn": "French",
"fur_Latn": "Friulian",
"fuv_Latn": "Nigerian Fulfulde",
"gla_Latn": "Scottish Gaelic",
"gle_Latn": "Irish",
"glg_Latn": "Galician",
"grn_Latn": "Guarani",
"guj_Gujr": "Gujarati",
"hat_Latn": "Haitian Creole",
"hau_Latn": "Hausa",
"heb_Hebr": "Hebrew",
"hin_Deva": "Hindi",
"hne_Deva": "Chhattisgarhi",
"hrv_Latn": "Croatian",
"hun_Latn": "Hungarian",
"hye_Armn": "Armenian",
"ibo_Latn": "Igbo",
"ilo_Latn": "Ilocano",
"ind_Latn": "Indonesian",
"isl_Latn": "Icelandic",
"ita_Latn": "Italian",
"jav_Latn": "Javanese",
"jpn_Jpan": "Japanese",
"kab_Latn": "Kabyle",
"kac_Latn": "Jingpho",
"kam_Latn": "Kamba",
"kan_Knda": "Kannada",
"kas_Arab": "Kashmiri (Arabic)",
"kas_Deva": "Kashmiri (Devanagari)",
"kat_Geor": "Georgian",
"knc_Arab": "Central Kanuri (Arabic)",
"knc_Latn": "Central Kanuri (Latin)",
"kaz_Cyrl": "Kazakh",
"kbp_Latn": "Kabiye",
"kea_Latn": "Kabuverdianu",
"khm_Khmr": "Khmer",
"kik_Latn": "Kikuyu",
"kin_Latn": "Kinyarwanda",
"kir_Cyrl": "Kyrgyz",
"kmb_Latn": "Kimbundu",
"kon_Latn": "Kikongo",
"kor_Hang": "Korean",
"kmr_Latn": "Northern Kurdish",
"lao_Laoo": "Lao",
"lvs_Latn": "Standard Latvian",
"lij_Latn": "Ligurian",
"lim_Latn": "Limburgish",
"lin_Latn": "Lingala",
"lit_Latn": "Lithuanian",
"lmo_Latn": "Lombard",
"ltg_Latn": "Latgalian",
"ltz_Latn": "Luxembourgish",
"lua_Latn": "Luba-Kasai",
"lug_Latn": "Ganda",
"luo_Latn": "Luo",
"lus_Latn": "Mizo",
"mag_Deva": "Magahi",
"mai_Deva": "Maithili",
"mal_Mlym": "Malayalam",
"mar_Deva": "Marathi",
"min_Latn": "Minangkabau",
"mkd_Cyrl": "Macedonian",
"plt_Latn": "Plateau Malagasy",
"mlt_Latn": "Maltese",
"mni_Beng": "Meitei (Bengali)",
"khk_Cyrl": "Halh Mongolian",
"mos_Latn": "Mossi",
"mri_Latn": "Maori",
"zsm_Latn": "Standard Malay",
"mya_Mymr": "Burmese",
"nld_Latn": "Dutch",
"nno_Latn": "Norwegian Nynorsk",
"nob_Latn": "Norwegian Bokmal",
"npi_Deva": "Nepali",
"nso_Latn": "Northern Sotho",
"nus_Latn": "Nuer",
"nya_Latn": "Nyanja",
"oci_Latn": "Occitan",
"gaz_Latn": "West Central Oromo",
"ory_Orya": "Odia",
"pag_Latn": "Pangasinan",
"pan_Guru": "Eastern Panjabi",
"pap_Latn": "Papiamento",
"pol_Latn": "Polish",
"por_Latn": "Portuguese",
"prs_Arab": "Dari",
"pbt_Arab": "Southern Pashto",
"quy_Latn": "Ayacucho Quechua",
"ron_Latn": "Romanian",
"run_Latn": "Rundi",
"rus_Cyrl": "Russian",
"sag_Latn": "Sango",
"san_Deva": "Sanskrit",
"sat_Olck": "Santali",
"scn_Latn": "Sicilian",
"shn_Mymr": "Shan",
"sin_Sinh": "Sinhala",
"slk_Latn": "Slovak",
"slv_Latn": "Slovenian",
"smo_Latn": "Samoan",
"sna_Latn": "Shona",
"snd_Arab": "Sindhi",
"som_Latn": "Somali",
"sot_Latn": "Southern Sotho",
"spa_Latn": "Spanish",
"als_Latn": "Tosk Albanian",
"srd_Latn": "Sardinian",
"srp_Cyrl": "Serbian",
"ssw_Latn": "Swati",
"sun_Latn": "Sundanese",
"swe_Latn": "Swedish",
"swh_Latn": "Swahili",
"szl_Latn": "Silesian",
"tam_Taml": "Tamil",
"tat_Cyrl": "Tatar",
"tel_Telu": "Telugu",
"tgk_Cyrl": "Tajik",
"tgl_Latn": "Tagalog",
"tha_Thai": "Thai",
"tir_Ethi": "Tigrinya",
"taq_Latn": "Tamasheq (Latin)",
"taq_Tfng": "Tamasheq (Tifinagh)",
"tpi_Latn": "Tok Pisin",
"tsn_Latn": "Tswana",
"tso_Latn": "Tsonga",
"tuk_Latn": "Turkmen",
"tum_Latn": "Tumbuka",
"tur_Latn": "Turkish",
"twi_Latn": "Twi",
"tzm_Tfng": "Central Atlas Tamazight",
"uig_Arab": "Uyghur",
"ukr_Cyrl": "Ukrainian",
"umb_Latn": "Umbundu",
"urd_Arab": "Urdu",
"uzn_Latn": "Northern Uzbek",
"vec_Latn": "Venetian",
"vie_Latn": "Vietnamese",
"war_Latn": "Waray",
"wol_Latn": "Wolof",
"xho_Latn": "Xhosa",
"ydd_Hebr": "Eastern Yiddish",
"yor_Latn": "Yoruba",
"yue_Hant": "Yue Chinese (Cantonese)",
"zho_Hans": "Chinese (Simplified)",
"zho_Hant": "Chinese (Traditional)",
"zul_Latn": "Zulu",
}
def is_valid(code: str) -> bool:
return code in LANGUAGES
def name_for(code: str) -> str:
"""Human-readable name for a FLORES-200 code (used in API prompts)."""
return LANGUAGES.get(code, code)
def as_list() -> list[dict[str, str]]:
"""Return languages as a sorted list of {code, name} for the API."""
return [
{"code": code, "name": name}
for code, name in sorted(LANGUAGES.items(), key=lambda kv: kv[1])
]