Страница 1 из 1

Русификация консоли

Добавлено: 2008-10-01 11:03:34
Андрей3333
Привет ! Делаю по этой статье http://www.lissyara.su/?id=1081, не могу вставить символ " | " "/etc/>cat ttys | grep cons25 "
Подскажите пож. новичку!!!!!

Re: Русификация консоли

Добавлено: 2008-10-01 11:10:31
Morty

Код: Выделить всё

$fetch http://www.TrueBSD.org/files/soko1/bsdruscons-0.4.tgz
$tar xzpvf bsdruscons-0.4.tgz
$cd bsdruscons-0.4
$sudo ./install.sh
указать для /etc/ttys cons25r через sysinstall либо
vi /etc/ttys
ee /etc/ttys и редактируешь

Re: Русификация консоли

Добавлено: 2008-10-01 14:32:21
MAK
а чем хэндбук не устраивает? http://www.freebsd.org/doc/ru/books/handbook/l10n.html
читали? все по русски...

Re: Русификация консоли

Добавлено: 2008-10-02 7:44:42
Andrey333
Спасибо разобрался

Re: Русификация консоли

Добавлено: 2009-02-08 22:46:42
_self
Почитал заметки Лиса, русифицировал консоль. Получилось не совсем то, что хотел - консоль стала говорить на русском. Хотелось бы заставить ее говорить на английском, но понимать русские символы на вводе - если оставить ее в английском, то при наборе символов великого и могучего отображаются знаки вопроса.
Погуглил - не особо нахожу методов решения данного вопроса. Поможете сделать? :)

Re: Русификация консоли

Добавлено: 2009-02-08 23:09:01
vintovkin
_self писал(а):Почитал заметки Лиса, русифицировал консоль. Получилось не совсем то, что хотел - консоль стала говорить на русском. Хотелось бы заставить ее говорить на английском, но понимать русские символы на вводе - если оставить ее в английском, то при наборе символов великого и могучего отображаются знаки вопроса.
Погуглил - не особо нахожу методов решения данного вопроса. Поможете сделать? :)

у юзера класс рашен должен быть

Re: Русификация консоли

Добавлено: 2009-02-08 23:44:57
Гость
_self, если тебе нужна только поддержка ввода и отображения - LC_CTYPE (и не трогай LANG и LC_ALL), если нужно чтобы программы говорили на родном, то LC_MESSAGES. Вобщем смотри setlocale(3).

Re: Русификация консоли

Добавлено: 2009-02-08 23:47:48
Гость
правда, если в LC_CTYPE стоит юникодная локаль, то можно вводить символы из любого языка. В syscons правда придется выкручиваться трансляцией в 8-битную кодировку с помощью screen.

Re: Русификация консоли

Добавлено: 2009-02-10 9:53:20
_self
Почти получилось :)

Код: Выделить всё

#vipw
root:***:0:0:russian:0:0:Charlie &:/root:/bin/csh
###
self:***:1001:1001:russian:0:0:User &:/home/self:
###
/etc/login.conf:

Код: Выделить всё

default:\
        :passwd_format=md5:\
        :copyright=/etc/COPYRIGHT:\
        :welcome=/etc/motd:\
        :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\
        :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\
        :nologin=/var/run/nologin:\
        :cputime=unlimited:\
        :datasize=unlimited:\
        :stacksize=unlimited:\
        :memorylocked=unlimited:\
        :memoryuse=unlimited:\
        :filesize=unlimited:\
        :coredumpsize=unlimited:\
        :openfiles=unlimited:\
        :maxproc=unlimited:\
        :sbsize=unlimited:\
        :vmemoryuse=unlimited:\
        :priority=0:\
        :ignoretime@:\
        :umask=022:

###

russian|Russian Users Accounts:\
        :charset=utf-8:\
        :tc=default:
        :setenv=LC_CTYPE=ru_RU.utf-8
Теперь консоль дает выводы на английском, русский ввод понимает, но только под иксами (кстати как переключается язык ввода в стандартной консоли?)
И еще непонятно почему mc заговорил по-русски, хотя его не просили. Какой параметр он читает и откуда? Непонятен параметр tc:default, где почитать про него?

Re: Русификация консоли

Добавлено: 2009-02-10 9:53:20
_self
Почти получилось :)

Код: Выделить всё

#vipw
root:***:0:0:russian:0:0:Charlie &:/root:/bin/csh
###
self:***:1001:1001:russian:0:0:User &:/home/self:
###
/etc/login.conf:

Код: Выделить всё

default:\
        :passwd_format=md5:\
        :copyright=/etc/COPYRIGHT:\
        :welcome=/etc/motd:\
        :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\
        :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\
        :nologin=/var/run/nologin:\
        :cputime=unlimited:\
        :datasize=unlimited:\
        :stacksize=unlimited:\
        :memorylocked=unlimited:\
        :memoryuse=unlimited:\
        :filesize=unlimited:\
        :coredumpsize=unlimited:\
        :openfiles=unlimited:\
        :maxproc=unlimited:\
        :sbsize=unlimited:\
        :vmemoryuse=unlimited:\
        :priority=0:\
        :ignoretime@:\
        :umask=022:

###

russian|Russian Users Accounts:\
        :charset=utf-8:\
        :tc=default:
        :setenv=LC_CTYPE=ru_RU.utf-8
Теперь консоль дает выводы на английском, русский ввод понимает, но только под иксами (кстати как переключается язык ввода в стандартной консоли?)
И еще непонятно почему mc заговорил по-русски, хотя его не просили. Какой параметр он читает и откуда? Непонятен параметр tc:default, где почитать про него?

Re: Русификация консоли

Добавлено: 2009-02-10 10:06:05
zg
_self писал(а):Какой параметр он читает и откуда?
вроде как и все - локаль, хотя у меня почему-то на инглише пашет... хз, раньше на русском был... может ещё от версии зависит.

Re: Русификация консоли

Добавлено: 2009-02-10 10:19:01
Raven2000

Re: Русификация консоли

Добавлено: 2009-02-11 3:19:28
Гость
_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=

Re: Русификация консоли

Добавлено: 2009-02-11 20:50:21
_self
Гость, спасибо за советы, все работает. Единственное, что UTF-8 коряво работает, русские символы отказывается выводить нормально. И в mc кракозябры выводятся. Поэтому поставил KOI8-R.

Код: Выделить всё

#cat /etc/login.conf
###
#UTF-8 Users
#
uni|UTF-8 Useraccs:\
    :charset=UTF-8:\
    :lang=en_US.UTF-8:\
    :setenv=LC_CTYPE=ru_RU.KOI8-R,MAIL=/var/mail/$USER,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES,EDITOR=mcedit:\
    :tc=default:
###

Re: Русификация консоли

Добавлено: 2009-02-11 21:53:57
Гость
_self писал(а):Единственное, что UTF-8 коряво работает, русские символы отказывается выводить нормально. И в mc кракозябры выводятся. Поэтому поставил KOI8-R.
русские символы с KOI8-R нормально отображаются? ты пробовал трансляцию юникода в KOI8-R с помощью screen(1)? С трансляцией все твои приложения внутри screen'а будут видеть UTF-8 (т.к. локаль юникодная), но снаружи это будет выглядеть для syscons(4) как будто ты используешь KOI8-R.

Re: Русификация консоли

Добавлено: 2009-02-11 22:00:28
Гость
_self писал(а):

Код: Выделить всё

...,EDITOR=mcedit:\
не лучше ль EDITOR поместить куда нить типа ~/.profile или ~/.login? К тому же если ты намерен использовать KOI8-R, то тебе не нужно ставить

Код: Выделить всё

    :lang=en_US.UTF-8:\
по умолчанию, если lang не определена, то локаль будет C (что-то типа en_US.ASCII)

Код: Выделить всё

> locale
LANG=
LC_CTYPE=ru_RU.KOI8-R
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=