Значительная часть этого раздела написана Alexander
Voropay.
Проблему русификации можно разделить на несколько частей :
- русификацию консоли
- установку системной (libc) locale
- русификацию системы X Window - шрифты и клавиатура
- включение поддержки русского в конкретных программах
- печать
Все эти части настраиваются по-отдельности.
Существует Cyrillc-HOWTO http://www.ibiblio.org/pub/Linux/docs/HOWTO/unmaintained/Cyrillic-HOWTO,
однако он довольно долго не обновлялся и больше не поддерживается, поэтому
отнеситесь к нему критически (Last version : v4.0, 23 January 1998),
перевод: http://www.inp.nsk.su/~baldin/Cyrillic-HOWTO-russian-old/Cyrillic-HOWTO.html.
Евгений Балдин создал новую версию Cyrillic-HOWTO на русском (версия
не имеет английского перевода и не включена в официальную базу HOWTO).
Доступна здесь : http://www.inp.nsk.su/~baldin
Лучше всего сперва искать решение проблемы здесь и лишь потом - в Cyrillic-HOWTO
(англоязычном).
В системе Linux существуют два конкурирующих пакета управления шрифтами
и клавиатурой : kbd и consoletools.
ftp://ftp.win.tue.nl/pub/linux/utils/kbd/
или ftp://ftp.kernel.org/pub/linux/utils/kbd/
http://lct.sourceforge.net
В разных дистрибутивах применяются или один, или другой. Например,
в Red Hat 4.х и 5.x для русификации консоли применялся пакет kbd. Однако
в Red Hat 6.x и выше применяется уже другой пакет - consoletools.
Существует Keyboard-and-Console-HOWTO, автор этого HOWTO является также
автором пакета kbd, поэтому естественно, всех склоняет к использованию
kbd. ;-) http://linuxdoc.org/HOWTO/Keyboard-and-Console-HOWTO.html
На "низком уровне" для русификации консоли достаточно выполнить следующие
команды (пакет kbd):
pre>
$ setfont Cyr_a8x16
$ mapscrn koi2alt
$ echo -ne "\033(K"
$ loadkeys ru1
Если используется пакет console-tools:
pre>
$ consolechars -f UniCyr_8x16 -m koi8-r
$ echo -ne "\033(K"
$ loadkeys ru1
См. man на соответствующие команды и `man console_codes`. Описание, что
есть что, у console-tools в /usr/doc/console-tools*, довольно внятное.
NB! К сожалению, в пакете console-tools некоторые русские фонты не
содержат UNICODE screen-font map (SFM) и в таком виде попадают во многие
дистрибутивы. Исправленные фонты живут в пакете console-tools-cyrillic:
ftp://ftp.ice.ru/pub/fonts/linux/
Как правило, настройка шрифтов и клавиатуры скрыта среди стартовых
скриптов, а ключевые управляющие параметры вынесены в отдельные файлики.
Иногда существуют даже специальные программы настройки. "Идеологически
правильно" не нарушать системную архитектуру дистрибутива, а всего лишь
поменять настройки в этих файликах.
К сожалению, в Linux только один загружаемый фонт на все виртуальные
консоли.
Если вы хотите видеть русские буквы и рамки (например в mc) на консоли
одновременно, используйте только TERM=linux .
У вас будут проблемы при работе консоли в CP-866 из-за того, что некоторые
русские буквы в этой кодировке совпадают со "старшими" управляющими
кодами C1, например буква "Ы" 0x9B совпадает со старшим ESC (CSI). Работайте
в KOI8-R.
Речь идет о настройке системной locale. Проверить установки можно,
просто сказав locale:
pre>
$ locale
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_ALL=
$
Если результат именно такой, значит настроена русская locale (ru_RU) в
кодировке KOI8-R. Проверить можно командами `cal` или `date` - даты должны
быть на русском.
На самом деле, для настройки locale достаточно всего лишь установить
переменную окружения LANG= из стартовых скриптов (например /etc/profile)
или руками.
pre>
$ export LANG=ru_RU.KOI8-R
В Red Hat-based дистрибутивах это делается путем редактирования файла
/etc/sysconfig/i18n где, кроме прочего, должна быть строчка
pre>
LANG=ru_RU.KOI8-R
Прежде всего - подробная дока о locale имеется на http://www.sensi.org/~alec/locale.
Обращайтесь туда, если вам нужны нестандартные варианты (например, отключение
русскоязычного интерфейса с сохранением правильной сортировки и т.д.)
Система X-Window и библиотеки Xlib и Xt имеют собственные механизмы
локализации (XLC_LOCALE) которые являются "надстройкой" над системной
locale. Подробности: {X11Root}/doc/i18n (в RedHat: /usr/share/Xfree86-doc/i18n).
Документация в .PS http://www.tsu.ru/~pascal/x_locale/.
Хотя в принципе допустимо задавать короткое именование, вроде LANG=ru_RU
или даже LANG=ru, лучше использовать _полное_ имя : LANG=ru_RU.KOI8-R
. Совершенно недопустимо задавать LANG=ru_SU, такой страны больше нет
:-)
К сожалению, не все дистрибутивы "от рождения" позволяют использовать
ru_RU.KOI8-R . Воспользуйтесь `locale -a` для получения списка допустимых
значений. Если в списке нет значения ru_RU.KOI8-R, его нужно добавить,
а то LANG= будет указывать "в пустоту" :
pre>
$ localedef -c -i ru_RU -f KOI8-R ru_RU.KOI8-R
Computing table size for character classes might take a while... done
Computing table size for collation information might take a while... done
$
$ cd /usr/lib/locale
$ mv ru_RU.koi8r ru_RU.KOI8-R
(в старых версиях - /usr/share/locale)
NB! Утилита localedef фомирует "сжатое" (mangled) имя кодировки, так
что имя превращается в "ru_RU.koi8r". Это приводит в замешательство
некоторые программы. Но к счастью, все же можно установить полное имя
LANG="ru_RU.KOI8-R" и благодаря mangling-у все будет работать и программы
будут счастливы. Еще один вариант -- переименовать каталог.
Некоторые дистрибутивы неправильно включают
pre>
LANG=ru
LC_ALL=ru_RU.KOI8-R
Это НЕПРАВИЛЬНО. Лучше не устанавливать переменную окружения LC_ALL вообще
(достаточно полного LANG=, а все переменные LC_xxxx "унаследуются" от
него). Подробнее смотрите на http://www.sensi.org/~alec/locale/
в главе "Как включить..."
Нужно определить переменные окружения :
pre>
LANGUAGE=en_US
LC_MESSAGES=en_US
В RedHat эти строки можно вписать прямо в /etc/sysconfig/i18n .
Хотя для большинства программ вполне достаточно установки LANG=ru_RU.KOI8-R
чтобы начать распознавать русские буквы, многие программы, основанные
на библиотеке readline (например bash), все равно считают символы с
кодами больше 128 особыми META-символами (пищит при вводе).
Чтобы отучить библиотеку readline от этого, необходимо определить переменную
pre>
INPUTRC=/etc/inputrc
Кроме того, создать файл /etc/inputrc
pre>
set meta-flag on
set convert-meta off
set output-meta on
После этого библиотека readline (и bash) начнет воспринимать русские буквы.
Еще один вариант : Не задавать INPUTRC=, а прописать те же значения
в файл ~/.inputrc (в home-каталоге). Но тогда придется заводить такой
файл в домашнем каталоге каждого пользователя.
См. man readline.
Cоздаем файлик /etc/sysconfig/i18n. Внутри должно быть что-то вроде:
pre>
SYSFONT=UniCyr_8x16
SYSFONTACM=koi8-r
LANG=ru_RU.KOI8-R
Раскладка клавиатуры выбирается утилитой kbdconfig и прописывается в файл
/etc/sysconfig/keyboard, в виде:
pre>
KEYTABLE=ru1
Эти файлы используются в скриптах /etc/rc.d/rc.sysinit, /sbin/setsysfont.
Ознакомьтесь с ними, а также с /usr/doc/initscripts-x.xx/, если возникли
вопросы или проблемы.
Debian 2.2: Насторойка фонтов запускается из /etc/init.d/console-screen.sh
/etc/console-tools/config:
pre>
#
SCREEN_FONT=Cyr_a8x16
APP_CHARSET_MAP=koi8-r
#
APP_CHARSET_MAP_vc2=koi8-r
APP_CHARSET_MAP_vc3=koi8-r
APP_CHARSET_MAP_vc4=koi8-r
APP_CHARSET_MAP_vc5=koi8-r
APP_CHARSET_MAP_vc6=koi8-r
Фонты нужно заменить, взяв правильные из console-tools-cyrillic.
Клавиатура настраивается из /etc/init.d/keymaps-lct.sh и загружает
раскладку /etc/console-tools/default.kmap.gz Именно под этим именем
нужно разместить требуемую раскладку или создать symlink. Для интерактивного
выбора клавиатуры есть полезная утилита: kbdconfig.
/etc/environment:
pre>
LANG=ru_RU.KOI8-R
В современных дистрибутивах они скорее всего уже стоят. Первым делом
(на работающем X сервере) запустите :
pre>
$ xlsfonts -fn "*-koi8-r"
Если список не пустой - примите наши поздравления :-)
Начиная с версии XFree86 3.3.2 русские фонты cronyx-* входят прямо
в дистрибутив XFree. Если фонтов нет -- их нужно установить. Для Red
Hat просто поставьте пакет XFree86-cyrillic-fonts-XXXX.rpm . Фонты установятся
в /usr/X11R6/lib/X11/fonts/cyrillic .
Далее нужно подключить шрифты к X Window. Убедитесь, что в файле /etc/X11/XF86Config
прописан путь :
pre>
Section "Files"
...
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
...
EndSection
Путь с cyrillic лучше всего поставить первым. Перезапустите X сервер и
проверьте командой : xlsfonts -fn "*-koi8-r" .
Еще см. вопрос "Где найти хорошие русские шрифты для иксов?" Про подключение
шрифтов TrueType также имеется отдельный ответ, в разделе про X Window.
Хорошим решением также будет использование фонт-сервера. Во-первых,
он может быть один на всю организацию, а во-вторых в современные фонт-серверах
можно использовать шрифты TrueType. Для Red Hat фонт-сервер xfsft входит
в пакет XFree86-xfs.
http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/
Существует два основных способа русификации клавиатуры X :
- XKB, применяющийся в современном X11R6
- xmodmap, применявшийся в X11R5
При русификации X 3.3.x через XKB в /etc/X11/XF86Config должно быть прописано:
pre>
Section "Keyboard"
...
XkbRules "xfree86"
XkbModel "pc101"
XkbLayout "ru"
XkbOptions "grp:shift_toggle"
EndSection
Для X 4.0.x
pre>
Section "InputDevice"
...
Driver "keyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc101"
Option "XkbLayout" "ru"
Option "XkbOptions" "grp:shift_toggle"
EndSection
В зависимости от клавиатуры опция Model может быть "pc101", "pc104" или
"pc105", а комбинации переключения:
pre>
grp:toggle правый Alt (с "фиксацией")
grp:caps_toggle Caps_Lock
grp:shift_toggle два Shift
grp:ctrl_shift_toggle Control+Shift
grp:ctrl_alt_toggle Control+Alt
Для 4.0.x добавились новые :
pre>
grp:alt_shift_toggle Alt+Shift
grp:menu_toggle Menu (модель должна быть pc104, pc105)
Если есть проблемы с XKB, прочтите
http://www.tsu.ru/~pascal/other/xkb/
Там же есть ссылки на "переключатели клавиатуры", например xxkb, описание,
как использовать несколько раскладок одновременно, назначать клавиши переключения
раскладок и много других интересных вещей.
Наиболее развитая программа для переключения клавиатуры через способ
xmodmap : xruskb от Alexander V.
Lukaynov
ftp://ftp.yars.free.net/pub/software/unix/X11/
(primary site)
ftp://ftp.relcom.ru/pub/x11/cyrillic/
Она может понадобиться для русификации X11R5 терминалов, например железных,
или эмуляторов под MS Windows. Для ее применения с XFree86 лучше отключить
модуль XKB в /etc/X11/XF86Config директивой XkbDisable. Правильная раскладка
для xruskb: jcukeng-cyr.xmm
Проверить русификацию X можно программой xev: клавиатура должна генерировать
правильные XkeySym для кириллицы (0x6xx), а xev должна показывать Cyrillic_IE
и пр. при нажатии русских букв, а не OCyrcumflex e.t.c.
Для vfat примерно так (cтрочка из /etc/fstab/):
pre>
/dev/hda5 /mnt/d vfat noexec,rw,umask=002,codepage=866,iocharset=koi8-r,gid=100 0 0
Потом mount /mnt/d. Еще в ядро (>=2.0.36) должны быть включены соответствующие
кодовые страницы (возможно, в виде модулей /lib/modules/`uname -r`/fs/nls_*)
- CP866 и KOI8-R, так что возможно (хотя скорее всего нет) ядро придется
перекомпилировать.
Для CD, содержащего файлы с русскими именами:
pre>
$ mount -t iso9660 -o iocharset=koi8-r /dev/cdrom /mnt/cdrom
Параметр codepage для isofs не нужен, в файловой системе JOLIET имена
файлов хранятся в UNICODE.
Смысл этих опций можно узнать в `man mount` или в документации исходников
ядра /usr/src/linux/Documentation/filesystems/ или /usr/doc/kernel/filesystems/
Для сервера добавить в /etc/smb.conf
pre>
[global]
character set = koi8-r
client code page = 866
preserve case = yes
short preserve case = yes
default case = lower
mangle case = no
Чтобы правильно монтировались smb разделы надо при компиляции ядра указать
(ядро должно быть >=2.2.20 )
pre>
CONFIG_NLS_DEFAULT="koi8-r"
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp866"
CONFIG_SMB_NLS=y
CONFIG_NLS=y
Перекодировщиков CP1251 и CP866 --> KOI8-R просто огромное количество.
Не надо писать новых ;-) Наиболее широко распространены iconv (входит
в поставку glibc) и GNU recode ( ftp://prep.ai.mit.edu/pub/gnu/recode/)
pre>
$ iconv -f866 -tKOI8-R -o infile
$ recode CP1251..KOI8-R winfile.txt
Еще один URL для recode - http://www.iro.umontreal.ca/~pinard/recode/.
Перекодировщик русского текста с автоматическим определением исходной
кодировки: ftp://oskin.macomnet.ru/pub/linux/misc/xcode.c
В конце концов сгодится обычный lynx :
pre>
$ lynx -assume_local_charset cp866 file.txt
pre>
:e ++enc=cp1251 winfile.txt
Загрузить файл, считая, что он в указанной кодировке, и перекодировать
его в кодировку, в которой работает редактор.
VIM должен быть версии 6.x и собран с поддержкой Multibyte:
pre>
configure --with-features=huge --enable-multibyte
Предположим, консоль русифицирована в KOI8-R, тогда в VIM надо дать команды
:
pre>
:set encoding=utf-8
:set fileencoding=utf-8
:set termencoding=koi8-r
В RedHat VIM разнесен на несколько пакетов.
pre>
vim-common-6.1-2
vim-minimal-6.1-2
vim-enhanced-6.1-2
Редактор vi, входящий в vim-minimal собран без Multibyte, vim из vim-enhanced
-- с поддержкой. Надо пользоваться редактором vim.
В /.vimrc:
set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo и т.д.
Во-первых, нужно взять GoldEd+ c http://golded-plus.sourceforge.net.
Кроме того, нужно взять таблицы перекодировки (например из пакета русификации,
проходившего по файлэхе aftnged и лежащего на http://collage.etel.ru/fileechos/ftn/
и прописать их в golded.cfg, примерно так:
pre>
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
Можно. F9 - options - display bits - Full 8 bit
В последних версиях `mc` появилась поддержка различных Charset-ов .
Эта опция должна быть включена при компиляции `mc` .
pre>
$ ./configure --enable-charset ....
Yuriy.Kaminskiy@p21.f517.n5020.z2.fidonet.org пишет:
при настроенной локали указывать LESSCHARSET _HЕ HАДО_. Более того,
в ~/.lesskey надо добавить
pre>
#env
LESSCHARSET=
чтобы он игнорировал установку LESSCHARSET= глупыми программами (к примеру,
man :) [после этого надо запустить lesskey для получения бинарного файла
~/.less] В противном случае он не будет вызывать setlocale(LC_CTYPE,"")
и, как следствие, не будет icase search для русских букв.
Если возникают проблемы с вводом русских символов, надо написать файлик
~/.telnetrc со следующей строкой:
pre>
DEFAULT set outbinary
Вы можете встретить проблемы при работе в кодировке Win-1251 -- не передается
маленькая русская буква "я" 0xff. У протокола TELNET 0xff -- это первый
символ управляющей последовательности. Дабы передать собственно "я", нужно
его удваивать : 0xff, 0xff. В KOI8-R такой проблемы нет.
Скорее всего на консоль был скопирован какой-то двоичный файл, где
случайно встретилась переключающая ESC-последовательность. Тогда :
Сброс терминала :
pre>
$ echo -ne "\033c"
набрать вслепую, или с работающей консоли :
pre>
# echo -ne "\033c" >/dev/ttyX
Переключение на downloaded font
pre>
$ echo -ne "\033(K"
(возможно, еще придется перегрузить фонты, но это смотря как консоль сорвало...)
Если вывалилась какая-то программа, которая использует curses, то проще
pre>
$ stty sane
В Red Hat все это делают reset; setsysfont
reset - из ncurses
См. `man console_codes` и `man stty`
Все вопросы по TeX рекомендуется задавать в ru.tex. FAQ из этой конференции
и прочая информация по TeX в России находятся по адресу http://myke.webjump.com/tex/.
TeX и LaTeX во всех современных дистрибутивах говорят по-русски с раздачи.
В этом случае имеется документ cyrguide.*, который и содержит развернутый
ответ на вопрос о русификации TeX.
Переносы не всегда работают "из коробки", иногда надо поправить language.dat,
и пересобрать форматы. Вот что пишет Alex Nikiforov:
Если уж о последних версиях, то в RH-6.0 с tetex 0.9 у меня получилось
так:
pre>
$ texconfig
выбрать
pre>
hyphenation -> latex
раскомментировать russian
Добавить в LaTeX файлах
pre>
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
и в файле можно переключаться между русским и английским командами \Russian
и \Engish
Что бы добавить форматы из cyrplain набора в texconfig выбрать FORMATS
и добавить
pre>
cyrtxinf tex language.dat cyrtxinf.ini
для русского texinfo. Аналогично для cyrblue и cyramstx.
Что бы добавить формат cyrtex ( русский TeX ) проще в каталоге web2c
выполнить:
pre>
initex `\input cyrtex.ini \dump`
и бросить символическую ссылку с именем cyrtex на tex ( например в /usr/bin
)
Что бы переключится на русский в этих plain форматах использовать команду
pre>
\language N
где N - номер, под которым числится русский язык в получившейся раскладке.
В принципе можно заменить в конфигурации ruhypen на ruenhyp и оставить
только совместные русско-английские правила переноса, но детально это
не проверял и подробно описать не могу.
Современные Type1 фонты в общем не обязаны иметь информацию о "кодировке",
а должны просто содержать русские символы с именами глифов типа "afii10049"
(Association for Font Information Interchange). О "векторе кодировки"
должно заботиться приложение, порождающее ps. См. документы Adobe:
Free фонты Type1 c русскими символами:
Также см. Cyrillic-HOWTO п."Кириллические шрифты"
http://www.inp.nsk.su/~baldin/Cyrillic-HOWTO-russian/Cyrillic-HOWTO-russian.html
К сожалению, некоторые приложения видят только первые 256 символов
Type1 шрифта (Latin1 или ISO_8859-1). Именно для таких приложений нужны
"отхаканные" шрифты, где вместо "circumflex" и "cedilla" расположены
символы KOI8-R. Взять можно например с: ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts/
Прочитайте README.
Кроме распространенных шрифтов Cronyx существуют гораздо более эргономичные
шрифты из проекта Cyr-RFX Дмитрия Болховитянова: http://www.inp.nsk.su/~bolkhov/files/fonts/cyr-rfx/
Фонт -cronyx-fixed-* с полным соответствием koi8-r , в том числе с
рамками: ftp://ftp.ice.ru/pub/fonts/X11
Русские фонты из KSI-Linux: ftp://ftp.ksi-linux.com/pub/patches/
Русские фонты из Black Cat Linux: ftp://ftp.blackcatlinux.com/pub/blackcat-linux/6.2/SRPMS/SRPMS/urw-fonts-2.0-4bc.src.rpm
Берем iso8859-5 шрифты с http://www.inp.nsk.su/~bolkhov/files/fonts/cyr_rfx/.
Подключаем их к иксам, и выбираем в меню Mule нужную кодировку.
Очень благородные изовые шрифты можно взять на любом зеркале GNU в
каталоге intlfonts. конкретно, например, ftp://ftp.chg.ru/pub/gnu/intlfonts/intlfonts-1.2-split/European.tar.gz
(131Кб). В Debian они уже есть.
Подробная инструкция по русификации XEmacs имеется по адресу http://www.linux.zp.ua/xemacs/.
Клавиатуpа - любым досовым pусификатоpом. Кроме того, есть патчик в
http://www.ice.ru/~vitus/misc/,
который позволяет обойтись без русификатора клавиатуры. В X-ах - рекомендуется,
так как позволяет избежать двух клавиш переключения - одной в DOS другой
- на остальном десктопе. При работе с удаленным dosemu (по telnet/ssh/rsh)
- необходим.
Фонты - в консольном dosemu тем же pусификатоpом, в X-овом - поставить
фонт с 866-ой кодиpовкой. Взять можно по адpесам http://www.ice.ru/~vitus/works/x11.html,
ftp://ftp.dosemu.org/dosemu/Development/vga_cyr8x16.pcf.gz
или http://www.inp.nsk.su/~bolkhov/files/fonts/vga4dosemu/.
Почитайте замечательную страничку Леона Кантера по адресу - http://www.blackcatlinux.com/StarOffice/
Составаитель FAQ был бы рад узнать, в какой мере сведения на этой странице
применимы к Open Office и Star Office 6.
Обратитесь по адресу http://www.hippo.ru/~hvv/abiword/
http://www.mozilla.ru/download/
Вот более общая и более удобная в плане установки из самой мозиллы
ссылка: http://www.mozilla.org/projects/l10n/mlp_status.html
- Возьмите Netscape 4.06 и выше, собранный под glibc2, его русифицировать
не надо. Брать его желательно у производителя вашего дистрибутива.
(при настроенной локали, xkb и шрифтах, установленных согласно ответу
на вопрос 0.13) Еще, netscape имеет мерзкую привычку запоминать шрифты
в ~/.netscape/preferences.js (и, кажется, еще где-то). И если он вовремя
не увидел какой-то шрифт, то он может его вообще никогда не увидеть.
Иногда помогает только полное изничтожение директории ~/.netscape
- для тех, кто не испытывает любви к падучему тормозному монстру:
netscape 3.xx особой русификации тоже не требуют - достаточно просто
шрифтов в кодировке koi8-r, но с win-кодировкой будут, естественно,
проблемы. Единственная пакость - управляющие элементы форм (кнопки/селекторы
и т.д.) выводятся в cp1251. Лечится
pre>
echo `Netscape*documentFonts.charset*koi8-r: iso-8859-1` | xrdb -merge
после чего koi8-шрифты появляются в списке шрифтов для "Western".
(отныне ваша кодировка по умолчанию именно она, а про koi забудьте.)
Netscape 3.x берется с ftp://archive.netscape.com
pre>
Login:archive
Password:oldies
dir там не работает, качайте /archive/index.html
- Принципиально не русифицируемые вещи: у обоих нетскейпов (3 и 4)
будут трудности со страницами в кодировке, не соответствующей `meta
content-type` в заголовке (традиционная проблема серверов с выбором
кодировок и авторов, пользующихся тулзами от MS). Hе лечится ничем,
кроме хака бинарников. Что еще хуже - если в документе явно указан
шрифт, и такой шрифт, не дай бог, у вас имеется (естественно, не русифицированный),
то им все и будет нарисовано. Решений два: или не иметь в системе
не-русифицированных шрифтов вовсе, или отключить в нетскейпе автоматическую
загрузку изображений. (при этом "заодно", как ни странно, отключится
и показ шрифтов, указанных в документе. Hажав Alt-I, вы получите возможность
посмотреть картинки. Hадеюсь, текст к этому моменту вы уже запомнили
;)
a) Постарайтесь выяснить, откуда приложение берет имя фонта. Чаще всего
приложение хранит имена используемых фонтов в "базе ресурсов": в персональной
/.Xdefaults или системной /usr/X11R6/lib/X11/app-defaults/ базе.
Имена используемых фонтов хранится в форме XLFD, т.е. там можно применять
"*". Например:
pre>
Netscape*fontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-koi8-r
Посмотреть "ресурсы" приложения можно утилитой appres :
pre>
$ appres XTerm
В man практически на любую X программу имеется секция RESOURCES.
Если программа написана с применением какого-либо "Toolkit"-а : GTK,
Qt, Motif, e.t.c., чаще всего достаточно русифицировать Toolkit. Русификация
GNOME/Gtk и Qt таким способом описана чуть ниже.
b) С помощью ключа -fn font или -font font. Этот ключ обрабатывается
в XLIB и он скорее всего будет работать в любой X программе.
c) Метод грубого хака. Нужно взять русские шрифты с ftp://ftp.relcom.ru/pub/x11/cyrillic/fonts/,
там есть шрифты adobe-*-koi8-1 (c fonts.alias, делающим из них -iso8859-1),
но реально содержащие кириллицу в koi8-r в старшей половине.
При этом шрифты с теми же именами и "настоящими" символами iso8859-1
становятся недоступны. Стандартных шрифтов из XFree86-cyrillic-fonts
недостаточно. Кроме того, пути к русским шрифтам в конфиге иксов или
фонт-сервера должны быть впереди всех прочих.
Однако лучше не использовать этот метод, а написать автору программы
(или прислать ему patch ;) для вынесения имени фонта в "ресурс".
Если gtk не находит нужных шрифтов (в частности, нужного размера),
он режет 8-й бит. Шрифты задаются в /etc/gtk/gtkrc.$LANG. Поэтому нужно
создать файл gtkrc.ru или поправить существующий. Внутри должно быть
примерно следующее (названия шрифтов, размеры и прочие атрибуты можно
исправить по вкусу, но эти шрифты должны содержать кириллицу в koi8-r):
pre>
style "gtk-default-ru" {
fontset = "-cronyx-helvetica-medium-r-normal--*-*-*-*-*-*-koi8-r,\
-cronyx-courier-medium-r-normal--*-*-*-*-*-*-koi8-r,\
-cronyx-fixed-medium-r-normal--*-*-*-*-*-*-koi8-r,\
-cronyx-times-medium-r-normal--*-*-*-*-*-*-koi8-r"
}
class "GtkWidget" style "gtk-default-ru"
И скопировать этот файл в `gtkrc.ru_RU.KOI8-R` или сделать symlink:
pre>
$ cd /etc/gtk/
$ ln -s gtkrc.ru gtkrc.ru_RU.KOI8-R
Подробности см. http://www.gtk.org/tutorial/gtk_tut-21.html,
а также http://www.linux.org.ru/gnome/
http://kde.ru/docs.php?action=index
http://www.kde.org/international/russia/localization.html
К сожалению, "железо" консоли IBM-PC (VGA/SVGA) может отображать только
256 символов одновременно. Еще 32 символа отъедают рамки. Если пожертвовать
атрибутами, количество символов можно довести до 512. Для UNICODE явно
маловато. См. Console programming HOWTO http://devel.linvision.com/doc/fbh/current/index.html
Если устраивают эти ограничения, то переход (пакет console-tools) в/из
однобайтового режима консоли в режим UTF-8 осуществляется командами
unicode_start(1) и unicode_stop(1) . Узнать текущий режим можно командой
vt-is-UTF8(1) . Документация - в console-tools/lct.txt
Эмулятор терминала XTerm в X Window не имеет аппаратных ограничений.
Запуск
pre>
: xterm -u8
с фонтами *-iso10646-1 .
Наиболее современные программы не используют "терминальный ввод-вывод"
вообще, а написаны с использованием ToolKit-ов, поддерживающих UNICODE
(Qt, GTK, Java .e.t.c.) или напрямую пользуются возможностями GUI X
Window.
Для правильной работы приложений в UTF-8 необходимо, чтобы системная
локаль также была UTF-8, например LANG="ru_RU.UTF-8" .
Дополнительная информация:
UTF-8 and UNICODE FAQ: http://www.cl.cam.ac.uk/~mgk25/unicode.html
The Unicode HOWTO: http://www.tldp.org/HOWTO/Unicode-HOWTO.html
How do Unix terminals work?: http://czyborra.com/unicode/terminals.html
Unicode Howto for KDE developers: http://developer.kde.org/documentation/library/kdeqt/kde3arch/KDE-Unicode-Howto.html
Есть микро-HOWTO вот здесь: http://lists.debian.org/debian-russian/2001/debian-russian-200111/msg00203.html
Russian Linux Documentation Project: http://rldp.linux.ru.net.
Ведет Alexsandr Mikhailov, mailto:alexmikh@mail.ru
Информация: http://www.tldp.org/vlist.html#te
Русская команда перевода GNU: http://www.gnu.org.ru,
http://www-ru.gnu.org.ru/,
http://www2.iro.umontreal.ca/~pinard/po/registry.cgi?team=ru
Проект Алексея Махоткина "Manpages-Ru" посвящен переводу пакета manpages
на русский язык. http://www.alexm.here.ru/manpages-ru
KDE: http://www.kde.org/international/russia/
GNOME: http://www.linux.org.ru/gnome/