Slovak-HOWTO

Ján 'judas' Tomka

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.

-----------------------------------------------------------------------------
Obsah
1. Úvodné informácie
    1.1. Licencia
    1.2. Aktuálna verzia a prispievanie
    1.3. Osoby a obsadenie
   
   
2. Miestne nastavenia
    2.1. Princípy miestnych nastavení
    2.2. Miestne nastavenia pre Slovensko
    2.3. Príklady miestnych nastavení
   
   
3. Nastavenia konzoly
    3.1. Sloven??ina na výstupe textovej konzoly
    3.2. Slovenská klávesnica na textovej konzole
    3.3. Zhrnutie nastavení konzoly
   
   
4. Nastavenia X Window Systemu
    4.1. Slovenské fonty v X Window Systeme
    4.2. Slovenská klávesnica v X Window Systeme
    4.3. Slovenská my?? v X Window Systeme
    4.4. Príklady
   
   
5. Sloven??ina a linuxový kernel
    5.1. Kompilácia kernelu so slovenskou klávesnicou
    5.2. Diakritika v názvoch súborov na FAT partíciách
   
   
6. Posloven??ovanie konkrétnych aplikácií
    6.1. Bash
    6.2. Joe
    6.3. Lynx
    6.4. Mandrake 8
    6.5. Midnight Commander
    6.6. Mutt
    6.7. Readline
    6.8. RPM4
    6.9. Rxvt
    6.10. Samba
   
   
7. Finti??ky so sloven??inou
    7.1. Zadávanie slovenských znakov vo Vim
    7.2. Odstránenie alebo nahradenie diakritiky v textových súboroch
   
   

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] 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ú:

  * Aktuálna verzia: [http://slovencina.linux.sk/howto/] http://
    slovencina.linux.sk/howto
   
  * Priania, s??a??nosti a ponuky na sobá??: [mailto:judas@linux.sk]
    judas@linux.sk
   

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] 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, <judas@linux.sk>

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), <ondrejj@salstar.shadow.sk>

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, <judas@linux.sk>

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, <judas@linux.sk>
-----------------------------------------------------------------------------

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), <ondrejj@salstar.shadow.sk>

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, <judas@linux.sk>

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, <judas@linux.sk>

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, <judas@linux.sk>

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, <judas@linux.sk>

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), <ondrejj@salstar.shadow.sk>

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] 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, <judas@linux.sk>

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, <judas@linux.sk>

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...)
