On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Русификация Slackware Linux.

1  Введение
2  Русификация консоли
3  Локализация
4  Графический интерфейс пользователя
3  Разное
    5.1  Midnight Commander
    5.2  man
    5.3  ispell
    5.4  LaTeX
6  Итог

1  Введение На сегодняшний день Slackware Linux поставляется со всем необходимым программным обеспечением для русификации системы. В этой статье будет последовательно описана методика настройки разных компонент системы (консоли, графического интерфейса и локали) для корректной работы с русским языком.

2  Русификация консоли Для того, чтобы научить консоль правильно отображать русские символы, необходимо включить шрифт, содержащий описание кириллицы (если вы не проделали этого при установке системы). Для этого отправимся как root в каталог /etc/rc.d и произведём следующие действия:

Включаем русский шрифт
Переименуем файл rc.font.sample в rc.font, после чего откроем его текстовым редактором и пропишем в него такой текст:


setfont Cyr_a8x16 # загружает системный шрифт с
поддержкой русского mapscrn koi2alt # так как
шрифт знает только Alt кодировку,
установим автоматическую перекодировку
for n in 1 2 3 4 5 6; do # магическая последовательность.
Отправляем echo -ne "\033(K" > /dev/tty$n
 # её на все 6 виртуальных терминалов таким циклом
done

Альтернативный вариант, который предложил мне Dmitry (REDmi) <victor@linux.ru> (в конференции на linux.ru). Буква ё просто поражает своей красотой. Итак, более рекомендуемый вариант файла /etc/rc.d/rc.font:


setfont koi8u_8x16
for n in 1 2 3 4 5 6; do
	echo -ne "\033(K" > /dev/tty$n
done

Если вы считаете, что этот вариант чем-то хуже предыдущего и за вашим мнением есть теоретическое обоснование, сообщите пожалуйста мне.

Для того, чтобы вводить русский текст, подключим русскую раскладку клавиатуры:

Включаем русскую раскладку клавиатуры   Создадим в каталоге /etc/rc.d/ файл rc.keymap с соответствующими правами:

# touch rc.keymap
	# создаём файл
# chmod 755 rc.keymap
	# устанавливаем соответствующие права.
	  Он должен быть выполняемым

Добавляем в него такую строчку:


loadkeys ru-dolphin.map

Это слегка подправленная мной раскладка ru-ms.map из стандартной поставки Slackware. Для переключения Рус/Лат используется любая из Win клавиш. Вы можете загрузить эту раскладку отсюда: ru-dolphin.map.gz. Положите этот файл в каталог /usr/share/kbd/keymaps/i386/qwerty/ (или где там у вас kbd?). На самом деле вы можете захотеть выбрать другую раскладку. Вот опробованные мной раскладки, доступные в стандартной поставке:

  • ru4.map - раскладка microsoft с переключением по CapsLock
  • ru-ms.map - раскладка microsoft с переключением по Ctrl+Shift

Вы можете, даже будучи простым пользователем, попробовать любую из раскладок, выполнив из командной строки:

$ loadkeys имяраскладки

Все раскладки хранятся в каталоге /usr/share/kbd/keymaps/i386/qwerty/. Если вы хотите поэкспериментировать, изучите все раскладки оттуда, содержащие `ru` в названии. Если вы привыкли к Windows раскладке и переключению по "Control+Shift" (правому), вам сюда ru-dolphin_ctrl-sh.map.gz.

Учим bash понимать русский
Сама по себе оболочка bash ничего не знает о том. что существуют какие-либо символы помимо стандартных ASCI символов. Давайте научим её понимать русские символы. Лучше всего сделать из ~/.inputrc файла, так как этот файл используется не только bash, но и всеми программами, использующими GNU readline библиотеку (альтернатива - ~/.bashrc. Итак, давайте создадим файл .inputrc и впоследствии положим его копию в домашние каталоги тех пользователей, которые будут работать с русским языком в консоли. Так же рекомендуется положить копию этого файла в каталог /etc/skel, тогда при создании нового пользователя файл автоматически будет создан в его домашнем каталоге.

Итак, необходимое содержание ~/.inputrc файла для работы с русским:


set meta-flag on
set convert-meta off
set output-meta on

Следует так же отметить, что в этом файле можно так же задать дополнительно привязки некоторых клавиш для выполнения определённых команд. Так например, Вячеслав Колошин <multik@asplinux.ru> рекомендует такой .inputrc:


set convert-meta off
set output-meta on
set input-meta on
set show-all-if-ambiguous on
"\e[1~" beginning-of-line
"\e[2~" " "
"\e[3~" delete-char
"\e[C" forward-char
"\e[D" backward-char
"\e[A" previous-history
"\e[B" next-history
"\e[21~": "exit\C-m"    # F10 - Exit from shell

Примечание к Slackware 8.0 В этой версии больше нет необходимости указывать что-либо в файле .inputrc, если вы правильно настроили локаль. Тем не менее, для "правильной" (т.е. более привычной, по крайней мере для меня) работы некоторых клавиш в консоли, я использую файл .inputrc такого содержания:


"\e[1~" beginning-of-line
"\e[2~" " "
"\e[3~" delete-char
"\e[C" forward-char
"\e[D" backward-char
"\e[A" previous-history
"\e[B" next-history
"\e[21~": "exit\C-m"

3  Локализация В файле /etc/profile ищем строку


export LC_ALL=POSIX
Удаляем её, а ещё лучше просто изменяем её параметр на пустой и добавляем такую строку:

export LC_ALL=
export LANG=ru_RU.KOI8-R

Для тех из вас, кто не любит сообщения на русском, или хочет, чтобы числа отображались не с запятой в качестве десятичного разделителя, но с точкой, и т.д. есть хорошая новость. Это всё настраивается.
команда описание
LC_CTYPE= определяет одиночные символы и тип символа (буква, цифра,...)
LC_NUMERIC= формат чисел
LC_TIME= формат времени
LC_COLLATE= используется для сравнения строк
LC_MONETARY= валюта
LC_MESSAGES= системные сообщения
LC_PAPER= формат бумаги
LC_NAME= формат имён
LC_ADDRESS= формат адресов
LC_TELEPHONE= формат телефонов

Просто добавьте в /etc/profile строчку


export LC_желаемая_опция="POSIX"

Slackware 7.1  Заходим в каталог /usr/share/locale и как root выполняем:

# localedef -f /usr/share/i18n/charmaps/KOI8-R -i \
	/usr/share/i18n/locales/ru_RU ru_RU.KOI8-R

И создадим символическую ссылку:

# ln -s ru_RU.koi8r ru_RU.KOI8-R

Далее, поправляем файл locale.alias. Изменяем строку russian и в конце добавляем строки:


russian		ru
ru		ru_RU
ru_RU		ru_RU.KOI8-R
Теперь даже глупые и старые программы всё поймут по поводу вашей локали. Slackware 8.0 "Etta"   Тут ещё проще. Всё что необходимо сделать, это установить пакет glocale.tgz из раздела AP. Следует отметить, что теперь системная локаль живёт по адресу: /usr/lib/locale, а в каталоге /usr/share/locale находятся только локали программ. Те действия, которые приведены ниже больше не являются необходимыми. Это всё теперь работает, как и должно, автоматом. Но я подумал и решил, что бережёного бог бережёт...

Итак, заходим в /usr/lib/locale и выполняем, как root:

# ln -s ru_RU.koi8r ru_RU.KOI8-R

Ну и наконец, заходим в /usr/share/locale и поправляем файл locale.alias. Изменяем строку russian и в конце добавляем строки:


russian         ru
ru              ru_RU
ru_RU           ru_RU.KOI8-R

4  Графический интерфейс пользователя Графический интерфейс пользователя состоит из трёх частей.

  • сервер окон
  • оконный менеджер
  • набор инструментов Графического Интерфейса Пользователя (GUI Toolkit)

Сервер окон в Unix системах, это обычно X Window Server (или сокращённо X). Функция X состоит в управлении такими устройствами, как клавиатура, мышь и видео-карта.

Его то и надо настроить в первую очередь для корректной работы с русским языком.

Slackware 7.1   Первым делом подключите русские шрифты. Пакет x1/xfcyr.tgz должен быть установлен в вашей системе. В файле /etc/XF86Config найдите раздел "Fonts" и добавьте строку

FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/"
на первое место.

В этой версии дистрибутива использовалась версия 3.3.6 X сервера. Для того, чтобы включить русскую раскладку клавиатуры, откройте при помощи текстового редактора файл /etc/XF86Config. Найдите в нём раздел "Keyboard" и измените его следующим образом:


Section "Keyboard"
	Protocol	"Standard"
	XkbModel	"pc101"
	XkbRules 	"xfree86"
	XkbLayout	"ru"
	XkbOptions	"grp:ctrl_shift_toggle"
EndSection

Slackware 8.0 "Etta"   Первым делом подключите русские шрифты. Пакет x1/xfntscyr.tgz должен быть установлен в вашей системе. В файле /etc/X11/XF86Config найдите раздел "Fonts" и добавьте строку


FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/"
на первое место. Если вы захотите использовать TrueType шрифты, смотрите статью по настройке XFree86 4.1.0.

В этой версии дистрибутива используется версия 4.1.0 X сервера. Для того, чтобы включить русскую раскладку клавиатуры. Откройте при помощи текстового редактора файл /etc/X11/XF86Config. Найдите в нём раздел "InputDevice" и измените его следующим образом:


Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
    Option "AutoRepeat" "500 30"
    Option "XkbRules"   "xfree86"
    Option "XkbModel"   "pc105"
    Option "XkbLayout"  "ru"
    Option "XkbVariant" "winkeys"
    Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
EndSection
Это позволит вам переключать раскладки при помощи Ctrl+Shift и использовать ScrollLock лампочку как индикатор. Если вы хотите запускать GTK программы из под KDE (например XMMS или GIMP), то для того чтобы системные меню программ выводились правильной кириллицей, проделайте следующее:
cp /etc/opt/gnome/gtk/gtkrc.ru ~/.gtkrc

5  Разное

5.1  Midnight Commander

Учитывая национальный интерес к этой программе, опишем как можно научить её понимать русские символы. После запуска программы нажмите F9 и выберите пункт меню Options-Display bits. Включите опции Full 8bit output и Full 8 bit input. Затем, чтобы сохранить опции F9 Options-Save setup. Если вы захотите, чтобы у вновь созданных пользователей по умолчанию mc понимал кириллицу, скопируйте .mc/ini из домашнего каталога в /etc/skel/.mc/ini.

5.2  man

Для того, чтобы научить команду man выводить русские символы в man страницах, измените в файле /usr/lib/man.conf строку:
NROFF           /usr/bin/groff -S -Tascii -mandoc
на
NROFF           /usr/bin/groff -S -Tlatin1 -mandoc

5.3  ispell

Программа ispell является достаточно мощным и удобным инструментом для проверки орфографии. Если вы заботитесь о чистоте русского языка в печатаемых текстах, вам обязательно понадобится подобная программа. Для того, чтобы научить программу работать с русским языком. вам понадобится установить в систему словарь русского языка.

Какой именно словарь выбрать?   Существует несколько различных словарей русского языка для ispell. Мой выбор пал на словарь Александра Лебедева (swan@mch.chem.msu.su) по нескольким причинам. Одна из них, это удачная структуризация словаря; вторая- поддержка буквы "ё" (если пожелаете); ну и назову ещё одну весьма немаловажную причину- довольно приличная документация.

Прежде всего вам надо убедится, что пакет ap1/ispell.tgz установлен в вашей системе. Если вы не помните, вы всегда можете заглянуть в каталог /var/adm/packages. Если вы не в курсе, то при установке любого пакета в формате slackware .tgz создаётся файл в упомянутом каталоге с полным перечислением файлов, поставляемых в этом пакете. Так же создаётся копия пост-установочного сценария пакета. Это делается для того, чтобы вы в любой момент очень легко могли удалить (или обновить) любой из пакетов.

Перейдём к установке словаря (для ленивых вот пакет:russispell-0.99d9.tgz). Для остальных, вот процедура, которой я воспользовался для создания этого пакета:

Словарь русского языка Александра Лебедева для ispell доступен в интернет по адресу:

ftp://mch5.chem.msu.su/pub/russian/ispell/rus-ispell.tar.gz.

После того, как вы его скачали (wget ftp://mch5.chem.msu.su/pub/russian/ispell/rus-ispell.tar.gz), развернём его:

mkdir /usr/src/rus-ispell # создадим каталог
cd /usr/src/rus-ispell # перейдём в него
tar -xvzf /tmp/rus-ispell.tar.gz # развернём пакет.

Теперь соберём словарь для работы с KOI8-R кодировкой и поддержкой буквы "ё".

make koi YO=1

Если вы не хотите использовать букву "ё", просто опустите параметр YO=1. Если вы используете другую системную кодировку, то вместо koi наберите iso, alt, win или mac, в соответствии с вашей кодировкой.

После сборки установим словарь в систему:

make install

Использование словаря из командной строки

Для того, чтобы воспользоваться словарём в консоли, выполните:

ispell -d russian имяфайла

При нахождении ошибки вам будет показана строка, с подсвеченным словом, содержащим ошибку; меню пронумерованных "правильных" замен; и строка внизу экрана, показывающая доступные команды.

Использование словаря в KDE

Многие пользователи предпочитают работать с графическим интерфейсом пользователя. Если вы пользуетесь KDE, то вы можете пользоваться ispell при написании писем, редактировании текстов,... настройка этих программ весьма идентична, поэтому рассмотрим её на примере программы kwrite. Откройте меню "Настройки-Настроить KWrite". Выберите подраздел проверка орфографии. Выберите словарь по умолчанию "Русский", кодировку KOI8-R, и клиент - Международный ispell. Теперь для проверки орфографии просто нажмите "Инструменты-Проверка правописания".

5.4  LaTeX

На сегодняшний день практически во всех дистрибутивах Linux TeTex поставляется со всем необходимым программным обеспечением для работы с русским языком. Тем не менее, по умолчанию словарь русских переносов не включён. Для того, чтобы включить его, выполните программу texconfig, будучи root пользователем. Выберите пункт "HYPHEN->latex" программа автоматически откроет настроечный файл при помощи вашего текстового редактора по умолчанию (скорее всего это будет vi). Найдите строку "%russian      ruhyphen.tex" и удалите знак % в начале этой строки. После чего выйдите из редактора (для выхода из vi нажмите Esc, затем :wq и ввод). Программа автоматически произведёт все необходимые действия.

Теперь, собственно перейдём к рассмотрению "правильной" шапки .tex документа для работы с русским языком. Вот пример:

\documentclass[a4paper,10pt,notitlepage,twoside,openany]{book}
   #Определяет класс документа.
\usepackage{latexsym}
   #Включает latex пакеты
\usepackage[T2A]{fontenc}
   #Подключает поддержку кодировок, отличных от латиницы.
\usepackage[koi8-r]{inputenc}
   #Указывает, что текст будет вводится в KOI8-R кодировке.
\usepackage[russian]{babel}
  #Подключает интернациональный паке babel.
\author{Дэвид Кэнтрелл,\footnote{David Cantrell}
 Логэн Джонсон,\footnote{Logan Johnson}
 Крис Люменс,\footnote{Chris Lumens \\перевод В. Толпекин}

\title{Основы Slackware Linux. Официальный учебник.}
\date{\today}
\sloppy
\begin{document}
\maketitle
\tableofcontents

\chapter{Очень важный раздел}
\section{Не менее важный подраздел}
\subsection{Вот как раз тут и будет всё самое интересное}
Очень много текста тут....
\end{document}

6  Итог Ну вот, вроде бы и всё. Ваш Slackware после пере-загрузки превосходно понимает великий и могучий Русский язык.



Литература по Linux