Language Identifier Constants and Strings

Each language identifier is composed of a primary
language identifier indicating the language and a sublanguage identifier indicating the country/region. The
language identifier corresponds to a particular locale, for example, English (United States), represented as
"en-US". The language identifier is used as part of the
locale identifier.

A primary or sublanguage identifier can be user-defined or predefined. The table included in this topic
defines the predefined primary language identifiers with their valid sublanguage identifiers and shows the
locale identifiers in which they are used.

Note
If there is no sublanguage identifier to use with a primary language identifier, your application should use
SUBLANG_DEFAULT. It should use SUBLANG_NEUTRAL for
resources that are the same for all sublanguages of a primary language.

A user-defined primary language identifier has a value in the range 0x0200 to 0x03ff. All other values are
reserved for operating system use.

A user-defined sublanguage identifier has a value in the range 0x20 to 0x3f. All other values are reserved
for operating system use.

Language Identifier Notes

To set a neutral language, use LANG_CHINESE_SIMPLIFIED or
LANG_CHINESE_TRADITIONAL with
ConvertDefaultLocale.

Primary language identifiers for Bosnian, Croatian, and Serbian are numerically identical. For Bosnian, use
LANG_BOSNIAN with
SUBLANG_BOSNIAN_* sublanguage identifiers. For Croatian, use
LANG_CROATIAN with
SUBLANG_CROATIAN_* sublanguage identifiers. For Serbian, use
LANG_SERBIAN with
SUBLANG_SERBIAN_* sublanguage identifiers. To set a neutral
language, use LANG_BOSNIAN_NEUTRAL, LANG_CROATIAN, or
LANG_SERBIAN_NEUTRAL with
ConvertDefaultLocale.

Starting with Windows Vista:
SUBLANG_ENGLISH_IRELAND supersedes SUBLANG_ENGLISH_EIRE. The
numerical values of the constants are identical.

Always use the language identifier constant LANG_IRISH with
SUBLANG_IRISH_IRELAND.

Starting with Windows Vista:
SUBLANG_LITHUANIAN_LITHUANIA supersedes SUBLANG_LITHUANIAN.
The numerical values of the constants are identical.

The language identifiers for Farsi and Persian are numerically identical. The constant
LANG_FARSI is deprecated. Use LANG_PERSIAN instead.

Starting with Windows Vista:
SUBLANG_PORTUGUESE_PORTUGAL supersedes SUBLANG_PORTUGUESE.
The numerical values of the constants are identical.

Starting with Windows Vista:
SUBLANG_SWEDISH_SWEDEN supersedes SUBLANG_SWEDISH. The
numerical values of the constants are identical.

Starting with Windows 8: The language
identifiers for Yakut and Sakha are numerically identical. The constants LANG_YAKUT
and SUBLANG_YAKUT_RUSSIA are deprecated. Use LANG_SAKHA and
SUBLANG_SAKHA_RUSSIA instead.

The language identifiers for Bengali and Bangla are numerically identical. The constants LANG_BENGALI, SUBLANG_BENGALI_BANGLADESH, and SUBLANG_BENGALI_INDIA are deprecated. Use LANG_BANGLA, SUBLANG_BANGLA_BANGLADESH, and SUBLANG_BANGLA_INDIA instead.