-------------------------------------------------------------------------
(С) Собченко Евгений (quaker@paco.net)
Оригинал статьи расположен по адресу
http://zipper.paco.net/~quaker/rus.txt
-------------------------------------------------------------------------




Данная документация содержит инструкцию по русификации
текстового и графического режимов операционной системы Linux.
Документация гарантирует русификацию:
RedHat 5.0; RedHat 5.1; RedHat 5.2; RedHat 6.0;
Mandrake 5.1; Mandrake 5.2; Mandrake 5.3; SlackWare 3.6
дистрибутивов Linux.


    I. РУСИФИКАЦИЯ ТЕКСТОВОГО РЕЖИМА




Итак, что Вам потребуется для русификации текстового режима Linux?

Естествено, набор консольных кириллических шрифтов. Обычно они присутствуют в
каждом дистрибутиве Linux и находятся в директории /usr/lib/kbd/consolefonts
вместе со всеми остальными шрифтами. И, конечно же, русская консольная
раскладка (console character map).
Первое, что Вам следует сделать - выбрать, какой консольной кодировкой Вы
будете пользоваться. А их всего два типа. Сейчас попробую описать их
установку.

Если Вы являетесь приверженцем программ, используемых непосредственно в
текстовом режиме, то бишь в консоли, Вы можете предпочесть шрифтыс Alt
кодировкой и консольной раскладкой. Ее основное достоинство заключается
в том, что она позволяет отображать символы псевдографики.

Ниже перечислены команды, последовательное выполнение которых, позволит Вам
использовать Alt кодировку:

$ loadkeys /usr/lib/kbd/keymaps/i386/qwerty/ru1.map.gz

$ setfont /usr/lib/kbd/consolefonts/Cyr_a8x16

$ mapscrn /usr/lib/kbd/consoletrans/koi2alt

$ echo -ne "\033(K"

Первая команда загружает карту русскоязычной раскладки клавиатуры ru1.map,
находящуюся в /usr/lib/kbd/keymaps/i386/qwerty/. В более ранних дистрибутивах
Linux карты раскладки (keyboard maps) находятся в /usr/lib/keytables.
Вторая команда загружает экранный шрифт Cyr_a8x16, непосредственно
необходимый для Alt кодировки и находящийся в /usr/lib/kbd/consolefonts.
Третья команда загружает файл-перекодировщик. И последняя команда является
своеобразной магической последовательностью, только после выполнения которой
Вы сможете вводить символы русского алфавита.

Кроме Alt кодировки Вы можете использовать голую koi кириллическую
кодировку. Она не позволяет отображать псевдографику, но зато русские
буквы будут вводиться без лишней перекодировки.

Ниже перечислены команды, последовательное выполнение которых позволит Вам
использовать koi кодировку:

$ loadkeys /usr/lib/kbd/keymaps/i386/qwerty/ru1.map.gz

$ setfont /usr/lib/kbd/consolefonts/koi8-8x16

Первая комманда загружает соответствующую раскладку клавиатуры.
Вторая комманда загружает экранный шрифт koi8-8x16, непосредственно
необходимый для koi кодировки.

После выполнения этих команд как для Alt, так и для koi кодировки Вы
можете переключать раскладку клавиатуры для ввода кириллических
символов с помощью клавиши правый Alt. В любом случае Вы можете изменить
клавишу-переключатель. Для этого запустите программу showkey.
Находясь в англоязычном регистре нажмите клавишу-переключатель, которая
переключает раскладку клавиатуры в данный момент. Программа выдаст вам
код этой клавиши, запишите его. Затем нажмите ту клавишу, которую Вы
хотите сделать переключателем и запишите ее код. После проделанной
процедуры подождите 10 секунд, пока программа не завершит работу. (Другим
способом прекратить ее выполнение нельзя!) Теперь откройте (предварительно
распаковав) используемый Вами файл раскладки, надйдите в нем код используемой
вами в данный момент улавиши-переключателя раскладки и запомните его значение.
Поменяйте местами значения кодов этих клавиш и считайте, что все готово.


Для упрощения работы можно написать shell-скрипт, загружающий нужную для Вас
кодировку автоматически. Для автоматизации загрузки koi кодировки создайте
файл с любым названием, например rc.kbdkoi следующего содержания:

-------------------------------------------------------------
#!/bin/sh
if [ notset.$DISPLAY != notset. ]; then
echo "^Basename $0: cannot run under X"
exit
fi

loadkeys /usr/lib/kbd/keymaps/i386/qwerty/ru1.map.gz
setfont /usr/lib/kbd/consolefonts/koi8-8x16
--------------------------------------------------------------

После чего разрешите права на запуск этого файла, коммандой chmod +x <имя
файла>.

Для автоматизации загрузки Alt кодировки, создайте другой файл, например
rc.kbdalt :

--------------------------------------------------------------
#!/bin/sh
if [ notset.$DISPLAY != notset. ]; then
echo "^Basename $0: cannot run under X"
exit
fi

loadkeys /usr/lib/kbd/keymaps/i386/qwerty/ru1.map.gz
setfont /usr/lib/kbd/consolefonts/Cyr_a8x16
mapscrn /usr/lib/kbd/consoletrans/koi2alt
echo -ne "\033(K"
--------------------------------------------------------------

Разумеется, можно запускать эти shell-скрипты при загрузке...
Для этого скопируйте один из этих файлов в директорию /etc/rc.d.
Затем откройте файл rc.local, который находится в той же директории
и в конце этого файла укажите полный путь к нужному вам скрипту,
а именно /etc/rc.d/rc.kbdkoi или /etc/rc.d/rc.kbdalt.

ВНИМАНИЕ!
Если вы используете RedHat Linux 6.0 или выше, то вместо комманды "loadkeys"
рекомендуется использовать consolechars!



    II. РУСИФИКАЦИЯ ГРАФИЧЕСКОГО РЕЖИМА (Xwindows)




Подобно консольному режиму, Xwindows также требует некоторой
настройки. Настройка включает в себя решение проблемы ввода символов
русского языка и установку шрифтов для Xwindows. Эти действия обсуждаются
ниже.

Первое что Вы должны сделать для русификации Xwindows, это достать
кириллические шрифты KOI8-R. Киррилические шрифты для Xwindows входят во все
(почти во все ;) дистрибьютивы Linux, вышедшие после 1996 года и являются
составной частью XFree86. Вам крупно не повезло, если Вы используете
дистрибутив RedHat Linux версии 5.0, так как эта версия Linux не содержит
набора кириллических шрифтов KOI8-R. Поэтому Вам следует проверить
установлены ли эти шрифты в Вашей системе, а именно:

1. Зайдите в директорию /usr/X11R6/lib/X11/fonts/ и посмотрите,
есть ли там директория cyrillic. Если да, то зайдите в нее и убедитесь,
что все 68 шрифтов на месте ;)
2. Либо наберите: find / -name crox\*.pcf\*
Эта комманда произведет поиск шрифтов по всем доступным партициям
на вашем жестком диске и выдаст результы.

Если шрифты найдены, считайте, что у Вас нет никаких проблем с
русификацией , а ежели Вы ничего не нашли, то не огорчайтесь,
так как набор шрифтов KOI8-R лежит в каждом ftp архиве любого из
дистрибутивов Linux либо на официальном сайте XFree86
(http://www.xfree86.org/).

Ну а теперь, когда у Вас есть шрифты, создайте директорию для них.
Поместите их, в /usr/lib/X11/fonts/cyrillic для настройки всей системы,
или просто создайте каталог в домашней директории для персонального пользования.
Если новые шрифты поставляются в формате BDF (*.bdf файлы), Вы
должны скомпилировать их. Для каждого шрифта выполните:
bdftopcf -o <имя_шрифта>.pcf <имя_шрифта>.bdf .
После этого Вам необходимо выполнить комманду mkfontdir, находясь
в директории со шрифтами. Эта команда создаст два дополнительных файла,
в которых находится список шрифтов в данной директории с полными именами.
К этому списку будет обращаться X-сервер для идентефикации шрифтов. Обычно
это файлы "fonts.dir" и "fonts.alias".
Если, ко всему прочему, Ваш X-сервер поддерживает сжатые шрифты,
сожмите их с помощью программы compress
(для последних версий XFree86 можно сжать шрифты с помощью программы gzip).
После помещения шрифтов в какую-либо директорию, Вам необходимо сделать этот
каталог известным для X-сервера. Для этого откройте файл
конфигурации XFree, обычно он находится в директории /etc/X11 и называется
XF86Config. (Ежели Вы не смогли найти этот файл, читайте man по XFree86.)
Итак, файл конфигурации X-сервера перед Вами. Найдите комментарий
"# Multiple FontPath entries are allowed (they are concatenated together)".
В следующей строке находятся пути к шрифтам. Добавьте туда путь к
вашим кириллическим шрифтам:

FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"

Естественно, если шрифты установлены в другом месте, путь должен быть
откорректирован.
ВНИМАНИЕ! ПУТЬ К КИРИЛЛИЧЕСКИМ ШРИФТАМ ДЛЯ X-СЕРВЕРА ДОЛЖЕН НАХОДИТЬСЯ
ПЕРВЫМ В СПИСКЕ ПУТЕЙ! В противном случае у Вас могут возникнуть проблемы.
Если вы все проделали корректно, я могу Вас поздравить! Русскоязычные
символы уже могут отображаться на вашем экране! ;)
Следующим этапом является решение проблемы ввода кириллических символов.
Проблему можно решить, используя программу Xkb, но она очень сложна в
настройке, поэтому новичкам будет сложно в ней разобраться.
Посему найдите или скачайте из Internet программу xruskb. Я не буду
излагать алгоритм установки xruskb, так как он внятно изложен в REEDME
файле архива программы. Итак, вы установили xruskb. Не надо ругаться
и бить кулаками о клавиатуру, если в нужных Вам приложениях не вводятся
символы русского языка. Основным приложением, используемым в Xwindows
является терминал. Разберем русификацию xterm. Для нормального
ввода кириллических символов xterm должен использовать шрифт
KOI8-R. Разумеется, по-умолчанию он его не использует. Загрузите уже
знакомую Вам ранее программу xfontsel и сконфигурируйте сами для себя
шрифт с нужными параметрами. Предположим, что Вы это сделали.
Запустите xterm с опцией -font <полное_название_шрифта).
Например:
$ xterm -font *-fixed-*-*-medium-*-15-*-*-*-koi8-r
(это лишь пример, я придумал его с налету ;)
После корректно проделанной операции, ваш терминал запишет по-русски.
Очень часто с программой xterm возникают необьяснимые проблемы, поэтому
очень советую использовать такие аналоги как rxvt или aterm.
Теперь у Вас есть общее представление о том, как русифицировать парограммы
для Xwindows, и, если у Вас таки возникли проблемы с вводом русских букв,
не огорчайтесь, убедитесь, что нужный вам терминал или какой-либо иной продукт
использует правильный шрифт. И вообще, читайте man'ы, там все написано ;)

Удачи!