iso 639-1 · 639-2 · native · family · local

ISO language codes

Searchable reference of 184 languages with 639-1, 639-2, native name, and language family. Click any code to copy.

Language Code Lookup
184 matches
Visible
184
all
Total
184
languages
Standards
639-1, 639-2
ISO
Status
ready
local
Search
codes
639-1639-2NameNative
AfarQafaraf
AbkhazianАҧсуа бызшәа
AfrikaansAfrikaans
AkanAkan
AlbanianShqip
Amharicአማርኛ
Arabicالعربية
AragoneseAragonés
ArmenianՀայերեն
Assameseঅসমীয়া
AvaricАвар мацӀ
Avestanavesta
AymaraAymar aru
AzerbaijaniAzərbaycan dili
BambaraBamanankan
Bashkirбашҡорт теле
BasqueEuskara
BelarusianБеларуская
Bengaliবাংলা
Bihari languagesभोजपुरी
BislamaBislama
BosnianBosanski
BretonBrezhoneg
BulgarianБългарски
Burmeseဗမာစာ
CatalanCatalà
ChamorroChamoru
ChechenНохчийн мотт
ChichewaChichewa
Chinese中文
ChuvashЧӑваш чӗлхи
CornishKernewek
CorsicanCorsu
Creeᓀᐦᐃᔭᐍᐏᐣ
CroatianHrvatski
CzechČeština
DanishDansk
Divehiދިވެހި
DutchNederlands
Dzongkhaརྫོང་ཁ
EnglishEnglish
EsperantoEsperanto
EstonianEesti
EweEʋegbe
FaroeseFøroyskt
FijianVakaviti
FinnishSuomi
FrenchFrançais
FulahFulfulde
GalicianGalego
Georgianქართული
GermanDeutsch
GreekΕλληνικά
GuaraniAvañe'ẽ
Gujaratiગુજરાતી
Haitian CreoleKreyòl ayisyen
HausaHausa
Hebrewעברית
HereroOtjiherero
Hindiहिन्दी
Hiri MotuHiri Motu
HungarianMagyar
InterlinguaInterlingua
IndonesianBahasa Indonesia
InterlingueInterlingue
IrishGaeilge
IgboAsụsụ Igbo
InupiaqIñupiaq
IdoIdo
IcelandicÍslenska
ItalianItaliano
Inuktitutᐃᓄᒃᑎᑐᑦ
Japanese日本語
JavaneseBasa Jawa
KalaallisutKalaallisut
Kannadaಕನ್ನಡ
KanuriKanuri
Kashmiriकश्मीरी
KazakhҚазақ тілі
Khmerភាសាខ្មែរ
KikuyuGĩkũyũ
KinyarwandaKinyarwanda
KyrgyzКыргызча
KomiКоми кыв
KongoKikongo
Korean한국어
KurdishKurdî
KuanyamaKuanyama
LatinLatina
LuxembourgishLëtzebuergesch
GandaLuganda
LimburgishLimburgs
LingalaLingála
Laoພາສາລາວ
LithuanianLietuvių
Luba-KatangaKiluba
LatvianLatviešu
ManxGaelg
MacedonianМакедонски
MalagasyMalagasy
MalayBahasa Melayu
Malayalamമലയാളം
MalteseMalti
MaoriMāori
Marathiमराठी
MarshalleseKajin M̧ajeļ
MongolianМонгол
NauruDorerin Naoero
NavajoDiné bizaad
North NdebeleisiNdebele
Nepaliनेपाली
NdongaOshiwambo
Norwegian BokmålNorsk bokmål
Norwegian NynorskNorsk nynorsk
NorwegianNorsk
Sichuan Yiꆈꌠ꒿
South NdebeleisiNdebele
OccitanOccitan
Ojibwaᐊᓂᔑᓈᐯᒧᐎᓐ
Church SlavonicСловѣ́ньскъ
OromoAfaan Oromoo
Oriyaଓଡ଼ିଆ
OssetianИрон æвзаг
Punjabiਪੰਜਾਬੀ
Paliपाऴि
Persianفارسی
PolishPolski
Pashtoپښتو
PortuguesePortuguês
QuechuaRuna Simi
RomanshRumantsch
RundiIkirundi
RomanianRomână
RussianРусский
Sanskritसंस्कृतम्
SardinianSardu
Sindhiसिन्धी
Northern SamiDavvisámegiella
SamoanGagana fa'a Samoa
SangoYângâ tî sängö
SerbianСрпски
Scottish GaelicGàidhlig
ShonaChiShona
Sinhalaසිංහල
SlovakSlovenčina
SlovenianSlovenščina
SomaliSoomaaliga
Southern SothoSesotho
SpanishEspañol
SundaneseBasa Sunda
SwahiliKiswahili
SwatiSiSwati
SwedishSvenska
Tamilதமிழ்
Teluguతెలుగు
TajikТоҷикӣ
Thaiไทย
Tigrinyaትግርኛ
Tibetanབོད་ཡིག
TurkmenTürkmen
TagalogWikang Tagalog
TswanaSetswana
TonganFaka-Tonga
TurkishTürkçe
TsongaXitsonga
TatarТатар теле
TwiTwi
TahitianReo Tahiti
Uyghurئۇيغۇرچە
UkrainianУкраїнська
Urduاردو
UzbekO'zbek
VendaTshivenḓa
VietnameseTiếng Việt
VolapükVolapük
WalloonWalon
WelshCymraeg
WolofWollof
Western FrisianFrysk
XhosaisiXhosa
Yiddishייִדיש
YorubaYorùbá
ZhuangSaɯ cueŋƅ
ZuluisiZulu
language family
NameFamily
AfarAfro-Asiatic
AbkhazianNorthwest Caucasian
AfrikaansIndo-European
AkanNiger-Congo
AlbanianIndo-European
AmharicAfro-Asiatic
ArabicAfro-Asiatic
AragoneseIndo-European
ArmenianIndo-European
AssameseIndo-European
AvaricNortheast Caucasian
AvestanIndo-European
AymaraAymaran
AzerbaijaniTurkic
BambaraNiger-Congo
BashkirTurkic
BasqueIsolate
BelarusianIndo-European
BengaliIndo-European
Bihari languagesIndo-European
BislamaCreole
BosnianIndo-European
BretonIndo-European
BulgarianIndo-European
BurmeseSino-Tibetan
CatalanIndo-European
ChamorroAustronesian
ChechenNortheast Caucasian
ChichewaNiger-Congo
ChineseSino-Tibetan
ChuvashTurkic
CornishIndo-European
CorsicanIndo-European
CreeAlgonquian
CroatianIndo-European
CzechIndo-European
DanishIndo-European
DivehiIndo-European
DutchIndo-European
DzongkhaSino-Tibetan
EnglishIndo-European
EsperantoConstructed
EstonianUralic
EweNiger-Congo
FaroeseIndo-European
FijianAustronesian
FinnishUralic
FrenchIndo-European
FulahNiger-Congo
GalicianIndo-European
GeorgianKartvelian
GermanIndo-European
GreekIndo-European
GuaraniTupian
GujaratiIndo-European
Haitian CreoleCreole
HausaAfro-Asiatic
HebrewAfro-Asiatic
HereroNiger-Congo
HindiIndo-European
Hiri MotuAustronesian
HungarianUralic
InterlinguaConstructed
IndonesianAustronesian
InterlingueConstructed
IrishIndo-European
IgboNiger-Congo
InupiaqEskimo-Aleut
IdoConstructed
IcelandicIndo-European
ItalianIndo-European
InuktitutEskimo-Aleut
JapaneseJaponic
JavaneseAustronesian
KalaallisutEskimo-Aleut
KannadaDravidian
KanuriNilo-Saharan
KashmiriIndo-European
KazakhTurkic
KhmerAustroasiatic
KikuyuNiger-Congo
KinyarwandaNiger-Congo
KyrgyzTurkic
KomiUralic
KongoNiger-Congo
KoreanKoreanic
KurdishIndo-European
KuanyamaNiger-Congo
LatinIndo-European
LuxembourgishIndo-European
GandaNiger-Congo
LimburgishIndo-European
LingalaNiger-Congo
LaoTai-Kadai
LithuanianIndo-European
Luba-KatangaNiger-Congo
LatvianIndo-European
ManxIndo-European
MacedonianIndo-European
MalagasyAustronesian
MalayAustronesian
MalayalamDravidian
MalteseAfro-Asiatic
MaoriAustronesian
MarathiIndo-European
MarshalleseAustronesian
MongolianMongolic
NauruAustronesian
NavajoNa-Dene
North NdebeleNiger-Congo
NepaliIndo-European
NdongaNiger-Congo
Norwegian BokmålIndo-European
Norwegian NynorskIndo-European
NorwegianIndo-European
Sichuan YiSino-Tibetan
South NdebeleNiger-Congo
OccitanIndo-European
OjibwaAlgonquian
Church SlavonicIndo-European
OromoAfro-Asiatic
OriyaIndo-European
OssetianIndo-European
PunjabiIndo-European
PaliIndo-European
PersianIndo-European
PolishIndo-European
PashtoIndo-European
PortugueseIndo-European
QuechuaQuechuan
RomanshIndo-European
RundiNiger-Congo
RomanianIndo-European
RussianIndo-European
SanskritIndo-European
SardinianIndo-European
SindhiIndo-European
Northern SamiUralic
SamoanAustronesian
SangoCreole
SerbianIndo-European
Scottish GaelicIndo-European
ShonaNiger-Congo
SinhalaIndo-European
SlovakIndo-European
SlovenianIndo-European
SomaliAfro-Asiatic
Southern SothoNiger-Congo
SpanishIndo-European
SundaneseAustronesian
SwahiliNiger-Congo
SwatiNiger-Congo
SwedishIndo-European
TamilDravidian
TeluguDravidian
TajikIndo-European
ThaiTai-Kadai
TigrinyaAfro-Asiatic
TibetanSino-Tibetan
TurkmenTurkic
TagalogAustronesian
TswanaNiger-Congo
TonganAustronesian
TurkishTurkic
TsongaNiger-Congo
TatarTurkic
TwiNiger-Congo
TahitianAustronesian
UyghurTurkic
UkrainianIndo-European
UrduIndo-European
UzbekTurkic
VendaNiger-Congo
VietnameseAustroasiatic
VolapükConstructed
WalloonIndo-European
WelshIndo-European
WolofNiger-Congo
Western FrisianIndo-European
XhosaNiger-Congo
YiddishIndo-European
YorubaNiger-Congo
ZhuangTai-Kadai
ZuluNiger-Congo
Quick Start

Two ISO standards, same idea

ISO 639-1 uses 2-letter codes (en, fr); 639-2 uses 3-letter codes (eng, fra). Always prefer 639-1 if it exists.

  1. 01

    Search

    Code or name fragment matches.

    Inputs are treated as UTF-8 throughout the pipeline and validated client-side as you type — nothing dispatches until the value is well-formed.

    searchinpututf-8client-sidevalidated
    search · textspanish · set
    es · spa
    loaded · parsedclient-side
  2. 02

    Pick code length

    2-letter for web, 3-letter for bibliographies.

    Each toggle re-computes through a memoised hook, so flipping options never resets your input and the UI stays snappy on large inputs.

    pickoptionslivememoisedtoggles
    code · memoised639-1 · live
    es
    options set · memoisedlive
  3. 03

    Note native name

    Useful for displaying language pickers.

    Randomness — where used — comes from crypto.getRandomValues, never Math.random. Heavy work sits in useMemo.

    nativecomputeinstantlocaldeterministic
    native · instantespañol · computed
    Español
    computed · instantinstant
  4. 04

    Copy

    Click either code column to copy.

    Copy writes through navigator.clipboard and downloads use a Blob — zero network traffic. Same input plus same options always yield the same bytes.

    copydownloadzero-networkreproducible
    ok · copiedready · copied
    Copied es
    shipped · ready to shipsuccess
Pro tips

Pro tips for everyday utilities

Reach for crypto.getRandomValues

Cryptographically random for IDs, tokens, salts. Math.random is for animation and games, not security.

Sort IDs lexicographically

UUID v4 has no time ordering. Use ULID or UUID v7 if you need sorted IDs.

Mock data with seeds

Faker-style libraries can be seeded so tests are reproducible. Embed the seed in the fixture file.

Reference cards beat memory

Cheatsheets for Vim, Git, Docker, Linux signals are faster than man pages when you’re mid-flow.

Browser APIs vary

Touch events, gamepads, and clipboard differ across vendors. Feature-detect before use.

Persist in the right place

localStorage for user preferences, sessionStorage for transient state, IndexedDB for structured data.

Use Cases

When to look up language codes

i18n, HTML lang, library configs.

HTML lang attr

<html lang="es"> for proper indexing. Random values come from crypto.getRandomValues — cryptographically secure for tokens, salts, and session IDs. Math.random is deterministic enough for animations but predictable enough to be a security bug.

CSPRNG-backed

i18n libraries

Match library locale keys to standard codes. Pair with hashids, ULID, or UUID v7 when you need both random and sortable — useful for primary keys, public-facing IDs, and event log ordering without a sequence column.

i18n

Accept-Language

HTTP header values are 639-1 + region. Output is deterministic given the same seed, so fixtures and tests stay reproducible across CI runs and contributor machines. Embed the seed in the fixture file for full replay.

snappy

Database fields

Store language preferences canonically. Heavy work runs through useMemo so the UI stays snappy on large inputs. Same input + same options yields identical bytes — the kind of stability snapshot tests rely on.

feature-detected

ML pipelines

Tag training data with consistent codes. Storage tools persist to the right backend: localStorage for user preferences, sessionStorage for transient state, IndexedDB for structured data. Pick the right shelf and quota worries disappear.

deterministic

Native pickers

Show 'Español' beside the 'es' option. Browser feature detection: clipboard, fullscreen, gamepad, and Web Bluetooth APIs gracefully fall back when unavailable. No surprise white screens on Safari or older Firefox.

production-ready
FAQ

Frequently asked questions

639-1 is 2-letter; 639-2 is 3-letter. Some languages have only 639-2 (e.g. Cherokee — chr).
639-3 covers many more languages including extinct and constructed. Not included here.
BCP 47 = 639-1 + region (e.g. en-US). Use country-code-lookup for the region half.
Open a PR — the LANGS array lives in this file.
Yes — bundled in JS. Nothing is sent to a server.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!