Locale Information
An LCTYPE constant is a constant that specifies a particular piece of locale information. The values in the following list correspond to the names of these values in the configuration registry, under both the user's preferences (as values in the registry key HKEY_CURRENT_USER\Control Panel\International) and the system's installed languages (as files pointed to by registry keys, one key per language installed, under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\NLS). All values are null-terminated Unicode strings. If no maximum length is indicated, the strings may vary in length.
The following are locale, or LCTYPE, constants.
- LOCALE_FONTSIGNATURE
- Windows 95/98/Me, Windows NT 4.0 and later: A bit pattern used to determine the relationship between character coverage needed to support the locale and the font contents. For more information, see FONTSIGNATURE.
- LOCALE_ICALENDARTYPE
- Current calendar type. The maximum number of characters allowed for this string is two. This type can be one of the following values.
Value |
Meaning |
1 |
Gregorian (localized) |
2 |
Gregorian (English strings always) |
3 |
Year of the Emperor (Japan) |
4 |
Taiwan Calendar |
5 |
Tangun Era (Korea) |
6 |
Hijri (Arabic lunar) |
7 |
Thai |
8 |
Hebrew (Lunar) |
9 |
Gregorian Middle East French calendar |
10 |
Gregorian Arabic calendar |
11 |
Gregorian Transliterated English calendar |
12 |
Gregorian Transliterated French calendar |
- LOCALE_ICENTURY
- Specifier for a 2-digit or 4-digit century for the short date only. The maximum number of characters allowed for this string is two. The specifier can be one of the following values.
Value |
Meaning |
0 |
Abbreviated 2-digit century |
1 |
Full 4-digit century |
- LOCALE_ICOUNTRY
- Country/region code, based on international phone codes, also referred to as IBM country/region codes. The maximum number of characters allowed for this string is six.
- LOCALE_ICURRDIGITS
- Number of fractional digits for the local monetary format. The maximum number of characters allowed for this string is three.
- LOCALE_ICURRENCY
- Position of the monetary symbol in the positive currency mode. The maximum number of characters allowed for this string is two. The mode can be one of the following values.
Value |
Meaning |
0 |
Prefix, no separation, for example $1.1 |
1 |
Suffix, no separation, for example 1.1$ |
2 |
Prefix, 1-character separation, for example $ 1.1 |
3 |
Suffix, 1-character separation, for example 1.1 $ |
- LOCALE_IDATE
- Short date format-ordering specifier. The maximum number of characters allowed for this string is two. The specifier can be one of the following values.
Value |
Meaning |
0 |
Month-Day-Year |
1 |
Day-Month-Year |
2 |
Year-Month-Day |
- LOCALE_IDAYLZERO
- Specifier for leading zeros in day fields for the short date only. The maximum number of characters allowed for this string is two. The specifier can be one of the following values.
Value |
Meaning |
0 |
No leading zeros for days |
1 |
Leading zeros for days |
- LOCALE_IDEFAULTANSICODEPAGE
- American National Standards Institute (ANSI) code page associated with this locale. If the locale does not use an ANSI code page, the value is 0. The maximum number of characters allowed for this string is six. For a list of ANSI and other code pages, see Code Page Identifiers.
- LOCALE_IDEFAULTCODEPAGE
- Original equipment manufacturer (OEM) code page associated with the country/region. If the locale does not use an OEM code page, the value is 1.The maximum number of characters allowed for this string is six. For a list of OEM and other code pages, see Code Page Identifiers.
- LOCALE_IDEFAULTCOUNTRY
- Code for the principal country/region in this locale. This is provided so that partially specified locales can be completed with default values. The maximum number of characters allowed for this string is six.
- LOCALE_IDEFAULTEBCDICCODEPAGE
- Windows 2000/XP: Default EBCDIC code page associated with the locale. The maximum number of characters allowed for this string is six. For a list of EBCDIC and other code pages, see Code Page Identifiers.
- LOCALE_IDEFAULTLANGUAGE
- Language identifier for the principal language spoken in this locale. This is provided so partially specified locales can be completed with default values. The maximum number of characters allowed for this string is five.
- LOCALE_IDEFAULTMACCODEPAGE
- Default Macintosh code page associated with the locale. If the locale does not use a Macintosh code page, the value is 2. The maximum number of characters allowed for this string is six. For a list of Macintosh (MAC) and other code pages, see Code Page Identifiers.
- LOCALE_IDIGITS
- Number of fractional digits. The maximum number of characters allowed for this string is two.
- LOCALE_IDIGITSUBSTITUTION
- Windows 2000/XP: Determines the shape of the digits. For example, Arabic, Thai, and Indic digits have classical shapes different from western digits. The specifier can be one of these values.
Value |
Meaning |
0 |
Context—the shape depends on the previous text in the same output. |
1 |
None/Arabic—gives full Unicode compatibility. |
2 |
Native—national shapes determined by LOCALE_SNATIVEDIGITS. |
- LOCALE_IFIRSTDAYOFWEEK
- Specifier for the first day in a week. The maximum number of characters allowed for this string is two. The specifier can be one of these values.
Value |
Meaning |
0 |
LOCALE_SDAYNAME1 |
1 |
LOCALE_SDAYNAME2 |
2 |
LOCALE_SDAYNAME3 |
3 |
LOCALE_SDAYNAME4 |
4 |
LOCALE_SDAYNAME5 |
5 |
LOCALE_SDAYNAME6 |
6 |
LOCALE_SDAYNAME7 |
- LOCALE_IFIRSTWEEKOFYEAR
- Specifier for the first week of the year. The maximum number of characters allowed for this string is two. The specifier can be one of these values.
Value |
Meaning |
0 |
Week containing 1/1 is the first week of that year. |
1 |
First full week following 1/1 is the first week of that year. |
2 |
First week containing at least four days is the first week of that year. |
- LOCALE_IINTLCURRDIGITS
- Number of fractional digits for the international monetary format. The maximum number of characters allowed for this string is three.
- LOCALE_ILANGUAGE
- Language identifier. The maximum number of characters allowed for this string is five.
- LOCALE_ILDATE
- Long date format-ordering specifier. The maximum number of characters allowed for this string is two. The specifier can be one of the following values.
Value |
Meaning |
0 |
Month-Day-Year |
1 |
Day-Month-Year |
2 |
Year-Month-Day |
- LOCALE_ILZERO
- Specifier for leading zeros in decimal fields. The maximum number of characters allowed for this string is two. The specifier can be one of the following values.
Value |
Meaning |
0 |
No leading zeros |
1 |
Leading zeros |
- LOCALE_IMEASURE
- System of measurement. This value is 0 if the metric system (Système International d'Unités, or S.I.) is used, and 1 if the U.S. system is used. The maximum number of characters allowed for this string is two.
- LOCALE_IMONLZERO
- Specifier for leading zeros in month fields for the short date only. The maximum number of characters allowed for this string is two. The specifier can be one of the following values.
Value |
Meaning |
0 |
No leading zeros for months |
1 |
Leading zeros for months |
- LOCALE_INEGCURR
- Negative currency mode. The maximum number of characters allowed for this string is three. The mode can be one of the following values.
Mode |
Format for a negative currency |
0 |
Left parenthesis, monetary symbol, number, right parenthesis.
Example: ($1.1)
|
1 |
Negative sign, monetary symbol, number. Example: -$1.1 |
2 |
Monetary symbol, negative sign, number. Example: $-1.1 |
3 |
Monetary symbol, number, negative sign. Example: $1.1- |
4 |
Left parenthesis, number, monetary symbol, right parenthesis. Example: (1.1$) |
5 |
Negative sign, number, monetary symbol. Example: -1.1$ |
6 |
Number, negative sign, monetary symbol. Example: 1.1-$ |
7 |
Number, monetary symbol, negative sign. Example: 1.1$- |
8 |
Negative sign, number, space, monetary symbol (like #5, but with a space before the monetary symbol). Example: -1.1 $ |
9 |
Negative sign, monetary symbol, space, number (like #1, but with a space after the monetary symbol). Example: -$ 1.1 |
10 |
Number, space, monetary symbol, negative sign (like #7, but with a space before the monetary symbol). Example: 1.1 $- |
11 |
Monetary symbol, space, number, negative sign (like #3, but with a space after the monetary symbol). Example: $ 1.1- |
12 |
Monetary symbol, space, negative sign, number (like #2, but with a space after the monetary symbol). Example: $ -1.1 |
13 |
Number, negative sign, space, monetary symbol (like #6, but with a space before the monetary symbol). Example: 1.1- $ |
14 |
Left parenthesis, monetary symbol, space, number, right
parenthesis (like #0, but with a space after the monetary symbol). Example: ($ 1.1)
|
15 |
Left parenthesis, number, space, monetary symbol, right parenthesis (like #4, but with a space before the monetary symbol). Example: (1.1 $) |
- LOCALE_INEGNUMBER
- Negative number mode, that is, the format for a negative number. The maximum number of characters allowed for this string is two. The mode can be one of these values.
Value |
Format |
0 |
Left parenthesis, number, right parenthesis. Example: (1.1) |
1 |
Negative sign, number. Example: -1.1 |
2 |
Negative sign, space, number. Example: - 1.1 |
3 |
Number, negative sign. Example: 1.1- |
4 |
Number, space, negative sign. Example: 1.1 - |
- LOCALE_INEGSEPBYSPACE
- Separation of the negative sign in a monetary value. This value is 1 if the monetary symbol is separated by a space from the negative amount, 0 if it is not. The maximum number of characters allowed for this string is two.
- LOCALE_INEGSIGNPOSN
- Formatting index for the negative sign in currency values. The maximum number of characters allowed for this string is two. The index can be one of the following values.
Value |
Meaning |
0 |
Parentheses surround the amount and the monetary symbol. |
1 |
The sign precedes the number. |
2 |
The sign follows the number. |
3 |
The sign precedes the monetary symbol. |
4 |
The sign follows the monetary symbol. |
- LOCALE_INEGSYMPRECEDES
- Position of monetary symbol in a negative monetary value. This value is 1 if the monetary symbol precedes the negative amount, 0 if it follows it. The maximum number of characters allowed for this string is two.
- LOCALE_IOPTIONALCALENDAR
- An optional calendar type that is available for this LCID. This can be one of the following calendar type values. To get all of the optional calendars, use EnumCalendarInfo.
Value |
Meaning |
0 |
No additional types valid |
1 |
Gregorian (localized) |
2 |
Gregorian (English strings always) |
3 |
Year of the Emperor (Japan) |
4 |
Taiwan Calendar |
5 |
Tangun Era (Korea) |
6 |
Hijri (Arabic lunar) |
7 |
Thai |
8 |
Hebrew (Lunar) |
9 |
Gregorian Middle East French calendar |
10 |
Gregorian Arabic calendar |
11 |
Gregorian-transliterated English calendar |
12 |
Gregorian-transliterated French calendar |
- LOCALE_IPAPERSIZE
- Windows 2000/XP: Default paper size associated with the locale. The specifier can be one of the following values.
Value |
Meaning |
1 |
US Letter |
5 |
US legal |
8 |
A3 |
9 |
A4 |
- LOCALE_IPOSSEPBYSPACE
- Separation of monetary symbol in a positive monetary value. This value is 1 if the monetary symbol is separated by a space from a positive amount, 0 if it is not. The maximum number of characters allowed for this string is two.
- LOCALE_IPOSSIGNPOSN
- Formatting index for positive values. This index uses the same values as LOCALE_INEGSIGNPOSN, except that it does not use the zero index. The maximum number of characters allowed for this string is two.
- LOCALE_IPOSSYMPRECEDES
- Position of monetary symbol in a positive monetary value. This value is 1 if the monetary symbol precedes the positive amount, zero if it follows it. The maximum number of characters allowed for this string is two.
- LOCALE_ITIME
- Time format specifier. The maximum number of characters allowed for this string is two. The specifier can be one of the following values.
Value |
Meaning |
0 |
AM / PM 12-hour format. |
1 |
24-hour format. |
- LOCALE_ITIMEMARKPOSN
- Specifier indicating whether the time marker string (AM or PM) precedes or follows the time string. The registry value is iTimePrefix for compatibility with previous Asian versions of Windows. The specifier can take one of the following values.
Value |
Meaning |
0 |
Use as suffix. |
1 |
Use as prefix. |
- LOCALE_ITIMEMARKERUSE
- Specifier indicating whether the time marker should be used for 12-hour, 24-hour, or both types of clock settings. The specifier can take one of the following values.
Value |
Meaning |
0 |
Use with 12-hour clock. |
1 |
Use with 24-hour clock. |
2 |
Use with both 12-hour and 24-hour clocks. |
3 |
Never use. |
- LOCALE_ITLZERO
- Specifier for leading zeros in time fields. The maximum number of characters allowed for this string is two. The specifier can be one of the following values.
Value |
Meaning |
0 |
No leading zeros for hours. |
1 |
Leading zeros for hours. |
- LOCALE_NOUSEROVERRIDE
- This causes the function to bypass any user override and return the system default value for the other LCTYPE specified in the function call. This flag can be combined with other LOCALE values by using the binary-OR operator.
- LOCALE_RETURN_NUMBER
- Windows 98/Me, Windows NT 4.0 and later: This causes the function to return the value as a number instead of as a string. The buffer that receives the value must be at least the length of a DWORD. This flag can be combined with any specifier beginning with LOCALE_I by using the binary-OR operator.
- LOCALE_S1159
- String for the AM designator. The maximum number of characters allowed for this string is nine.
- LOCALE_S2359
- String for the PM designator. The maximum number of characters allowed for this string is nine.
- LOCALE_SABBREVCTRYNAME
- Abbreviated name of the country/region, mostly based on the ISO Standard 3166.
- LOCALE_SABBREVDAYNAME1
- Native abbreviated name for Monday.
- LOCALE_SABBREVDAYNAME2
- Native abbreviated name for Tuesday.
- LOCALE_SABBREVDAYNAME3
- Native abbreviated name for Wednesday.
- LOCALE_SABBREVDAYNAME4
- Native abbreviated name for Thursday.
- LOCALE_SABBREVDAYNAME5
- Native abbreviated name for Friday.
- LOCALE_SABBREVDAYNAME6
- Native abbreviated name for Saturday.
- LOCALE_SABBREVDAYNAME7
- Native abbreviated name for Sunday.
- LOCALE_SABBREVLANGNAME
- Abbreviated name of the language. In most cases it is created by taking the two-letter language abbreviation from the ISO Standard 639 and adding a third letter, as appropriate, to indicate the sublanguage.
- LOCALE_SABBREVMONTHNAME1
- Native abbreviated name for January.
- LOCALE_SABBREVMONTHNAME2
- Native abbreviated name for February.
- LOCALE_SABBREVMONTHNAME3
- Native abbreviated name for March.
- LOCALE_SABBREVMONTHNAME4
- Native abbreviated name for April.
- LOCALE_SABBREVMONTHNAME5
- Native abbreviated name for May.
- LOCALE_SABBREVMONTHNAME6
- Native abbreviated name for June.
- LOCALE_SABBREVMONTHNAME7
- Native abbreviated name for July.
- LOCALE_SABBREVMONTHNAME8
- Native abbreviated name for August.
- LOCALE_SABBREVMONTHNAME9
- Native abbreviated name for September.
- LOCALE_SABBREVMONTHNAME10
- Native abbreviated name for October.
- LOCALE_SABBREVMONTHNAME11
- Native abbreviated name for November.
- LOCALE_SABBREVMONTHNAME12
- Native abbreviated name for December.
- LOCALE_SABBREVMONTHNAME13
- Native abbreviated name for 13th month, if it exists.
- LOCALE_SCOUNTRY
- Full localized name of the country/region. This is based on the localization of the product, thus it changes for each localized version.
- LOCALE_SCURRENCY
- String used as the local monetary symbol. The maximum number of characters allowed for this string is six.
- LOCALE_SDATE
- Character(s) for the date separator. The maximum number of characters allowed for this string is four.
- LOCALE_SDAYNAME1
- Native long name for Monday.
- LOCALE_SDAYNAME2
- Native long name for Tuesday.
- LOCALE_SDAYNAME3
- Native long name for Wednesday.
- LOCALE_SDAYNAME4
- Native long name for Thursday.
- LOCALE_SDAYNAME5
- Native long name for Friday.
- LOCALE_SDAYNAME6
- Native long name for Saturday.
- LOCALE_SDAYNAME7
- Native long name for Sunday.
- LOCALE_SDECIMAL
- Character(s) used as the decimal separator. The maximum number of characters allowed for this string is 4.
- LOCALE_SENGCOUNTRY
- Full English name of the country/region. This is always restricted to characters that can be mapped into the ASCII 127-character subset.
- LOCALE_SENGCURRNAME
- Windows 98/Me, Windows 2000/XP: The full English name of the currency associated with the locale.
- LOCALE_SENGLANGUAGE
- Full English name of the language from the International Organization for Standardization (ISO) Standard 639. This is always restricted to characters that can be mapped into the ASCII 127-character subset. This is not always equivalent to the English version of LOCALE_SLANGUAGE.
- LOCALE_SGROUPING
- Sizes for each group of digits to the left of the decimal. An explicit size is needed for each group, and sizes are separated by semicolons. If the last value is zero, the preceding value is repeated. For example, to group thousands, specify 3;0. Indic locales group the first thousand and then group by hundreds—for example 12,34,56,789, which is represented by 3;2;0.
- LOCALE_SINTLSYMBOL
- Three characters of the international monetary symbol specified in ISO 4217 followed by the character separating this string from the amount.
- LOCALE_SISO3166CTRYNAME
- Windows 98/Me, Windows NT 4.0 and later: Country/region name, based on ISO Standard 3166.
- LOCALE_SISO639LANGNAME
- Windows 98/Me, Windows NT 4.0 and later: The abbreviated name of the language based entirely on the ISO Standard 639 values.
- LOCALE_SLANGUAGE
- Full localized name of the language. This name is based on the localization of the product, thus the value changes for each localized version.
- LOCALE_SLIST
- Character(s) used to separate list items. For example, a comma is used in many locales. The maximum number of characters allowed for this string is 4.
- LOCALE_SLONGDATE
- Long date formatting string for this locale. The string can consist of a combination of day, month, and year format pictures defined in the Day, Month, Year, and Era Format Pictures table in National Language Support Constants and any string of characters enclosed in single quotes. Characters in single quotes remain as specified. The maximum number of characters allowed for this string is 80.
- LOCALE_SMONDECIMALSEP
- Character(s) used as the monetary decimal separator. The maximum number of characters allowed for this string is four.
- LOCALE_SMONGROUPING
- Sizes for each group of monetary digits to the left of the decimal. An explicit size is needed for each group, and sizes are separated by semicolons. If the last value is zero, the preceding value is repeated. For example, to group thousands, specify 3;0. Indic languages group the first thousand and then group by hundreds—for example, 12,34,56,789, which is represented by 3;2;0. The maximum number of characters allowed for this string is four.
- LOCALE_SMONTHNAME1
- Native long name for January. Calling the GetLocaleInfo function with a LOCALE_SMONTHNAMExx flag returns the stand-alone, or nominative, form of the month name. To get the genitive form of the month name, call GetDateFormat with a date picture of ddMMMM and remove the two digits from the beginning of the returned string.
- LOCALE_SMONTHNAME2
- Native long name for February. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME3
- Native long name for March. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME4
- Native long name for April. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME5
- Native long name for May. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME6
- Native long name for June. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME7
- Native long name for July. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME8
- Native long name for August. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME9
- Native long name for September. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME10
- Native long name for October. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME11
- Native long name for November. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME12
- Native long name for December. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHNAME13
- Native name for 13th month, if it exists. See note for LOCALE_SMONTHNAME1.
- LOCALE_SMONTHOUSANDSEP
- Character(s) used as the monetary separator between groups of digits to the left of the decimal. The maximum number of characters allowed for this string is four.
- LOCALE_SNATIVECTRYNAME
- Native name of the country/region.
- LOCALE_SNATIVECURRNAME
- Windows 98/Me, Windows 2000/XP: The native name of the currency associated with the locale.
- LOCALE_SNATIVEDIGITS
- Native equivalents to ASCII zero through 9.
- LOCALE_SNATIVELANGNAME
- Native name of the language.
- LOCALE_SNEGATIVESIGN
- String value for the negative sign. The maximum number of characters allowed for this string is five.
- LOCALE_SPOSITIVESIGN
- String value for the positive sign. The maximum number of characters allowed for this string is five.
- LOCALE_SSHORTDATE
- Short date formatting string for this locale. The string can consist of a combination of day, month, and year format pictures defined in Day, Month, Year, and Era Format Pictures table in National Language Support Constants. The maximum number of characters allowed for this string is 80.
- LOCALE_SSORTNAME
- Windows 98/Me, Windows 2000/XP: The full localized name of the sort for the specified locale identifier, dependent on the language of the shell.
- LOCALE_STHOUSAND
- Character(s) used to separate groups of digits to the left of the decimal. The maximum number of characters allowed for this string is four.
- LOCALE_STIME
- Character(s) for the time separator. The maximum number of characters allowed for this string is four.
- LOCALE_STIMEFORMAT
- Time formatting strings for this locale. The string can consist of a combination of the hour, minute, and second format pictures defined in the Hour, Minute, and Second Format Pictures table in National Language Support Constants. The maximum number of characters allowed for this string is 80.
- LOCALE_SYEARMONTH
- Windows 98/Me, Windows 2000/XP: The Year/Month formatting string for the locale. This string shows the proper format for a date string that contains only the year and the month.
- LOCALE_USE_CP_ACP
- Uses the system ANSI code page (ACP) for string translation instead of the locale's code page. This is used in the GetLocaleInfo function. This flag can be combined with any other LCTYPE by using the binary-OR operator.
Many of the locale types previously listed are closely related, such that changing one affects the value of the others. The following table shows the relationships between these types.
Constant |
Affects |
LOCALE_ICURRENCY |
LOCALE_IPOSSEPBYSPACE, LOCALE_IPOSSYMPRECEDES |
LOCALE_INEGCURR |
LOCALE_SNEGATIVE, LOCALE_SPOSITIVE, LOCALE_INEGSEPBYSPACE, LOCALE_INEGSYMPRECEDES, LOCALE_INEGSIGNPOSN, LOCALE_IPOSSIGNPOSN |
LOCALE_SSHORTDATE |
LOCALE_SDATE, LOCALE_IDATE |
LOCALE_SLONGDATE |
LOCALE_ILDATE |
LOCALE_STIMEFORMAT |
LOCALE_STIME, LOCALE_ITIME, LOCALE_ITLZERO, LOCALE_ITIMEMARKPOSN |
|