Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как получить информацию о локальных настройках системы?

01.01.2007

Delphi имеет функцию GetLocaleInfo, которая позволяет получать различную информацию о локальных настройках, таких как системный язык, символ валюты, количество десятичных знаков и т.д.

Далее приведена функция, которая возвращает значение в зависимости от параметра "flag":

........
function TForm1.GetLocaleInformation(Flag: Integer): String;
var
  pcLCA:    Array[0..20] of Char;
begin
  if( GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,Flag,pcLCA,19) <= 0 ) then begin
    pcLCA[0] := #0;
  end;
  Result := pcLCA;
end;
........

Пример использования функции:

........
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(GetLocaleInformation(LOCALE_SENGLANGUAGE));
end;
........

"Flag" может содержать следующее значение (если посмотреть в Windows.pas):

Значение Описание
LOCALE_NOUSEROVERRIDE do not use user overrides
LOCALE_USE_CP_ACP use the system ACP
LOCALE_ILANGUAGE language id
LOCALE_SLANGUAGE localized name of language
LOCALE_SENGLANGUAGE English name of language
LOCALE_SABBREVLANGNAME abbreviated language name
LOCALE_SNATIVELANGNAME native name of language
LOCALE_ICOUNTRY country code
LOCALE_SCOUNTRY localized name of country
LOCALE_SENGCOUNTRY English name of country
LOCALE_SABBREVCTRYNAME abbreviated country name
LOCALE_SNATIVECTRYNAME native name of country
LOCALE_IDEFAULTLANGUAGE default language id
LOCALE_IDEFAULTCOUNTRY default country code
LOCALE_IDEFAULTCODEPAGE default oem code page
LOCALE_IDEFAULTANSICODEPAGE default ansi code page
LOCALE_IDEFAULTMACCODEPAGE default mac code page
LOCALE_SLIST list item separator
LOCALE_IMEASURE 0 = metric, 1 = US
LOCALE_SDECIMAL decimal separator
LOCALE_STHOUSAND thousand separator
LOCALE_SGROUPING digit grouping
LOCALE_IDIGITS number of fractional digits
LOCALE_ILZERO leading zeros for decimal
LOCALE_INEGNUMBER negative number mode
LOCALE_SNATIVEDIGITS native ascii 0-9
LOCALE_SCURRENCY local monetary symbol
LOCALE_SINTLSYMBOL intl monetary symbol
LOCALE_SMONDECIMALSEP monetary decimal separator
LOCALE_SMONTHOUSANDSEP monetary thousand separator
LOCALE_SMONGROUPING monetary grouping
LOCALE_ICURRDIGITS # local monetary digits
LOCALE_IINTLCURRDIGITS # intl monetary digits
LOCALE_ICURRENCY positive currency mode
LOCALE_INEGCURR negative currency mode
LOCALE_SDATE date separator
LOCALE_STIME time separator
LOCALE_SSHORTDATE short date format string
LOCALE_SLONGDATE long date format string
LOCALE_STIMEFORMAT time format string
LOCALE_IDATE short date format ordering
LOCALE_ILDATE long date format ordering
LOCALE_ITIME time format specifier
LOCALE_ITIMEMARKPOSN time marker position
LOCALE_ICENTURY century format specifier (short date)
LOCALE_ITLZERO leading zeros in time field
LOCALE_IDAYLZERO leading zeros in day field (short date)
LOCALE_IMONLZERO leading zeros in month field (short date)
LOCALE_S1159 AM designator
LOCALE_S2359 PM designator
LOCALE_ICALENDARTYPE type of calendar specifier
LOCALE_IOPTIONALCALENDAR additional calendar types specifier
LOCALE_IFIRSTDAYOFWEEK first day of week specifier
LOCALE_IFIRSTWEEKOFYEAR first week of year specifier
LOCALE_SDAYNAME1 long name for Monday
LOCALE_SDAYNAME2 long name for Tuesday
LOCALE_SDAYNAME3 long name for Wednesday
LOCALE_SDAYNAME4 long name for Thursday
LOCALE_SDAYNAME5 long name for Friday
LOCALE_SDAYNAME6 long name for Saturday
LOCALE_SDAYNAME7 long name for Sunday
LOCALE_SABBREVDAYNAME1 abbreviated name for Monday
LOCALE_SABBREVDAYNAME2 abbreviated name for Tuesday
LOCALE_SABBREVDAYNAME3 abbreviated name for Wednesday
LOCALE_SABBREVDAYNAME4 abbreviated name for Thursday
LOCALE_SABBREVDAYNAME5 abbreviated name for Friday
LOCALE_SABBREVDAYNAME6 abbreviated name for Saturday
LOCALE_SABBREVDAYNAME7 abbreviated name for Sunday
LOCALE_SMONTHNAME1 long name for January
LOCALE_SMONTHNAME2 long name for February
LOCALE_SMONTHNAME3 long name for March
LOCALE_SMONTHNAME4 long name for April
LOCALE_SMONTHNAME5 long name for May
LOCALE_SMONTHNAME6 long name for June
LOCALE_SMONTHNAME7 long name for July
LOCALE_SMONTHNAME8 long name for August
LOCALE_SMONTHNAME9 long name for September
LOCALE_SMONTHNAME10 long name for October
LOCALE_SMONTHNAME11 long name for November
LOCALE_SMONTHNAME12 long name for December
LOCALE_SMONTHNAME13 long name for 13th month (if exists)
LOCALE_SABBREVMONTHNAME1 abbreviated name for January
LOCALE_SABBREVMONTHNAME2 abbreviated name for February
LOCALE_SABBREVMONTHNAME3 abbreviated name for March
LOCALE_SABBREVMONTHNAME4 abbreviated name for April
LOCALE_SABBREVMONTHNAME5 abbreviated name for May
LOCALE_SABBREVMONTHNAME6 abbreviated name for June
LOCALE_SABBREVMONTHNAME7 abbreviated name for July
LOCALE_SABBREVMONTHNAME8 abbreviated name for August
LOCALE_SABBREVMONTHNAME9 abbreviated name for September
LOCALE_SABBREVMONTHNAME10 abbreviated name for October
LOCALE_SABBREVMONTHNAME11 abbreviated name for November
LOCALE_SABBREVMONTHNAME12 abbreviated name for December
LOCALE_SABBREVMONTHNAME13 abbreviated name for 13th month (if exists)
LOCALE_SPOSITIVESIGN positive sign
LOCALE_SNEGATIVESIGN negative sign
LOCALE_IPOSSIGNPOSN positive sign position
LOCALE_INEGSIGNPOSN negative sign position
LOCALE_IPOSSYMPRECEDES mon sym precedes pos amt
LOCALE_IPOSSEPBYSPACE mon sym sep by space from pos amt
LOCALE_INEGSYMPRECEDES mon sym precedes neg amt
LOCALE_INEGSEPBYSPACE mon sym sep by space from neg amt
LOCALE_FONTSIGNATURE font signature
LOCALE_SISO639LANGNAME ISO abbreviated language name
LOCALE_SISO3166CTRYNAME ISO abbreviated country name
Previous page:
Какой язык на данный момент на клавиатуре?
Top:
DRKB
Next page:
Список установленных раскладок клавиатуры