|
- Александр Куприн. Мелкие правки -- Михаил Шигорин. -
Практические рекомендации по настройке составных раскладок
клавиатуры на примере настройки англо-русско-украинской раскладки.
Настройка StarOffice 5.2 для работы с украинским языком.
[Version 1.0, patchlevel 2. Last modified at 22:42:17 15.07.2002]
Оговорюсь сразу - эта статья (я бы даже назвал её - памятка) не
предназначена для глубокого изучения и понимания процессов
настройки раскладок клавиатуры и локализации. Считайте её своим
знакомым, у которого это работает. И вы пришли к нему подсмотреть
всё это :-)
Одной из причин моей заинтересованности в этом вопросе стала
необходимость настроить под Linux аналог MS Office с возможностью
читать и писать документы в формате MS Word. На Украине это стало
особенно актуальным после 1 сентября 2001 года, когда закон о
защите авторских прав и интеллектуальной собственности вошел в силу
в редакции, предусматривавшей конкретные виды достаточно сурового
наказания за конкретные правонарушения.
На самом деле существует возможность по крайней мере
ознакомиться со StarOffice 5.2 и OpenOffice.org, "не сходя с
Windows" - они существуют и для этой платформы. При выборе
офисного пакета рекомендуется рассмотреть оба этих варианта -
OpenOffice [1] достаточно существенно доработан по
сравнению со своим "предком" StarOffice (который также
продолжает параллельно развиваться).
Всё, что описано далее, было проверено на двух российских
дистрибутивах -- Linux Mandrake RE Spring 2001 (далее Spring 2001)
[2] и ASP Linux 7.1 Standart Edition (далее
ASP Linux) [3].
Почему только на них? Ничего другого под рукой не было -- да и
ситуация с локализацией применительно к славянским языкам в них
обстоит лучше, чем во многих других.
К сожалению, статья описывает практические рекомендации только
по настройке англо-русско-украинской раскладки, но некоторые
особенности будут общими и для других комбинаций.
В нашем случае упрощающим моментом является то, что
рассматриваемые раскладки (точнее, генерируемые ими KeySym'ы)
вполне умещаются в рамки принимаемых при локали uk_UA.KOI8-U; в
других случаях может понадобиться применение уникодных локалей
*.UTF-8 [4].
Если вы хотите более подробно узнать о методах настройки, то
смотрите ссылки по этой теме [5]. В общем, не стоит обращать внимание
на старый (англоязычный) вариант Cyrilllic-HOWTO; в подавляющем
большинстве случаев имеет смысл использование современного XKB
вместо устаревшего Xmodmap.
И ещё. Огромное спасибо Михаилу Шигорину за поддержку и
объяснения по настройке клавиатуры. Без его помощи я бы не
справился.
Проблем с настройкой en/ru/ua раскладки не возникает - она идёт
"из коробки" в обоих дистрибутивах. Для правильного ввода
и отображения символов в консоли вам нужно лишь настроить
(проверить) два конфигурационных файла:
/etc/sysconfig/i18n
/etc/sysconfig/keyboard
Первый отвечает за вывод, второй за ввод данных. Вот примеры
этих файлов (как в свежеустановленной "по-украински"
системе):
/etc/sysconfig/i18n:
SYSFONT=UniCyr_8x16
SYSFONTACM=koi8-u
LANG=uk_UA
LANGUAGE=uk_UA
<!>Обратите внимание на следующее! $SYSFONT указывает на
файл со шрифтами -- "$SYSFONT.psf.gz". Он располагается в
каталоге /etc/sysconfig/console . Если вы хотите использовать
другой шрифт, то скопируйте его сюда из каталога
/usr/lib/kbd/consolefonts.
<!>То же самое относится и к $SYSFONTACM. Эта переменная
указывает на файл "$SYSFONTACM.acm.gz". Он тоже должен
находится в каталоге /etc/sysconfig/console . Все acm-файлы
расположены в каталоге /usr/lib/kbd/consoletrans
/etc/sysconfig/keyboard:
KBCHARSET=koi8-u
BACKSPACE=Delete
KEYTABLE=ua
<!>Переменная $KEYTABLE указывает на файл с раскладкой
клавиатуры и, в отличие от переменных $SYSFONT и $SYSFONTACM,
подразумевает, что файл $KEYTABLE*map.gz должен распологаться в
каталоге "/usr/lib/kbd/keymaps/i386/*/$KEYTABLE*map.gz".
Таблица ua.kmap.gz позволяет переключать раскладки при помощи
правого Ctrl и Alt: Alt_R -> KOI8-U. Alt_R снова -> English.
Ctrl_R -> KOI8-R. Ctrl_R снова -> English. Ctrl_R ->
KOI8-R. Alt_R -> KOI8-U. Alt_R снова -> KOI8-R. Ctrl_R снова
-> English.
Если вы привыкли к тому, чтобы у вас сообщения, пункты меню и
т.д. выводились на другом языке, то добавьте в файл
/etc/sysconfig/i18n следующую строку:
LC_MESSAGES=ru_RU.KOI8-R # сообщения на русском
или
LC_MESSAGES=C # сообщения на английском
Минимальную информацию о переменных окружения LC_XXX, отвечающих
за настройку локализации, можно получить, набрав команду
man -a locale
Вариант конфигурационного файла /etc/sysconfig/i18n, который
предложил Михаил со словами "мне нужен англоязычный интерфейс
для русскоязычного пользователя, регулярно работающего с
украинскими документами", выглядит так:
SYSFONT=UniCyr_8x16
SYSFONTACM=koi8-u
LANGUAGE=ru_RU.KOI8-R
LANG=ru_RU.KOI8-R
RPM_INSTALL_LANG=ru_RU.KOI8-R:uk_UA:uk LC_CTYPE=uk_UA.KOI8-U
LC_NUMERIC=C
LC_TIME=C
LC_COLLATE=uk_UA.KOI8-U
LC_MONETARY=C
LC_MESSAGES=C
LC_ALL=
Теперь перейдём к настройке "иксов". Сразу отмечу, что
воспользоваться программой kxkb для настройки раскладок клавиатуры
в KDE не получится. Русский она поддерживает, а вот со всем
остальным у неё проблемы. Это и к лучшему, т.к. в случае удачи
позволило бы использовать этот метод только для KDE. Рассмотрим
desktop-независимый 8-) вариант настройки клавиатуры.
Для настройки нам понадобятся файл раскладки клавиатуры под X.
Либо <rua.tar.gz> - эту раскладку предоставил Михаил Шигорин
[6]. Либо, если вы привыкли к
ruwin-раскладке, <ru_UA.tar.gz>[7] - эта раскладка поставляется с
ASP Linux. Если вы воспользуетесь ею, то проверьте в ней строку,
содержащую слово include. Эта раскладка содержит ошибку. Строку
include "ur(basic)"
надо заменить на
include "ru_UA(basic)"
<!>Тут важно, чтобы имя файла раскладки совпадало с тем, что
прописано в строке include "...(basic)".
<?>Интересно, в ASP Linux 7.2 эта ошибка исправлена или нет?
<!>Для тех, кто не в курсе -- файлы раскладки клавиатуры под
Х'ы располагаются в подкаталоге /etc/X11/xkb/symbols
Далее нас будет интересовать один из следующих конфигурационных
файлов:
/etc/X11/XF86Config
/etc/X11/XF86Config-4
Первый файл - это конфигурация XFree86-3.x, второй --
XFree86-4.x (определяется при помощи X -version).
В них нас интересует раздел "Keyboard" (Section
"Keyboard") и переменная XkbLayout.
Пропишите следующее:
XkbLayout "rua"
или
XkbLayout "ru_UA"
Кроме этого проверьте каталог /etc/X11/xkb . Если в нём
находится файл с именем X0-config.keyboard (думаю, X0 может менятся
на X1,X2 и т.д.), то в нём пропишите (замените) строку:
Layout = "rua"
или
Layout = "ru_UA"
Кто именно сгенерировал этот файл - не знаю. Он появился недавно
на моей машине и я наткнулся на него, когда писал эту статью -
почему-то не хотела корректно работать раскладка, хотя в
/etc/X11/XF86Config и /etc/X11/XF86Config-4 я исправил значение
XkbLayout. Кроме этого, если вы экспериментировали с настройкой
клавиатуры в KDE и пробовали настроить kxkb, то для того, чтобы
раскладка заработала, вы должны удалить файл
~/.kde/share/config/kxkbrc
<!>Это важно, т.к. даже если kxkb не запущен, то KDE всё
равно перехватывает управление клавиатуры и не позволяет корректно
работать вашей раскладке.
Сделали? Запускайте X.
Запустите kcontrol (KDE Control Center). Выберите закладку
"Индекс". Выберите пункт
"Personalization->Country & Language". Обязательно
укажите тип кодировки KOI8-U. Параметры "Страна" и
"Язык" по вашему усмотрению. Перезапустите KDE.
Готово. Можно проверить. Запустите kwrite. Это простенький
текстовый редактор. Попробуйте переключать клавиатуру при помощи
Ctrl_R+Shift_R.
Кстати, многие рекомендуют переходить с комбинаций на Caps Lock в
качестве удобного и быстрого переключателя раскладок. <!-- по
крайней мере Лёня Кантер и я :) -- М.Ш. -->
Для визуального контроля за выбранной раскладкой используйте
программу xxkb - она вешает на каждое окно флажок и при
переключении раскладки меняет его; пакет xxkb идёт в поставке в
обоих дистрибутивах. Установив его, положите файл
/usr/share/doc/xxkb-<версия>/XXkb.ad в ваш домашний каталог
под именем ".xxkbrc", исправив
XXkb.mainwindow.enable: yes
на
XXkb.mainwindow.enable: no
Замените su48.xpm и su15.xpm на ua48.xpm и ua15.xpm - это
позволит выводить украинские флажки при выборе украинского языка.
Если окажется, что при выборе русского языка у программа показывает
украинский флажок, то поменяйте местами номера групп или ссылки на
xpm-файлы.
<!>Если хочется, чтобы эти настройки были общесистемными,
отредактированный файл нужно поместить в
/usr/X11R6/lib/X11/<locale>/app-defaults/XXkb .
О более тонкой настройке xxkb читайте в документации о нём в
каталоге /usr/share/doc/xxkb-<версия>.
StarOffice 5.2 "понимает" русский язык и корректно с ним
работает. К сожалению, с украинским дела обстоят несколько иначе. В
кодировке KOI8-U он позволяет набирать символы, присущие только
украинской раскладке. Как это побороть? Обратимся к
"Руководству по русификации StarOffice 5.1a" [8], автор - Леонид Кантер. Из всего того,
что он предлагает мы воспользуемся только одним - в стартовом
скрипте StarOffice (/opt/office52/program/soffice) допишем две
строчки в начале (после комментариев):
LANG=ru_RU.CP1251
_XKB_CHARSET=MICROSOFT-CP1251
<!>Для большей функциональности можно скачать и установить
ttf-шрифты со странички Microsoft Typography [9].
Теперь StarOffice, в отличие от других приложений, будет
работать в кодировке CP1251. На его внешнем виде это никак не
скажется, за исключением русских (украинских) букв в заголовке окна
(если вы назовёте документ, используя кириллицу). Заголовок окна
будет выводится в той кодировке, которая установлена в
/etc/sysconfig/i18n - скорее всего, KOI8-U.
<!>Хотя никто вам не мешает выбрать кодировку для всей
системы CP1251 и работать в ней. Это удобно в том случае, если вы
подключены к сети, в которой много компьютеров с ОС Windows.
Т.к. я пользуюсь как рабочей средой только KDE, то подсказать, как
заставить работать с украинским другие оболочки, не в состоянии.
Теоретически, если программа корректно работает с локалью, то она
должна без проблем вводить и отображать все символы. Если же за
какой-либо из современных программ наблюдается обратное и вы
уверены, что ничего сами не сломали - пользоваться программой
следует с осторожностью, потому что такие моменты обычно
"говорят" об общем качестве кода и "широте"
использования.
Александр Куприн <ru_classic@mail.ru>
Мелкие правки -- Михаил Шигорин <mike@altlinux.ru>
[1] Сайт проекта OpenOffice.org
[2] Сайт компании ALT Linux
[3] Сайт компании ASP Linux
[4] Unicode-HOWTO
[5] Mini
HOWTO по настройке интернациональных клавиатур в Linux
(Unix);
Статья
Juraj Sipos "Настройка международной клавиатуры с помощью
Xmodmap";
Страница Ивана
Паскаля (автора xxkb) по XKB.
[6] en/ru/ua раскладка
от Михаила Шигорина
[7] en/ru/ua раскладка
из ASP Linux 7.1
[8] Руководство по
русификации StarOffice
[9] Microsoft
Typography
|