Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Обучение от Mail.Ru Group.
Онлайн-университет
для программистов с
гарантией трудоустройства.
Набор открыт!

2004 г.

Русификация OpenBSD

"Ибо без русификации читать кириллицу невозможно."
Лебедев.

Опубликовано на сайте OpenBSD.ru

Содержание

Русификация OpenBSD

Русификация программ

Русификация OpenBSD

Русификация wscons

Начиная с OpenBSD 2.9, драйвер консоли pcvt(4) был удалён из системы, в пользу нового драйвера wscons(4).

Раскладка клавиатуры

Русская раскладка была добавлена после выхода 2.9, поэтому для набора текста в 2.9, вам необходим этот скрипт (пример его использования см. ниже). В случае если у вас OpenBSD 3.0 или новее, добавьте в файл /etc/kbdtype раскладку вашей клавиатуры. Если вы указали тип раскладки при установке системы раскладка уже должна стоять правильно.

# echo "ru" > /etc/kbdtype

альтернативный (файлу /etc/kbdtype) вариант - раскомментировать следующею строку в /etc/wsconsctl.conf:

keyboard.encoding=ru

Набор русского текста происходит так же, как и в pcvt(4) консоли - зажимая правый Alt. Для реализации т.н. sticky переключателя (фиксированного) доступен патч и краткое руководство по установке. Начиная с версии 3.0, такой переключатель интегрирован в OpenBSD.

Отображение кириллицы

Для отображения кириллицы необходимо загрузить шрифт и настроить экраны (консоли).

На экранах созданных ядром кириллица отображаться не будет. Необходимо: либо пересобрать ядро с меньшим числом экранов по умолчанию (option WSDISPLAY_DEFAULTSCREENS=6), загрузить шрифт и создать новые либо удалить созданные по умолчанию экраны, загрузить шрифт и создать их заново Экран ttyC0 создаётся всегда и не может быть удалён, поэтому не может отображать кириллицу.

Итак, если мы создаём custom ядро, необходимые в ядре опции (оставляем по умолчанию два экрана, на которых не будет видно кириллицы):

option WSDISPLAY_COMPAT_USL
option WSDISPLAY_COMPAT_RAWKBD
option WSDISPLAY_COMPAT_PCVT
option WSDISPLAY_DEFAULTSCREENS=2

Исходя из количества экранов по умолчанию, в данном случае два, добавляем в /etc/rc.local следующие строки, в зависимости от версии OpenBSD, для создания трёх дополнительных экранов с предварительно загруженным русским шрифтом. Не забудьте запустить дополнительные процессы getty(8), если нужны, на этих экранах, см. ttys(5).

Для OpenBSD 2.9:

if [ -x /usr/sbin/wsconscfg -a -x /usr/sbin/wsfontload ]; 
   then
	# загружаем русский koi8 шрифт
	/usr/sbin/wsfontload -h 16 
                    /usr/share/misc/pcvtfonts/koi8-8x16

	for SCREEN in 2 3 4; do
	# удаляем экраны созданные по умолчанию 
        #(для GENERIC)
	# /usr/sbin/wsconscfg -d $SCREEN
	/usr/sbin/wsconscfg -t 80x25bf -e vt100 $SCREEN
	done

	# загружаем раскладку с переключателем
	/bin/sh /path/to/koi8-map.sh >
/dev/null fi

Для OpenBSD 3.0 и новее:

if [ -x /usr/sbin/wsconscfg -a -x /usr/sbin/wsfontload ]; 
   then
	# загружаем русский koi8 шрифт
	/usr/sbin/wsfontload -h 16 
                    /usr/share/misc/pcvtfonts/koi8-r-8x16
	# или украинский koi8 шрифт
	# /usr/sbin/wsfontload -h 16 
                    /usr/share/misc/pcvtfonts/koi8-u-8x16

	for SCREEN in 2 3 4; do
	# удаляем экраны созданные по умолчанию 
        # (для GENERIC)
	#/usr/sbin/wsconscfg -d $SCREEN
	/usr/sbin/wsconscfg -t 80x25bf -e vt100 $SCREEN
	done

	# создаем фиксированный переключатель 
        # на правом ctrl
	/sbin/wsconsctl -w keyboard.map+="keycode 157 = 
                                 Mode_Lock" > /dev/null
	# а если вы привыкли пользоваться обычным 
        # переключателем - правый Alt
	/sbin/wsconsctl -w keyboard.map+="keycode 184 = 
                               Mode_switch" > /dev/null
fi
Русификация PCVT консоли

Версии OpenBSD 2.8 и ниже, содержат три различных русских шрифта в кодировке koi8-r для русификации PCVT консоли: koi8-8x16, koi8-8x14 и koi8-8x8. Эти шрифты могут быть загружены в знакогенератор EGA/VGA адаптера для использования в различных видеорежимах:

Шрифт Число строк EGA Число строк VGA
koi8-8x8 43 50
koi8-8x14 25 28
koi8-8x16 - 25

Для русификации консоли:

Убедитесь, что система собрана с драйвером PCVT. Файл конфигурации ядра должен содержать следующую строчку: vt0 at isa? port 0x60 irq 1

Добавьте в /etc/rc.local команды загрузки шрифтов:

if [ -x /usr/sbin/ispcvt ] && /usr/sbin/ispcvt; then
	/usr/sbin/loadfont -c0 
                 -f /usr/share/misc/pcvtfonts/koi8-r-8x16
	/usr/sbin/loadfont -c1 
                 -f /usr/share/misc/pcvtfonts/koi8-r-8x14
	/usr/sbin/loadfont -c2 
                 -f /usr/share/misc/pcvtfonts/koi8-r-8x8
	/usr/sbin/kcon -m koi8
	/usr/sbin/scon -o

	# Следующие строчки нужны только для OpenBSD 2.5 
        # и более ранних версий
        #
	# for t in /dev/ttyC[0-7]; do
	# 	echo -n '\033/X' > ${t}
	# done
fi

После выполнения данных действий, на консоли можно будет нормально читать русский текст в кодировке koi8-r. Однако набор русского текста превратится в этакое упражнение по машинописи, чтобы набрать букву "ф" придётся нажать LeftAlt-A, "Ф" - Shift-LeftAlt-A, "ы" - LeftAlt-S и т.д. На домашней странице Игоря Грабина находится патч, позволяющий создать фиксированный переключатель.

Русификация X Window

В файл конфигурации X Window (/etc/X11/XF86Config для XF4 или /etc/XF86Config для X11) в раздел Section "Files" добавьте следующую строчку, перед ранее написанными директивами FontPath:

	FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/"

После рестарта X Window, вы сможете читать тексты на русском языке в кодировке koi8-r. Для ранних версий X Window, вам может понадобится установить дополнительные шрифты, для этого создан порт xcyrillic. Для русификации клавиатуры можно настроить XKB, либо воспользоваться xruskb.

Настройка XKB

Для того, чтобы настроить XKB:

В XFree86 3.x, необходимо добавить следующие строки в секцию Keyboard файла /etc/XF86Config:

XkbKeycodes     "xfree86"
XkbSymbols      "us(pc101)"
XkbGeometry     "pc"
XkbRules        "xfree86"
XkbModel        "pc104"
XkbLayout       "ru"
XkbOptions      "grp:ctrl_shift_toggle"

В XFree86 4.x, необходимо добавить следующие строки в секцию InputDevice файла /etc/X11/XF86Config:

Option	"XkbRules"   "xfree86"
Option	"XkbModel"   "pc101"
Option	"XkbLayout"  "ru"
Option	"XkbOptions"
"grp_led:scroll,grp:ctrl_shift_toggle"

Эти настройки можно сделать в удобной графической утилите xf86cfg в разделе Keyboard.

В данных примерах переключателем режимов является комбинация клавиш Ctrl+Shift. Теперь чтобы увидеть вводимые Вами символы, необходимо эти символы определить, так как X Window ничего не знает о символах кириллицы. Для этого необходимо загрузить соответствующую раскладку с помощью xmodmap. Пример такой раскладки можно найти здесь или здесь.

Загрузка раскладки происходит по-умолчанию из файла ~/.Xmodmap при запуске startx. Если вы используете XDM, добавьте следующую команду в файл ~/.xsession:

[ -x /usr/X11R6/bin/xmodmap ] 
          && /usr/X11R6/bin/xmodmap ~/.Xmodmap

Более подробную информацию по настройке XKB можно получить здесь.

Установка xruskb

Установите порт xruskb. Добавьте в ~/.xinitrc или ~/.xsession следующую команду:

	[ -x /usr/local/bin/xrus ] && xrus jcuken-koi8.xmm

Русификация программ

Freeciv

Для того, чтобы изменить шрифт в freeciv (xaw версии) для русских сообщений, необходимо добавить следующую строку в файл ~/.Xdefaults

Freeciv*font: -cronyx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r

Fvwm (Fvwm2 и Fvwm95)

Чтобы включить поддержку русских букв в менеджерах семейства fvwm, нужно указать шрифты "cronyx" в следующих строчках конфигурационного файла (.fvwmrc, .fvwm2rc, .fvwm95rc):

WindowFont -cronyx-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
MenuFont -cronyx-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
*FvwmPagerFont -cronyx-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmButtonsFont -cronyx-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*MiniButtonsFont -cronyx-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmIdentFont -cronyx-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
*FvwmWinListFont -cronyx-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmTaskBarFont -cronyx-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*
*FvwmTaskBarSelFont -cronyx-helvetica-bold-r-*-*-*-120-*-*-*-*-*-*
GQmpeg

GQmpeg поддерживает перекодировку тегов (win1251 -> koi8). Для этого, его необходимо собрать с опцией --enable-russian. Добавьте следующие строчки в файл /etc/mk.conf и пересоберите GQmpeg из портов.

PORTSDIR?= /usr/ports

	.if ${.CURDIR} == ${PORTSDIR}/audio/gqmpeg
	CONFIGURE_ARGS+=        --enable-russian
	.endif

В разделе Файлы доступны skin'ы с поддержкой русских букв.

Приложений на базе GTK

Все приложения на базе GTK (GIMP, Sylpheed, X-Chat и другие), можно русифицировать, добавив в ~/.gtkrc следующие строчки:


style "user-font"
	{
	font = "-cronyx-helvetica-*-r-normal-*-12-*-*-*-*-*-koi8-r"
	}

	widget_class "*" style "user-font"

LaTeX

Для того, чтобы документы могли содержать русские буквы, необходимо подключить пакет русификации и указать кодировку в преамбуле документа. Например:

\documentclass{article}
\usepackage[koi8-r]{inputenc}
\usepackage[russian]{babel}
\begin{document}
\LaTeX~--- макропакет, позволяющий 
авторам верстать и печатать их работы с высоким типографским качеством,
при помощи заранее определённых, профессиональных макетов. \end{document}

Для того, чтобы активизировать переносы в русских словах запустите утилиту texconfig, выберите раздел hyphenation, далее latex и раскомментируйте строку:

	russian ruhyphen.tex
Majordomo

Под русификацией Majordomo мы подразумеваем приведение сообщений, отправляемых Majordomo, в ответ на запросы к такому виду, чтобы почтовый клиент не строил догадок относительно кодировки сообщения, а точно знал её. Патч, который можно взять здесь, предназначен для Majordomo 1.94.5 и устанавливает кодировку сообщений в koi8-r.

Mg - emacs-like text editor

Чтобы заставить mg работать с русскими буквами, достаточно создать файл ~/.mg, содержащий строчку:

	meta-key-mode
Netscape

Наибольшую проблему при русификации Netscape представляют кнопки и поля ввода. К сожалению по-видимому не существует "нормального" способа решить эту проблему, но кое что все же сделать можно:

Прежде всего конечно следует русифицировать X Window.
Установите порт netscape (navigator или communicator).
Добавьте в файл ~/.Xdefaults следующие строки:

Netscape*fontList: 
-cronyx-helvetica-medium-r-normal-*-14-*-*-*-*-*-koi8-r Netscape*documentFonts.charset*iso8859-1:
koi8-r Netscape*toolBar*fontList:
-cronyx-helvetica-medium-r-normal-*-14-*-*-*-*-*-koi8-r

Остальные настройки производятся обычным способом, из меню Edit/Preferences.

Opera

Для русификации title, кнопок и полей ввода необходимо запускать opera с переменной окружения LANG установленной в koi8-r.

	$ env LANG=koi8-r opera

Остальные настройки производятся обычным способом, из меню File/Preferences.

Readline приложений

Приложения на базе readline (bash, mysql, psql, smbclient и т.д.) могут работать с русскими буквами. Для этого необходимо создать файл ~/.inputrc, содержащий следующие строки:

set convert-meta off
set input-meta on
set output-meta on
Samba

Для того, чтобы Windows клиенты видели русские буквы, в файл /etc/samba/smb.conf добавьте следующие строки:

[global]
		...
		client code page = 866
		character set = koi8-r
		...

Для того, чтобы в smbclient можно было вводить русские буквы, необходимо создать файл ~/.inputrc, как это описано в разделе посвящённом русификации Readline приложений.

Talk

Начиная с OpenBSD 2.9, в программе talk, появилась поддержка русских символов. Другие, более старые версии talk не поддерживали русские символы. Для решения этой проблемы была создана программа bazar. Программа оформлена в виде порта с использованием файлов из /usr/src/usr.bin/talk от OpenBSD. Загрузить порт bazar можно отсюда.

Программа bazar полностью совместима с talk, но содержит следующие дополнения:

Добавлен скроллинг в окна
Поддерживаются русские символы
Добавлена возможность перекодировки koi8-r <> windows-1251

Tab Window Manager

Для того, чтобы Menu, Title и IconManager в TWM писали по русски, необходимо иметь следующие строчки в ~/.twmrc (помимо остальной конфигурации TWM). Пример настройки TWM можно посмотреть тут.

TitleFont "-cronyx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r"
MenuFont "-cronyx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r"
IconManagerFont "-cronyx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r"
Vi/Ex

Стандартный дистрибутив OpenBSD содержит nvi/nex версию редакторов vi и ex. Начиная с OpenBSD 2.9, в nvi/nex правильно отображаются русские буквы. Для ранних версий OpenBSD, необходимо создать файл ~/.nexrc, содержащий следующие строки:

set print=абвгдежзийклмнопрстуфхцчшщыьъэюяАБВГДЕЖЗИЙКЛМ
	set noprint=

Новости мира IT:

Архив новостей

Последние комментарии:

Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...