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 добавьте строку
Во-вторых, мы должны установить необходимую карту соответствия, которая позволит ⌠на лету■ перекодировать символы из KOI8 в 866 для их корректного вывода на экран при помощи установленного шрифта. Установка карты соответствия выполняется при помощи команды mapscrn.
В файл /etc/rc.d/rc.font добавьте строку
Конечно, вы можете каждый раз вводить эту команду вручную на той консоли, на которой вам нужны русские буквы, но этот процесс можно автоматизировать.
В файл /etc/rc.d/rc. local добавьте следующий текст:
На этом настройка вывода на экран завершена.
Для того чтобы вы могли не только видеть на экране русские буквы, но и иметь возможность вводить их с клавиатуры, необходимо загрузить при помощи команды loadkeys нужную клавиатурную раскладку.
В файл /etc/rc.d/rc.localдобавьте команду
Теперь вы можете перезагрузить компьютер или просто вручную выполнить описанные команды.
Однако на этом русификация консоли не закончена. Если вы попытаетесь ввести что-либо русскими буквами непосредственно в командной строке, то у вас, скорее всего, ничего не получится. Нам еще предстоит объяснить, как трактовать русские символы, трем важным программам ≈ bash, ls и less.
Начнем с bash ≈ интерпретатора командной строки ≈ той программы, которая выводит приглашение $ (или #, если вы работаете от имени пользователя root, что очень не рекомендуется) и ожидает ввода команд. Для управления поведением bash при использовании символов из второй половины кодовой таблицы используется файл .inputrc, который находится в домашнем каталоге пользователя.
Создайте в своем домашнем каталоге файл .inputrc, содержащий следующие строки:
Но что это? При попытке просмотреть содержимое каталога, в котором создан файл с русским именем, вместо русских букв написаны какие-то числа и вопросительные знаки? Для того чтобы команда ls корректно отображала русские имена файлов, сделайте следующее.
В конец файла /etc/profile добавьте строку
Наконец, последняя программа, которую мы хотим ⌠образумить■, это less ≈ программа постраничного просмотра файлов. Чтобы less корректно выводила русские буквы, необходимо установить переменную окружения LESSCHARSET.
В конец файла /etc/profile впишите строчку
По историческим причинам (так было сделано в дистрибутиве 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/, после чего выполните команду
выполним команды
Добавьте в конец файла /etc/profile команду
Для того чтобы настроить вывод русских букв на экран, вы должны установить пакет, содержащий кириллические шрифты для Х Window, после чего указать Х-серверу их местонахождение:
В файле /etc/XF86Config найдите строку
Возможно, вам придется непосредственно указать некоторым приложениям, какие шрифты использовать. Например, для xterm (и многих других приложений) можно использовать ключ -fn имя_шрифта. Полный список установленных кириллических шрифтов вы найдете в файле /usr/X11R6/lib/X11/fonts/ cyrillic/fonts.dir, а сокращенные названия некоторых шрифтов ≈ в файле /usr/X11R6/lib/X11/fonts/cyrillic/fonts.alias.
Теперь мы готовы перейти к более сложной задаче ≈ настройке ввода русских букв. Первая проблема заключается в том, чтобы выбрать правильный способ русификации ввода.
Существуют два способа вводить русские буквы в Х Window System. Первый основан на использовании расширения Xkb, а второй предполагает его отключение. Каждый из этих методов имеет свои недостатки.
Одним из самых важных недостатков ≈ и притом, что прискорбно, общим для обоих способов ≈ является тот факт, что, какой бы способ русификации ввода вы не выбрали, найдутся приложения, которые не будут корректно работать при его использовании. К счастью, любое приложение будет работать при использовании хотя бы одного из этих методов.
Если вы хотите как можно проще настроить ввод русских букв, используйте метод без Xkb. Если же вы хотите сделать все ⌠идеологически правильно■, то настройте свою систему Х Window на использование Xkb. Оба пути мы опишем ниже.
Разархивируйте пакет с исходными текстами:
Перед компиляцией xrus рекомендуется установить библиотеку lesstif. Это позволит сценарию configure произвести настройку на компиляцию с библиотекой Motif (бесплатным аналогом которой является lesstif) и получить более функциональную программу.
Во-вторых, убедитесь, что в файле /usr/X11R6/lib/X11/locale/locale.alias присутствует строка
Добавьте в файл /etc/XF86Config в раздел Section "Keyboard" следующие строки (удалив строку XkbDisable, если она там была):
Для того чтобы индицировать переключение раскладки при использовании Xkb, можно применять программу fookb, доступную по адресу http://woe.transas.com/ penguin/fookb. На момент написания этих строк последняя версия программы ≈ 0.6.
Распакуйте исходные тексты программы:
Создайте каталог /usr/local/share/fookb и скопируйте в него все файлы с расширением .хрm:
После запуска fookb выводит значок, соответствующий используемой раскладке клавиатуры. Вы можете переключать раскладку как щелкая на значке fookb, так и при помощи правой клавиши Alt. Для завершения работы fookb щелкните на значке правой кнопкой мыши.
Обратите внимание, что клавиша Caps Lock будет также переключать раскладку. Для использования ее в качестве Caps Lock, то есть для переключения регистра, нажимайте ее вместе с Shift.
Для того, чтобы производить переключение раскладок по другому сочетанию клавиш, измените строку XkbOption "grp: toggle" в файле /etc/XF86Config. Возможные значения параметра XkbOption:
grp:toggle Переключение при помощи правой клавиши Alt
grp:shift_toggle Для включения русской раскладки нажмите левую клавишу Shift, и, не отпуская ее, правую. Для включения латинской раскладки при нажатой правой клавише Shift нажмите левую
grp:ctrl_shift_toggle Переключение раскладки по Ctrl+Shift
grp:ctrl_alt_toggle Переключение раскладки по Ctrl+Alt
Множество ссылок на страницы о 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/.