Original site in Ukraine | Mirror in Canada
koi8-r win-rus alt-rus mac-rus koi8-u win-ukr alt-ukr mac-ukr

The Linux Ukrainian HOWTO

Не очень короткое предисловие...
На этой странице я попытаюсь осветить все проблемы, которые приходится решать при украинизации (точнее - локализации) Линукса. Все настройки описываются для RedHat 4.x, но особых проблем при применении их для других поставок не должно быть. Конечно, решить любую проблему можно несколькими различными путями, но на данной странице мало внимания уделяется всем возможным вариантам. Так что если кто-то знает какие-нибудь тонкости и хитрости украинизации различных программ, я с радостью выслушаю их и опишу здесь для общего ознакомления.
Очень рекомендую почитать The Linux Cyrillic HOWTO в изложении . Также советую сходить на KOI8-R References (Russian Net Character Set) Андрея Чернова.
К сожалению, в момент создания данной страницы rfc на koi8-u еще не принят, поэтому все нижеизложенное основывается на koi8-u draft.
В будущем будет предпринята попытка создать "easy to install package", содержащий все необходимые файлы и утилиты для украинизации. И конечно же я буду рад любым замечаниям, пожеланиям и особенно похвалам.
Так что не забывайте сюда заглядывать, может что-то будет меняться...
[ 21.04.98 ] rfc уже приняли! Его номер - rfc 2319. С чем всех и поздравляю!
[ 05.08.98 ] В связи с тем, что я, наконец-то, получил возможность поиздеваться над glibc-версией Linux-а, а именно RedHat 5.1, я добавил некоторую информацию, связанную с различиями в украинизации libc-5 и glibc-2 поставками системы. Эти различия проявились пока только в Локализации. Также были убраны "лишние" мелькающие иконки, т.к. страница выглядела очень пестрой.

Содержание:


Консоль
Для украинизации консоли лучше использовать пакет ruscii от . Перекодировка из koi8-u осуществляется на лету. Т.е. ввод и хранение информации происходит в koi8-u, а отображение на экране - в ruscii. Такая странная на первый взгляд техника применяется для того, чтобы символы псевдографики изображались корректно, например в Midnight Commander (mc) или Demos Commander (deco).
Берется пакет console-koi8u.tgz (ftp.cn.ua 12109 байт) и разворачивается относительно /usr/lib/kbd или другого каталога, где находятся шрифты и раскладки клавиатуры для консоли.
tar -zxvf console-koi8u.tgz -C /usr/lib/kbd
Теперь следует положить файл keytable (ftp.cn.ua 680 байт) в /etc/rc.d/init.d или сверить его с уже имеющимся там. Не забыть установить права доступа:
chmod a+x keytable
В /etc/rc.d/rc?.d проверить наличие ссылок S??keytable на /etc/rc.d/init.d/keytable. А в /etc/sysconfig поместить файл keyboard (ftp.cn.ua 116 байт). Предполагается, что в компьютере видеоадаптер VGA или лучше. Для EGA в файле /etc/sysconfig/keyboard в строке, содержащей SCREENFONT="/usr/lib/kbd/consolefonts/RUSCII_8x16" заменяется 8x16 на 8x14, а для CGA - на 8x8.
Во время очередной загрузки компьютера автоматически будет активизирована поддержка koi8-u. Переключение клавиатуры осуществляется правой клавишей Ctrl для русского языка и правой клавишей Alt - для украинского. Для ручной активизации следует выполнить команду
/etc/rc.d/init.d/keytable start
Следует заметить, что ввод русских или украинских букв в командной строке (в shell) невозможен без правильной настройки файла ~/.inputrc
Для корректной работы joe его следует запускать с ключом -asis. Для использования less надо установить переменную окружения LESSCHARSET - например, в bash это выглядит так:
export LESSCHARSET=koi8-r


Локализация
Локализация нужна для правильной сортировки, вывода денежной единицы, даты и времени в локальном формате. Для работы locales требуется Linux libc 5.4.x с поддержкой locales или glibc 2.x. Дальнейшее описание приводится для Linux libc 5.4.33. locale-ua-1.2.tgz (ftp.cn.ua 4816 байт) [ 03.05.98 ] разворачивается в каталог /usr/share/locale командой
tar -zxvf locale-ua-1.2.tgz -C /usr/share/locale
[ 05.08.98 ] В случае с glibc надо использовать locale-ua-glibc-1.2.tgz (ftp.cn.ua 22102 байт). Для установки следует произвести аналогичные предыдущим действия:
tar -zxvf locale-ua-glibc-1.2.tgz -C /usr/share/locale
Этот пакет состоит из uk_UA и ru_UA locales. Первая часть в названии означает язык, на котором будет "говорить" система, а вторая - регион, в котором будет использоваться эта локализация. Таким образом uk_UA содержит правила сортировки украинских букв, названия денежной единицы, дней недели и месяцев на украинском языке, в то время, как в ru_UA все названия на русском языке.
Для того, чтобы сообщить приложениям, поддерживающим локализацию, о текущей ее установке, надо установить переменную окружения LANG (если устанавливаются отдельные части локализации, то - LC_COLLATE для сортировки, LC_CTYPE для классификации символов, LC_MESSAGES для определения возможных вариантов ответов "да/нет", LC_MONETARY для описания денежной единицы, LC_NUMERIC для числовых разделителей, LC_TIME для описания даты и времени и LC_ALL для всего вместе):
export LANG=uk_UA
Проверить текущую локализацию можно командами locale и cal. Первая выдает установки вышеописанных переменных окружения, а вторая выводит календарь на текущий месяц - в случае правильной работы locales названия месяца и дней недели будут на украинском для uk_UA и на русском для ru_UA.
Также вышеуказанные locales можно получить из исходных текстов locale-ua-1.2.src.tgz (ftp.cn.ua 53635 байт) [ 03.05.98 ] командами:
tar -zxvf locale-ua-1.2.src.tgz -C /usr/share/i18n
cd /usr/share/i18n/locale
localedef -ci uk_UA -f KOI8-U uk_UA
localedef -ci ru_UA -f KOI8-U ru_UA
После чего в каталогах /usr/share/locale/uk_UA и /usr/share/locale/ru_UA появятся соответственно uk_UA и ru_UA locales. Следует отметить, что местоположение файлов локализации можно узнать по команде
localedef --help
[ 05.08.98 ] В glibc-версии названия каталогов с исходными файлами локализации в /usr/share/i18n изменились: charmap на charmaps и locale на locales. Поэтому устанавливать надо файл locale-ua-glibc-1.2.tgz также, как описано выше. Кроме измененных названий каталогов в нем отсутствует файл en_DK, который используется как шаблон в ru_UA и uk_UA и который входит в поставку. Также в RedHat 5.1 стали использовать локализацию такие утилиты, как ls и date.
[ 03.05.98 ] В связи с выходом rfc на koi8-u locales были немного изменены. Также ua_UA был переименован в uk_UA.


X-Window
Украинизация X-Window, как и консоли, состоит из установки экранных шрифтов и переключателя клавиатуры. Все сказанное ниже относится к XFree86, в других версиях некоторые моменты могут отличаться. Font server в X-Window поддерживает как масштабируемые, так и немасштабируемые шрифты. Их в Internet находится достаточное количество, как русских, так и украинских.
Для установки Cronyx шрифтов koi8-r надо взять пакет fonts-2.0.tgz (ftp.cn.ua 830374 байт) и развернуть его в каталог /usr/X11R6/lib/X11/fonts следующей командой:
tar -zxvf fonts-2.0.tgz -C /usr/X11R6/lib/X11/fonts
Также эти шрифты можно получить из исходных текстов fonts-2.1.1-src.tgz (ftp.cn.ua 165484 байт):
tar -zxvf fonts-2.1.1-src.tgz
cd xrus-2.1.1-src

Затем поправить Makefile: снять комментарий со строки DIRS = 75dpi 100dpi misc, закомментировать строку DIRS = 75koi8 75dpi 100dpi misc и запустить
make X11R6
Украинские Gemini koi8-u шрифты устанавливаются из пакета gemini-koi8-u.tgz (ftp.cn.ua 449236 байт) в каталог /usr/X11R6/lib/X11/fonts
tar -zxvf gemini-koi8-u.tgz -C /usr/X11R6/lib/X11/fonts
Исходные тексты этих шрифтов находятся в пакете X-koi8u.tgz (ftp.cn.ua 90253 байт) и устанавливаются следующим образом:
mkdir X-koi8u
tar -zxvf X-koi8u.tgz -C X-koi8u
cd X-koi8u
make
make install

В файле /etc/X11/XF86Config в секции "Files" исправить параметр FontPath - в начало добавить пути к новым шрифтам:

Section "Files"
   RgbPath    "/usr/X11R6/lib/X11/rgb"
   FontPath   "/usr/X11R6/lib/X11/fonts/ukr"
   FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
   FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
   FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"
   FontPath   "/usr/X11R6/lib/X11/fonts/Type1"
   FontPath   "/usr/X11R6/lib/X11/fonts/Speedo"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi"
   FontPath   "/usr/X11R6/lib/X11/fonts/100dpi"
EndSection
В каталоге /usr/X11R6/lib/X11/fonts/ukr находятся koi8-u gemini шрифты, а в каталогах /usr/X11R6/lib/X11/fonts/cyrillic/* - koi8-r cronyx шрифты. Следует обратить внимание на порядок указания путей: так во время использования какой-нибудь программой шрифта без указания его точных параметров (foundry, registry, encoding и т.д.) шрифт будет искаться сначала в каталоге ukr, затем в cyrillic, а затем в остальных каталогах.
Для переключения клавиатуры с одной раскладки на другую следует установить пакет xruskb-1.5.0.tar.gz (ftp.cn.ua 71029 байт) от . Для его компиляции нужны библиотеки Motif, Lesstif или Xaw. В случае отсутствия этих библиотек xrus все-равно будет работать, но текущее состояние раскладки клавиатуры на экране отображаться не будет.
tar -zxvf xruskb-1.5.0.tar.gz
cd xruskb-1.5.0
./configure
make
make install
После этого в каталог /usr/local/xrus (или в тот, в который проинсталлировался xrus) разворачивается jcuken-ukr.tgz (ftp.cn.ua 2565 байт), в /usr/X11R6/lib/X11/app-defaults переписывается файл Xrus (ftp.cn.ua 10024 байт) и в файле /etc/X11/xinit/xinitrc перед запуском vwm (Virtual Window Manager) добавляется команда запуска xrus.
Уже откомпилированные версии xrus 1.4.2 с динамической и статической поддержкой Motif (xrus.dynamic-Motif.tgz (ftp.cn.ua 15634 байт) и xrus.static-Motif.tgz (ftp.cn.ua 434882) соответственно) разворачиваются в каталог /usr/local/xrus и настраиваются так-же, как описано выше для пакета с исходными текстами.

Netscape
К сожалению, ни Netscape Navigator, ни Netscape Communicator ничего не знают про koi8-u, т.к. rfc на koi8-u еще не принят. Для просмотра WWW и чтения писем/новостей на украинском языке можно настроить кодировку User-Defined - указать koi8-u шрифты в Edit->Preferences->Fonts. Но писать в этой кодировке не следует, так как не все смогут это прочесть.
Все остальное, вроде списка новостей и писем, списка папок и конференций, всплывающих подсказок и т.д., можно украинизировать путем установки файла .Xdefaults (ftp.cn.ua 1960 байт) в домашний каталог или добавлением его к уже имеющемуся.


Apache
Для корректного представления web-страниц в различных кодировках надо установить Russian Apache apache_1.2.6rusPL22.2.tar.gz и в его конфигурационный каталог (обычно /etc/httpd/conf) развернуть украинские таблицы перекодировки apache-ukr-tables.tgz (ftp.cn.ua 5582 байт):
tar -zxvf apache-ukr-tables.tgz -C /etc/httpd/conf
[ 03.05.98 ] Последняя версия Russian Apache 1.2.6 PL22.2


Wabi
Wabi 2.0 представляет собой эмулятор MS Windows 3.x. Он использует Windows ttf-шрифты, которые уже содержат украинские буквы. А для переключения клавиатуры можно использовать пакет xruskb с украинскими раскладками jcuken-ukr, которые описываются в разделе X-Window и содержат русскую и украинскую раскладки в кодировке cp1251.


KDE
Для переключения клавиатуры в KDE (K Desktop Environment) можно использовать пакет xruskb, описанный в разделе X-Window, но существует специально созданная для этого программа kikbd-0.1.6.tgz (ftp.cn.ua 127093 байт). После инсталляции, в каталог /usr/local/kde/share/apps/kikbd разворачивается пакет украинских раскладок koi8-u и cp1251 kikbd-ukr.tgz (ftp.cn.ua 1261 байт)
[ 24.02.98 ] Новая версия 0.1.7 уже содержит украинские раскладки клавиатуры и другие полезные новшества.
[ 21.04.98 ] Последняя версия - kikbd-0.2.1.tgz


PostgreSQL
В данном разделе описывается не украинизация, а доработка PostgreSQL для работы с разными кириллическими кодировками, в том числе и украинскими, такими как koi8-u, cp1251 и т.д. Дело в том, что клиент SQL может работать на любой платформе, например в Windows через ODBC и использовать при этом кодировку cp1251, в то время, как сервер обычно использует koi8 кодировку. Данный патч призван решить эту проблему путем перекодировки информации из одной кодовой страницы в другую в зависимости от адреса клиента. pgsql-charsets-6.3-4.patch.gz (ftp.cn.ua 6653 байт) устанавливается на исходный код PostgreSQL 6.3 beta (snapshot от 18.02.98 или позднее) в каталоге /usr/src/pgsql командами:
gzip -d pgsql-charsets-6.3-4.patch.gz
mv pgsql-charsets-6.3-4.patch /usr/src/pgsql/src
cd /usr/src/pgsql/src
patch -p0 <pgsql-charsets-6.3-4.patch
autoconf
./configure --enable-recode
gmake all
gmake install
[ 10.03.98 ] Релиз PostgreSQL 6.3 содержит вышеописанный патч по перекодировке! К большому сожалению и по непонятной причине, информация в файлах каталога src/data оказалась "продублирована". Это не сказывается на работе перекодировщика, но факт остается фактом...
Как и в случае с патчем, для включения перекодировщика следует запустить:
./configure --enable-recode
gmake all
gmake install
[ 21.04.98 ] В версии 6.3.1 вышеописанный недочет был исправлен. Последняя версия - PostgreSQL 6.3.2


PostScript
Работы по руссификации/украинизации PostScript в Linux, находятся по адресу ftp://ftp.cn.ua/pub/unix/koi8-u/fonts . В этом разделе архива собраны русско-украинские шрифты. PostScript шрифты находятся в архиве Type1.tgz. Скрипты, которые необходимы для того, чтобы заставить Linux печатать по русски на принтер находятся в каталоге utils . Рекомендую прочитать файлы README в соответствующих каталогах, для более детального обьяснения. При возниконовении каих-либо вопросов касающихся работе с PS-Type1, пожалуйста пишите по адресу


Ссылки

Rated by PING
Последние изменения внесены Last changes.
© Copyright 1998, 1999, 2000 Denis V. Dmitrienko. All Rights Reserved.

Ukrainian translation and maintaining mirror in Canada by
Counter