-----Original Message-----
From: Alexander Voropay <a.voropay@globalone.ru>
To: locale@sensi.org <locale@sensi.org>
Date: 17 августа 1999 г. 15:47
Subject: Re: locale во FreeBSD
> расскажите, пожалуйста, как
скомпилировать локаль во
>FreeBSD, мне нужна ru_RU.ISO-8859-5. что для этого
потребуется:
>файлы, программы, права рута? спасибо.
>
>система FreeBSD 2.2.8-RELEASE.
С locale во FreeBSD не очень хорошо. Вернее, все вызовы
типа setlocale(3) работают отлично. Но нету POSIX *утилит*
localedef(1) и locale(1). Поэтому скомпилировать
"объекты
локализации" - задача не тривиальная.
Да, нужны права root.
Необходимо поставить исходники FreeBSD : sshare и subin
$ cd /home/ftp/pub/FreeBSD/2.2.8-RELEASE/src
$./install.sh share
$./install.sh ubin
Скрипт install.sh положит все куда надо : в /usr/src
Далее смотри программушки : mklocale(1) - она
генерирует
LC_CTYPE и colldef(1) - генерирует LC_COLLATE. Живут
они соответственно в :
/usr/src/usr.bin/mklocale
/usr/src/usr.bin/colldef
Там же в ./data/* лежат файлы примеров - исходников
*.src . Они совсем не похожи на POSIX, но очень простые.
Собственно их-то и надо поправить и
скомпилировать.
Как - смотри Makefile. Для компиляции LC_COLLATE еще
будет нужен файлик описания CHARSET-а. Примеры
опять же есть в ./data .
Категория LC_TIME собирается по другому. В каталоге
/usr/src/share/timedef в ./data лежат исходники *.src .
Имена месяцев там идут просто открытым текстом,
поэтому этот файл можно просто перекодировать в
ISO.
А дальше - смотри как в Makefile.
Полученные файлики LC_TIME, LC_CTYPE и LC_COLLATE
нужно положить в каталог /usr/share/locale/ru_RU.ISO_8859-5
сделать export LANG=ru_RU.ISO_8859-5 и наслаждаться.
Во FreeBSD принято писать название CHARSET-а с "_"
а не через "-", то есть вот так : "ISO_8859-5".
Как сделать LC_NUMERIC и LC_MONETARY я не нашел.
Если будут трудности - пиши.
P.S. Результаты работы и *.src файлы нужно положить
на ftp
и сообщить URL людям. :-)
P.P.S. После этого все то же самое проделать для CP1251
и
MAC-CYRILLIC ;-)
From: Ivan Pascal <pascal@info.tsu.ru>
To: locale@sensi.org <locale@sensi.org>
Date: 18 августа 1999 г. 4:07
Subject: Re: locale во FreeBSD
>
> Как сделать LC_NUMERIC и LC_MONETARY я не нашел.
>
----------
SETLOCALE(3) FreeBSD Library Functions
Manual SETLOCALE(3)
.......
BUGS
The current implementation supports only the "C" and
"POSIX" locales for
all but the LC_COLLATE, LC_CTYPE, and LC_TIME categories.
.....
BSD June 9, 1993 3
-------
То есть - NUMERIC и MONETARY одни на все "локали" :
- сделать можно LC_CTYPE, LC_COLLATE, LC_TIME
- остальные категории для всех одинаковые и такие
как в "C"
--
Ivan U. Pascal | e-mail: pascal@tsu.ru
Administrator of | Tomsk State University
University Network | Tomsk,
Russia