Библиотека сайта rus-linux.net
Русификация Linux |
Русификация консоли Для того чтобы русифицировать консоль, необходимо настроить как правильный вывод символов на экран, так и ввод их с клавиатуры. Начнем с вывода символов. Как Linux осуществляет вывод какой-либо строки на экран? Сначала строка пропускается через так называемую screen map (карту соответствия), перекодирующую выводимые символы в соответствии с используемым терминалом шрифтом. Это позволяет, в принципе, использовать различные кодировки, не изменяя шрифт на консоли. В Linux и прочих Unix-подобных системах в качестве основной русской кодировки используется кодировка KOI8-R. У этой кодировки есть много преимуществ по сравнению с используемыми в других системах IS08859-5 и кодовыми страницами 1251 и 866, но мы не будем их здесь обсуждать. Итак, что же нужно сделать, чтобы настроить вывод символов в кодировке KOI8 на экран? Во-первых, мы должны загрузить русский шрифт. Загрузка шрифта в Linux выполняется при помощи команды setfont. В принципе, в комплект поставки Linux входят KOIS-шрифты, но они весьма плохо выглядят, поэтому мы используем шрифт Суг_а8х16 в кодировке, соответствующей кодовой таблице 866. В файл /etc/rc.d/rc.font добавьте строку setfont Суr_а8х16 или, если команда setfont уже присутствует в этом файле, замените указанный после нее шрифт на Суr_а8х16. Во-вторых, мы должны установить необходимую карту соответствия, которая позволит на лету перекодировать символы из KOI8 в 866 для их корректного вывода на экран при помощи установленного шрифта. Установка карты соответствия выполняется при помощи команды mapscrn. В файл /etc/rc.d/rc.font добавьте строку mapscrn koi2ait Однако того, что мы сделали, еще не достаточно. На каждой консоли, на которой вам нужны русские буквы, карта соответствия должна быть активизирована. Для этого на соответствующую консоль должна быть выведена ?маги- echo -ne ' 33(К' Параметр -п запрещает вывод символа новой строки по окончании работы команды, параметр -е указывает, что вместо выражений вида ххх должен выводиться символ с восьмеричным кодом ххх. В данном случае будет выведен Конечно, вы можете каждый раз вводить эту команду вручную на той консоли, на которой вам нужны русские буквы, но этот процесс можно автоматизировать. В файл /etc/rc.d/rc.local добавьте следующий текст: for i in 1 2 3 4 5 6 do echo -ne ' 33(К' > /dev/tty$i Эта последовательность команд определяет цикл (for ... do ... done), в котором переменная i последовательно принимает значения 1-6 (i in 1 2 3 4 5 6). В теле цикла выполняется вывод нужной "магической последовательности" На этом настройка вывода на экран завершена. Для того чтобы вы могли не только видеть на экране русские буквы, но и иметь возможность вводить их с клавиатуры, необходимо загрузить при помощи команды loadkeys нужную клавиатурную раскладку. В файл /etc/rc.d/rc.local добавьте команду loadkeys ru1 Раскладка ru1 позволит вам вводить символы в кодировке KOI8, переключаясь между латинской и русской раскладками при помощи правой клавиши Alt.Теперь вы можете перезагрузить компьютер или просто вручную выполнить описанные команды. Однако на этом русификация консоли не закончена. Если вы попытаетесь ввести что-либо русскими буквами непосредственно в командной строке, то у вас, скорее всего, ничего не получится. Нам еще предстоит объяснить, как трактовать русские символы трем важным программам : bash, Is и less. Начнем с bash - интерпретатора командной строки , той программы, которая выводит приглашение $ (или #, если вы работаете от root) и ожидает ввода команд. Для управления поведением bash при использовании символов из второй половины кодовой таблицы используется файл .inputrc, который находится в домашнем каталоге пользователя. Создайте в своем домашнем каталоге файл .inputrc, сoдержащий следующие строки: set meta-flag on Выйдите из системы (введя logout) и войдите в нее снова. Все, теперь вы можете вводить русские буквы в командной строке и даже создавать файлы с русскими именами. Попробуйте ввести :>"Привет, мир", чтобы создать пустой файл с именем Привет, мир. Но что это? При попытке просмотреть содержимое каталога, в котором создан файл с русским именем, вместо русских букв написаны какие-то числа и вопро сительные знаки? Для того чтобы команда Is корректно отображала русские имена файлов, сделайте следующее. В конец файла /etc/profile добавьте строку alias ls='ls -N $LS_OPTIONS' Вы можете и не делать этого, а просто вызывать Is с ключом -N, если хотите видеть русские имена файлов. Но точно я не гарантирую что это будет работать - при установке своего линукса у меня были проблемы - приходилось использовать другие опции. В общем, если не получится - поэксперементируйте с опциями ls. Наконец, последняя программа, которую мы хотим образумить, это less - программа постраничного просмотра файлов. Чтобы less корректно выводила русские буквы, необходимо установить переменную окружения LESSCHARSET. В конец файла /etc/profile впишите строчку export LESSCHARSET=latin1 На этом русификация консоли закончена. Для того чтобы сделанные нами в файле /etc/profile изменения вступили в силу, вы должны выйти из системы и войти в нее снова. Русификация Xwindow System Pусские шрифты KOI8-R на XFree86 В современных дистрибутивах они скорее всего уже стоят. Первым делом (на работающем X сервере) запустите : $ xlsfonts -fn "*-koi8-r" Если список не пустой - примите наши поздравления :-) Далее нужно подключить шрифты к X Window. Убедитесь, что в файле /etc/X11/XF86Config прописан путь : Section "Files" Путь с cyrillic лучше всего поставить первым. Перезапустите X сервер и проверьте командой : xlsfonts -fn "*-koi8-r" . Хорошим решением также будет использование фонт-сервера. Во-первых, он может быть один на всю организацию, а во-вторых, в современных фонт-серверах можно использовать шрифты TrueType. Для Red Hat фонт-сервер xfsft входит в пакет Xfree86-xfs. Существует два основных способа русификации клавиатуры X :
При русификации X 3.3.x через XKB в /etc/X11/XF86Config должно быть прописано: Section "Keyboard"
В зависимости от клавиатуры опция Model может быть "pc101", "pc104" или "pc105", а комбинации переключения: grp:toggle правый Alt (с "фиксацией") Для 4.0.x добавились новые : grp:alt_shift_toggle Alt+Shift В kde, начиная с 2.2.1 можно переключаться с помощью ctrl+alt+K, если включен выбор раскладки в control center на закладке peripherals. Общие проблемы Смонтировать диск, чтобы русские имена файлов были видны Для vfat примерно так (cтрочка из /etc/fstab/): /dev/hda5 /mnt/d vfat noexec,rw,umask=002, codepage=866, iocharset=koi8-r, gid=100 0 0 (в одну строчку) Потом mount /mnt/d. Еще в ядро (>=2.0.36) должны быть включены соответствующие кодовые страницы (возможно, в виде модулей /lib/ modules/`uname -r`/fs/nls_*) - CP866 и KOI8-R, так что возможно (хотя скорее всего нет) ядро придется перекомпилировать. Для CD, содержащего файлы с русскими именами: $ mount -t iso9660 -o iocharset=koi8-r /dev/cdrom /mnt/cdrom Параметр codepage для isofs не нужен, в файловой системе JOLIET имена файлов хранятся в UNICODE. Смысл этих опций можно узнать в 'man mount' или в документации исходников ядра /usr/src/linux/Documentation/filesystems/ или /usr/doc/ kernel/filesystems/. увидеть русские буквы в именах файлов на диске Samba Добавить в /etc/smb.conf [global] перекодировать из DOS/Win кодировки в KOI8-R Перекодировщиков CP1251 и CP866 --> KOI8-R просто огромное количество. Наиболее широко распространены iconv (входит в поставку glibc(т.е. есть почти на всех дистрибутивах)) и GNU recode ( ftp://prep.ai.mit.edu/pub/gnu/recode/) $ iconv -f866 -tKOI8-R -o infile в mc увидеть pусские буквы F9 - options - display bits - Full 8 bit telnet Если возникают проблемы с вводом русских символов, надо написать файлик ~/.telnetrc со следующей строкой: DEFAULT set outbinary Вы можете встретить проблемы при работе в кодировке Win-1251 -- не передается маленькая русская буква "я" 0xff. У протокола TELNET 0xff -- это первый символ управляющей последовательности. Дабы передать собственно "я", нужно его удваивать : 0xff, 0xff. В KOI8-R такой проблемы нет. русифицировать TeX под koi-8 TeX и LaTeX во всех современных дистрибутивах говорят по-русски с раздачи. В этом случае имеется документ cyrguide.*, который и содержит развернутый ответ на вопрос о русификации TeX. Переносы не всегда работают "из коробки", иногда надо поправить language.dat, и пересобрать форматы. Вот что пишет Alex Nikiforov: Если уж о последних версиях, то в RH-6.0 с tetex 0.9 у меня получилось так: $ texconfig выбрать hyphenation -> latex раскомментировать russian Добавить в LaTeX файлах usepackage[T2A]{fontenc} и в файле можно переключаться между русским и английским командами Russian и Engish. Чтобы добавить форматы из cyrplain набора в texconfig выбрать FORMATS и добавить cyrtxinf tex language.dat cyrtxinf.ini для русского texinfo. Аналогично для cyrblue и cyramstx. Чтобы добавить формат cyrtex ( русский TeX ) проще в каталоге web2c выполнить: initex 'input cyrtex.ini dump' и бросить символическую ссылку с именем cyrtex на tex ( например в /usr/bin ). Чтобы переключиться на русский в этих plain форматах, нужно использовать команду language N где N - номер, под которым числится русский язык в получившейся раскладке. |