Съдържание


Въведение

Още статии по темата, но вече не ограничени до Дебиан, могат да се намерят в секцията за кирилизиране на Linux-BG.org. Практически единственото пълно и всепризнато решение на проблема за българизирането на ГНУ/Линукс, независимо от дистрибуцията, е пакетът bglinux на Антон Зиновиев. За щастие той е разработчик в Дебиан и всичко от пакета го има в дистрибуцията като стандартни пакети.

По време на инсталацията на Дебиан

По време на инсталацията се задава въпрос за подредбата на клавиатурата. В списъка е и българската подредба, но изберете подразбиращата се подредба (qwerty/us). В частта за кирилизиране на конзолата се описва много по-гъвкав начин за кирилизиране на клавиатурата.

Последното действие на инсталацията на Дебиан 3.0 е да се стартира програмата tasksel, от която бързо може да си инсталирате практически всичко необходимо за българизиран ГНУ/Линукс. На тази програма е отделена секция в края на статията.

locales: Добавяне на българския език

Инсталира се пакетът locales (CD1) и в настройките на debconf се задава генериране на българските настройки за bg_BG, както и че това е подразбиращият се локал. Поради дефект в пакета locales се налага да изпълните dpkg-reconfigure locales, което отново задава същите въпроси. Ако ви се наложи да променяте списъка на локалите, не редактирайте файла /etc/locale.gen, а използвайте същата тази команда за преконфигуриране на пакета. По този начин, освен генерирането на информацията за българския, се задава глобалният локал на всички програми да е bg_BG. Той се запазва във файла /etc/environment, който се използва от PAM-модула pam_env. Програмите, които в PAM конфигурацията си /etc/pam.d/програма използват този модул, ще използват този локал.

Добавя се редът

 bulgarian		bg_BG.CP1251

във файла /etc/locale.alias.

console-cyrillic: Конзола

За конзолата е достатъчно да се инсталира пакетът console-cyrillic (CD2). На въпросите отговаряйте с подразбиращите се отговори, освен може би на тези въпроси:

Choose the keyboard layout Bulgarian phonetic или Bulgarian BDS
How to toggle between Cyrillic and Latin letters Alt+Shift или нещо друго
What is your encoding? CP1251
Do you want to setup Cyrillic on the console at boot-time? Yes

cyr: Команда за конфигуриране на конзолата

Подробна информация за параметрите, които могат да се предадат на командата cyr, може да получите след изпълнение на cyr --help. Ако се изпълни командата с опция --save, настройките от командния ред се и запазват във файла ~/.cyr_defaults. Следващото изпълнение на cyr без параметри ще конфигурира конзолата според запазените настройки. Така, след като веднъж има запазени потребителски настройки, добавянето на командата cyr 2> /dev/null във файла ~/.bash_profile ще конфигурира конзолата при всяко влизане (login) в системата. (2> /dev/null подтиска грешките при отваряне на терминал в X, като xterm или gnome-terminal.)

XFree86: Графична среда

XKB: Клавиатура

Следните текстове може да ви помогнат, ако искате да разберете повече за разширението XKB на X:

xserver-xfree86: Конфигуриране при инсталиране

По време на инсталирането на пакета xserver-xfree86 трябва да се отговори на следните въпроси:

Въпрос Опция Отговори за българска среда
Please select your keyboard layout XkbLayout
  • bg
Please select your keyboard variant XkbVariant
  • phonetic
  • bds
Please select your keyboard options XkbOptions
  • grp:shift_toggle
  • grp:ctrl_shift_toggle
  • grp:caps_toggle
  • grp:ctrl_alt_toggle
  • grp:alt_shift_toggle
  • grp:menu_toggle

Подробности за смисъла на стойностите на XkbOptions се намират в /etc/X11/xkb/symbols/group.

XF86Config: Редактиране на конфигурирацията на X

Редактирайте файла /etc/X11/XF86Config-4, като копирате секцията InputDevice за клавиатурата преди реда ### BEGIN DEBCONF SECTION, ако го има. След това в копието се добавят или променят следните настройки:

	Option	"XkbLayout"	"bg"
 	Option	"XkbVariant"	"phonetic"
 	Option	"XkbOptions"	"grp:alt_shift_toggle"
 	Option	"XkbCompat"	"group_led"

Различните възможности за стойностите на опциите могат да се видят от предишната секция. Последната опция, XkbCompat, конфигурира лампичката Scroll Lock на клавиатурата да показва дали сме в кирилица или не. Тази опция не може да се зададе по време на конфигурирането на пакета xserver-xfree86.

setxkbmap: Различна подредба за отделен потребител

Командата setxkbmap позволява конфигуриране на клавиатурата от команден ред или скрипт. Такъв скрипт може да се използва при начално зареждане на потребителска X сесия, променяйки глобалните настройки за подредба на клавиатурата. Файлът ~/.xsession (в Дебиан вместо ~/.xinitrc трябва да се използва ~/.xsession) е подходящ за тази цел. Забележете, че този файл може и да не се изпълни от display manager-и, различни от xdm, като kdm или gdm например. Използвайки горните променливи, командата изглежда по следния начин (в квадратни скоби се отбелязват части, които могат да се пропуснат):

setxkbmap [ -layout XkbLayout ]
          [ -variant XkbVariant ]
          [ -option XkbOptions ]
          [ -compat XkbCompat ]

Важна корекция

Непременно трябва да изпълните командата touch /usr/lib/X11/locale/microsoft-cp1251/Compose, понеже някои програми не могат да тръгнат, ако този файл не съществува.

Шрифтове

Ако искате да разберете повече за шрифтовете в X, следните текстове може да ви помогнат:

Имайте впредвид, че в X кодирането на знаците на нашата кирилица се нарича microsoft-cp1251, по специално в имената на шрифтовете, и windows-1251 на всички други места, като поща например. Последното име е и официалното на това кодиране.

В X широко се използват някои предефинирани имена на шрифтове, като fixed или 10x20 например. Версиите на тези шрифтове с кодировка windows-1251 са с префикс w-, като w-fixed и w-10x20 например. Префиксът c- се използва за шрифтове с Уникод кодиране (iso10646-1). Всички такива кратки имена (alias-и, псевдоними) могат да се видят с командата xlsfonts|grep ^w-. Пълен списък на всички псевдоними се намира във файловете *.alias от поддиректориите на /etc/X11/fonts. За да видите образите на знаците на някой шрифт, използвайте команда от вида xfd -fn w-10x20, а за търсене и разглеждане на шрифт — xfontsel. Една комбинация от двете команди, която използвам при Уникод шрифтове (в X ги именуват с кодиране iso10646-1), е xfd -fn "`xfontsel -print`".

Пакети с шрифтове, съдържащи кирилица

Пакет(и)
Имена на шрифтове с кирилица Размери Кодирания Получер и курсив
-misc-fixed-* 13 px iso10646-1 получер или курсив
14,15,18 px получер
7,8,9,10,12,20 px не
-mutt-clerlyu-* 17 px не
-misc-fixed-* 13 px iso10646-1 получер или курсив
14,15,18 px получер
7,8,9,10,12,20 px не
7,8,9,10,12,13,14,15,18,20 px koi8-r не
  1. xfonts-cronyx-misc
  2. xfonts-cronyx-cp1251-misc
  3. xfonts-cronyx-koi8r-misc
  4. xfonts-cronyx-isocyr-misc
-cronyx-fixed-* 14,15,16,18,24 px
  1. iso10646-1
  2. cp1251
  3. koi8-r
  4. iso8859-5
получер
8,9,10,19,20 px не
-screen-fixed-* 16 px получер
-sony-fixed-* 16 px не
-winitzky-proof-* 16 px не
  1. xfonts-cronyx-75dpi
  2. xfonts-cronyx-cp1251-75dpi
  3. xfonts-cronyx-koi8r-75dpi
  4. xfonts-cronyx-isocyr-75dpi
-cronyx-courier-* 8,10,12 px
  1. iso10646-1
  2. cp1251
  3. koi8-r
  4. iso8859-5
получер и/или курсив
-cronyx-helvetica-* 8,10,12,14,18,24 px
-cronyx-times-*
  1. xfonts-cronyx-100dpi
  2. xfonts-cronyx-cp1251-100dpi
  3. xfonts-cronyx-koi8r-100dpi
  4. xfonts-cronyx-isocyr-100dpi
-cronyx-courier-* 14,17,20 px
  1. iso10646-1
  2. cp1251
  3. koi8-r
  4. iso8859-5
получер и/или курсив
-cronyx-helvetica-* 11,14,17,20,25,34 px
-cronyx-times-*
  1. xfonts-bolkhov-misc
  2. xfonts-bolkhov-cp1251-misc
  3. xfonts-bolkhov-koi8r-misc
  4. xfonts-bolkhov-isocyr-misc
-rfx-fixed-* 13,14,15 px
  1. iso10646-1
  2. cp1251
  3. koi8-r
  4. iso8859-5
получер
7,10,16,20,24 px не
  1. xfonts-bolkhov-75dpi
  2. xfonts-bolkhov-cp1251-75dpi
  3. xfonts-bolkhov-koi8r-75dpi
  4. xfonts-bolkhov-isocyr-75dpi
-rfx-courier-* 8,10,12,14,18,24 px
  1. iso10646-1
  2. cp1251
  3. koi8-r
  4. iso8859-5
получер и/или курсив
-rfx-helvetica-*
-rfx-times-*
-rfx-serene-* 8,10,12,14,18,19,24 px
-rfx-serenetypewriter-* получер
-Val-Chancery-* мащабируеми
(Type1 шрифтове)
  • iso10646-1
  • cp1251
  • koi8-r
  • iso8859-5
не
-Val-OldSlavic-*
-TopTeams-Teams-* получер и/или курсив
-Val-Avant Garde-*
  • iso10646-1
  • cp1251
  • koi8-r
  • koi8-u
  • iso8859-5
получер и/или курсив
-Val-Bookman Light-*
-Val-New Century Schoolbook-*
-Val-Helvetica-*
-Val-Times-*
-Val-Courier-*
-Val-Palatino-*
-cronyx-courier-* 14,17,20 px koi8-r получер и/или курсив
-cronyx-helvetica-* 11,14,17,20,25,34 px
-cronyx-times-*
-cronyx-fixed-* 10,13,15,20,24 px не
16 px само в получер
xos4-terminus-* 14,16,20 px
  • iso10646-1
  • cp1251
  • koi8-r
  • koi8-u
  • iso8859-5
  • paratype-pt154
получер
-etl-fixed-* 14,16,24 px
  • iso8859-5
  • koi8-r
не
-gnu-unifont-* 16 px iso10646-1 не

Вижте секцията за TrueType шрифтове

-monotype-Times New Roman-* мащабируеми
(TrueType шрифтове)
  • iso10646-1
  • cp1251
  • koi8-r
  • koi8-u
  • iso8859-5
получер и/или курсив
-monotype-Arial-*
-monotype-Courier New-*
-microsoft-Trebuchet MS-*
-microsoft-Verdana-*
-microsoft-Georgia-*
-microsoft-Comic Sans MS-* получер
-monotype-Arial Black-* не
-monotype-Impact-*
-monotype-Andale Mono-*

Препоръчвани пакети с шрифтове

Ето списък на най-често използваните пакети с кирилски шрифтове:

Забележка: Ако не знаете точното предназначение на кривите скоби, използвани тук, моля прочетете частта Brace Expansion от секцията Basic Shell Features в ръководството на Bash. Тук те няма да се обясняват, защото и без друго това е една от ценните възможности на Bash, която си струва да се знае.

TrueType шрифтове

Има два основни начина, с които една програма може да използва шрифтове. Първият е класическият: дават се команди на X сървъра да изобрази определени знаци от определен шрифт. Наричаме този начин използване на X шрифтовете (X core fonts). Вторият начин е самата програма да направи изображение на знаците, които иска да покаже, и да прати тези готови образи на X сървъра. За тази цел се използва библиотеката freetype. Самата библиотека не прави повече от построяване на образи на знаци. Задачата да се прехвърлят тези образи в X сървъра се изпълнява от библиотеката Xft, последната версия 2 на която е част от по-общата системата FontConfig за използване на шрифтове. Този начин наричаме използване на Xft шрифтовете. (В бъдеще по-добре е да се наричат FontConfig шрифтове, но в Дебиан 3.0 това няма да е адекватно.) От потребителска гледна точка вторият начин има няколко предимства: способността да се изглаждат знаците на шрифтовете (anti-aliasing, X шрифтовете нямат тази способност), много по-разбираемото именуване на шрифтовете (сравнете Lucida Sans 14 с -b&h-lucida-medium-r-normal-sans-14-100-100-100-p-80-iso10646-1) и способността за фино конфигуриране на Xft. Вторият начин е по-нов и само по-новите програми (например тези от KDE2 и GNOME2) са способни да го използват.

И по двата начина могат да се използват TrueType шрифтове. Като X шрифтове те се изобразяват чрез вариант на freetype, или чрез друга библиотека за изобразяване на знаци — xtt, но това е само за съвместимост с по-старите програми.

Инсталиране на TrueType шрифтове

Понякога се разпространяват TrueType шрифтове за определено кодиране, например windows-1251. Много вероятно е да имате проблеми с тях, защото те ще се възприемат като с кодиране iso8859-1. Използвайте Уникод шрифтове.

  1. Вземете отнякъде TrueType шрифтове.
  2. Инсталирайте пакета ttmkfdir.
  3. Сложете *.ttf файловете в някаква временна директория.
  4. Изпълнете там командата ttmkfdir -о име.scale, където име е специфично за тази група шрифтове име.
  5. Копирайте *.ttf файловете в директорията /usr/lib/X11/fonts/TrueType. Създайте я, ако не съществува.
  6. Копирайте файла име.scale в директорията /etc/X11/fonts/TrueType. Създайте я, ако не съществува.
  7. Изпълнете командите:
    1. update-fonts-scale TrueType
    2. update-fonts-dir TrueType
Използване като X шрифтове

Ако използвате шрифтовия сървър xfs, трябва да добавите директорията /usr/lib/X11/fonts/TrueType към параметъра catalogue във файла /etc/X11/fs/config. В шрифтовия сървър xfs-xtt това е файлът /etc/X11/fs-xtt/config. За да видите резултат веднага след като инсталирате шрифтовете, изпълнете командата /etc/init.d/xfs reload (или /etc/init.d/xfs-xtt reload за xfs-xtt).

Ако не използвате шрифтов сървър, копирайте цялата секция Files на /etc/X11/XF86Config-4 в края на файла, задължително след реда ### END DEBCONF SECTION (ако го има). Добавете /usr/lib/X11/fonts/TrueType в началото на списъка с директориите.

Използване като Xft шрифтове

Не е нужно да правите каквото и да е — директорията на шрифтовете е част от подразбиращата се конфигурация. Между другото в FontConfig, която система не е част от Дебиан 3.0, инсталирането на TrueType шрифтове се свежда до копирането на *.ttf файловете в директорията ~/.fonts.

Възможно е обаче да искате да конфигурирате Xft. Подробности могат да се намерят в XFree86 Font De-uglification HOWTO. Обикновено най-желаната конфигурация се свежда до добавяне на следните редове в /etc/X11/XftConfig:

match 
	any size > 8 
	any size < 15 
edit 
	antialias = false;

Това забранява изглаждането на шрифтове с големина между 8 и 15.

mozilla: Собствена конфигурация

Мозила използва freetype2 библиотеката, и като следствие, не се съобразява с файла /etc/X11/XftConfig. За да използвате тази библиотека, трябва да инсталирате пакета libfreetype6. При инсталирането на Мозила се пита дали да се използва библиотеката: отговорете, че искате. Във файла /etc/mozilla/prefs.js могат допълнително да се настройва употребата на freetype2, като трябва там да добавите директорията /usr/lib/X11/fonts/TrueType. Допълнително може да зададете чрез настройката font.antialias.min какъв да е най-малкият размер, при който знаците да се изглаждат.

xfs: Шрифтов сървър

Инсталирането на шрифтов сървър, като например xfs или xfs-xtt, е препоръчително. Изпoлзвайте xfs. За да получите по-добри резултати, в края на файла /etc/X11/XF86Config-4, задължително след реда ### END DEBCONF SECTION (ако го има), вмъкнете следното:

Section "Files"
	FontPath	"unix:/7100"	# xfs port
EndSection "Files"

Програми

GNOME

Gtk

Подразбиращите се шрифтове за Gtk-базираните програми (това включва всички програми на GNOME) могат да се променят чрез редактиране на файла /etc/gtk/gtkrc.bg.

AbiWord

Следващите инструкции са преработка на едно писмо от Георги Данчев. Използват се TrueType шрифтове, например тези на Майкрософт, които могат да се инсталират чрез пакета msttcorefonts. В частта за шрифтове има повече информация за TrueType шрифтовете.

  1. Създайте директория /usr/share/AbiSuite/fonts/CP1251. Всички следващи команди предполагат, че сте в тази директория.
  2. Създайте препратки към .ttf файловете, които искате да ползвате, например с командата ln -s /usr/lib/X11/fonts/TrueType/*.ttf . (последният аргумент на командата е точка).
  3. Изпълнете командите:
    1. ttmkfdir | grep microsoft-cp1251$ > fonts.list (пакетът ttmkfdir трябва да е инсталиран)
    2. (wc -l fonts.list; cat fonts.list) > fonts.scale
    3. mkfontdir
  4. За да проверите дали всичко е наред, изпълнете командата ttftool -e print. В изхода на командата трябва да присъства кодирането CP1251.
  5. Изпълнявате командата ttfadmin.sh /usr/share/AbiSuite/fonts/CP1251 CP1251. В директорията с CP1251 шрифтове на AbiWord ще се появят файлове с разширения .t42, .afm и .u2g.
  6. Използвайте това закърпване на положението само ако имате проблеми. В оригиналното писмо се настоява за тази промяна, но при мен всичко върви добре и с LANG=bg_BG. Когато се стартира AbiWord, трябва в променливата LANG да се съдържа стойността bg_BG.CP1251. Забележете, че при нормално кирилизирана система тази стойност обикновено е bg_BG. По принцип стойността bg_BG.CP1251 е по-правилна, така че е оправдано променянето на глобалната стойност на bg_BG.CP1251. И така, има два варианта:
  7. Ако изцяло сте поверили X шрифтовете на xfs сървър, както е препоръчано по-горе, и ви се появява досадно съобщение за грешка при добавяне на Abiword шрифтовете към шрифтовете на X сървъра, изключете Modify Unix Font Path от частта Preferences Schemes от диалога Preferences, достъпен от менюто Tools.

GDM

Тази част не се смята за завършена.

Във файла /etc/init.d/gdm още в началото се добавят следните команди:

LANG=bg_BG
export LANG

Във файла /etc/pam.d/gdm се добавя редът:

 session  required       pam_env.so

KDE

Бележките за KDE, описани тук, са непълни, може би и грешни.

KDE изисква следните настройки: (май има и още неща)

(Display Manager-ите kdm и wdm също изискват някои допълнителни действия.)

tasksel: Бързо българизиране на Дебиан

Истината е, че не е нужно да се задълбочавате в подробности, за да може бързо да си българизирате вашия Дебиан. Достатъчно е да изпълните командата tasksel, която показва кратък списък от групи, съдържащи пакети. (Това е същата програма, която се изпълнява съвсем в края на инсталирането на Дебиан 3.0.) Интересни са групите desktop environment и Cyrillic environment. На теория инсталирането на тези групи трябва наведнъж да направи всичко, но действителността, както обикновено, не се оказва толкова розова. По време на конфигурирането различни пакети ще ви задават въпроси. Имената на някои от тези пакети са включени в имена на секции от тази статия. Това е нарочно направено за справка по време на инсталирането. Ако използвате language-env, дейността по конфигурирането се опростява.

language-env: Автоматично конфигуриране на програми

Може да се инсталира и пакета language-env (CD2, част от Cyrillic environment на tasksel), който е предназначен да създава точка-файлове, т.е. конфигурационни файлове, за разпространени програми. След инсталирането си този пакет не извършва никакви глобални конфигурации. Всеки потребител трябва сам да стартира командата set-language-env, която задава въпроси за предпочитанията и създава различни конфигурационни файлове в потребителската директория. За да се обърнат промените, които програмата е извършила, се изпълнява командата set-language-env -r.

Предимствата на този пакет са две. Първо, не е нужно да се конфигурират пакета console-cyrillic и XKB метода за въвеждане, и второ, всеки потребител може да има различни настройки. Не трябва да се забравя, че пакетът locales трябва да е конфигуриран коректно.


Автор: Огнян Кулев <ogi@fmi.uni-sofia.bg> (с преписване от bglinux на Антон Зиновиев :)

С пряка или косвена помощ от: Николай Христов, Никола Антонов, Георги Данчев и Александър Велин.

Лиценз: Всяка част от текста може да се използва за всякакви цели и преработки без каквито и да е задължения спрямо автора. Казано по друг начин: тази статия е в public domain.