Русский язык в Mandrake 9.1
Copyright (c) 2003 by White_Mouse, lexx
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by
the Free Software Foundation.
Несмотря на существование массы руководств по руссификации Linux, нередко можно встретить вопросы связанные с настройкой отображения русского языка (проистекающие, справедливости ради отметим, от нежелания вопрошающих почитать документацию).
Здесь я хочу вкратце рассказть о действиях по настройке отображения и ввода русского языка в Mandrake 9.1 которые я обычно произвожу после установки для получения полностью работоспособной системы, понимающей русский язык, и в двух слвах рассказать о настройке шрифтов в GTK программах. Все это предельно кратко и рассчитано в основном на среднестатистического чайника (не путать с luser), собирающего свои первые шишки в Linux :)
По историческим причинам локаль у меня всегда cp1251 :)
1. Этап установки.
На этом этапе необходимо установить пакет locales-ru. При выборе русского языка во время установки этот пакет установится автоматически, но в случае выбора другого языка может и не установиться. В любом случае убедиться в его наличии в системе не помешает.
2. Консоль.
Абсолютно справедливы все инструкции по настройке русского существующие в сети.
Обратить внимание следует только на отсутствие программы setfont, замененной на consolechars, а также на отсутствие консольного шрифта в желаемой кодировке ср1251.
В связи с этим, в качестве шрифта для консоли был выбран шрифт iso05.f16.psf.gz в кодировке ISO 8859-5.
Чтобы увидеть родные русские буквы в консоли и иметь возможность писать русским шрифтом сделаем так:
Создадим скрипт с таким содержанием:
#!/bin/bash
# Установим нужную раскладку клавиатуры.
loadkeys /usr/lib/kbd/keymaps/i386/qwerty/ru-cp1251.kmap.gz
# Загрузим нужный шрифт.
consolechars -f /usr/lib/kbd/consolefonts/iso05.f16.psf.gz
# Уcтановим application character map
consolechars -m /usr/lib/kbd/consoletrans/iso05_to_cp1251.trans
# И, наконец, магическая последовательность :)
echo -ne "\033(K"
Затем сделаем его исполняемым:
#chmod +x keys.sh
И скопируем, например, в /usr/local/bin:
#cp keys.sh /usr/local/bin
Далее мы либо запускаем скрипт руками каждый раз, когда хотим поговорить с консолью по-русски, либо сделаем так, чтобы он запускался без нашего участия. В последнем случае возможны варианты. Лично мне больше нравится запускать его непосредственно при входе в систему меня :)
Для этого добавим в конец файла .bash_profile (который находится в домашней директории нужного пользователя) такую строку:
/usr/local/bin/keys.sh
На этом манипуляции с консолью можно считать оконченными.
Заметим, что можно и НЕ пользоваться скриптом, а прописать консольный шрифт и ACM в /etc/sysconfig/i18n.
3. Отображение и ввод русского языка в Х.
3.1. Х и i18n.
По существу Все языковые и региональные настройки в Mandrake 9.1 собраны в одном месте, а именно в /etc/sysconfig/i18n Для того чтобы нормально читать русский шрифт и писать русскими буквами достаточно будет изменить всего две переменных, а именно:
LANG=ru_RU.CP1251
LC_CTYPE=ru_RU.CP1251
Если хочется ВСЕ сразу сделать русским :) смело укажем:
LC_ALL=ru_RU.CP1251
При следующей загрузке системы сказав locale вы увидите внесенные вами изменения. Если перезагружаться не хочется - стоит в консоли сказать
export LANG=ru_RU.CP1251
export LC_CTYPE=ru_RU.CP1251
и т.д.
После этого можно смело запускать Х.
Описание других переменных можно найти в man 5 locale.
3.2. Раскладка клавиатуры в Х.
Следующее необходимое действие - настройка раскладки клавиатуры в Х.
Откроем любимым редактором /etc/X11/XF86Config-4
И увидим в нем следующее:
Section "InputDevice"
Identifier "Keyboard1"
.....
Option "XkbLayout" "us"
Наша задача заменить эту опцию на
Option "XkbLayout" "us,ru(winkeys)"
Далее настроим перключатель раскладки.
Для этого напишем такую строку здесь же:
Option "XkbOptions" "grp:caps_toggle"
Переключать раскладку клавиатуры мы теперь сможем клавишей Caps Lock.
3.3. Шрифты.
Про использование TTF шрифтов в Linux так написана масса руководств, тем не менее кратко опишем процесс их установки:
Зайдем в директорию, где находятся шрифты, которые мы желаем использовать в Linux...
cd ~/mynewfonts
... и скажем:
ttmkfdir
cp fonts.dir fonts.scale
Здесь следует обратить внимание на то, что названия файлов в директории не должны содержать заглавных букв, в противном случае ttmkfdir промолчит, но ничего не сделает. Затем необходимо указать серверу шрифтов (по умолчанию он используется в Mandrake), где находятся наши шрифты. Откроем любым текстовым редактором файл конфигурации xfs
nano /etc/X11/fs/config
И увидим в нем нечто подобное:
catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/drakfont,
/usr/X11R6/lib/X11/fonts/drakfont/Type1,
/usr/X11R6/lib/X11/fonts/drakfont/ttf,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled
Сюда мы и добавим путь к нашим шрифтам:
catalogue = /путь к нашим шрифтам/,
/usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/drakfont,
/usr/X11R6/lib/X11/fonts/drakfont/Type1,
/usr/X11R6/lib/X11/fonts/drakfont/ttf,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled
Сохранив файл, перезагрузим сервер шрифтов:
service xfs restart
Шрифты можно использовать.
Посмотреть список установленных шрифтов можно командой xlsfonts.
3.4. Mozilla, Evolution и др. GTK+ программы.
Если мы столкнулись с тем, что не отображается русский язык в интерфейсе Mozilla, в Evolution или других программах, использующих GTK+, а нажиманием на кнопочки это исправить не
удалось, помочь нам может следующее.
Создадим в домашней директории пользователя файл .gtkrc следующего содержания:
style "default"
{
font = " -monotype-arial-medium-r-normal--0-0-70-70-p-0-microsoft-cp1251 "
}
class "GtkWidget" style "default"
Фактически, это файл, описывающий тему GTK, но от темы по умолчанию отличаться внешний вид наших программ будет только основным шрифтом, который программа использует.
Полное имя шрифта можно узнать упомянутой командой xlsfonts. Нелишним будет прочесть man xlsfonts :)
Если это не решило проблемы с определенной программой - имеет смысл заглянуть в .gtkrc-2.0 в
домашней директории, а также в:
/etc/gtk/gtkrc.cp1251
/etc/gtk/gtkrc.ru
/usr/share/themes/Default/gtk/gtkrc
/usr/share/themes/Default/gtk-2.0/gtkrc
Если мы возжелаем пользоваться KDE, и не хотим, чтобы GTK программы использовали настройки KDE (что они пытаются делать по умолчанию в нашем дистрибутиве :) ), а читали gtkrc из нашей домашней директории - этого можно добиться покопавшись в настройках KDE Control Center.
Чтобы заставить Evolution понимать и нормально отображать русский язык нужно заглянуть дополнительно в Tools -> Settings -> Font Preferences и там установить шрифт в правильной
(ср1251) кодировке.
4. Отображение русских букв в именах файлов на примонтированных разделах
Для начала, конечно, стоит прочитать man 8 mount - оттуда почерпнётся довольно много довольно интересной информации. Нетерпеливые могут сразу перейти к редактированию /etc/fstab, в котором и задаются соответствующие параметры монтирования разделов при загрузке системы.
Рассмотрим перевод на cp1251 на примере моего конфига:
none /mnt/cdrom supermount dev=/dev/scd0,fs=auto,ro,--,iocharset=cp1521,codepage=866,umask=0 0 0 - для CD-ROM'ов
none /mnt/floppy supermount dev=/dev/fd0,fs=auto,--,iocharset=cp1251,sync,codepage=866,umask=0 0 0 - для floppy
/dev/hda7 /mnt/media vfat iocharset=cp1251,codepage=866,umask=0 0 0 - для vfat партиций (fat16, fat32, fat12)
/dev/hda1 /mnt/win2k ntfs iocharset=cp1251,ro,umask=0 0 0 - для ntfs партиций (win2k, winXP)
Посмотрев данный конфиг многие обнаружат, что разница между данным конфигом и их собственным /etc/fstab только в значении параметра iocharset. На свежеустановленном linux Mandrake 9.1 значении этого парамерт ра равняется koi8-r или иному и фактически единственным необходимым действием явялется замена данного значения на cp1251 (обязательно, чтобы буквы были латинские и маленькие).
Рекомендуемые руководства:
man loadkeys
man consolechars
man xlsfonts
man XF86Config
man locale
man mount
man fstab