Difference between revisions of "Localization/Russian (Русский)"

From ArchWiki
Jump to navigation Jump to search
(ncmpc)
(Midnight Commander (mc))
Line 115: Line 115:
 
= Настройка ncurses приложений =
 
= Настройка ncurses приложений =
 
== Midnight Commander (mc) ==
 
== Midnight Commander (mc) ==
Надо установить пакет mc-utf8, который находятся в репозитории '''community''':
+
Надо установить пакет mc с версией 4.6.1-5 (или больше), при старом срезе - пакет из репозитория '''community''' mc-utf8.
pacman -Sy mc-utf8
 
 
Теперь mc собран с поддержкой юникодной локали и имеет приличный вид.
 
Теперь mc собран с поддержкой юникодной локали и имеет приличный вид.
  

Revision as of 08:21, 4 July 2008

Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n links end

Об этой статье

Эта статья рассказывает о том, как настроить отображение и ввод русского языка в Arch Linux.

Настройка локали

В файле /etc/locale.gen раскомментируйте следующую строку:

ru_RU.UTF-8   UTF-8


Создайте выбранную вами локаль командой:

locale-gen


Проверьте, что все заявленные локали были созданы:

locale -a

Настройка консоли

Несколько слов о том как работает консоль.

Любой вывод программы перенаправляется консольному драйверу в ядре. Ядро работает только в кодировке unicode. Если программа не использует utf-8 для вывода текста, необходима таблица ACM (Application Character Map), которая будет выполнять соответствующее преобразование из 8-битной кодироки в unicode. Если используется пакет kbd (в arch он устанавливается по умолчанию), то эту таблицу можно найти по адресу /usr/share/kbd/consoletrans.

Далее ядро должно отобразить символ на экране. Таблица соответствия знаков шрифта кодам unicode называется SFM (Screen Font Map). Она либо находится внутри шрифта (в большинстве случаев) либо подгружается дополнительно (из /usr/share/kbd/unimaps). Сами шрифты располагаются в /usr/share/kbd/consolefonts.

Кроме этого, нужна ещё клавиатурная раскладка - таблица по переводу скан-кодов клавиатуры в нужный код символа (соответственно может быть либо старая 8 битная либо новая unicode).

Таким образом, работа по настройке консоли разбивается на пункты (рассмотрен utf вариант)

1. Найти нормальную клавиатурную раскладку, поддерживающую unicode и ваши любимые способы переключения языков и указать её как KEYMAP="..." в файле rc.conf.

2. Установить экранный шрифт, имеющий встроенную таблицу SFM и приличное начертание: CONSOLEFONT="...".

3. Убедиться что необходимость в ACM пропадает (CONSOLEMAP="" - остаётся пустым).

Вся остальная работа по настройке kbd (типа использования утилит loadkeys и setfont) уже сделана известными людьми, написавшими стартовые файлы системы.

Пакет kbd поддерживает русские раскладки в utf8. Дополнительные раскладки клавиатуры можно получить установив пакет kbd-ru-keymaps командой

pacman -S kbd-ru-keymaps

или cкачав одну из раскладкок вручную:

и поместив их в каталог /usr/share/kbd/keymaps/i386/qwerty


Установите шрифт Terminus из репозитория community:

 pacman -S terminus-font


Отредактируйте файл /etc/rc.conf :

LOCALE="ru_RU.UTF-8"
KEYMAP="ru" # Или ru-mab для раскладки с переключением по Ctrl-Shift
CONSOLEFONT=ter-u16b # Можно поэкспериментировать с другими шрифтами ter-u* из /usr/share/kbd/consolefonts
CONSOLEMAP=""

Можно обойтись и без terminus, установив:

CONSOLEFONT=/usr/share/kbd/consolefonts/cyr-sun16

Можно обойтись без установки пакета kbd-ru-keymaps, вариант с переключение Ctrl+Shift:

LOCALE="ru_RU.UTF-8"
HARDWARECLOCK="UTC"
TIMEZONE="Europe/Moscow"
KEYMAP="ru"
CONSOLEFONT="ruscii_8x16"
CONSOLEMAP=""
USECOLOR="yes"

Настройка X.org

Установите шрифты ttf-dejavu и ttf-ms-fonts из репозитория community:

pacman -S ttf-ms-fonts ttf-dejavu

Отредактируйте /etc/X11/xorg.conf:

Option "XkbLayout"  "us,ru"
Option "XkbVariant" ",winkeys"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"

Раскладки переключаются комбинацией Ctrl-Shift, при использовании русской раскладки горит лампочка Scroll Lock.

Возможно будет удобно использовать <Menu> для переключения раскладок и поменять CapsLock и левый Ctrl. Тогда нужно написать так:

Option "XKbOptions" "grp:menu_toggle,grp_led:scroll,ctrl:swapcaps"

Настройка GTK1

Отредактируйте файл /etc/gtk/gtkrc.ru :

style "gtk-default-ru" {
       fontset = "-*-arial-medium-r-normal--12-*-*-*-*-*-iso10646-1",\
       -*-fixed-medium-r-*-*-14-*-*-*-*-*-iso10646-1"
}
class "GtkWidget" style "gtk-default-ru"

Настройка ncurses приложений

Midnight Commander (mc)

Надо установить пакет mc с версией 4.6.1-5 (или больше), при старом срезе - пакет из репозитория community mc-utf8. Теперь mc собран с поддержкой юникодной локали и имеет приличный вид.

nano

С версии 2.0 nano поддерживает utf-8.

ncmpc

В репозитории extra пакет ncmpc 0.11.1 собран с ncurses без поддержки unicode, а также файл руссификации почему-то в кодировке ISO-8859-1. Решение:

  • Скачайте из AUR архив
  • Переместите его в /var/abs/local/ (если вы используете ABS) или в любую другую директорию
  • Разархивируйте tar -xzf ncmpc-svn.tar.gz
  • Перейдите в получившуюся директорию
  • Выполните makepkg -i

dialog

Некоторые скрипты (например, alsaconf) используют программу dialog для вывода сообщений. Чтобы включить в ней поддержку юникода, поставьте пакет dialog-w из community или пересобирите с опцией --with-ncursesw

Настройка русских man-страниц

Установите русские страницы командой

 pacman -Sy man-pages-ru

Отредактируйте /etc/man.conf (или /usr/share/misc/man.conf в старых версиях пакета man) добавив вызов iconv

 NROFF         iconv -f utf8 -t koi8r | /usr/bin/nroff -Tlatin1 -mandoc -c | iconv -f koi8r -t utf8

Еше один вариант (с автоматическим определением кодировки man-страниц с использованием пакета enca):

 NROFF         /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -Tlatin1 -mandoc -c | /usr/bin/enconv -L ru -x UTF-8

(К сожалению в данный момент nroff не умеет обрабатывать UTF-8 тексты, поэтому приходится перекодировать их в KOI8-R и обратно)

Также позаботьтесь о том, чтобы переменная окружения LESSCHARSET имела значение UTF-8, либо просто заккоментируйте строку export LESSCHARSET="latin1" в файле /etc/profile, тогда less будет автоматически брать кодировку из локали.

Для того, чтобы настроить вывод различных сообщений (например об отсутствии статьи в данном разделе документации) в правильной кодировке необходимо пересобрать пакет man примерно со следующим PKGBUILD'ом:

# $Id: PKGBUILD,v 1.34 2007/06/05 15:37:42 dan Exp $
# Maintainer: judd <jvinet@zeroflux.org>
pkgname=man
pkgver=1.6e
pkgrel=2
pkgdesc="A utility for reading man pages"
arch=(i686 x86_64)
url="http://primates.ximian.com/~flucifredi/man/"
license=('GPL')
depends=('groff' 'less' 'gzip' 'awk' 'coreutils' 'bash')
backup=(etc/man.conf)
source=(http://primates.ximian.com/~flucifredi/man/man-$pkgver.tar.gz \
        whatis.cron.daily man-troff.patch)
md5sums=('d8187cd756398baefc48ba7d60ff6a8a' 'b86a5f2dd87c6be30421a8813547229d'\
         '21541cb3073259f7fb9335675ca41b0e')

build() {
  cd $startdir/src/$pkgname-$pkgver
  iconv -f koi8-r -t utf-8 msgs/mess.ru > /tmp/mess.ru
  mv /tmp/mess.ru msgs/
  echo "$ codeset=UTF-8" > msgs/mess.ru.codeset
  patch -Np1 -i ../man-troff.patch || return 1
  ./configure -confdir='/etc' -d +lang all
  make || return 1
  make PREFIX=$startdir/pkg install || return 1

  #install whatis cron script
  install -D -m744 ../whatis.cron.daily $startdir/pkg/etc/cron.daily/whatis
}

(Следите за BUG #7477)

Настройка fluxbox

Для отображения русского языка в окнах и меню стоит установить подходящий шрифт в выбранной вами теме. Например (если установлен пакет ttf-dejavu):

*Font: -*-dejavu sans-*

Теперь fluxbox поддерживает русские названия, даже если вы используете локаль en_US.UTF-8.

Настройка Type1-гарнитур CM-Super в TexLive

Пакет CM-Super содержит гарнитуры шрифтов в формате Type1. Содержит начертания всех европейских и кирилических символов. Входит в состав пакета texlive-fontsextra. Для подключения CM-Super необходимо добавить его в список используемых гарнитур. В файл /opt/texlive/texmf/web2c/updmap.cfg добавьте строчки:

Map cm-super-t1.map
Map cm-super-ts1.map
Map cm-super-t2a.map
Map cm-super-t2b.map
Map cm-super-t2c.map
Map cm-super-x2.map

Затем выполните следующие команды:

updmap
mktexlsr