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-1 | Language | Language (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.