LangID:integer; Langid:=GetSystemDefaultLangID; if LangID= ((SUBLANG_CHINESE_SIMPLIFIED shl 10) or LANG_CHINESE) then //简体中文-------------------------------------------------------------------------------- Var LCID: Integer; BLanguageID : array[0..3] of char; Begin // System language LCID := GetSystemDefaultLCID; GetLocaleInfo(LCID,LOCALE_SABBREVLANGNAME,BLanguageID,3); // User language LCID := GetUserDefaultLCID; GetLocaleInfo(LCID,LOCALE_SABBREVLANGNAME,BLanguageID,3); end; -------------------------------------------------------------------------------- function WhichLanguage:string; var ID:LangID; Language: array [0..100] of char; begin ID:=GetSystemDefaultLangID; VerLanguageName(ID,Language,100); Result:=String(Language); end;Sample call:procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text:=WhichLanguage; end;
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"可以取下列值: LOCALE_NOUSEROVERRIDE { do not use user overrides } LOCALE_USE_CP_ACP { use the system ACP } LOCALE_ILANGUAGE { 语言代号 } LOCALE_SLANGUAGE { 本地语言名称 } LOCALE_SENGLANGUAGE { 语言的英语名 } LOCALE_SABBREVLANGNAME { 语言名称缩写 } LOCALE_SNATIVELANGNAME { 本地语言名称 } LOCALE_ICOUNTRY { 国家代号 } LOCALE_SCOUNTRY { 国家名 } LOCALE_SENGCOUNTRY { 国家的英语名称 } LOCALE_SABBREVCTRYNAME { 国家名缩写 } LOCALE_SNATIVECTRYNAME { 国家名 } LOCALE_IDEFAULTLANGUAGE { 缺省语言代号 } LOCALE_IDEFAULTCOUNTRY { 缺省国家代码 } LOCALE_IDEFAULTCODEPAGE { 缺省oem代码页 } LOCALE_IDEFAULTANSICODEPAGE { 缺省ansi代码页 } LOCALE_IDEFAULTMACCODEPAGE { 缺省mac页 } LOCALE_SLIST { 列表项分割符 } LOCALE_IMEASURE { 测量单位0 = 米制, 1 = 英制 } LOCALE_SDECIMAL { 小数点符号 } LOCALE_STHOUSAND { 千位分割符 } LOCALE_SGROUPING { digit grouping } LOCALE_IDIGITS { number of fractional digits } LOCALE_ILZERO { leading zeros for decimal } LOCALE_INEGNUMBER { 负数模式 } LOCALE_SNATIVEDIGITS { native ascii 0-9 } LOCALE_SCURRENCY { 本地货币符号 } LOCALE_SINTLSYMBOL { 国际货币符号 } LOCALE_SMONDECIMALSEP { 货币小数点分割符 } LOCALE_SMONTHOUSANDSEP { 货币千位分割符 } 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 { 日期分割符 } LOCALE_STIME { 时间分割符 } LOCALE_SSHORTDATE { 短日期字符串 } LOCALE_SLONGDATE { 长日期字符串 } 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 er 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 { 星期一的缩写 } LOCALE_SABBREVDAYNAME2 { 星期二的缩写 } LOCALE_SABBREVDAYNAME3 { 星期三的缩写 } LOCALE_SABBREVDAYNAME4 { 星期四的缩写 } LOCALE_SABBREVDAYNAME5 { 星期五的缩写 } LOCALE_SABBREVDAYNAME6 { 星期六的缩写 } LOCALE_SABBREVDAYNAME7 { 星期天的缩写 } 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 { 一月的缩写 } LOCALE_SABBREVMONTHNAME2 { 二月的缩写 } LOCALE_SABBREVMONTHNAME3 { 三月的缩写 } LOCALE_SABBREVMONTHNAME4 { 四月的缩写 } LOCALE_SABBREVMONTHNAME5 { 五月的缩写 } LOCALE_SABBREVMONTHNAME6 { 六月的缩写 } LOCALE_SABBREVMONTHNAME7 { 七月的缩写 } LOCALE_SABBREVMONTHNAME8 { 八月的缩写 } LOCALE_SABBREVMONTHNAME9 { 九月的缩写 } LOCALE_SABBREVMONTHNAME10 { 十月的缩写 } LOCALE_SABBREVMONTHNAME11 { 十一月的缩写 } LOCALE_SABBREVMONTHNAME12 { 十二月的缩写 } LOCALE_SABBREVMONTHNAME13 { 十三月的缩写(如果有的话) } LOCALE_SPOSITIVESIGN { 正号 } LOCALE_SNEGATIVESIGN { 负号 } LOCALE_IPOSSIGNPOSN { 正号位置 } LOCALE_INEGSIGNPOSN { 负号位置 } 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 缩写语言名称 } LOCALE_SISO3166CTRYNAME { ISO 缩写国家名称 }
Langid:=GetSystemDefaultLangID;
if LangID= ((SUBLANG_CHINESE_SIMPLIFIED shl 10) or LANG_CHINESE) then
//简体中文--------------------------------------------------------------------------------
Var
LCID: Integer;
BLanguageID : array[0..3] of char;
Begin
// System language
LCID := GetSystemDefaultLCID;
GetLocaleInfo(LCID,LOCALE_SABBREVLANGNAME,BLanguageID,3);
// User language
LCID := GetUserDefaultLCID;
GetLocaleInfo(LCID,LOCALE_SABBREVLANGNAME,BLanguageID,3);
end;
--------------------------------------------------------------------------------
function WhichLanguage:string;
var
ID:LangID;
Language: array [0..100] of char;
begin
ID:=GetSystemDefaultLangID;
VerLanguageName(ID,Language,100);
Result:=String(Language);
end;Sample call:procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=WhichLanguage;
end;
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"可以取下列值: LOCALE_NOUSEROVERRIDE { do not use user overrides }
LOCALE_USE_CP_ACP { use the system ACP }
LOCALE_ILANGUAGE { 语言代号 }
LOCALE_SLANGUAGE { 本地语言名称 }
LOCALE_SENGLANGUAGE { 语言的英语名 }
LOCALE_SABBREVLANGNAME { 语言名称缩写 }
LOCALE_SNATIVELANGNAME { 本地语言名称 }
LOCALE_ICOUNTRY { 国家代号 }
LOCALE_SCOUNTRY { 国家名 }
LOCALE_SENGCOUNTRY { 国家的英语名称 }
LOCALE_SABBREVCTRYNAME { 国家名缩写 }
LOCALE_SNATIVECTRYNAME { 国家名 }
LOCALE_IDEFAULTLANGUAGE { 缺省语言代号 }
LOCALE_IDEFAULTCOUNTRY { 缺省国家代码 }
LOCALE_IDEFAULTCODEPAGE { 缺省oem代码页 }
LOCALE_IDEFAULTANSICODEPAGE { 缺省ansi代码页 }
LOCALE_IDEFAULTMACCODEPAGE { 缺省mac页 }
LOCALE_SLIST { 列表项分割符 }
LOCALE_IMEASURE { 测量单位0 = 米制, 1 = 英制 }
LOCALE_SDECIMAL { 小数点符号 }
LOCALE_STHOUSAND { 千位分割符 }
LOCALE_SGROUPING { digit grouping }
LOCALE_IDIGITS { number of fractional digits }
LOCALE_ILZERO { leading zeros for decimal }
LOCALE_INEGNUMBER { 负数模式 }
LOCALE_SNATIVEDIGITS { native ascii 0-9 }
LOCALE_SCURRENCY { 本地货币符号 }
LOCALE_SINTLSYMBOL { 国际货币符号 }
LOCALE_SMONDECIMALSEP { 货币小数点分割符 }
LOCALE_SMONTHOUSANDSEP { 货币千位分割符 }
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 { 日期分割符 }
LOCALE_STIME { 时间分割符 }
LOCALE_SSHORTDATE { 短日期字符串 }
LOCALE_SLONGDATE { 长日期字符串 }
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 er 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 { 星期一的缩写 }
LOCALE_SABBREVDAYNAME2 { 星期二的缩写 }
LOCALE_SABBREVDAYNAME3 { 星期三的缩写 }
LOCALE_SABBREVDAYNAME4 { 星期四的缩写 }
LOCALE_SABBREVDAYNAME5 { 星期五的缩写 }
LOCALE_SABBREVDAYNAME6 { 星期六的缩写 }
LOCALE_SABBREVDAYNAME7 { 星期天的缩写 }
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 { 一月的缩写 }
LOCALE_SABBREVMONTHNAME2 { 二月的缩写 }
LOCALE_SABBREVMONTHNAME3 { 三月的缩写 }
LOCALE_SABBREVMONTHNAME4 { 四月的缩写 }
LOCALE_SABBREVMONTHNAME5 { 五月的缩写 }
LOCALE_SABBREVMONTHNAME6 { 六月的缩写 }
LOCALE_SABBREVMONTHNAME7 { 七月的缩写 }
LOCALE_SABBREVMONTHNAME8 { 八月的缩写 }
LOCALE_SABBREVMONTHNAME9 { 九月的缩写 }
LOCALE_SABBREVMONTHNAME10 { 十月的缩写 }
LOCALE_SABBREVMONTHNAME11 { 十一月的缩写 }
LOCALE_SABBREVMONTHNAME12 { 十二月的缩写 }
LOCALE_SABBREVMONTHNAME13 { 十三月的缩写(如果有的话) }
LOCALE_SPOSITIVESIGN { 正号 }
LOCALE_SNEGATIVESIGN { 负号 }
LOCALE_IPOSSIGNPOSN { 正号位置 }
LOCALE_INEGSIGNPOSN { 负号位置 }
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 缩写语言名称 }
LOCALE_SISO3166CTRYNAME { ISO 缩写国家名称 }