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

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Андрей3333
проходил мимо

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

Непрочитанное сообщение Андрей3333 » 2008-10-01 11:03:34

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

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

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

Непрочитанное сообщение Morty » 2008-10-01 11:10:31

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

$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 и редактируешь

MAK
ст. сержант
Сообщения: 344
Зарегистрирован: 2008-09-17 2:23:21

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

Непрочитанное сообщение MAK » 2008-10-01 14:32:21

а чем хэндбук не устраивает? http://www.freebsd.org/doc/ru/books/handbook/l10n.html
читали? все по русски...

Andrey333
проходил мимо

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

Непрочитанное сообщение Andrey333 » 2008-10-02 7:44:42

Спасибо разобрался

Аватара пользователя
_self
рядовой
Сообщения: 17
Зарегистрирован: 2008-12-08 21:32:09

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

Непрочитанное сообщение _self » 2009-02-08 22:46:42

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

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

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

Непрочитанное сообщение vintovkin » 2009-02-08 23:09:01

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

у юзера класс рашен должен быть
JunOS kernel based on FreeBSD UNIX.

Гость
проходил мимо

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.

Аватара пользователя
_self
рядовой
Сообщения: 17
Зарегистрирован: 2008-12-08 21:32:09

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

Непрочитанное сообщение _self » 2009-02-10 9:53:20

Почти получилось :)

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

#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, где почитать про него?

Аватара пользователя
_self
рядовой
Сообщения: 17
Зарегистрирован: 2008-12-08 21:32:09

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

Непрочитанное сообщение _self » 2009-02-10 9:53:20

Почти получилось :)

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

#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, где почитать про него?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

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

Непрочитанное сообщение zg » 2009-02-10 10:06:05

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


Гость
проходил мимо

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=

Аватара пользователя
_self
рядовой
Сообщения: 17
Зарегистрирован: 2008-12-08 21:32:09

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

Непрочитанное сообщение _self » 2009-02-11 20:50:21

Гость, спасибо за советы, все работает. Единственное, что 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=