Language & Locale Codes
Searchable ISO 639 / BCP-47 language and region code reference for hreflang.
| Code | Language | Region | Native | |
|---|---|---|---|---|
af | Afrikaans | — | Afrikaans | |
ar | Arabic | — | العربية | |
ar-EG | Arabic | Egypt | العربية | |
ar-SA | Arabic | Saudi Arabia | العربية | |
bg | Bulgarian | — | Български | |
bn | Bengali | — | বাংলা | |
bs | Bosnian | — | Bosanski | |
ca | Catalan | — | Català | |
cs | Czech | — | Čeština | |
cy | Welsh | — | Cymraeg | |
da | Danish | — | Dansk | |
de | German | — | Deutsch | |
de-AT | German | Austria | Deutsch | |
de-CH | German | Switzerland | Deutsch | |
el | Greek | — | Ελληνικά | |
en | English | — | English | |
en-AU | English | Australia | English | |
en-CA | English | Canada | English | |
en-GB | English | United Kingdom | English | |
en-IN | English | India | English | |
en-US | English | United States | English | |
es | Spanish | — | Español | |
es-AR | Spanish | Argentina | Español | |
es-ES | Spanish | Spain | Español | |
es-MX | Spanish | Mexico | Español | |
et | Estonian | — | Eesti | |
eu | Basque | — | Euskara | |
fa | Persian | — | فارسی | |
fi | Finnish | — | Suomi | |
fil | Filipino | — | Filipino | |
fr | French | — | Français | |
fr-BE | French | Belgium | Français | |
fr-CA | French | Canada | Français | |
fr-CH | French | Switzerland | Français | |
ga | Irish | — | Gaeilge | |
gl | Galician | — | Galego | |
he | Hebrew | — | עברית | |
hi | Hindi | — | हिन्दी | |
hr | Croatian | — | Hrvatski | |
hu | Hungarian | — | Magyar | |
id | Indonesian | — | Bahasa Indonesia | |
is | Icelandic | — | Íslenska | |
it | Italian | — | Italiano | |
ja | Japanese | — | 日本語 | |
ka | Georgian | — | ქართული | |
kk | Kazakh | — | Қазақ | |
ko | Korean | — | 한국어 | |
lt | Lithuanian | — | Lietuvių | |
lv | Latvian | — | Latviešu | |
mk | Macedonian | — | Македонски | |
ms | Malay | — | Bahasa Melayu | |
mt | Maltese | — | Malti | |
nb | Norwegian Bokmål | — | Norsk bokmål | |
nl | Dutch | — | Nederlands | |
nl-BE | Dutch | Belgium | Nederlands | |
no | Norwegian | — | Norsk | |
pl | Polish | — | Polski | |
pt | Portuguese | — | Português | |
pt-BR | Portuguese | Brazil | Português | |
pt-PT | Portuguese | Portugal | Português | |
ro | Romanian | — | Română | |
ru | Russian | — | Русский | |
sk | Slovak | — | Slovenčina | |
sl | Slovenian | — | Slovenščina | |
sq | Albanian | — | Shqip | |
sr | Serbian | — | Српски | |
sv | Swedish | — | Svenska | |
sw | Swahili | — | Kiswahili | |
ta | Tamil | — | தமிழ் | |
th | Thai | — | ไทย | |
tr | Turkish | — | Türkçe | |
uk | Ukrainian | — | Українська | |
ur | Urdu | — | اردو | |
vi | Vietnamese | — | Tiếng Việt | |
x-default | Fallback (x-default) | unmatched users | — | |
zh | Chinese | — | 中文 | |
zh-Hans | Chinese | Simplified | 简体中文 | |
zh-Hant | Chinese | Traditional | 繁體中文 |
Showing 78 of 78 common codes. The format is ISO 639-1 language, optionally a hyphen and ISO 3166-1 region.
What these codes are
Language tags follow BCP-47: an ISO 639-1 language code (like de for German), optionally followed by a hyphen and an ISO 3166-1 region (like de-AT for Austrian German). You use them in hreflang attributes, the lang attribute on <html>, and sitemaps.
Language vs. language-region
Use a bare language code (es) when the content suits all speakers of that language. Add a region (es-MX, es-AR) only when you genuinely have different content per market — otherwise you create needless duplication. When in doubt, start with the language-only code.
Common mistakes
- Inventing regions: the UK is
en-GB, noten-UK. - Using a country code as a language:
en-USis languageen, regionUS— notus. - Chinese script vs region: prefer
zh-Hans/zh-Hant(script) over country codes for simplified/traditional. - Forgetting x-default: add
x-defaultfor users who match none of your versions.
Put them to work
Grab the right code above, then build your tags with the hreflang generator and confirm a live page with the hreflang checker. Or let Gloty handle all of it automatically.
Gloty supports 125+ locales and emits the correct hreflang code for every one automatically — no lookups required.