Читаем Linux для пользователя полностью

В стандарте POSIX (Portable Operating System) были определены средства локализации, которые состоят из следующих компонент:

• набор библиотечных (libc) вызовов (locale API): setlocale(), isalpha(), toupper(), и т.д;

• исходные тексты описания средств локализации, в том числе файл(ы) описания кодировки (Character Set Definition File);

• наборы данных для локализации, которые в Linux размещаются в каталогах /usr/share/i18n/* и /usr/share/locale/*;

• утилита для получения информации о средствах локализации: locale;

• утилита для изготовления (компиляции) объектов локализации: localedef;

• переменные окружения, для управления средствами локализации: LANG, LC_ALL, LC_CTYPE, LC_TIME, LC_COLLATE, LC_NUMERIC и LC_MONETARY (они соответствуют категориям локализации).

В табл.11.1 кратко перечислено, на что именно влияет та или иная из этих переменных (или категорий локализации).

Таблица 11.1. Категории локализации.

КатегорияОписание
LC_CTYPEОпределяет правила классификации и преобразования одиночных символов. Позволяет правильно определять вид символа: цифра, буква, значок, заглавная буква или прописная и т.д. Другими словами, включает правильную работу системных вызовов isalnum(), isalpha(), iscntrl(), isdigit(),… и т.п. для местного алфавита. Вдобавок, включает правильный перевод строчных - прописных букв: toupper() и tolower()
LC_COLLATEОпределяет правила сравнения и преобразования строк. Позволяет определять лексикографический порядок символов (порядок сортировки) в местном алфавите. Включает правильную работу strcoll() и strxfrm(). Оказывает непосредственное влияние на работу утилит типа sort и т.д.
LC_TIMEОпределяет правила национального представления времени и даты. Задает именование дней недели, месяцев и т.п. а также задает способ написания даты и времени (12/24). Hепосредственно влияет на strftime(), а через нее на утилиты date и т.д.
LC_NUMERICОпределяет правила национального представления чисел с плавающей точкой. Влияет на strtod() и форматы %f и %g printf(), scanf()
LC_MONETARYОпределяет правила национального представления денежных величин

Особая переменная LC_ALL служит для обращения одновременно ко всем категориям.

Заметим, что включение средств локализации изменяет также некоторые пути поиска, в частности, пути поиска к файлам помощи (man-страницам), так что вначале команда man ищет переведенные man-страницы и только при их отсутствии выдает информацию на английском.

Подводя краткий итог всему вышеизложенному, можно сказать, что процедура русификации системы состоит из следующих этапов:

• настройка средств локализации;

• русификация текстового режима (консоли);

• русификация графического режима;

• русификация используемого ПО;

• русификация процесса печати.

В последующих разделах каждый из этих этапов рассматривается по отдельности.

<p>11.2. Настройка системных средств локализации </p><p>11.2.1. Проверка наличия средств локализации</p>

Современные дистрибутивы Linux (а тем более русифицированные) по умолчанию содержат системные средства локализации, перечисленные в предыдущем разделе.

Чтобы убедиться в этом, проверьте, что у вас имеются каталоги /usr/share/locale/* и /usr/share/i18n/*, а также файл /etc/sysconfig/i18n.

Кроме того, дайте команду

[user]$ locale

В ответ вы должны получить значения, присвоенные переменным окружения для управления средствами локализации. Я, например, увидел следующее:

LANG=ru

LC_CTYPE="ru_RU.KOI8-R"

LC_NUMERIC="ru_RU.KOI8-R"

LC_TIME="ru_RU.KOI8-R"

LC_COLLATE="ru_RU.KOI8-R"

LC_MONETARY="ru_RU.KOI8-R"

LC_MESSAGES="ru_RU.KOI8-R"

LC_ALL=ru_RU.KOI8-R

Перейти на страницу:

Похожие книги

Архитектура операционной системы UNIX (ЛП)
Архитектура операционной системы UNIX (ЛП)

Настоящая книга посвящена описанию внутренних алгоритмов и структур, составляющих основу операционной системы (т. н. «ядро»), и объяснению их взаимосвязи с программным интерфейсом. Таким образом, она будет полезна для работающих в различных операционных средах. При работе с книгой было бы гораздо полезнее обращаться непосредственно к исходному тексту системных программ, но книгу можно читать и независимо от него.  Во-вторых, эта книга может служить в качестве справочного руководства для системных программистов, из которого последние могли бы лучше уяснить себе механизм работы ядра операционной системы и сравнить между собой алгоритмы, используемые в UNIX, и алгоритмы, используемые в других операционных системах. Наконец, программисты, работающие в среде UNIX, могут углубить свое понимание механизма взаимодействия программ с операционной системой и посредством этого прийти к написанию более эффективных и совершенных программ.

Морис Дж Бах , Морис Дж. Бах

ОС и Сети, интернет / ОС и Сети / Книги по IT