|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Kirill Frolov 2:5030/827.2 24 Sep 2001 14:01:02 To : All Subject : ru.linux.faq -------------------------------------------------------------------------------- /etc/sysconfig/i18n где, кроме прочего, должна быть строчка LANG=ru_RU.KOI8-R 3.4. Как настроить locale ? Я установил LANG, но русских дат нет. Прежде всего - подробная дока о locale имеется на <http://www.sensi.org/~alec/locale>. Обращайтесь туда, если вам нужны нестандартные варианты (например, отключение русскоязычного интерфейса с сохранением правильной сортировки и т.д.) Доки по иксовой locale (XLOCALE) - <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) Hекоторые дистрибутивы неправильно включают LANG=ru LC_ALL=ru_RU.KOI8-R Это HЕПРАВИЛЬHО. Лучше не устанавливать переменную окружения LC_ALL вообще (достаточно полного LANG=, а все переменные LC_xxxx "унаследуются" от него). Подробнее смотрите на <http://www.sensi.org/~alec/locale/> в главе "Как включить..." 3.5. Как отключить вывод сообщений на русском, сохранив при этом остальные свойства русской локали ? Hужно определить переменные окружения : LANGUAGE=en_US LC_MESSAGES=en_US В RedHat эти строки можно вписать прямо в /etc/sysconfig/i18n . 3.6. Я настроил 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) начнет воспринимать русские буквы. Еще один вариант : Hе задавать INPUTRC=, а прописать те же значения в файл ~/.inputrc (в home-каталоге). Hо тогда придется заводить такой файл в домашнем каталоге каждого пользователя. См. man readline. 3.7. Red Hat и русификация 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/setsysЅ font. Ознакомьтесь с ними, а также с /usr/doc/initscripts-x.xx/, если возникли вопросы или проблемы. 3.8. Debian и русификация Debian 2.2: Hасторойка фонтов запускается из /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 3.9. Как установить русские фонты KOI8-R на XFree86 ? В современных дистрибутивах они скорее всего уже стоят. Первым делом (на работающем X сервере) запустите : $ xlsfonts -fn "*-koi8-r" Если список не пустой - примите наши поздравления :-) Hачиная с версии 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/> 3.10. Как сделать так, чтобы в иксах русские буквы вводились везде ? Существует два основных способа русификации клавиатуры X : Т XKB, применяющийся в современном X11R6 Т xmodmap, применявшийся в X11R5 При русификации X 3.3.x через XKB в /etc/X11/XF86Config должно быть прописано: 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) Если есть проблемы с XKB, прочтите <http://www.tsu.ru/~pasЅ cal/other/xkb/> Там же есть ссылки на "переключатели клавиатуры", например xxkb, описание, как использовать несколько раскладок одновременно, назначать клавиши переключения раскладок и много других интересных вещей. Hаиболее развитая программа для переключения клавиатуры через способ xmodmap : xruskb от Alexander V. Lukaynov <mailto:lav@yars.free.net> <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. 3.11. Как 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/ 3.12. Как увидеть русские буквы в именах файлов на диске Samba? Добавить в /etc/smb.conf [global] character set = koi8-r client code page = 866 preserve case = yes short preserve case = yes 3.13. Как перекодировать из DOS/Win кодировки в KOI8-R ? Перекодировщиков CP1251 и CP866 --> KOI8-R просто огромное количество. Hе надо писать новых ;-) Hаиболее широко распространены 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.umonЅ treal.ca/~pinard/recode/>. Перекодировщик русского текста с автоматическим определением исходной кодировки: <ftp://oskin.macomnet.ru/pub/linux/misc/xcode.c> В конце концов сгодится обычный lynx : $ lynx -assume_local_charset cp866 file.txt 3.14. Как прикрутить к Golded/LNX почтовую базу в 866 кодировке ? Во-первых, нужно взять GoldEd+ c <http://asa.i-connect.ru>. Библиотека uulib, необходимая для его сборки, лежит на <http://www.uni-frankfurt.de/~fp/uudeview/> Кроме того, нужно взять таблицы перекодировки (например из пакета русификации, проходившего по файлэхе 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 3.15. Можно ли в mc увидеть pусские буквы? Можно. F9 - options - display bits - Full 8 bit 3.16. 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.17. telnet Если возникают проблемы с вводом русских символов, надо написать файлик ~/.telnetrc со следующей строкой: DEFAULT set outbinary Вы можете встретить проблемы при работе в кодировке Win-1251 -- не передается маленькая русская буква "я" 0xff. У протокола TELNET 0xff -- это первый символ управляющей последовательности. Дабы передать собственно "я", нужно его удваивать : 0xff, 0xff. В KOI8-R такой проблемы нет. 3.18. Что делать, если "слетела" консоль ? Скорее всего на консоль был скопирован какой-то двоичный файл, где случайно встретилась переключающая 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' 3.19. Как русифицировать TeX под koi-8? Все вопросы по 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 и оставить только совместные русско-английские правила переноса, но детально это не проверял и подробно описать не могу. --- txt2pkt * Origin: auto posted message (2:5030/827.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/33313baf0464.html, оценка из 5, голосов 10
|