Older Newer
Thu, 30 Dec 2021 06:27:40 . . . . SyneRyder [Improve description]


Changes by last author:

Added:
= getLocaleInfo =

== Syntax ==

:int getLocaleInfo (int locale, int type, char * buffer, int buffer_size)

== Arguments ==

:locale

::The locale identifier LCID of the locale or one of the constants LOCALE_SYSTEM_DEFAULT or LOCALE_USER_DEFAULT to specify either the system or user's default locale.

:type

::An identifier for the type of information required. See below for a list of constants for this argument.

:buffer

::Pointer to a character array (string) used to store the requested information.

:buffer_size

::The maximum size of the buffer, this value should be the size of the allocated string or 255 in case you're using one of the predeclared strings (str0 up to str9).

== Return ==

:A value indicating success (6) or a possible error which occurred.

::0 = Insufficient buffer

::5 = Invalid type

::6 = Success

::7 = Invalid locale identifier

== Description ==

:Retrieves information about a locale specified by identifier.

:Internally, this function is just a wrapper around the [GetLocaleInfo] Win32 API function.

== Type constants ==

The following is a list constants for all existing types of locale info.

||Constant||Description||

||LOCALE_ILANGUAGE||Language identifier indicating the language. The maximum number of characters allowed for this string is 5.||

||LOCALE_SLANGUAGE||Full localized name of the language.||

||LOCALE_SENGLANGUAGE||Full English name of the language from the International Organization for Standardization (ISO) Standard 639. This is always restricted to characters mappable into the ASCII 127-character subset.||

||LOCALE_SABBREVLANGNAME||Abbreviated name of the language, created by taking the 2-letter language abbreviation from the ISO Standard 639 and adding a third letter, as appropriate, to indicate the sublanguage.||

||LOCALE_SNATIVELANGNAME||Native name of the language.||

||LOCALE_ICOUNTRY||Country code, based on international phone codes, also referred to as IBM country codes. The maximum number of characters allowed for this string is 6.||

||LOCALE_SCOUNTRY||Full localized name of the country.||

||LOCALE_SENGCOUNTRY||Full English name of the country. This is always restricted to characters mappable into the ASCII 127-character subset.||

||LOCALE_SABBREVCTRYNAME||Abbreviated name of the country from the ISO Standard 3166.||

||LOCALE_SNATIVECTRYNAME||Native name of the country.||

||LOCALE_IDEFAULTLANGUAGE||Language identifier for the principal language spoken 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 5.||

||LOCALE_IDEFAULTCOUNTRY||Country code for the principal country 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 6.||

||LOCALE_IDEFAULTCODEPAGE||Original equipment manufacturer (OEM) code page associated with the country. The maximum number of characters allowed for this string is 6.||

||LOCALE_SLIST||Character(s) used to separate list items. For example, a comma is used in many locales.||

||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 2.||

||LOCALE_SDECIMAL||Character(s) used as the decimal separator.||

||LOCALE_STHOUSAND||Character(s) used to separate groups of digits to the left of the decimal.||

||LOCALE_SGROUPING||Sizes for each group of digits to the left of the decimal. An explicit size is needed for each group; sizes are separated by semicolons. If the last value is zero, the preceding value is repeated. To group thousands, specify 3;0, for example.||

||LOCALE_IDIGITS||Number of fractional digits. The maximum number of characters allowed for this string is 3.||

||LOCALE_ILZERO||Specifier for leading zeros in decimal fields. The maximum number of characters allowed for this string is 2. The specifier can be one of the following values: 0 = No leading zeros, 1 = Leading zeros||

||LOCALE_SNATIVEDIGITS||Native equivalents to ASCII 0 through 9.||

||LOCALE_SCURRENCY||String used as the local monetary symbol.||

||LOCALE_SINTLSYMBOL||Three characters of the international monetary symbol specified in ISO 4217, "Codes for the Representation of Currencies and Funds," followed by the character separating this string from the amount.||

||LOCALE_SMONDECIMALSEP||Character(s) used as the monetary decimal separator.||

||LOCALE_SMONTHOUSANDSEP||Character(s) used as the monetary separator between groups of digits to the left of the decimal.||

||LOCALE_SMONGROUPING||Sizes for each group of monetary digits to the left of the decimal. An explicit size is needed for each group; sizes are separated by semicolons. If the last value is zero, the preceding value is repeated. To group thousands, specify 3;0, for example.||

||LOCALE_ICURRDIGITS||Number of fractional digits for the local monetary format. The maximum number of characters allowed for this string is 3.||

||LOCALE_IINTLCURRDIGITS||Number of fractional digits for the international monetary format. The maximum number of characters allowed for this string is 3.||

||LOCALE_ICURRENCY||Positive currency mode. The maximum number of characters allowed for this string is 2. The mode can be one of the following values: 0 = Prefix, no separation, 1 = Suffix, no separation, 2 = Prefix, 1-char. separation, 3 = Suffix, 1-char. separation||

||LOCALE_INEGCURR||Negative currency mode. The maximum number of characters allowed for this string is 3. The mode can be one of the following values (right side is an example): 0 = ($1.1), 1 = -$1.1, 2 = $-1.1, 3 = $1.1-, 4 = (1.1$), 5 = -1.1$, 6 = 1.1-$, 7 = 1.1$-, 8 = -1.1 $ (space before $), 9 = -$ 1.1 (space after $), 10 = 1.1 $- (space before $), 11 = $ 1.1- (space after $), 12 = $ -1.1 (space after $), 13 = 1.1- $ (space before $), 14 = ($ 1.1) (space after $), 15 = (1.1 $) (space before $)||

||LOCALE_SDATE||Character(s) for the date separator.||

||LOCALE_STIME||Character(s) for the time separator.||

||LOCALE_STIMEFORMAT||Time formatting strings for this locale.||

||LOCALE_SSHORTDATE||Short date formatting string for this locale.||

||LOCALE_SLONGDATE||Long date formatting string for this locale.||

||LOCALE_IDATE||Short date format-ordering specifier. The maximum number of characters allowed for this string is 2. The specifier can be one of the following values: 0 = Month-Day-Year, 1 = Day-Month-Year, 2 = Year-Month-Day||

||LOCALE_ILDATE||Long date format-ordering specifier. The maximum number of characters allowed for this string is 2. The specifier can be one of the following values: 0 = Month-Day-Year, 1 = Day-Month-Year, 2 = Year-Month-Day||

||LOCALE_ITIME||Time format specifier. The maximum number of characters allowed for this string is 2. The specifier can be one of the following values: 0 = AM / PM 12-hour format, 1 = 24-hour format||

||LOCALE_ICENTURY||Specifier for full 4-digit century. The maximum number of characters allowed for this string is 2. The specifier can be one of the following values: 0 = Abbreviated 2-digit century, 1 = Full 4-digit century||

||LOCALE_ITLZERO||Specifier for leading zeros in time fields. The maximum number of characters allowed for this string is 2. The specifier can be one of the following values: 0 = No leading zeros for hours, 1 = Leading zeros for hours||

||LOCALE_IDAYLZERO||Specifier for leading zeros in day fields. The maximum number of characters allowed for this string is 2. The specifier can be one of the following values: 0 = No leading zeros for days, 1 = Leading zeros for days||

||LOCALE_IMONLZERO||Specifier for leading zeros in month fields. The maximum number of characters allowed for this string is 2. The specifier can be one of the following values: 0 = No leading zeros for months, 1 = Leading zeros for months||

||LOCALE_S1159||String for the AM designator.||

||LOCALE_S2359||String for the PM designator.||

||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_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_SMONTHNAME1||Native long name for January.||

||LOCALE_SMONTHNAME2||Native long name for February.||

||LOCALE_SMONTHNAME3||Native long name for March.||

||LOCALE_SMONTHNAME4||Native long name for April.||

||LOCALE_SMONTHNAME5||Native long name for May.||

||LOCALE_SMONTHNAME6||Native long name for June.||

||LOCALE_SMONTHNAME7||Native long name for July.||

||LOCALE_SMONTHNAME8||Native long name for August.||

||LOCALE_SMONTHNAME9||Native long name for September.||

||LOCALE_SMONTHNAME10||Native long name for October.||

||LOCALE_SMONTHNAME11||Native long name for November.||

||LOCALE_SMONTHNAME12||Native long name for December.||

||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_SPOSITIVESIGN||String value for the positive sign.||

||LOCALE_SNEGATIVESIGN||String value for the negative sign.||

||LOCALE_IPOSSIGNPOSN||Formatting index for positive values. The maximum number of characters allowed for this string is 2. The index can be one of the following values: 0 = Parentheses surround the amount and the monetary symbol, 1 = The sign string precedes the amount and the monetary symbol, 2 = The sign string succeeds the amount and the monetary symbol, 3 = The sign string immediately precedes the monetary symbol, 4 = The sign string immediately succeeds the monetary symbol.||

||LOCALE_INEGSIGNPOSN||Formatting index for negative values. This index uses the same values as LOCALE_IPOSSIGNPOSN. The maximum number of characters allowed for this string is 2.||

||LOCALE_IPOSSYMPRECEDES||Position of monetary symbol in a positive monetary value. This value is 1 if the monetary symbol precedes the positive amount, 0 if it follows it. The maximum number of characters allowed for this string is 2.||

||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 2.||

||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 2.||

||LOCALE_INEGSEPBYSPACE||Separation of monetary symbol in a negative 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 2.||

||LOCALE_NOUSEROVERRIDE||This constant may be OR'ed with any other LCTYPE constant in a call to the GetLocaleInfo function. This always causes the function to bypass any user overrides, and return the system default value for the other LCTYPE specified in the function call, based on the given LCID.||

== Comments ==

:Everyone can add his comments about his experiences with this function here. Tips for using it are welcome, too.