[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FAQ (Was: keymap <--> keytrans ?)



On Thu, 6 Apr 2000, Alexander Voropay wrote:

>  Ну дак давайте же составлять нармальные HOWTO и FAQ !
>  Пишите доки, в FAQ лучше помещать URLs, а не текст.

Раз уж эту тему здесь подняли, думаю, будет не лишним запостить сюда часть
faq, относящуюся к русификации. Может кто-нибудь напишет (или даст ссылку
на) инструкцию по русификации (X)Emacs?
 
  3.  Русификация


  3.1.  * У меня проблемы с русским в...

  Проблему русификации можно разделить на четыре части :

  ╥  русификацию консоли

  ╥  установку системной locale

  ╥  русификацию системы X Window - шрифты и клавиатура

  ╥  включение поддержки русского в конкретных программах

  ╥  печать

     Все эти части настраиваются по-отдельности.

  Довольно подробно все описано в Cyrillc-HOWTO, однако он довольно
  долго не обновлялся, поэтому отнеситесь к нему критически (Last
  version : v4.0, 23 January 1998 ) <http://linuxdoc.org/HOWTO/Cyrillic-
  HOWTO.html>, перевод: <http://www.linux.org.ru/books/HOWTO/Cyrillic-
  HOWTO.html>

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

  В системе Linux  существуют два конкурирующих пакета управления
  шрифтами и клавиатурой : kbd и consoletools.

  <ftp://ftp.win.tue.nl/pub/linux/utils/kbd/>

  <http://www.multimania.com/ydirson/en/lct/>

  (Есть еще easy-cyrillic, URL???)

  В разных дистрибутивах применяются или один, или другой.  Например, в
  RedHat 4.х и 5.x для русификации консоли применялся пакет kbd. Однако
  в RedHat 6.x применяется уже другой пакет - consoletools.

  Существует Keyboard-and-Console-HOWTO, автор этого HOWHO является
  также автором пакета kbd, поэтому естественно, всех склоняет к
  использованию kbd. ;-) <http://linuxdoc.org/HOWTO/Keyboard-and-
  Console-HOWTO.html>

  На "низком уровне" для русификации консоли достаточно выполнить
  следующие команды (пакет kbd):

  $ setfont Cyr_a8x16
  $ mapscrn koi2alt
  $ echo -ne "\033(K"
  $ loadkeys ru1


  См. man на соответствующие команды и 'man console_codes'.  Если
  поставлены console-tools -- man loadkeys, man consolechars.  Описание,
  что есть что, у console-tools в /usr/doc/console-tools*, довольно
  внятное.

  Как правило, настройка шрифтов и клавиатуры скрыта среди стартовых
  скриптов, а ключевые уравляющие параметры вынесены в отдельные
  файлики. Иногда существуют даже специальные программы настройки.
  "Идеологически правильно" не нарушать системную архитектуру
  дистрибутива, а всего лишь поменять настройки в этих файликах.

  К сожалению, в Linux только один загружаемый фонт на все виртуальные
  консоли.


  3.3.  Как настроить локаль ?

  Прежде всего - подробная дока о локали имеется на
  <http://www.sensi.org/~alec/locale>.  Обращайтесь туда, если вам нужны
  нестандартные варианты (например, отключение русскоязычного интерфейса
  с сохранением правильной сортировки итд)

  Доки по иксовой локали -  <http://www.tsu.ru/~pascal/x_locale/>

  Вот инструкция для нетерпеливых (только для glibc):

  Вам нужно:

  1. Зайти в /usr/share/locale и создать там симлинк ru_RU.KOI8-R,
     указывающий на ru_SU. Эта операция необходима только для glibc <
     2.1.2.


  2. Как-либо прописать установку переменной LANG в стартовых скриптах.
     В RedHat-based дистрибутивах это делается путем редактирования
     файла /etc/sysconfig/i18n где, кроме прочего, должна быть строчка

     LANG=ru_RU.KOI8-R

     В общем случае можно прописать в /etc/profile

     LANG=<имя-выбранного-каталога>.
     export LANG



  3. Проверить, что все работает, можно, запустив locale и посмотрев,
     что она выдает, а также набрав cal, date - названия месяцев и дней
     недели должны быть по-русски.

  (дополнение от Alexander Voropay <mailto:a.voropay@globalone.ru>)

  Гораздно честнее сделать отдельный *настоящий* каталог :

  /usr/share/locale/ru_RU.KOI8-R/


  (если его конечно нет в данном дистрибутиве).  Как это делалось для
  RedHat 5.2 я писал в 'телеге' :
  <http://www.sensi.org/~alec/locale/other/glibc-trbl.html>

  Отдельный каталог занимает совсем немного места, но это Правильная
  Вещь (tm).  :)

  И второе. Некоторые дистрибутивы неправильно включают

  LANG=ru
  LC_ALL=ru_RU.KOI8-R


  Это НЕПРАВИЛЬНО. Нельзя устанавливать переменную окружения LC_ALL.
  Подробнее смотри у меня на http://www.sensi.org/ alec/locale   в главе
  "Как включить..."

  3.4.  * RedHat и русификация

  Cоздаем файлик /etc/sysconfig/i18n. Внутри должно быть что-то вроде:

  SYSFONT=Cyr_a8x16
  SYSFONTACM=koi2alt
  LANG=ru_RU.KOI8-R


  Раскладка клавиатуры выбирается утилитой kbdconfig и прописывается в
  файл /etc/sysconfig/keyboard, в виде:

  KEYTABLE=ru1


  Эти файлы используются в скриптах /etc/rc.d/rc.sysinit, /sbin/setsys╜
  font.  Ознакомьтесь с ними, если возникли вопросы или проблемы.

  3.5.  Как сделать так, чтобы в иксах при русификации через xkb,
  русские буквы вводились везде ?

  Прочтите  <http://www.tsu.ru/~pascal/other/xkb/>, особенно последний
  раздел.


  3.6.  * Как подмонтировать vfat разделы, чтобы русские имена файлов
  были видны ?

  Примерно так (cтрочка из /etc/fstab/):

  /dev/hda5 /mnt/d vfat noexec,rw,umask=002, codepage=866, iocharset=koi8-r,
  gid=100 0 0


  (в одну строчку)

  Смысл этих опций можно узнать в man mount. Потом mount /mnt/d.  Еще в
  ядро (>=2.0.36) должны быть включены соответствующие кодовые страницы
  (возможно, в виде модулей /lib/modules/`uname -r`/fs/nls_*) - CP866 и
  KOI8-R, так что возможно (хотя скорее всего нет) ядро придется
  перекомпилировать.

  3.7.  Как прикрутить к Golded/LNX почтовую базу в 866 кодировке ?

  Во-первых, нужно взять GoldEd+ c  <ftp://dale.eed.miee.ru>.
  Библиотека uulib, необходимая для его сборки, лежит на
  <http://www.uni-frankfurt.de/~fp/uudeview/>

  Кроме того, нужно взять таблицы перекодировки (например из пакета
  русификации, проходившего по файлэхе aftnged и лежащего на
  <http://collage.etel.ru/fileechos/> или
  <ftp://ftp.nske.ru/Freq/FILEECHO/> ) и прописать их в golded.cfg,
  примерно так:

  AREAPATH /mnt/c/fido/fecho/
  AREAFILE FastEcho

  XLATPATH /home/ak/.golded/chars
  XLATLOCALSET KOI8
  XLATIMPORT IBMPC
  XLATEXPORT IBMPC
  XLATCHARSET KOI8 IBMPC koi_866.chs
  XLATCHARSET IBMPC KOI8 866_koi.chs
  IGNORECHARSET



  3.8.  Можно ли в mc увидеть pусские буквы?

  Можно. F9 - options - display bits - Full 8 bit Кроме этого, могут
  оказаться необходимыми еще некоторые действия.

  Просмотр файлов в mc запускается через nroff (по крайней мере, в mc,
  идущем с Slackware'96). В неправленном файле /usr/lib/mc/mc.ext мы
  имеем запуск nroff'а с ключами -Tascii В Slackware'96 при таком
  положении вещей русских букв вы не увидите, а вот если исправить на
  -Tlatin1 тогда увидите.

  Та же проблема и с man'ом. Если у меня есть файл с русскими буквами,
  то вызов, скажем man ar приводит к ерунде на экране несмотря на
  LESSCHARSET=koi8-r. Приходится править /usr/lib/man.config

  3.9.  * Я настроил locale и русский в консоли, но bash все равно не
  вводит русские буквы, пищит.

  Хотя для большинства программ вполне достаточно установки
  LANG=ru_RU.KOI8-R чтобы начать распознавать русские буквы, многие
  программы, основанные на библиотеке readline (например bash), все
  равно считают символы с кодами больше 128 особыми META-символами
  (пищит при вводе).

  Чтобы отучить библиотеку readline от этого, необходимо определить
  переменную

  INPUTRC=/etc/inputrc


  Кроме того, создать файл /etc/inputrc

  set meta-flag on
  set convert-meta off
  set output-meta on


  После этого библиотека readline (и bash) начнет воспринимать русские
  буквы.

  Еще один вариант : Не задавать INPUTRC=, а прописать те же значения в
  файл  /.inputrc (в home-каталоге). Но тогда придется заводить такой
  файл в домашнем каталоге каждого пользователя.

  См. man readline.

  3.10.  * less

  Yuriy.Kaminskiy@p21.f517.n5020.z2.fidonet.org пишет:

  при настроенной локали указывать LESSCHARSET _HЕ HАДО_. Более того, в
   /.lesskey надо добавить

  #env
  LESSCHARSET=


  чтобы он игнорировал установку LESSCHARSET= глупыми программами (к
  примеру, man :) [после этого надо запустить lesskey для получения
  бинарного файла  /.less] В противном случае он не будет вызывать set╜
  locale(LC_CTYPE,"") и, как следствие, не будет icase search для
  русских букв.

  3.11.  * telnet

  Если возникают проблемы с вводом русских символов, надо написать
  файлик  /.telnetrc со следующей строкой:

  DEFAULT set outbinary



  3.12.  * Что делать, если "слетела" консоль ?

  Скорее всего на консоль был скопирован какой-то двичный файл, где
  случайно встретилась переключающая ESC-последовательность.  Тогда :

  Сброс терминала :

  $ echo -ne "\033c"


  набрать вслепую, или с работающей консоли :

  # echo -ne "\033c" >/dev/ttyX


  Переключение на downloaded font


  $ echo -ne "\033(K"


  (возможно, еще прйдется перегрузить фонты, но это смотря как консоль
  сорвало...)

  Если вывалилась какая-то программа, которая использует curses, то
  проще

  $ stty sane


  В RedHat все это делают reset; setsysfont <ctrl-j>

  reset - из ncurses

  См. 'man console_codes' и 'man stty'

  3.13.  Как русифицировать TeX под koi-8?

  Есть пакет для KOI8 pуссификации TeTeXа, лежит на
  <ftp://shade.msu.ru>.  Надо бpать 2 файла - один с собственно
  pуссификацией (скpипты+конфиги), дpугой со шpифтами. Занимает все
  удовольствие меньше 1мег.

  В Debian 2.1 и, если не ошибаюсь, в Mandrake 5.3 TeX русифицирован
  out-of-box.  Признаком русифицированности TeX'а out-of-box является
  наличие директории $TEXMF/tex/latex/t2, $TEXMF обычно равно
  /usr/lib/texmf.  Русификация, как нетрудно догадаться, T2.

  Alex Nikiforov:

  Если уж о последних версиях, то в RH-6.0 с tetex 0.9 у меня получилось
  так:

  $ texconfig


  выбрать

  hyphenation -> latex


  раскомментировать russian

  Добавить в LaTeX файлах

  \usepackage[T2A]{fontenc}
  \usepackage[koi8-r]{inputenc}
  \usepackage[english,russian]{babel}


  и в файле можно переключаться между русским и английским командами
  \Russian и \Engish

  Что бы добавить форматы из cyrplain набора в texconfig выбрать FORMATS
  и добавить

  cyrtxinf      tex             language.dat    cyrtxinf.ini


  для русского texinfo.  Аналогично для cyrblue и cyramstx.

  Что бы добавить формат cyrtex ( русский TeX ) проще в каталоге web2c
  выполнить:

  initex '\input cyrtex.ini \dump'


  и бросить символическую ссылку с именем cyrtex на tex ( например в
  /usr/bin )

  Что бы переключится на русский в этих plain форматах использовать
  команду

  \language N


  где N - номер, под которым числится русский язык в получившейся
  раскладке.

  В принципе можно заменить в конфигурации ruhypen на ruenhyp и оставить
  только совместные русско-английские правила переноса, но детально это
  не проверял и подробно описать не могу.

  Все вопросы по TeX рекомендуется задавать в ru.tex

  3.14.  * Где взять русские Type1 ps фонты в KOI8-R?


  <ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts/>

  Прочитайте README.

  3.15.  Как pусифициpовать dosemu ?

  Клавиатуpа - любым досовым pусификатоpом. Фонты : в консольном dosemu
  тем же pусификатоpом, в X-овом - поставить фонт с 866-ой кодиpовкой.
  Взять можно фонт от pедактоpа ted, напpимеp по адpесу
  <ftp://lpcs.math.msu.ru/pub/ran/Xfonts/tedx11.cp866.bdf.tgz>

  Там же вы найдете и фонт с "правильным" для dosemu именем - vga.pcf

  3.16.  А как русифицировать StarOffice (там же - а почему он у меня не
  ставится и т.п.

  Почитайте замечательную страничку Леона Кантера по адресу -
  <http://isd.anet.donetsk.ua/~leon/StarOffice/>

  3.17.  Как русифицировать Netscape/научить его понимать win-кодировку
  ?


  ╥  Возьмите Netscape 4.06 и выше, собранный под glibc2, его
     русифицировать не надо. Брать его желательно у производителя вашего
     дистрибутива.  (при настроенной локали, xkb и шрифтах,
     установленных согласно ответу на вопрос 0.13)

     Еще, netscape имеет мерзкую привычку запонинать шрифты в
      /.netscape/preferences.js (и, кажется, еще где-то). И если он
     вовремя не увидел какой-то шрифт, то он может его вообще никогда не
     увидеть. Иногда помогает только полное изничтожение директории
      /.netscape

  ╥  для тех, кто не испытывает любви к падучему тормозному монстру:
     netscape 3.xx особой русификации тоже не требуют - достаточно
     просто шрифтов в кодировке koi8-r, но с win-кодировкой будут,
     естественно, проблемы. Единственная пакость - управляющие элементы
     форм (кнопки/селекторы и т.д.) выводятся в latin1. Лечится

     echo 'Netscape*documentFonts.charset*koi8-r:  iso-8859-1' | xrdb -merge

  после чего koi8-шрифты появляются в списке шрифтов для "Western".
  (отныне ваша кодировка по умолчанию именно она, а про koi забудьте.)

  Netscape 3.x берется с  <ftp://archive.netscape.com>

  Login:archive
  Password:oldies


  dir там не работает, качайте /archive/index.html

  ╥  Принципиально не русифицируемые вещи:

     у обоих нетскейпов (3 и 4) будут трудности со страницами в
     кодировке, не соответствующей 'meta content-type' в заголовке
     (традиционная проблема серверов с выбором кодировок и авторов,
     пользующихся тулзами от MS). Hе лечится ничем, кроме хака
     бинарников.

     Что еще хуже - если в документе явно указан шрифт, и такой шрифт,
     не дай бог, у вас имеется (естественно, не русифицированный), то им
     все и будет нарисовано. Решений два: или не иметь в системе
     не-русифицированных шрифтов вовсе, или отключить в нетскейпе
     автоматическую загрузку изображений. (при этом "заодно", как ни
     странно, отключится и показ шрифтов, указанных в документе. Hажав
     Alt-I, вы получите возможность посмотреть картники. Hадеюсь, текст
     к этому моменту вы уже запомнили ;)

  3.18.  Как мне заставить приложение для иксов использовать шрифты с
  koi8-r, а не iso8859-1 ?  Почему в Gnome кое-где русский текст
  выводится латиницей ?

  Нужно взять русские шрифты с
  <ftp://ftp.relcom.ru/pub/x11/cyrillic/fonts/>, там есть шрифты
  adobe-*-koi8-1 (c fonts.alias, делающим из них -iso8859-1), но реально
  содержащие кириллицу в кои8-р.

  При этом шрифты с теми же именами и настоящими символами iso8859-1
  становятся недоступны. Стандартных шрифтов из XFree86-cyrillic-fonts
  недостаточно.

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

  3.19.  * Как увидеть русские буквы в именах файлов на диске Samba?

  Добавить в /etc/smb.conf

  [global]
  character set = koi8-r
  client code page = 866
  preserve case = yes
  short preserve case = yes

Alexander

Homepage: http://www.musicland.spb.ru/ak/ - temporarily unavailable