如何从Windows控制面板定义位置和显示语言

Gu.*_*u. 7 delphi locale

在此输入图像描述

德尔福xe.

对于Tab Administrative- Unicode lang
使用GetSystemDefaultLangID

对于Tab Formats-
使用GetUserDefaultLangID

但是我对For Tab使用了Location什么?

对于
Vista及更高版本的"键盘和语言"选项卡:带有键LOCALE_CUSTOM_UI_DEFAULT的Getlocaleinfo

Function GetLocaleInformation(flag: integer): string;
var
  pclca: array[0..20] of char;
begin
  if (GetLocaleInfo(
      //locale_system_default - Always identical values returns
      LOCALE_CUSTOM_UI_DEFAULT // work only Vista-Win7, not Xp **
      ,flag,pclca,19) <= 0 ) then begin
    pclca[0] := #0;
  end;
  Result := pclca;
end;
Run Code Online (Sandbox Code Playgroud)
  1. 如何在Xp + Win7中定义位置和在Xp中显示语言?
  2. 可以是为Xp和Win7定义"显示语言"的通用密钥
  3. 如何接收已建立的界面语言列表?

TLa*_*ama 11

1.1 - 如何获取选定的地理位置(地理ID)?

使用GetUserGeoID返回geographical location用户当前选择的功能.


1.2 - 如何在Windows XP中获取多语言用户界面(MUI)的选定显示语言?

使用GetUserDefaultUILanguage返回language identifier用户当前选择的功能.


2 - 从Windows XP到Windows 7,是否有通用的方法来支持所选的显示语言?

是的.这只是前面提到的GetUserDefaultUILanguage功能.有一句话:

如果用户UI语言是语言界面包(LIP)的一部分并且对应于补充语言环境,则此函数返回LOCALE_CUSTOM_UI_DEFAULT.

从Windows 2000开始支持它,即使对于上面的Windows Vista(LOCALE_CUSTOM_UI_DEFAULT),它也应该返回所选的显示语言.


3 - 如何获取可用的用户界面语言列表?

使用该EnumUILanguages功能.在Windows XP中,它将传递language identifiersEnumUILanguagesProc回调函数.从Windows Vista开始,您甚至可以指定其他标志,这些标志用于将语言名称传递给该回调函数,或者您可以指定对许可语言或组策略允许的语言的过滤.