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

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:

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

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

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
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...