Language Codes

ISO 639-1 two-letter codes with Chinese and English names, for the HTML lang attribute, multilingual APIs and content negotiation.

ISO 639-1LanguageLanguage (EN)
zh中文Chinese
en英语English
es西班牙语Spanish
fr法语French
de德语German
ja日语Japanese
ko韩语Korean
ru俄语Russian
pt葡萄牙语Portuguese
it意大利语Italian
ar阿拉伯语Arabic
hi印地语Hindi
nl荷兰语Dutch
sv瑞典语Swedish
pl波兰语Polish
tr土耳其语Turkish
vi越南语Vietnamese
th泰语Thai

Frequently Asked Questions

What is the difference between ISO 639-1 and ISO 639-2?

639-1 uses two-letter codes (zh, en) covering the ~180+ most common languages, common in the HTML lang attribute and APIs. 639-2 uses three-letter codes (zho, eng), covers far more languages including endangered ones, used in libraries and cataloguing.

How is the Accept-Language request header used?

The client sends Accept-Language: zh-CN,zh;q=0.9,en;q=0.8, and the server picks the closest language, with q weights as priorities. Multilingual sites read it for content negotiation (with cookie/URL to let users override).

Are zh-CN and zh-TW ISO 639 codes?

No. zh is the ISO 639-1 language code; CN/TW are ISO 3166 region codes. "zh-CN"/"zh-TW" are language-region combinations distinguishing simplified/traditional and regional habits, but the region part comes from the country-code standard, not the language standard.

How do I express a dialect or regional variant (en-US, pt-BR)?

Use the "language-region" format: language from ISO 639-1, region from ISO 3166-1 Alpha-2. en-US = US English, pt-BR = Brazilian Portuguese. The region part is optional and used for date/currency/phrasing localization.