Показать полную графическую версию : Некоторый проблемы с локализацией
У меня возникла проблема с нормальной русификацией таких терминалов, как xterm, rxvt.
Обычно для локализации системы достаточно установить переменные LANG и LC_MESSAGES, после чего все программы, поддерживающие локализацию будут говроить на русском. В предыдущих версиях FreeBSD этого хватало, плюс, конечно, требовалось настроить шрифты. Сейчас при запуске терминала xterm или rxvt ни один из них русские символы не отображает, вместо них показывают буквы западноевропейских алфавитов. В манах по xterm'у я нашёл опцию -lc, которая заставляет его использовать текущую локаль (я точно помню, что раньше никаких таких опций я не использовал), после запуска с этой опцией с отображением кириллицы становится всё в порядке. Зато непорядок с отображением псевдографики (в mc, например, вместо псевдографики выводятся уже обычные буквы английского алфавита) и с некоторыми сочетаниями клавиш. С последними всё очень странно, в mc работают почти все сочетания, кроме ctrl+o, работают все сочетания с ctrl+x, ctrl+u, ctrl+\, без большинства из них я обойтись могу, но без ctrl+o - никак!
Если запускать xterm без локализации, то это сочетание там работает нормально, в консоли также всё нормально настроено и работает.
Я пробовал запускать xterm с явным указанием шрифта (типа без локализации, но с намерением заменить западноевропейские символы на кириллицу), а он вот что в ответ выдаёт
%xterm -fn clean
xterm: unable to open font "clean", trying "fixed"....
то же самое пишет и на полное имя шрифта из xfontsel, есть подозрение, что он хочет какой-то моноширинный шрифт.
Всё это в системе FreeBSD 6.3.
Кто-нибудь может помочь всё же заставить xterm корректно выводить кириллицу, псевдографику и обрабатывать сочетания клавиш?
WhitePangolin
28-01-2008, 08:46
у меня например так
/etc/profile
LANG=ru_RU.KOI8-R; export LANG
MM_CHARSET=KOI8-R; export MM_CHARSET
и /etc/csh.login
setenv LANG ru_RU.KOI8-R
setenv MM_CHARSET KOI8-R
русский язык и псевдографика везде работают идеально чтобы не запустил
kaEwituS
28-01-2008, 11:54
ElVоvan, ещё 1 способ
1. Как быстро "руссифицировать" пользователя для работы в консоли?
Убедитесь, что в файле /etc/rc.conf есть строки
keymap="ru.koi8-r"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
Убедитесь, что в файле /etc/ttys все виртуальные терминалы ttyv[0-7] -
cons25r
ttyv[0-7] "/usr/libexec/getty Pc" cons25r on secure
При создании пользователя с помощью adduser укажите класс пользователя
russian
Login class [default]: russian
Если пользователь уже создан, то можно сменить класс на russian
командой # pw usermod ЛОГИН_ЮЗВЕРЯ -L russian
или зайдите на мои подписи...
/etc/rc.conf (фрагмент)
keymap=ru.koi8-r
scrnmap=koi8-r2cp866
font8x16=cp866-8x16
font8x14=cp866-8x14
font8x8=cp866-8x8
.cshrc (фрагмент)
setenv LANG ru_RU.KOI8-R
setenv LC_ALL ru_RU.KOI8-R
setenv MM_CHARSET KOI8-R
Ну вот, фрагменты двух файлов настроек, все вышеопиманные проблемы с отображением кириллицы/псевдографики остаются. Напомню, также, что в самой консоли всё работает, а проблемы есть только в Х-терминалах, таких как xterm или rxvt.
Ещё в самом начале забыл упомянуть, что при запуске с опцией -lc (то есть с указанием использовать текущую локаль) xterm выдаёт предупреждение Warning: could not change ownership of tty -- pty is insecure!
Gerr_Sacher_Masoch
19-07-2008, 16:56
Была у меня такая проблема :), уж не знаю чего бзде надо было ) но дело решилось тем, что запись вида XTerm*locale: True сначала была закомментирована в файле .Xdefaults, а потом опять после перезагрузки добавлена :) . В итоге сейчас все нормально. Что это было я вам не скажу :) сам до сих пор теряюсь в догадках :)
Хотя не все так просто оказалось, действительное решение есть вот тут http://www.macosxhints.com/article.php?story=20050517165140613
Подробности в мане по xterm`у :).
kiripanda
31-08-2008, 17:13
Спасибо автору темы и всем ответившим. Ваши сообщения помогли мне разобраться с xterm'ом и локалью KOI8-R.
Как и у автора темы, во FreeBSD 6.2 у меня не было проблем с иксовыми терминалами после локализации системы по хэндбуку в KOI8-R. Когда же я попробовал проделать всё тоже самое в версии 7.0, у меня случилась та же история, что и у автора темы -- ввод и вывод русских букв в эмуляторах терминала не работал.
Благодаря вам и поискам в Сети, в конце концов, мне удалось ситуацию с локализацией разрулить. Вот, что я сделал и выяснил:
1. Страница хэндбука обновилась, и теперь в разделе "20.5.1.5. Настройка X11" (http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/lang-setup.html) появилось следующее:
"Обратитесь к KOI8-R for X Window (http://koi8.pp.ru/xwin.html) за дальнейшими инструкциями по локализации приложений X11."
где, в свою очередь, написано следующее:
"Software Tuning:
* XTerm
New version require locale converter /usr/X11R6/bin/luit installed to work with non UTF-8, i.e. ru_RU.KOI8-R locale. Add
XTerm*locale: true
XTerm*VT100*allowC1Printable: true
into your ~/.Xdefaults file."
Таким образом, "сломали" что-то не во Фре, а в новой версии Xorg'а и, соответственно, терминала.
2. После добавления вышеуказанных строк в .Xdefaults русские буквы в терминале у меня работают, но, при запуске терминала имеем
Warning: could not change ownership of tty -- pty is insecure!
в качестве первой строки. Хотя, вроде как, строчка XTerm*locale: true от этого должна бы избавлять...
3. Ещё обнаружилась страница http://lists.unixcenter.ru/archives/mlug/2003-April/009889.html с настройками шрифтов xterm'а, которая решает все проблемы с вводом и выводом русских букв. То есть, в .Xdefaults требуется добавить следующее:
XTerm*Font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r
XTerm*Font2: -cronyx-fixed-medium-r-normal--10-*-*-*-*-*-koi8-r
XTerm*Font3: -cronyx-fixed-medium-r-normal--13-*-*-*-*-*-koi8-r
XTerm*Font4: -cronyx-fixed-medium-r-normal--15-*-*-*-*-*-koi8-r
XTerm*Font5: -cronyx-fixed-medium-r-normal--20-*-*-*-*-*-koi8-r
XTerm*Font6: -cronyx-fixed-medium-r-normal--24-*-*-*-*-*-koi8-r
После внесения этих изменений, русский вводится и выводится, и предупреждений никаких после запуска терминала не отображается.
4. В конце концов, локализовал у себя консоль в KOI8-R, а X.Org -- в UTF-8, для чего в .xinitrc было достаточно добавить:
export LANG='ru_RU.UTF-8'
export LC_ALL='ru_RU.UTF-8'
В результате получился, на мой взгляд, оптимальный вариант -- и консоль локализована без извращений, и иксы имеем в современной кодировке, которая абсолютно исправно работает точно также, как и в любом дистрибутиве Линукса.
А по большому счёту, заниматься локализацие консоли смысла никакого нет, если Вы используете FreeBSD дома с запущенным X.Org (а скорее всего, так и есть), поэтому, для локализации всей системы достаточно добавить две последние строчки в .xinitrc, после чего всё у Вас будет Окэй.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.