Функция SetThreadPreferredUILanguages (winnls.h)
Задает предпочитаемые языки пользовательского интерфейса потока для текущего потока. Дополнительные сведения см. в разделе Управление языком пользовательского интерфейса.
Синтаксис
BOOL SetThreadPreferredUILanguages(
[in] DWORD dwFlags,
[in, optional] PCZZWSTR pwszLanguagesBuffer,
[out, optional] PULONG pulNumLanguages
);
Параметры
[in] dwFlags
Флаги, определяющие формат и фильтрацию для устанавливаемого языка.
Следующие флаги формата указывают формат языка, который будет использоваться для предпочитаемых языков пользовательского интерфейса потока. Флаги являются взаимоисключающими, и по умолчанию используется MUI_LANGUAGE_NAME.
Вместо MUI_LANGUAGE_ID рекомендуется использовать MUI_LANGUAGE_NAME.
Значение | Значение |
---|---|
|
Строки языка входного параметра имеют формат идентификатора языка . |
|
Строки языка входных параметров имеют формат имени языка . |
Следующие флаги фильтрации указывают фильтрацию для списка языков. Флаги являются взаимоисключающими. По умолчанию ни MUI_COMPLEX_SCRIPT_FILTER, ни MUI_CONSOLE_FILTER не заданы. Дополнительные сведения о флагах фильтрации см. в разделе Примечания.
Значение | Значение |
---|---|
|
GetThreadPreferredUILanguages должны заменить соответствующим резервным вариантом все языки со сложными скриптами. Если этот флаг указан, необходимо передать значение NULL для всех остальных параметров. |
|
GetThreadPreferredUILanguages должны заменить соответствующим резервным вариантом все языки, которые не могут правильно отображаться в окне консоли с текущими параметрами операционной системы. Если этот флаг указан, необходимо передать значение NULL для всех остальных параметров. |
|
Сбросьте фильтрацию для списка языков, удалив все другие параметры фильтра. Если этот флаг указан, необходимо передать значение NULL для всех остальных параметров. После установки этого флага приложение может вызвать Метод GetThreadPreferredUILanguages , чтобы получить полный нефильтрованный список. |
[in, optional] pwszLanguagesBuffer
Указатель на буфер с двойным завершением null многострочного буфера, который содержит упорядоченный список с разделителями NULL в формате, заданном dwFlags.
Чтобы очистить список предпочитаемых языков пользовательского интерфейса потока, приложение задает для этого параметра пустую строку или пустую строку с двойным завершением NULL. Если приложение очищает список языков, оно должно указать флаг формата или 0 для параметра dwFlags .
Если приложение указывает один из флагов фильтрации, оно должно задать для этого параметра значение NULL. В этом случае функция выполняется успешно, но не сбрасывает предпочитаемые языки потока.
[out, optional] pulNumLanguages
Указатель на количество языков, заданных функцией в списке предпочитаемых языков пользовательского интерфейса потока. Если приложение указывает один из флагов фильтрации, функция должна присвоить этому параметру значение NULL.
Возвращаемое значение
Возвращает значение TRUE , если функция выполнена успешно, или false в противном случае.
Комментарии
Когда приложение загружает ресурсы после вызова этой функции, предпочтения конкретного потока берут приоритет над языками, предпочитаемыми пользователем.
Эта функция может настроить до пяти предпочитаемых языков для потока в порядке предпочтения. Если языковой буфер содержит более пяти допустимых языков, функция задает первые пять допустимых языков и игнорирует остальные.
Если приложение вызывает эту функцию с установленным флагом MUI_LANGUAGE_ID, строки в списке языков должны использовать шестнадцатеричный язык.
идентификаторы, которые не содержат начального значения 0x и имеют длину 4 символа. Например, en-US должен иметь значение
передается как "0409" и en как "0009".
Если указан MUI_LANGUAGE_ID, шестнадцатеричные значения в списке языков должны представлять фактический идентификатор языка. В частности, следующие значения идентификатора языкового стандарта нельзя использовать для соответствия идентификатору языка:
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
После возврата этой функции приложение может вызвать Метод GetThreadPreferredUILanguages для проверки и просмотра итогового списка языков. Если MUI_CONSOLE_FILTER или MUI_COMPLEX_FILTER задано командлетом SetThreadPreferredUILanguages, функция GetThreadPreferredUILanguages заменяет резервными языками, которые консоль не может отобразить с помощью текущего параметра языка операционной системы. Резервный вариант для языка определяется на основе значения LOCALE_SCONSOLEFALLBACKNAME для языка.
Установка флага MUI_COMPLEX_SCRIPT_FILTER в вызове SetThreadPreferredUILanguages приводит к тому, что getThreadPreferredUILanguages удаляет языки, которые консоль не может отображать с языками, которые можно отрисовывать только с помощью Uniscribe, и вставляет резервный язык в качестве конечного резервного. Примерами таких языков являются арабский или различные индийские языки.
Установка флага MUI_CONSOLE_FILTER в вызове SetThreadPreferredUILanguages приводит к тому, что getThreadPreferredUILanguages удаляет языки, которые консоль не может отображать с текущим системным параметром, и вставляет резервный язык в качестве конечного резервного, так как консоль ограничена отображением символов из одной кодовой страницы. Например, если пользовательский язык — японский (Япония), а текущая кодовая страница консоли — кодовая страница для русского языка (Россия), в консоли текст на японском языке отображается в основном как ряд символов, не найденных. GetThreadPreferredUILanguages выбирает язык из резервного списка, который будет читаемым в консоли.
Подпись C#
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean SetThreadPreferredUILanguages(
System.UInt32 dwFlags,
System.String pwszLanguagesBuffer,
ref System.UInt32 pulNumLanguages
);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | winnls.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |
См. также
Многоязыковой интерфейс пользователя