Имена языковых стандартов
Имя языкового стандарта основано на соглашениях о маркировке языка IETF BCP 47 (Windows Vista и более поздних версий) и представлено LOCALE_SNAME. Как правило, используется шаблон <language>-<REGION>
. Здесь язык представляет собой код языка ISO 639 в нижнем регистре. Коды из ISO 639-1 используются по возможности. В противном случае используются коды из ISO 639-2/T. Регион указывает идентификатор страны или региона в верхнем регистре ISO 3166-1. Например, имя языкового стандарта для английского языка (США) — "en-US", а имя языкового стандарта для Дивехи (Мальдивы) — "dv-MV".
Примечание
Константная LOCALE_NAME_MAX_LENGTH задает максимальную длину имени языкового стандарта. Он содержит пробел для завершающего символа NULL.
Если языковой стандарт является нейтральным (без региона), значение LOCALE_SNAME соответствует шаблону <language>
. Если это нейтральный языковой стандарт, для которого скрипт имеет значение, шаблон имеет значение <language>-<Script>
.
Если языковой стандарт должен отличаться от другого языкового стандарта для того же языка и региона с помощью другого скрипта, значение LOCALE_SNAME соответствует шаблону <language>-<Script>-<REGION>
, где Script — это исходный код скрипта ISO 15924 в верхнем регистре . Например, значение LOCALE_SNAME для конкретного языкового стандарта в узбекистанском языковом стандарте (латиница, Узбекистан) — "uz-Latn-UZ". Компонент скрипта не включается в тех случаях, когда язык обычно написан только в одном скрипте.
Порядок сортировки для языковых стандартов определяется с помощью идентификаторов порядка сортировки, например SORT_DEFAULT. Чтобы различать два или более порядка сортировки для одного языка и региона, имя языкового стандарта соответствует шаблону <language>-<REGION>\_<sort order>
. Если необходимо различать как скрипт, так и порядок сортировки, имя будет соответствовать шаблону <language>-<Script>-<REGION>\_<sort order>
. Порядок сортировки по умолчанию никогда не указывается явным образом, а только альтернативный порядок сортировки. Например, венгерский (Венгрия) с SORT_DEFAULT или числовой эквивалентной SORT_HUNGARIAN_DEFAULT обозначается как hu-HU. Венгерский (Венгрия) с порядком сортировки SORT_HUNGARIAN_TECHNICAL обозначается как "hu-HU_technl".
Для заменяющего языкового стандарта имя языкового стандарта должно совпадать с именем заменяемого языкового стандарта. Для дополнительного языкового стандарта имя языкового стандарта должно соответствовать шаблону <language>-<REGION>-x-<custom>
или <language>-<Script>-<REGION>-x-<custom>
, где <custom>
— это буквенно-цифровая строка, относяющаяся к дополнительному языковому стандарту. Например, дополнительный языковой стандарт, характерный для компании Fabricam, может называться en-US-x-fabricam.
Приложение может получить имена текущих языковых стандартов с помощью функций GetSystemDefaultLocaleName и GetUserDefaultLocaleName . Хотя каждый поток может получить и задать собственный идентификатор языкового стандарта с помощью GetThreadLocale и задать его с помощью SetThreadLocale, нет аналогичных функций для получения и задания языкового стандарта по имени.
Пользовательские языковые стандарты