Проект перевода KDE на русский был начат Денисом Першиным в 1998 г. Сейчас этим
занимается небольшая команда переводчиков, а координирует проект Григорий Мохин. Если вам
поскорее хочется воспользоваться плодами ее трудов -- установите у себя
KDE >=2.1. Учтите, что 2.0 и 2.0.1 не идут ни в какое сравнение с 2.1
ни в том, что касается самой среды, ни в качестве перевода на русский.
Этот документ адресован тем, кто хотел бы работать в KDE
по-русски. Его цель - постараться ответить на вопросы, обычно встающие при
русификации KDE, а также дать некоторые дополнительные сведения и ссылки,
из которых станет ясно, почему это стоит делать именно так.
- Вопрос 1: Что
такое русификация KDE?
- Вопрос 2: Как
настроить отображение графического интерфейса по-русски?
- Вопрос 3:
Зачем нужна правильная локаль?
- Вопрос 4:
Можно ли оставить графический интерфейс на английском?
- Вопрос 5: Как
настроить шрифты?
- Вопрос 6:
Можно ли запускать отдельные приложения на другом языке?
- Вопрос 7: Как
настроить ввод по-русски с русификацией X-сервера?
- Вопрос 8: Как
еще можно настроить ввод по-русски?
- Вопрос 9: Что
делать, если ввод по-русски все-таки не работает?
В России количество людей, знающих английский, невелико.
Многие, кто хотел бы использовать свободное программное обеспечение, не
могут этого сделать из-за языкового барьера. KDE - это первый
Unix-десктоп, который хорошо говорит по-русски. Для полной русификации
нужно настроить язык графического интерфейса (меню, заголовки окон и
т.д.), ввод по-русски и отображение на экране по-русски. Вам потребуется
пакет русской локализации KDE, kde-i18n-ru.tar.bz2 или его готовая версия,
собранная поставщиком вашего дистрибутива, если он еще не установлен.
Прежде всего задайте переменную среды LANG, например,
прописав в своем домашнем каталоге в файле ~/.profile строчку:
export LANG=ru_RU.KOI8-R
Войдите в систему еще раз, чтобы
переменная среды была задана до запуска X-сервера. Эта переменная задает
правильную русскую локаль. Далее выберите в Центре управления KDE в
разделе Personalization->Country & Language Россию, русский язык
как основной и кодировку koi8-R. Возможно, в некоторых программах или в
К-меню появятся знаки вопроса, тогда просто выйдите из KDE и зайдите еще
раз.
Она нужна как Х-библиотекам, так и библиотекам Qt для
правильной перекодировки из кодировки UTF-8 в восьмибитную локаль и
обратно. Об этом во всех подробностях можно прочитать на странице
Александра Воропая, посвященной локали. В
версии KDE ниже 2.1 и Qt ниже 2.3.0 без задания правильной локали все
работало бы неправильно. Теперь же, начиная с Qt 2.3.0 исправлены
некоторые ошибки, и вы можете попробовать обойтись без явного задания
локали, указав LANG="С". Это имеет как свои плюсы, так и минусы, о чем см.
ниже, пп. 7
и 8.
Можно. Если у вас аллергия на русскоязычный интерфейс и
вам нужно только настроить отображение и ввод по-русски, оставьте
интерфейс на английском и переходите сразу к настройке шрифтов и
Х-сервера.
Если у вас русский интерфейс, выберите в Центре управления
KDE пункт Настройки->Внешний вид и интерфейс->Шрифты и настройте
шрифты на свой вкус. Кстати, Qt, начиная с 2.3.0, поддерживает сглаживание
(antialiasing) шрифтов, о чем можно прочитать здесь.
Шрифты можно настраивать и в отдельных приложениях, и это
важно, если у вас вдруг где-то вместо русских символов отображаются знаки
вопроса - скорее всего, нужно просто поменять кодировку шрифта на koi8-r.
Можно. Например, если вы хотите запустить KMail с немецким
интерфейсом, в то время как остальные приложения - с русским, добавьте
следующие строчки в конфигурационный файл приложения, то есть в
~/.kde/share/config/kmailrc:
[Locale]
Charset=iso8859-1
Country=de
Language=de
При этом, естественно, должен быть установлен пакет немецкой
локализации kde-i18n-de.
Самое лучшее - настроить клавиатурный модуль Х-сервера
xkb. Вот какие настройки можно прописать в файле XF86Config (для 4.0 и
выше):
Section "InputDevice"
...
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "ru"
Option "XkbOptions" "grp:toggle,grp_led:scroll"
# последняя строчка служит для переключения правым Alt
# и отображения этого лампочкой Scroll Lock
...
EndSection
Подробнее об этом читаем на страничках Ивана Паскаля и Александра
Канавина (и то, и другое очень рекомендуется). Такой способ настройки
имеет то преимущество, что вы сможете вводить по-русски как в KDE, так и в
других оконных менеджерах (или без оных :). Для проверки настройки xkb
можно запустить xinit и в окне терминала попробовать ввести что-нибудь
по-русски.
Как уже сказано в п.3,
в версии KDE ниже 2.1 и Qt ниже 2.3.0 без задания правильной локали все
работало бы неправильно. Минусом способа настройки, указанного в п.7,
является то, что локаль может быть только одна (или вам нужно изощряться,
переключая LANG перед запуском приложения, требующего другой язык). Многим
же необходимо работать более чем с двумя языками и раскладками клавиатуры.
Начиная с Qt 2.3.0, такая возможность реализована. Вот как это делается,
например, для трех раскладок, основной - английской и двух дополнительных,
русской и немецкой:
- Выключаем из ХF86Config локальную раскладку:
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
# Option "XkbLayout" "de"
# Option "XkbLayout" "ru"
Option "XkbCompat" ""
Option "XkbOptions" "grp:toggle,grp_led:scroll"
- Убираем локаль (export LANG="POSIX")
$ locale
LANG=POSIX
LC_CTYPE="POSIX"
...
- Запускаем KDE
- Настраиваем kxkb: в пункте К-меню Настройки->
Персональные->Раскладка клавиатуры выбираем три раскладки, первичную
en и две вторичные - de и ru
- После этого все работает (!)
А именно:
- раскладки переключаются все (xev показывает правильные keysums):
en:
KeyPress event, serial 30, synthetic NO, window 0x1c00001,
root 0x26, subw 0x0, time 3246720013, (672,25), root:(676,389),
state 0x1, keycode 34 (keysym 0x7b, braceleft), same_screen YES,
XLookupString gives 1 characters: "{"
de:
KeyPress event, serial 28, synthetic NO, window 0x1c00001,
root 0x26, subw 0x0, time 3246616076, (84,131), root:(88,495),
state 0x0, keycode 34 (keysym 0xfc, udiaeresis), same_screen YES,
XLookupString gives 1 characters: ""
ru:
KeyPress event, serial 29, synthetic NO, window 0x1c00001,
root 0x26, subw 0x0, time 3246625571, (84,131), root:(88,495),
state 0x2000, keycode 34 (keysym 0x6c8, Cyrillic_ha), same_screen YES,
XLookupString gives 0 characters: ""
- отображение введенного текста зависит от кодировки шрифта: если
вводим по-русски, нужно просто выбрать в приложении шрифт с кодировкой
koi-8, если по-немецки, то - iso8859-1.
Самое интересное: задание переменной LANG на ввод таким
методом не влияет, а влияет лишь на правильность отображения
менюшек и сообщений программ при выборе языка интерфейса, отличного от en.
То есть можно ставить LANG=de_DE.ISO8859-1 или LANG=ru_RU.KOI8-R, это
ничего не испортит.
Так что можно, например, работать в KMail на любом языке,
просто меняя шрифт по мере надобности.
Это может случиться из-за неправильно установленной локали
при русификации X-сервера, как описано в п.7.
Бывает, что усилиями поставщиков дистрибутивов ввод не работает, несмотря
на вроде бы точное следование вышеприведенным инструкциям. Это означает,
что где-то в недрах системных настроек скрыты установленные переменные
среды. Если вы внимательно читали Паскаля, то поймете, в чем тут проблема.
Вместо теории приведу примеры из практики.
- Проверить, правильно ли установлена локаль, можно, вставив команду
$ export | grep LANG > /tmp/xxx
в скрипт startkde
перед запуском kdeinit и посмотрев, что появится в созданном файле
/tmp/xxx. Должна быть строка:
declare -x LANG="ru_RU.KOI8-R"
Допустим, результат -- этот файл содержит LANG=en_US. ( OS: Red
Hat Linux release 7.0 (Guinness)) Проводим поиск в файлах конфигурации
на предмет строки en_US. В файле /etc/.sysconfig/i18n значится строка:
LANG=en_US
Заменяем ее на LANG=ru_RU.KOI8-R. Все
работает.
- Проверить, нет ли чего лишнего, можно командой
$ export |
grep "LC_"
В slackware 7.1 это приводит к отлову следующего
жучка:
declare -x LC_ALL="POSIX"
прописанного в
/etc/profile. Эту строку надо или закомментарить (рекомендуется), или
задать у себя LC_ALL=ru_RU (сами пробуйте), тогда все начинает работать.
Если все вышеописанное не помогло, вот самый плохой, но
работающий рецепт. Хаковая русификация с помощью xrusmodmap. Скачиваем xruskb.
Собираем (configure; make; make install - без хитростей). Ввод работает,
если запустить
$ xrusmodmap
/usr/local/share/xruskb/jcuken-koi8.xmm
НО: если вы дочитали
досюда, а значит, вам понадобился последний рецепт, то используйте его
лишь как временное решение проблем. Прочитайте у Паскаля, чем плоха такая
русификация, разберитесь и настройте-таки xkb или kxkb.
Если эти
рецепты кому-то не помогают, это само по себе уже интересно. Тогда пишите.