Українізація Slackware (і будь-якого іншого дистру)

(Adding Ukrainian support to Slackware)

Також ця стаття буде корисна при українізації всіх інших Linux-дистрибутивів, в яких немає інших засобів налаштування, оскільки використовуються універсальні підходи.

Взагалі Ви можете подібним шляхом налаштувати практично будь-який Лінукс (хоча деякі дистри містять власні конфігуратори, які, можливо, простіші для початківця, та можуть виконати налаштування при встановленні автоматично).

Автор (Андрій Головинський tikus at ukrpost.net) давно перестановлював систему, тож може якусь із проблем і забув. Хотілося б, щоб матеріал був повним, тож присилайте описи проблем.

Встановлення української локалі

Додаємо до /etc/profile таке

#my localization
export LC_ALL=uk_UA
export LANG=uk_UA.KOI8-U
export LESSCHARSET=koi8-r
export CHARSET=koi8-u
#end of my localization

Замість того щоб змінювати файл який відповідає за загальносистемні налаштування можна створити файл .profile в домашньому каталозі користувача і додати туди наступні рядки:

export LC_MESSAGES="en_US.utf8"
export LANG="uk_UA.utf8"
export LC_NUMERIC="uk_UA.utf8"
export LC_TIME="uk_UA.utf8"
export LC_MONETARY="uk_UA.utf8"
export LC_COLLATE="uk_UA.utf8"
export LC_PAPER="uk_UA.utf8"
export LC_NAME="uk_UA.utf8"
export LC_ADDRESS="uk_UA.utf8"
export LC_TELEPHONE="uk_UA.utf8"
export LC_MEASUREMENT="uk_UA.utf8"

В даному випадку інтерфейс X програм буде на англійській американській а все інше буде українським. Список доступних локалей можна проглянути виконавши команду locale -a.

Запис uk_UA.KOI8-U значить:

uk - мова повідомлень - українська. (Можете поставити ru,us, якщо хочете)
KOI8-U системне кодування.

Додаємо до /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 таке

#!/bin/sh
# Load the keyboard map.  More maps are in /usr/lib/kbd/keytables.
if [ -x /usr/bin/loadkeys ]; then
 /usr/bin/loadkeys ru1.map
fi

Українські назви файлів

Має бути ввімкнена підтримка потрібних кодувань у ядрі (koi8-r,koi8-u,utf-8,cp866,etc) В Linux-розділах мають працювати відразу (якщо ні, дивіться розділ про шрифти), Ось /etc/fstab

root@mainframe:~# cat /etc/fstab                                                                                                                 
/dev/hda2   swap       swap        defaults                   0   0
/dev/hda3   /          reiserfs    defaults                   1   1
/dev/hda4   /mnt/dos   vfat        uid=tikus,umask=022,noexec,codepage=cp866,iocharset=koi8-u 1   0
/dev/hda1   /mnt/winnt ntfs        uid=tikus,ro,noexec,iocharset=koi8-u              1   0
/dev/cdrom  /mnt/teac  iso9660     users,noauto,owner,ro,iocharset=koi8-u             0   0

#Skipped...

//tikus/huge /mnt/huge smbfs   noauto,username=tikus,password="skipped",codepage=866,iocharset=koi8-u  
192.168.0.2:/mnt/win_d/Unix_soft /mnt/stern_Unix_soft  nfs   ro,user,noauto 0 0

Відмітьте використання iocharset, codepage з різними файловими системами.

Більше ви можете дізнатись тут ?Кирилиця на розділах MS Windows.

Українські шрифти і X

В стандартних шрифтах, що йдуть в дистрибутиві, є проблеми із українськими літерами. Не всі збірки українських шрифтів працюють нормально. Пакет CYR-RFX виявився найбільш вдалим(шукайте в мережі). Інсталюємо його в /usr/X11/lib/fonts/cyrillic і додаємо в /etc/X11/xorg.conf

# Зауважте, кириличні шрифти стоять перед іншими
    FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/misc/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi/"

    FontPath   "/usr/X11R6/lib/X11/fonts/local/"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"

    FontPath   "/usr/X11R6/lib/X11/fonts/TTF/"

Потім додаємо TrueType шрифти

Скопіюйте з вашої ліцензійної версії Windows (або викачайте, наприклад тут) всі шрифти в /usr/X11R6/lib/X11/fonts/TTF/

Тепер іх треба підготувати до роботи. Цей скрипт, запущений всередині каталогу з шрифтами переведе імена їх файлів до нижнього регістру.

root@mainframe:/usr/X11/lib/fonts# cat to_lower_case.sh 
#!/bin/sh
 #
 ## -------- convert upper to lower case ---------

 ls * | while read f
  do
    if [ -f $f ]; then
      if [ "$f" != "`echo \"$f\" | tr A-Z a-z`" ]; then
       #Note that 'This' will overwrite 'this'!
       mv -iv "$f" "`echo \"$f\" | tr A-Z a-z`"
      fi
    fi
  done

 ## eof

Далі робимо наступне:

#cd TTF
#mkfontscale
#mkfontdir
#reboot

Тепер xlsfonts має показати, що шрифтів побільшало.

Для кращого розуміння читайте XFree86 Font De-uglification HOWTO

Українська розкладка клавіатури в X

Просто додається наступним чином:

    Option "XkbRules"   "xorg"
    Option "XkbModel"   "pc104"
    Option "XkbLayout"  "us,ua,ru" #Це потрібний рядок
    Option "XkbVariant"  "winkeys"
    Option "XkbOptions" "grp:toggle,lv3:menu_switch,grp_led:scroll"

Більше ви можете дізнатись тут ?Як перемикати клавіатурні розкладки під X-ами

Робота з українськими назвами файлів в програмах на GTK2

Такий рецепт допоможе.

root@mainframe:/usr/X11/lib/fonts/TTF# cat /etc/profile.d/gtk+.sh
#!/bin/sh
GDK_USE_XFT=1
export GDK_USE_XFT

G_BROKEN_FILENAMES=1
export G_BROKEN_FILENAMES

G_FILENAME_ENCODING=KOI8-U #@local 

Завваги:

  • При оновленні Slackware ці чари зникнуть
  • Деякі GTK2 програми просто не розуміють необхідності перекодування, тоді слід писати звіт про помилку її авторам.

Назви пісень у mp3 в xmms

Є патч до xmms, який автоматично розпізнає кодування. Російського автора, називається, rusxmms

Експорт кирилиці в Samba

root@mainframe:/Ahrives_Unstable/Slackware/packages# cat /etc/samba/smb.conf
[global]
#...Skipped....
dos charset = 866
unix charset = KOI8-U
display charset = KOI8-U
#................