HTML Lang Codes Table

–click a row to copy the lang attribute
HTML attributeCodeLanguage
lang="ab"abAbkhaz
lang="af"afAfrikaans
lang="am"amAmharic
lang="ar"arArabic
lang="az"azAzerbaijani
lang="be"beBelarusian
lang="bg"bgBulgarian
lang="bn"bnBengali
lang="bs"bsBosnian
lang="ca"caCatalan
lang="cs"csCzech
lang="da"daDanish
lang="de"deGerman
lang="el"elGreek
lang="en"enEnglish
lang="es"esSpanish
lang="et"etEstonian
lang="fa"faPersian
lang="fi"fiFinnish
lang="fil"filFilipino
lang="fr"frFrench
lang="ga"gaIrish
lang="he"heHebrew
lang="hi"hiHindi
lang="hr"hrCroatian
lang="hu"huHungarian
lang="hy"hyArmenian
lang="id"idIndonesian
lang="is"isIcelandic
lang="it"itItalian
lang="ja"jaJapanese
lang="ka"kaGeorgian
lang="kk"kkKazakh
lang="km"kmKhmer
lang="ko"koKorean
lang="ky"kyKyrgyz
lang="lo"loLao
lang="lt"ltLithuanian
lang="lv"lvLatvian
lang="mk"mkMacedonian
lang="ml"mlMalayalam
lang="mn"mnMongolian
lang="mr"mrMarathi
lang="ms"msMalay
lang="my"myBurmese
lang="ne"neNepali
lang="nl"nlDutch
lang="no"noNorwegian
lang="pa"paPunjabi
lang="pl"plPolish
lang="pt"ptPortuguese
lang="ro"roRomanian
lang="ru"ruRussian
lang="si"siSinhala
lang="sk"skSlovak
lang="sl"slSlovenian
lang="sq"sqAlbanian
lang="sr"srSerbian
lang="sv"svSwedish
lang="sw"swSwahili
lang="ta"taTamil
lang="te"teTelugu
lang="th"thThai
lang="tr"trTurkish
lang="uk"ukUkrainian
lang="ur"urUrdu
lang="uz"uzUzbek
lang="vi"viVietnamese
lang="zh"zhChinese
The language subtags are the ISO 639-1 two-letter codes that open every valid lang attribute; the tag structure and region-suffix rules follow W3C's guide to choosing language tags. The attribute is not decoration: screen readers switch pronunciation engines on it, spellcheckers pick dictionaries from it, and search engines use it as a hint - a page declared lang="en" full of Portuguese text reads badly for the users who need it most. Region subtags refine: en-US vs en-GB changes spelling and date formats, zh-Hans vs zh-Hant splits simplified and traditional Chinese. Bottom line: set lang on the html element, override inline where a paragraph switches languages, and the table above is the whole legal vocabulary of openers. Text-tool neighbors: Unicode character inspector, ASCII table, URL parser, HTTP methods table.

The lang attribute is the most-read two letters on your page: screen readers switch voices on it, spellcheckers load dictionaries from it, and search engines treat it as a language hint. This table lists the ISO 639-1 subtags for 69 major languages, ready to copy as a complete lang attribute.

The tag grammar comes from W3Cโ€™s internationalization guides: a language subtag, optionally a region suffix (en-US, pt-BR, zh-Hans), set once on the html element and overridden inline where the text switches language.

How to use

  1. Type a code or a language name to filter; click any row to copy the full lang attribute quoted and ready.
  2. Set the page-level language once on html, then wrap any paragraph that switches languages in its own lang attribute.
  3. Region suffixes change spelling and formats: en-GB keeps British spelling, fr-CA switches date order - use them when the difference matters to readers.

Frequently asked questions

Why does the lang attribute matter for accessibility?

Screen readers pick pronunciation engines per lang - an undeclared page makes a Portuguese paragraph read as garbled English phonemes. WCAG success criterion 3.1.1 requires a page-level language, and 3.1.2 requires marking the switches.

What is the difference between zh and zh-Hans?

zh says Chinese without a script; zh-Hans specifies Simplified (mainland) and zh-Hant Traditional (Taiwan, Hong Kong). The script subtag matters more than the region here - the same lang value can render two visually different writing systems.

Can I use lang on a span for one word?

Yes - and you should: wrapping a foreign word or quote in a span with its own lang attribute keeps screen readers, hyphenation and styling correct for that run of text. The attribute is valid on any HTML element.

Where do the two-letter codes come from?

ISO 639-1, maintained by the Library of Congress as the registration authority for the IANA language subtag registry the web actually uses. New codes appear rarely - the list is one of the most stable vocabularies on the web.

Related tools