使用Delphi显示当前用户的语言(英语)?

使用Delphi显示当前用户的语言(英语)?,delphi,delphi-10.3-rio,Delphi,Delphi 10.3 Rio,某些Windows计算机安装了多种显示语言 我可以使用以下函数以该语言获取当前用户的UI语言: function GetUsersWindowsLanguage: string; var WinLanguage: array [0..50] of char; begin VerLanguageName(GetUserDefaultUILanguage, WinLanguage, 50); Result := WinLanguage; end; 此函数输出如下内容: Espagnol

某些Windows计算机安装了多种显示语言

我可以使用以下函数以该语言获取当前用户的UI语言:

function GetUsersWindowsLanguage: string;
var
  WinLanguage: array [0..50] of char;
begin
  VerLanguageName(GetUserDefaultUILanguage, WinLanguage, 50);
  Result := WinLanguage;
end;
此函数输出如下内容:

Espagnol (Espagne)
输出不是英文的。我只需要“西班牙语”。有没有办法获得英语的显示语言

我正在使用Delphi10.3.3(VCL应用程序)。

函数GetUsersWindowsLanguage:string;
变量
WinLanguage:字符的数组[0..50];
开始
getLocaleInfo(GetUserDefaultUILanguage,LOCALE\u SENGLISHDISPLAYNAME,WinLanguage,50);
结果:=WinLanguage;
结束;

如果系统根本没有英语,这可能是不可能的。为什么不使用
GetUserDefaultUILanguage()
提供的ID呢?根据@AmigoJack\u SENGLISHDISPLAYNAME提供的英文版本,“西班牙语(西班牙)”将等于
$0c0a
(或更通用的
$0A
)。问题解决了,你是个英雄!这保证在所有系统上都能工作?还有那些没有安装英语的吗?记录在案,它可以在Windows 7和更高版本上运行。XP和Vista失败@AmigoJack Windows 7+不需要安装英语。