Теперь перейдем к прозе жизни ...начинающим довольно тяжело установить Linux, но рано или поздно им это удается,благо в интернете полно описаний, как это сделать наиболее быстро и безболезненно. Теперь следующий шаг - заставить Linux понимать русский язык. Но если описания установок в своей сути сходятся,то описаний русификаций столько, что у начинающих разбегаются глаза и они махают рукой на все это ...Тем более, что Cyrrillic-HOWTO написан кучу лет назад, да еще он и на английском существует в куче вариантов ;-) нельзя пользователю на начальном этапе давать возможность выбора - иначе он выберет самый худший вариант. ;-) вот и я решил добавить свое описание, так сказать, для увеличения разнообразия. Сразу предупрежу - мой рецепт годится только для дистрибутива Slackware, так как я исконно работаю с ним, советую всем знакомым и вообще - он самый лучший ;-) (соответственно все возмущения и панегирики отправляйте в /dev/null). Все нижеописанное с успехом проделано не один раз мной и моими знакомыми ... Итак, приступим ..
Под русификацией текстовой консоли я понимаю возможность без проблем читать и писать тексты на русском языке, а также иметь правильную обработку русских букв.
Итак, сначала сделаем, что бы можно было читать по русски - для этого загрузим соответствующие шрифты в память видеоадаптера. Здесь два пути - сразу записать шрифты в кои-8 или сначала записать шрифты в кодировке дос (ср866), а потом включить трансляцию кои-8 в ср866.
Второй путь выгодней из-за двух причин - в любой момент на начальном этапе вы
спокойно можете читать тексты с дос кодировкой и впоследствии без каких-либо правок
иметь нормальное отображение псевдографики.
Для первого пути в /etc/rc.d/rc.font (rc.local) пропишите
следующая строчка (если она уже не была вписана Slackware setup'ом):
setfont koi8-8x16после setfont стоит имя файла с образом шрифта, который мы загружаем в память видеоадаптера. Поправленный (псевдографика) koi8-фонт есть у меня. Все шрифты по умолчанию лежат в /usr/lib/kbd/consolefonts
setfont Cyr_a8x16 mapscrn koi2alt for n in 1 2 3 4 5 6; do echo -ne "\033(K" > /dev/tty$n doneПервая строчка загружает образ шрифта, вторая задает правила трансляции символов (лежат в /usr/lib/kbd/consoletrans), а последние три строчки предназначены для того, чтобы включить трансляцию на терминалах, хотя можно и делать это другими способами.
Второй шаг - возможность вводить русские буквы - это делается еще проще ... пишем в /etc/rc.d/rc.local после команд загрузки шрифта следующее:
loadkeys ru1.map(можете попробовать другие раскладки - они лежат в /usr/lib/kbd/keytables.
Итак, посмотрите, какая у вас оболочка-shell (смотреть надо в /etc/passwd на строчку со своим логином и искать слова типа bash,csh,tcsh и т.д.).
В случае bash идем в свой домашний каталог, в самый корень, и создаем там файл .inputrc со следующим содержимым (если Вы хотите, что бы при добавлении пользователей им не приходилось заново прописывать этот файл вручную, скопируйте его в /etc/skel) :
set meta-flag on set convert-meta off set output-meta on "\e[3~": delete-char "\e[1~": beginning-of-line "\e[4~": end-of-line "\e[e": end-of-line "\e[\C-@": beginning-of-lineперелогиньтесь (или просто зайдите с другой консоли) и наблюдайте, как вводятся русские буковки.
Последний шаг - установка locale (это полезно для того, чтобы система нормально
могла работать с русским языком (сортировка, даты и прочее).
Для этого создаете в каталоге /usr/share/locale каталог
ru_SU.KOI8-R и разверните там
этот (работающий у автора,взятый где-то в дебрях интернета)
файл (или другой,которые Вы возможно нашли где-то еще.Проверить, то ли у Вас,
просто: наберите ls /usr/share/locale/ru_SU.KOI8-R- на экране должно
появиться аналогичные строчки:
bash$ ls /usr/share/locale/ru_SU.KOI8-R LC_COLLATE LC_MESSAGES LC_NUMERIC libc.cat LC_CTYPE LC_MONETARY LC_TIME bash$).
export LANG=ru_SU.KOI8-R export NLSPATH=/usr/share/locale/ru_SU.KOI8-R/ export LESSCHARSET=koi8-rДля tcsh надо вместо export поставить setenv
echo Тест|dd conv=ucaseесли на экране увидите что-то отличающееся от ТЕСТ - значит что-то вы не так сделали-смотрите , где ошиблись и исправляйте. ВСЕ, на этом русификация текстовой консоли завершена! .
Теперь будем русифицировать X-Window - это не намного сложнее, чем текстовую консоль - ищем файл XF86Config (скорее всего, он лежит либо в /etc/ либо в вашем домашнем каталоге) и ищем в нем такие строчки:
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/Type1" ..... EndSectionИтак , смотрим каталог /usr/X11R6/lib/X11/fonts/ на предмет русских шрифтов (обычно каталог cyr или cyrillic) и если находим, ставим путь к ним в самом начале перед всеми описаниями путей, как показано выше.Если же не находим, значит Вы при инсталляции XFree не установили русские шрифты. Возьмите из дистрибутива файл /slakware/x1/x332fcyr.tgz, и разверните его с помощью /sbin/pkgtool. В нем содержиться большой набор Bitmap-фонтов. Однако, для многих программ (в частоности, для ghostscript) требуются также русские Type1-фонты. Их можно скачать, например, c ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts/gs-type1_koi8_fonts.tgz.
В итоге секция "Files" в файле XF86Config должна стать похожей на
вышеприведенную.
Теперь можете спокойно
перезагрузить XFree (или если нельзя - то почитайте man на предмет
xset +fp и xset rehash)
После загрузки Вашего оконного менеджера проверьте,
появились ли у вас шрифты: запустите xfontsel и выставьте
последние два параметра (registry-encoding) в koi8-r - Вы должны увидеть
русский язык.
Как быть, если русских шрифтов не хватает или их начертание Вас не
устраивает,а Вам позарез надо
написать что-то где-нибудь красивое до невозможности ?
Есть такая вещь, называется FontServer (например xfstt) - он может по любому
доступному каналу связи раздавать шрифты (и не надо хранить большие мегабайты
шрифтов на машинах, где они могут понадобиться).
Скачиваем сервер, конфигурируем, инсталлируем
(./configure;make;make install - только прочитайте INSTALL перед установкой)
,отбираем у
ближайшего виндузятника сидюк с кучей ttf или достаем любым другим
правозаконным способом шрифты и переписываем их в /usr/ttfonts.Запускаем
фонт-сервер командами
/usr/X11R6/bin/xfstt -sync /usr/X11R6/bin/xfstt -encoding koi8-r,windows-1251 &и все, теперь у нас на 7100ом порту запущен фонт-сервер. Добавляем путь к нему либо руками (xset +fp ...) либо правим XF86Config(и перезапускаем XFree) , как показано ниже :
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "inet/127.0.0.1:7100" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"(выделенная строчка).Теперь все установленные шрифты Вы можете использовать в своих программах.Замечу, что фонт-серверов может быть несколько,только необходимо, что бы на время работы XFree они все были доступны.
........... ! To use several alternate modmaps, specify the following ! resources: *altMaps: /var/X11R6/lib/xinit/.Xmodmap.1251 /var/X11R6/lib/xinit/.Xmodmap *altmap0.labelString: Win map *altmap1.labelString: KOI map ...........Запускаем xrus и проверяем ввод русских букв везде, где только сможем. Если Вам надо еще одну раскладку - снова просто правим конфиг xrus, перезапускаем его и получаем еще одну раскладку клавиатуры
$: cd /usr/lib/ghostscript/fonts/
$: tar xzf {путь_к_файлу}/gs-type1_koi8_fonts.tgz
$: cd ../<номер_версии_gs>/
$: cp Fontmap Fontmap.orig
$: zcat {путь_к_файлу}/gs-Fontmap.add.gz >> Fontmap
Фонты были сгенерены в pfb-формате, метрика - в pfm-формате. Если для
работы каких-либо приложений Вам необходимо иметь метрику в afm-формате,
Вам следует забрать файл
ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts/gs-type1_koi8_afm.tgz
и также разархивировать его в /usr/lib/ghostscript/fonts/.
Фонты в формате pfa, если это необходимо, можно получить из соответствующих
pfb-файлов с помощью утилиты pfb2pfa либо pfbtops.
Для того, чтобы иметь возможность работать в gs с фонтами Courier, Times
и Helvetica в koi8 кодировке, необходимо в Fontmap поменять алиасы на них:
закомментировать стоящие по умолчанию и раскомментировать добавленные из
gs-Fontmap.add. Какой из двух monospaced фонтов будет у Вас называться
Courier - решайте сами. А вот кириллические добавки к Fontmap
% Cyrrillic koi8 fonts/aliases /ArialCyrMT (arial8.pfb) ; /Arial /ArialCyrMT ; % /Helvetica /ArialCyrMT ; /ArialCyrMT-Bold (arialbd8.pfb) ; /Arial-Bold /ArialCyrMT-Bold ; % /Helvetica-Bold /ArialCyrMT-Bold ; /ArialCyrMT-Italic (ariali8.pfb) ; /Arial-Italic /ArialCyrMT-Italic ; % /Helvetica-Oblique /ArialCyrMT-Italic ; /ArialCyrMT-BoldItalic (arialbi8.pfb) ; /Arial-BoldItalic /ArialCyrMT-BoldItalic ; % /Helvetica-BoldOblique /ArialCyrMT-BoldItalic ; /CourierCyrPS (cour8.pfb) ; % /Courier /CourierCyrPS ; /CourierCyrPS-Bold (courbd8.pfb) ; % /Courier-Bold /CourierCyrPS-Bold ; /CourierCyrPS-Inclined (couri8.pfb) ; % /Courier-Oblique /CourierCyrPS-Inclined ; /CourierCyrPS-BoldInclined (courbi8.pfb) ; % /Courier-BoldOblique /CourierCyrPS-BoldInclined ; /TimesNRCyrMT (times8.pfb) ; % /Times-Roman /TimesNRCyrMT ; /TimesNRCyrMT-Bold (timesbd8.pfb) ; % /Times-Bold /TimesNRCyrMT-Bold ; /TimesNRCyrMT-Inclined (timesi8.pfb) ; % /Times-Italic /TimesNRCyrMT-Inclined ; /TimesNRCyrMT-BoldInclined (timesbi8.pfb) ; % /Times-BoldItalic /TimesNRCyrMT-BoldInclined ; /ERKurierKOI8RRegular (cokoi8n.pfb) ; % /Courier /ERKurierKOI8RRegular ; /ERKurierKOI8RBold (cokoi8b.pfb) ; % /Courier-Bold /ERKurierKOI8RBold ; /ERKurierKOI8RItalic (cokoi8i.pfb) ; % /Courier-Oblique /ERKurierKOI8RItalic ; /ERKurierKOI8RBoldItalic (cokoi8bi.pfb) ; % /Courier-BoldOblique /ERKurierKOI8RBoldItalic ;Во избежание подмены ghostscript'ом установленных koi8-фонтов другими (нескалируемыми X-фонтами), gs следует запускать с ключем -dNOPLATFONTS.
make [x,menu]config -> CONFIG_FAT_FS=y CONFIG_NLS=y CONFIG_NLS_CODEPAGE_866=y CONFIG_NLS_KOI8_R=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=yМонтировать директории с fatXX следует так:
mount -t vfat -o codepage=866,iocharset=koi8-r /dev/xxx /xxxили просто добавить в файл /etc/fstab строчку:
/dev/xxx /xxx vfat codepage=866,iocharset=koi8-r 1 1