Linux программирование в примерах
Шрифт:
Причина отсутствия изменений в том, что
13.2.8. Другие данные локали:
Хотя ранее мы сказали, что API
Заголовочный файл
Доступная информация поступает из нескольких категорий локали. В табл. 13.3 перечислены константы элементов, соответствующие категории локали и их значения.
Таблица 13.3. Значения элементов для
Элемент | Категория | Значение |
---|---|---|
ABDAY_1 , …, ABDAY_7 | LC_TIME | Сокращенные названия дней недели. Воскресенье является днем 1 |
ABMON_1 , …, ABMON_12 | LC_TIME | Сокращенные названия месяцев |
ALT_DIGITS | LC_TIME | Альтернативные символы для цифр; см. текст |
AM_STR , PM_STR | LC_TIME | Обозначения a.m/p.m. для локали. |
CODESET | LC_TYPE | Имя кодовой страницы для локали, т.е. использующиеся набор символов и кодировка |
CRNCYSTR | LC_MONETARY | Символ местной валюты, описанный ниже |
DAY_1 , …, DAY_7 | LC_TIME | Названия дней недели. Воскресенье является днем 1 |
D_FMT | LC_TIME | Формат даты |
D_T_FMT | LC_TIME | Формат даты и времени |
ERA_D_FMT | LC_TIME | Формат даты эры. |
ERA_D_T_FMT | LC_TIME | Формат даты и времени эры. |
ERA_T_FMT | LC_TIME | Формат времени эры. |
ERA | LC_TIME | Сегменты описания эры, см. текст. |
MON_1 , …, MON_12 | LC_TIME | Названия месяцев. |
RADIXCHAR | LC_NUMERIC | Символ системы счисления. Для базы 10 это символ точки в десятичной дроби. |
THOUSEP | LC_NUMERIC | Символ-разделитель тысяч |
T_FMT_AMPM | LC_TIME | Формат времени в записи a.m/p.m. |
T_FMT | LC_TIME | Формат времени. |
YESEXPR , NOEXPR | LC_MESSAGES | Строка, представляющая положительный и отрицательный ответы. |
Эра является определенным временем в истории. Поскольку она имеет отношение к датам и временам, она имеет наибольший смысл в странах, управляемых императорами и династиями. [144]
Спецификации эр POSIX могут определять эры ранее 1 г. н.э. В таких случаях у начальной даты большее абсолютное числовое значение, чем у конечной даты. Например, Александр Великий правил с 336 г. до н.э. по 323 г до н.э.
Значение, возвращенное '
144
Хотя американцы часто ссылаются на эры определенных президентов, они не являются частью национального календаря в том же смысле, как в Японии до Второй мировой войны или в докоммунистическом Китае — Примеч. автора.
Таблица 13.4. Компоненты спецификации эры
Компонент | Значение |
---|---|
Направление | Символы ' + ' или '– '. '+ ' означает, что эра отсчитывается от численно меньшего года к численно большему году, а '– ' означает обратный порядок |
Смешение | Ближайший к дате начала эры год |
Дата начала | Дата начала эры в виде 'гггг/мм/дд'. Это соответственно год, месяц и день. Годы до н.э используют для гггг отрицательные значения |
Дата конца | Дата завершения эры в том же самом виде. Допустимы два дополнительных вида: – * означает «начало времени», а +* означает «конец времени» |
Название эры | Название эры, соответствующее спецификации преобразования %EC функции strftime |
Формат эры | Формат года в пределах эры, соответствующий спецификации преобразования %EY функции strftime |
Значение
Наконец, '
13.3. Динамический перевод сообщений программ
Только что освещенные интерфейсы стандартной библиотеки С решают простые части проблемы локализации. Для денежных, числовых значений, значений времени и даты, также, как для проблем сортировки строк, применяется управление посредством таблиц специфичных для локали данных (таких, как списки названий месяцев и дней).
Однако, большая часть взаимодействия пользователя с текстовой программой осуществляется в виде выводимых сообщений, таких, как приглашения или сообщения об ошибках. Проблема заключается в необходимости избежания множества версий одной и той же программы, которые отличаются лишь содержанием строк сообщений. Решением де-факто в мире GNU является GNU
GNU
13.3.1. Установка текстового домена:
Законченное приложение может содержать множество компонентов: отдельные исполняемые файлы, написанные на С или C++ или на языках сценариев, которые также могут получить доступ к возможностям