Управление языком пользовательского интерфейса

Многоязычный пользовательский интерфейс (MUI) позволяет приложениям управлять языками пользовательского интерфейса двумя способами. Приложение может использовать простой подход к управлению языком, используя языковые параметры операционной системы по умолчанию. Кроме того, приложение может поддерживать собственные языки, которые пользователь может выбрать. API MUI также предоставляет приложению прямой доступ к языкам и спискам языков, поддерживаемым операционной системой и поддерживаемым загрузчиком ресурсов. Оставшаяся часть этого раздела определяет поддерживаемые системой языки и механизм резервного использования языка.

Языки, поддерживаемые операционной системой

Язык пользовательского интерфейса системы по умолчанию/язык установки

Системный язык пользовательского интерфейса по умолчанию — это язык локализованной версии, используемой для настройки Windows. Все меню, диалоговые окна, сообщения об ошибках и файлы справки представлены на этом языке, за исключением случаев, когда пользователь выбирает другой язык.

В Windows Vista и более поздних версиях системный язык пользовательского интерфейса по умолчанию называется "языком установки" и играет более ограниченную роль. В большинстве случаев он за заменяется предпочитаемыми системой языками пользовательского интерфейса. Однако в некоторых контекстах полезно иметь один язык установки, который всегда полностью поддерживается.

Примечание

Приложения Windows, такие как Paint, Блокнот, Wordpad и параметры меню, по-прежнему будут отображаться на языке пользовательского интерфейса по умолчанию системы после развертывания многоязыкового интерфейса.

Функция MUI не доступна для установки стандартного языка пользовательского интерфейса системы. Чтобы получить этот язык, приложение может вызвать GetSystemDefaultUILanguage.

Язык пользовательского интерфейса системы

Операционная система определяет язык пользовательского интерфейса системы как язык пользовательского интерфейса, который администратор может задать на вкладке Дополнительно в части региональных и языковых параметров панель управления. Операционная система использует этот язык, если текущий пользователь не сделал определенных языковых параметров или если активные учетные записи не вошли в систему. Язык можно изменить только в том случае, если на компьютере установлено несколько языков пользовательского интерфейса.

Примечание

Операционная система должна быть перезагружена для всех пользователей и служб, чтобы увидеть влияние изменения языка.

 

Функция MUI не доступна для настройки языка пользовательского интерфейса системы. Чтобы получить это значение, приложение, предназначенное для Windows Vista и более поздних версий, может вызвать GetSystemPreferredUILanguages и получить первый язык в списке предпочитаемых в системе языков пользовательского интерфейса. Приложения, предназначенные для операционных систем до Windows Vista, не могут использовать GetSystemPreferredUILanguages и должны основываться на предположении, что язык пользовательского интерфейса системы всегда совпадает с языком пользовательского интерфейса системы по умолчанию.

Язык пользовательского интерфейса

Язык пользовательского интерфейса определяет язык пользовательского интерфейса, используемый для меню, диалоговых окон, файлов справки и т. д. Его может задать текущий пользователь на вкладке Язык в части региональных и языковых параметров панель управления. Этот язык можно изменить, только если на компьютере установлено несколько языков пользовательского интерфейса. Обратите внимание, что пользователю придется выйти из системы, а затем снова войти в систему, чтобы увидеть эффект. Например, транснациональная корпорация хочет развернуть Windows во всех своих дочерних компаниях. Компания создает глобальное задание установки, которое устанавливает англоязычную версию Windows на всех клиентах, независимо от расположения. В то же время он устанавливает определенные языковые модули в зависимости от подразделения, членом которого является компьютер. Когда пользователь впервые входит в только что установленную операционную систему, Windows отображается как локализованная версия.

В Windows Vista и более поздних версиях язык пользовательского интерфейса является первым языком в списке предпочитаемых пользователем языков пользовательского интерфейса. Обратите внимание, что резервные языки можно использовать, если определенные ресурсы недоступны на этом языке.

В операционных системах до Windows Vista язык пользовательского интерфейса обычно совпадает с языком пользовательского интерфейса по умолчанию. Однако для многоязыкового интерфейса Windows эти два языка могут быть разными.

Чтобы получить язык пользовательского интерфейса, приложение может вызвать GetUserDefaultUILanguage или GetUserPreferredUILanguages. Приложение не может изменить язык пользовательского интерфейса, так как нет функции для его настройки.

Списки языков, поддерживаемые операционной системой

Список предпочитаемых системой языков пользовательского интерфейса

Загрузчик ресурсов поддерживает список предпочитаемых системой языков пользовательского интерфейса. В этот список включены языки, предпочитаемые операционной системой для собственных ресурсов, таких как меню и диалоговые окна, сообщения, INF-файлы и файлы справки. Список состоит из системного языка пользовательского интерфейса по умолчанию, а также языка системного пользовательского интерфейса и их резервных вариантов. Приложение может получать предпочитаемые системой языки пользовательского интерфейса, вызывая Метод GetSystemPreferredUILanguages.

Список предпочитаемых пользователем языков пользовательского интерфейса

Загрузчик ресурсов использует список предпочитаемых пользователем языков пользовательского интерфейса, который включает предпочитаемые пользователем языки. Загрузчик ресурсов использует ресурсы, соответствующие языкам из этого списка, если они доступны, для определенного потока приложения. Эти языки имеют приоритет над любыми системным предпочтениями. Чтобы получить предпочитаемые пользователем языки пользовательского интерфейса, приложение может вызвать Метод GetUserPreferredUILanguages.

Список предпочитаемых языков пользовательского интерфейса процесса

В Windows Vista и более поздних версиях загрузчик ресурсов поддерживает список предпочтительных языков пользовательского интерфейса процесса, состоящий из пяти допустимых языков, заданных выполняющимся процессом для приложения MUI. Языки могут быть заданы приложением с помощью вызова SetProcessPreferredUILanguages. Приложение может получить языки, вызвав Метод GetProcessPreferredUILanguages.

Список предпочитаемых языков пользовательского интерфейса потока

В Windows Vista и более поздних версиях загрузчик ресурсов использует список предпочитаемых для потока языков пользовательского интерфейса, состоящий из пяти допустимых языков, заданных потоком в выполняющихся процессах для приложения многоязыкового интерфейса пользователя. Эти языки используются для настройки языков пользовательского интерфейса приложения и их отличия от языка операционной системы. Список предпочтительных языков пользовательского интерфейса потока основан на предпочитаемых пользователем языках пользовательского интерфейса, предпочитаемых системой языках пользовательского интерфейса и языке пользовательского интерфейса по умолчанию.

Чтобы задать предпочитаемые для потока языки пользовательского интерфейса, приложение должно вызвать Метод SetThreadPreferredUILanguages. Чтобы получить эти языки, приложение вызывает Метод GetThreadPreferredUILanguages.

Представление нейтрального языка

Нейтральный язык представлен как язык без региона или языкового стандарта. Например, нейтральное представление английского языка (Канада) en-CA представляется как "en". Хотя нейтральный язык не связан с аспектами региона или языкового стандарта, его можно связать с набором ресурсов. Как правило, нейтральный языковой ресурс основан на использовании языка в наиболее распространенном регионе.

В качестве иллюстрации предположим, что приложение MUI локализует ресурсы на немецком языке (Швейцария), представленные как de-CH, а немецкий (Австрия) — как de-AT, при этом создается полный набор ресурсов для немецкого языка (Германия), представленного как de-DE. Для этого приложения необходимо принимать решения, учитывая все файлы ресурсов. Если приложение дублирует ресурсы de-DE как нейтральные языковые ресурсы, оно должно предоставить резервный язык для загрузчика ресурсов. Если загрузчик не находит определенный файл ресурсов для определенного языка для de-CH или de-AT, он возвращается к не зависящим от языка ресурсам de. Эти ресурсы, скорее всего, больше подходят, чем ресурсы для совершенно другого языка, например английского (США), которые являются единственными возможными резервными вариантами.

Еще один пример: приложение может вообще не локализовать для Белиза. Однако поддержка предпочитаемого языка английского языка (Белиз), представленного как en-BZ, позволяет приложению вернуться к ресурсам en.

Языковой резерв в загрузчике ресурсов

Windows Vista и более поздних версий упорядочить языковые параметры пользовательского интерфейса в предварительно упорядоченном резервном списке языков, используемом загрузчиком ресурсов. Чтобы сформировать список, операционная система объединяет несколько языков в указанном порядке:

  • Предпочитаемые языки пользовательского интерфейса потока, состоящие из языка пользовательского интерфейса потока и его нейтральной формы. Примеры: fr-FR для французского языка (Франция) и его нейтральная форма "fr" и es-ES для испанского языка (Испания) и ее нейтральная форма "es".

  • Предпочитаемые языки пользовательского интерфейса процесса, состоящие из языка пользовательского интерфейса процесса и его нейтральной формы. Например, de-DE для немецкого языка (Германия) и его нейтральная форма "de".

  • Язык пользовательского интерфейса и его нейтральная форма. Примером является ja-JP для японского языка (Япония) и его нейтральная форма "ja".

  • Язык пользовательского интерфейса системы и его нейтральная форма. Например, it-IT для итальянского языка (Италия) и его нейтральная форма "it".

    Примечание

    Этот язык включен в резервный список, только если язык пользовательского интерфейса не задан.

     

  • Системный язык пользовательского интерфейса по умолчанию и его нейтральная форма. Например, es-ES для испанского языка (Испания) и его нейтральная форма "es".

Ниже показан объединенный резервный список. Обратите внимание, что дублирование языков, например es-ES и es, исключается. Так как в примере задается язык пользовательского интерфейса ja-JP, системный язык пользовательского интерфейса не отображается в объединенном резервном списке.

fr-FR, fr, es-ES, es, de-DE, de, ja-JP, ja

При загрузке ресурсов для приложения MUI загрузчик ресурсов пытается выбрать один из файлов, соответствующих списку предпочитаемых языков пользовательского интерфейса потока для текущего выполняемого потока приложения. Если загрузчик ресурсов не может найти прямое совпадение между выбранным языком и первым ресурсом для конкретного языка в объединенном резервном списке, он проверяет последующие языки в списке, пока не найдет приемлемый резервный вариант.

Если загрузчик ресурсов не находит нужный файл, он должен использовать "гарантированно хороший" резервный язык. Для технологии ресурсов MUI загрузчик ресурсов определяет резервный язык на основе предоставленных данных конфигурации ресурсов. Дополнительные сведения см. в разделе Управление ресурсами MUI.

Сведения о многоязыковом пользовательском интерфейсе

Языковые параметры и языки

Терминология NLS