Содержание |
Состоит из нескольких частей. Кириллизация - прежде всего система должна научиться принимать на вводе и выводить кириллические символы. Для консоли и графической среды (X11, "иксы") эта задача решается по-разному и отдельно. Разработкой иксов занимается прежде всего организация X.org, после чего иксы немного допиливаются под каждый дистрибутив. Поэтому Здесь рассматривается конфигурация X в общем случае. Консоль русифицируется по-разному в разных дистрах, и, кроме того, в консоли по-прежнему используют иногда кодовые страницы, которых несколько (koi8-r, cp1251, koi8-u, продолжите список сами в качестве упражнения). Если система понимает кодировки правильно, для вывода нужны ещё шрифты, в которых отображается кириллица.
Локализация - когда Линукс умеет вводить/выводить кириллицу, можно перевести системные сообщения и интерфейс приложений на русский.
Итак начнем, существует великое множество дистрибутивов. Но в большинстве случаев они либо потомки больших и тяжеловесных монстров, либо сами монстры. Наиболее известные:
SlackWare Gentoo Debian Red-Hat Suse
Рассмотрим их поподробнее.
Задаем переменные окружения в /etc/profile.d/lang.sh
#!/bin/sh export LANG=ru_RU.KOI8-R export LC_COLLATE=C
Правим /etc/rc.d/rc.font:
#!/bin/sh
# This selects your default screen font from among the ones in
# /usr/share/kbd/consolefonts.
setfont -v koi8u_8x16.psfu.gz
for i in 1 2 3 4 5 6;do
echo -ne "\033(K" >/dev/tty$i
done
Правим /etc/rc.d/rc.keymap:
#!/bin/sh if [ -x /usr/bin/loadkeys ]; then /usr/bin/loadkeys ru4.map fi
Вместо ru4.map можно прописать любую карту из следующего списка (указаны те при работе с которыми не замечено никаких проблем). Отличаются они только способом переключения раскладки.
ru-ms.map - <R_Ctrl> ru.map - <L_Ctrl> + <R_Ctrl> ru3.map - <Caps_Lock> ru4.map - <Caps_Lock>
В файле /usr/share/locale/locale.alias меняем
russian ru_RU.ISO-8859-5
на
russian ru_RU.KOI8-R ru ru_RU.KOI8-R ru_RU ru_RU.KOI8-R
делаем симлинки
$ ln -s /usr/share/locale/ru /usr/share/locale/ru_RU $ ln -s /usr/share/locale/ru_RU /usr/share/locale/ru_RU.KOI8-R
Иксы в Дебиан русифицированы "из коробки", однако есть небольшие проблемы (во всяком случае с r0a+security updates).
/etc/init.d/console-cyrillic
В дальнейшем при необходимости можно изменить параметры коммандой (от рута)
dpkg-reconfigure console-cyrillic
echo ru_RU.UTF-8 UTF-8>>/etc/locale.gen
и сгенерируйте локаль:
locale-gen
после чего сконфигурируйте её:
dpkg-reconfigure locales
отвечая по ходу дела на вопросы о том, какие нужны локали, например
select locale [*] ru_RU.CP1251 CP1251 [*] ru_RU.KOI8-R KOI8-R [*] ru_RU.UTF-8 UTF-8
и какая из них должна быть по умолчанию:
Не устанавливать
ru_RU.CP1251 ru_RU.KOI8-R ru_RU.UTF-8
select ru_RU.UTF-8
Переконфигурируем пакет поддержки кириллицы в консоли
dpkg-reconfigure console-cyrillic
Тут потребуются ответы на вопросы об используемых виртуальных терминалах (соглашаемся с предлагаемым по умолчанию), типе клавиатуры (выбираем russian with win-keys) и переключателе латиницы/кириллицы - здесь возможны варианты:
Caps Lock Правый Alt ...
Дополнительно можно определить еще и временный переключатель (тот, что действует только в нажатом состоянии). Далее определяется экранный шрифт и его матрицу. Ну и, наконец, кодировку по умолчанию. Рекомендуется юникод. Далее вопрос, следует ли console-cyrillic запускаться при загрузке системы. (Альтернатива - запускать вручную.) Перезапускаем:
invoke-rc.d restart console-cyrillic
Содержимое /etc/X11/xorg.conf (изменить по вкусу):
Section "InputDevice" Identifier "Keyboard1" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us,ru(winkeys)" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll" EndSection
Клавиатура со 105 клавишами. Первичная раскладка - американская, вторичная - русская, вариант с двумя клавишами "winkey" ("logo"). Переключение раскладок по <Alt>+<Shift>. Когда включена русская раскладка, горит индикатор ScrollLock.
Начиная с xorg-server-1.5.x конфигурация устройств ввода оществляется не в xorg.conf, а через HAL. Это позволяет подключать различные клавиатуры и мышки «на лету» и они будут работать без необходимости рестарта иксов. В данный момент настройка через evdev осуществляется в /etc/hal/fdi/policy/10-keymap.fdi. Примерный конфиг для русской и английской раскладки: Код:
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keymap">
<append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
</match>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.xkb.rules" type="string">base</merge>
<merge key="input.xkb.layout" type="string">us,ru</merge>
<merge key="input.xkb.options"
type="string">grp:shift_caps_toggle,grp_led:scroll,caps:internal,compose:ralt</merge>
</match>
</device>
</deviceinfo>
Копируем виндовые шрифты в /usr/X11/lib/fonts/TTF. Прописываем /usr/X11/lib/fonts/TTF в xorg.conf
FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
Делаем симлинк:
$ ln -s /usr/X11/lib/fonts/TTF /usr/share/fonts/TTF
даём команду:
$ fc-cache -f -v
и перезапускаем иксы.
В иксах кириллица есть с самого начала, если указать при установке русскую локаль. Устанавливаем программу-переключатель
apt-get install kkbd
В эмуляторах терминалов (xterm и другие) может возникнуть проблема с отображением кириллицы. Установим шрифты:
aptitude install xfonts-efont-unicode
Редактируем файл ~/.Xresources
*VT100*foreground: black *VT100*background: white *VT100*cursorColor: red xterm*VT100*font: -efont-fixed-medium-r-*-*-16-*-*-*-*-*-iso10646-* xterm*VT100*font2: -efont-fixed-medium-r-*-*-10-*-*-*-*-*-iso10646-* xterm*VT100*font3: -efont-fixed-medium-r-*-*-12-*-*-*-*-*-iso10646-* xterm*VT100*font4: -efont-fixed-medium-r-*-*-14-*-*-*-*-*-iso10646-* xterm*VT100*font5: -efont-fixed-medium-r-*-*-16-*-*-*-*-*-iso10646-* xterm*VT100*font6: -efont-fixed-medium-r-*-*-24-*-*-*-*-*-iso10646-*