The code is as follows:
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;
Results := pcLCA;
end;
procedure TForm1.Button1Click(Sender: TObject);
Begin
ShowMessage(GetLocaleInformation(LOCALE_SENGLANGUAGE));
end;
The parameter "Flag" can take the following values:
LOCALE_NOUSEROVERRIDE { do not use user overrides }
LOCALE_USE_CP_ACP { use the system ACP }
LOCALE_ILANGUAGE { Language Code}
LOCALE_SLANGUAGE { local language name}
LOCALE_SENGLANGUAGE { English name of the language}
LOCALE_SABBREVLANGNAME { Language name abbreviation}
LOCALE_SNATIVELANGNAME { local language name}
LOCALE_ICOUNTRY { Country Code}
LOCALE_SCOUNTRY { Country name}
LOCALE_SENGCOUNTRY { country's English name}
LOCALE_SABBREVCTRYNAME { country name abbreviation}
LOCALE_SNATIVECTRYNAME { Country name}
LOCALE_IDEFAULTLANGUAGE { default language code}
LOCALE_IDEFAULTCOUNTRY { default country code}
LOCALE_IDEFAULTCODEPAGE { default oem code page}
LOCALE_IDEFAULTANSICODEPAGE { default ansi code page}
LOCALE_IDEFAULTMACCODEPAGE { default mac page}
LOCALE_SLIST { List item splitter}
LOCALE_IMEASURE { unit of measurement 0 = meter, 1 = english}
LOCALE_SDECIMAL { decimal point symbol}
LOCALE_STHOUSAND { Thousand Divider}
LOCALE_SGROUPING { digit grouping }
LOCALE_IDIGITS { number of fractional digits }
LOCALE_ILZERO { leading zeros for decimal }
LOCALE_INEGNUMBER {Negative mode}
LOCALE_SNATIVEDIGITS { native ascii 0-9 }
LOCALE_SCURRENCY { local currency symbol}
LOCALE_SINTLSYMBOL { International currency symbol}
LOCALE_SMONDECIMALSEP { currency decimal splitter}
LOCALE_SMONTHOUSANDSEP { Currency Thousand Divider}
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 splitter}
LOCALE_STIME { time splitter}
LOCALE_SSHORTDATE { short date string}
LOCALE_SLONGDATE { long date 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 designer }
LOCALE_S2359 { PM designer }
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 { Monday abbreviation}
LOCALE_SABBREVDAYNAME2 { Tuesday abbreviation}
LOCALE_SABBREVDAYNAME3 { Wednesday abbreviation}
LOCALE_SABBREVDAYNAME4 { Thursday abbreviation}
LOCALE_SABBREVDAYNAME5 { Friday abbreviation}
LOCALE_SABBREVDAYNAME6 { Saturday abbreviation}
LOCALE_SABBREVDAYNAME7 { Sunday's abbreviation}
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 { January abbreviation}
LOCALE_SABBREVMONTHNAME2 { February abbreviation}
LOCALE_SABBREVMONTHNAME3 { March abbreviation}
LOCALE_SABBREVMONTHNAME4 { abbreviation of April}
LOCALE_SABBREVMONTHNAME5 { May abbreviation}
LOCALE_SABBREVMONTHNAME6 { June abbreviation}
LOCALE_SABBREVMONTHNAME7 { abbreviation of July}
LOCALE_SABBREVMONTHNAME8 { abbreviation of August}
LOCALE_SABBREVMONTHNAME9 { September abbreviation}
LOCALE_SABBREVMONTHNAME10 { October abbreviation}
LOCALE_SABBREVMONTHNAME11 { abbreviation of November}
LOCALE_SABBREVMONTHNAME12 { December abbreviation}
LOCALE_SABBREVMONTHNAME13 { Abbreviation of Thirteen (if any) }
LOCALE_SPOSITIVESIGN { positive sign}
LOCALE_SNEGATIVESIGN { minus sign}
LOCALE_IPOSSIGNPOSN { positive position}
LOCALE_INEGSIGNPOSN { minus 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 abbreviation language name}
LOCALE_SISO3166CTRYNAME { ISO abbreviation country name}