Страница 189 из 253
Гарантируется существование двух локалей, «С» и «POSIX». Они действуют в качестве локали по умолчанию, предоставляя окружение 7-разрядного ASCII, поведение которого такое же, как на традиционных системах Unix без поддержки локалей. В противном случае, локали обозначают язык, страну, а также могут включать сведения о наборе символов. Например, 'it_IT' используется для итальянского языка в Италии с использованием системного набора символов по умолчанию, a 'it_IT.UTF-8' использует кодировку UTF-8 для набора символов Unicode.
Дополнительные подробности об именах локалей можно найти в справочной странице GNU/Linux setlocale(3). Обычно дистрибутивы GNU/Linux устанавливают для системы локаль по умолчанию при ее установке, основываясь на языке, выбранном тем кто устанавливал ее, и пользователям больше не приходится об этом беспокоиться.
13.2.1. Категории локалей и переменные окружения
Заголовочный файл <locale.h> определяет функции и структуры локали. Категории локали определяют разновидности информации, которые будут для программы зависимы от локали. Категории доступны в виде набора именованных констант. Они перечислены в табл. 13.1.
Таблица 13.1. Константы категорий локалей ISO С, определенные в <locale.h>
Категория Значение LC_ALL Эта категория включает всю возможную информацию локали. Она состоит из оставшейся части элементов этой таблицы LC_COLLATE Категория для сравнения строк (обсуждаемого ниже) и областей регулярных выражений LC_CTYPE Категория для классификации символов (заглавные, строчные и т.д.) Это влияет на сопоставление регулярных выражений и функции is<i>XXX</i>() в <ctype.h> LC_MESSAGES Категория для специфичных для локали сообщений. Эта категория вступает в игру с GNU gettext, которая обсуждает далее в главе LC_MONETARY Категория для форматирования денежной информации, такой, как локальные и международные символы для местной валюты (например, $ против USD для доллара США), форматирования отрицательных величин и т.д. LC_NUMERIC Категория для форматирования числовых значений LC_TIME Категория для форматирования дат и времени