_self писал(а):Код: Выделить всё
russian|Russian Users Accounts:\
        :charset=utf-8:\
        :tc=default:
        :setenv=LC_CTYPE=ru_RU.utf-8
 
сдается мне ты неправильно оформил, надо так:
Код: Выделить всё
russian|Russian Users Accounts:\
        :charset=UTF-8:\
        :setenv=LC_CTYPE=ru_RU.UTF-8,MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\
        :tc=default:
или лучше просто использовать локаль en_US.UTF-8
Код: Выделить всё
#
# UTF-8 Users Accounts. Setup proper environment variables.
#
uni|UTF-8 Users Accounts:\
	:charset=UTF-8:\
	:lang=en_US.UTF-8:\
	:tc=default:
_self писал(а):кстати как переключается язык ввода в стандартной консоли?
в зависимости от раскладки (keymap(5)). Если не ошибаюсь, то 
alock (ALT Lock) отвечает за переключение между основной раскладкой и альтернативной. Есть еще 
ashift (ALT Shift), но он нужен больше для европейских языков, основанных на латинице.
Обычно используют эту - /usr/share/syscons/keymaps/ru.koi8-r.kbd (ALT Lock = клавиша Caps Lock)
Вот моя раскладка - 
http://pastebin.com/m7ce2c93c (смесь ru.koi8-r.kbd и us.dvorak.kbd, переключение по Caps Lock)
Если тебе нужен ввод и вывод на русском, но с юникодной локалью, то тебе понадобиться посредник, кой может транслировать символы из одной кодировки в другую. sysutils/screen подойдет. Добавь `defutf8 on' в /usr/local/etc/screenrc или ~/.screenrc и запусти из под юникодной локали. Сделай detach (отсоединись) и подсоединись обратно с 8-битной локалью. Весь процесс будет примерно такой:
Код: Выделить всё
$ env LANG=en_US.UTF-8 TERM=xterm-xfree86 screen -dm
$ env LANG=ru_RU.KOI8-R TERM=cons25r screen -r
Как несложно заметить screen(1) транслирует не только кодировку, но и возможности терминала. ;)
_self писал(а):И еще непонятно почему mc заговорил по-русски, хотя его не просили. Какой параметр он читает и откуда?
может в настройках где-то сохранилось. На всяк случай, чему у тя равно LC_MESSAGES?
_self писал(а):Непонятен параметр tc:default, где почитать про него?
в getcap(3), конечно:
getcap(3) писал(а):     A special capability, tc= name, is used to indicate that the record spec?
     ified by name should be substituted for the tc capability.  Tc capabili?
     ties may interpolate records which also contain tc capabilities and more
     than one tc capability may be used in a record.  A tc expansion scope
     (i.e., where the argument is searched for) contains the file in which the
     tc is declared and all subsequent files in the file array.
А вот почему 
tc= должно быть последней возможностью
getcap(3) писал(а):     When a database is searched for a capability record, the first matching
     record in the search is returned.  When a record is scanned for a capa?
     bility, the first matching capability is returned; the capability
     :nameT@: will hide any following definition of a value of type T for
     name; and the capability :name@: will prevent any following values of
     name from being seen.
т.е. если ты используешь 
setenv, то старые значения из метки 
default игнорируются:
Код: Выделить всё
 :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\
ps, локаль можно проверить так
Код: Выделить всё
> locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_ALL=