vibeon-translator / utils /language_mapping.py
Vibeon Deploy Bot
deploy: vibeon-translator 2026-08-23T13:56:02Z
2909918
Raw
History Blame Contribute Delete
2.68 kB
"""
Language Code Mapping Utilities
Maps standard language codes to model-specific language codes
"""
# NLLB language code mapping
NLLB_LANGUAGE_MAP = {
'en': 'eng_Latn',
'es': 'spa_Latn',
'fr': 'fra_Latn',
'de': 'deu_Latn',
'it': 'ita_Latn',
'pt': 'por_Latn',
'ru': 'rus_Cyrl',
'zh': 'zho_Hans',
'ja': 'jpn_Jpan',
'ko': 'kor_Hang',
'ar': 'arb_Arab',
'hi': 'hin_Deva',
'tr': 'tur_Latn',
'pl': 'pol_Latn',
'nl': 'nld_Latn',
'sv': 'swe_Latn',
'da': 'dan_Latn',
'no': 'nor_Latn',
'fi': 'fin_Latn',
'cs': 'ces_Latn',
'hu': 'hun_Latn',
'ro': 'ron_Latn',
'bg': 'bul_Cyrl',
'hr': 'hrv_Latn',
'sk': 'slk_Latn',
'sl': 'slv_Latn',
'et': 'est_Latn',
'lv': 'lvs_Latn',
'lt': 'lit_Latn',
'el': 'ell_Grek',
'he': 'heb_Hebr',
'th': 'tha_Thai',
'vi': 'vie_Latn',
'id': 'ind_Latn',
'ms': 'zsm_Latn',
'tl': 'tgl_Latn',
'uk': 'ukr_Cyrl',
'be': 'bel_Cyrl',
'mk': 'mkd_Cyrl',
'sr': 'srp_Cyrl',
'bs': 'bos_Latn',
'sq': 'als_Latn',
'mt': 'mlt_Latn',
'is': 'isl_Latn',
'ga': 'gle_Latn',
'cy': 'cym_Latn',
'eu': 'eus_Latn',
'ca': 'cat_Latn',
'gl': 'glg_Latn',
'af': 'afr_Latn',
'sw': 'swh_Latn',
'zu': 'zul_Latn',
'xh': 'xho_Latn',
'am': 'amh_Ethi',
'ha': 'hau_Latn',
'ig': 'ibo_Latn',
'yo': 'yor_Latn',
'bn': 'ben_Beng',
'gu': 'guj_Gujr',
'kn': 'kan_Knda',
'ml': 'mal_Mlym',
'mr': 'mar_Deva',
'ne': 'npi_Deva',
'pa': 'pan_Guru',
'si': 'sin_Sinh',
'ta': 'tam_Taml',
'te': 'tel_Telu',
'ur': 'urd_Arab',
'fa': 'pes_Arab',
'ps': 'pbt_Arab',
'sd': 'snd_Arab',
'ku': 'ckb_Arab',
'az': 'azj_Latn',
'kk': 'kaz_Cyrl',
'ky': 'kir_Cyrl',
'mn': 'khk_Cyrl',
'uz': 'uzn_Latn',
'tg': 'tgk_Cyrl',
'ka': 'kat_Geor',
'hy': 'hye_Armn',
'my': 'mya_Mymr',
'km': 'khm_Khmr',
'lo': 'lao_Laoo',
'rw': 'kin_Latn' # Kinyarwanda
}
def get_nllb_language_code(standard_code: str) -> str:
"""Convert standard language code to NLLB language code"""
return NLLB_LANGUAGE_MAP.get(standard_code, standard_code)
def get_standard_language_code(nllb_code: str) -> str:
"""Convert NLLB language code to standard language code"""
reverse_map = {v: k for k, v in NLLB_LANGUAGE_MAP.items()}
return reverse_map.get(nllb_code, nllb_code)
def is_supported_language(lang_code: str) -> bool:
"""Check if language code is supported"""
return lang_code in NLLB_LANGUAGE_MAP