The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Документация для Linux" / Оглавление документа
Next Previous Contents

3. Русификация

Значительная часть этого раздела написана Alexander Voropay.

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

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

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

Существует 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 (англоязычном).

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

В системе 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):

$ 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.

3.3 Мне говорят "Настрой локаль!" Что это значит ?

Речь идет о настройке системной 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

3.4 Как настроить locale ? Я установил LANG, но русских дат нет.

Прежде всего - подробная дока о 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/ в главе "Как включить..."

3.5 Как отключить вывод сообщений на русском, сохранив при этом остальные свойства русской локали ?

Нужно определить переменные окружения :

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) начнет воспринимать русские буквы.

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

См. man readline.

3.7 * Как выставить нужную локаль для jvm?

В принципе, она должна "унаследоваться" от системной локали, LANG=ru_RU.KOI8-R (или ru_RU.UTF-8) Если не выходит, попробуйте :

$ java -Duser.language=ru -Duser.region=RU -Dfile.encoding=koi8-r

3.8 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/setsysfont. Ознакомьтесь с ними, а также с /usr/doc/initscripts-x.xx/, если возникли вопросы или проблемы.

3.9 Debian и русификация

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

3.10 Как установить русские фонты KOI8-R на XFree86 ?

В современных дистрибутивах они скорее всего уже стоят. Первым делом (на работающем 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/

3.11 * Как сделать так, чтобы в X Window русские буквы вводились везде ?

Существует два основных способа русификации клавиатуры X :

При русификации 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)
В 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.

3.12 Как 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.13 Как увидеть русские буквы в именах файлов на диске Samba?

Для сервера добавить в /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

3.14 Как перекодировать из DOS/Win кодировки в KOI8-R ?

Перекодировщиков 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

3.15 Как с помощью Vim редактировать файлы в различных кодировках?

:e ++enc=cp1251 winfile.txt
Загрузить файл, считая, что он в указанной кодировке, и перекодировать его в кодировку, в которой работает редактор.

3.16 Как создавать и редактировать файлы в UTF-8 в редакторе VIM ?

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.

3.17 Можно ли научить Vim понимать хоткеи, когда включена русская раскладка клавиатуры?

В  /.vimrc:

set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo и т.д.

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

Во-первых, нужно взять 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

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

Можно. F9 - options - display bits - Full 8 bit

В последних версиях 'mc' появилась поддержка различных Charset-ов . Эта опция должна быть включена при компиляции 'mc' .

$ ./configure  --enable-charset  ....

3.20 less

[email protected] пишет:

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

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

3.21 telnet

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

DEFAULT set outbinary
Вы можете встретить проблемы при работе в кодировке Win-1251 -- не передается маленькая русская буква "я" 0xff. У протокола TELNET 0xff -- это первый символ управляющей последовательности. Дабы передать собственно "я", нужно его удваивать : 0xff, 0xff. В KOI8-R такой проблемы нет.

3.22 Что делать, если "слетела" консоль ?

Скорее всего на консоль был скопирован какой-то двоичный файл, где случайно встретилась переключающая 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.23 Как русифицировать TeX под koi8-r?

Все вопросы по 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 и оставить только совместные русско-английские правила переноса, но детально это не проверял и подробно описать не могу.

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

Современные 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.

3.25 Где найти хорошие русские шрифты для X Window System?

Кроме распространенных шрифтов 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

3.26 Emacs/XEmacs

Берем 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/.

3.27 * Как русифицировать MySQL 3.x?

Для правильной работы 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

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

Клавиату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/.

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

Установите последний OpenOffice. Для rpm-based дистрибутивов его надо брать с www.altlinux.ru, для Debian - с www.debian-linux.de или с того же altlinux: ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/OpenOffice/debian-woody-openoffice/

3.30 Как русифицировать AbiWord?

Обратитесь по адресу http://www.hippo.ru/~hvv/abiword/

3.31 Как сделать русскоязычный интерфейс в Mozilla?

http://www.mozilla.ru/download/

Вот более общая и более удобная в плане установки из самой мозиллы ссылка: http://www.mozilla.org/projects/l10n/mlp_status.html

3.32 Как русифицировать Netscape {4|3}/научить его понимать win-кодировку ?

3.33 Как мне заставить приложение для иксов использовать шрифты с koi8-r, а не iso8859-1 ?

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 ;) для вынесения имени фонта в "ресурс".

3.34 Почему в Gnome или программах, использующих GTK+, кое-где русский текст выводится латиницей? Где прописываются используемые ими шрифты?

Если 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/

3.35 Qt и русскоязычные программы

http://kde.ru/docs.php?action=index

3.36 Как русифицировать KDE?

http://www.kde.org/international/russia/localization.html

3.37 Что сделать, чтобы было можно работать в юникодной локали (ru_RU.UTF-8) в консоли и в иксах?

К сожалению, "железо" консоли 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

3.38 Кто занимается переводом документации и пользовательских интерфейсов на русский язык?

Russian Linux Documentation Project: http://rldp.linux.ru.net. Ведет Alexsandr Mikhailov, mailto:[email protected] Информация: 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/


Next Previous Contents


Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру