Поделиться через


Фильтрация языков в консольном приложении MUI

Консольное приложение MUI может поддерживать параметры системы или параметры конкретного приложения для языков пользовательского интерфейса. В этом разделе рассматривается фильтрация языков для этого типа приложений.

Ограничение отображаемых языков

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

Консоль может отображать только символы из одной кодовой страницы OEM , связанной с текущим языком для приложений, отличных от Юникода. Для каждой кодовой страницы OEM консоль использует определенный шрифт, и это может не обеспечить полное покрытие этой кодовой страницы.

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

Примечание

При предоставлении поддержки консоли для приложений MUI следует помнить, что консоль предоставляет только ограниченную поддержку редакторов методов ввода.

 

Настройка языка для выходных данных консоли

В Windows Vista и более поздних версиях консольное приложение задает язык для поддержки отображения консоли, вызывая Метод SetThreadPreferredUILanguages. В этом вызове приложение передает MUI_CONSOLE_FILTER в параметре dwFlags и NULL для pwszLanguagesBuffer. Альтернативой является вызов SetThreadUILanguage с идентификатором языка 0. Этот параметр заставляет функцию выбрать язык, который лучше всего поддерживает отображение консоли.

В Windows XP приложение может задать язык для выходных данных консоли, вызвав Метод SetThreadUILanguage с идентификатором языка 0.

Настройка языковых параметров приложения