KDE на Русском — HackZona.Ru

KDE на Русском

KDE на Русском

Тип статьи:
Со старой ХакЗоны.
Источник:
Проект перевода 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: Что делать, если ввод по-русски все-таки не работает?

1. Что такое русификация KDE?
В России количество людей, знающих английский, невелико. Многие, кто хотел бы
использовать свободное программное обеспечение, не могут этого сделать из-за языкового
барьера. KDE — это первый Unix-десктоп, который хорошо говорит по-русски. Для полной
русификации нужно настроить язык графического интерфейса (меню, заголовки окон и т.д.),
ввод по-русски и отображение на экране по-русски. Вам потребуется пакет русской
локализации KDE, kde-i18n-ru.tar.bz2 или его готовая версия, собранная поставщиком
вашего дистрибутива, если он еще не установлен.
2. Как настроить отображение графического интерфейса по-русски?
Прежде всего задайте переменную среды LANG, например, прописав в своем домашнем
каталоге в файле ~/.profile строчку:
export LANG=ru_RU.KOI8-R
Войдите в систему еще раз, чтобы переменная среды была задана до запуска X-сервера. Эта
переменная задает правильную русскую локаль. Далее выберите в Центре управления KDE
в разделе Personalization->Country & Language Россию, русский язык как основной и
кодировку koi8-R. Возможно, в некоторых программах или в К-меню появятся знаки
вопроса, тогда просто выйдите из KDE и зайдите еще раз.
3. Зачем нужна правильная локаль?
Она нужна как Х-библиотекам, так и библиотекам Qt для правильной перекодировки из
кодировки UTF-8 в восьмибитную локаль и обратно. Об этом во всех подробностях можно
прочитать на странице Александра Воропая, посвященной локали. В версии KDE ниже 2.1
и Qt ниже 2.3.0 без задания правильной локали все работало бы неправильно. Теперь же,
начиная с Qt 2.3.0 исправлены некоторые ошибки, и вы можете попробовать обойтись без
явного задания локали, указав LANG=«С». Это имеет как свои плюсы, так и минусы, о чем
см. ниже, пп. 7 и 8.
4. Можно ли оставить графический интерфейс на английском?
Можно. Если у вас аллергия на русскоязычный интерфейс и вам нужно только настроить
отображение и ввод по-русски, оставьте интерфейс на английском и переходите сразу к
настройке шрифтов и Х-сервера.
5. Как настроить шрифты?
Если у вас русский интерфейс, выберите в Центре управления KDE пункт
Настройки->Внешний вид и интерфейс->Шрифты и настройте шрифты на свой вкус.
Кстати, Qt, начиная с 2.3.0, поддерживает сглаживание (antialiasing) шрифтов, о чем можно
прочитать здесь.
Шрифты можно настраивать и в отдельных приложениях, и это важно, если у вас вдруг
где-то вместо русских символов отображаются знаки вопроса — скорее всего, нужно просто
поменять кодировку шрифта на koi8-r.
6. Можно ли запускать отдельные приложения на другом языке?
Можно. Например, если вы хотите запустить KMail с немецким интерфейсом, в то время как
остальные приложения — с русским, добавьте следующие строчки в конфигурационный
файл приложения, то есть в ~/.kde/share/config/kmailrc:
[Locale]
Charset=iso8859-1
Country=de
Language=de
При этом, естественно, должен быть установлен пакет немецкой локализации kde-i18n-de.
7. Как настроить ввод по-русски с русификацией X-сервера?
Самое лучшее — настроить клавиатурный модуль Х-сервера 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 и в окне терминала попробовать ввести
что-нибудь по-русски.
8. Как еще можно настроить ввод по-русски?
Как уже сказано в п.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 на любом языке, просто меняя шрифт по мере
надобности.
9. Что делать, если ввод по-русски все-таки не работает?
Это может случиться из-за неправильно установленной локали при русификации
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.
Нравится
Не нравится

Комментарии

Нет комментариев. Ваш будет первым!