The MAKELANGID macro creates a language identifier from a primary language identifier and a sublanguage identifier.
WORD MAKELANGID(
| USHORT usPrimaryLanguage, | // primary language identifier |
| USHORT usSubLanguage | // sublanguage identifier |
| ); |
Parameters
usPrimaryLanguage
Specifies the primary language identifier. This parameter can be one of the following values:
| LANG_AFRIKAANS | LANG_ICELANDIC |
| LANG_ALBANIAN | LANG_INDONESIAN |
| LANG_ARABIC | LANG_ITALIAN |
| LANG_BASQUE | LANG_JAPANESE |
| LANG_BELARUSIAN | LANG_KOREAN |
| LANG_BULGARIAN | LANG_LATVIAN |
| LANG_CATALAN | LANG_LITHUANIAN |
| LANG_CHINESE | LANG_NEUTRAL |
| LANG_CROATIAN | LANG_NORWEGIAN |
| LANG_CZECH | LANG_POLISH |
| LANG_DANISH | LANG_PORTUGUESE |
| LANG_DUTCH | LANG_ROMANIAN |
| LANG_ENGLISH | LANG_RUSSIAN |
| LANG_ESTONIAN | LANG_SERBIAN |
| LANG_FAEROESE | LANG_SLOVAK |
| LANG_FARSI | LANG_SLOVENIAN |
| LANG_FINNISH | LANG_SPANISH |
| LANG_FRENCH | LANG_SWEDISH |
| LANG_GERMAN | LANG_THAI |
| LANG_GREEK | LANG_TURKISH |
| LANG_HEBREW | LANG_UKRANIAN |
| LANG_HUNGARIAN | LANG_VIETNAMESE |
For a user-defined language, usPrimaryLanguage can be a value in the range 0x0200 to 0x03FF. All other values are reserved for system use.
usSubLanguage
Specifies the sublanguage identifier. This parameter can be one of the following values:
| SUBLANG_ARABIC_SAUDI_ARABIA | SUBLANG_GERMAN |
| SUBLANG_ARABIC_IRAQ | SUBLANG_GERMAN_SWISS |
| SUBLANG_ARABIC_EGYPT | SUBLANG_GERMAN_AUSTRIAN |
| SUBLANG_ARABIC_LIBYA | SUBLANG_GERMAN_LUXEMBOURG |
| SUBLANG_ARABIC_ALGERIA | SUBLANG_GERMAN_LIECHTENSTEIN |
| SUBLANG_ARABIC_MOROCCO | SUBLANG_ITALIAN |
| SUBLANG_ARABIC_TUNISIA | SUBLANG_ITALIAN_SWISS |
| SUBLANG_ARABIC_OMAN | SUBLANG_KOREAN |
| SUBLANG_ARABIC_YEMEN | SUBLANG_KOREAN_JOHAB |
| SUBLANG_ARABIC_SYRIA | SUBLANG_NEUTRAL |
| SUBLANG_ARABIC_JORDAN | SUBLANG_NORWEGIAN_BOKMAL |
| SUBLANG_ARABIC_LEBANON | SUBLANG_NORWEGIAN_NYNORSK |
| SUBLANG_ARABIC_KUWAIT | SUBLANG_PORTUGUESE |
| SUBLANG_ARABIC_UAE | SUBLANG_PORTUGUESE_BRAZILIAN |
| SUBLANG_ARABIC_BAHRAIN | SUBLANG_SERBIAN_LATIN |
| SUBLANG_ARABIC_QATAR | SUBLANG_SERBIAN_CYRILLIC |
| SUBLANG_CHINESE_TRADITIONAL | SUBLANG_SPANISH |
| SUBLANG_CHINESE_SIMPLIFIED | SUBLANG_SPANISH_MEXICAN |
| SUBLANG_CHINESE_HONGKONG | SUBLANG_SPANISH_MODERN |
| SUBLANG_CHINESE_SINGAPORE | SUBLANG_SPANISH_GUATEMALA |
| SUBLANG_DEFAULT | SUBLANG_SPANISH_COSTA_RICA |
| SUBLANG_DUTCH | SUBLANG_SPANISH_PANAMA |
| SUBLANG_DUTCH_BELGIAN | SUBLANG_SPANISH_DOMINICAN_ REPUBLIC |
| SUBLANG_ENGLISH_US | SUBLANG_SPANISH_VENEZUELA |
| SUBLANG_ENGLISH_UK | SUBLANG_SPANISH_COLOMBIA |
| SUBLANG_ENGLISH_AUS | SUBLANG_SPANISH_PERU |
| SUBLANG_ENGLISH_CAN | SUBLANG_SPANISH_ARGENTINA |
| SUBLANG_ENGLISH_NZ | SUBLANG_SPANISH_ECUADOR |
| SUBLANG_ENGLISH_EIRE | SUBLANG_SPANISH_CHILE |
| SUBLANG_ENGLISH_SOUTH_ AFRICA |
SUBLANG_SPANISH_URUGUAY |
| SUBLANG_ENGLISH_JAMAICA | SUBLANG_SPANISH_PARAGUAY |
| SUBLANG_ENGLISH_CARIBBEAN | SUBLANG_SPANISH_BOLIVIA |
| SUBLANG_ENGLISH_BELIZE | SUBLANG_SPANISH_EL_SALVADOR |
| SUBLANG_ENGLISH_TRINIDAD | SUBLANG_SPANISH_HONDURAS |
| SUBLANG_FRENCH | SUBLANG_SPANISH_NICARAGUA |
| SUBLANG_FRENCH_BELGIAN | SUBLANG_SPANISH_PUERTO_RICO |
| SUBLANG_FRENCH_CANADIAN | SUBLANG_SWEDISH |
| SUBLANG_FRENCH_SWISS | SUBLANG_SWEDISH_FINLAND |
| SUBLANG_FRENCH_LUXEMBOURG | SUBLANG_SYS_DEFAULT |
For a user-defined sublanguage, usSubLanguage can be a value in the range 0x20 to 0x3F. All other values are reserved for system use.
Return Values
The return value is a language identifier.
Remarks
The following three combinations of usPrimaryLanguage and usSubLanguage have special meaning:
| Primary language ID | Sublanguage ID | Meaning |
| LANG_NEUTRAL | SUBLANG_NEUTRAL | Language neutral |
| LANG_NEUTRAL | SUBLANG_DEFAULT | User default language |
| LANG_NEUTRAL | SUBLANG_SYS_DEFAULT | System default language |
The MAKELANGID macro is defined as follows:
#define MAKELANGID(p, s) ((((WORD) (s)) << 10) | (WORD) (p))
See Also
EnumSystemLocales, LANGIDFROMLCID, MAKELCID, PRIMARYLANGID, SUBLANGID