cyrillic words in console

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
100kg
ст. сержант
Сообщения: 393
Зарегистрирован: 2006-05-18 14:01:32

cyrillic words in console

Непрочитанное сообщение 100kg » 2008-04-19 20:11:29

всем привет!

кароче говоря, мне не нужно всю консоль русс, так чтоб она на не правельную команду говорила на русском

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

команда не наидена
или например в том же редакторе деиствия писались на русском, хочу только чтоб можно было писать на русском и чтоб фаилы отоброжались правельно, все отстальное хочу чтоб осталось радное на инглише.

спасибо

Хостинговая компания 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/

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-19 20:50:57

а handbook раздел локализации открыть уже не Ъ?

100kg
ст. сержант
Сообщения: 393
Зарегистрирован: 2006-05-18 14:01:32

Re: cyrillic words in console

Непрочитанное сообщение 100kg » 2008-04-19 23:09:18

Гость писал(а):а handbook раздел локализации открыть уже не Ъ?
а ты хоть раз делал как в хэндбуке написано?

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-20 1:24:32

За язык вывода gettext'овых сообщений отвечает LC_MESSAGES
За поддержку набора символов в однобайтовой кодировке отвечает LC_CTYPE
Отсюда делаем вывод, что нам нужно

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

export LANG=en_US.KOI8-R # нам нужен английский язык с лишним битом для *русских* символов
export LC_MESSAGES=ru_RU.KOI8-R # на каком выводим лишний бит
export LC_CTYPE=ru_RU.KOI8-R # на каком языке мы вводим лишний бит
Подробное описание этих переменных — http://www.opengroup.org/onlinepubs/009 ... #tag_08_02

Если что-то непонятно, то
http://pascal.tsu.ru/unixz/unix/syscons/russian.html
(об акцентах там не написно, видимо кроме русского автор ничего не знает или не приходилось набирать)

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-20 1:35:09

Гость писал(а):export LANG=en_US.KOI8-R
Бред, оно не нужно. За отображение символов, ввода/выводаотвечает только LC_CTYPE, а LC_MESSAGES и прочие отвечают лишь за предпочтения.

Впрочем, это мои догадки. Как оно на самом деле должен объяснять стандарт и его реализация, куда я, естественно, поленился посмотреть.

100kg
ст. сержант
Сообщения: 393
Зарегистрирован: 2006-05-18 14:01:32

Re: cyrillic words in console

Непрочитанное сообщение 100kg » 2008-04-20 20:46:37

уже 2 дня потратил, не как не получаится, оставил консоль, даваи решать кряказяблики в Иксах, добавил FontPath как написано в хэндбуке, и тут лажа менюшки в программах стали на русском а названия фаилов которых перетащил с винды с одних каракуль перекодировались в другие :twisted: у меня флуксбок.

хотелось чтоб было как в винде, сама она англ., а файлы на кириллице отображаются нормально.

спасибо

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

Re: cyrillic words in console

Непрочитанное сообщение zg » 2008-04-20 21:02:21

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

zg# cat .cshrc | grep LC_
setenv  LC_ALL ru_RU.KOI8-R
zg# asdadsasd
asdadsasd: Команда не найдена.
zg#
шрифты для консоли как в хендбуке написано - через sysinstall ставлю
в иксах тоже кои8, но это вроде из локали выходит, хотя не знаю, работает и ладно

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

zg# pwd
/root
zg# ls | grep font
.fonts
.fonts.cache-1
.fonts.conf
zg#
виндовые шрифты в папке /root/.fonts лежат, чтоб не прописывать их нигде ручками, да и чтоб не терялись при переустановке системы.

ещё команду делаю, чтоб локаль через класс выставлять

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

pw usermod ${USER} -L russian

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

Re: cyrillic words in console

Непрочитанное сообщение zg » 2008-04-20 21:05:59

100kg писал(а):а ты хоть раз делал как в хэндбуке написано?
я делал :lol: после этого настругал скрипт и забыл как страшный сон

100kg
ст. сержант
Сообщения: 393
Зарегистрирован: 2006-05-18 14:01:32

Re: cyrillic words in console

Непрочитанное сообщение 100kg » 2008-04-20 21:23:16

to zg

я так тоже могу, но я не хочу так

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

export LANG=en_US.KOI8-R # нам нужен английский язык с лишним битом для *русских* символов
вот как хочу, только не знаю куда добавить

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-21 2:24:34

100kg писал(а):хотелось чтоб было как в винде, сама она англ., а файлы на кириллице отображаются нормально
Тогда только LC_CTYPE, ибо LC_MESSAGES как раз и отвечает за язык менюшек, язык вывода команд и тд.

Куда это все вставить? В ~/.login.conf или /etc/login.conf ну или на крайний случай в скрипт инициализации шелла, т.е. в ~/.cshrc и тому подобные. Вот пример для ~/.login_conf:

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

me:\
	:charset=KOI8-R:\
	:setenv=LC_CTYPE=ru_RU.KOI8-R:

Все остальные LC_* будут по дефолту в локали `C' и язык будет английский.

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-21 2:36:17

но это если будешь работать только в консоли (такое еще в природе бывает, разве ssh не истребил таких сущностей?), иначе рискуешь наткнуть на проблемы с кодировками (вспомним про знак номер № и его отсутствие в koi8-r) и невозможность совмешать два (исключая англ) языка.

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

Re: cyrillic words in console

Непрочитанное сообщение zg » 2008-04-21 5:37:53

100kg писал(а):только чтоб можно было писать на русском и чтоб фаилы отоброжались правельно, все отстальное хочу чтоб осталось радное на инглише.

спасибо
так это проще простого - за ввод отвечает ttys, там надо выставит cons25r, за отображение - шрифты, их надо поставить как хэнбуке написано, а за сообщения отвечает локаль, вот её трогать не надо, тогда всё будет как ты хочешь

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: cyrillic words in console

Непрочитанное сообщение manefesto » 2008-04-21 6:15:28

не знаю как у Вас, а мне для локализации хватило sysinstall и

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

pw usermod <имя_юзера> -L russian
я такой яростный шо аж пиздеЦ
Изображение

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-21 7:45:32

zg писал(а):так это проще простого - за ввод отвечает ttys, там надо выставит cons25r, за отображение - шрифты, их надо поставить как хэнбуке написано, а за сообщения отвечает локаль, вот её трогать не надо, тогда всё будет как ты хочешь
Странно, но у меня русский работает и на cons25, правда (псевдо)графические символы отоборажаются криво. А вот ввод работает только после переключения именно на LC_CTYPE ru_RU.KOI8-R (en_US.KOI8-R не проходит), иначе вводимые символы отображаются как \332 и прочие, например `русский язык' отобразится как `\322\325\323\323\313\311\312 \321\332\331\313'. Попробуй сам! Или трындеть непроверенную чушь легче?

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-21 7:50:19

manefesto писал(а):

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

pw usermod <имя_юзера> -L russian
а у мя pw usermod <вымя_юзверя> -L uni. Не ограничиваться же одним быдлорусским языком. Или под russion у тя скрывается ru_RU.UTF-8? ;)

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

Re: cyrillic words in console

Непрочитанное сообщение zg » 2008-04-21 9:06:12

Гость писал(а):Попробуй сам! Или трындеть непроверенную чушь легче?

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

locale locate
# locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
# ./1.sh
Привет мир!
# cat 1.sh
#!/bin/sh

echo Привет мир!
# asdasdasdasdsad
asdasdasdasdsad: Command not found.
#
единственное, чё не пашет, так это ввод руских символов... а в остальном всё как я сказал :P

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-21 9:33:43

вообще-то чушью я назвал
zg писал(а):за ввод отвечает ttys, там надо выставит cons25r
а про вывод русских букв из файла, то зависит от шрифта. Значит LC_TYPE на сие не влияет, интересненьк.

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-21 9:38:16

Гость писал(а):Значит LC_TYPE на сие не влияет, интересненьк.
Вообще-то кроме простых файлов сие тоже чушь. ls(1) не выведет русское название с LC_TYPE=C

100kg
ст. сержант
Сообщения: 393
Зарегистрирован: 2006-05-18 14:01:32

Re: cyrillic words in console

Непрочитанное сообщение 100kg » 2008-04-21 14:54:45

всем привет, огромное спасибо за хелп

про X.
добавил в login_conf

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

me:\
   :charset=KOI8-R:\
   :setenv=LC_CTYPE=ru_RU.KOI8-R:
и обязательно в xorg.conf должна быть строка

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

 FontPath     "/usr/local/lib/X11/fonts/cyrillic"
после чего ввод и вывод в консоле проходит!
но вот фаилы каторые скопировал с винды(они тоже на кирилице) отображаются некорректно, это потомучто они в другои кодировке(cp1251)?

спасибо

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-21 16:23:58

100kg писал(а):и обязательно в xorg.conf должна быть строка

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

 FontPath     "/usr/local/lib/X11/fonts/cyrillic"
неа, не обязательно. Можно использовать TrueType шрифт в xterm'е (опция -fa или ресурс faceName), а папка /usr/local/lib/X11/fonts/TrueType добавляется по умолчанию

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

(==) Including the default font path /usr/local/lib/X11/fonts/misc/,/usr/local/lib/X11/fonts/TTF/,/usr/local/lib/X11/fonts/OTF,/usr/local/lib/X11/fonts/Type1/,/usr/local/lib/X11/fonts/100dpi/,/usr/local/lib/X11/fonts/75dpi/.
Правда стандартные шрифты ужасны и лучше поставить D?j?Vu или terminus, а для CJK ipafonts-ttf. Вот сравнение D?j?Vu с Terminus'ом, если что:
Изображение
(в тесте правда только 16 цветов, а не 256 поддерживаемых xterm'ом).
Но, я смотрю, тебе так хочется наступить на грабли неюникодной локали... X'ы-то ведь давно держат en_US.UTF-8 в котором легко можно набирать русский или греческий, а с помощью scim и японский.
100kg писал(а):но вот фаилы каторые скопировал с винды(они тоже на кирилице) отображаются некорректно, это потомучто они в другои кодировке(cp1251)?
А ты как копировал-то? Если с раздела или по smb, то у mount_smbfs, mount_ntfs и mount_msdosfs есть опции указания кодировки, и имена файлов должны перекодироваться на лету. Впрочем, никто не мешает перекодировать вручную при помощи

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

> bpkg -p convmv
converters/convmv
        Convert filenames from one encoding to another

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-21 16:30:17

100kg писал(а):но вот фаилы каторые скопировал с винды(они тоже на кирилице) отображаются некорректно, это потомучто они в другои кодировке(cp1251)?
Да. Но если хочешь отредактировать файл не меняя кодировки и не переключая xterm из юникодного режима, то можно воспользоваться командой

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

> env LC_CTYPE=ru_RU.CP1251 luit vi

100kg
ст. сержант
Сообщения: 393
Зарегистрирован: 2006-05-18 14:01:32

Re: cyrillic words in console

Непрочитанное сообщение 100kg » 2008-04-21 22:55:22

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

Правда стандартные шрифты ужасны 
а я скопиповал с винды шрифты в папку TTF, после чего стало гораздо лучше!

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

неа, не обязательно. Можно использовать TrueType шрифт
у меня такои папки нет в /usr/X11R6/lib/X11/fonts, если уберу FontPath cyrillic то будут каракули.

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

X'ы-то ведь давно держат en_US.UTF-8 в котором легко можно набирать русский или греческий, а с помощью scim и японский.
а как это сделать :shock: ? я попробывал поменять

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

me:
   :charset=KOI8-R:\
   :setenv=LC_CTYPE=ru_RU.KOI8-R
на

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

me:\
   :charset=UTF-8:\
   :setenv=LC_CTYPE=en_US.UTF-8 
но так и не вышло у меня

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-22 5:43:23

100kg писал(а):

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

me:\
   :charset=UTF-8:\
   :setenv=LC_CTYPE=en_US.UTF-8 
Ты двоеточие забыл после en_US.UTF-8 и вместо него у тя пробел, а также не видно символа новой строки в конце! Глянь getcap(3). К тому же, если будешь использовать UTF-8, то проще просто lang прописать, т.е.

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

me:\
	:charset=UTF-8:\
	:lang=en_US.UTF-8:
. Но еще лучше создать класс в /etc/login.conf, как сделал manefesto, но только вида

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

#
# UTF-8 Users Accounts. Setup proper environment variables.
#
uni|UTF-8 Users Accounts:\
	:charset=UTF-8:\
	:lang=en_US.UTF-8:\
	:tc=default:
Обноваить хешированную базу по cap_mkdb /etc/login.conf и добавить себя (и капризных даемонов типа mldonkey) туда по pw usermod <loginName> -L uni.

Но если будут проблемы с X'ами, то кодировку можно легко переключить только для одного приложения, например env LC_CTYPE=ru_RU.KOI8-R w3m forum.lissyara.su или для всех далее запускаемых по setenv LC_CTYPE ru_RU.KOI8-R (в csh-подобных) и export LC_CTYPE=ru_RU.KOI8-R (в sh-подобных).

ps, насчет консоли, не нужна склееная раскладка us.dvorak и ru.koi8-r с alt'ами в качестве meta и win-key'ми в кач-ве alt? Ее можно скопировать в /usr/share/syscons/keymaps/udr.aim.kbd и включить по kbdcontrol -l udr.aim (она у меня вкомпилена в ядро), но прежде чем включать лучше быть в курсe как выглядит dvorak, ибо она совершенно не похожа на qwerty. ;) Как такое же включить в X'ах можно глянуть в моем конфиге xorg.conf, кой я приводил выше, а потренироваться в наборе на dvorak при помощи консольной misc/dvorak7min. Have fun!

100kg
ст. сержант
Сообщения: 393
Зарегистрирован: 2006-05-18 14:01:32

Re: cyrillic words in console

Непрочитанное сообщение 100kg » 2008-04-22 20:59:35

вот что у меня получилось

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

 >locale
LANG=en_US.UTF-8
LC_CTYPE=ru_RU.KOI8-R
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=
вроде все нормально, только заголовки окон в fluxbox в каракулях

в cshrc добавил, но все равно так и осталось

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

setenv LC_CTYPE ru_RU.KOI8-R

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

Re: cyrillic words in console

Непрочитанное сообщение Гость » 2008-04-22 22:38:24

100kg писал(а):

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

setenv LC_CTYPE ru_RU.KOI8-R
если стартуешь X'ы через startx(1), то лучше так не делать. После setenv LC_CTYPE ru_RU.KOI8-R все программы, запущенные из данной сессии, будут наследовать эту переменную окружения и startx вместе с иксами тоже. Как оно в xdm (gdm, kdm) я хз, ибо не разу не запускал.

Я, например, оставляю в консоли en_US.UTF-8, откуда запускаю screen, а из него startx. А когда мне нужен русский язык в syscons (а он мне нужен, только в случае неполадок), то вручную переключаю.
100kg писал(а):вроде все нормально, только заголовки окон в fluxbox в каракулях
это может быть проблемой самого флюкса. Помню у меня dwm тоже не поддерживал юникод. Впрочем, я на заголовки окон никогда не смотрел и панельку просто убрал с глаз долой. Но сейчас у меня stumpwm и там юникод работает. Это скорее наследственное от sbcl.

ps,
Гость писал(а):Как такое же включить в X'ах можно
глянуть в моем конфиге xorg.conf, кой я приводил выше
это была другая тема. Вот ссылка, если что:
http://pastebin.com/m27cc9808