Библиотека сайта rus-linux.net
Как установить locale ?
Способ установки средств locale может довольно сильно различаться в операционных системах от разных производителей, особенно для реализаций POSIX до 1996 года и переходных реализациий.
Как описано тут, структурно средства POSIX locale состоят из следующих компонентов :
- Набор библиотечных (libc) вызовов (locale API): setlocale(), isalpha(), toupper(), e.t.c.
- Переменные окружения, для управления средствами locale : LANG, LC_CTYPE. e.t.c.
- Утилита для получения информации о средствах locale : locale
- Исходные тексты описания locale : locale definitions, Charfcter Set Definitions File : /usr/share/i18n/*
- Утилита для изготовления (компиляции) объектов локализации : localedef
- Собственно объекты локализации (наборы данных locale) : /usr/share/locale/*
Предположим, что библиотека libc на Вашей системе содержит все необходимые вызовы. Иначе придется поменять библиотеку (или систему). :-)
В стандарте POSIX.2 (Утилиты командной строки) определенны две утилиты - locale и localedef. Если система отвечает стандарту POSIX.2:1996, на вашей машине они имеются.
Утилита locale служит для получения различной информации о текущих значениях категорий locale, o всех установленных в системе возможных locale и о внутренних характеристиках различных категорий locale.
Имея утилиту locale можно проверить наличие необходимых "объектов локализации", а потом включить необходимое языковое окружение.
Ситуация чуть осложняется, если необходимые "объекты локализации" отсутствуют. К счастью, стандарт POSIX варианта 1996 г. сделан более переносимым, не зависящим от конкретной реализации и все действия пользователя не различаюся от системы к системе и их внутренняя реализация скрыта за утилитами POSIX.2.
Если в системе не предустановлено нужные нам "объекты локализации", они могут быть добавлены в систему с помощью утилиты localedef путем компиляции специальных (текстовых) файлов описания параметров : Файла Описания Набора Символов (Characher Set Definition File) и Файла Описания Локализации (locales) . После этого они становится изветным системе и видимым по `locale -a`.
$ localedef -c -i ru_RU -f ISO_8859-5 ru_RU $ localedef -c -i ru_RU -f KOI8-R ru_RU.KOI8-R
Данные файлы в исходном (текстовом) виде можно получить из коллекции ftp://dkuug.dk/i18n или из комплекта исходных текстов библиотеки glibc 2.x (./localedata/* ).
Еще один вариант - это просто скопировать недостающие "объекты локализации" в двоичном виде. Некоторые производители UNIX поставляют для своих систем продукт "Language Kit", который есть ни что иное, как комплект данных файлов. К сожалению, стандарт POSIX никак не определяет внутренний формат объектов локализации. Поэтому "Language Kit" одной системы скорее всего не подойдет к другой.
Для расширения кругозора, можно ознакомится с примером реализации подсистемы locale в операционной системе Linux.
После выполнения необходимых устоновок, работоспособность locale можно проверить.
Содержание "Locale AS IT IS"