Как русифицировть FreeBSD?

Игорь Карпов, Дмитрий Карпов.

В файле /etc/rc.conf (для FreeBSD 2.2.*) или /etc/sysconfig (для FreeBSD 2.1.*) Надо найти раздел

        ##############################################################
        ###  System console options  #################################
        ##############################################################

и установить (поправить) в нем значения следующих переменных:

        keymap="ru.koi8-r"      # keymap in /usr/share/syscons/keymaps/*
        keychange="61 Esc[K"

для клавиатуры; "Esc" означает, что на этом месте действительно должен стоять символ Escape с кодом 27 или 0x1B (см.раздел # General Russian setup for example:); а также

        scrnmap="koi8-r2cp866"  # screen map in /usr/share/syscons/scrnmaps/*
        font8x16="cp866b-8x16"  # font 8x16 from /usr/share/syscons/fonts/*
        font8x14="cp866-8x14"   # font 8x14 from /usr/share/syscons/fonts/*
        font8x8="cp866-8x8"     # font 8x8 from /usr/share/syscons/fonts/*

для консоли (ряд строк раздела опущен, как не имеющих отношения к русскому); для разных текстовых режимов нужны разные фонты - 8x16, 8x14 или 8x8;

NB. В этих манипуляциях с фонтами вы можете заметить применение кодовой страницы 866. На самом деле это нужно лишь для того, чтобы символы псевдографики выглядели нормально (это связано с аппаратными особенностями видеосистемы PC). В целом, если вы не используете программ наподобии Midnight или Demos Commander'ов, можно смело опустить mapping koi8-r -> cp866, и, соответственно, использовать родные фонты koi-8r:

        keymap="ru.koi8-r"
        font8x16="koi8-r-8x16"
        font8x14="NO"
        font8x8="NO"

(Здесь загружаются только фонты 8x16 - VGA, 80 колонок * 25 строк.) Переключатель русской/английской клавиатуры определяется в ru.koi8-r, по умолчанию - CapsLock (переключение заглавных/строчных при этом - Shift+CapsLock). Отказ от переопределения 61 -> Esc[K можно компенсировать изменением /etc/termcap и, для FreeBSD 2.2.*, перекомпиляцией его базы данных.

Все эти переменные, установленные в /etc/rc.conf (/etc/sysconfig), суть установки для команд vidcontrol и kbdcontrol. Если интересно, как они обрабатываются, смотрите /etc/rc.i386

В файле /etc/ttys в третьей колонке заменяем cons25 на cons25r или pc3r.

Все произведенные изменения в /etc/rc.conf и /etc/sysconfig будут действовать только после перезагрузки; в /etc/ttys - после перезагрузки или после посылки сигнала SIGHIP процессу /sbin/init (насколько я помню, он всегда идет под номером 1)

        kill -SIGHIP 1

В зависимости от используемого shell'а (командного интерпретатора) надо установить значения переменных

	LANG=ru_RU.KOI8-R
        MM_CHARSET=KOI8-R

и, в некоторых shell'ах надо будет экспортировать их. Это делается в стартовых скриптах каждого пользователя или в общих скриптах, запускаемых при входе в систему. Внесенные изменения возымеют действие после входа в систему.

Некоторые приложения могут некорректно работать с 8-битным тектом/вводом. К сожалению, невозможно дать один рецепт для всех приложений. Как правило, это несложно либо невозможно. :-) Смотрите manual pages соответствующего приложения.