stringtranslate.com

Локаль (программное обеспечение)

В вычислительной технике локаль это набор параметров , определяющих язык пользователя, регион и любые особые варианты предпочтений, которые пользователь хочет видеть в своем пользовательском интерфейсе . Обычно идентификатор локали состоит как минимум из кода языка и кода страны/региона. Локаль — важный аспект i18n .

Общие настройки локали

Эти настройки обычно включают следующие настройки формата отображения (вывода):

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

Поддержка языков программирования и разметки

В этих условиях

и других (в настоящее время) средах на основе Unicode , они определяются в формате, похожем на BCP 47. Обычно они определяются только кодами ISO 639 (язык) и ISO 3166-1 alpha-2 (страна из 2 букв).

Международные стандарты

В стандартных C и C++ локаль определяется в "категориях" LC_COLLATE (сортировка текста), LC_CTYPE (класс символов), LC_MONETARY (формат валюты), LC_NUMERIC (формат чисел) и LC_TIME (формат времени). Специальная категория LC_ALL может использоваться для установки всех настроек локали. [1]

Стандартных названий локалей, связанных со стандартами C и C++, не существует, за исключением названия «минимальной локали» «C», хотя формат POSIX является общепринятой базовой версией.

POSIX-платформы

На платформах POSIX , таких как Unix , Linux и других, идентификаторы локали определяются способом, аналогичным определению языковых тегов BCP 47 , но модификатор варианта локали определяется по-другому, а набор символов опционально включается как часть идентификатора. Формат POSIX или "XPG" - [language[_territory][.codeset][@modifier]] . (Например, австралийский английский, использующий кодировку UTF-8 , - en_AU.UTF-8 .) [2] Отдельно ISO/IEC 15897 описывает другую форму, language_territory+audience+application,sponsor_version , хотя весьма сомнительно, используется ли она вообще. [3]

В следующем примере приведен вывод команды localeдля чешского языка (cs), Чешская Республика (CZ) с явной кодировкой UTF-8 :

$ локальЯЗЫК=cs_CZ.UTF-8LC_CTYPE="cs_CZ.UTF-8"LC_NUMERIC="cs_CZ.UTF-8"LC_TIME="cs_CZ.UTF-8"LC_COLLATE="cs_CZ.UTF-8"LC_MONETARY="cs_CZ.UTF-8"LC_MESSAGES="cs_CZ.UTF-8"LC_PAPER="cs_CZ.UTF-8"LC_NAME="cs_CZ.UTF-8"LC_ADDRESS="cs_CZ.UTF-8"LC_TELEPHONE="cs_CZ.UTF-8"LC_MEASUREMENT="cs_CZ.UTF-8"LC_IDENTIFICATION="cs_CZ.UTF-8"LC_ALL=

Особенности платформ Microsoft

Windows использует определенные строки языка и территории. Идентификатор локали (LCID) для неуправляемого кода в Microsoft Windows — это число, например 1033 для английского языка (США), или 2057 для английского языка (Великобритания), или 1041 для японского языка (Япония). Эти числа состоят из кода языка (нижние 10 бит) и кода культуры (верхние биты), и поэтому часто записываются в шестнадцатеричной нотации, например 0x0409, 0x0809 или 0x0411. Microsoft начинает вводить интерфейсы прикладного программирования (API) управляемого кода для .NET, которые используют этот формат. Одной из первых, которая будет выпущена в целом, является функция для смягчения проблем с интернационализированными доменными именами , [4] но больше их в Windows Vista Beta 1.

Начиная с Windows Vista, были введены новые функции [5] , использующие имена локалей BCP 47 , чтобы заменить почти все API на основе LCID.

Формат имени локали, аналогичный POSIX, language[_country-region[.code-page]] доступен в UCRT (Universal C Run Time) Windows 10 и 11. [6]

Смотрите также

Ссылки

  1. ^ "LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME - cppreference.com". ru.cppreference.com .
  2. ^ "Переменные среды". pubs.opengroup.org .
  3. ^ "ISO/IEC JTC1/SC22 N610 [проект ISO/IEC 15897:1998(E)] Информационные технологии — Процедуры регистрации культурных элементов" (PDF) . 1998-11-17 . Получено 8 июня 2023 г. Для спецификаций культурного нарратива и локалей POSIX идентификатор токена будет следующим: 8_9+11+12,13_14
  4. ^ "Функция DownlevelGetLocaleScripts (Windows)". MSDN . Microsoft . Получено 2017-12-11 .
  5. ^ "Имена локалей (Windows)". MSDN . Microsoft . Получено 2017-12-11 .
  6. ^ «Имена локалей, языки и строки стран и регионов». learn.microsoft.com . 19 октября 2022 г.

Внешние ссылки