Вопросы и Ответы по FreeBSD : X Window System. : Не работает ввод русских букв в xterm, запущенном на
Previous: Что такое xrus и зачем он нужен?
Next: Прикладное программное обеспечение.

7.10. Не работает ввод русских букв в xterm, запущенном на локальной консоли в XFree86.

Это связано с ошибкой локализации в дистрибутиве X Window, поставляемой с 2.2.8-RELEASE. xterm ищет файлы локализации в каталоге ${X11BASE}/lib/X11/locale, а например, ports/russian/X.language, устанавливает их в ${X11BASE}/lib/X11/nls. Соответственно нужно просто переписать файлы локализации в нужный каталог.

Самый простой способ: Закомментарить в файле ${X11BASE}/lib/X11/locale/koi8-r/XLC_LOCALE строчку encoding_name KOI8-R

Если вы можете пересобрать XFree86 из портов, то должен помочь следующий патч:


- --- lib/X11/imConv.c	  Sat Oct 24 09:50:13 1998
+++ lib/X11/imConv.c.new	Thu Dec  3 18:20:07 1998
@@ -429,7 +429,7 @@
 #endif
     {sUTF8,	"utf8", 	"\033%B"},
     /* Non-standard */
-    {sCyrillic,	"KOI8-R", "\033%/1\200\210koi8-r\002"},
+    {sKoi8,	"KOI8-R",	"\033%/1\200\210koi8-r\002"},
     {sLatin9,	"ISO8859-15",	"\033%/1\200\213iso8859-15\002"},/*
a.k.a. Latin-0 */
 };

     

Нужно просто положите его в /usr/ports/x11/XFree86/patches и пересобрать XFree86.

Еще способ: Изменить в /etc/XF86Config строчку XkbLayout с su на ru

Еще один способ: Запускать xterm, не имея установленных значений для LANG/LC_ALL

Есть предположение, что xterm в locale.aliases ищет первое минимальное соответствие на LANG, в случае ru бралось ISO. Нужно изменить запись для ru на нужное (koi8-r).


Вопросы и Ответы по FreeBSD : X Window System. : Не работает ввод русских букв в xterm, запущенном на
Previous: Что такое xrus и зачем он нужен?
Next: Прикладное программное обеспечение.