>Не получается русифицировать FreeBSD 4.9 ни в консоли ни в иксах.
>Я честно прочитал большую часть форума про русификацию и всякие инструкции, но
>конкретно решения не нашёл, так что вот
>проблемы с вводом символов
>
>Русификация консоли: я отредактировал rc.conf как сказано в инструкциях, при печати в
>консоли файлов с нужной кодировкой он шрифты правильно показывает, то есть
>с отображением в консоли проблем нет. Но я не могу вводить
>русские шрифты, нажимаешь капслок, жмёшь клавиши, он пищит и не печатает
>ничего. В vi печатает что-то типа \xbe на каждое нажатие.
>Это я делал под рутом. Зашёл под юзером, для которого у меня
>стоит русская локаль и в .csh прописано две переменных. Для него
>отображается весь интерфейс по-русски (что мне не надо нифига), но всё
>равно не печатает, пищит просто после переключения на русскую раскладку. У
>меня цель, чтобы интерфейс был английский, а я просто бы мог
>вводить по-русски.
>А пока всё ровно наоборот.
# echo $LANG
LANG - локализация
# echo $TERM
тип эмулируемого терминала (с поддержкой русского или без - зависит от выбранного типа: cons25r или pc3r)
# echo $TERMCAP
база TERMCAP - описания терминалов: vt100, cons25, pc3, xterm и тд и тп,
содержит описание: кол-во колонок, строк, esc-последовательности, кол-во
цветов и тд и тп
содержимое /etc/rc.conf для руссификации: keyboard mapping, fonts
#--lavr, используем фонты CP866(MSDOS) в них более удачная псевдографика
# font для матрицы, если все не нужны оставить наиболее приемлемый
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866-8x16"
#--lavr мапирование фонта CP866 в KOI8-R
scrnmap="koi8-r2cp866"
#--lavr клавиатурный маппинг для KOI8-R - однократное нажатие CAPS-LOCK
# фонт MSDOS можно использовать ALT-буква
keymap="ru.koi8-r"
чтобы по умолчанию на виртуальных терминалах (консоль) использовалась
эмуляция cons25r - поддержка русских, в /etc/ttys:
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25r on secure
ttyv2 "/usr/libexec/getty Pc" cons25r on secure
ttyv3 "/usr/libexec/getty Pc" cons25r on secure
ttyv4 "/usr/libexec/getty Pc" cons25r on secure
ttyv5 "/usr/libexec/getty Pc" cons25r on secure
ttyv6 "/usr/libexec/getty Pc" cons25r on secure
...
строка:
ttyv1 "/usr/libexec/getty Pc" cons25r on secure
означает что утилита getty висит и ожидает ввода на терминале ttyv1,
если на этом терминале будет произведен вход - login, по умолчанию
выставится переменная TERM=cons25r, разумеется если она не будет
переопределена в стартовых файла login-shell'а пользователя.
Если на каком-то из виртуальных терминалов НЕ НУЖНА поддержка русских,
выставить cons25 в /etc/ttys или это можно выставить в стартовых скриптах
login-shell'а или прямо в сеансе задать переменную среды TERM.
Пример, допустим оставим руссификацию в /etc/rc.conf и /etc/ttys
соответственно мы можем в стартовых скриптах:
BOURNE SHELL (/bin/sh) - .profile
CSH/TCSH - .login/.cshrc/.tcshrc
BASH - .profile/.bash_profile/.bashrc
изменить переменные LANG и TERM, или одну из них, однако следует помнить
что при изменении LANG будет обрезаться 8'ой бит при вводе, а при изменении TERM будет кривой или обрезанный вывод 8'bit в curses-based приложениях, например в MC.
Если же мы хотим чтобы утилиты типа ls, mc и тд и тп имели английский интерфейс, но при этом хотим поддержку ввода/вывода русских(KOI8-R),
необходимо:
- проверить руссификацию как описано выше:
[unix1]~ > echo $LANG
ru_RU.KOI8-R
[unix1]~ > echo $TERM
cons25r
[unix1]~ >
[unix1]~ > ls -la .bash*
-rw------- 1 lavr dug 99 16 сен 11:32 .bash_history
-rw------- 1 lavr dug 100 2 янв 17:09 .bash_history.alone
-rw------- 1 lavr dug 8411 31 янв 18:19 .bash_history.unix1
-rw------- 1 lavr dug 184 2 янв 17:17 .bash_history.xnc
-rw-r--r-- 1 lavr dug 6 16 сен 15:06 .bash_logoff
-rw-r--r-- 1 lavr dug 6 16 сен 15:06 .bash_logout
-rw-r--r-- 1 lavr dug 68 16 сен 15:06 .bash_profile
-rw-r--r-- 1 lavr dug 25 16 сен 15:06 .bashrc
[unix1]~ >
видим вывод даты на русском
проверяем отображение и ввод (CAPS LOCK), если все работает - значит
руссифицировали верно, если нет - ищем ошибки
- чтобы интерфейс был английский но возможность читать-писать KOI8-R осталась, устанавливаем следующие переменные среды, пример для SHELL=BASH:
[unix1]~ > export LC_TIME=ASCII
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- установили, проверяем:
[unix1]~ > ls -la .bash*
-rw------- 1 lavr dug 99 Sep 16 11:32 .bash_history
-rw------- 1 lavr dug 100 Jan 2 17:09 .bash_history.alone
-rw------- 1 lavr dug 8411 Jan 31 18:19 .bash_history.unix1
-rw------- 1 lavr dug 184 Jan 2 17:17 .bash_history.xnc
-rw-r--r-- 1 lavr dug 6 Sep 16 15:06 .bash_logoff
-rw-r--r-- 1 lavr dug 6 Sep 16 15:06 .bash_logout
-rw-r--r-- 1 lavr dug 68 Sep 16 15:06 .bash_profile
-rw-r--r-- 1 lavr dug 25 Sep 16 15:06 .bashrc
[unix1]~ >
[unix1]~ > export LC_MESSAGES=ASCII
Все, далее проверяем man, mc, и ввод-вывод русских букв НЕ МЕНЯЯ LANG и TERM