Как получить информацию о локальных
настройках системы
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
}
|