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


Языковые стандарты и языки

Термин "язык" обозначает коллекцию свойств, используемых в устной и письменной связи. У каждого языка есть имя языка и идентификатор языка, указывающие конкретную кодовую страницу (ANSI, DOS, Macintosh), которая представляет географическое расположение языка в операционной системе. Нейтральный язык обозначается таким именем, как "en" для английского языка. Более географически конкретный язык можно указать с помощью имени, включающего как языковой стандарт, так и сведения о стране или регионе. Например, языковой стандарт английский (США) имеет имя "en-US".

Языковой стандарт — это коллекция сведений о предпочтениях пользователя, относящихся к языку, представленная в виде списка значений. Windows XP поддерживает более 150 языковых стандартов, а Windows Vista — около 200. Каждый языковой стандарт определяется языком и порядком сортировки и имеет как имя языкового стандарта, так и идентификатор языкового стандарта. Примером имени языкового стандарта для немецкого языка (Германия) является "de-DE_phonebook".

Каждая операционная система имеет по крайней мере один установленный языковой стандарт и часто имеет много языковых стандартов, из которых пользователь может выбрать. С каждым языковым стандартом связан ряд сведений, отличных от его имени и идентификатора. Типы сведений о языковом стандарте описаны в разделе Константы сведений о языковом стандарте.

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

Для реализации языка требуется соответствующий языковой стандарт. Операционная система реализует нейтральный язык, выбирая данные для языкового стандарта, связанного с определенной версией языка, как правило, наиболее распространенным языковым стандартом.

Начиная с Windows Vista, определенный язык может соответствовать дополнительному языковому стандарту, который является типом пользовательского языкового стандарта. Так как все дополнительные языковые стандарты имеют один идентификатор языкового стандарта, приложения должны обрабатывать эти языковые стандарты и соответствующие языки по имени, а не по идентификатору.

Языковые понятия тесно связаны с понятиями языкового стандарта, но эти два термина не являются взаимозаменяемыми. Как правило, функции, связанные с многоязыковым пользовательским интерфейсом , имеют дело с языками, а функции NLS действуют на языковых стандартах.

В этом разделе рассматриваются следующие темы.

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

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

Константы сведений о языковом стандарте

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

Таблица геолокаций

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

SetThreadLocale