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


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

В этом разделе определяются термины, важные при работе с функциями NLS.

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

В следующей таблице перечислены языковые и языковые термины. См. также языков и языков.

Языковая группа Язык для программ, отличных от Юникода Стандарты и форматы
назначение Предоставляет все раскладки клавиатуры, редакторы методов ввода (IMEs), шрифты TrueType, ссылки на шрифты, файлы пакетов лицензий (LPKs), шрифты растровых карт и таблицы перевода кодовых страниц, необходимые операционной системе для группы языков. Поэтому влияет на все остальные параметры в этом списке. Определяет, какие растровые шрифты и OEM, ANSI и Macintosh кодовые страницы используются по умолчанию для операционной системы. Этот язык влияет только на приложения, которые не полностью юникоды. До Windows XP этот язык называется системным языковым стандартом. Определяет, какие параметры используются для форматирования дат, времени, валюты и чисел в качестве значения по умолчанию для каждого пользователя. Также определяет порядок сортировки текста. До Windows XP, стандарты и форматы были названы "языковым стандартом пользователя".
первый набор Установка Установка Установка
Как пользователи могут изменять Региональные параметры (элемент панели управления)
Windows XP: региональные и языковые параметры
(только администраторы)
Региональные параметры (элемент панели управления)
Windows XP: региональные и языковые параметры
(только администраторы)
Региональные параметры (элемент панели управления)
Windows XP: региональные и языковые параметры
по умолчанию Западная Европа и Соединенные Штаты и языковые группы, необходимые для отображения языка локализованной версии. Язык локализованной версии. Язык локализованной операционной системы.
функции EnumSystemLanguageGroups GetSystemDefaultLangID GetUserDefaultLCID, GetUserDefaultLocaleName

 

Языковой стандарт потока Входной язык Язык пользовательского интерфейса по умолчанию системы
назначение Определяет параметры, используемые для форматирования дат, времени, валюты и большого числа для потока. Также определяет порядок сортировки текста. Состоит из языка и метода ввода. Определяет язык меню и диалоговых окон по умолчанию, сообщения, файлы сведений о настройке (INF) и файлы справки.
Windows Vista и более поздних версий: известный как язык установки. Играет более ограниченную роль, в значительной степени заменены системными предпочитаемыми языками пользовательского интерфейса.
Дополнительные сведения см. в разделе Управление языком пользовательского интерфейса
первый набор По умолчанию для стандартов и форматов Установка Установка
Как пользователи могут изменять SetThreadLocale Региональные параметры (элемент панели управления)
Windows XP: региональные и языковые параметры
Нет
по умолчанию Стандарты и форматы Язык локализованной версии с методом ввода по умолчанию. Язык локализованной версии.
функции GetThreadLocale GetKeyboardLayout GetSystemDefaultUILanguage

 

Язык пользовательского интерфейса системы, предпочтительный язык пользовательского интерфейса системы Язык пользовательского интерфейса, предпочитаемые пользователем языки пользовательского интерфейса Предпочтительный для потока язык пользовательского интерфейса
назначение Определите язык меню и диалоговых окон, сообщений, INF-файлов и файлы справки для операционной системы. Дополнительные сведения см. в управления языком пользовательского интерфейса. Определите язык меню и диалоговых окон, сообщений и файлов справки для пользователя. Дополнительные сведения см. в управления языком пользовательского интерфейса. Windows Vista и более поздних версий: Укажите предпочитаемые языки для потоков приложений. Дополнительные сведения см. в управления языком пользовательского интерфейса.
первый набор Значение NULL по умолчанию Значение NULL по умолчанию Значение NULL по умолчанию
Как пользователи могут изменять Региональные и языковые параметры
(только администраторы)
Региональные параметры (элемент панели управления)
Windows XP: региональные и языковые параметры
SetThreadPreferredUILanguages
по умолчанию Windows Vista и более поздних версий: язык локализованной версии, а затем любые резервные копии. До Windows Vista: язык локализованной версии.
Windows Vista и более поздних версий: язык локализованной версии, а затем любые резервные копии.
Список NULL
функции GetSystemPreferredUILanguages GetUserDefaultUILanguage, GetUserPreferredUILanguages GetThreadPreferredUILanguages

 

Предпочитаемые языки пользовательского интерфейса обработки
назначение Windows 7 и более поздних версий: Определить предпочтительный язык для процесса приложения. Дополнительные сведения см. в управления языком пользовательского интерфейса.
первый набор Значение NULL по умолчанию
Как пользователи могут изменять Региональные и языковые параметры (только администраторы)
по умолчанию Windows 7 и более поздних версий: язык локализованной версии, а затем любые резервные копии.
функции GetProcessPreferredUILanguages, SetProcessPreferredUILanguages

 

Кодовая страница

Неспособность 256-кодовых страниц точки кода поддерживать сочетание скриптов в одном тексте является одной из основных причин роста Юникода. Кодовые страницы остаются важными для написания кода консоли, для поддержания устаревших приложений или работы в более ранних версиях Windows, а также для взаимодействия с некоторым программным обеспечением, не поддерживающим Юникод.

Входной язык

Язык ввода представлен переменной данных для каждого процесса, описывающей язык (например, греческий) и метод ввода (например, клавиатура). Можно установить несколько языков ввода, и пользователь может переключаться между ними.

Чтобы задать и получить значение языка ввода, приложение вызывает LoadKeyboardLayout и GetKeyboardLayoutсоответственно. Пользователи могут добавлять и удалять языки ввода с помощью вкладки "Языки" в части региональных и языковых параметров панели управления.

Язык ввода по умолчанию является локализованным языком операционной системы, и это параметр, активный при запуске нового приложения (или при открытии нового окна для некоторых приложений). Переключение на другой язык ввода выполняется на основе каждого приложения. Другими словами, два разных языка ввода могут использоваться в двух разных приложениях. Например, пользователь может вводить немецкий язык с помощью международного раскладки клавиатуры США, английского языка с помощью голосового ввода (с программным обеспечением, отличного от Майкрософт), и испанского языка с помощью IME в трех разных приложениях.

Язык для программ, отличных от Юникода

Язык для программ, отличных от Юникода (ранее называемый системным языковым стандартом), определяет кодовую страницу, используемую в операционной системе по умолчанию. Язык для параметров программ, отличных от Юникода, влияет только на приложения, отличные от Юникода, то есть приложения ANSI. Установка языка указывает Windows эмулировать операционную систему, не основанную на Юникоде, локализованную на этом языке. Изменение языка для программ, отличных от Юникода, устанавливает необходимые файлы шрифтов растровых карт для поддержки приложений, отличных от Юникода, на указанном языке. Чтобы разрешить пользователю выбрать язык для программ, отличных от Юникода, необходимо установить соответствующую языковую группу. Приложению нужна поддержка скрипта для выбора языка для программ, отличных от Юникода. Язык для программ, отличных от Юникода, является параметром для каждой системы и требует реализации перезапуска.

Иногда нет заметной разницы между двумя языками для программ, отличных от Юникода. Например, это дело с немецкими (нейтральными) и немецкими (Австрией) языковыми стандартами. Как правило, параметры одной языковой группы очень похожи и отличаются только на кодовой странице OEM или MAC.

Во время установки приложение ANSI должно проверить язык для параметров программ, отличных от Юникода. Он использует GetACP или GetOEMCP для получения значения. Функция не поддерживается для задания языка для программ, отличных от Юникода. Однако пользователи могут изменить его с помощью вкладки Advanced в области региональных и языковых параметров панели управления. Ниже приведены некоторые примеры языка для параметров программ, отличных от Юникода:

  1. Немецкий пользователь, который хочет запустить японское приложение, предназначенное для японского Windows 95, должно выбрать японский язык для программ, отличных от Юникода. После этого выбора у немецких приложений, отличных от Юникода, возникают проблемы. Например, немецкие umlauts (FX) не отображаются правильно.
  2. Немецкий пользователь, который хочет ввести японский текст в немецком приложении, отличном от Юникода, должен выбрать японский язык для программ, отличных от Юникода. Как и в первом примере, это приводит к проблемам при вводе немецкого текста в приложениях, отличных от Юникода.
  3. Арабский пользователь, который хочет вводить арабский, французский и английский в арабском приложении, отличном от Юникода, должен выбрать арабский язык для программ, отличных от Юникода, так как на арабской кодовой странице ANSI содержатся большинство французских символов и всех английских символов.

Группа языков

Группа языков управляет языком для программ, отличных от Юникода, стандартов и форматов, языков ввода и языков пользовательского интерфейса, которые можно выбрать. Для каждой локализованной версии указанная языковая группа является стандартной и не может быть удалена. Например, Windows устанавливает группу языков Западной Европы и США по умолчанию. Таким образом, если английская версия Windows установлена в стране или регионе, отличном от английского языка, пользователь обычно установит другую языковую группу.

При добавлении языковой группы Windows копирует (но не активирует) необходимые файлы клавиатуры, редакторы методов ввода (IMEs), файлы шрифтов TrueType, файлы шрифтов растрового изображения и файлы поддержки национальных языков (NLS). Добавление языковой группы также добавляет значения реестра для связывания шрифтов и устанавливает механизмы сценариев для сложных языков скриптов (арабский, иврит, indic и тайский).

Помимо языковой группы Западной Европы и Соединенных Штатов, есть 16 других языковых групп:

Арабский
Армянский
Балтийский
Центральная Европа
Кириллический
Грузинский
Греческий
Иврит
Indic
Японский
Корейский
Упрощенный китайский
Традиционный китайский
Тайский
Тюркский
Вьетнамский

 

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

Заметка

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

 

Местоположение

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

Чтобы задать значение, приложение вызывает SetUserGeoID. Чтобы получить значение, приложение вызывает GetUserGeoID.

Стандарты и форматы

Стандарты и форматы (ранее "языковой стандарт пользователя") — это переменная для каждого пользователя, которая определяет порядок сортировки по умолчанию и параметры по умолчанию для форматирования дат, времени, валюты и чисел. Переменная представлена как язык (иногда в сочетании с страной или регионом), но это не сам язык. Например, при задании переменной "Стандарты и форматы" на иврите указывается, что пользователь хочет использовать соглашения о форматировании иврита, а не язык иврита. Кроме того, переменная "Стандарты и форматы" определяет строку, используемую для имен дней и месяцев. Например, если пользователь отображает "25 ноября 1998 года", строка "ноябрь" может измениться на основе переменной "Стандарты и форматы". Изменение переменной автоматически добавляет входной языковой стандарт с параметрами по умолчанию для языка.

Чтобы получить параметр переменной "Стандарты и форматы", приложение вызывает GetUserDefaultLCID или GetUserDefaultLocaleName. Функция NLS недоступна для задания переменной. Однако пользователи могут изменить его с помощью вкладки "Параметры региона " в части региональных и языковых параметров панели управления.

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

Языковой стандарт потока

Языковой стандарт потока представлен переменной данных языкового стандарта для потока, которая определяет форматирование дат, времени, валюты и большого числа для потока. По умолчанию значение языкового стандарта, выбранного в настоящее время для стандартов и форматов. Чтобы задать языковой стандарт потока, приложение вызывает SetThreadLocale. Чтобы получить языковой стандарт потока, приложение вызывает GetThreadLocale.

В большинстве случаев языковой стандарт потока не должен быть перезаписан. Обычно его следует использовать только для синхронизации языкового стандарта потока серверного приложения с переменной "Стандарты и форматы" клиентского компьютера. Например, финансовое торговое приложение для Нью-йоркской фондовой биржи, которая используется в банках по всему миру, должна отображать время, дату и цены на акции в форматах Соединенных Штатов. Это приложение использует SetThreadLocale для задания языкового стандарта потока на английский (США), а затем использует функции NLS для форматирования дат, времени и цен на акции.

Изменение языкового стандарта потока не влияет на все функции API. Таким образом, это не всегда надежный способ переопределения переменной "Стандарты и форматы". Вместо этого приложения, управляющие стандартами и форматами, должны использовать фиксированный языковой стандарт для отображения данных, передавая определенный идентификатор языкового стандарта вместо использования LOCALE_USER_DEFAULT.

Пример NLS

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

Пользователь, который является родным из Чили, но живет в США, имеет компьютер под управлением Windows XP English. Пользователь задает расположение в США, чтобы использовать поставщика услуг Интернета (ISP), чтобы получить погоду для Соединенных Штатов. Однако переменная "Стандарты и форматы" устанавливается на испанский (Чили), чтобы информация форматирована в соответствии со стандартами Чили. Кроме того, пользователь использует корейский текстовый процессор, который является приложением ANSI, чтобы язык для программ, отличных от Юникода, был установлен на корейский (Корея). Для использования приложения пользователь имеет английскую клавиатуру, а также устанавливает корейский IME для поддержки второго языка ввода. Сотрудник пользователя, который предоставляет общий доступ к компьютеру, но не комфортно с английским языком, может задать язык пользовательского интерфейса на испанский (Испания) при использовании компьютера.

о поддержке национального языка

языков и языков

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