Практические рекомендации по настройке составных раскладок клавиатуры на примере настройки англо-русско-украинской раскладки. Настройка StarOffice 5.2 для работы с украинским языком.
Одной из причин моей заинтересованности в этом вопросе стала необходимость настроить под Linux аналог MS Office с возможностью читать и писать документы в формате MS Word. На Украине это стало особенно актуальным после 1 сентября 2001 года, когда закон о защите авторских прав и интеллектуальной собственности вошел в силу в редакции, предусматривавшей конкретные виды достаточно сурового наказания за конкретные правонарушения.
На самом деле существует возможность по крайней мере ознакомиться со StarOffice 5.2 и OpenOffice.org, "не сходя с Windows" - они существуют и для этой платформы. При выборе офисного пакета рекомендуется рассмотреть оба этих варианта - OpenOffice [1] достаточно существенно доработан по сравнению со своим "предком" StarOffice (который также продолжает параллельно развиваться).
Всё, что описано далее, было проверено на двух российских дистрибутивах -- Linux Mandrake RE Spring 2001 (далее Spring 2001) [2] и ASPLinux 7.1 Standart Edition (далее ASPLinux) [3].
Почему только на них? Ничего другого под рукой не было -- да и ситуация с локализацией применительно к славянским языкам в них обстоит лучше, чем во многих других.
К сожалению, статья описывает практические рекомендации только по настройке англо-русско-украинской раскладки, но некоторые особенности будут общими и для других комбинаций.
В нашем случае упрощающим моментом является то, что рассматриваемые раскладки (точнее, генерируемые ими KeySym'ы) вполне умещаются в рамки принимаемых при локали uk_UA.KOI8-U; в других случаях может понадобиться применение уникодных локалей *.UTF-8 [4].
Если вы хотите более подробно узнать о методах настройки, то смотрите ссылки по этой теме [5-7]. В общем, не стоит обращать внимание на старый (англоязычный) вариант Cyrilllic-HOWTO; в подавляющем большинстве случаев имеет смысл использование современного XKB вместо устаревшего Xmodmap.
И ещё. Огромное спасибо Михаилу Шигорину за поддержку и объяснения по настройке клавиатуры. Без его помощи я бы не справился.
/etc/sysconfig/i18n
/etc/sysconfig/keyboard
Первый отвечает за вывод, второй за ввод данных. Вот примеры этих файлов (как в свежеустановленной "по-украински" системе):
/etc/sysconfig/i18n:
SYSFONT=UniCyr_8x16
SYSFONTACM=koi8-u
LANG=uk_UA
LANGUAGE=uk_UA
/etc/sysconfig/keyboard:
KBCHARSET=koi8-u
BACKSPACE=Delete
KEYTABLE=ua
Таблица 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=
Для настройки нам понадобятся файл раскладки клавиатуры под X. Либо <rua.tar.gz> - эту раскладку предоставил Михаил Шигорин [8]. Либо, если вы привыкли к ruwin-раскладке, <ru_UA.tar.gz> - эта раскладка поставляется с ASPLinux. Если вы воспользуетесь ею, то проверьте в ней строку, содержащую слово include. Эта раскладка содержит ошибку. Строку
include "ur(basic)"
надо заменить на
include "ru_UA(basic)"
Далее нас будет интересовать один из следующих конфигурационных файлов:
/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
Сделали? Запускайте X.
Готово. Можно проверить. Запустите kwrite. Это простенький текстовый редактор. Попробуйте переключать клавиатуру при помощи Ctrl_R+Shift_R.
Для визуального контроля за выбранной раскладкой используйте программу 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-файлы.
О более тонкой настройке xxkb читайте в документации о нём в каталоге /usr/share/doc/xxkb-<версия>.
LANG=ru_RU.CP1251
_XKB_CHARSET=MICROSOFT-CP1251
Теперь StarOffice, в отличие от других приложений, будет работать в кодировке CP1251. На его внешнем виде это никак не скажется, за исключением русских (украинских) букв в заголовке окна (если вы назовёте документ, используя кириллицу). Заголовок окна будет выводится в той кодировке, которая установлена в /etc/sysconfig/i18n - скорее всего, KOI8-U.
Александр Куприн <ru_classic@mail.ru>
Мелкие правки -- Михаил Шигорин <mike@altlinux.ru>
OpenOffice.org -- открытый офисный пакет
ALT Linux
ASP Linux
[4] http://linuxdoc.org/HOWTO/Unicode-HOWTO
Unicode HOWTO
[5] http://step.kosnet.ru/Lib/Linux/MHOWTO/Intkeyb.html
Настройка интернациональных клавиатур в Linux (Unix)
[6] http://gazette.linux.ru.net/lg64/articles/rus-sipos.html
Juraj Sipos, Настройка международной клавиатуры с помощью Xmodmap
[7] http://www.tsu.ru/~pascal/other/xkb/
Страница Ивана Паскаля (автора xxkb) по XKB
[8] http://www.linux.kiev.ua/materials/archives/xkb-rua-0.2.tar.gz
en/ru/ua раскладка М.Ш.
[9] http://www.linux.kiev.ua/materials/archives/ru_UA.tar.gz
en/ru/ua раскладка из ASP Linux 7.1
[10] http://blackcatlinux.com/StarOffice/
Руководство по русификации StarOffice
[11] http://www.microsoft.com/typography/fontpack/
Microsoft Typography