Управление языком пользовательского интерфейса
Многоязычный пользовательский интерфейс (MUI) позволяет приложениям управлять языками пользовательского интерфейса двумя способами. Приложение может использовать простой подход к управлению языками по умолчанию для параметров языка операционной системы. Кроме того, приложение может поддерживать собственные языки, из которых пользователь может выбрать. API MUI также позволяет приложению напрямую обращаться к языкам и спискам языков, поддерживаемым операционной системой и поддерживаемым загрузчиком ресурсов. Оставшаяся часть этого раздела определяет поддерживаемые системой языки и резервный механизм языка.
Языки, поддерживаемые операционной системой
Язык пользовательского интерфейса по умолчанию системы или язык установки
Язык пользовательского интерфейса по умолчанию системы — это язык локализованной версии, используемой для настройки Windows. Все меню, диалоговые окна, сообщения об ошибках и файлы справки представлены на этом языке, за исключением случаев, когда пользователь выбирает другой язык.
В Windows Vista и более поздних версиях системный язык пользовательского интерфейса по умолчанию называется "языком установки" и играет более ограниченную роль. В большинстве случаев он заменяется предпочитаемыми системными языками пользовательского интерфейса. Однако в определенных контекстах полезно иметь один язык установки, который всегда поддерживается полностью.
Заметка
Приложения Windows, такие как Paint, Блокнот, Wordpad и меню, по-прежнему будут отображаться на языке пользовательского интерфейса по умолчанию системы после развертывания MUI.
Функция MUI недоступна для установки языка пользовательского интерфейса по умолчанию системы. Чтобы получить этот язык, приложение может вызывать GetSystemDefaultUILanguage.
Язык пользовательского интерфейса системы
Операционная система определяет язык пользовательского интерфейса системы как язык пользовательского интерфейса, который может быть задан администратором на вкладке Advanced части региональных и языковых параметров панели управления. Операционная система использует этот язык, если текущий пользователь не сделал определенных языковых параметров или если активная учетная запись не вошли в систему. Язык можно изменить только в том случае, если на компьютере установлено несколько языков пользовательского интерфейса.
Заметка
Операционная система должна быть перезагружена для всех пользователей и служб, чтобы увидеть влияние изменения языка.
Функция MUI недоступна для задания языка системного пользовательского интерфейса. Чтобы получить это значение, приложение, предназначенное для Windows Vista и более поздних версий, может вызывать GetSystemPreferredUILanguages и получить первый язык в списке предпочитаемых языков пользовательского интерфейса системы. Приложения, предназначенные для операционных систем до Windows Vista, не могут использовать GetSystemPreferredUILanguages и должны быть основаны на предположении, что язык пользовательского интерфейса системы всегда совпадает с языком пользовательского интерфейса по умолчанию системы.
Язык пользовательского интерфейса
Язык пользовательского интерфейса определяет язык пользовательского интерфейса, используемый для меню, диалоговых окон, файлов справки и т. д. Его можно задать текущим пользователем на вкладке языка части региональных и языковых параметров панели управления. Этот язык можно изменить только в том случае, если на компьютере установлено несколько языков пользовательского интерфейса. Обратите внимание, что пользователю придется выйти из системы, а затем войти обратно, чтобы увидеть эффект. Например, многонациональная корпорация хочет развернуть Windows во всех своих дочерних компаниях. Компания создает глобальное задание установки, которое устанавливает языковую версию Windows на всех клиентах независимо от расположения. В то же время он устанавливает определенные языковые модули в зависимости от подразделения, в котором компьютер является членом. Когда пользователь впервые входит в только что установленную операционную систему, Windows отображается как локализованная версия.
В Windows Vista и более поздних версиях язык пользовательского интерфейса является первым языком в списке предпочтительных языков пользовательского интерфейса. Обратите внимание, что резервные языки можно использовать, если определенные ресурсы недоступны на этом языке.
В операционных системах Windows Vista язык пользовательского интерфейса обычно совпадает с языком пользовательского интерфейса по умолчанию по умолчанию. Однако для Windows MUI два языка могут отличаться.
Чтобы получить язык пользовательского интерфейса, приложение может вызывать GetUserDefaultUILanguage или GetUserPreferredUILanguages. Приложение не может изменить язык пользовательского интерфейса, так как для него нет функции.
Языковые списки, поддерживаемые операционной системой
Список предпочитаемых языков пользовательского интерфейса системы
Загрузчик ресурсов поддерживает список предпочтительных языков пользовательского интерфейса системы. В этом списке используются языки, предпочитаемые операционной системой для собственных ресурсов, таких как меню и диалоговые окна, сообщения, INF-файлы и файлы справки. Список состоит из языка пользовательского интерфейса по умолчанию системы и языка пользовательского интерфейса системы и их резервных копий. Приложение может получить предпочитаемые системой языки пользовательского интерфейса, вызвав GetSystemPreferredUILanguages.
Список предпочтительных языков пользовательского интерфейса
Загрузчик ресурсов использует список предпочитаемых пользователем языков пользовательского интерфейса, который включает языки, предпочитаемые пользователем. Загрузчик ресурсов использует соответствующие языки из этого списка( если он доступен) для определенного потока приложения. Эти языки имеют приоритет над любыми системных предпочтениями. Чтобы получить предпочитаемые пользователем языки пользовательского интерфейса, приложение может вызывать GetUserPreferredUILanguages.
Список предпочитаемых языков пользовательского интерфейса обработки
В Windows Vista и более поздних версиях загрузчик ресурсов поддерживает список предпочтительных языков пользовательского интерфейса, состоящий из пяти допустимых языков, заданных запущенным процессом для приложения MUI. Языки можно задать приложением с вызовом SetProcessPreferredUILanguages. Приложение может получить языки, вызвав GetProcessPreferredUILanguages.
Список предпочтительных языков пользовательского интерфейса потока
В Windows Vista и более поздних версиях загрузчик ресурсов использует список предпочитаемых языков пользовательского интерфейса потока, состоящий из пяти допустимых языков, заданных потоком в работающем процессе для приложения MUI. Эти языки используются для настройки языков пользовательского интерфейса приложения и отличаются от языка операционной системы. Список предпочитаемых языков пользовательского интерфейса потока основан на предпочитаемых пользователем языках пользовательского интерфейса, предпочитаемых системой языках пользовательского интерфейса и языке пользовательского интерфейса по умолчанию.
Чтобы задать предпочтительный язык пользовательского интерфейса потока, приложение должно вызывать 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 для итальянского (Италии) и ее нейтральной формы "это".
Заметка
Этот язык включен только в резервный список, если язык пользовательского интерфейса не задан.
Язык пользовательского интерфейса по умолчанию системы и его нейтральная форма. Примером является es-ES для испанского (Испании) и его нейтральной формы "es".
Ниже показан объединенный резервный список. Обратите внимание, что дублирование языков, например, es-ES и es, устраняется. Так как этот пример задает язык пользовательского интерфейса для ja-JP, системный язык пользовательского интерфейса не отображается в объединенном резервном списке.
fr-FR, fr, es-ES, es, de-DE, de, ja-JP, ja
При загрузке ресурсов для приложения MUI загрузчик ресурсов пытается выбрать один из файлов, соответствующих списку предпочитаемых языков пользовательского интерфейса потока для текущего потока приложения. Если загрузчик ресурсов не может найти прямое совпадение между выбранным языком и первым ресурсом для конкретного языка в объединенном резервном списке, он проверяет последующие языки в списке, пока не обнаружит приемлемый резервный вариант.
Если загрузчик ресурсов не находит нужный файл, он должен использовать "гарантированный хороший" резервный язык. Для технологии ресурса MUI загрузчик ресурсов определяет резервный язык из предоставленных данных конфигурации ресурсов. Дополнительные сведения см. в разделе управления ресурсами MUI.
Связанные разделы