def set_language(tokenizer, lang_code):
    lang = lang_map[lang_code]
    print(f"Setting language for NLLB-CLIP: {lang}")
    tokenizer.tokenizer.set_src_lang_special_tokens(lang)


lang_map = {
    "en": "eng_Latn",
    "es": "spa_Latn",
    "it": "ita_Latn",
    "ko": "kor_Hang",
    "ru": "rus_Cyrl",
    "zh": "zho_Hant",
    "de": "deu_Latn",
    "fr": "fra_Latn",
    "jp": "jpn_Jpan",
    "cn": "zho_Hant",
    "zhm": "yue_Hant",
    "ar": "arb_Arab",
    "bn": "ben_Beng",
    "cs": "ces_Latn",
    "da": "dan_Latn",
    "el": "ell_Grek",
    "fa": "pes_Arab",
    "fi": "fin_Latn",
    "fil": "tgl_Latn",
    "hi": "hin_Deva",
    "hr": "hrv_Latn",
    "hu": "hun_Latn",
    "ja": "jpn_Jpan",
    "id": "ind_Latn",
    "he": "heb_Hebr",
    "mi": "mri_Latn",
    "nl": "nld_Latn",
    "no": "nno_Latn",
    "pl": "pol_Latn",
    "pt": "por_Latn",
    "quz": "quy_Latn",
    "ro": "ron_Latn",
    "sv": "swe_Latn",
    "sw": "swh_Latn",
    "te": "tel_Telu",
    "th": "tha_Thai",
    "tr": "tur_Latn",
    "uk": "ukr_Cyrl",
    "vi": "vie_Latn",
    "ace_Arab": "ace_Arab",
    "ace_Latn": "ace_Latn",
    "acm_Arab": "acm_Arab",
    "acq_Arab": "acq_Arab",
    "aeb_Arab": "aeb_Arab",
    "afr_Latn": "afr_Latn",
    "ajp_Arab": "ajp_Arab",
    "aka_Latn": "aka_Latn",
    "amh_Ethi": "amh_Ethi",
    "apc_Arab": "apc_Arab",
    "arb_Arab": "arb_Arab",
    "ars_Arab": "ars_Arab",
    "ary_Arab": "ary_Arab",
    "arz_Arab": "arz_Arab",
    "asm_Beng": "asm_Beng",
    "ast_Latn": "ast_Latn",
    "awa_Deva": "awa_Deva",
    "ayr_Latn": "ayr_Latn",
    "azb_Arab": "azb_Arab",
    "azj_Latn": "azj_Latn",
    "bak_Cyrl": "bak_Cyrl",
    "bam_Latn": "bam_Latn",
    "ban_Latn": "ban_Latn",
    "bel_Cyrl": "bel_Cyrl",
    "bem_Latn": "bem_Latn",
    "ben_Beng": "ben_Beng",
    "bho_Deva": "bho_Deva",
    "bjn_Arab": "bjn_Arab",
    "bjn_Latn": "bjn_Latn",
    "bod_Tibt": "bod_Tibt",
    "bos_Latn": "bos_Latn",
    "bug_Latn": "bug_Latn",
    "bul_Cyrl": "bul_Cyrl",
    "cat_Latn": "cat_Latn",
    "ceb_Latn": "ceb_Latn",
    "ces_Latn": "ces_Latn",
    "cjk_Latn": "cjk_Latn",
    "ckb_Arab": "ckb_Arab",
    "crh_Latn": "crh_Latn",
    "cym_Latn": "cym_Latn",
    "dan_Latn": "dan_Latn",
    "deu_Latn": "deu_Latn",
    "dik_Latn": "dik_Latn",
    "dyu_Latn": "dyu_Latn",
    "dzo_Tibt": "dzo_Tibt",
    "eng_Latn": "eng_Latn",
    "ell_Grek": "ell_Grek",
    "epo_Latn": "epo_Latn",
    "est_Latn": "est_Latn",
    "eus_Latn": "eus_Latn",
    "ewe_Latn": "ewe_Latn",
    "fao_Latn": "fao_Latn",
    "fij_Latn": "fij_Latn",
    "fin_Latn": "fin_Latn",
    "fon_Latn": "fon_Latn",
    "fra_Latn": "fra_Latn",
    "fur_Latn": "fur_Latn",
    "fuv_Latn": "fuv_Latn",
    "gla_Latn": "gla_Latn",
    "gle_Latn": "gle_Latn",
    "glg_Latn": "glg_Latn",
    "grn_Latn": "grn_Latn",
    "guj_Gujr": "guj_Gujr",
    "hat_Latn": "hat_Latn",
    "hau_Latn": "hau_Latn",
    "heb_Hebr": "heb_Hebr",
    "hin_Deva": "hin_Deva",
    "hne_Deva": "hne_Deva",
    "hrv_Latn": "hrv_Latn",
    "hun_Latn": "hun_Latn",
    "hye_Armn": "hye_Armn",
    "ibo_Latn": "ibo_Latn",
    "ilo_Latn": "ilo_Latn",
    "ind_Latn": "ind_Latn",
    "isl_Latn": "isl_Latn",
    "ita_Latn": "ita_Latn",
    "jav_Latn": "jav_Latn",
    "jpn_Jpan": "jpn_Jpan",
    "kab_Latn": "kab_Latn",
    "kac_Latn": "kac_Latn",
    "kam_Latn": "kam_Latn",
    "kan_Knda": "kan_Knda",
    "kas_Arab": "kas_Arab",
    "kas_Deva": "kas_Deva",
    "kat_Geor": "kat_Geor",
    "knc_Arab": "knc_Arab",
    "knc_Latn": "knc_Latn",
    "kaz_Cyrl": "kaz_Cyrl",
    "kbp_Latn": "kbp_Latn",
    "kea_Latn": "kea_Latn",
    "khm_Khmr": "khm_Khmr",
    "kik_Latn": "kik_Latn",
    "kin_Latn": "kin_Latn",
    "kir_Cyrl": "kir_Cyrl",
    "kmb_Latn": "kmb_Latn",
    "kmr_Latn": "kmr_Latn",
    "kon_Latn": "kon_Latn",
    "kor_Hang": "kor_Hang",
    "lao_Laoo": "lao_Laoo",
    "lij_Latn": "lij_Latn",
    "lim_Latn": "lim_Latn",
    "lin_Latn": "lin_Latn",
    "lit_Latn": "lit_Latn",
    "lmo_Latn": "lmo_Latn",
    "ltg_Latn": "ltg_Latn",
    "ltz_Latn": "ltz_Latn",
    "lua_Latn": "lua_Latn",
    "lug_Latn": "lug_Latn",
    "luo_Latn": "luo_Latn",
    "lus_Latn": "lus_Latn",
    "lvs_Latn": "lvs_Latn",
    "mag_Deva": "mag_Deva",
    "mai_Deva": "mai_Deva",
    "mal_Mlym": "mal_Mlym",
    "mar_Deva": "mar_Deva",
    "min_Latn": "min_Latn",
    "mkd_Cyrl": "mkd_Cyrl",
    "plt_Latn": "plt_Latn",
    "mlt_Latn": "mlt_Latn",
    "mni_Beng": "mni_Beng",
    "khk_Cyrl": "khk_Cyrl",
    "mos_Latn": "mos_Latn",
    "mri_Latn": "mri_Latn",
    "mya_Mymr": "mya_Mymr",
    "nld_Latn": "nld_Latn",
    "nno_Latn": "nno_Latn",
    "nob_Latn": "nob_Latn",
    "npi_Deva": "npi_Deva",
    "nso_Latn": "nso_Latn",
    "nus_Latn": "nus_Latn",
    "nya_Latn": "nya_Latn",
    "oci_Latn": "oci_Latn",
    "gaz_Latn": "gaz_Latn",
    "ory_Orya": "ory_Orya",
    "pag_Latn": "pag_Latn",
    "pan_Guru": "pan_Guru",
    "pap_Latn": "pap_Latn",
    "pes_Arab": "pes_Arab",
    "pol_Latn": "pol_Latn",
    "por_Latn": "por_Latn",
    "prs_Arab": "prs_Arab",
    "pbt_Arab": "pbt_Arab",
    "quy_Latn": "quy_Latn",
    "ron_Latn": "ron_Latn",
    "run_Latn": "run_Latn",
    "rus_Cyrl": "rus_Cyrl",
    "sag_Latn": "sag_Latn",
    "san_Deva": "san_Deva",
    "scn_Latn": "scn_Latn",
    "shn_Mymr": "shn_Mymr",
    "sin_Sinh": "sin_Sinh",
    "slk_Latn": "slk_Latn",
    "slv_Latn": "slv_Latn",
    "smo_Latn": "smo_Latn",
    "sna_Latn": "sna_Latn",
    "snd_Arab": "snd_Arab",
    "som_Latn": "som_Latn",
    "sot_Latn": "sot_Latn",
    "spa_Latn": "spa_Latn",
    "als_Latn": "als_Latn",
    "srd_Latn": "srd_Latn",
    "srp_Cyrl": "srp_Cyrl",
    "ssw_Latn": "ssw_Latn",
    "sun_Latn": "sun_Latn",
    "swe_Latn": "swe_Latn",
    "swh_Latn": "swh_Latn",
    "szl_Latn": "szl_Latn",
    "tam_Taml": "tam_Taml",
    "tat_Cyrl": "tat_Cyrl",
    "tel_Telu": "tel_Telu",
    "tgk_Cyrl": "tgk_Cyrl",
    "tgl_Latn": "tgl_Latn",
    "tha_Thai": "tha_Thai",
    "tir_Ethi": "tir_Ethi",
    "taq_Latn": "taq_Latn",
    "taq_Tfng": "taq_Tfng",
    "tpi_Latn": "tpi_Latn",
    "tsn_Latn": "tsn_Latn",
    "tso_Latn": "tso_Latn",
    "tuk_Latn": "tuk_Latn",
    "tum_Latn": "tum_Latn",
    "tur_Latn": "tur_Latn",
    "twi_Latn": "twi_Latn",
    "tzm_Tfng": "tzm_Tfng",
    "uig_Arab": "uig_Arab",
    "ukr_Cyrl": "ukr_Cyrl",
    "umb_Latn": "umb_Latn",
    "urd_Arab": "urd_Arab",
    "uzn_Latn": "uzn_Latn",
    "vec_Latn": "vec_Latn",
    "vie_Latn": "vie_Latn",
    "war_Latn": "war_Latn",
    "wol_Latn": "wol_Latn",
    "xho_Latn": "xho_Latn",
    "ydd_Hebr": "ydd_Hebr",
    "yor_Latn": "yor_Latn",
    "yue_Hant": "yue_Hant",
    "zho_Hans": "zho_Hans",
    "zho_Hant": "zho_Hant",
    "zsm_Latn": "zsm_Latn",
    "zul_Latn": "zul_Latn",
}
