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


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

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

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

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

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

 

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

 

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

 

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

 

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

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

Язык ввода

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

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

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

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

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

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

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

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

Языковая группа

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

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

В дополнение к западной Европе и США языковой группе, существует 16 других языковых групп:

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

 

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

Примечание

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

 

Расположение

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

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

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

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

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

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

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

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

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

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

Пример NLS

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

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

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

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

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