Главная Форум Wiki Почта Jabber Devel NIX-FILES
Материал из AltLUG Wiki
Перейти к: навигация, поиск

Begin:locale

Содержание

Русификация Линукс

Состоит из нескольких частей. Кириллизация - прежде всего система должна научиться принимать на вводе и выводить кириллические символы. Для консоли и графической среды (X11, "иксы") эта задача решается по-разному и отдельно. Разработкой иксов занимается прежде всего организация X.org, после чего иксы немного допиливаются под каждый дистрибутив. Поэтому Здесь рассматривается конфигурация X в общем случае. Консоль русифицируется по-разному в разных дистрах, и, кроме того, в консоли по-прежнему используют иногда кодовые страницы, которых несколько (koi8-r, cp1251, koi8-u, продолжите список сами в качестве упражнения). Если система понимает кодировки правильно, для вывода нужны ещё шрифты, в которых отображается кириллица.

Локализация - когда Линукс умеет вводить/выводить кириллицу, можно перевести системные сообщения и интерфейс приложений на русский.

Русификация различных дистрибутивов

Итак начнем, существует великое множество дистрибутивов. Но в большинстве случаев они либо потомки больших и тяжеловесных монстров, либо сами монстры. Наиболее известные:

SlackWare
Gentoo
Debian
Red-Hat
Suse

Рассмотрим их поподробнее.

Кириллизация консоли

SlackWare

Задаем переменные окружения в /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

Debian

Иксы в Дебиан русифицированы "из коробки", однако есть небольшие проблемы (во всяком случае с r0a+security updates).

  1. По завершении установки (после первой перезагрузки по окончании базовой конфигурации системы) в любом случае пользователь обретает ISO-чегототам локаль. Сменить локаль на выбранную при настройке системы можно выполнив (от рута)
/etc/init.d/console-cyrillic 

В дальнейшем при необходимости можно изменить параметры коммандой (от рута)

dpkg-reconfigure console-cyrillic
  1. Дебиан по-умолчанию стартует на 2 уровне. Почему-то при этом кирилизация консоли почему-то некорректно срабатывает. Лечится сменой уровня на 3. (вроде глядел, в скриптах все ок, но глядел бегло)
  2. Файл /etc/locale.gen содержит локали, установленные в системе. Проверьте наличие строки ru_RU.UTF-8 UTF-8 и не стоит ли в начале строки символ # (комментарий). Если строки нет, введите в консоли команду
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

Gentoo

UTF-8 консоль в Gentoo

Кирилизация X-ов

Переключение раскладок

Конфигурация Xorg

Содержимое /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.

Конфигурация HAL

Начиная с 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>

SlackWare

Копируем виндовые шрифты в /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

и перезапускаем иксы.

Debian

В иксах кириллица есть с самого начала, если указать при установке русскую локаль. Устанавливаем программу-переключатель

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-*
Источник — «http://wiki.altlug.ru/Begin:locale»
Личные инструменты