| |
Значительная часть этого раздела написана Alexander Voropay.
Проблему русификации можно разделить на несколько частей :
Существует 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/
В разных дистрибутивах применяются или один, или другой. Например, в 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):
$ setfont Cyr_a8x16 $ mapscrn koi2alt $ echo -ne "\033(K" $ loadkeys ru1Если используется пакет console-tools:
$ 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:
$ 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) или руками.
$ export LANG=ru_RU.KOI8-RВ Red Hat-based дистрибутивах это делается путем редактирования файла /etc/sysconfig/i18n где, кроме прочего, должна быть строчка
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= будет указывать "в пустоту" :
$ 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-у все будет работать и программы будут счастливы. Еще один вариант -- переименовать каталог.
Некоторые дистрибутивы неправильно включают
LANG=ru LC_ALL=ru_RU.KOI8-RЭто НЕПРАВИЛЬНО. Лучше не устанавливать переменную окружения LC_ALL вообще (достаточно полного LANG=, а все переменные LC_xxxx "унаследуются" от него). Подробнее смотрите на http://www.sensi.org/~alec/locale/ в главе "Как включить..."
Нужно определить переменные окружения :
LANGUAGE=en_US LC_MESSAGES=en_USВ RedHat эти строки можно вписать прямо в /etc/sysconfig/i18n .
Хотя для большинства программ вполне достаточно установки 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.
В принципе, она должна "унаследоваться" от системной локали, LANG=ru_RU.KOI8-R (или ru_RU.UTF-8) Если не выходит, попробуйте :
$ java -Duser.language=ru -Duser.region=RU -Dfile.encoding=koi8-r
Cоздаем файлик /etc/sysconfig/i18n. Внутри должно быть что-то вроде:
SYSFONT=UniCyr_8x16 SYSFONTACM=koi8-r LANG=ru_RU.KOI8-RРаскладка клавиатуры выбирается утилитой kbdconfig и прописывается в файл /etc/sysconfig/keyboard, в виде:
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:
# 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:
LANG=ru_RU.KOI8-R
В современных дистрибутивах они скорее всего уже стоят. Первым делом (на работающем X сервере) запустите :
$ 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 прописан путь :
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 :
Section "Keyboard" ... XkbRules "xfree86" XkbModel "pc101" XkbLayout "ru" XkbOptions "grp:shift_toggle" EndSectionДля X 4.0.x
Section "InputDevice" ... Driver "keyboard" Option "XkbRules" "xfree86" Option "XkbModel" "pc101" Option "XkbLayout" "ru" Option "XkbOptions" "grp:shift_toggle" EndSectionВ зависимости от клавиатуры опция Model может быть "pc101", "pc104" или "pc105", а комбинации переключения:
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 добавились новые :
grp:alt_shift_toggle Alt+Shift grp:menu_toggle Menu (модель должна быть pc104, pc105)В XFree 4.3 (и 4.2.99 также) изменились правила настройки Xkb. Каждая layout теперь содержит только один вариант клавиатуры. Поэтому выбор xkbLayout "ru" не позволяет вводить английские буквы. Зато повилась возможность комбинировать больше двух раскладок, просто через запятую. Правильная настройка xkb может выглядеть следующим образом:
Section "InputDevice" Identifier "Keyboard0" Driver "Keyboard" Option "AutoRepeat" "500 30" Option "XkbModel" "microsoft" Option "XkbLayout" "us,ru(winkeys)" Option "XkbOptions" "grp:ctrl_shift_toggle" EndSectionИ еще. поэкспериментировать с настройками xkb "на ходу" можно с помощью команды
$ setxkbmap -layout 'us,ru(winkeys)' -model microsoft -option grp:ctrl_shift_toggleВ этом случае изменения коснутся только порожденных окон.
Если есть проблемы с 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/):
/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, содержащего файлы с русскими именами:
$ 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
[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 )
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/)
$ iconv -f866 -tKOI8-R -o<outfile> 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 :
$ lynx -assume_local_charset cp866 file.txt
:e ++enc=cp1251 winfile.txtЗагрузить файл, считая, что он в указанной кодировке, и перекодировать его в кодировку, в которой работает редактор.
VIM должен быть версии 6.x и собран с поддержкой Multibyte:
configure --with-features=huge --enable-multibyteПредположим, консоль русифицирована в KOI8-R, тогда в VIM надо дать команды :
:set encoding=utf-8 :set fileencoding=utf-8 :set termencoding=koi8-rВ RedHat VIM разнесен на несколько пакетов.
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, примерно так:
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' .
$ ./configure --enable-charset ....
Yuriy.Kaminskiy@p21.f517.n5020.z2.fidonet.org пишет:
при настроенной локали указывать LESSCHARSET _HЕ HАДО_. Более того, в ~/.lesskey надо добавить
#env LESSCHARSET=чтобы он игнорировал установку LESSCHARSET= глупыми программами (к примеру, man :) [после этого надо запустить lesskey для получения бинарного файла ~/.less] В противном случае он не будет вызывать setlocale(LC_CTYPE,"") и, как следствие, не будет icase search для русских букв.
Если возникают проблемы с вводом русских символов, надо написать файлик ~/.telnetrc со следующей строкой:
DEFAULT set outbinaryВы можете встретить проблемы при работе в кодировке Win-1251 -- не передается маленькая русская буква "я" 0xff. У протокола TELNET 0xff -- это первый символ управляющей последовательности. Дабы передать собственно "я", нужно его удваивать : 0xff, 0xff. В KOI8-R такой проблемы нет.
Скорее всего на консоль был скопирован какой-то двоичный файл, где случайно встретилась переключающая ESC-последовательность. Тогда :
Сброс терминала :
$ echo -ne "\033c"набрать вслепую, или с работающей консоли :
# echo -ne "\033c" >/dev/ttyXПереключение на downloaded font
$ echo -ne "\033(K"(возможно, еще придется перегрузить фонты, но это смотря как консоль сорвало...)
Если вывалилась какая-то программа, которая использует curses, то проще
$ stty saneВ Red Hat все это делают reset; setsysfont <ctrl-j>
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 у меня получилось так:
$ 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 и оставить только совместные русско-английские правила переноса, но детально это не проверял и подробно описать не могу.
Современные Type1 фонты в общем не обязаны иметь информацию о "кодировке", а должны просто содержать русские символы с именами глифов типа "afii10049" (Association for Font Information Interchange). О "векторе кодировки" должно заботиться приложение, порождающее ps. См. документы Adobe:
К сожалению, некоторые приложения видят только первые 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/.
Для правильной работы ORDER BY и GROUP BY сервер MySQL должен знать текущий набор символов. К сожалению, версия 3 MySQL может иметь только один charset на все базы одновременно. Задается в /etc/my.cnf :
[mysqld] default-character-set=koi8_ruПроверить можно так :
mysql> show variables like 'character_sets' ; mysql> show variables like 'character_set' ;В этом случае все символьные поля в таблицах будут храниться в KOI8-R. Для того, чтобы работали клиенты ODBC из под Windows необходимо, чтобы первым SQL оператором в Windows приложении была команда :
SET CHARACTER SET cp1251_koi8 ;Тогда включится перекодировка "на лету". На сервере будет KOI8-R, а на клиенте Windows-1251 и все сортировки будут работать. Эту же команду можно прописать в MyODBC 3.x "SQL command on connect".
Другой вариант -- хранить базы в Windows-1251 и сообщить об этом серверу, прописав в /etc/my.cnf :
[mysqld] default-character-set=cp1251
Клавиату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/.
Установите последний OpenOffice. Для rpm-based дистрибутивов его надо брать с www.altlinux.ru, для Debian - с www.debian-linux.de или с того же altlinux: ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/OpenOffice/debian-woody-openoffice/
Обратитесь по адресу http://www.hippo.ru/~hvv/abiword/
http://www.mozilla.ru/download/
Вот более общая и более удобная в плане установки из самой мозиллы ссылка: http://www.mozilla.org/projects/l10n/mlp_status.html
echo 'Netscape*documentFonts.charset*koi8-r: iso-8859-1' | xrdb -mergeпосле чего koi8-шрифты появляются в списке шрифтов для "Western". (отныне ваша кодировка по умолчанию именно она, а про koi забудьте.) Netscape 3.x берется с ftp://archive.netscape.com
Login:archive Password:oldiesdir там не работает, качайте /archive/index.html
a) Постарайтесь выяснить, откуда приложение берет имя фонта. Чаще всего приложение хранит имена используемых фонтов в "базе ресурсов": в персональной /.Xdefaults или системной /usr/X11R6/lib/X11/app-defaults/ базе. Имена используемых фонтов хранится в форме XLFD, т.е. там можно применять "*". Например:
Netscape*fontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-koi8-rПосмотреть "ресурсы" приложения можно утилитой appres :
$ 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):
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:
$ 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 не имеет аппаратных ограничений. Запуск
: 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/
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |