Още статии по темата, но вече не ограничени до Дебиан, могат да се намерят в секцията за кирилизиране на Linux-BG.org. Практически единственото пълно и всепризнато решение на проблема за българизирането на ГНУ/Линукс, независимо от дистрибуцията, е пакетът bglinux на Антон Зиновиев. За щастие той е разработчик в Дебиан и всичко от пакета го има в дистрибуцията като стандартни пакети.
По време на инсталацията се задава въпрос за подредбата на клавиатурата. В списъка е и българската подредба, но изберете подразбиращата се подредба (qwerty/us). В частта за кирилизиране на конзолата се описва много по-гъвкав начин за кирилизиране на клавиатурата.
Последното действие на инсталацията на Дебиан 3.0 е да се стартира програмата tasksel, от която бързо може да си инсталирате практически всичко необходимо за българизиран ГНУ/Линукс. На тази програма е отделена секция в края на статията.
Инсталира се пакетът 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
(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 --help. Ако се изпълни командата с опция --save, настройките от командния ред се и запазват във файла ~/.cyr_defaults. Следващото изпълнение на cyr без параметри ще конфигурира конзолата според запазените настройки. Така, след като веднъж има запазени потребителски настройки, добавянето на командата cyr 2> /dev/null във файла ~/.bash_profile ще конфигурира конзолата при всяко влизане (login) в системата. (2> /dev/null подтиска грешките при отваряне на терминал в X, като xterm или gnome-terminal.)
Следните текстове може да ви помогнат, ако искате да разберете повече за разширението XKB на X:
По време на инсталирането на пакета xserver-xfree86
трябва да се отговори на следните
въпроси:
Въпрос | Опция | Отговори за българска среда |
---|---|---|
Please select your keyboard layout | XkbLayout |
|
Please select your keyboard variant | XkbVariant |
|
Please select your keyboard options | XkbOptions |
|
Подробности за смисъла на стойностите на XkbOptions се
намират в /etc/X11/xkb/symbols/group
.
Редактирайте файла /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 позволява конфигуриране на клавиатурата от команден ред или скрипт. Такъв скрипт може да се използва при начално зареждане на потребителска 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 | не | |
-cronyx-fixed-* | 14,15,16,18,24 px |
|
получер |
8,9,10,19,20 px | не | ||
-screen-fixed-* | 16 px | получер | |
-sony-fixed-* | 16 px | не | |
-winitzky-proof-* | 16 px | не | |
-cronyx-courier-* | 8,10,12 px |
|
получер и/или курсив |
-cronyx-helvetica-* | 8,10,12,14,18,24 px | ||
-cronyx-times-* | |||
-cronyx-courier-* | 14,17,20 px |
|
получер и/или курсив |
-cronyx-helvetica-* | 11,14,17,20,25,34 px | ||
-cronyx-times-* | |||
-rfx-fixed-* | 13,14,15 px |
|
получер |
7,10,16,20,24 px | не | ||
-rfx-courier-* | 8,10,12,14,18,24 px |
|
получер и/или курсив |
-rfx-helvetica-* | |||
-rfx-times-* | |||
-rfx-serene-* | 8,10,12,14,18,19,24 px | ||
-rfx-serenetypewriter-* | получер | ||
-Val-Chancery-* | мащабируеми (Type1 шрифтове) |
|
не |
-Val-OldSlavic-* | |||
-TopTeams-Teams-* | получер и/или курсив | ||
-Val-Avant Garde-* |
|
получер и/или курсив | |
-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 |
|
получер |
-etl-fixed-* | 14,16,24 px |
|
не |
-gnu-unifont-* | 16 px | iso10646-1 | не |
Вижте секцията за TrueType шрифтове |
|||
-monotype-Times New Roman-* | мащабируеми (TrueType шрифтове) |
|
получер и/или курсив |
-monotype-Arial-* | |||
-monotype-Courier New-* | |||
-microsoft-Trebuchet MS-* | |||
-microsoft-Verdana-* | |||
-microsoft-Georgia-* | |||
-microsoft-Comic Sans MS-* | получер | ||
-monotype-Arial Black-* | не | ||
-monotype-Impact-* | |||
-monotype-Andale Mono-* |
Ето списък на най-често използваните пакети с кирилски шрифтове:
xfonts-cronyx-{cp1251,koi8r}-{{75,100}dpi,misc}
xfonts-bolkhov-{cp1251,koi8r}-{75dpi,misc}
xfonts-terminus
scalable-cyrfonts-x11
Забележка: Ако не знаете точното предназначение на кривите скоби, използвани тук, моля прочетете частта Brace Expansion от секцията Basic Shell Features в ръководството на Bash. Тук те няма да се обясняват, защото и без друго това е една от ценните възможности на Bash, която си струва да се знае.
Има два основни начина, с които една програма може да използва шрифтове. Първият е класическият: дават се команди на 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 шрифтове за определено кодиране, например windows-1251. Много вероятно е да имате проблеми с тях, защото те ще се възприемат като с кодиране iso8859-1. Използвайте Уникод шрифтове.
Ако използвате шрифтовия сървър 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 в началото на списъка с директориите.
Не е нужно да правите каквото и да е — директорията на шрифтовете е част от подразбиращата се конфигурация. Между другото в 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.
Мозила използва freetype2 библиотеката, и като следствие, не се съобразява с файла /etc/X11/XftConfig. За да използвате тази библиотека, трябва да инсталирате пакета libfreetype6. При инсталирането на Мозила се пита дали да се използва библиотеката: отговорете, че искате. Във файла /etc/mozilla/prefs.js могат допълнително да се настройва употребата на freetype2, като трябва там да добавите директорията /usr/lib/X11/fonts/TrueType. Допълнително може да зададете чрез настройката font.antialias.min какъв да е най-малкият размер, при който знаците да се изглаждат.
Инсталирането на шрифтов сървър, като например xfs
или xfs-xtt
, е
препоръчително. Изпoлзвайте xfs
. За да
получите по-добри резултати, в края на файла
/etc/X11/XF86Config-4, задължително след реда ###
END DEBCONF SECTION (ако го има), вмъкнете следното:
Section "Files" FontPath "unix:/7100" # xfs port EndSection "Files"
Подразбиращите се шрифтове за Gtk-базираните програми
(това включва всички програми на GNOME) могат да се променят
чрез редактиране на файла /etc/gtk/gtkrc.bg
.
Следващите инструкции са преработка на едно писмо от Георги
Данчев. Използват се TrueType шрифтове, например тези на
Майкрософт, които могат да се инсталират чрез пакета msttcorefonts
. В частта за шрифтове има повече
информация за TrueType шрифтовете.
опаковка. Създайте файл /usr/local/bin/abi със следното съдържание:
#!/bin/sh LANG=bg_BG.CP1251 exec abiword
Друг вариант е в ~/.bash_profile да добавите alias abi='LANG=bg_BG.CP1251 abiword'. Недостатъкът на всички тези подходи е, че тогава редакторът трябва да се стартира от команден ред или да се направи нещо като Shortcut.
Тази част не се смята за завършена.
Във файла /etc/init.d/gdm
още в началото се добавят
следните команди:
LANG=bg_BG export LANG
Във файла /etc/pam.d/gdm
се добавя редът:
session required pam_env.so
Бележките за KDE, описани тук, са непълни, може би и грешни.
KDE изисква следните настройки: (май има и още неща)
windows-1251
windows-1251
.(Display Manager-ите kdm и wdm също изискват някои допълнителни действия.)
Истината е, че не е нужно да се задълбочавате в подробности, за да може бързо да си българизирате вашия Дебиан. Достатъчно е да изпълните командата tasksel, която показва кратък списък от групи, съдържащи пакети. (Това е същата програма, която се изпълнява съвсем в края на инсталирането на Дебиан 3.0.) Интересни са групите desktop environment и Cyrillic environment. На теория инсталирането на тези групи трябва наведнъж да направи всичко, но действителността, както обикновено, не се оказва толкова розова. По време на конфигурирането различни пакети ще ви задават въпроси. Имената на някои от тези пакети са включени в имена на секции от тази статия. Това е нарочно направено за справка по време на инсталирането. Ако използвате 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.