Slovak-HOWTO

verzia 4 (Blanka)

16. febru�r 2002

Tento dokument poskytuje inform�cie t�kaj�ce sa problematiky miestnych nastaven� v prostred� operačn�ch syst�mov GNU/Linux s ohľadom na potreby slovensk�ho už�vateľa.


1. �vodn� inform�cie

1.1. Licencia

�no, m�žete č�tať tento dokument, a to aj na komerčn� učely!

Autori nenes� zodpovednosť za materi�lnu či psychick� ujmu sp�soben� čitateľovi, jeho rodinn�m pr�slušn�kom, dom�cim a hospod�rskym zvierat�m, pr�padne poč�tačov�mu zariadeniu.

Toto je "free" dokument --- m�žete ho š�riť a/alebo modifikovať v s�lade s podmienkami licencie GNU Free Documentation Licence, ktorej znenie n�jdete na adrese http://www.gnu.org/licenses/fdl.html.

Autorom p�vodn�ho Slovak-HOWTO je J�n Ondrej (SAL). Tento dokument z neho obsahuje: n�zov a n�vody pre Joe, MC a Sambu. Všetko bolo ukradnut� so s�hlasom autora.


1.2. Aktu�lna verzia a prispievanie

Ak n�jdete v tomto s�bore niečo, čo je nezl�čiteľn� s vašim linuxov�m presvedčen�m, nap�šte najsk�r do diskusie linux, potom sk-i18n, dajte pr�spevok na www.linux.sk a poohov�rajte ma na #sklug. V pr�pade, že v�s to neprejde, skontrolujte, či m�te aktu�lnu verziu a, samozrejme, až nakoniec, dajte mi vedieť. Adresy s�:

Na t�to adresu sa tiež obracajte, ak m�te niečo, čo by nemalo ch�bať v Slovak-HOWTO.

Nad�cia Pom�ž a skonaj prispela na dop�sanie časti o kl�vesnici v iXoch sama sebe čiastkou 500�000,-�Sk, v telev�zii Pom�ž a skonaj i v rovnomennom časopise boli zverejnen� inzer�ty, politick� strana PAS nekompromisne trv� na kompromise a všetci pij� miner�lku Pom�ž a skonaj. Tigre, nosorožce a l�čne kon�ky boli pokrsten�, a predsa sa s kapitolou o kl�vesnici v iXoch nič nedeje. Mimochodom, sme najč�tanejšie Slovak-HOWTO na svete!

Pri prispievan� sa sk�ste riadiť nasledovn�mi pravidlami:

  • Pre t�ch, ktor� maj� v�žny z�ujem podieľať sa na p�san� Slovak-HOWTO, je možn� CVS pr�stup priamo k zdrojov�m k�dom dokumentu na serveri cvs.linuxdoc.org v adres�ri /cvsroot/LDP/howto/docbook/Slovak-HOWTO/. Bližšie inform�cie o z�skan� CVS konta a webovskom rozhran� k CVS serveru n�jdete v LDP Autor Guide.

  • Opravy robte vždy vo form�te SGML (DTD DocBook, verzia 4.0), ktor� je prim�rnym form�tom pri tvorbe tohto dokumentu. Je tiež možn� posielať čist� text. Pr�spevky p�šte, pokiaľ možno, s diakritikou v norme ISO-8859-2.

  • Ak je to niečo v�čšie, dajte mi najsk�r vedieť, čo chyst�te, pretože je možn�, že už na tom niekto mak� a teda buď na to zabudnete, alebo to sk�site dorobiť s danou osobou. (Vzhľadom na to, že zatiaľ sa do tohto dokumentu dostalo asi 20 riadkov cudzieho textu, zd� sa mi predch�dzaj�ca veta maxim�lne smiešna. Ha-ha, zasmial som sa...)

  • Vaše meno a adresa bud� automaticky zverejnen� spolu s vašim pr�spevkom. Ak si to nežel�te, mus�te o to v�slovne požiadať. Takisto, autor pr�spevku už jeho zaslan�m implicitne s�hlas� s aplik�ciou licencie tohto dokumentu na časť, ktorej je autorom.

  • V Czech-HOWTO sa hovor�: "Když už někdo podobn� dokument čte, děl� to z nutnosti a ne pro sv� pobaven�." Mus�me však zobrať do �vahy, že v Čech�ch je vyššia životn� �roveň a oni až toľko srandy nepotrebuj�...


1.3. Osoby a obsadenie

Men� autorov n�vodov na lokaliz�ciu konkr�tnych aplik�ci� sa nach�dzaj� priamo v kapitole Poslovenčovanie konkr�tnych aplik�ci�, pr�padne Fintičky so slovenčinou.

  • J�n 'judas' Tomka -- Zodpovedn� ved�ci.

  • Ľubom�r 'salo' Sedl�čik -- ksh/csh/tcsh, grammar bugfixes.


2. Miestne nastavenia

2.1. Princ�py miestnych nastaven�

Podpora miestnych nastaven� je dnes mimoriadne d�ležit�m faktorom, ktor� charakterizuje jednotliv� operačn� syst�my. Časy, keď boli ľudia štastn�, že to niečo p�še, s� nen�vratne preč a použ�vatelia vyžaduj� podporu svojich miestnych nastaven�. V GNU syst�moch je t�to podpora implementovan� priamo do štandardnej knižnice jazyka C -- GNU libc. T�to podpora je navrhnut� tak, aby zohľadňovala všetky požiadavky kladen� na nastavenia pre ak�koľvek krajinu a ak�koľvek jazyk.


2.1.1. Ciele a prostriedky

R�zne krajiny a kult�ry maj� odlišn� pravidl� komunik�cie. Tieto pravidl� m�žu byť mal�ho rozsahu, napr. form�t d�tumu a času, až po veľmi koplexn� ako je jazyk, ktor�m hovoria.

Internacionaliz�cia softv�ru znamen� programovať ho tak, aby bol schopn� pracovať s použivateľov�mi miestnymi nastaveniami. V ISO C pracuje internacionaliz�cia v zmysle locales. Každ� locale (miestne nastavenia) špecifikuje skupinu pravidiel, jedno pravidlo pre každ� učel. Už�vateľ si zvol� skupinu pravidiel špecifikovan�m locale (pomocou syst�mov�ch premenn�ch).

Všetky programy dedia nastaven� locale v r�mci ich prostredia. Pod podmienkou, že programy s� nap�san� tak, že akceptuj� nastaven� locales, m�žu sa riadiť pravidlami, ktor� uprednostňuje použ�vateľ.


2.1.2. Kateg�rie a ich funkcie

T�to časť popisuje jednotliv� premenn�, ktor� ovplyvňuj� miestne nastavenia a ktor�mi sa riadia aj funkcie knižnice GNU libc.

Nastavenie premennej prostredia sa rob� pomocou pr�kazu shellu

bash$ export LC_PREMENNA=sk

tcsh$ setenv LC_PREMENNA sk
        

LC_PREMENNA je jedna z nasleduj�cich:

  • LC_COLLATE --- Triedenie reťazcov. Nastaven�m tejto premennej možno prin�tiť aplik�cie, napr. sort, ls a in�, aby pri porovn�van� reťazcov brali do �vahy miestne rozloženie jednotliv�ch p�smen v abecede. Slovenčina m� napr�klad hneď niekoľko znakov, ktor� by pri trieden� podľa č�selnej hodnoty znaku sp�sobovali probl�my. Slovensk� nastavenia triedenia povedia funkciam strcoll a strxfrm, že napr�klad ch je jedno p�smeno a nasleduje hneď za h a nie za c, že širok� nasleduje za dlh�m a to zase za obyčajn�m a. Sk�ste si to na pr�kaze sort. Zadajte p�smen� cc ch hh, potom zmeňte LC_COLLATE pr�kazom

    bash$ export LC_COLLATE=sk
    
    tcsh$ setenv LC_COLLATE sk
                  
    

    Sk�ste to so sort znovu a porovnajte v�sledok...

  • LC_CTYPE --- Klasifik�cia a prevod znakov, multibyte. Spr�vne nastavenie tejto premennej je nutn� pre korektn� rozlišovanie znakov abecedy jednotliv�ch jazykov, určenie č�slic, tzv. bielych znakov, prevod mal�ch p�smen na veľk�, atď. Najvhodnejšie je t�to premenn� nenastavovať a t�m umožniť, aby bola jej hodnota prebrat� od premenn�ch LC_ALL alebo LANG (viď ďalej). Ak ale nechcete použ�vať slovensk� nastavenia, len mať spr�vne zobrazen� slovensk� fonty a funkčn� slovensk� kl�vesnicu na konzole aj pod iXami, nastavte iba t�to premenn�.

    Varovanie

    Vždy si buďte stopercentne ist�, že m�te t�to premenn� nastaven� (buď cez LC_ALL, LANG alebo priamo), lebo inak nem� zmysel č�tať ďalej! Ono "klasifik�cia a prevod znakov" neznie nejako l�kavo, ale vedzte, že je to sakramentsky d�ležit� pre život slovensk�ch p�smeniek vo vašom Linuxe!

  • LC_MONETARY, LC_NUMERIC --- Form�t peňažn�ch a č�seln�ch hodn�t. Umožňuje meniť skupinu nastaven�, ktor� sa použij� pri form�tovan� peňažn�ch hodn�t alebo všetk�ch ostatn�ch č�seln�ch hodn�t. S� to desatinn� čiarka, oddeľovač tis�cov, zoskupovanie č�slic, znamienka pre kladn� a zaporn� hodnoty, atď.

  • LC_TIME --- Form�tovanie d�tumu a času. Nastavenia oddeľovačov medzi hodinami, min�tami a sekundami, n�zvy dn�, poradie rok, mesiac a deň v d�tume, ...

  • LC_MESSAGES --- V�ber jazyka, použit�ho už�vateľsk�m rozhran�m na preklad hl�šok programov. Toto je presne t� premenn�, ktor� prin�ti aplik�cie hovoriť po slovensky. Viď ďalšie kapitoly.

S prekladom hl�sen� programov, hlavne s umiestnen�m s�borov s preložen�mi reťazcami, s�vis� premenn� NLSPATH. Mala by obsahovať dvojbodkami oddelen� zoznam adres�rov, v ktor�ch sa bud� hľadať .mo s�bory pre miestne nastavenia dan� premennou LC_MESSAGES. Premenn� NLSPATH je však potrebn� nastavovať len vo v�nimočn�ch pr�padoch, pretože aplik�cie hľadaj� preklady svojich hl�sen� v štandardn�ch adres�roch pre tieto s�bory.

Okrem t�chto premenn�ch bolo implementovan�ch niekoľko ďalš�ch, ktor� zatiaľ nie s� zdokumentovan� (The GNU C Library Reference Manual). Ich v�znam je zrejm� z n�zvu, takže uvediem aj svoju dedukciu.

  • LC_PAPER --- Form�t papiera. V našich zemepisn�ch š�rkach sa napr�klad použ�va form�t A4, v Amerike je to Letter, atď. Pozor, t�to premenn� neobsahuje priamo n�zov form�tu, ale (tak, ako všetky LC_ premenn�), skratku miestneho nastavenia, teda u n�s to bude sk. Ak by sme chceli použ�vať form�t Letter, museli by sme t�to premenn� nastaviť na k�d miestneho nastavenia niektorej z kraj�n, ktor� použ�va tak�to form�t, napr�klad us. V tomto pr�pade je nutn� nainštalovať bal�k s miestnymi nastaveniami pre t�to krajinu (locales-us).

  • LC_NAME --- Form�t mena a priezviska. U n�s m� každ� dve men�, p�šu sa v porad� meno, priezvisko. V Rusku maj� zase tri men� v porad� meno, otcovo-meno, priezvisko. V Maďarsku maj� dve men� tak ako u n�s, ale p�šu sa v opačnom porad�. O tom je t�to premenn�. Asi...

  • LC_ADDRESS --- Sp�sob z�pisu adresy. Poradie ulice a popisn�ho č�sla domu, ZIP k�d, PSČ apod.

  • LC_TELEPHONE --- Form�t telef�nnych a faxov�ch č�sel. Určuje zoskupovanie č�slic, ich oddelovanie, počet č�sel predvoľby, ...

  • LC_MEASUREMENT --- Miery. Jednotky hmotnosti, objemu, teploty a dĺžky, použ�van� v tej ktorej krajine. Program nap�san� v USA bude pravdepodobne poč�tať s gal�nmi vody, ale ak je spr�vne nap�san�, s premennou LC_MEASUREMENT nastavenou na "sk" bude zobrazovať litre v spr�vnom pomere. To ist� plat� napr�klad pre prevod teploty vo Fahrenheitovej stupnici na stupne Celsia.

  • LC_IDENTIFICATION --- Az ap�d, tak toto neviem. Rodn� č�slo? Č�slo soci�lneho poistenia? Č�slo top�nok?


2.1.3. Ďalšie premenn�

  • LC_ALL --- Ak je t�to premenn� nastaven�, použije sa jej hodnota pre všetky vyššie spomenut� skupiny locales, bez ohľadu na hodnotu pr�slušn�ch premenn�ch.

  • LANG --- Hodnota tejto premennej sa použije pre tie skupiny locales, ktor� nemaj� pr�slušn� premenn� nastaven�.

  • LANGUAGE --- Alternat�vne miestne nastavenia. T�to premenn� m�že obsahovať usporiadan� zoznam k�dov miestnych nastaven� oddelen�ch dvojbodkami. S�bory s prekladmi hl�šok programov sa bud� hľadať v porad�, v akom s� určen� v tomto zozname. Ak sa nepodar� n�jsť s�bor s preložen�mi hl�škami programu v jednom jazyku, použije sa s�bor pre nasleduj�ci jazyk v zozname LANGUAGE. Navyše, ak sa s�bor pre prv� jazyk aj n�jde, ale niektor� reťazec z neho nie je preložen�, nepoužije sa p�vodn� (anglick�), ale najsk�r sa pok�si n�jsť preklad dan�ho reťazca v s�bore pre ďalš� jazyk v zozname LANGUAGE. To je v�hodn� pre ľud�, ktor� okrem svojho jazyka ovl�daj� nejak� in� lepšie ako angličtinu, v ktorej s� zvyčajne programy origin�lne nap�san�. Napr�klad Slov�k by mohol mať nastaven� LANGUAGE="sk:cz" a Szolv�k z Kom�rom zase LANGUAGE="hu:sk".

    V�straha

    Premenn� LANGUAGE ovplyvňuje len premenn� LC_MESSAGES! Pre spr�vnu funkciu je nutn� nastaviť aj ostatn� premenn� (minim�lne LC_CTYPE).

  • LINGUAS --- T�to premenn� nem� špeci�lny v�znam z hľadiska GNU libc, ale zvykne sa použ�vať pri inštal�cii programov (zo zdroj�kov). Medzerami oddelen� zoznam k�dov miestnych nastaven� určuje jazyky, pre ktor� si už�vateľ žel� inštalovať preklady reťazcov aplik�cie. Pr�klad:

    bash$ export LINGUAS="sk cz"
    bash$ ./configure
    bash$ make install
                
    

    Tieto pr�kazy skompiluj� a nainštaluj� aplik�ciu s podporou slovenčiny a češtiny. Inštalačn� skripty obvykle tiež kontroluj� obsah premenn�ch LANG a LC_ALL, tieto ale m�žu obsahovať len jeden k�d miestnych nastaven�.

  • RPM_INSTALL_LANG --- Častejšie ako zo zdrojov�ho k�du sa aplik�cie inštaluj� z r�znych bal�kov (rpm, deb, ...). Kv�li šetreniu miestom na disku (a logike -- m�lokto ovl�da tridsať reč�) je v RPM4 možn� určiť jazyk, ktor�ho preložen� hl�šky sa bud� inštalovať. Preto odpor�čam do s�boru .bash_profile (.login) už�vateľa, ktor� inštaluje bal�ky (root), vložiť nasledovn� riadok:

    bash$ export RPM_INSTALL_LANG=sk
    
    tcsh$ setenv RPM_INSTALL_LANG "sk"
                
    

    Ak sa v�m nebodaj stane tak� vec, že nainštalujete cel� operačn� syst�m a až potom sa dozviete o tejto premennej (tak, ako sa to stalo aj mne), sk�ste skript uveden� v časti RPM4.


2.1.4. Priorita premenn�ch

Miestne nastavenia sa určuj� zo spomenut�ch premenn�ch, pričom tieto sa vyhodnocuj� v tomto porad�:

LANGUAGE --- ovplyvňuje len LC_MESSAGES
LC_ALL
LC_*
LANG

To znamen� asi toľko, že keď raz nastav�te LC_ALL, jednotliv� premenn� LC_* sa už neber� do �vahy. Na druhej strane, ak m�te napr�klad nastaven� len niektor� z LC_*, ostatn� sa nastavia na hodnotu premennej LANG.


2.1.5. K�dy miestnych nastaven�

Premenn�, ktor� ovplyvňuj� miestne nastavenia, sa napĺňaj� k�dmi miestnych nastaven�. K�dy miestnych nastaven� s� reťazce, ktor�ch form�t sa riadi niekoľk�mi pravidlami. Všeobecn� tvar je:

jazyk[_�zemie[.k�dovanie]][@modifik�tor]
        

jazyk je napr. sk pre slovenčinu, cs pre češtinu, hu pre maďarčinu, �zemie je SK pre Slovensko, CZ pre Česk� republiku, HU pre Maďarsko, k�dovanie je ISO-8859-2 pre všetky stredoeur�pske jazyky (je možne použiť niekoľko form�tov na zadanie k�dovania) a modifik�tor služi na povolenie alebo zak�zanie niektor�ch funkci�. Tie s� dan� v defin�ciach miestnych nastaven�. Napr�klad, pre Veľk� Brit�niu je modifik�torom reťazec euro a pri jeho použit� sa ako peňažn� mena bude použ�vať euro namiesto libry. To znamen�, že sa mus� použiť k�dovanie iso-8859-15, ktor� definuje znaky euro a cent.

Pr�klady k�dov miestnych nastaven� (každ� z t�chto reťazcov je možn� priradiť premenn�m miestnych nastaven�, ale najčastejšie sa použ�vaj� len dvojp�smenkov� skratky v poslednom stĺpci):

Tabuľka 1. Pr�klady k�dov miestnych nastaven�

sk_SK.ISO-8859-2 sk_SK sk
cs_CZ.ISO-8859-2 cs_CZ@-ch cs@-ch cs
en_GB.iso8859 en_GB en@euro en
ja_JP.ujis ja_JP.EUC ja_JP ja

Nemali by sme zabudn�ť na dve štandardn� locales, ktor� sa použij�, ak nie s� syst�mov� premenn� nastaven� a programy ich použ�vaj� do doby, k�m sa inicializuje lokaliz�cia. Tvrd�m, že sa použij� obe, pretože moment�lne s� totožn�, ale v bud�cnosti sa m�žu v tejto oblasti štandardy ISO C a POSIX odlišovať a potom to bude z�ležať na konfigur�cii syst�mu.

C --- nastavenia podľa štandardu ISO C.
POSIX --- nastavenia podľa štandardu POSIX. V s�časnosti je to alias pre nastavenia C.

2.2. Miestne nastavenia pre Slovensko

V prvom rade treba nainštalovať bal�k s podporou miestnych nastaven�, ktor� m� n�zov locales a tiež bal�k s podporou priamo pre Slovensko --- locales-sk. Ak m�te z�ujem použ�vať aj podporu pre nejak� in� jazyk (na našom �zem� je aktu�lna najm� čeština a maďarčina), mus�te tiež nainštalovať bal�ky pre tieto jazyky.

V druhom rade si mus�te nainštalovať bal�ky s podporou miestnych nastaven� a priamo slovenčiny (s� to locales a locales-sk).

V ďalšom kroku si nezabudnite nainštalovať bal�ky locales a locales-sk. Takisto, pre každ� jazyk, ktor� sa chyst�te použ�vať, si nainštalujte bal�k s podporou miestnych nastaven�.

V pr�pade probl�mov s miestnymi nastaveniami sa držte predch�dzaj�cich troch krokov.


2.2.1. S�bory s miestnymi nastaveniami

Prejdime sa teraz trochu po našich adres�roch. Prv� navšt�vime /usr/share/locale/sk. Na prv� pohľad vidno, že adres�r a s�bory v tomto adres�ri maj� men� totožn� s premenn�mi, pomocou ktor�ch sa nastavuj� jednotliv� kateg�rie miestnych nastaven�. Je to preto, lebo pr�ve z t�chto s�borov sa nač�taj� nastavenia, keď je dan� premenn� nastaven� na hodnotu sk. Okrem nich tu m�že byť ešte s�bor charset, ktor� obsahuje len jeden riadok s reťazcom iso-8859-2. Ten hovor�, ak� k�dovanie znakov sa m� použiť pre dan� miestne nastavenia.

Všetky s�bory v tomto adres�ri s� bin�rne d�ta a adres�r LC_MESSAGES obsahuje s�bory, ktor�ch men� s� totožn� s n�zvami niektor�ch bal�kov nainštalovan�ch na vašom syst�me, s pr�ponou mo. S� to preklady reťazcov z jednotliv�ch aplik�ci�. O nich si povieme nesk�r. Teraz by sme mohli zistiť, čo vlastne obsahuj� s�bory LC_*.

Presuňme sa do adres�ra /usr/share/i18n/. Tu, v textovom s�bore sk_SK v podadres�ri locales/ sa konečne nach�dzaj� slovensk� miestne nastavenia v čitateľnej (a editovateľnej) forme. S�bory v tomto adres�ri maj� presne dan� štrukt�ru, ktor� je pop�san� v manu�lovej str�nke locale(5). Pre bežn�ho použ�vateľa nem� zmysel meniť nastavenia v tomto s�bore, keďže ide o štandardn� nastavenia, ktor� sa použ�vaj� na celom Slovensku. Ale, proti Gustovi žiadna putika! Ak sa teda rozhodnete zmeniť niečo v tomto s�bore, mus�te aktualizovať s�bory v prvom spom�nanom adres�ri /usr/share/locales/sk/ pr�kazom, ktor� �daje v s�bore sk_SK skompiluje a ulož� do s�borov LC_COLLATE, LC_CTYPE, ...

sh$ localedef -i sk_SK -f ISO-8859-2 sk_SK
        

V podadres�ri /usr/share/i18n/charmaps/ sa nach�dzaj� s�bory s popismi jednotliv�ch k�dovani znakov. Pre Slovensko je aktu�lny ISO-8859-2 (čo je aj obsah spom�naneho s�boru charset).

V adres�ri /usr/share/locale/ sa nach�dza s�bor locale.alias, ktor� definuje tzv. aliasy pre k�dy miestnych nastaven�. Pre spr�vnu funkciu slovensk�ch miestnych nastaven� by mal obsahovať tieto dva riadky:

sk              sk_SK.ISO-8859-2
slovak          sk_SK.ISO-8859-2
        

To zabezpeč�, že aj keď nezad�te k�dovanie znakov, bude použit� iso-8859-2. Druh� riadok m� na svedom� to, že namiesto sk možno zadať slovak.

Varovanie

Ale na aliasy typu slovak si d�vajte bacha! Niektor� aplik�cie, ktor� v s�vislosti s miestnymi nastaveniami nevyuž�vaj� služby libc, totiž na aliasy kašľ� a zauj�maj� ich len prv� dva znaky nastaven�ch premenn�ch. A tak sa zo slovak stane sl, čo je Slovinsko. Pozit�vne je, že pre slovenčinu m�žete nastaviť premenn� napr�klad na hodnotu skaderukaskadenoha.


2.2.2. Konfigur�cia miestnych nastaven�

Nastavenia internacionaliz�cie sa (v RedHat a Mandrake) nach�dzaj� v s�bore /etc/sysconfig/i18n. Je to veľmi užitočn� s�bor, ktor� si r�chlo obľ�bite. Možno v ňom nastaviť všetko, čo sa kedy t�kalo internacionaliz�cie, n�rodn�ch fontov a rozložen� kl�ves. Tento s�bor však len definuje syst�mov� premenn� a zvykne sa vkladať (source /etc/sysconfig/i18n) do inicializačn�ch skriptov. Exportovanie premenn�ch (odovzdanie ostatn�m aplik�ci�m) m� na starosti skript /etc/profile.d/lang.sh (bash) alebo /etc/profile.d/lang.csh (tcsh). Tento sa vykon� pri každom štarte shellu, typicky je volan� z /etc/profile (bash) alebo /etc/csh.cshrc (tcsh).

S�bor /etc/sysconfig/i18n definuje nastavenia pre cel� syst�m. Tieto sa použij�, ak sa nen�jde s�bor s už�vateľov�mi nastaveniami. Každ� už�vateľ si m�že určiť svoje vlastn� nastavenia v s�bore .i18n v jeho domovskom adres�ri. Nastavenia sa vždy č�taj� len z jedn�ho z t�chto s�borov, teda ak m� už�vateľ svoj vlastn� s�bor ˜/.i18n, nastavenia zo s�boru /etc/sysconfig/i18n sa ignoruj�.

Už�vateľ si m�že zmeniť nastavenia aj ručne, kedykoľvek sa mu zachce, nastaven�m premenn�ch prostredia LC_MESSAGES, LANG, atď.

Vypn�ť nejak� nastavenie je možn� pr�kazom

sh$ unset LC_MESSAGES LANG
        

T�m sa zrušia nastavenia dan�ch premenn�ch (a použije sa štandardn� locale C alebo POSIX).

Ak m�te napr�klad nastaven� premenn� LC_ALL=sk a LC_MESSAGES=cz, tak po pr�kaze unset LC_ALL nebudete mať hl�senia programov v angličtine, ale češtine. Preto, ak chcete vypn�ť nejak� nastavenia, vždy mus�te pr�kazom unset zrušiť nastavenia všetk�ch premenn�ch, ktor� m�žu ovplyvňovať dan� miestne nastavenia.

Pozn�mka export/setenv

Neodpust�m si mal� pozn�mku k pr�kazu export. Je to vstavan� funkcia všetk�ch shellov kompatibiln�ch s klasick�m sh (teda aj bash). Pre shelly typu tcsh je ekvivalentom pr�kaz setenv.

Je d�ležit� uvedomiť si, čo presne tento pr�kaz rob� s premenn�mi. V dokument�cii k bashu sa hovor�, že export označ� premenn�, aby bola odovzdan� detsk�m (child) procesom v r�mci prostredia (environment). To znamen� asi toľko, že keď spust�te napr. iXy z matersk�ho procesu bash, ktor� pri štarte exportoval premenn� LANG=sk, všetky aplik�cie v prostred� X Window System bud� dediť toto nastavenie a teda (ak to sami podporuj�) bud� fungovať po slovensky. Ak budete chcieť spustiť aplik�ciu bez slovensk�ch nastaven�, mus�te v xterme zadať pr�kaz unset LANG (unsetenv LANG pre tcsh), č�m pre všetky detsk� procesy xtermu (presnejšie shellu, ktor� je v ňom spusten�), zruš�te nastavenie premennej LANG. Potom aplik�cie spusten� priamo z tohto xtermu bud� fungovať bez podpory slovenčiny. Trochu sa s t�m pohrajte.


2.2.3. Nastavenie časovej z�ny

S miestnymi nastaveniami �zko s�vis� aj nastavenie časovej z�ny. Vedel by som o tom rozpr�vať cel� hodiny, ale ono by to muselo byť zložitejšie ako len nastavenie jednej premennej... A to takto:

bash$ export TZ="Europe/Bratislava"

tcsh$ setenv TZ "Europe/Bratislava"
        

Toto nastavenie ovplyvňuje len časov� posun oproti hardverov�m hodin�m. (Mimochodom, odpor�čam hardverov� hodiny nastaven� na greenwichsk� svetov� čas, č�m tiež odpadaj� probl�my s prechodom medzi letn�m a zimn�m časom atď. ale o tom s� pop�san� in� s�bory.) Toto cel� je dosť dobr� vec, hlavne ak mate pr�stup k poč�taču v inej časovej z�ne, ale chcete pracovať s časom v stredoeur�pskej z�ne. Do svojho s�boru .bash_profile (.login pre tcsh) vložte vyššie uveden� riadok.


2.3. Pr�klady miestnych nastaven�

  • Už�vateľ je s�ce zo stredn�ho Slovenska, ale už keď s n�m bola jeho mama tehotn�, p�šťala mu do brucha kurzy angličtiny. Nem� teda zmysel použ�vať slovensk� nastavenia, až na krajn� pr�pady, napr. slovensk� fonty v Gimpe. Darujte mu s�bor .i18n s nasledovn�m obsahom (aj na tak�to mal� on� potrebuje locales-sk):

    LC_CTYPE=sk
              
    
  • Už�vateľ je norm�lny, m� r�d svoj materinsk� jazyk, ale netr�pi ho, keď m� polovicu aplik�ci� po slovensky a polovicu po anglicky. Po česky vie. Toto ho poteš� (nezabudnite mu potajomky nainštalovať aj locales-cs):

    LANGUAGE=sk:cs
    LANG=sk
              
    
  • Už�vateľ je z bl�zkeho juhu, jeho obľ�ben� pleso je Balaton, všetky hl�šky chce po maďarsky, ak sa inak ned�, pochop� aj slovenčinu. Nesmieme zabudn�ť na jeho miernu schizofreniu, pričom jedno jeho ja potrebuje slovensk� triedenie reťazcov a druh� nevie žiť bez form�tovania d�tumu a času v češtine. Nikdy sa nesmie zabudn�ť na inštal�ciu prekladov hl�šok pre maďarčinu, češtinu a slovenčinu z bal�kov, ktor� podporuj� premenn� LINGUAS. Treba ho tiež presvedčiť, že inštal�cia locales-{sk,hu,cs} nepredstavuje bezpečnostn� riziko:

    LANGUAGE=hu:sk:cs
    LC_COLLATE=sk
    LC_TIME=cs
    LANG=hu
    LINGUAS="hu cs sk"
              
    

3. Nastavenia konzoly

T�to kapitola by mala č�tavou, poučnou a z�roveň z�bavnou formou pojedn�vať o veciach medzi prstom a okom. Z�kladnou ot�zkou nech n�m je "Zmysel života, vesm�ru a v�bec."


3.1. Slovenčina na v�stupe textovej konzoly

3.1.1. Fonty

Keď zobud�te o polnoci hocikoho, kto vo svojom živote videl poč�tač a op�tate sa ho, ako rozbehať slovensk� znaky, určite spomenie niečo ako fonty. Na zobrazovanie znakov na obrazovku -- či už v textovom alebo grafickom režime -- sl�žia skutočne fonty. Fonty pre konzolu a programy určen� na manipul�ciu s nimi sa nach�dzaj� v bal�ku kbd. Po jeho nainštalovan� s� s�bory s fontami umiestnen� v adres�ri /usr/lib/kbd/consolefonts/.

Pre n�s s� d�ležit� najm� s�bory, ktor� maj� v mene iso02, lat2, latin2 alebo č�slo 852. To naznačuje, že ide o fonty s podporou ISO-8859-2 (latin2), pr�padne DOS codepage 852, čo s� štandardy aj pre slovensk� diakritiku.

Pozor, p�vodn� bal�k sa vol� kbd, ale existuje jeho rozš�ren� verzia, ktor� sa objavuje v distrib�ci�ch -- console-tools. Rozdiely medzi nimi s� minim�lne, pre kbd budeme použ�vať pr�kaz setfont, pre console-tools zase consolechars. Taktiež, n�zvy dod�van�ch fontov sa trochu odlišuj�, takže budem uv�dzať ekvivalenty pre oba bal�ky.


3.1.2. Ako fonty funguj�

Existuje niekoľko s�borov�ch form�tov na ukladanie fontov, princ�p je však rovnak� -- s�bor obsahuje 256 obr�zkov (glyphs), z ktor�ch všetky maj� rovnak� rozmer (napr. 8x16 bodov -- veľkosť fontu) a každ� zobrazuje jeden znak.

Aby n�m t�ch 256 obr�zkov bolo na niečo dobr�ch, je treba font zo s�boru zaviesť do znakov�ho gener�tora videokarty. Na to sl�ži jeden z pr�kazov

kbd:

setfont meno-fontu

console-tools:

consolechars -f meno-fontu

meno-fontu m�že byť absol�tna alebo relat�vna cesta k s�boru s fontom, alebo meno s�boru, pokiaľ sa nach�dza v adres�ri /usr/lib/kbd/consolefonts/, či už s pr�ponou, alebo bez.

Pre ľahšie pochopenie t�ch obr�zkov, sk�ste nahradiť meno-fontu reťazcom t850 a sledujte v�sledok na všetk�ch virtu�lnych konzol�ch.

Nasp�ť k štandardn�mu fontu sa vždy dostanete jedn�m z pr�kazov

kbd:
sh$ setfont
                
console-tools:
sh$ consolechars -d
                

Čo sa presne deje? Program setfont/consolechars zavedie všetk�ch 256 obr�zkov do znakov�ho gener�tora EGA/VGA karty. Od tohto momentu sa na všetk�ch konzol�ch bude znak s ASCII k�dom napr. 65 vykreslovať ako šesdesiaty piaty obr�zok z našeho s�boru s fontom. Ešte raz pripom�nam a dvakr�t podčiarkujem, že font je vždy rovnak� pre všetky virtu�lne konzoly, na ktor�ch zobrazuje znaky ten ist� znakov� gener�tor EGA/VGA karty.

D�ležit� je uvedomiť si, že interne ide naozaj len o obr�zky a tvar niektor�ho znaku vo fonte nem� nič spoločn�ho s jeho ASCII k�dom. Ak by ste si sami vytvorili nejak� font (v dokument�cii ku kbd/console-tools m�te inform�cie o všetk�ch form�toch), v ktorom by mal ten šesdesiaty piaty obr�zok tvar p�smena z, po jeho natiahnut� sa v�m bude pri zadan� Alt-6-5, čo je ASCII k�d p�smena A, zobrazovať znak z. Ale ak tento znak ulož�te do s�boru, v tomto sa bude nach�dzať bajt s hodnotou 65, teda p�smeno A.


3.1.3. Fonty ISO-8859-2

Toto využ�va štandard ISO-8859-2 (a in�) - spoločn� znaky s ASCII vykresl� rovnako a znaky špecifick� pre t� ktor� abecedu "namapuje" na menej použ�van� znaky ASCII tabuľky. Kam presne ktor� norma umiestňuje znaky s diakritikou, n�s zauj�mať nemus� (pokiaľ nevytv�rame vlastn� fonty), hlavn� je, že napr. anglick� text je nezmenen� (angličtina m� všetky znaky spoločn� so slovenčinou) a slovensk� text už viac neobsahuje hl�pe znaky, ktor� so slovenčinou nemaj� nič spoločn�.

Slovensk� (ISO-8859-2) fonty, ktor� s� s�časťou bal�kov kbd a console-tools:

kbd:

lat2-{08,10,12,14,16}, lat2a-16, iso02.{08,14,16}

console-tools:

lat2-{08,10,12,14,16}, lat2u-16, iso02.f{08,14,16}

Na zavedenie fontu použite pr�kaz

kbd:
sh$ setfont meno-zo-zoznamu
                
console-tools:
sh$ consolechars -f meno-zo-zoznamu
                

Odpor�čam použ�vať lat2a-16, resp. lat2u-16. Ostatn� fonty maj� bezchybn� zobrazovanie slovensk�ch znakov, probl�m však nast�va pri aplik�ci�ch, ktor� využ�vaj� znaky na kreslenie r�mčekov (napr. mc).

Čo sa t�ka fontov iso02.* z bal�ka kbd, treba pri nich použiť argument pr�kazu setfont -m latin2u.trans. Takže cel� pr�kaz na zavedenie niektor�ho z t�chto fontov je:

kbd:
sh$ setfont iso02.16 -m latin2u.trans
                
console-tools:
sh$ consoletrans -f lat2u-16 -m iso02
                

V s�bore latin2u.trans (iso02.acm) sa nach�dza tzv. Aplication-Charset Map (ACM), ak�si prevodn� tabuľka, ktor� obsahuje riadok pre každ� znak fontu a jeho podobu v k�dovan� UTF-8.


3.1.4. Automatick� zav�dzanie fontov

Ak ste si našli svoj font, ktor� chcete použ�vať a mať ho automaticky zaveden� vždy pri štarte, nie je nič ľahšie. Inicializačn� skript rc.sysinit rob� asi toto: skontroluje, či existuje s�bor /etc/sysconfig/i18n a program (skript) /sbin/setsysfont. Ak �no, spust� setsysfont. Ten nač�ta /etc/sysinfo/i18n a podľa premenn�ch definovan�ch v tomto s�bore pr�kazom consolechars alebo setfont zavedie font.

Takže stač� nastaviť spr�vne premenn� v s�bore /etc/sysconfig/i18n a skript /sbin/setsysfont urob� všetko za n�s. Tento skript možno spustiť kedykoľvek chcete zaviesť font nastaven� ako štandardn� pre syst�m.

Premenn� v s�bore /etc/sysinit/i18n s� (použ�vajte len men� s�borov bez cesty a bez pr�pony!):

kbd:
SYSFONT=lat2a-16
                
console-tools:
SYSFONT=lat2u-16
SYSFONTACM=iso02
                

Skript�k setsysfont obsahuj� oba bal�ky a kedykoľvek m�žete zaviesť font nastaven� ako syst�mov� v s�bore /etc/sysinit/i18n jednoduch�m zadan�m

sh$ /sbin/setsysfont
        

Podľa toho, čo sme si hovorili o tom, že pre všetky virtu�lne konzoly m�že byť nastaven� len jeden spoločn� font, nem� veľk� zmysel zav�dzať nastavovanie fontu zvl�šť pre každ�ho už�vateľa. S t�m s�vis� aj fakt, že nastavenie fontu sa vzťahuje k dan�mu poč�taču, pri ktorom pr�ve sed�te a nie k tomu, ku ktor�mu ste pripojen� napr. cez ssh.

Predsa len si viem predstaviť pr�pad, keď niektor� z viacer�ch použ�vateľov jedn�ho poč�tača potrebuje odlišn� font. V tom pr�pade m�že vložiť pr�kaz na zav�dzanie fontov do svojich skriptov, ktor� vykon�va shell pri prihl�sen� a odhl�sen�. Pre bash by to mohlo vyzerať takto:

~/.bash_profile:
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.font ]; then
        setfont -o ~/.font gr928a-8x16
fi
                
~/.bash_logout:
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.font ]; then
        setfont ~/.font
        rm -f ~/.font
fi
                

Vonkoncom to nie je ide�lne riešenie, ale svoj �čel spln� (minim�lne po moment prv�ho odhl�senia). Trochu sa s t�m pozab�vajte, aby sa font (a rozloženie kl�ves) menilo len pri prvom prihl�sen� a poslednom odhl�sen�, tiež setfont pod iXami nem� veľmi zmysel a tak... V Tips-HOWTO je uveden� sp�sob, ako zistiť, na koľk�ch virtu�lnych konzol�ch je ešte už�vateľ prihl�sen�.

In�č, aby bolo jasn�, toto v�m bude fungovať len na lok�lnom stroji - zamyslite sa, prečo asi setfont (aj loadkeys) nefunguje cez vzdialen� termin�l a či by ste z toho niečo mali, keby to tak nebolo.

Ak to s tak�mto riešen�m mysl�te v�žne, tak sk�r uvažujte nad modifik�ciou skriptu /etc/profile.d/lang.sh, kde by sa kontroloval aj obsah už�vateľsk�ho s�boru ~/.i18n a podľa toho by sa zaviedol skript, popis rozloženia kl�ves, pr�padne nejak� premenn�...


3.2. Slovensk� kl�vesnica na textovej konzole

Keď je slovensk� font na konzole rozbehan� a naše n�rodn� znaky sa zobrazuj� spr�vne, m�me so slovenčinou probl�m č�slo dva - ako tam tie znaky dostať? Keby ste si chceli tento s�bor len preč�tať bez potreby n�slednej navštevy psychiatra, stačilo by zaviesť nejak� font so slovenskou podporou. Ale keďže ste uvedomel� linux�k�/�uvedomel� linux�čka, hneď chcete do Slovak-HOWTO prispieť a pomocou kl�vesnice p�sať slovensk� text. Na to potrebujete s tou kl�vesnicou niečo urobiť.


3.2.1. Popis rozloženia kl�ves (keymap)

Adres�re /usr/lib/kbd/keymaps/i386/qwertz/ a qwerty/ obsahuj� po nainštalovan� bal�ka kbd/console-tools aj popisy slovensk�ho rozloženia kl�ves. Pre n�s s� zauj�mav� s�bory

sk-prog-qwerty.map.gz
sk-qwerty.map.gz
sk-prog-qwertz.map.gz
sk-qwertz.map.gz

Tieto s�bory obsahuj� defin�cie rozloženia kl�ves pre slovensk� jazyk, pričom rozdiely medzi nimi s� v umiestnen� kl�ves Y a Z a počte slovensk�ch znakov, ktor� pomocou nich možno nap�sať priamo (bez mŕtvych kl�ves). Najviac sa na slovensk� p�sac� stroj podob� sk-qwertz, najmenšie zmeny oproti americkej kl�vesnici s� zase v sk-prog-qwerty.

S�bory v adres�ri /usr/lib/kbd/keymaps/i386/include/ obsahuj� popis z�kladn�ch rozložen� kl�ves (azerty , qwerty, qwertz ), pr�davn�ch kl�ves (keypad, windowkeys), pr�padne probl�mov�ch kl�ves ( delete, backspace, ctrl ). S�bory linux-*.inc.gz s� špecifick� pre linux (teda nie pre jazyk). S� to napr. kľ�če (F1-F12, kombinovan�m s Ctrl a Shift až po F48), Shift-PgUp a Shift -PgDown, atď.

Keymapy *.inc.gz nepopisuj� kompletn� rozloženie kl�vesnice, ale len niektor�ch jej čast�. Využ�vaj� sa pri prip�jan� (include) zo s�borov *.map.gz, čo je v�hodn� z d�vodu jednoduchšej konfigur�cie kl�vesnice. Napr�klad zmenou jedn�ho riadku v s�bore s rozložen�m sk-qwerty m�žme dostať rozloženie qwertz, pr�padne (to asi využijete) jednoducho odstaviť znaky euro a cent, ktor� (zatiaľ?) nepotrebujeme a zbytočne n�m zaberaj� znaky E a C.

Na zavedenie s�boru s popisom rozloženia kl�ves sl�ži nasledovn� pr�kaz:

loadkeys nazov

kde nazov m�že byť absol�tna alebo relat�vna cesta ku keymap s�boru, alebo meno s�boru, pokiaľ sa nach�dza v adres�ri /usr/lib/kbd/keymaps/, či už s pr�ponou, alebo bez.

Štandardn� slovensk� popisy rozloženia kl�ves n�jdeme vo vyššie spom�nan�ch *.map.gz s�boroch. Ak sa chcete vr�tiť k štandardn�mu rozloženiu, pr�kaz

sh$ loadkeys -d
        
zavedie p�vodn�, ktor� je uložen� v s�bore defkeymap.map.gz niekde medzi ostatn�mi keymap s�bormi. Predt�m ale nikdy nezabudnite zmeniť režim slovenskej kl�vesnice na US znaky, tzn. 1 d�va 1 a nie + atď. Ak by ste predsa zabudli, je možn�, že kl�vesy, kde sa nach�dzali slovensk� znaky, nebud� fungovať spr�vne (v skutočnosti bud� fungovať spr�vne, ale v�m sa to nebude p�čiť). Vtedy znovu zaveďte predchadz�j�cu keymapu (na nefunkčn� kl�vesy použite AltGr - prav� Alt) a kl�vesou Pause/Break všetko naprav�te. Potom m�žete znova zaviesť defkeymap.

Pokiaľ sa v�m nep�či ani jeden zo štandardn�ch keymap s�borov pre slovenčinu, čo je pravdepodobn� vďaka riadku

include "euro"
        
v include s�boroch qwerty-layout.inc.gz aj qwertz-layout.inc.gz, m�žete kľudne pozmeniť existuj�ci s�bor s popisom rozloženia kl�ves, pr�padne vytvoriť nov�. Nebojte sa, je to zložit�! Nebudem to tu rozpisovať všetko, prezrite si zop�r kmap s�borov, preč�tajte manu�lov� str�nku keymaps(5) a mali by ste to ľahko pochopiť.

My si povieme len o z�kladn�ch veciach, ktor� n�m pom�žu pozmeniť existuj�ce kmap s�bory s popismi slovensk�ch kl�vesn�c, aby ste si poradili s (mne zn�mymi) komplik�ciami, alebo upravili rozloženie kl�ves podľa svojho gusta.


3.2.2. Include a nespr�vna funkcia kl�ves E a C

Probl�m s E a C je sp�soben� zaveden�m jednotnej meny v eur�pskej �nii. Na vine nie je ani tak EU, ale niekto, kto symboly pre euro a cent umiestnil na AltGr-E a AltGr-C, čo s� naše obyčajn� E a C. Totiž, n�rodn� kl�vesnice s� v�čšinou riešen� tak, že po zaveden� s�boru naďalej funguje americk� rozloženie a na prep�nanie do n�rodn�ho režimu sa použ�va kl�vesa Pause, alebo m�žme zad�vať n�rodn� kl�vesy pri s�časnom držan� kl�vesy AltGr (prav� Alt). S�bor euro.inc, ktor� definuje tieto dva probl�mov� symboly, je pripojen� zo s�boru qwerty-layout.inc, ktor� zase prip�jaj� samotn� slovensk� keymapy (sk-qwerty, sk-prog-qwertz, …).

Riešenie je veľmi jednoduch� - zeditujete qwerty-layout.inc (alebo qwertz-layout.inc) a odkomentujete znakom # riadok

include "euro"
        

3.2.3. Keycode a definovanie kl�ves

Predch�dzaj�ci probl�m s eurom možno vyriešiť aj definovan�m znakov E a C v samotnom s�bore sk-qwerty.kmap.gz (alebo inom, ktor� použ�vate) pomocou slova keycode:

keycode 18 = e
keycode 46 = c
        

V keymap s�boroch je pre každ� kl�vesu (alebo aspoň pre každ�, ktor� chceme predefinovať) jeden riadok približne tohto razenia:

keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two...
        

Č�slo za keycode označuje určit� kl�vesu a reťazce za = hovoria o tom, ak� znak m� ovl�dač kl�vesnice generovať pri stlačen� tejto kl�vesy, a to buď samotnej, alebo v kombin�cii so špeci�lnymi kl�vesmi Shift, AltGr, Control, Alt, ShiftL, ShiftR, Ctrl a CtrlR. To n�m d�va 256 možn�ch znakov na každ� kl�vesu.

V�čšinou sa pozmeňuje len prv�ch 16 kombin�ci� modifik�torov. To je v�znam riadku

keymaps 0-15
        
na začiatku kmap s�borov.

V nasleduj�com zozname je t�chto 16 kombin�ci� (po riadkoch):

žiadny Shift AltGr Shift-AltGr
Control Shift-Control AltGr-Control Shift-AltGr-Control
Alt Shift-Alt AltGr-Alt Shift-AltGr-Alt
Control-Alt Shift-Control-Alt AltGr-Control-Alt Shift-AltGr-Control-Alt

Z hľadiska slovenskej kl�vesnice s� d�ležit� len prv� štyri - prv� dva s� zvyčajne nezmenen� americk� znaky, napr. two at, čo je 2 @, a druh� dva s� znaky slovenskej abecedy, ktor� bude ovl�dač kl�vesnice posielať aplik�ci�m ak pri stlačen� tejto kl�vesy budeme s�časne držať kl�vesu AltGr (prav� Alt), napr. lcaron two, čo je naše ľ 2.

Aby ste mohli vkladať slovensk� znaky, nemus�te cel� čas pridržiavať AltGr nosom, ale m�žete použiť Pause/Break, ktor� v kontexte s n�rodn�mi kl�vesnicami funguje ako AltGr Lock. Ch�pte to tak, že keď sa prepnete do slovensk�ho režimu stlačen�m Pause/Break, prv� a druh� dva reťazce v každom riadku keycode sa vymenia, napr.

two at lcaron two -> lcaron two two at
        

Vtedy m�žete použiť AltGr na zad�vanie znakov americkej kl�vesnice, alebo sa op�tovn�m stlačen�m Pause/Break prepn�ť sp�t do US režimu.

Riadok pre kl�vesu s k�dom 41 (znaky ` a ~), m� v s�bore sk-qwerty.map.gz nasledovn� tvar:

keycode 41 = grave asciitilde dead_diaeresis dead_circumflex ...
        

Mne osobne sa nep�či, že s� tu umiestnen� mŕtve kl�vesy dead_diaeresis (dve bodky nad znakom) a dead_circumflex (m�kčeň), pretože ich nepotrebujem --- aj na slovenskej kl�vesnici predsa je. A keby aj nebolo, na ich p�sanie m�žem kľudne použiť mŕtvy kl�ves m�kčeň. O tom si bližšie povieme v časti o compose sekvenci�ch. Teraz chcem mať na tomto mieste znaky ; (semicolon) a (degree) tak, ako je to na popiske mojej kl�vesnice. Zmen�m teda riadok takto:

keycode 41 = grave asciitilde semicolon degree ...
        

In�č, ten stupeň asi nie je stupeň, ale mŕtvy znak kr�žku nad p�smenom, napr. v češtine nad u, ale tak� kl�ves je n�m fakt nanič. Radšej budeme p�sať stupne.

N�zvy znakov, ktor� sa použ�vaj� pri definovan� jednotliv�ch kl�ves si m�žete pre znaky ASCII zistiť v s�bore us.map.gz. Č�seln� k�dy všetk�ch kl�ves v�m vypľuje program

showkey

Pravidl� pre n�zvy znakov špecifick�ch pre slovenčinu v kmap s�boroch:

  1. Prv� p�smeno v n�zve určuje ASCII znak, pre ktor� chceme použiť diakritiku.

  2. K nemu prid�me identifik�tor diakritick�ho znamienka:

    caron --- m�kčeň
    acute --- dĺžeň
    diaeresis --- dve bodky nad
    circumflex --- vok�ň

    Napr�klad:

    scaron = š
    uacute =
    Ocircumflex =

N�zvy ďalš�ch znakov špecifick�ch pre slovenčinu:

0xa7 --- (paragraf)
degree --- stupeň

Pre spr�vnu interpret�ciu identifik�torov znakov s diakritikou je nutn� na začiatku kmap s�boru určiť k�dov� str�nku, pre ktor� bude určen� tento popis rozloženia kl�ves. Ide o to, že ten ist� znak m�že mať v r�znych k�dov�ch str�nkach in� ASCII k�d. Implicitn� hodnota je iso-8859-1, teda pre slovensk� keymapy je nutn� vložiť riadok:

charset "iso-8859-2"
        

Ešte jeden pr�klad: ak chcete použ�vať slovensk� rozloženie qwertz a americk� rozloženie qwerty, potrebujete vymeniť znaky Y a Z:

keycode 21 = y Y z Z
keycode 44 = z Z y Y
        

Na prv� pohľad to m�že fungovať dobre, ale probl�m sa prejav� pri zapnutom Caps Lock - znaky Y a Z sa st�le p�šu mal�mi p�smenami. Pri p�san� popisov rozložen� znakov možno tak�to probl�m ošetriť pridan�m p�smena + pred každ� p�smeno v keycode riadku danej kl�vesy. P�smeno + určuje nasledovn�mu p�smenu atrib�t letter, teda sa bude pri stlačenom Caps Lock p�sať veľk� p�smeno. Všetky p�smen� a-z, A-Z maj� tento atrib�t priraden� automaticky, ale to len v pr�pade, že maj� keycode riadok tvaru:

keycode 21 = y
        

V našom pr�pade teda mus�me priradiť tento atrib�t všetk�m znakom explicitne. Takže, konečn� �prava keymapy bude:

keycode 21 = +y +Y +z +Z
keycode 44 = +z +Z +y +Y
        

Pre v�menu p�smen toto riešenie funguje spoľahlivo, bohužiaľ, ešte st�le neexistuje sp�sob, ktor�m by sa dalo dosiahnuť napr�klad p�sanie veľk�ch p�smen s diakritikou pri zapnutom Caps Lock jednoduch�m stl�čan�m ich kl�ves, ako je to v slovenskom popise rozloženia kl�ves pre X Window System.


3.2.4. Mŕtve kl�vesy a sekvencie compose

S mŕtvymi kl�vesami s�visia v kmap s�boroch riadky tvaru

compose 'c1' 'c2' to 'c3'
        

Predstavme si mŕtve znaky ako �plne obyčajn� znaky s t�m rozdielom, že ovl�dač kl�vesnice ich neposiela aplik�ci�m, ale zostan� niekde "visieť", k�m z kl�vesnice nepr�de ďalš� znak. Ovl�dač kl�vesnice nepošle ani tento, ale pok�si sa spojiť ho s predch�dzaj�cim mŕtvym znakom a až v�sledok spojenia pust� ďalej. No, a ako m� to spojenie uskutočniť, to mu presne hovoria riadky compose v keymap s�boroch.

V nasleduj�cej tabuľke je zoznam mŕtvych znakov použ�van�ch v slovenčine, spolu s v�znamom a znakom, ktor�m sa označuj� v compose sekvenci�ch.

Tabuľka 2. Mŕtve kl�vesy

N�zov V�znam Compose
dead_acute dĺžeň \'
dead_circumflex m�kčeň ^
dead_diaeresis dve bodky nad "

Postup pri p�sani compose sekvenci�

  1. Každ� compose sekvencia sa zač�na kľ�čov�m slovom compose.

  2. Nasleduje compose znak mŕtvej kl�vesy (podľa tabuľky Mŕtve kl�vesy), napr�klad \'.

    Druh� je znak, s ktor�m chceme mŕtvu kl�vesu kombinovať, napr�klad A.

    Za kľ�čov�m slovom to nasleduje v�sledok spojenia mŕtvej kl�vesy a znaku bez diakritiky, teda .

Je praktick� mať pri vytv�ran� compose sekvenci� zaveden� slovensk� font, aby ste v�sledok mohli hneď kontrolovať. Veľkou pomocou je tiež možnosť pr�kazu loadkeys č�tať zo štandardn�ho vstupu. Napr�klad:

sh$ loadkeys
include "/usr/lib/kbd/keymaps/i386/include/windowkeys.map.gz"
keycode 41 = grave asciitilde semicolon dead_diaeresis
compose '"' 'a' to '�'
# ukončenie zad�vania:  EOF  -  Ctrl-D
sh$
        

Popis aktu�lneho rozloženia kl�ves m�žete uložiť do s�boru pr�kazom

sh$ dumpkeys > subor
        

Ak nem�te zaveden� slovensk� popis rozloženia kl�ves, mus�te zad�vať tieto znaky ako Alt sekvencie, popr�pade vkladať ich hex k�dy v tvare 0xed pre . V�pis znakov aktu�lneho fontu spolu s ich hex k�dmi v�m urob� program

kbd:

showfont

console-tools:

showcfont

Ešte raz naša compose sekvencia a nejak� navyše:

compose '\'' 'A' to '�'   # dlh� A cez dĺžeň
compose '^'  'O' to '�'   # O s vok�ňom cez m�kčeň
compose '^'  'a' to '�'   # širok� a cez m�kčeň,
compose '^'  'A' to 0x84  # ...preto nepotrebujeme dead_diaeresis
        

Mimochodom, v s�bore /usr/lib/kbd/keymaps/compose/compose.latin2 m�te zoznam compose sekvenci� pre normu ISO-8859-2.


3.2.5. Automatick� zav�dzanie keymap s�boru

Na nastavenie rozloženia kl�vesnice, ktor� chceme zaviesť pri štarte syst�mu, n�m sl�ži s�bor /etc/sysconfig/keyboard. Pre Slov�ka ako repa by mal vyzerať minim�lne takto:

KEYTABLE=sk-qwerty     # zavedie rozloženie kl�ves sk-qwerty
KBCHARSET=iso-8859-2   # ...a spom�nan� s�bor compose.latin2
        

Nastavenie kl�vesnice pri štarte m� na starosti skript keytable, ktor� je volan� priamo z rc.sysinit, takže netreba vytv�rať linky v adres�roch pre runlevel 3/multiuser, pr�padne 5/X.

V dokument�cii k initscripts sa p�še: "Ak ulož�te popis rozloženia kl�ves (použit�m dumpkeys) do s�boru /etc/sysconfig/console/default.kmap, zavedie sa pri štarte syst�mu ešte pred prip�jan�m/kontrolou s�borov�ch syst�mov. To m�že byť užitočn�, ak potrebujete zadať heslo roota v pr�pade probl�mov. Mus� to byť 'dumpnut�' popis rozloženia kl�ves a nie skop�rovan� s�bor z /usr/lib/kbd/keytables/, pretože tie často ešte vkladaj� (include) in� popisy z tejto adres�rovej štrukt�ry."

Po pripojen� s�borov�ch syst�mov, v pr�pade, že existuje spustiteľn� s�bor /etc/rc.d/init.d/keytable a adres�r /usr/lib/kbd/keymaps/, vykon� sa pr�kaz

sh# /etc/rc.d/init.d/keytable start
        

Tento už zavedie popis rozloženia kl�ves tak, ako to m�te určen� premenn�mi v s�bore /etc/sysconfig/keyboard, preto nemus�te vytv�rať odkazy v jednotliv�ch rc[1-5].d/ adres�roch.

To, čo sme si hovorili o zmene fontu pri prihl�sen� nejak�ho už�vateľa na virtu�lnej konzole, sa d� aplikovať aj na rozloženie kl�ves. �plne najjednoduchšie riešenie (ktor� sa pri prvom odhl�sen� pošle do kr�kov) je asi tak�to:

~/.bash_profile:
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.keymap ]; then
        dumpkeys > ~/.keymap
        loadkeys gr.map
fi
                
~/.bash_logout:
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.keymap ]; then
        loadkeys ~/.keymap
        rm -f ~/.keymap
fi
                

3.3. Zhrnutie nastaven� konzoly

Pokiaľ som sa niekde nesekol, tak minim�lne v distrib�ci�ch RedHat a Mandrake by po t�chto zmen�ch mala do pohody zašlapať slovensk� podpora (fonty + kl�vesnica).

/etc/sysconfig/i18n:
kbd:
SYSFONT=lat2a-16
                    
console-tools:
SYSFONT=lat2u-16
SYSFONTACM=iso02
                    
/etc/sysconfig/keyboard:
KEYTABLE=sk-qwertz
KBCHARSET=iso-8859-2
              

Tiež, ak zad�vate rootovsk� heslo s použit�m in�ho rozloženia kl�ves ako je štandardn� (us), vložte si jeho popis do s�boru /etc/sysconfig/console/default.kmap. Pozor, nesmiete len tak skop�rovať s�bor, alebo vytvoriť link! Ak chcete použiť napr�klad rozloženie sk-qwertz, urobte to takto:

sh$ loadkeys sk-qwertz
sh# dumpkeys >/etc/sysconfig/console/default.kmap
      

Ak chcete nastaviť slovensk� font a kl�vesnicu len jednorazovo, tieto pr�kazy by to mali dok�zať:

kbd:
sh$ setfont lat2a-16
sh$ loadkeys sk-qwertz
              
console-tools:
sh$ consolechars -f lat2u-16 -m iso02
sh$ loadkeys sk-qwertz
              

...a nasp�ť na štandardn� nastavenia:

kbd:
sh$ setfont
sh$ loadkeys -d
              
console-tools:
sh$ consolechars -d
sh$ loadkeys -d
              

4. Nastavenia X Window Systemu

Čokoľvek sa chyst�te robiť s X Window Systemom a slovenčinou dokopy, sľubujem, že v�m to nebude fungovať, ak nenastav�te totok taktok:

LC_CTYPE=sk
    

Čo to znamen� a ako sa to nastavuje, tak o tom pojedn�va kapitola Miestne nastavenia.


4.1. Slovensk� fonty v X Window Systeme

Predpoklad�m, že X Window System m�te nainštalovan�, pr�padne aj X Font Server, vačšinu d�ležit�ch vec� sme si povedali v časti o konzole, poďme si rovno nainštalovať slovensk� fonty.


4.1.1. Inštal�cia fontov - X server

Slovensk� fonty pre X n�jdeme v bal�ku XFree86-ISO8859-2, veľa ďalš�ch je v bal�koch XFree-ISO8859-2-<druh>-fonts, kde <druh> m�že byť Type1, 100dpi alebo 75dpi. Ak chcete použ�vať slovenčinu seri�zne (Gimp, Netscape, lokaliz�cia), nainštalujte si všetky, ak potrebujete slovensk� font len napr. v XTerme, postač� v�m z�kladn� bal�k.

Po rozbalen� arch�vu sa fonty nach�dzaj� na niekoľk�ch miestach. Všetky cesty k nov�m fontom si treba odpisať, zapam�tať, mať na očiach:

/usr/share/fonts/ISO8859-2/misc
/usr/share/fonts/ISO8859-2/75dpi
/usr/share/fonts/ISO8859-2/100dpi
/usr/share/fonts/ISO8859-2/Type1

Tieto cesty totiž budeme vkladať do konfiguračn�ho s�boru X Window Systemu (/etc/X11/XF86Config, pr�padne /etc/X11/XF86Config-4). T�m spr�stupn�me X serveru fonty z t�chto adres�rov. Sekciu "Files" uprav�me vložen�m riadkov FontPath:

Section "Files"
    ...  
    FontPath   "/usr/share/fonts/ISO8859-2/misc"
    FontPath   "/usr/share/fonts/ISO8859-2/75dpi"
    FontPath   "/usr/share/fonts/ISO8859-2/100dpi"
    FontPath   "/usr/share/fonts/ISO8859-2/Type1"
EndSection
        

Spr�vne poradie riadkov s cestami k fontom n�jdete v XWindow-User-HOWTO, ale nemali by ste mať veľk� probl�my ani keď slovensk� fonty vlož�te na koniec zoznamu.

Za behu X Window Systemu prid�te nov� adres�re s fontami pr�kazom

sh$ xset +fp /usr/share/fonts/ISO8859-2/misc, /usr/share/fonts/ISO8859-2/75dpi, …
        

4.1.2. Inštal�cia fontov - X Font Server

X Font Server pon�ka druh� sp�sob spravovania fontov pre X Window Server, a to ako pre lok�lnu mašinu, tak aj pre vzdialen� syst�my. Modern� distrib�cie už po inštal�cii pon�kaj� nakonfigurovan� X Font Server a X Window System, ktor� využ�va jeho služby.

Pri tomto sp�sobe treba cesty k fontom vložiť do konfiguračn�ho s�boru X Font Serveru a konfigur�cia v /etc/X11/X86Config (XF86Config-4) by mala vyzerať takto:

Section "Files"
    FontPath "unix/:7100"
EndSection
        
za predpokladu, že X Font Server bež� na porte 7100 (voľba pr�kazov�ho riadku -port).

Ak teda použ�vate xfs, niečo podobn� ako v predch�dzaj�cej kapitole urob�te s konfiguračn�m s�borom pre tento program (/etc/X11/fs/config) v časti catalogue:

catalogue = ...,
        /usr/share/fonts/ISO8859-2/misc,
        /usr/share/fonts/ISO8859-2/75dpi,
        /usr/share/fonts/ISO8859-2/100dpi,
        /usr/share/fonts/ISO8859-2/Type1
        

Hneď potom mus� xfs znovu nač�tať konfiguračn� s�bor a t�m umožn�te použ�vanie slovensk�ch fontov lok�lnemu aj in�m X serverom:

sh# killall -USR1 xfs
        

4.1.3. Slovensk� TrueType fonty

Ak vlastn�te leg�lnu k�piu syst�mu WindowsXX (kde XX je hocičo), alebo MacOS, nemali by v�s zavrieť, ak použijete TrueType fonty obsiahnut� v ich distrib�ci�ch. Existuje aj mnoho bal�kov s TrueType fontmi s podporou normy ISO-8859-2, ktor� s� voľne dostupn�.

Popis inštal�cie tak�chto fontov prebehneme len v kr�tkosti, podrobnejš� n�jdete v dokument�cii k bal�ku free-type:

  1. Skop�rujte s�bory s TrueType fontami napr. do adres�ra /usr/share/fonts/ttf/win/. Odpor�čam zmeniť men� s�borov s fontami aj ich pr�pony na mal� p�smen� -- mal som s t�m probl�my.

  2. Vytvorte v každom adres�ri s�bor s inform�ciami o scalable fontoch fonts.scale nasledovn�m pr�kazom:

    sh# cd /usr/share/fonts/ttf/win
    sh# ttmkfdir -o fonts.scale
                
    

    Ak to nie je celkom ono a dostanete veľa chybov�ch hl�sen�, alebo s�bor fonts.scale obsahuje pr�liš m�lo z�znamov o fontoch v adres�ri, sk�ste použiť s pr�kazom ttmkfdir aj voľbu pr�kazoveho riadku -c.

  3. Zoznam fontov v s�bore, ktor� nač�tava X server aj xfs, vytvor�te nasledovne:

    sh# cd /usr/share/fonts/ttf/win
    sh# mkfontdir
                
    

Od tohto momentu pokračujte štandardn�m sp�sobom tak, ako je to pop�san� v predch�dzaj�cej časti o konfigur�cii X servera alebo xfs.


4.1.4. Čo je in� so slovensk�mi fontami

Okrem toho, že sa slovensk� znaky zobrazuj� spr�vne, nič. Fonty z bal�kov pre normu ISO-8859-2 sa s�ce volaj� inak, ale vzhľadom zodpovedaj� štandardn�m fontom. V nasleduj�cej tabuľke s� uveden� zodpovedaj�ce dvojice fontov:

Tabuľka 3. Slovensk� ekvivalenty štandardn�ch fontov

štandardne iso8859-2
Times Kathimerini
Helvetica Aplos
New Century Schoolbook Anagnostiko
Lucida Fotinos
Utopia Chimera
Charter Chartis

Berte t�to tabuľku len ako informat�vny �daj, ktor� pravdepodobne nikdy nebudete potrebovať vďaka s�borom fonts.alias v adres�roch so slovensk�mi fontmi. Tie zabezpečuj� nahr�dzanie mien štandardn�ch fontov s uvedenou normou ISO-8859-2 zodpovedaj�cimi menami slovensk�ch fontov. Napr�klad požiadavka na font

-b&h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2

poskytne a teda zobraz� v skutočnosti font

-biznet-fotinos-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2


4.1.5. Strieľanie tažkost�

Ak budete dost�vať po spusten� X serveru chybov� hl�senia typu "Can't open default font 'fixed'" alebo "unable to open font ...", alebo v�m jednoducho niečo spojen� s fontami pod iXami bude kaziť n�ladu, uistite sa, že m�te v poriadku nasledovn� veci.

  1. Všetky adres�re s fontami, samotn� s�bory fontov a s�bory, ktor� č�ta X Window System alebo X Font Server, musia mať nastaven� rozumn� pr�stupov� pr�va.

  2. V adres�roch, v ktor�ch sa nach�dzaj� fonty, mus� existovať s�bor fonts.dir. Ak nie, spustite v t�chto adres�roch program mkfontdir. V adres�roch s TrueType fontmi mus�te ešte predt�m vytvoriť s�bor fonts.scale tak ako je to pop�sane v časti Slovensk� TrueType fonty.

  3. Ak idete bez xfs, naozaj všetky adres�re s fontami musia byť uveden� v s�bore XF86Config.

  4. V pr�pade, ze použ�vate xfs, tieto adres�re musia byť uveden� v s�bore /etc/X11/fs/config. Navyše, xfs mus� bežať na nejakom porte (napr. 7100) a v XF86Config mus� byť cesta k fontom uveden� ako adresa s č�slom toho portu, asi takto:

    FontPath "unix/:7100"
                
    
  5. Po zmen�ch v konfiguračn�ch s�boroch X Window Systemu alebo X Font Serveru je nutn� reštart alebo znovunač�tanie nastaven�:

    X Window System
    sh$ xset fp rehash
                      
    
    X Font Server
    sh# killall -USR1 xfs
                      
    
  6. Ak m�te v inittabe nastaven� sp�šťanie X serveru pri štarte syst�mu (runlevel 5/X), radšej si to pri pokusoch s fontami zmeňte na 3/multiuser až pokiaľ si nie ste sakramentsky ist�, že X server pri štarte n�jde fonty. Ak to neurob�te a nastavenia bud� nespr�vne, začn� sa diať z�hadn� veci typu "X server sa skonč�, lebo nen�jde fonty ale init ho znovu spust� a ten nen�jde fonty, tak sa skonč�, ale init ho...". Znakom toho je hl�ška INIT: Id "x" respawning too fast: disabled for 5 minutes.

  7. X Window System hľad� (pre norm�lneho už�vateľa) konfiguračn� s�bory v tomto porad�:

    /etc/X11/<cmdline>
    /usr/X11R6/etc/X11/<cmdline>
    /etc/X11/$XF86CONFIG
    /usr/X11R6/etc/X11/$XF86CONFIG
    /etc/X11/XF86Config-4
    /etc/X11/XF86Config
    /etc/XF86Config
    /usr/X11R6/etc/X11/XF86Config.<hostname>
    /usr/X11R6/etc/X11/XF86Config-4
    /usr/X11R6/etc/X11/XF86Config
    /usr/X11R6/lib/X11/XF86Config.<hostname>
    /usr/X11R6/lib/X11/XF86Config-4
    /usr/X11R6/lib/X11/XF86Config

    Pam�tajte na to pri editovan� konfigur�kov a vždy sa uistite, či neexistuje s�bor, ktor� je v tomto zozname vyššie, ako ten, ktor� editujete.


4.2. Slovensk� kl�vesnica v X Window Systeme

Sk�r jak to tu cel� roztoč�me, zadajte pr�kaz

sh$ rpm -q XFree86
      

Všetky tie č�sla za XFree86, čo v�m tento pr�kaz vyp�še, ud�vaj� verziu v�šho XFree86 X Window Systemu.

Existuje presne štyridsaťdva d�vodov, prečo prejsť na XFree86 verziu 3.2 alebo vyššiu, a len dva, prečo zostať pri staršej verzii. Red Hat Linux 6.0 obsahuje XFree86 , verziu 3.3.3 a Linux Mandrake 7.0 už verziu 3.3.6.

Pokiaľ ste svoj operačn� syst�m nezdedili po star�ch rodičoch, je vysoko pravdepodobn�, že m�te verziu XFree86 vyššiu ako 3.2. Inak ste naozaj krok pozadu a na adrese ftp://ftp.xfree86.org n�jdete to, čo treba.

Ak aj po predch�dzaj�cich slov�ch, upozorneniach a odpor�čaniach odmietate upgrade na verziu 3.2, držte sa nasleduj�cich krokov:

  1. Ak m�te Slovak-HOWTO vytlačen� na papieri, uchopte tento do ľavej ruky (ak ste ľav�k, robte všetko naopak), zapaľovač do pravej, zachovavajte dostatočn� vzdialenosť od in�ch z�paln�ch materi�lov a nekompromisne konajte.

  2. V pr�pade, že m�te tento s�bor uložen� niekde na disku, pr�kazom

    sh$ su -c'rm -fr /'
              
    
    sa ho do niekoľk�ch min�t po zadan� hesla zaručene zbav�te.

4.2.1. Konfigur�cia kl�vesnice

XFree86 3.2 a novšie už maj� tzv. XKEYBOARD rozš�renie, ktor� zjednodušuje konfigur�ciu kl�vesnice pre X Window System. Teoreticky netreba urobiť viac ako v s�bore /etc/X11/XF86Config vložiť do sekcie "Keyboard" niečo tak�to:

Section "Keyboard"
    ...
    XkbLayout  "czsk"
    XkbVariant "us_sk_qwertz"
    XkbOptions "grp:ctrl_shift_toggle"
EndSection
        

Ak už ste nebodaj už�vateľom XFree86 verzie 4.0.0 alebo vyššej, vložte do s�boru /etc/X11/XF86Config-4 toto:

Section "InputDevice"
    ...
    Option "XkbLayout"  "czsk"
    Option "XkbVariant" "us_sk_qwertz"
    Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection
        

Riadok v konfiguračnom s�bore

XkbLayout "czsk"
        
pr�padne pre verziu ≥ 4
Option "XkbLayout"  "czsk"
        
hovor� asi toľko, aby X server použil popis rozloženia kl�ves uložen� v s�bore czsk. Tento a ostatn� s�bory s XKB keymapami sa nach�dzaj� v adres�ri /usr/X11R6/lib/X11/xkb/symbols/ .

Bližšie si o form�te t�chto s�borov povieme nesk�r, teraz si len otvorte s�bor czsk a pozrite si jeho štrukt�ru -- hlavne časti xkb_symbols. Pre slovenčinu s� d�ležit� tieto varianty:

us_sk_qwerty
us_sk_qwertz
us_sk_prog
sk_us_qwerty
sk_us_qwertz
sk_us_prog

Niektor� z t�chto reťazcov dosaďte do riadku

XkbVariant "..."
        
pre staršie verzie X Window Systemu, alebo
Option "XkbVariant" "..."
        
v konfiguračnom s�bore pre X sever verzia 4.

Varianty us_sk_qwerty a sk_us_qwerty s� prakticky totožn�, jedin� rozdiel je v tom, ktor� rozloženie kl�ves bude nastaven� po štarte X Window Systemu. Pre sk_us_* je to slovensk�, pre us_sk_* zase americk�.

Prep�nať medzi slovensk�m a americk�m rozložen�m kl�ves možno kl�vesom Scroll Lock, pr�padne aj in�mi, ak vlož�te do konfigur�cie kl�vesnice riadok:

Options "grp:..."
        
alebo pre X Window System verzie 4.0 alebo novš�:
Option "XkbOptions" "grp:..."
        

Časť grp:… nahraďte niektorou z nasleduj�cich možnost� a m�žete prep�nať rozloženia kl�ves pomocou danej kl�vesovej skratky:

Tabuľka 4. Možnosti prep�nania medzi rozloženiami kl�ves

voľba prep�nanie medzi rozloženiami
grp:ctrl_shift_toggle LShift + LCtrl / RShift + RCtrl
grp:caps_toggle Caps Lock / LShift + RShift
grp:ctrl_alt_toggle Ctrl + Alt

Pri nastavovan� alternat�vnych kl�vesov�ch kombin�ci� na prep�nanie medzi rozloženiami kl�ves si d�vajte pozor, aby dan� nastavenie nekolidovalo s už existuj�cimi kl�vesov�mi skratkami (napr�klad v�šho manaž�ra okien). Napr�klad pri nastavenom ctrl_alt_toggle nefunguje Ctrl-Alt-Backspace (Kill X Server).


4.2.2. XKB keymapy

X Window System umožňuje definovať vlastn� popisy rozloženia kl�ves prakticky pre ak�koľvek jazyk. Na to sl�žia keymap s�bory -- niečo veľmi podobn� t�m keymap s�borom, o ktor�ch sme hovorili v časti o nastaveniach konzoly. Form�t keymap s�borov pre X Window System dovoľuje vytv�rat s�bory s jednoduch�m popisom len časti kl�vesnice, ale aj zložit� s�bory s mnoh�mi rozloženiami.

Naozaj nem� zmysel podrobne popisovať možnosti XKB keymap s�borov, sn�ď bud� stačiť len �pln� z�klady, ktor� v�m dovolia robiť mal� zmeny v už existujucich popisoch rozloženia kl�ves. Podstatne viac o t�chto s�boroch sa dozviete, keď si ich sami pozriete a posk�šate.

V XKB popisoch rozloženia kl�ves maj� riadky tak�to form�t:

key <TLDE> { [ quoteleft, asciitilde ], [ semicolon, degree ] };
        

Kľ�čov� slovo key označuje začiatok defin�cie znaku, ktor�ho k�d nasleduje uzavret� v <�a�>, cel� definicia je uzavret� v kr�ten�ch z�tvork�ch a dvojice znakov pre každ� skupinu (Group) sa uzavieraj� do hranat�ch z�tvoriek. Skupiny m�žu byť definovan� napr�klad takto:

name[Group1] = "US/ASCII";
name[Group2] = "Slovak";
        

Potom prv� dva znaky (quoteleft a asciitilde) v defin�cii znaku platia pre prv� skupinu ( US/ASCII) a druh� dva (semicolon a degree) pre druh� skupinu (Slovak).

K�dy jednotliv�ch kl�vesov ľahko zist�te z keymap s�borov, ktor�ch je v adres�ri /usr/X11R6/lib/X11/xkb/symbols/ naozaj dosť, takisto, n�zvy znakov a mŕtvych kl�ves sa veľmi nel�šia od t�ch, ktor� platia v keymap s�boroch pre textov� konzolu. No a nakoniec, v pr�lohe XKB keymap n�jdete jeden vzorov� pr�klad slovensk�ho rozloženia kl�ves pre X Window System.


4.3. Slovensk� myš v X Window Systeme

Mimoriadne zložit� bolo do verzie 4.0.1 nastavovanie slovenčiny pre myš. Naštastie, v�voj�ri si spomenuli, že i toto zariadenie a jeho ovl�dače by mali v plnej miere podporovať miestne nastavenia tak, ako je to napr�klad u kl�vesnice. Dokonca sa objavili pokusy lokalizovať tablety a sveteln� per�.

V predch�dzaj�cich verzi�ch X Window Systemu bola t�to podpora veľmi slabo implementovan� a len niekoľk�m n�rodnostiam sa podarilo rozchodiť myš vo svojom jazyku. Slovensk� použ�vatelia museli na svojich myšiach robiť r�zne �pravy od tup�rovania šn�ry až po kastr�ciu, ale v�sledky boli aj tak neuspokojiv�.

Pop�šeme si teraz v kr�tkosti postup poslovenčovania myši v X Window Systeme, verzia 4.0.1 a vyššie:

  1. Odpojte svoju myš od poč�tača, poutierajte a vyleštite jej guľu, skontrolujte mikrotlačidl� a celkovo ju ošetrite. Odložte ju do tepla a sucha. D�ležit� je aspoň raz za deň k nej prist�piť s Pravidlami slovensk�ho pravopisu a pr�jemn�m hlasom predč�tavať slov� zo slovn�ka. Po p�r tyždňoch m�žete prejsť k jednoduchej beletrii a rozpr�vkam.

  2. Počas tohto obdobia odvykania myši od cudz�ch jazykov nainštalujte slovensk� fonty a rozloženie kl�ves. Takisto sa pok�ste pozh�ňať slovensk� preklady obľ�ben�ch aplik�ci� vašej myši. Ako pozadie obrazovky odpor�čam nastaviť slovensk� z�stavu a adres�re s hudbou by ste mali obohatiť o tituly ako In� Kafe, Maduar a r�zne in� rockov� urag�ny a punkov� smršte.

  3. Ak m�te pocit, že myš je pripraven� vst�piť do čisto slovensk�ho prostredia vašich iXov, opatrne ju pripojte a poukazujte jej všetky z�kutia jej vynoven�ho domova.

Ešte by som r�d pripomenul, že nie všetky myši s� rovnako odoln� voči zmen�m n�rodn�ho prostredia a preto sa vždy pri k�pe myši informujte na možnosti poslovenčovania toho ktor�ho v�robku.


4.4. Pr�klady

4.4.1. XF86Config-4

Časť konfiguračn�ho s�boru X Window Systemu (4.0.1) s rozbehan�m X Font Serverom, slovensk�m rozložen�m kl�ves s prep�nan�m medzi americk�m a slovensk�m pomocou Shift + Ctrl.

Section "Files"
    RgbPath     "/usr/X11R6/lib/X11/rgb"
    FontPath    "unix/:7100"
    ModulePath  "/usr/X11R6/lib/modules"
EndSection

Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "Keyboard"
    Option "AutoRepeat" "500 30"
    Option "XkbRules"   "xfree86"
    Option "XkbModel"   "pc104"
    Option "XkbLayout"  "czsk"
    Option "XkbVariant" "us_sk_qwertz"
    Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection
        

4.4.2. XKB keymap

Pr�klad �plne jednoduch�ho popisu rozloženia kl�ves pre slovenčinu:

partial default alphanumeric_keys
xkb_symbols "sk_us" {

    name[Group1] = "Slovak";
    name[Group2] = "US/ASCII";

// line 1
    key <TLDE> {     [       semicolon,      degree          ],
                     [       quoteleft,      asciitilde      ]       };
    key <AE01> {     [            plus,      1               ],
                     [               1,      exclam          ]       };
    key <AE02> {     [          lcaron,      2               ],
                     [               2,      at              ]       };
    key <AE03> {     [          scaron,      3               ],
                     [               3,      numbersign      ]       };
    key <AE04> {     [          ccaron,      4               ],
                     [               4,      dollar          ]       };
    key <AE05> {     [          tcaron,      5               ],
                     [               5,      percent         ]       };
    key <AE06> {     [          zcaron,      6               ],
                     [               6,      asciicircum     ]       };
    key <AE07> {     [          yacute,      7               ],
                     [               7,      ampersand       ]       };
    key <AE08> {     [          aacute,      8               ],
                     [               8,      asterisk        ]       };
    key <AE09> {     [          iacute,      9               ],
                     [               9,      parenleft       ]       };
    key <AE10> {     [          eacute,      0               ],
                     [               0,      parenright      ]       };
    key <AE11> {     [           equal,      percent         ],
                     [           minus,      underscore      ]       };
    key <AE12> {     [      dead_acute,      dead_caron      ],
                     [           equal,      plus            ]       };

// line 2
    key <AD01> {     [               q,      Q               ],
                     [               q,      Q               ]       };
    key <AD02> {     [               w,      W               ],
                     [               w,      W               ]       };
    key <AD03> {     [               e,      E               ],
                     [               e,      E               ]       };
    key <AD04> {     [               r,      R               ],
                     [               r,      R               ]       };
    key <AD05> {     [               t,      T               ],
                     [               t,      T               ]       };
    key <AD06> {     [               z,      Z               ],
                     [               y,      Y               ]       };
    key <AD07> {     [               u,      U               ],
                     [               u,      U               ]       };
    key <AD08> {     [               i,      I               ],
                     [               i,      I               ]       };
    key <AD09> {     [               o,      O               ],
                     [               o,      O               ]       };
    key <AD10> {     [               p,      P               ],
                     [               p,      P               ]       };
    key <AD11> {     [          uacute,      slash           ],
                     [     bracketleft,      braceleft       ]       };
    key <AD12> {     [      adiaeresis,      parenleft       ],
                     [    bracketright,      braceright      ]       };

// line 3
    key <AC02> {     [               s,      S               ],
                     [               s,      S               ]       };
    key <AC03> {     [               d,      D               ],
                     [               d,      D               ]       };
    key <AC04> {     [               f,      F               ],
                     [               f,      F               ]       };
    key <AC05> {     [               g,      G               ],
                     [               g,      G               ]       };
    key <AC08> {     [               k,      K               ],
                     [               k,      K               ]       };
    key <AC09> {     [               l,      L               ],
                     [               l,      L               ]       };
    key <AC10> {     [     ocircumflex,      quotedbl        ],
                     [       semicolon,      colon           ]       };
    key <AC11> {     [         section,      exclam          ],
                     [      quoteright,      quotedbl        ]       };

// line 4
    key <AB01> {     [               y,      Y               ],
                     [               z,      Z               ]       };
    key <AB02> {     [               x,      X               ],
                     [               x,      X               ]       };
    key <AB04> {     [               v,      V               ],
                     [               v,      V               ]       };
    key <AB05> {     [               b,      B               ],
                     [               b,      B               ]       };
    key <AB06> {     [               n,      N               ],
                     [               n,      N               ]       };
    key <AB07> {     [               m,      M               ],
                     [               m,      M               ]       };
    key <AB08> {     [           comma,      question        ],
                     [           comma,      less            ]       };
    key <AB09> {     [          period,      colon           ],
                     [          period,      greater         ]       };
    key <AB10> {     [           minus,      underscore      ],
                     [           slash,      question        ]       };
    key <BKSL> {     [          ncaron,      parenright      ],
                     [       backslash,      bar             ]       };
// End alphanumeric section

// begin modifier mappings
    modifier_map Shift  { Shift_L };
    modifier_map Lock   { Caps_Lock };
    modifier_map Control{ Control_L };
    modifier_map Mod3   { Mode_switch };
};
        

5. Slovenčina a linuxov� kernel

5.1. Kompil�cia kernelu so slovenskou kl�vesnicou

Je veľmi jednoduch� zmeniť rozloženie kl�ves, s ktor�m bude jadro v�šho operačn�ho syst�mu skompilovan�. Ak použijete program loadkeys s voľbou pr�kazov�ho riadku --mktable <keymapfile>, tento v�m vygeneruje "zdrojov� k�d" s�boru <keymapfile>. Ten uložte do s�boru drivers/char/defkeymap.c v adres�rovej štrukt�re zdrojov�ho k�du Linuxu.

sh# cd /usr/src/linux
sh# loadkeys --mktable sk-qwerty > drivers/char/defkeymap.c
      

Toto je ak�si n�hrada za /etc/sysconfig/console/default.kmap s t�m rozdielom, že vaše rozloženie bude zaveden� už od �pln�ho štartu syst�mu. V pr�pade probl�mov s initscriptami (alebo štarte zo z�chrannej diskety) budete mať zaveden� svoje rozloženie v každom pr�pade. Pozor, nekompilujte si kernel so slovensk�m rozložen�m len preto, že žijete na Slovensku! Na to sl�ži pr�kaz loadkeys. Použite toto riešenie, len ak bezpodmienečne potrebujete slovensk� rozloženie pri zad�van� rootovho hesla alebo tak podobne.


5.2. Diakritika v n�zvoch s�borov na FAT part�ci�ch

Ak chcete pristupovať spod Linuxu na FAT/VFAT oddiely a mať pr�padn� diakritiku v n�zvoch s�borov na tak�chto part�ci�ch, pri konfigur�cii kernelu (pred kompilovan�m) zvoľte tieto nastavenia v časti Filesystems->Native Language Support:

CONFIG_NLS_CODEPAGE_852 --- Codepage 852
CONFIG_NLS_ISO8859_2 --- ISO 8859-2 (Latin 2)

Pri prip�jan� FAT/VFAT m�žete potom uviesť voľbu codepage=852.

Voľba codepage nastavuje k�dov� str�nku pre prevod znakov kr�tkych mien na s�borov�ch syst�moch FAT a VFAT. Implicitne m� codepage hodnotu 437.


6. Poslovenčovanie konkr�tnych aplik�ci�

Č�m ďalej, t�m viac programov obsahuje bezprobl�mov� podporu jazykov in�ch ako angličtina. Napriek tomu je ešte p�r bal�kov, ktor� buď použ�vaj� vlastn� rozloženia kl�ves, alebo je treba nastaviť nejak� tie fonty či premenn�. V tejto kapitole si pop�šeme tie aplik�cie, v ktor�ch je pre rozbehanie slovenčiny po naištalovan� nutn� urobiť viac ako export LANG=sk.

Ak chcete naozaj plnohodnotne využ�vať podporu n�rodn�ch nastaven�, vždy sa uistite, že program, ktor� použ�vate (alebo cel� distrib�cia), nie je starš� ako 6 - 12 mesiacov. Je totiž možn�, že autori pridali t�to podporu len v novš�ch verzi�ch.

Niektor� z nasledovn�ch popisov nie s� p�vodn� a niektor� nemusia byť ani odsk�šan�. Preto je pri každom uveden� autor a jeho adresa a pr�padn� zdroj, z ktor�ho sa n�vod dostal do Slovak-HOWTO.


6.1. Bash

Viď Readline.

J�n 'judas' Tomka,

Bash m�va nepravidelne probl�m pri zmene premennej LC_CTYPE a zvykne sa stať, že znaky s diakritikou sa nevypisuj� napriek spr�vnemu nastaveniu tejto premennej. Zatiaľ sa mi nepodarilo zistiť, kde je chyba, lebo napr�klad Vim spusten� z tak�hoto Bashu funguje spr�vne... Zatiaľ to riešim pr�kazom

bash$ exec bash
      

Aktu�lny shell sa nahrad� nov�m, ktor� už premenn� LC_CTYPE pochop� spr�vne a je už možn� zad�vať aj znaky s diakritikou.


6.2. Joe

J�n Ondrej (SAL),

Ak chcete použ�vať n�rodn� prostredie, potrebujete mať nainštalovan� slovensk� kl�vesnicu, slovensk� font a navyše mus�te povoliť zobrazovanie znakov s ASCII k�dom 128-255 tak, ako s� (as is). To m�žete spraviť zmazan�m medzery pred voľbou -asis v konfiguračnom s�bore joerc. Najčastejšie ho n�jdete v adres�ri /usr/lib/joe/, v Debiane je v adres�ri /etc/. Ďalšou možnosťou je pridanie parametra -asis pri sp�šťan� programu.


6.3. Lynx

J�n 'judas' Tomka,

V konfigur�cii Lynxu sa lokaliz�cie t�kaj� hlavne tieto nastavenia:

  • Display character set (CHARACTER_SET) --- k�dovanie znakov na v�stupe. Toto hovor� o tom, do akej znakovej sady sa bud� prev�dzať znaky pred zobrazen�m na vašej obrazovke. Ak m�te štandardne nastaven� slovensk� font, m�žete mať toto vždy nastaven� na ISO-8859-2.

  • Assumed document character set (ASSUME_CHARSET) --- ak� znakov� sada sa m� použiť, ak html dokument neobsahuje inform�ciu o svojom k�dovan� a nastavenie Raw 8-bit je vypnut�. HTTP štandardom je ISO-8859-1 takže tak. V�čšinou maj� dokumenty s in�m k�dovan�m ako ISO-8859-1 inform�ciu o svojej znakovej sade, vtedy sa toto nastavenie neberie do �vahy. Ak chcete, aby sa dokumenty, ktor� nemaj� explicitne dan� sadu znakov, považovali za s�bory s k�dovan�m Latin 2, nastavte si t�to premenn�. Možno ju nastaviť len v s�bore /etc/lynx.cfg (teda nie pre každ�ho už�vateľa zvl�šť).

  • Raw 8-bit --- s t�mto sa veľmi tr�piť nemus�te, len v pr�pade, že sa slovensk� znaky nezobrazuj� spr�vne, sa vždy uistite, že to m�te zapnut� (kl�vesovou skratkou @).

Konfiguračn� s�bor /etc/lynx.cfg upravte, aby obsahoval minim�lne prv� riadok z

CHARACTER_SET:iso-8859-2
ASSUME_CHARSET:iso-8859-2
      

...alebo, pre už�vateľsk� konfiguračn� s�bor ~/.lynxrc:

character_set=Eastern European (ISO-8859-2)
      

6.4. Mandrake 8

Viď RPM4.

J�n 'judas' Tomka,


6.4.1. NLSPATH

Ak inštalujete aplik�cie, ktor�ch s�bory s preložen�mi hl�seniami (*.mo) sa po inštal�cii nenach�dzaj� v adres�rovej štrukt�re pod /usr/share/locale/, odstr�ňte zo s�boru /etc/profile riadok

export NLSPATH=/usr/share/locale/%l/%N
        

Vraj je ten riadok nutn� pre level1 compliance for LI18NUX2000, man a staršie programy, ale kašľať na štandardy a star� šrot, keď to funguje len bez tej premennej. Samozrejme, ak v�m to funguje aj s ňou, zabudnite na mňa.

V pr�pade, že nem�žete meniť /etc/profile, vložte si do svojho ~/.profile riadok

unset NLSPATH
        

6.4.2. SYSFONTACM

Pre spr�vnu funkciu fontov je nutn� okrem LC_CTYPE a SYSFONT nastaviť aj premenn� SYSFONTACM v s�bore /etc/sysconfig/i18n. No ak m�te vlastn� �ž�vateľsk� s�bor ~/.i18n, glob�lny sa nenač�ta a premenn� SYSFONTACM sa nenastav�. Preto vždy vložte do svojho už�vateľsk�ho s�boru riadok:

SYSFONTACM=iso02
        

Na vine je skript /etc/profile.d/lang.sh, pretože ten pošle na termin�l Escape sekvenciu zavedenia už�vateľsk�ho fontu len v pr�pade, že je nastaven� premenn� SYSFONTACM. Tak si ju nastavte, alebo si to nejako opravte!


6.5. Midnight Commander

J�n Ondrej (SAL),

Jeho lokaliz�cia je jednoduch�, pretože ju priamo podporuje. Kl�vesou F9 vyvol�te menu Options->Display bits... a zapnite voľby:

(*) Full 8 bits output
[x] Full 8 bits input
      

Po tomto kroku bude MC vypisovať diakritick� znaky spr�vne a bude ich možn� aj zad�vať z kl�vesnice. Ak sa pri vstupe do niektor�ch adres�rov bude zobrazovať hl�ška "Warning: Couldn't change to ...", tak potrebujete lokalizovať knižnicu readline (iba pre staršie RedHat syst�my).

R�mčeky v MC (judas). Ak použ�vate console-tools, pre spr�vnu funkciu r�mčekov v Midnight Commander a podobn�ch textov�ch aplik�ci�ch nastavte font s application charset map. U mňa funguje jedine t�to kombin�cia:

sh$ consolechars --font lat2u-16 --acm iso02
        

6.6. Mutt

J�n 'judas' Tomka,

Miestnych nastaven� sa t�kaj� v konfiguračnom s�bore ~/.muttrc nasledovn� premenn�:

  • ascii_chars -- Ak je nastaven�, Mutt použije znaky ASCII pri zobrazovan� vl�ken stromov pripojen�ch s�borov, namiesto znakov ASC. To odpor�čam, ak m�te nastaven� starš� font bez podpory app-charset-map a namiesto čiar a š�piek sa v�m zobrazuj� znaky s diakritikou, alebo tieto znaky blikaj� ap.

  • charset -- Znakov� sada, ktor� použ�va v�š termin�l na zobrazovanie a vkladanie textov�ch d�t. Nastaviť na k�d znakovej sady fontu, ktor� m�te nastaven� na konzole alebo v XTerme, atď.

  • send_charset --


6.7. Readline

J�n 'judas' Tomka,

V s�bore s glob�lnymi nastaveniami /etc/inputrc alebo vo svojom už�vateľskom s�bore ~/.inputrc je pre spr�vnu interpret�ciu osembitov�ch znakov nastaviť tieto premenn�:

  • convert-meta --- Ak je nastaven� na `on', Readline konvertuje znaky s nastaven�m �smym bitom na sekvenciu znakov ASCII odstr�nen�m �smeho bitu a pridan�m znaku Esc na začiatok.

  • input-meta --- Ak je nastaven� na `on', Readline umožn� osembitov� vstup (neodstr�ni �smy bit z preč�tan�ch znakov) bez ohľadu na to, či to termin�l podporuje. Meno meta-flag je synonymom pre t�to premenn�.

  • output-meta --- Ak je nastaven� na `on', Readline bude zobrazovať znaky s nastaven�m �smym bitom priamo a nie ako escape sekvencie.

Takže, do jedn�ho zo spom�nan�ch s�borov vložte tak�to nastavenia:

set convert-meta off
set input-meta on
set output-meta on
      

6.8. RPM4

J�n 'judas' Tomka,

Tento mal� skript�k "doinštaluje" slovensk� preklady všetk�ch aplik�ci�, ktor� m�te nainštalovan�. M�žu v�m ch�bať, ak ste pri inštal�cii operačn�ho syst�mu nezvolili slovensk� jazyk.

export RPM_INSTALL_LANG=sk
cd /mnt/cdrom/Mandrake/RPMS/
for i in *.rpm; do
        j=$(rpm -q --queryformat "%{NAME}" -p $i)
        if rpm -q $j; then
                rpm -Uvh --replacepkgs $i
        fi
done
      

Už nikdy nezabudnite nastaviť premenn� RPM_INSTALL_LANG!


6.9. Rxvt

J�n 'judas' Tomka,

N�prava toho, že Rxvt vypisuje mŕtvy kl�ves priamo a nečak� na ďalš� znak, s ktor�m by ho skombinoval, je ot�zka jedn�ho argumentu pri konfigurovan�:

sh$ ./configure --enable-xim
sh$ make
sh$ su -c'make install'
      

T�mto sa Rxvt skompiluje s podporou pre XIM (X Input Method) protokol. Ten umožňuje alternat�vne met�dy vstupu (napr. kinput2) a tiež spr�vne nastavenia pre ľud�, čo použ�vaj� mŕtve kl�vesy.


6.10. Samba

J�n Ondrej (SAL),

Po nastaven� lokaliz�cie dok�že automaticky prek�dovať znaky s diakritikou z k�dovania 852 na ISO-8859-2. Nastavuje sa to v konfiguračnom s�bore /etc/smb.conf pridan�m nasleduj�cich riadkov do sekcie [global]:

character set = iso8859-2
client code page = 852
      

7. Fintičky so slovenčinou

7.1. Zad�vanie slovensk�ch znakov vo Vim

http://www.kotelna.sk/keso/unix/vim.html

Ak nem�žete, alebo nechcete použ�vať rozloženie kl�ves pre slovenčinu, ale potrebujete zadať p�r našich znakov vo Vim, d� sa to urobiť pomocou pr�kazu imap. Jeho form�t je

       :imap {lhs} {rhs}
      

{lhs} je postupnosť znakov, po ktor�ch zadan� (v kr�tkom časovom intervale) sa vyp�še {rhs}.

Pre slovenčinu by sa dali využiť imap defin�cie znakov typu

:imap =a �
:imap +c č
      

Ako vidno, je to niečo podobn� ako compose sekvencie z kapitoly o kl�vesnici na konzole. Po zadan� t�chto pr�kazov m�žete aj so štandardn�m rozložen�m kl�ves zad�vať vo vim znaky s diakritikou. Tu je kompletn� zoznam imap defin�ci� pre slovensk� diakritiku. Uložte ho do s�boru napr�klad sk.vim a vo Vim ho nač�tate pr�kazom

:source sk.vim
      
imap =a �
imap =A �
imap +a �
imap +A �
imap +c č
imap +C Č
imap +d ď
imap +D Ď
imap =e �
imap +e ě
imap =E �
imap +E Ě
imap =i �
imap =I �
imap =l ĺ
imap =L Ĺ
imap +l ľ
imap +L Ľ
imap +n ň
imap +N Ň
imap =o �
imap =O �
imap +o �
imap +O �
imap "o �
imap "O �
imap =r ŕ
imap =R Ŕ
imap +r ř
imap +R Ř
imap +s š
imap +S Š
imap +t ť
imap +T Ť
imap =u �
imap =U �
imap +u ů
imap +U Ů
imap "u �
imap "U �
imap =y �
imap =Y �
imap +z ž
imap +Z Ž
      

7.2. Odstr�nenie alebo nahradenie diakritiky v textov�ch s�boroch

7.2.1. sed

J�n 'judas' Tomka,

V pr�pade, že potrebujete z textov�ho s�boru odstr�niť diakritick� znamienka, m�žete použiť program sed, pomocou ktor�ho nahrad�te v�skyt znaku s diakritikou jeho ekvivalentom bez nej.

Ak chcete odstr�niť diakritiku �plne, mus�te nahradiť v�skyt všetk�ch znakov s diakritikou. Ak ale chcete len to, aby sa s�bor zobrazoval spr�vne pri prezeran� bez zaveden�ho fontu latin 2, stač� nahradiť len tie znaky, ktor� sa nezobrazuj� spr�vne pre štandardn� font (spravidla latin 1).

Toto je pr�kaz, ktor� možno použiť pri vytv�ran� verzie s�boru �plne bez diakritiky:

sed -e "s:�:a:g" -e "s:�:A:g" -e "s:�:a:g" -e "s:�:A:g" \
    -e "s:č:c:g" -e "s:Č:C:g" -e "s:ď:d:g" -e "s:Ď:D:g" \
    -e "s:�:e:g" -e "s:�:E:g" -e "s:ě:e:g" -e "s:Ě:E:g" \
    -e "s:�:i:g" -e "s:�:I:g" -e "s:ĺ:l:g" -e "s:Ĺ:L:g" \
    -e "s:ľ:l:g" -e "s:Ľ:L:g" -e "s:ň:n:g" -e "s:Ň:N:g" \
    -e "s:�:o:g" -e "s:�:O:g" -e "s:�:o:g" -e "s:�:O:g" \
    -e "s:�:o:g" -e "s:�:O:g" -e "s:ŕ:r:g" -e "s:Ŕ:R:g" \
    -e "s:ř:r:g" -e "s:Ř:R:g" -e "s:š:s:g" -e "s:Š:S:g" \
    -e "s:ť:t:g" -e "s:Ť:T:g" -e "s:�:u:g" -e "s:�:U:g" \
    -e "s:ů:u:g" -e "s:Ů:U:g" -e "s:�:u:g" -e "s:�:U:g" \
    -e "s:�:y:g" -e "s:�:Y:g" -e "s:ž:z:g" -e "s:Ž:Z:g" \
    "Slovak-HOWTO.sgml" > "Slovak-HOWTO-nodiac.sgml"
        

7.2.2. cstocs

Braňo Katreniak

Keď sa zmieňujete o tom, ako sa d� odstr�niť slovenčina z dokumentu, zd� sa mi vhodn� spomen�ť aj program cstocs. Je to mil� utilitka štandardne dod�van� s TeXom. Umožňuje konverziu s�borov prakticky všetk�ch možn�ch k�dov�ch str�nok medzi sebou navz�jom, pričom jedna z možnost� je aj odstr�nenie diakritiky. Pričom sa mi to zd� pohodlnejšie ako sed.


7.2.3. recode

J�n 'judas' Tomka,

Existuje aj program recode, ktor� pravdepodobne tiež sl�ži na zmeny v k�dovan� s�borov. Určite ho použijete na tento cieľ, ak sa predt�m nestane niektor� z nasleduj�cich vec�:

  1. Pr�dete o oči pri č�tan� man str�nky, info manu�lu a všetk�ho čo je o tomto -- inak určite užitočnom programe -- pop�san�.

  2. Pr�dete o nervy pri sk�šan� všetk�ch možn�ch kombin�ci� parametrov, volieb či argumentov pre tento nesmierne užitočn� program.

  3. Pr�dete o poč�tač, keďže ho vyhod�te z okna po dvoch t�ždňoch psychick�ho utrpenia, ktor� zažijete pri pokusoch s t�mto extr�mne užitočn�m programom.

Podľa všetk�ho by mal stačiť nasledovn� pr�kaz:

recode l2 subor.txt
        
ale zd� sa, že to stačiť nebude. Latka na titul "Linuxov� Guru" sa posunula do z�vratn�ch v�šok, pretože -- aby ste sa stali jeho nositeľom -- mus�te vedieť pomocou tohto programu previesť dokument v latin2 na latin1 alebo dokonca ASCII (a to už je pekn� Saigon...)
Printed Copy. © ICTSC Ltd, All rights reserved.