Русификация Slackware c UTF-8

Материал из MediaWiki
Перейти к навигации Перейти к поиску
Содержимое устарело
Информация ниже частично устарела. Вы можете проверить её и актуализировать.

{{#if: | [[Категория:{{{category}}}]] }}



Localization на docs.slackware.com

Ниже описаны способы русификации с учетом особенностей в выпуске конкретного релиза

Slackware 14

Русификация Slackware 14

Slackware 13

Консоль

Раскладка по Ctrl+Shift

#!/bin/sh
# It's /etc/rc.d/rc.keymap
# Load the keyboard map.  More maps are in /usr/share/kbd/keymaps.
if [ -x /usr/bin/loadkeys ]; then
 /usr/bin/loadkeys /usr/share/kbd/keymaps/i386/qwerty/ruwin_ct_sh-UTF-8.map.gz
fi

Шрифт, отображающий кириллицу

#!/bin/sh
# It's /etc/rc.d/rc.font
setfont Cyr_a8x16.psfu.gz

Локаль

#!/bin/sh

# It's /etc/profile.d/lang.sh

# en_US is the Slackware default locale:
#export LANG=en_US

# There is also support for UTF-8 locales, but be aware that
# some programs are not yet able to handle UTF-8 and will fail to
# run properly.  In those cases, you can set LANG=C before
# starting them.  Still, I'd avoid UTF unless you actually need it.
#export LANG=en_US.UTF-8
export LANG=ru_RU.UTF-8
 
# One side effect of the newer locales is that the sort order
# is no longer according to ASCII values, so the sort order will
# change in many places.  Since this isn't usually expected and
# can break scripts, we'll stick with traditional ASCII sorting.
# If you'd prefer the sort algorithm that goes with your $LANG
# setting, comment this out.
export LC_COLLATE=C

# End of /etc/profile.d/lang.sh

Не забываем убедиться, что на выше приведенных файлах (rc.font, rc.keymap, lang.sh) установлен атрибут выполнения.

Поставить же его можно следующей командой:

chmod +x полный_путь_к_файлу

Или же, разом все файлы:

chmod +x /etc/rc.d/rc.keymap /etc/rc.d/rc.font /etc/profile.d/lang.sh

LILO

В /etc/lilo.conf нужно исправить строчку: append=" vt.default_utf8=0" на append=" vt.default_utf8=1" и выполнить команду lilo

HAL, udev и X.Org

Раскладка через HAL (Slackware 13.0, 13.1)

cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy/10-keymap.fdi

Правим строки файла /etc/hal/fdi/policy/10-keymap.fdi с input.xkb, а именно options, layout, variant, задаем в них примерно следующее:

<?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.keys">
      <merge key="input.xkb.rules"   type="string">base</merge>
      <merge key="input.xkb.model"   type="string">evdev</merge>
      <merge key="input.xkb.layout"  type="string">us,ru</merge>
      <merge key="input.xkb.variant" type="string">,winkeys</merge>
      <merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp,grp:ctrl_shift_toggle,grp_led:scroll</merge>
    </match>
  </device>
</deviceinfo>

Раскладка через udev (Slackware 13.37 и Current)

в Slackware Current используется более новая версия xorg-server в которой наконец то избавились от поддержки HAL, поэтому переключение раскладок снова настраивается как и раньше, только с небольшим отличием

Правим файл /etc/X11/xorg.conf.d/90-keyboard-layout.conf, (если этого файла нет, то создаём) так, как нам нужно. Конечный результат должен выглядеть примерно так:

Section "InputClass"
	Identifier "keyboard-all"
	MatchIsKeyboard "on"
	Driver "evdev"
	Option "XkbLayout" "us,ru(winkeys)"
	Option "XkbOptions" "terminate:ctrl_alt_bksp,grp:alt_shift_toggle,grp_led:scroll"
EndSection

Перезапускаем иксы, и переключаем раскладку по Alt+Shift, с подсветкой лампочки «Scroll Lock» на клаве.

Типографская раскладка

Если вы часто-часто готовите тексты в LibreOffice и он тупит с автозаменой — то вам пригодится «типографская раскладка», такая как тут (раскладка Артёма Сапегина) или вот здесь (раскладка Ильи Бирмана), например.

Тогда файл /etc/X11/xorg.conf.d/90-keyboard-layout.conf должен выглядить следующим образом:

Section "InputClass"
	Identifier "keyboard-all"
	MatchIsKeyboard "on"
	Driver "evdev"
	Option "XkbLayout" "us+typo,ru(winkeys):2+typo"	
	Option "XkbOptions" "lv3:ralt_switch,terminate:ctrl_alt_bksp,grp:alt_shift_toggle,grp_led:scroll"
EndSection

Перезапускаем иксы, и радуемся, «типографские» символы набираются через правый Alt, и правый Alt+Shift.

Раскладка немного отличается от двух приведенныйх выше, но поэкспериметировать и выяснить что-как не составит труда в том же OpenOffice’е. Да и во всяких жабберах можно выпендриться.

Русские man-страницы

[1] Если кратко, то в /usr/lib/man.conf заменить строку

NROFF /usr/bin/nroff -Tlatin1 -mandoc

на

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

Slackware 12

Начало

Сначала нужно убедиться что установлены следующие пакеты:

  • l/glibc-i18n (содержит locale)
  • x/x11-fonts-cyrillic (русские шрифты для старых тулкитов, не использующих freetype2, например, gtk1)
  • x/dejavu-fonts-ttf
  • x/liberation-fonts-ttf

Если используется kde:

  • kdei/kde-i18n-ru (русский перевод kde)
  • kdei/koffice-i18n-ru (русский перевод koffice)

Если их нет, то доустановить недостающее можно с дистрибутивного диска. Дополнительно с него же можно поставить русский словарь для aspell, он находится extra/aspell-word-lists/aspell-ru

Поддержка UTF-8

Для поддержки UTF-8 понадобятся следующие вещи:

  • ru-utf keymap, можно взять с [2] и положить в /usr/share/kbd/keymaps/i386/qwerty

Консоль

Русский шрифт

В /etc/rc.d/rc.font

#!/bin/sh
#
# This selects your default screen font from among the ones in
# /usr/share/kbd/consolefonts.
#
unicode_start LatArCyrHeb-16
for i in 1 2 3 4 5 6;do
        echo -ne "\033%G" >/dev/tty$i
done

Примечание: если вам понравился шрифт, который стоял по-умолчанию, вместо LatArCyrHeb-16 пропишите cyr-sun16

Раскладка клавиатуры

В /etc/rc.d/rc.keymap (переключение по правому Alt, раскладка winkeys):

#!/bin/sh
# Load the keyboard map.  More maps are in /usr/share/kbd/keymaps.
if [ -x /usr/bin/loadkeys ]; then
  /usr/bin/loadkeys /usr/share/kbd/keymaps/i386/qwerty/ru-utf.map.gz
fi

Если раскладку ru-utf скачать не удалось, то можно попробовать нижеприведенный вариант (досовская раскладка, переключение, если верить автору, по Caps Lock):

#!/bin/sh
# Load the keyboard map.  More maps are in /usr/share/kbd/keymaps.
 if [ -x /usr/bin/loadkeys ]; then
#  /usr/bin/loadkeys /usr/share/kbd/keymaps/i386/qwerty/ru-utf.map.gz
#ru4.map переключает раскладки по Caps Lock. можно использовать любой другой .map файл.
  /usr/bin/loadkeys ru4.map
  /usr/bin/dumpkeys -c koi8-r | loadkeys --unicode
 fi

Локаль

В /etc/profile.d/lang.sh

#!/bin/sh
export LANG=ru_RU.UTF-8

и /etc/profile.d/lang.csh

#!/bin/csh
setenv LANG ru_RU.UTF-8

Не забудьте убедиться, что на файлы rc.font, rc.keymap, lang.sh, lang.csh установлен атрибут выполнения. Поставить его можно командой chmod +x

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

Сохранив старый конфиг иксов cp /etc/X11/xorg.conf /etc/X11/xorg.conf.old, можно создать новый c помощью xorgsetup. Для стандартной русско-английской раскладки с переключением по Ctrl+Shift надо выбрать раскладки us,none,ru,winkeys и Options grp:ctrl_shift_toggle и grp_led:scroll.

В -current вместо winkeys выбирается none, а в /etc/X11/xorg.conf надо добавить следующий фрагмент:

Section "ServerFlags"
   Option "AutoAddDevices" "False"
EndSection

Это отключит автоопределение устройств ввода HALом, но зато настройки клавиатуры будут читаться из конфига. Подробности в разделе X-сервер.

Чтобы разрешить использовать 3D-ускорение всем туда же дописываются строчки:

 
Section "DRI"
   Mode 0666
EndSection

Установка шрифтов от Microsoft

В общем-то после появления в составе дистрибутива шрифтов Liberation стал необязателен, но шрифты в нём всё равно пока лучше, и называются привычными пользователю Windows названиями.

Ставить нужно сначала cabextract, потом webfonts.

Другой, более простой способ, это просто взять и скопировать шрифты из Windows куда нибудь в /usr/share/fonts/X11/winfonts. Плюс такого метода в том, что будут доступны шрифты, не входящие в пакет webfonts, например Tahoma.

Если кого-то смущает слово «Microsoft», можно не смущаться, это шрифты Agfa Monotype, просто одна малоизвестная софтверная контора купила на них лицензию и выложила их в сети на наиболее либеральных из всех купивших условиях.

Настройка /etc/fstab для поддержки русских имен на компакт дисках и дисках с FAT/NTFS

Имена устройств подставьте свои. Посмотреть из можно в выводе команды fdisk -l

CDROM/DVD:

 /dev/cdrom      /mnt/cdrom   iso9660   user,noauto,nosuid,noexec,nodev,ro,utf8   0   0

FAT32:

 /dev/sda1      /mnt/windows   vfat   showexec,noexec,nosuid,nodev,umask=000,utf8,codepage=866   0   0

NTFS:

/dev/sda1      /mnt/windows   ntfs-3g   umask=000,locale=ru_RU.UTF-8   1   0

Для поддержки ntfs требуется пакет ntfs-3g (в последних версиях ntfs-3g опция locale не работает, ntfs-3g сейчас поддерживает только UTF-8)

Флешка:

 /dev/sdb1      /mnt/flash   vfat   showexec,noexec,nosuid,nodev,noauto,user,umask=000,utf8,codepage=866   0   0

Смысл каждой опции можно узнать из man mount

Настройка TeX

По минимуму — запустить texconfig и выбрать PAPER→A4. Для красивых русских буковок в pdf поставить шрифты cm-super.

Для полноценной поддержки лучше поставить TeXlive.

Настройка man

Для корректного отображения man-страниц надо в /usr/lib/man.conf сделать замену

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