NLLB-200 Language Codes: Search and Copy the 202 Model Tokens
NLLB uses language-and-script codes such as eng_Latn, not short labels such as en. Use the full code for the source language and the intended target. The distinction matters especially when a language has more than one writing system.
The searchable reference below contains 202 language-and-script entries from the Hugging Face NLLB tokenizer implementation. Language names are matched to Meta’s FLORES reference, with the script identified where needed. The model is called NLLB-200; the number of code entries also reflects script variants.
Find and copy a language code
Search by language name, the whole code or a script suffix such as Latn. The complete table remains available if JavaScript is disabled.
202 language-and-script codes. Type to filter the table.
| Language | NLLB code | Copy |
|---|---|---|
| Acehnese (Arabic script) | ace_Arab | |
| Acehnese (Latin script) | ace_Latn | |
| Mesopotamian Arabic | acm_Arab | |
| Ta’izzi-Adeni Arabic | acq_Arab | |
| Tunisian Arabic | aeb_Arab | |
| Afrikaans | afr_Latn | |
| South Levantine Arabic | ajp_Arab | |
| Akan | aka_Latn | |
| Tosk Albanian | als_Latn | |
| Amharic | amh_Ethi | |
| North Levantine Arabic | apc_Arab | |
| Modern Standard Arabic | arb_Arab | |
| Najdi Arabic | ars_Arab | |
| Moroccan Arabic | ary_Arab | |
| Egyptian Arabic | arz_Arab | |
| Assamese | asm_Beng | |
| Asturian | ast_Latn | |
| Awadhi | awa_Deva | |
| Central Aymara | ayr_Latn | |
| South Azerbaijani | azb_Arab | |
| North Azerbaijani | azj_Latn | |
| Bashkir | bak_Cyrl | |
| Bambara | bam_Latn | |
| Balinese | ban_Latn | |
| Belarusian | bel_Cyrl | |
| Bemba | bem_Latn | |
| Bengali | ben_Beng | |
| Bhojpuri | bho_Deva | |
| Banjar (Arabic script) | bjn_Arab | |
| Banjar (Latin script) | bjn_Latn | |
| Standard Tibetan | bod_Tibt | |
| Bosnian | bos_Latn | |
| Buginese | bug_Latn | |
| Bulgarian | bul_Cyrl | |
| Catalan | cat_Latn | |
| Cebuano | ceb_Latn | |
| Czech | ces_Latn | |
| Chokwe | cjk_Latn | |
| Central Kurdish | ckb_Arab | |
| Crimean Tatar | crh_Latn | |
| Welsh | cym_Latn | |
| Danish | dan_Latn | |
| German | deu_Latn | |
| Southwestern Dinka | dik_Latn | |
| Dyula | dyu_Latn | |
| Dzongkha | dzo_Tibt | |
| Greek | ell_Grek | |
| English | eng_Latn | |
| Esperanto | epo_Latn | |
| Estonian | est_Latn | |
| Basque | eus_Latn | |
| Ewe | ewe_Latn | |
| Faroese | fao_Latn | |
| Fijian | fij_Latn | |
| Finnish | fin_Latn | |
| Fon | fon_Latn | |
| French | fra_Latn | |
| Friulian | fur_Latn | |
| Nigerian Fulfulde | fuv_Latn | |
| West Central Oromo | gaz_Latn | |
| Scottish Gaelic | gla_Latn | |
| Irish | gle_Latn | |
| Galician | glg_Latn | |
| Guarani | grn_Latn | |
| Gujarati | guj_Gujr | |
| Haitian Creole | hat_Latn | |
| Hausa | hau_Latn | |
| Hebrew | heb_Hebr | |
| Hindi | hin_Deva | |
| Chhattisgarhi | hne_Deva | |
| Croatian | hrv_Latn | |
| Hungarian | hun_Latn | |
| Armenian | hye_Armn | |
| Igbo | ibo_Latn | |
| Ilocano | ilo_Latn | |
| Indonesian | ind_Latn | |
| Icelandic | isl_Latn | |
| Italian | ita_Latn | |
| Javanese | jav_Latn | |
| Japanese | jpn_Jpan | |
| Kabyle | kab_Latn | |
| Jingpho | kac_Latn | |
| Kamba | kam_Latn | |
| Kannada | kan_Knda | |
| Kashmiri (Arabic script) | kas_Arab | |
| Kashmiri (Devanagari script) | kas_Deva | |
| Georgian | kat_Geor | |
| Kazakh | kaz_Cyrl | |
| Kabiyè | kbp_Latn | |
| Kabuverdianu | kea_Latn | |
| Halh Mongolian | khk_Cyrl | |
| Khmer | khm_Khmr | |
| Kikuyu | kik_Latn | |
| Kinyarwanda | kin_Latn | |
| Kyrgyz | kir_Cyrl | |
| Kimbundu | kmb_Latn | |
| Northern Kurdish | kmr_Latn | |
| Central Kanuri (Arabic script) | knc_Arab | |
| Central Kanuri (Latin script) | knc_Latn | |
| Kikongo | kon_Latn | |
| Korean | kor_Hang | |
| Lao | lao_Laoo | |
| Ligurian | lij_Latn | |
| Limburgish | lim_Latn | |
| Lingala | lin_Latn | |
| Lithuanian | lit_Latn | |
| Lombard | lmo_Latn | |
| Latgalian | ltg_Latn | |
| Luxembourgish | ltz_Latn | |
| Luba-Kasai | lua_Latn | |
| Ganda | lug_Latn | |
| Luo | luo_Latn | |
| Mizo | lus_Latn | |
| Standard Latvian | lvs_Latn | |
| Magahi | mag_Deva | |
| Maithili | mai_Deva | |
| Malayalam | mal_Mlym | |
| Marathi | mar_Deva | |
| Minangkabau (Latin script) | min_Latn | |
| Macedonian | mkd_Cyrl | |
| Maltese | mlt_Latn | |
| Meitei (Bengali script) | mni_Beng | |
| Mossi | mos_Latn | |
| Maori | mri_Latn | |
| Burmese | mya_Mymr | |
| Dutch | nld_Latn | |
| Norwegian Nynorsk | nno_Latn | |
| Norwegian Bokmål | nob_Latn | |
| Nepali | npi_Deva | |
| Northern Sotho | nso_Latn | |
| Nuer | nus_Latn | |
| Nyanja | nya_Latn | |
| Occitan | oci_Latn | |
| Odia | ory_Orya | |
| Pangasinan | pag_Latn | |
| Eastern Panjabi | pan_Guru | |
| Papiamento | pap_Latn | |
| Southern Pashto | pbt_Arab | |
| Western Persian | pes_Arab | |
| Plateau Malagasy | plt_Latn | |
| Polish | pol_Latn | |
| Portuguese | por_Latn | |
| Dari | prs_Arab | |
| Ayacucho Quechua | quy_Latn | |
| Romanian | ron_Latn | |
| Rundi | run_Latn | |
| Russian | rus_Cyrl | |
| Sango | sag_Latn | |
| Sanskrit | san_Deva | |
| Santali (Bengali script) | sat_Beng | |
| Sicilian | scn_Latn | |
| Shan | shn_Mymr | |
| Sinhala | sin_Sinh | |
| Slovak | slk_Latn | |
| Slovenian | slv_Latn | |
| Samoan | smo_Latn | |
| Shona | sna_Latn | |
| Sindhi | snd_Arab | |
| Somali | som_Latn | |
| Southern Sotho | sot_Latn | |
| Spanish | spa_Latn | |
| Sardinian | srd_Latn | |
| Serbian | srp_Cyrl | |
| Swati | ssw_Latn | |
| Sundanese | sun_Latn | |
| Swedish | swe_Latn | |
| Swahili | swh_Latn | |
| Silesian | szl_Latn | |
| Tamil | tam_Taml | |
| Tamasheq (Latin script) | taq_Latn | |
| Tamasheq (Tifinagh script) | taq_Tfng | |
| Tatar | tat_Cyrl | |
| Telugu | tel_Telu | |
| Tajik | tgk_Cyrl | |
| Tagalog | tgl_Latn | |
| Thai | tha_Thai | |
| Tigrinya | tir_Ethi | |
| Tok Pisin | tpi_Latn | |
| Tswana | tsn_Latn | |
| Tsonga | tso_Latn | |
| Turkmen | tuk_Latn | |
| Tumbuka | tum_Latn | |
| Turkish | tur_Latn | |
| Twi | twi_Latn | |
| Central Atlas Tamazight | tzm_Tfng | |
| Uyghur | uig_Arab | |
| Ukrainian | ukr_Cyrl | |
| Umbundu | umb_Latn | |
| Urdu | urd_Arab | |
| Northern Uzbek | uzn_Latn | |
| Venetian | vec_Latn | |
| Vietnamese | vie_Latn | |
| Waray | war_Latn | |
| Wolof | wol_Latn | |
| Xhosa | xho_Latn | |
| Eastern Yiddish | ydd_Hebr | |
| Yoruba | yor_Latn | |
| Yue Chinese | yue_Hant | |
| Chinese (Simplified) | zho_Hans | |
| Chinese (Traditional) | zho_Hant | |
| Standard Malay | zsm_Latn | |
| Zulu | zul_Latn |
Common codes at a glance
| Language or written form | Code |
|---|---|
| English | eng_Latn |
| French | fra_Latn |
| German | deu_Latn |
| Spanish | spa_Latn |
| Portuguese | por_Latn |
| Modern Standard Arabic | arb_Arab |
| Hindi | hin_Deva |
| Japanese | jpn_Jpan |
| Korean | kor_Hang |
| Simplified Chinese | zho_Hans |
| Traditional Chinese | zho_Hant |
| Cantonese in traditional characters | yue_Hant |
Copy the code exactly, including the underscore and capitalization. A country code such as US or a locale such as en-US belongs to a different naming system and is not an interchangeable NLLB token.
Read the language and script separately
The first part identifies the language; the second identifies the script. For example, eng_Latn combines English with Latin script. In zho_Hans and zho_Hant, the language portion is shared while the script portion differs.
Choose the code that matches the text you actually have. If your source is written in traditional Chinese characters, record that explicitly in your workflow. For the target, decide which written form your reader needs before generating a translation.
Some languages have multiple entries. The table includes Acehnese in Arabic and Latin scripts, Kashmiri in Arabic and Devanagari scripts, and Tamasheq in Latin and Tifinagh scripts. Searching the language name shows those choices together so you do not accidentally select the first unfamiliar token in a long list.
Use the code with a tokenizer
The Transformers NLLB documentation shows how to set the source language and choose the target language during generation. This small example focuses on checking the tokenizer configuration:
from transformers import AutoTokenizer
model_id = "facebook/nllb-200-distilled-600M"
source_code = "eng_Latn"
target_code = "zho_Hans"
tokenizer = AutoTokenizer.from_pretrained(model_id, src_lang=source_code)
target_id = tokenizer.convert_tokens_to_ids(target_code)
assert target_id != tokenizer.unk_token_id, "Unknown target language code"
For generation, the documented workflow passes the target language token ID as forced_bos_token_id to the model’s generate call. Keep the source code, target code and model identifier together in your configuration so a later change is easy to audit.
If you are setting up the surrounding environment, our local NLLB setup guide covers that next step. Check the current library documentation when adapting a code example to your installed version.
Four mistakes to check before debugging the model
A short locale was supplied. Replace values such as en, zh-CN or ja with the matching NLLB code from the table. Keep your application’s locale-to-model-code mapping explicit.
The source language was left at a default. Set the language of the actual input when constructing or configuring the tokenizer. A target-language choice does not also describe the source text.
The right language has the wrong script. Compare the suffix with the writing system required for your output. Keep both Chinese written forms visible in your configuration rather than hiding them under a single ambiguous “Chinese” option.
A code came from a different list. FLORES is a related evaluation resource, while the tokenizer defines the code tokens used by this model implementation. This lookup uses the tokenizer’s entries and joins the descriptive names from FLORES. If you use a different model or tokenizer, inspect that implementation’s own supported tokens.
A small validation checklist for your project
- Save the model identifier and library version with your experiment.
- Confirm the source and target codes are present in the tokenizer you loaded.
- Start with a short sentence whose language is known.
- Check the output script and have a competent reader review meaning.
- Keep representative examples from your own use case for later comparisons.
Successful token lookup is the configuration check. Translation quality still needs evaluation on your actual material, particularly for names, numbers and domain-specific language. Record those checks alongside the code mapping so a passing setup check is not mistaken for a completed quality review.
Model use and license
Meta’s 600M model card identifies NLLB-200 as a research model under CC BY-NC 4.0. It describes sentence translation as the intended use and lists limitations for production deployment, specialized medical or legal text and document translation. Review those terms before choosing it for an application.
This page is a code reference: filtering and copying a language token does not run a translation model. Use the model card and your own evaluation to decide whether the underlying model fits your project.