Страници за Линукс




Напред Назад Съдържание

2. Българизация на работната среда

2.1 Кодирания за кирилица

За представяне на буквите и другите печатни знаци в компютрите се използва т.н. кодиране. Това означава, че всяка буква или друг знак е кодирана посредством някакво число. Тези системи за кодиране се наричат кодови таблици. Кой печатен знак е означен посредством дадено число зависи от кодовата таблица, която се използва.

Една от най-разпространените някога кодови таблици беше ASCII. При нея буквите и другите знаци се кодират с числа от 0 до 127. Тази кодова таблица има редица модификации, например англичаните на мястото на знака диез (#) поставяха знака "стерлинг". В България и СССР пък се използваше кодовата таблица КОИ-7. При нея на мястото на малките латински букви и някои други "ненужни" знаци стояха главните букви от кирилица. Освен от съвсем старите големи компютри, КОИ-7 се използваше на персоналните компютри. съвместими с Правец-82.

С развитието на компютърната техника нарастваха и изискванията към компютрите. Скоро кодовете от 0 до 127 се оказаха малко на брой и затова бяха измислени нови кодови таблици, използващи и числата от 128 до 256. Всички те са разширения на ASCII. За съжаление за кодиране на кирилицата се използва повече от една кодова таблица. По-известни кодoви таблици за кирилица у нас са следните:

CP1251. Tова е кодовата таблица за кирилица на MS Windows и OS/2. Поради тази причина това кодиране понастоящем е най-популярно у нас.

МИК. Това е българскa кодова таблица, която и сега се използва от програмите за ДОС. Но тъй като популярността на ДОС непрекъснато спада, то съответно намалява и използването на тази кодова таблица. За да може да се работи в MS Windows или OS/2 с текстови файлове създадени от програма за ДОС се използват специални прекодиращи програми.

Apple-Cyrillic. Съвременните операционни системи на Apple използват тази кодова таблица при работа с кирилица.

ISO-8859-5. Счита се, че това е стандартната кодова таблица за кирилица при операционните системи от типа на Юникс. Такъв тип операционна система е и Линукс.

KOI8-R. Тази руска кодова таблица се превърна в стандарт в Русия за електронна поща и html-документи. Дори стандартните програми за електронна поща на MS Windows се съобразяват с нея, което понякога ги прави неизползваеми у нас. Тази кодова таблица е стандартна в Русия за операционните системи от типа на Юникс. Украинците ползват вариант, наречен KOI8-U.

Многообразието от различни кодирания създава не малко проблеми, както на производителите на софтуер, така и на потребителите. Затова в момента се извършва преход към т.н. Уникод (Unicode). Това е кодова таблица, която използва много по-голям диапазон от числа и включва буквите на почти всички азбуки (кирилски, латински, гръцки, японски и др.), а също и всички други необходими допълнителни символи.

За съжаление Линукс все още не е напълно подготвен за използване на Уникод. Изборът на едно измежду останалите кодирания при работа с Линукс е по Ваша лична преценка. Версиите на пакета bglinux преди 1.2 поддържаха само CP1251. Версията на bglinux, описвана в тази статия, в графичен режим поддържа работа с CP1251 и ISO-8859-5, а при инсталиране на допълнителни шрифтове -- и KOI8-R и KOI8-U (такива шрифтове не са включени в пакета bglinux единствено за да не стане той твърде голям). В текстов режим се поддържа работа с всички основни кодирания на кирилицата.

За прекодиране от един код в друг се използват специални прекодиращи програми. Използването на такива програми обаче понякога е доста досадно. Затова мнението на потребителите на Линукс в България е, че кодирането CP1251 (което се използва и от MS Windows) трябва да се възприеме като стандартно и при работа с Линукс.

2.2 Кирилизация на текстовата конзола

Бърз начин

Кирилизацията на текстовата конзола посредством bglinux се извършва с помощта на програмата cyr. При извикване на командата set-bulgarian-env Ви се дава възможност да изберете кодиране и клавиатурна подредба, които cyr използва по подразбиране. Извикването на командата cyr става автоматично, така че Вие дори може да не знаете за съществуването й. Ако се запознаете с нея обаче, ще получите в замяна някои екстри -- допълнителни шрифтове с различен рисунък на буквите и големина на знаците. Например задайте командата

cyr -s ibm -f 14 --save
От тук нататък cyr ще използва по подразбиране шрифт "ibm" (той няма нищо общо с корпорацията IBM) в размер 14 пиксела.

Вашата предпочитана кирилизация, използвана от cyr e записанa във файла ~/.cyr_defaults, но ако желаете да използвате по-различна настройка на кирилизацията, вместо да правите изменения в този файл е по-добре и по-лесно да използвате различните опции на програмата cyr. Повече информация за използването й се получава с командата

cyr --help

Автоматично кирилизиране при начално зареждане на системата

При преминаване в графичния режим на средата X Window System и обратно в текстов режим често кирилизацията на конзолата често се поврежда. Това налага тя да се кирилизира отново, което става лесно с помощта на програмата cyr. При повечето видеокарти и графични драйвери необходимостта от повторна кирилизация на конзолата отпада, ако първоначалното кирилизиране на ситемата се извърши при още по време на началното зареждане, преди преминаване в графичен режим.

Когато програмата cyr се изпълнява от непривилегирован потребител, тя кирилизира само виртуалните конзоли, чийто потребител е той. Когато пък тя се изпълнява от root, тя кирилизира всички виртуални текстови конзоли на Линукс. Това я прави подходяща за включване в някой от командните файлове, които се изпълняват автоматично при стартиране на системата. При много дистрибуции за целта се използва файл с име rc.local. Вие трябва да се погрижете кирилизацията да не се разваля от стандартната инициализация на текстовата конзола, която Вашата дистрибуция предвижда.

Разбира се вместо програмата cyr, за кирилизация може да се използват стандартните средства на дистрибуцията, която използвате, ако това е възможно.

Ако използвате Дебиан, то при инсталирането на пакета console-cyrillic ще Ви бъдат зададени въпроси за предпочитаната от Вас кирилизация, така че отпада необходимостта от промяна на конфигурационни файлове.

2.3 Кирилизация на X Window System

Ако всичко е както трябва, след изпълнението на командата set-bulgarian-env би трябвало вече да имате кирилизирана графична среда. В следващите подраздели ще бъдат описани някои допълнителни тънкости при кирилизирането на X Window. За кирилизацията на клавиатурата няма да споменаваме, тъй като това става автоматично с помощта на командата set-bulgarian-env.

Шрифтовете на X Window

Системата X Window работи със мащабируеми шрифтове. Това означава, че от единствен източник на шрифта е възможно да се генерира шрифт с произволен размер. Системата има вградена поддръжка както на растерни шрифтове, така и на контурни шрифтове. Растерните шрифтове изглеждат добре на екрана, но при мащабиране качеството им силно намалява. Поради това те не са поднодящи за отпечатване на принтер. Мащабирането на контурните шрифтове от своя страна обикновено дава значително по-добри резултати. Затова тяхното използване е наложително при подготовка на документи, подлежащи на отпечатване.

Във всеки момент може да видите списъка от инсталирани в системата шрифтове с помощта на командата xlsfonts. Имената на повечето шрифтове в системата X Window съдържат 14 полета, разделени със знака минус. Да разгледаме например името

-cronyx-times-medium-r-normal--18-180-75-75-p-94-microsoft-cp1251
В него cronyx показва, че той е произведен от фирмата Cronyx Ltd.; times е същинското име на шрифта; medium е дебелината на линиите (друга възможна стойност е bold); r показва, че шрифтът е с изправен рисунък (от "right", други възможни стойности са o от "oblique", i от "italic" и др.); normal показва широчината на шрифта, други възможни стойности на това поле са condensed, narrow и др. Между двата съседни минуса може да се съдържат някои допълнителни особености на шрифта като serif, sansserif, decorated и др. Числата в името на шрифта са различни параметри, в случая 18 е размерът на шрифта в пиксели, 180 е размерът на шрифта в "точки" (една "точка" е около 0,35 mm). Този шрифт е предназначен за устройство с хоризонтална и вертикална разрешаваща способност 75 пиксела на инч. Последните две полета са едни от най-важните: microsoft-cp1251 е кодирането на шрифта и показва, че това е шрифт с кирилица за обичайното у нас кодиране CP1251.

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

Системата X Window може да получава шрифтовете, които използва както от файлове, така и от специални шрифтови сървъри. Списъкът на местата, от където X Window черпи шрифтовете си, може да се получи в помощта на командата

xset q
Пак с помощта на командата xset може да се внасят изменения в този списък. Първоначалният списък при стартиране на X Window се взема от конфигурационният файл /etc/X11/XF86Config. Когато настройваме този списък трябва да се погрижим местата с кирилски шрифтове да са първи в списъка.

За удобство на потребителите, в пакета bglinux е включена програмата xcyr, с чиято помощ настройката на шрифтовете става по-лесно. Благодарение на командата set-bulgarian-env системата автоматично ще извиква тази програма по подходящ начин. Конфигурационен файл на xcyr е ~/.xcyrrc. Ако използвате единствено шрифтовете от пакета bglinux не е нужно да създавате такъв конфигурационен файл. Но ако решите да използвате допълнителни шрифтове или шрифтов сървър ще трябва да се погрижите да създадете такъв файл. Първоначално може да вземете файла doc/x-cyrillic/xcyrrc от пакета bglinux и да го редактирате съобразно нуждите си. Ако желаете, може да създадете файл /etc/xcyrrc. Програмата xcyr го използва в случай, че потребителят няма собствен файл ~/.xcyrrc.

Редовете във файла xcyrrc съдържат местата, от където системата X Window трябва да взема шрифтове, за всяко от кодиранията. Независимо с какво кодиране работите, е добре да има инсталирани шрифтове за кодирането ISO-8859-5, тъй като тези шрифтове се използват от Netscape. Затова във предложения примерен файл xcyrrc местата със шрифтове за това кодиране за означени с "all", а не с "iso-8859-5". Редът във файла xcyrrc е важен, той трябва да е обратен на реда, в който искате системата X Window да използва тези шрифтове. Това в частност означава, че местата с не кирилски шрифтове трябва да са преди местата с кирилски шрифтове за използваното от нас кодиране.

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

Както вече бе отбелязано, за предпочитане е на екрана да се използват растерни шрифтове, тъй като те изглеждат по-добре. При печат обаче по принцип трябва да се използват контурни шрифтове. В системата X Window се използват два основни вида контурни шрифтове.

Първият и основен вид контурни шрифтове са PostScript шрифтовете във формат Type1. В професионалната полиграфия се използват именно такива шрифтове поради по-доброто им качество. Но тъй като в MS Windows вместо Type1 шрифтове се използват контурни шрифтове с формат TrueType, то популярността на TrueType шрифтовете нарасна, а в системата X Window бе добавена възможност да използва също и такива шрифтове.

Шрифтовете TrueType имат следното предимство пред конкурента си Type1: на екрана изглеждат по-добре. При печат по качество незначително отстъпват на професионалните Type1 шрифтове, което ги прави универсални.

В Интернет може да се намерят немалко кирилски TrueType шрифтове. Дори Майкрософт разпространява безплатно (!) няколко свои TrueType шрифтове. Препоръчително е читателите, които смятат да работят със Star Office, да си инсталират шрифтовете на Майкрософт, защото по този начин ще може да работят по-лесно с кирилски документи създадени с MS Office.

Най-новите версии на X Window могат директно да използват TrueType шрифтове. При всички обаче за работа с TrueType шрифтове може да се използва специален шрифтов сървър, като например xfstt, xfsft и xfs-ttf. Повечето съвременни дистрибуции на Линукс поддържат работа с TryeType шрифтове или директно, или посредством шрифтов сървър, така че не е необходимо да компилирате такъв сървър самостоятелно. Прочетете в документацията му как се използва.

Шрифтовият сървър xfstt има следната особенност: вместо стандартното XLFD наименование на кодирането CP1251 (т.е. microsoft-cp1251) използва наименованието windows-1251. А шрифтовите сървъри xfsft и xfs-ttf нямат вградена поддръжка на CP1251. Проблемът обаче се решава лесно: направете файл encodings.dir в каталога със шрифтове със следното съдържание:

1
microsoft-cp1251 /usr/X11R6/lib/X11/fonts/encodings/microsoft-cp1251.enc.gz
Системата X Window може да използва и трети вид контурни шрифтове -- Speedo. Тези шрифтове могат да се растеризират доста бързо и затова навремето се използваха от немалко програми за ДОС, напр. Word Perfect 6.0. Днес този вид шрифтове вече не е популярен.

Справяне с "упорити" програми

Някои програми за X Window "не желаят" да използват шрифтове с кирилица. Затова командата xcyr създава шрифтове с имена hylvetica, tymes, cyrier, fyxed и lucyda, които са идентични с кирилските шрифтове с имена съотв. helvetica, times, courier, fixed и lucida, но като тяхна кодова таблица е посочена ISO-8859-1 вместо Microsoft-CP1251. Опитайте да настроите такива програми да използват напр. hylvetica вместо helvetica.

Има и по-генерално решение: оставате активни само шрифтовете с кирилица, така че програмите по принуда да ги използват. За целта се използва командата "cyrhack on". Може да активирате отново шрифтовете с латиница посредством командата "cyrhack off".

След изпълнението на командата set-bulgarian-env системата автоматично ще извиква по подходящ начин командите xcyr и cyrhack.

2.4 Локализация

Разбира се кирилизацията на работната среда необходимо условие за работа на български език. Но също така важно е и това системата да бъде локализирана. Локализацията дава възможност програмите да се съобразяват с особеностите на използваната кодова таблица (CP1251), говорения език (български), използваната парична единица (лев), националните правила за изписване на числа и дaти и др.

Файловете, които съдържат описанието на тези особености на българския език се намират в каталога /usr/share/locale и се наричат локали. Ако сте инсталирали bglinux както трябва, в този каталог вече би трябвало да има български локали. За съжаление обаче форматът им зависи от версията на системната библиотека libc. Локалите от пакета bglinux са предназначени за libc версия от 2.1.3 до 2.2.92. Повечето съвременни дистрибуции имат версия на libc в посочения диапазон. Ако имате по-нова версия на libc, то локалите от bglinux няма да работят. За щастие обаче по-новите версии на libc съдържат български локал за CP1251, той се нарича bg_BG. А локалите от bglinux имат имена bg_BG.CP1251, bg_BG.ISO8859-5, bg_BG.KOI8-R и bg_BG.KOI8-U -- различен локал за различните кодирания.

За да се активира даден локал, е необходимо на променливата LANG от обкръжението да се даде стойност името на локала. При правилно инсталиране на bglinux и използване на командата set-bulgarian-env това би трябвало да става автоматично.

Ако желаете, може сами да генерирате българските локали в каталога /usr/share/locale. Това може да бъде полезно ако имате версия на libc по-стара от 2.1.3 или пък не желаете да използвате локалът от новите версии на libc, защото локалът от bglinux е с по-нова версия. Влезте в каталога share/i18n/locales на bglinux. Там ще намерите файл bg_BG, от който може да се генерират бългаски локали за различните кодирания с помощта на командата localedef. За съжаление точната процедура отново зависи от версията на libc. При версии преди 2.1.3 опитайте да изпълните като root командата

localedef -i bg_BG -f CP1251 bg_BG.CP1251
Забележка: В тази команда трябва да зададете имената на файловете bg_BG и CP1251 с пълните им пътеки. Вместо CP1251 може да използвате напр. ISO-8859-5.

Командата localedef често преименува наименованието CP1251 на cp1251. Затова ако трябва, изпълнете допълнително командата

mv /usr/share/locale/bg_BG.cp1251 /usr/share/locale/bg_BG.CP1251

При по-новите версии на libc тази процедура няма да работи. Опитайте с добавяне на параметър

--repertoire-map=mnemonic.ds
при извикването на командата localedef.

За съжаление сегашните версии на X Window System не поддържат кодовата таблица CP1251. Това означава, че дори и да инсталираме и използваме шрифтове с CP1251, X Window System ще счита, че работим в някоя друга кодова таблица. В следствие на това след описаната локализация програмите, които поддържат локализация (напр. xterm), ще откажат да приемат кирилица от клавиатурата. За да се преодолее този ефект може да направим следната "делокализация" на X Window System: във файла /usr/X11R6/lib/X11/locale/locale.alias се добавя следния ред

bg_BG.CP1251 en_US.ISO8859-1
За удобство на потребителите в bglinux се съдържа версия на файла locale.alias, в който е добавен този и други подобни редове. В инструкциите за инсталация на bglinux включват замяна на системния файл locale.alias с файла на bglinux, така че вероятно няма нужда да се грижите за този файл.

2.5 Национализация

Под национализация се разбира това програмите да използван националния език (в случая български) в менютата, помощната информация, системните съобщения и др. За момента все още малко от програмите за Линукс имат българска национализация, но свободният им характер дава възможност да се заемем сами с национализацията без да чакаме благоволението на някоя чужда фирма.

Тъй като използването на чуждици е неприятно за неспециалистите, а пък понякога и добрите преводачи може да се затруднят с избягването на смехотворни калки като символична връзка и юзерска сметка, то реших, че ще е добре да имаме един примерен англо-български терминологичен речник, който да подпомогне стандартизираното национализиране на програмите и документацията към тях. Ще се радвам да приема всякакви бележки и предложения за подобряването на този речник. Може да го намерите на адрес http://lml.bas.bg/~anton/linux/rechnik.html.


Напред Назад Съдържание