Language ID
Language ID and Code Pages
- Language ID and Code Page are different concept.
- The language determines the text and data formatting conventions.
- A code page is a character set, which can include numbers, punctuation marks, and other glyphs.
- Different languages might use different code pages.
- Different languages can use the same code pages: For example, the ANSI code page 1252 is used for English and most European languages.
Language Identifiers
A language identifier is constructed using the MAKELANGID macro.
+-------------------------+-------------------------+
| SubLanguage ID | Primary Language ID |
+-------------------------+-------------------------+
15 10 9 0 bit
+-------------------------+-------------------------+
Language ID in resource file
LANGUAGE Primary Language ID, SubLanguage ID
Sample:
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
Language ID Constants
$(WindowsSdkDir)Include\WinNT.h
Common Use Language ID
ID | Dec. | Primary language | Prim. lang. symbol | Sublanguage | Sublang. symbol | Code Page |
---|---|---|---|---|---|---|
0x0804 | 2052 | Chinese (zh) | LANG_CHINESE_SIMPLIFIED | Simplified (Hans) | SUBLANG_CHINESE_SIMPLIFIED | 936 |
0x0404 | 1028 | Chinese (zh) | LANG_CHINESE_TRADITIONAL | Traditional (Hant) | SUBLANG_CHINESE_TRADITIONAL | 950 |
0x0405 | 1029 | Czech (cs) | LANG_CZECH | Czech Republic (CZ) | SUBLANG_CZECH_CZECH_REPUBLIC | 1250 |
0x0406 | 1030 | Danish (da) | LANG_DANISH | Denmark (DK) | SUBLANG_DANISH_DENMARK | 1252 |
0x0413 | 1043 | Dutch (nl) | LANG_DUTCH | Netherlands (NL) | SUBLANG_DUTCH | 1252 |
0x0409 | 1033 | English (en) | LANG_ENGLISH | United States (US) | SUBLANG_ENGLISH_US | 1252 |
0x040B | 1035 | Finnish (fi) | LANG_FINNISH | Finland (FI) | SUBLANG_FINNISH_FINLAND | 1252 |
0x040c | 1036 | French (fr) | LANG_FRENCH | France (FR) | SUBLANG_FRENCH | 1252 |
0x0407 | 1031 | German (de) | LANG_GERMAN | Germany (DE) | SUBLANG_GERMAN | 1252 |
0x0408 | 1032 | Greek (el) | LANG_GREEK | Greece (GR) | SUBLANG_GREEK_GREECE | 1253 |
0x040E | 1038 | Hungarian (hu) | LANG_HUNGARIAN | Hungary (HU) | SUBLANG_HUNGARIAN_HUNGARY | 1250 |
0x040D | 1037 | Hebrew (he) | LANG_HEBREW | Israel (IL) | SUBLANG_HEBREW_ISRAEL | 1255 |
0x0410 | 1040 | Italian (it) | LANG_ITALIAN | Italy (IT) | SUBLANG_ITALIAN | 1252 |
0x0411 | 1041 | Japanese (ja) | LANG_JAPANESE | Japan (JP) | SUBLANG_JAPANESE_JAPAN | 932 |
0x0412 | 1042 | Korean (ko) | LANG_KOREAN | Korea (KR) | SUBLANG_KOREAN | 949 |
0x0414 | 1044 | Norwegian (no) | LANG_NORWEGIAN | Bokmål, Norway (NO) | SUBLANG_NORWEGIAN_BOKMAL | 1252 |
0x0415 | 1045 | Polish (pl) | LANG_POLISH | Poland (PL) | SUBLANG_POLISH_POLAND | 1250 |
0x0416 | 1046 | Portuguese (pt) | LANG_PORTUGUESE | Brazil (BR) | SUBLANG_PORTUGUESE_BRAZILIAN | 1252 |
0x0816 | 2070 | Portuguese (pt) | LANG_PORTUGUESE | Portugal (PT) | SUBLANG_PORTUGUESE | 1252 |
0x0419 | 1049 | Russian (ru) | LANG_RUSSIAN | Russia (RU) | SUBLANG_RUSSIAN_RUSSIA | 1251 |
0x040A | 1034 | Spanish (es) | LANG_SPANISH | Spain, Traditional Sort (ES) | SUBLANG_SPANISH | 1252 |
0x041D | 1053 | Swedish (sv) | LANG_SWEDISH | Sweden (SE) | SUBLANG_SWEDISH | 1252 |
0x041F | 1055 | Turkish (tr) | LANG_TURKISH | Turkey (TR) | SUBLANG_TURKISH_TURKEY | 1254 |