Приложение В Русификация Linux
Русификация консоли
Настройка системы локализации
Русификация Х Window System
Русификация без Xkb
Русификация с использованием Xkb
Дополнительные ресурсы
Приложение В
Русификация Linux
Процесс русификации операционной системы Linux можно условно разделить на три этапа:

1. Русификация консоли.

2. Настройка системы локализации (⌠установка локали■).

3. Русификация Х Window System.

Ниже мы опишем, что же нужно предпринять на каждом из этих шагов.

Русификация консоли Для того чтобы русифицировать консоль, необходимо настроить как правильный вывод символов на экран, так и ввод их с клавиатуры. Начнем с вывода символов.

Как Linux осуществляет вывод какой-либо строки на экран? Сначала строка пропускается через так называемую screen map (карту соответствия), перекодирующую выводимые символы в соответствии с используемым терминалом шрифтом. Это позволяет, в принципе, использовать различные кодировки, не изменяя шрифт на консоли.

В Linux и прочих Unix-подобных системах в качестве основной русской кодировки используется кодировка KOI8-R. У этой кодировки есть много преимуществ по сравнению с используемыми в других системах IS08859-5 и кодовыми страницами 1251 и 866, но мы не будем их здесь обсуждать.

Итак, что же нужно сделать, чтобы настроить вывод символов в кодировке KOI8 на экран?

Во-первых, мы должны загрузить русский шрифт. Загрузка шрифта в Linux выполняется при помощи команды setfont. В принципе, в комплект поставки Linux входят КOI8-шрифты, но они весьма плохо выглядят, поэтому мы используем шрифт Суг_а8х16 в кодировке, соответствующей кодовой таблице 866.

В файл /etc/rc.d/rc.font добавьте строку

setfont Cyr_a8x16 или, если команда setfont уже присутствует в этом файле, замените указанный после нее шрифт на Суr_а8х16.

Во-вторых, мы должны установить необходимую карту соответствия, которая позволит ⌠на лету■ перекодировать символы из KOI8 в 866 для их корректного вывода на экран при помощи установленного шрифта. Установка карты соответствия выполняется при помощи команды mapscrn.

В файл /etc/rc.d/rc.font добавьте строку

mapscrn koi2alt Однако того, что мы сделали, еще не достаточно. На каждой консоли, на которой вам нужны русские буквы, карта соответствия должна быть активизирована. Для этого на соответствующую консоль должна быть выведена ⌠магическая последовательность■ ESC-(K. Для вывода этой последовательности вы можете использовать команду echo -ne '\033(К'. Параметр -n запрещает вывод символа новой строки по окончании работы команды, параметр -е указывает, что вместо выражений вида \ххх должен выводиться символ с восьмеричным кодом ххх. В данном случае будет выведен символ с кодом 033 ≈ то есть ESC.

Конечно, вы можете каждый раз вводить эту команду вручную на той консоли, на которой вам нужны русские буквы, но этот процесс можно автоматизировать.

В файл /etc/rc.d/rc. local добавьте следующий текст:

for i in 1 2 3 4 5 6
do
echo -ne '\033(K' > /dev/tty$i
done
Эта последовательность команд определяет цикл (for ... do ... done), в котором переменная i последовательно принимает значения 1-6 (i in 1 2 3 4 5 6). В теле цикла выполняется вывод нужной ⌠магической последовательности■ ESC-(К на консоль с номером i (/dev/tty$i, знак $ указывает, что вместо $i должно быть подставлено значение переменной, то есть последовательно 1,2, ...,6).

На этом настройка вывода на экран завершена.

Для того чтобы вы могли не только видеть на экране русские буквы, но и иметь возможность вводить их с клавиатуры, необходимо загрузить при помощи команды loadkeys нужную клавиатурную раскладку.

В файл /etc/rc.d/rc.localдобавьте команду

loadkeys ru1 Раскладка ru1 позволит вам вводить символы в кодировке KOI8, переключаясь между латинской и русской раскладками при помощи правой клавиши Alt.

Теперь вы можете перезагрузить компьютер или просто вручную выполнить описанные команды.

Однако на этом русификация консоли не закончена. Если вы попытаетесь ввести что-либо русскими буквами непосредственно в командной строке, то у вас, скорее всего, ничего не получится. Нам еще предстоит объяснить, как трактовать русские символы, трем важным программам ≈ bash, ls и less.

Начнем с bash ≈ интерпретатора командной строки ≈ той программы, которая выводит приглашение $ (или #, если вы работаете от имени пользователя root, что очень не рекомендуется) и ожидает ввода команд. Для управления поведением bash при использовании символов из второй половины кодовой таблицы используется файл .inputrc, который находится в домашнем каталоге пользователя.

Создайте в своем домашнем каталоге файл .inputrc, содержащий следующие строки:

set meta-flag on
set convert-meta off
set output-meta on
Выйдите из системы (введя logout) и войдите в нее снова. Все, теперь вы можете вводить русские буквы в командной строке и даже создавать файлы с русскими именами. Попробуйте ввести :>"Привет, мир", чтобы создать пустой файл с именем Привет, мир.

Но что это? При попытке просмотреть содержимое каталога, в котором создан файл с русским именем, вместо русских букв написаны какие-то числа и вопросительные знаки? Для того чтобы команда ls корректно отображала русские имена файлов, сделайте следующее.

В конец файла /etc/profile добавьте строку

alias ls='ls -N $LS_OPTIONS' Вы можете и не делать этого, а просто вызывать ls с ключом -N, если хотите видеть русские имена файлов.

Наконец, последняя программа, которую мы хотим ⌠образумить■, это less ≈ программа постраничного просмотра файлов. Чтобы less корректно выводила русские буквы, необходимо установить переменную окружения LESSCHARSET.

В конец файла /etc/profile впишите строчку

export LESSCHARSET=latin1 На этом русификация консоли закончена. Для того чтобы сделанные нами в файле /etc/profile изменения вступили в силу, вы должны выйти из системы и войти в нее снова.
Настройка системы локализации Вообще говоря, настройка системы локализации ≈ или, как говорят, ⌠установка локали■ ≈ не обязательна для русификации системы. Однако она весьма полезна. Настройка системы локализации подразумевает установку значения переменной LANG и размещение в системе соответствующих файлов данных. Значение переменной LANG обычно имеет вид <язык>_<страна>,<набор_символов>. Файлы данных позволяют приложениям определять, какие символы являются буквами в данном языке, в каком порядке они расположены (чтобы корректно производить сортировку), каков формат записи даты и прочие региональные установки.

По историческим причинам (так было сделано в дистрибутиве Red Hat) на многих системах значение LANG установлено в ru_SU, KOI8-R. Эта идея не кажется нам правильной, поскольку страны SU более не существует. Мы будем устанавливать значение LANG в ru_RU.KOI8-R. В принципе, набор символов можно не указывать, и файлы данных для локализации с использованием значения ru_RU входят в систему, но... они рассчитаны на использование странной кириллической кодировки ISO8859-5. Поэтому нам придется установить значение набора символов в KOI8-R и самостоятельно создать нужные файлы данных.

Разместите в каталоге /tmp файлы KOI8-R и ru_RU, которые вы найдете на втором компакт-диске в каталоге /Cyrillic/, после чего выполните команду

localedef -f /tmp/KOI8-R -i /tmp/ru_RU ru_RU.KOI8-R После этого в каталоге /usr/share/locales должен появиться подкаталог ru_RU.KOI8-R. Проведем небольшую проверку:

выполним команды

export LANG=ru_RU.KOI8-R
date
В результате на экране должны появиться написанные по-русски текущие дата и время. Если все прошло успешно, пора добавить установку переменной LANG в /etc/profile:

Добавьте в конец файла /etc/profile команду

export LANG=ru_RU.KOI8-R На этом настройка системы локализации завершена.
Русификация Х Window System Нетрудно догадаться, что русификация Х Windows состоит из тех же основных шагов: настройки вывода на экран и настройки ввода с клавиатуры. Настроить Х Window для вывода на экран русских шрифтов значительно проще, чем консоль, однако эта простота полностью компенсируется теми проблемами, которые возникнут при настройке ввода с клавиатуры. Но будем последовательны.

Для того чтобы настроить вывод русских букв на экран, вы должны установить пакет, содержащий кириллические шрифты для Х Window, после чего указать Х-серверу их местонахождение:

В файле /etc/XF86Config найдите строку

Section "Files" Под этой строкой вы найдете несколько строк вида FontPath "...." ПЕРЕД всеми этими строками вставьте следующее: FontPath "/usr/X11R6/lib/X11/font/cyrillic". При следующем запуске Х Window Х-сервер будет использовать находящиеся в указанном каталоге кириллические шрифты (в кодировке KOI8). Если у вас уже запущен Х-сервер, и вы не хотите его перезапускать, то в окне xterm введите команду xset fp rehash.

Возможно, вам придется непосредственно указать некоторым приложениям, какие шрифты использовать. Например, для xterm (и многих других приложений) можно использовать ключ -fn имя_шрифта. Полный список установленных кириллических шрифтов вы найдете в файле /usr/X11R6/lib/X11/fonts/ cyrillic/fonts.dir, а сокращенные названия некоторых шрифтов ≈ в файле /usr/X11R6/lib/X11/fonts/cyrillic/fonts.alias.

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

Существуют два способа вводить русские буквы в Х Window System. Первый основан на использовании расширения Xkb, а второй предполагает его отключение. Каждый из этих методов имеет свои недостатки.

Одним из самых важных недостатков ≈ и притом, что прискорбно, общим для обоих способов ≈ является тот факт, что, какой бы способ русификации ввода вы не выбрали, найдутся приложения, которые не будут корректно работать при его использовании. К счастью, любое приложение будет работать при использовании хотя бы одного из этих методов.

Если вы хотите как можно проще настроить ввод русских букв, используйте метод без Xkb. Если же вы хотите сделать все ⌠идеологически правильно■, то настройте свою систему Х Window на использование Xkb. Оба пути мы опишем ниже.

Русификация без Xkb Для того чтобы русифицировать систему Х Window без использования Xkb, вам понадобится програма xruskb, которую вы можете найти по адресу ftp://ftp.relcom.ru/pub/Х11/. Последняя версия, существующая на момент написания этих строк, ≈ 1.9.1. Вам понадобится скомпилировать программу из исходных текстов. Для этого, получив архив с исходными текстами (мы предполагаем, что он называется xruskb-1.9.1.tar.gz), выполните следующие действия:

Разархивируйте пакет с исходными текстами:

tar xzf xruskb-1.9.1.tar.gz Перейдите в появившийся каталог с исходными текстами: cd xruskb-1.9.1 Дальнейшие указания вы найдете в файлах INSTALL-koi8 и xrus.doc-koi8. Перед запуском xrus не забудьте проверить, что в файле /etc/XF86Config после строки Section "Keyboard" стоит строка XkbDisable Если этой строки не было, ее нужно вписать, закомментировав (вписав в начало символ #) все другие строки, имеющие отношение к Xkb, после чего необходимо перезапустить Х-сервер.

Перед компиляцией xrus рекомендуется установить библиотеку lesstif. Это позволит сценарию configure произвести настройку на компиляцию с библиотекой Motif (бесплатным аналогом которой является lesstif) и получить более функциональную программу.

Русификация с использованием Xkb Во-первых, не забудьте настроить систему локализации ≈ как это сделать, описано выше.

Во-вторых, убедитесь, что в файле /usr/X11R6/lib/X11/locale/locale.alias присутствует строка

<ваше значение переменной LANG> ru_RU,KOI8-R Теперь можно переходить к настройке Xkb.

Добавьте в файл /etc/XF86Config в раздел Section "Keyboard" следующие строки (удалив строку XkbDisable, если она там была):

XkbRules "xfree86"
XkbModel "pc101"
(или "рс104", если вы используете 104-клавишную клавиатуру) XkbLayout "ru"
XkbOptions "grp:toggle"
После этого необходимо перезапустить Х-сервер. Раскладка клавиатуры будет переключаться при помощи правой клавиши Alt.

Для того чтобы индицировать переключение раскладки при использовании Xkb, можно применять программу fookb, доступную по адресу http://woe.transas.com/ penguin/fookb. На момент написания этих строк последняя версия программы ≈ 0.6.

Распакуйте исходные тексты программы:

tar xzf fookb-0.6.tar.gz Перейдите в каталог с исходными текстами: cd fookb Если в качестве диспетчера окон вы используете не WindowMaker, то закомментируйте в makefile строчку FLAGS=-DWMAKER и раскомментируйте FLAGS= (именно так, справа от знака равенства ничего не должно быть).

Создайте каталог /usr/local/share/fookb и скопируйте в него все файлы с расширением .хрm:

mkdir /usr/local/share/fookb
ср *.хрm /usr/local/share/fookb
Вы можете изменить название или расположение используемых значков в файле fookb. h (в строках #define XPM1 "..." ≈ #define BOOM "...").

После запуска fookb выводит значок, соответствующий используемой раскладке клавиатуры. Вы можете переключать раскладку как щелкая на значке fookb, так и при помощи правой клавиши Alt. Для завершения работы fookb щелкните на значке правой кнопкой мыши.

Обратите внимание, что клавиша Caps Lock будет также переключать раскладку. Для использования ее в качестве Caps Lock, то есть для переключения регистра, нажимайте ее вместе с Shift.

Для того, чтобы производить переключение раскладок по другому сочетанию клавиш, измените строку XkbOption "grp: toggle" в файле /etc/XF86Config. Возможные значения параметра XkbOption:

grp:switch Русская раскладка включена ТОЛЬКО тогда, когда правая клавиша Alt находится в нажатом состоянии

grp:toggle Переключение при помощи правой клавиши Alt

grp:shift_toggle Для включения русской раскладки нажмите левую клавишу Shift, и, не отпуская ее, правую. Для включения латинской раскладки при нажатой правой клавише Shift нажмите левую

grp:ctrl_shift_toggle Переключение раскладки по Ctrl+Shift

grp:ctrl_alt_toggle Переключение раскладки по Ctrl+Alt

Вы можете найти более подробное описание метода русификации при помощи Xkb, включая метод, позволяющий заставить работать с русскими буквами все без исключения приложения, по адресу: http://woe.transas.corn/penguin/. Однако имейте в виду, что для выполнения описанной там настройки потребуются достаточно серьезные знания и умения; кроме того, описание приведено для дистрибутива Debian, так что вам может потребоваться скорректировать расположение конфигурационных файлов и файлов данных.
Дополнительные ресурсы Описание связанных с русификацией проблем (на английском языке) вы найдете в файле Cyrillic-HOWTO, входящем в комплект поставки Slackware Linux.

Множество ссылок на страницы о Linux на русском языке, в том числе посвященные локализации и русификации системы, а также русский словарь для проверки орфографии при помощи программы isреll вы найдете на странице Бориса Тоботраса: http://xtalk.price.ru/linux/.

Последнюю версию программы xruskb вы найдете по адресу ftp://ftp.relcom.ru/ pub/x11.

Описание русификации X Window System при помощи Xkb (для дистрибутива Debian) вы найдете на странице http://woe.transas.com/penguin/.