В начало → Руководство по русской локализации Gentoo Linux → Базовая кириллизация консоли |
Итак, базовая локализация консоли включает обеспечение вывода национальных символов на экран и ввода их с клавиатуры. Однако в случае кириллической локализации вследствие особенностей наборов символов и аппаратных особенностей PC для ввода и для вывода используются, как правило, разные кодировки. И это требует еще двух дополнительных шагов — установки карты соответствия между наборами символов ввода и вывода, и активизация её на каждой из виртуальных консолей.
Экранный шрифт, загружаемый по умолчанию при старте системы, определяется в файле /etc/rc.conf
строкой
Для вывода русских букв "умолчальное" значение следует заменить на имя какого-либо файла шрифта с поддержкой кириллицы, например,
cp866-8x16
для представления кодировки DOS или koi8r-8x16
— для кодировки KOI8-R. Например,
Или —
Файлы шрифтов (и не только кириллических) находятся в каталоге /usr/share/consolefonts/ и имеют вид *.gz, *.psf.gz или *.psfu.gz. При стандартном их размещении и форме ни полного пути, ни "расширения" имени указывать не обязательно.
В кириллическом Linux'е для экранного вывода, как правило, используется кодировка cp866 (вне зависимости от того, какой набор символов принят для клавиатурного ввода). О причинах этого говорить можно было бы долго — достаточно указать, что в любом ином случае программы, использующие псевдографику (например, Midnight Commander) приобретут весьма уродливый вид.
Экранные кириллические шрифты, поставляемые с Gentoo Linux, далеки от эстетического совершенства (справедливости ради заметим, что это относится почти ко всем Unix-клонам). И потому в качестве источника дополнительных шрифтов можно рекомендовать пакет console-tools-cyrillic Виктора Вагнера. В результате приведенная выше в качестве примера строка может принять вид вроде
Загружаемая по умолчанию раскладка клавиатуры также определяется в файле /etc/rc.conf
строкой
По аналогии с предыдущим случаем легко догадаться, что значение us следует заменить на имя файла какой-либо кириллической
(на этот раз уже в кодировке KOI8-R) раскладки. Место этих файлов (имеющих вид *.map.gz
) — в каталоге /usr/share/keymaps/i386/qwerty
, где для русской кодировки KOI8-R имеется несколько раскладок, например, ru1-ru4. Различия между ними — в соответствии различной
маркировке клавиш (DOS или Windows — не путать с одноименными кодировками) и положении переключателя латиница/кириллица. Рискну
взять на себя смелость рекомендовать раскладку ru4 — для Windows-маркированных клавиатур, в которой переключателем служит
CapsLock (при этом фиксация верхнего регистра обеспечивается одновременным нажатием клавиш Shift+CapsLock). То есть строка примет вид:
Как и в случае с экранными шрифтами, при стандартном расположении файлов раскладок указывать полный путь к ним и "расширение" имени нет необходимости.
При желании вы можете выбрать и раскладку клавиатуры для кодировки cp1251 (например, ru_win). Однако в этом случае придётся отыскать или самостоятельно изготовить таблицу перекодировки (mapscreen) cp1251->cp866.
Нет ничего более уродливого, чем программы, использующие псевдографику, при экранном представлении в кодировке cp1251.
Теперь остаётся только обеспечить соответствие между кодировками ввода (KOI8-R) и вывода (cp866), то есть загрузить соответствующую
таблицу перекодировки (mapscreen). Для этого снова обращаемся к файлу /etc/rc.conf.
Строка в нём, отвечающая за эту операцию, имеет по умолчанию такой вид:
Необходимо, сняв с неё символ комментария (#
), заменить "умолчальное" значение на необходимое нам, и подсмотреть его можно в каталоге /usr/share/consoletrans
— это koi2alt
:
Пожалуйста, не забудьте снять символ комментария со строки CONSOLETRANSLATION
— кто только на моей памяти не наступал на эти грабли :-)
Если вы по каким-либо причинам остановились на представлении экранных шрифтов в кодировке KOI8-R, загрузка и активизация карты соответствия, разумеется, не нужна.
Результатом выполненной операции будет то, что после перезагрузки машины мы получили бы нормальный вывод кириллического текста
(записанного в кодировке KOI8-R), но только — на первой (т.н. системной) консоли. Чтобы иметь то же самое на остальных виртуальных
консолях (а в Gentoo Linux их по умолчанию еще 5), та же карта соответствия должна быть активизирована на каждой из них с
помощью направления Escape-последовательности \033(K (символ \ в данном случае показывает, что следующие за ним символы рассматриваются
как специальные). Достигнуть этого можно разными способами. Например, создать в каталоге /etc/init.d/
файл consoletrans
и в любом текстовом редакторе внести в него следующие строки:
Листинг 9. Сценарий активизации mapscreen
for i in 1 2 3 4 5 6; do echo -ne '\033(K' > /dev/vc/$i done
Это — для случая 6-ти консолей по умолчанию. Если количество их изменялось пользователем, значения in, очевидно, должны быть приведены в соответствие с реальностью.
Следует отметить, что начиная с baselayout-1.8.x необходимость в этом отпала, поскольку этот код был встроен в /etc/init.d/consolefont
.
Теперь командой chmod a+x /etc/init.d/consoletrans созданному скрипту следует присвоить бит исполнения, после чего он добавляется к уровню исполнения по умолчанию (default runlevel):
Механизм автоматического обновления стартовых скриптов подробно описан в соответствующем разделе документации.
Вот теперь после перезагрузки машины мы получим полноценно локализованную консоль.
Все действия, описанные в данной главе, могут быть выполнены как на заключительных шагах (final steps) установки Gentoo Linux, так и в произвольный момент времени в дальнейшем.
В начало → Руководство по русской локализации Gentoo Linux → Базовая кириллизация консоли |