Introducere
Sistemul de operare Linux este prezent de mult timp in Romania. Totusi,
deoarece a fost utilizat cu precadere de administratorii de sistem
care stiu foarte bine engleza, nu a existat un interes major in localizarea
Linux-ului. Procesul de localizare al unui sistem de operare si a
aplicatiilor lui prezinta mai multe aspecte. Cea mai la indemina activitate
este traducerea aplicatiilor, a mesajelor generate de aplicatii si
a documentatiilor. Un alt aspect este prezentarea informatiilor de
data, timp, separatori zecimali pentru numere, moneda curenta si altele,
in concordanta cu specificul tarii respective. Inainte de a atinge
scopurile prezentate mai inainte si pentru a face Linux-ul imediat
utilizabil pentru romani, trebuie sa putem scrie si afisa diacriticele
romanesti. Acesta este si scopul articolului de fata.
Fonturi romanesti la consola
Consola Linux reprezinta interfata cu utilizatorul in modul text. Din
punct de vedere al utilizatorului de Windows, ea ar reprezenta MS-DOS
mode. In cele mai multe cazuri este setata la 80 coloane x 25 linii,
dar exista si utilizatori care prefera configuratii mai exotice.
Exista doi pasi care trebuie indepliniti pentru a citi si scrie cu
caractere romanesti la consola: afisarea de fonturi romanesti si configurarea
tastaturii pentru limba romana. Toate aceste operatii sint executate
cu citeva utilitare ce se gasesc in pachetul console-tools. Pentru
cei interesati trebuie sa amintesc ca in acest pachet sint foarte
multe programe care pot realiza orice actiuni imaginabile relativ
la fonturi si tastatura: creare de fonturi, transfer de fonturi din
placa video in fisier si invers, setare tastatura etc. Desi in continuare
voi explica pasii necesari pentru configurarea manuala a fonturilor
si tastaturii, trebuie sa amintesc ca am creat un pachet de utilitare
romanian-tools care sint foarte usor de folosit de catre utilizatorii
incepatori. El se gaseste la
http://www.ro.kde.org/ si este
in format RPM.
Trebuie sa specific ca toate placile video lucreaza implicit cu setul
de caractere IBM, care contine pe linga caracterele semigrafice si
acele caractere utilizate de tarile din vestul Europei. El mai este
denumit si ISO-8859-1. Modificarea setului de caractere nu este posibila
decit incepind de la placi EGA. Aceasta inseamna ca placile grafice
foarte vechi de tipul MDA, Hercules, CGA si unele tipuri de EGA nu
vor putea schimba fontul pentru modul text. Din fericire nu cred ca
mai exista calculatoare care sa nu aiba macar o placa VGA. Pentru
cei curiosi trebuie sa explic ca fonturile de mod text pot fi schimbate
prin apeluri BIOS la placa video. Acest lucru il face si kernel-ul
de Linux.
Deoarece exista o multime limbi exista si multe seturi de caractere
definite de standardul ISO-8859. Pentru tarile din estul Europei este
definit setul de caractere ISO-8859-2. In diferite contexte acesta
mai este numit si Latin2 sau ISO-02. Acesta contine pe linga alte
caractere si diacriticele romanesti.
Fisierele cu seturi de caractere reprezinta imaginea binara a datelor
ce trebuie incarcate in generatorul de caractere al placii video.
La un sistem RedHat Linux ele se gasesc in directorul
/usr/lib/kbd/consolefonts.
Din cele peste 100 de fonturi prezente aici ne intereseaza numai cele
care incep cu lat2. Extensia lor este PSF si deoarece sint comprimate
cu gzip ca sa ocupe mai putin spatiu, extensia efectiva este .psf.gz.
Exista mai multe fisiere de fonturi Latin2, fiecare corespunzind unei
anumite rezolutii in modul text. Astfel, pentru o configuratie de
80 coloane x 34 linii este nevoie de un font mai mic decit cel standard.
Pentru setarea standard de 80x25 este nevoie de fontul lat2u-16.psf.gz.
Incarcarea lui in generatorul de caractere al placii video se face
cu comanda:
consolechars -f lat2u-16
Ei bine, daca ati primit mesajul de eroare:
set_kernel_font: Operation not permitted
atunci cu siguranta nu v-ati logat ca root sau ati executat aceasta
operatie din X Windows, de la o consola virtuala . In mod normal nu
trebuie sa primiti nici un mesaj dupa executia acestei comenzi. Cei
mai atenti vor observa o mica modificare a setului de caractere dupa
executia acestei comenzi. Schimbarea setului de caractere standard
cu cel ISO-8859-2 este valabila pentru orice consola text (pe care
le comutati cu combinatia de taste Alt-F1 pina la Alt-F6). De asemenea,
operatia nu este permisa daca sinteti logat in sistem prin telnet.
Scrierea in romana la consola
Pina in acest moment este posibil sa vedeti caracterele romanesti din
orice fisier care contine coduri ASCII corespunzatoarea diacriticelor
romanesti. Daca sinteti nerabdatori sa verificati, atunci porniti
Midnight Commander (executind comanda "mc") si deschideti in vizualizare
un program binar (de exemplu: /bin/cp) folosind tasta F3. Defilati
continutul si puteti observa pe linga alte caractere ciudate si diacriticele
romanesti.
Kernel-ul nu lucreaza in mod direct cu tastatura. Exista drivere care
translateaza codurile emise de tastatura in simboluri universale de
taste. Astfel, folosind tastaturi care emit coduri diferite, kernel-ul
va primi acelasi simbol ca cel inscris pe tastatura utilizatorului.
Singurul lucru care trebuie facut este sa spunem driverului de tastatura
ce mapare de tastatura sa foloseasca, adica asocierea dintre simbolul
de caracter si tasta fizica apasata. In pachetul console-tools exista
un numar imens de mapari de tastatura. Directorul de baza unde se
afla cele corespunzatoare calculatoarelor PC (care reprezinta majoritatea
la noi in tara) este /usr/lib/kbd/keymaps/i386. Majoritatea utilizatorilor
romani folosesc tastaturi US (engleza americana). Aranjamentul tastelor
este in stilul QWERTY, adica ordinea in care este aranjat primul rind
de sus de caractere, incepind de la stinga. Exista si tastaturi specific
romanesti a caror stil este QWERTZ. Aceasta mapare mai este numita
neoficial si Microsoft, desi singura legatura cu aceasta firma este
ca acest format este utilizat in general de utilizatorii romani de
Windows. Diacriticele sint mapate astfel:
sh -> ;
tz -> '
a~ -> [
i^ -> ]
a^ ->
Majusculele se obtin folosind tasta SHIFT.
De asemenea, multe din caracterele
de punctuatie au alte pozitii fata de o tastatura US. In plus, tastele
Y si Z au pozitiile schimbate intre ele. Daca aveti o asemenea tastatura
este destul de usor sa folositi o mapare de tastatura romaneasca standardizata
de ISO si care este prezenta si in Windows 9x. Din pacate cel putin
distributiile de Linux Red Hat nu au o mapare romanesca corespunzatoare
cu cea din Windows. De aceea, am creat un mic program care schimba
in acelasi timp si fontul de la consola si maparea de tastatura. El
se gaseste in pachetul romanian-tools si nu trebuie decit sa executati
kbdroms. In acest fel nu va mai fi nevoie sa va cumparati o tastatura
US.
Am lasat la urma folosirea tastaturilor US
deoarece este cea mai importanta.
Practic, aproape toate tastaturile din Romania sint cu mapare US.
Multi utilizatori care au facut tehnoredactare in Windows stiu cosmarul
comutarii maparii de tastatura EN si RO cu Ctrl-Shift, de fiecare
data cind trebuiau scrise diacritice sau semne de punctuatie. "Profesionistii"
invatau pe de rost pozitiile si scriau pe orbeste direct cu maparea
romaneasca.
Foarte putini stiu ca la maparea de tastatura romaneasca tasta ALT
din dreapta se numeste AltGr. Ea este utilizata la obtinerea celui
de-al treilea caracter asociat unei taste. In cazul tastaturii US
vom folosi tasta ALT din dreapta pe post de AltGr. La Linux Red Hat
exista doua mapari de tastatura romanesti (care de fapt sint identice).
Ele se gasesc in directorul /usr/lib/kbd/keymaps/i1386/qwerty si se
numesc ro.kmap.gz si ro.map.gz. Singurul lucru de obiectat este maparea
caracterului "a", care corespunde accentului grav (`), la stinga
tastei (1). La ora actuala cea mai utilizata mapare este urmatoarea:
sh -> AltGr + s
tz -> AltGr + t
i^ -> AltGr + i
a~ -> AltGr + a
a^ -> AltGr + q
Majusculele se obtin in combinatie cu tasta SHIFT. De exemplu: A ->
Shift+AltGr+a. Aveti de ales intre trei variante: 1) sa utilizati
maparea de tastatura implicita cu "a" mapat pe tasta "accent grav";
2) sa modificati fisierul ro.map.gz; 3) sa utilizati programul kbdcro
din pachetul romanian-tools aflat pe CD-ul revistei "Chip" din februarie
2000. Pentru cei care nu au obtinut revista "Chip", prezint mai
jos o posibilitate de modificare a fisierului ro.map.gz.
Logati-va ca root si intrati in directorul cu mapari de tastatura:
cd /usr/lib/kbd/keymaps/i1386/qwerty
cp ro.map.gz ro.map.gz.old
cp ro.kmap.gz ro.kmap.gz.old
gunzip ro.map.gz
A doua si a treia comanda au fost pentru a realiza o copii de rezerva
pentru fisierele originale, iar ultima de a decomprima fisierul de
mapare comprimat cu gzip. Acum deschideti in editorul preferat fisierul
ro.map si editati ultima linie care arata cam asa:
altgr keycode 41 = acircumflex
Stergeti aceasta linie si scrieti urmatoarele doua linii:
altgr keycode 16 = acircumflex
shift altgr keycode 16 = Acircumflex
Salvati fisierul, comprimati-l cu gzip si actualizati si fisierul ro.kmap:
gzip ro.map
cp -f ro.map.gz ro.kmap.gz
si treaba este gata. Acum puteti incarca maparea de tastatura romaneasca
cu comanda:
loadkeys ro
Observatii:
- In pachetul romanian-tools mai exista un program care sa comute de
la maparea si fontul romanesc la situatia normala, adica setul de
caractere implicit si maparea US.
- Este posibil pentru unele placi video, in anumite situatii de comutare
de la modul grafic (X Windows) la modul text (consola text) fontul
romanesc se "ameteste" si caracterele diacritice si cele semigrafice
vor arata ciudat. Este nevoie sa rulati kbdcro sau kbdcroms ca sa
remediati situatia. Maparea de tastatura nu este afectata de aceasta
eroare.
- Inainte de a incerca diferite rezolutii text mari notati urmatoarea
comanda pe care o puteti da pe orbeste in caz ca ecranul devine
negru sau fonturile arata a caractere "chinezesti": consolechars --default-font
Instalarea fonturilor in X Windows
Configurarea fonturilor pentru interfata grafica X Window este mult
mai eleganta. Incepind cu Red Hat 6.0, fonturile nu mai sint randate
de server-ul X. In schimb este folosit un program care se numeste
server de fonturi si asta si face: ofera fonturi oricarui server X
care doreste.
In acest fel, daca aveti mai multe calculatoare in retea,
este posibil sa folositi un singur server de fonturi si/sau sa partajati
fonturi cu colegii din retea. Programul care se ocupa de acest lucru
se numeste xfs si este executat automat la pornirea sistemului. Fisierul
lui de configurare este /etc/X11/fs/config. Continutul acestuia este
text si foarte intuitiv. De asemenea, pina la lansarea XFree86-4.0
va recomand sa instalati si xfstt ca un al doilea server de fonturi.
Scopul lui este de a randa fonturi TrueType, adica fonturile scalabile
de Windows. Pot fi folosite cu succes o multime de fonturi, iar aspectul
grafic este exceptional. Nu uitati ca in general fonturile sint licentiate.
Oricum, pe Internet sint o multime de fonturi TrueType gratuite.
Exista doua tipuri de fonturi pentru sistemul X: nescalabile si scalabile.
Cele nescalabile sint utilizate la afisarea textelor in meniuri, casute
de mesaje etc, iar cele scalabile (sau vectoriale) sint folosite in
general de aplicatii grafice. Fonturile scalabile de X sint cele Type1.
Pentru instalare urmati instructiunile de mai jos.
Logati-va ca root si verificati daca nu cumva aveti deja instalate
fonturile ISO-8859-2:
rpm -qa | grep "XFree86-ISO8859-2"
Daca aceasta comanda nu returneaza nici un rezultat atunci trebuie
sa va instalati fonturile. Mai intii montati CD-ul cu Linux si schimbati
directorul astfel incit sa va aflati in directorul pachetelor RPM.
Executati urmatoarea comanda:
rpm -i XFree86-ISO8859-2-*
Aceasta comanda va instala urmatoarele pachete (exemplu pentru RedHat
6.1):
XFree86-ISO8859-2-1.0-9
XFree86-ISO8859-2-100dpi-fonts-1.0-9
XFree86-ISO8859-2-75dpi-fonts-1.0-9
XFree86-ISO8859-2-Type1-fonts-1.0-9
Primul pachet contine fonturile fixe folosite in programe ca xterm,
al doilea si al treilea pachet contin fonturi cu dimensiuni standard
pentru rezolutiile de 75dpi si 100dpi, iar ultimul pachet contine
fonturile scalabile de care vorbeam inainte.
Specificarea numelui unui font in sistemul X Windows este foarte complexa.
Cere din partea utilizatorului sa cunoasca multe amanunte. Pe de alta
parte, acest lucru permite indicarea cu precizie a numerosi parametrii.
Doi din acesti parametrii sint registry si encoding. Pentru limba
romana ei sint ISO8859 si respectiv 2. Cind o aplicatie cere fontul
Helvetica fara sa precizeze explicit registry-ul si encoding-ul, xfs
va genera primul font Helvetica gasit in lista lui. Am zis primul,
deoarece sint doua fonturi Helvetica, corespunzind codarilor ISO8859-1
si ISO8859-2. Din cauza modului implicit de configurare a server-ului
de fonturi intotdeauna se foloseste codarea vest-europeana ISO8859-1,
astfel incit diacriticele "t", "s" si "a" nu vor arata cum ne
asteptam. In continuare voi prezenta modalitatea de corectare a acestei
deficiente.
Server-ul de fonturi xfs pastreaza informatiile de configurare
in /etc/X11/fs/config.
catalogue = /usr/share/fonts/ISO8859-2/misc,
/usr/share/fonts/ISO8859-2/100dpi,
/usr/share/fonts/ISO8859-2/75dpi,
/usr/share/fonts/ISO8859-2/Type1,
/usr/X11R6/lib/X11/fonts/75dpi,
/usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled,
/usr/X11R6/lib/X11/fonts/misc,
/usr/X11R6/lib/X11/fonts/Type1,
/usr/X11R6/lib/X11/fonts/Speedo,
/usr/share/fonts/ISO8859-2/misc,
/usr/share/fonts/ISO8859-2/100dpi,
/usr/share/fonts/ISO8859-2/75dpi,
/usr/share/fonts/ISO8859-2/Type1
Liniile de mai sus arata o parte a fisierului de configurare, asa cum
ar trebui sa fie pentru utilizatorii romani. Logati-va ca root si
editati fisierul de configurare. Daca xfs este in executie (ceea ce
este aproape sigur daca nu cumva l-ati oprit intentionat) atunci executati
comanda:
killall -HUP xfs
pentru a-l obliga sa-si reciteasca fisierul de configurare. Este de
preferat sa aveti X Windows oprit deoarece sint situatii in care se
blocheaza la reconfigurarea din mers a fonturilor.
Configurarea server-ului de fonturi TrueType xfstt este mult mai simpla.
Trebuie sa modificati doar scriptul /etc/rc.d/init.d/xfstt. In partea
de inceput a fisierului exista initializarea variabilei ENCODING care
va trebui sa fie in cazul nostru:
ENCODING=iso8859-1,iso8859-2
Pentru a lua in considerare noile setari, xfstt trebuie restartat executind
comanda:
./etc/rc.d/init.d/xfstt restart
Tastatura romaneasca pentru X
Acest pas trebuie realizat daca nu folositi un mediu grafic integrat
precum KDE. Acesta are un utilitar propriu de configurare a maparii
de tastatura in X Windows. In caz ca folositi XForce, ICEWM, FVWM
trebuie sa executati pasii de mai jos.
Trebuie cunoscut ca sistemul X Windows foloseste propriul mecanism
de mapare a tastaturii si utilitarul care realizeaza acest lucru este
xmodmap. In cazul Red Hat Linux, scriptul de initializare
/etc/X11/xinit/xinitrc
cauta un fisier .Xmodmap in directorul dumneavoastra personal si daca
exista incarca maparea de taste specificata prin executia programului
xmodmap. Desi au fost publicate numeroase mapari romanesti pentru
tastatura, nici una nu a ajuns nici macar in Red Hat 6.1. In mod normal
maparile de tastatura sint in directorul /usr/share/xmodmap/. Pentru
cei care nu au acces la un fisier xmodmap.ro iata alaturat continutul
esential al lui.
! xmodmap.ro
! Reprelucrat din xmodmap.us
! Claudiu Costin <claudiuc@geocities.com> 29 noiembrie 1999
clear Mod1
clear Mod2
keycode 24 = q Q acircumflex Acircumflex
keycode 28 = t T thorn Thorn
keycode 31 = i I icircumflex Icircumflex
keycode 37 = Control_L
keycode 38 = a A atilde Atilde
keycode 39 = s S 0xBA 0xAA
keycode 50 = Shift_L
keycode 51 = backslash bar
keycode 62 = Shift_R
keycode 64 = Alt_L Meta_L
keycode 109 = Control_R
keycode 112 = KP_Divide
keycode 116 = Mode_switch
keycode 117 = Multi_key
add Mod1 = Alt_L
add Mod2 = Mode_switch
Creati un fisier xmodmap.ro in directorul dumneavoastra personal folosind
modelul dat. Maparea de tastatura poate fi modificata din mers, fara
sa fie nevoie sa restartati X Windows. Deschideti o consola xterm
si executati:
cd ~
xmodmap xmodmap.ro
Daca aveti acces la Internet puteti gasi o mapare romaneasca completa
la http://www.lug.ro, site-ul oficial Romanian Linux User Group.
Concluzii
Linuxul ofera o mare flexibilitate si complexitate de configurare pentru
tastatura si fonturi. Majoritatea distribuitorilor de Linux au creat
utilitare care sa ascunda detaliile si sa ofere o paleta standard
de optiuni. Pentru cei interesati in obtinerea maximului de control
asupra sistemului le recomand sa citeasca paginile de manual ale utilitarelor
din pachetul console-tools si documentul "The Linux keyboard and
console HOWTO", aflat pe CD-ul distributiilor Linux.
Resurse
|