Как определить язык расположения и отображения из панели управления Windows

введите здесь описание изображения

Делфи кс.

Для вкладки Administrative — язык Unicode
используйте GetSystemDefaultLangID.

Для вкладки Formats
используйте GetUserDefaultLangID

Но что мне использовать для вкладки For Tab Location?

Для вкладки "Клавиатура и язык"
для Vista и выше: Getlocaleinfo с ключом LOCALE_CUSTOM_UI_DEFAULT

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;
  1. Как определить местоположение в Xp+Win7 и язык отображения в Xp?
  2. Может быть универсальным ключом для определения "Языка отображения" как для Xp, так и для Win7
  3. Как получить список установленных языков интерфейса?

person Gu.    schedule 17.12.2011    source источник


Ответы (1)


1.1 – Как получить выбранное географическое положение (географический идентификатор)?

Используйте функцию GetUserGeoID, которая возвращает geographical location в настоящее время выбрано пользователем.


1.2. Как выбрать язык отображения для многоязычного пользовательского интерфейса (MUI) в Windows XP?

Используйте функцию GetUserDefaultUILanguage, которая возвращает < href="http://msdn.microsoft.com/en-us/library/windows/desktop/dd318691%28v=vs.85%29.aspx">language identifier, выбранный пользователем.


2. Существует ли универсальный способ обеспечить поддержку выбранного языка интерфейса, начиная с Windows XP и заканчивая Windows 7?

Да, это. Это всего лишь ранее упомянутая функция GetUserDefaultUILanguage. Есть замечание:

Если язык пользовательского интерфейса является частью пакета интерфейса пользователя (LIP) и соответствует дополнительной локали, эта функция возвращает LOCALE_CUSTOM_UI_DEFAULT.

Он поддерживается начиная с Windows 2000 и должен возвращать выбранный язык отображения даже для Windows Vista выше (LOCALE_CUSTOM_UI_DEFAULT).


3. Как получить список доступных языков пользовательского интерфейса?

Используйте функцию EnumUILanguages. В Windows XP он передает language identifiers к функции обратного вызова EnumUILanguagesProc. Начиная с Windows Vista, вы даже можете указать дополнительные флаги, которые обеспечивают передачу имен языков в эту функцию обратного вызова, или вы можете указать фильтрацию для лицензированных языков или для языков, разрешенных групповой политикой.

person TLama    schedule 17.12.2011