[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