LDP/LDP/howto/docbook/Slovak-HOWTO/Slovak-HOWTO.sgml

3136 lines
147 KiB
Plaintext

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!-- $Id$ -->
<!ENTITY % skhowto.draft "IGNORE">
]>
<article id="index" lang="sk">
<articleinfo>
<title>Slovak-HOWTO</title>
<authorgroup>
<author>
<firstname>Ján</firstname><othername>'judas'</othername><surname>Tomka</surname>
</author>
</authorgroup>
<releaseinfo>verzia 4 (Blanka)</releaseinfo>
<pubdate>19. február 2002</pubdate>
<keywordset>
<keyword>Slovakia</keyword> <keyword>Slovensko</keyword> <keyword>sloven&ccaron;ina</keyword>
<keyword>keyboard</keyword> <keyword>klávesnica</keyword> <keyword>kbd</keyword>
<keyword>font</keyword> <keyword>písmo</keyword> <keyword>console</keyword>
<keyword>konzola</keyword> <keyword>GNU</keyword> <keyword>Linux</keyword>
</keywordset>
<abstract>
<para>Tento dokument poskytuje informácie týkajúce sa problematiky miestnych nastavení v
prostredí opera&ccaron;ných systémov GNU/Linux s oh&lcaron;adom na potreby slovenského u&zcaron;ívate&lcaron;a.</para>
</abstract>
</articleinfo>
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="intro">
<title>Úvodné informácie</title>
<section id="intro-licence">
<title>Licencia</title>
<para>Áno, mô&zcaron;ete &ccaron;íta&tcaron; tento dokument, a to aj na komer&ccaron;né u&ccaron;ely!</para>
<para>Autori nenesú zodpovednos&tcaron; za materiálnu &ccaron;i psychickú ujmu spôsobenú &ccaron;itate&lcaron;ovi, jeho
rodinným príslu&scaron;níkom, domácim a hospodárskym zvieratám, prípadne po&ccaron;íta&ccaron;ovému
zariadeniu.</para>
<para>Toto je <quote>free</quote> dokument --- mô&zcaron;ete ho &scaron;íri&tcaron; a/alebo modifikova&tcaron; v súlade s
podmienkami licencie <citetitle><acronym>GNU</acronym> Free Documentation Licence</citetitle>,
ktorej znenie nájdete na adrese <ulink url="http://www.gnu.org/licenses/fdl.html">
http://www.gnu.org/licenses/fdl.html</ulink>.</para>
</section> <!-- intro-licence -->
<section id="intro-contrib">
<title>Aktuálna verzia a prispievanie</title>
<para>Ak nájdete v tomto súbore nie&ccaron;o, &ccaron;o je nezlú&ccaron;ite&lcaron;né s va&scaron;im linuxovým presved&ccaron;ením,
napí&scaron;te najskôr do diskusie linux, potom sk-i18n, dajte príspevok na www.linux.sk a
poohovárajte ma na &num;sklug. V prípade, &zcaron;e vás to neprejde, skontrolujte, &ccaron;i máte aktuálnu
verziu a, samozrejme, a&zcaron; nakoniec, dajte mi vedie&tcaron;. Adresy sú:
<itemizedlist>
<listitem>
<simpara>Aktuálna verzia:
<ulink url="http://www.linuxdoc.org/HOWTO/Slovak-HOWTO/index.html">
http://www.linuxdoc.org/HOWTO/Slovak-HOWTO/index.html</ulink></simpara>
</listitem>
<listitem>
<simpara>Priania, s&tcaron;a&zcaron;nosti a ponuky na sobá&scaron;: <ulink url="mailto:judas@linux.sk">
judas@linux.sk</ulink>
</simpara>
</listitem>
</itemizedlist>
</para>
<para>Na túto adresu sa tie&zcaron; obracajte, ak máte nie&ccaron;o, &ccaron;o by nemalo chýba&tcaron; v
<citetitle>Slovak-HOWTO</citetitle>.</para>
<para>Nadácia Pomô&zcaron; a skonaj prispela na dopísanie &ccaron;asti o klávesnici v iXoch sama sebe &ccaron;iastkou
500&nbsp;000,-&nbsp;Sk, v televízii Pomô&zcaron; a skonaj i v rovnomennom &ccaron;asopise boli zverejnené
inzeráty, politická strana <acronym>PAS</acronym> nekompromisne trvá na kompromise a v&scaron;etci
pijú minerálku <productname>Pomô&zcaron; a skonaj</productname>. Tigre, nosoro&zcaron;ce a lú&ccaron;ne koníky boli
pokrstené, a predsa sa s kapitolou o klávesnici v iXoch ni&ccaron; nedeje. Mimochodom, sme
naj&ccaron;ítanej&scaron;ie <citetitle>Slovak-HOWTO</citetitle> na svete!</para>
<para>Pri prispievaní sa skúste riadi&tcaron; nasledovnými pravidlami:
<itemizedlist>
<listitem>
<simpara>Pre tých, ktorí majú vá&zcaron;ny záujem podie&lcaron;a&tcaron; sa na písaní
<citetitle>Slovak-HOWTO</citetitle>, je mo&zcaron;ný <acronym>CVS</acronym> prístup priamo k
zdrojovým kódom dokumentu na serveri <systemitem class="systemname">cvs.linuxdoc.org
</systemitem> v adresári
<filename class="directory">/cvsroot/LDP/howto/docbook/Slovak-HOWTO/</filename>. Bli&zcaron;&scaron;ie
informácie o získaní CVS konta a webovskom rozhraní k CVS serveru nájdete v
<citetitle><acronym>LDP</acronym> Autor Guide</citetitle>.
</simpara>
</listitem>
<listitem>
<simpara>Opravy robte v&zcaron;dy vo formáte <acronym>SGML</acronym> (<acronym>DTD</acronym>
<application>DocBook</application>, verzia 4.0), ktorý je primárnym formátom pri tvorbe
tohto dokumentu. Je tie&zcaron; mo&zcaron;né posiela&tcaron; &ccaron;istý text. Príspevky pí&scaron;te, pokia&lcaron; mo&zcaron;no, s
diakritikou v norme <acronym>ISO-8859-2</acronym>.</simpara>
</listitem>
<listitem>
<simpara>Ak je to nie&ccaron;o vä&ccaron;&scaron;ie, dajte mi najskôr vedie&tcaron;, &ccaron;o chystáte, preto&zcaron;e je mo&zcaron;né,
&zcaron;e u&zcaron; na tom niekto maká a teda bu&dcaron; na to zabudnete, alebo to skúsite dorobi&tcaron; s danou
osobou. (Vzh&lcaron;adom na to, &zcaron;e zatia&lcaron; sa do tohto dokumentu dostalo asi 20 riadkov
cudzieho textu, zdá sa mi predchádzajúca veta maximálne smie&scaron;na. Ha-ha, zasmial som
sa...)</simpara>
</listitem>
<listitem>
<simpara>Va&scaron;e meno a adresa budú automaticky zverejnené spolu s va&scaron;im príspevkom. Ak si
to ne&zcaron;eláte, musíte o to výslovne po&zcaron;iada&tcaron;. Takisto, autor príspevku u&zcaron; jeho zaslaním
implicitne súhlasí s aplikáciou licencie tohto dokumentu na &ccaron;as&tcaron;, ktorej je
autorom.</simpara>
</listitem>
<listitem>
<simpara>V <citetitle>Czech-HOWTO</citetitle> sa hovorí: <quote>Kdy&zcaron; u&zcaron; n&ecaron;kdo podobný
dokument &ccaron;te, d&ecaron;lá to z nutnosti a ne pro své pobavení.</quote> Musíme v&scaron;ak zobra&tcaron; do
úvahy, &zcaron;e v &Ccaron;echách je vy&scaron;&scaron;ia &zcaron;ivotná úrove&ncaron; a oni a&zcaron; to&lcaron;ko srandy
nepotrebujú...</simpara>
</listitem>
</itemizedlist></para>
</section> <!-- intro-contrib -->
<section id="intro-authors">
<title>Osoby a obsadenie</title>
<para>Mená autorov návodov na lokalizáciu konkrétnych aplikácií sa nachádzajú priamo v kapitole
<xref linkend="apps" endterm="apps.title">, prípadne <xref linkend="tricks"
endterm="tricks.title">.</para>
<itemizedlist>
<listitem>
<simpara><author><firstname>Ján</firstname><othername>'judas'</othername>
<surname>Tomka</surname></author> -- Zodpovedný vedúci.</simpara>
</listitem>
<listitem>
<simpara><author><firstname>Ján</firstname><surname>Ondrej</surname>
<othername>(SAL)</othername></author> -- Autor pôvodného Slovak-HOWTO.</simpara>
</listitem>
<listitem>
<simpara><author><firstname>&Lcaron;ubomír</firstname><othername>'salo'</othername>
<surname>Sedlá&ccaron;ik</surname></author> -- ksh/csh/tcsh, grammar bugfixes.</simpara>
</listitem>
</itemizedlist>
</section> <!-- intro-authors -->
</section> <!-- intro -->
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="locales">
<title id="locales.title">Miestne nastavenia</title>
<section>
<title>Princípy miestnych nastavení</title>
<para>Podpora miestnych nastavení je dnes mimoriadne dôle&zcaron;itým faktorom, ktorý charakterizuje
jednotlivé opera&ccaron;né systémy. &Ccaron;asy, ke&dcaron; boli &lcaron;udia &scaron;tastní, &zcaron;e to nie&ccaron;o pí&scaron;e, sú nenávratne
pre&ccaron; a pou&zcaron;ívatelia vy&zcaron;adujú podporu svojich miestnych nastavení. V <acronym>GNU</acronym>
systémoch je táto podpora implementovaná priamo do &scaron;tandardnej kni&zcaron;nice jazyka
<acronym>C</acronym> -- <acronym>GNU</acronym> libc. Táto podpora je navrhnutá tak, aby
zoh&lcaron;ad&ncaron;ovala v&scaron;etky po&zcaron;iadavky kladené na nastavenia pre akúko&lcaron;vek krajinu a akýko&lcaron;vek
jazyk.</para>
<section>
<title>Ciele a prostriedky</title>
<para>Rôzne krajiny a kultúry majú odli&scaron;né pravidlá komunikácie. Tieto pravidlá mô&zcaron;u by&tcaron;
malého rozsahu, napr. formát dátumu a &ccaron;asu, a&zcaron; po ve&lcaron;mi koplexné ako je jazyk, ktorým
hovoria.</para>
<para>Internacionalizácia softvéru znamená programova&tcaron; ho tak, aby bol schopný pracova&tcaron; s
pou&zcaron;ivate&lcaron;ovými miestnymi nastaveniami. V <acronym>ISO</acronym> <acronym>C</acronym>
pracuje internacionalizácia v zmysle <firstterm>locales</firstterm>. Ka&zcaron;dé locale (miestne
nastavenia) &scaron;pecifikuje skupinu pravidiel, jedno pravidlo pre ka&zcaron;dý u&ccaron;el. U&zcaron;ívate&lcaron; si zvolí
skupinu pravidiel &scaron;pecifikovaním locale (pomocou systémových premenných).</para>
<para>V&scaron;etky programy dedia nastavené locale v rámci ich prostredia. Pod podmienkou, &zcaron;e
programy sú napísané tak, &zcaron;e akceptujú nastavené locales, mô&zcaron;u sa riadi&tcaron; pravidlami, ktoré
uprednost&ncaron;uje pou&zcaron;ívate&lcaron;.</para>
</section>
<section>
<title>Kategórie a ich funkcie</title>
<para>Táto &ccaron;as&tcaron; popisuje jednotlivé premenné, ktoré ovplyv&ncaron;ujú miestne nastavenia a ktorými
sa riadia aj funkcie kni&zcaron;nice <acronym>GNU</acronym> libc.</para>
<para>Nastavenie premennej prostredia sa robí pomocou príkazu shellu
<screen>
bash$ export LC_PREMENNA=sk
tcsh$ setenv LC_PREMENNA sk
</screen></para>
<para><envar>LC_PREMENNA</envar> je jedna z nasledujúcich:
<itemizedlist>
<listitem>
<para><envar>LC_COLLATE</envar> --- Triedenie re&tcaron;azcov. Nastavením tejto premennej
mo&zcaron;no prinúti&tcaron; aplikácie, napr. <command>sort</command>, <command>ls</command> a iné,
aby pri porovnávaní re&tcaron;azcov brali do úvahy miestne rozlo&zcaron;enie jednotlivých písmen v
abecede. Sloven&ccaron;ina má napríklad hne&dcaron; nieko&lcaron;ko znakov, ktoré by pri triedení pod&lcaron;a
&ccaron;íselnej hodnoty znaku spôsobovali problémy. Slovenské nastavenia triedenia povedia
funkciam <function>strcoll</function> a <function>strxfrm</function>, &zcaron;e napríklad
<literal>ch</literal> je jedno písmeno a nasleduje hne&dcaron; za <literal>h</literal> a nie
za <literal>c</literal>, &zcaron;e &scaron;iroké <literal>ä</literal> nasleduje za dlhým
<literal>á</literal> a to zase za oby&ccaron;ajným <literal>a</literal>. Skúste si to na
príkaze <command>sort</command>. Zadajte písmená <literal>cc ch hh</literal>, potom
zme&ncaron;te <envar>LC_COLLATE</envar> príkazom
<screen>
bash$ export LC_COLLATE=sk
tcsh$ setenv LC_COLLATE sk
</screen></para>
<para>Skúste to so <command>sort</command> znovu a porovnajte výsledok...</para>
</listitem>
<listitem>
<para><envar>LC_CTYPE</envar> --- Klasifikácia a prevod znakov, multibyte. Správne
nastavenie tejto premennej je nutné pre korektné rozli&scaron;ovanie znakov abecedy
jednotlivých jazykov, ur&ccaron;enie &ccaron;íslic, tzv. bielych znakov, prevod malých písmen na
ve&lcaron;ké, at&dcaron;. Najvhodnej&scaron;ie je túto premennú nenastavova&tcaron; a tým umo&zcaron;ni&tcaron;, aby bola jej
hodnota prebratá od premenných <envar>LC_ALL</envar> alebo <envar>LANG</envar>
(vi&dcaron; &dcaron;alej). Ak ale nechcete pou&zcaron;íva&tcaron; slovenské nastavenia, len ma&tcaron; správne zobrazené
slovenské fonty a funk&ccaron;nú slovenskú klávesnicu na konzole aj pod iXami, nastavte iba
túto premennú.</para>
<warning>
<simpara>V&zcaron;dy si bu&dcaron;te stopercentne istí, &zcaron;e máte túto premennú nastavenú (bu&dcaron; cez
<envar>LC_ALL</envar>, <envar>LANG</envar> alebo priamo), lebo inak nemá zmysel
&ccaron;íta&tcaron; &dcaron;alej! Ono <quote>klasifikácia a prevod znakov</quote> neznie nejako lákavo,
ale vedzte, &zcaron;e je to sakramentsky dôle&zcaron;ité pre &zcaron;ivot slovenských písmeniek vo va&scaron;om
Linuxe!</simpara>
</warning>
</listitem>
<listitem>
<para><simplelist type="inline"><member><envar>LC_MONETARY</envar></member>
<member><envar>LC_NUMERIC</envar></member></simplelist> --- Formát pe&ncaron;a&zcaron;ných a
&ccaron;íselných hodnôt. Umo&zcaron;&ncaron;uje meni&tcaron; skupinu nastavení, ktoré sa pou&zcaron;ijú pri formátovaní
pe&ncaron;a&zcaron;ných hodnôt alebo v&scaron;etkých ostatných &ccaron;íselných hodnôt. Sú to desatinná &ccaron;iarka,
odde&lcaron;ova&ccaron; tisícov, zoskupovanie &ccaron;íslic, znamienka pre kladné a zaporné hodnoty,
at&dcaron;.</para>
</listitem>
<listitem>
<para><envar>LC_TIME</envar> --- Formátovanie dátumu a &ccaron;asu. Nastavenia odde&lcaron;ova&ccaron;ov
medzi hodinami, minútami a sekundami, názvy dní, poradie rok, mesiac a de&ncaron; v dátume,
...</para>
</listitem>
<listitem>
<para><envar>LC_MESSAGES</envar> --- Výber jazyka, pou&zcaron;itého u&zcaron;ívate&lcaron;ským rozhraním na
preklad hlá&scaron;ok programov. Toto je presne tá premenná, ktorá prinúti aplikácie hovori&tcaron;
po slovensky. Vi&dcaron; &dcaron;al&scaron;ie kapitoly.</para>
</listitem>
</itemizedlist>
</para>
<para>S prekladom hlásení programov, hlavne s umiestnením súborov s prelo&zcaron;enými re&tcaron;azcami,
súvisí premenná <envar>NLSPATH</envar>. Mala by obsahova&tcaron; dvojbodkami oddelený zoznam
adresárov, v ktorých sa budú h&lcaron;ada&tcaron; <filename>.mo</filename> súbory pre miestne nastavenia
dané premennou <envar>LC_MESSAGES</envar>. Premennú <envar>NLSPATH</envar> je v&scaron;ak
potrebné nastavova&tcaron; len vo výnimo&ccaron;ných prípadoch, preto&zcaron;e aplikácie h&lcaron;adajú preklady svojich
hlásení v &scaron;tandardných adresároch pre tieto súbory.</para>
<para>Okrem týchto premenných bolo implementovaných nieko&lcaron;ko &dcaron;al&scaron;ích, ktoré zatia&lcaron; nie sú
zdokumentované (<citetitle>The GNU C Library Reference Manual</citetitle>). Ich význam je
zrejmý z názvu, tak&zcaron;e uvediem aj svoju dedukciu.</para>
<itemizedlist>
<listitem>
<simpara><envar>LC_PAPER</envar> --- Formát papiera. V na&scaron;ich zemepisných &scaron;írkach sa
napríklad pou&zcaron;íva formát <acronym>A4</acronym>, v Amerike je to
Letter, at&dcaron;. Pozor, táto premenná neobsahuje priamo názov formátu, ale (tak, ako v&scaron;etky
<envar>LC_</envar> premenné), skratku miestneho nastavenia, teda u nás to bude
<constant>sk</constant>. Ak by sme chceli pou&zcaron;íva&tcaron; formát Letter, museli by sme túto
premennú nastavi&tcaron; na kód miestneho nastavenia niektorej z krajín, ktorá pou&zcaron;íva takýto
formát, napríklad <constant>us</constant>. V tomto prípade je nutné nain&scaron;talova&tcaron; balík s
miestnymi nastaveniami pre túto krajinu (<application>locales-us</application>).
</simpara>
</listitem>
<listitem>
<simpara><envar>LC_NAME</envar> --- Formát mena a priezviska. U nás má ka&zcaron;dý dve mená,
pí&scaron;u sa v poradí meno, priezvisko. V Rusku majú zase tri mená v poradí meno,
otcovo-meno, priezvisko. V Ma&dcaron;arsku majú dve mená tak ako u nás, ale pí&scaron;u sa v opa&ccaron;nom
poradí. O tom je táto premenná. Asi...</simpara>
</listitem>
<listitem>
<simpara><envar>LC_ADDRESS</envar> --- Spôsob zápisu adresy. Poradie ulice a popisného
&ccaron;ísla domu, ZIP kód, PS&Ccaron; apod.</simpara>
</listitem>
<listitem>
<simpara><envar>LC_TELEPHONE</envar> --- Formát telefónnych a faxových &ccaron;ísel. Ur&ccaron;uje
zoskupovanie &ccaron;íslic, ich oddelovanie, po&ccaron;et &ccaron;ísel predvo&lcaron;by, ...</simpara>
</listitem>
<listitem>
<simpara><envar>LC_MEASUREMENT</envar> --- Miery. Jednotky hmotnosti, objemu, teploty a
d&lacute;&zcaron;ky, pou&zcaron;ívané v tej ktorej krajine. Program napísaný v <acronym>USA</acronym> bude
pravdepodobne po&ccaron;íta&tcaron; s galónmi vody, ale ak je správne napísaný, s premennou
<envar>LC_MEASUREMENT</envar> nastavenou na <quote>sk</quote> bude zobrazova&tcaron; litre v
správnom pomere. To isté platí napríklad pre prevod teploty vo Fahrenheitovej stupnici
na stupne Celsia.</simpara>
</listitem>
<listitem>
<simpara><envar>LC_IDENTIFICATION</envar> --- Az apád, tak toto neviem. Rodné &ccaron;íslo?
&Ccaron;íslo sociálneho poistenia? &Ccaron;íslo topánok?</simpara>
</listitem>
</itemizedlist>
</section>
<section>
<title>&Dcaron;al&scaron;ie premenné</title>
<itemizedlist>
<listitem>
<simpara><envar>LC_ALL</envar> --- Ak je táto premenná nastavená, pou&zcaron;ije sa jej hodnota
pre v&scaron;etky vy&scaron;&scaron;ie spomenuté skupiny locales, bez oh&lcaron;adu na hodnotu príslu&scaron;ných
premenných.</simpara>
</listitem>
<listitem>
<simpara><envar>LANG</envar> --- Hodnota tejto premennej sa pou&zcaron;ije pre tie skupiny
locales, ktoré nemajú príslu&scaron;nú premennú nastavenú.</simpara>
</listitem>
<listitem>
<simpara><envar>LANGUAGE</envar> --- Alternatívne miestne nastavenia. Táto premenná mô&zcaron;e
obsahova&tcaron; usporiadaný zoznam kódov miestnych nastavení oddelených dvojbodkami. Súbory s
prekladmi hlá&scaron;ok programov sa budú h&lcaron;ada&tcaron; v poradí, v akom sú ur&ccaron;ené v tomto zozname. Ak
sa nepodarí nájs&tcaron; súbor s prelo&zcaron;enými hlá&scaron;kami programu v jednom jazyku, pou&zcaron;ije sa
súbor pre nasledujúci jazyk v zozname <envar>LANGUAGE</envar>. Navy&scaron;e, ak sa súbor pre
prvý jazyk aj nájde, ale niektorý re&tcaron;azec z neho nie je prelo&zcaron;ený, nepou&zcaron;ije sa pôvodný
(anglický), ale najskôr sa pokúsi nájs&tcaron; preklad daného re&tcaron;azca v súbore pre &dcaron;al&scaron;í jazyk
v zozname <envar>LANGUAGE</envar>. To je výhodné pre &lcaron;udí, ktorí okrem svojho jazyka
ovládajú nejaký iný lep&scaron;ie ako angli&ccaron;tinu, v ktorej sú zvy&ccaron;ajne programy originálne
napísané. Napríklad Slovák by mohol ma&tcaron; nastavené
<computeroutput>LANGUAGE="sk:cz"</computeroutput> a Szolvák z Komárom zase
<computeroutput>LANGUAGE="hu:sk"</computeroutput>.</simpara>
<caution>
<simpara>Premenná <envar>LANGUAGE</envar> ovplyv&ncaron;uje len premennú
<envar>LC_MESSAGES</envar>! Pre správnu funkciu je nutné nastavi&tcaron; aj ostatné premenné
(minimálne <envar>LC_CTYPE</envar>).</simpara>
</caution>
</listitem>
<listitem>
<para><envar>LINGUAS</envar> --- Táto premenná nemá &scaron;peciálny význam z h&lcaron;adiska
<acronym>GNU</acronym> libc, ale zvykne sa pou&zcaron;íva&tcaron; pri in&scaron;talácii programov (zo
zdrojákov). Medzerami oddelený zoznam kódov miestnych nastavení ur&ccaron;uje jazyky, pre ktoré
si u&zcaron;ívate&lcaron; &zcaron;elá in&scaron;talova&tcaron; preklady re&tcaron;azcov aplikácie. Príklad:
<screen>
bash$ export LINGUAS="sk cz"
bash$ ./configure
bash$ make install
</screen></para>
<simpara>Tieto príkazy skompilujú a nain&scaron;talujú aplikáciu s podporou sloven&ccaron;iny a &ccaron;e&scaron;tiny.
In&scaron;tala&ccaron;né skripty obvykle tie&zcaron; kontrolujú obsah premenných <envar>LANG</envar> a
<envar>LC_ALL</envar>, tieto ale mô&zcaron;u obsahova&tcaron; len jeden kód miestnych
nastavení.</simpara>
</listitem>
<listitem>
<para><envar>RPM_INSTALL_LANG</envar> --- &Ccaron;astej&scaron;ie ako zo zdrojového kódu sa aplikácie
in&scaron;talujú z rôznych balíkov (rpm, deb, ...). Kvôli &scaron;etreniu miestom na disku (a logike
-- málokto ovláda tridsa&tcaron; re&ccaron;í) je v <acronym>RPM4</acronym> mo&zcaron;né ur&ccaron;i&tcaron; jazyk, ktorého
prelo&zcaron;ené hlá&scaron;ky sa budú in&scaron;talova&tcaron;. Preto odporú&ccaron;am do súboru
<filename>.bash_profile</filename> (<filename>.login</filename>) u&zcaron;ívate&lcaron;a, ktorý
in&scaron;taluje balíky (root), vlo&zcaron;i&tcaron; nasledovný riadok:
<screen>
bash$ export RPM_INSTALL_LANG=sk
tcsh$ setenv RPM_INSTALL_LANG "sk"
</screen></para>
<simpara>Ak sa vám nebodaj stane taká vec, &zcaron;e nain&scaron;talujete celý opera&ccaron;ný systém a a&zcaron;
potom sa dozviete o tejto premennej (tak, ako sa to stalo aj mne), skúste skript uvedený
v &ccaron;asti <xref linkend="apps-rpm4" endterm="apps-rpm4.title">.</simpara>
</listitem>
</itemizedlist>
</section>
<section>
<title>Priorita premenných</title>
<para>Miestne nastavenia sa ur&ccaron;ujú zo spomenutých premenných, pri&ccaron;om tieto sa vyhodnocujú v
tomto poradí:
<simplelist>
<member><envar>LANGUAGE</envar> --- ovplyv&ncaron;uje len <envar>LC_MESSAGES</envar>
</member>
<member><envar>LC_ALL</envar></member>
<member><envar>LC_*</envar></member>
<member><envar>LANG</envar></member>
</simplelist></para>
<para>To znamená asi to&lcaron;ko, &zcaron;e ke&dcaron; raz nastavíte <envar>LC_ALL</envar>, jednotlivé
premenné <envar>LC_*</envar> sa u&zcaron; neberú do úvahy. Na druhej strane, ak máte
napríklad nastavené len niektoré z <envar>LC_*</envar>, ostatné sa nastavia na hodnotu
premennej <envar>LANG</envar>.</para>
</section>
<section>
<title>Kódy miestnych nastavení</title>
<para>Premenné, ktoré ovplyv&ncaron;ujú miestne nastavenia, sa nap&lacute;&ncaron;ajú kódmi miestnych nastavení.
Kódy miestnych nastavení sú re&tcaron;azce, ktorých formát sa riadi nieko&lcaron;kými pravidlami.
V&scaron;eobecný tvar je:
<synopsis>
jazyk[_územie[.kódovanie]][@modifikátor]
</synopsis></para>
<para><envar>jazyk</envar> je napr. <constant>sk</constant> pre sloven&ccaron;inu,
<constant>cs</constant> pre &ccaron;e&scaron;tinu, <constant>hu</constant> pre ma&dcaron;ar&ccaron;inu, územie je
<constant>SK</constant> pre Slovensko, <constant>CZ</constant> pre &Ccaron;eskú republiku,
<constant>HU</constant> pre Ma&dcaron;arsko, kódovanie je <constant>ISO-8859-2</constant> pre
v&scaron;etky stredoeurópske jazyky (je mo&zcaron;ne pou&zcaron;i&tcaron; nieko&lcaron;ko formátov na zadanie kódovania) a
modifikátor slu&zcaron;i na povolenie alebo zakázanie niektorých funkcií. Tie sú dané v definíciach
miestnych nastavení. Napríklad, pre Ve&lcaron;kú Britániu je modifikátorom re&tcaron;azec
<constant>euro</constant> a pri jeho pou&zcaron;ití sa ako pe&ncaron;a&zcaron;ná mena bude pou&zcaron;íva&tcaron; euro namiesto
libry. To znamená, &zcaron;e sa musí pou&zcaron;i&tcaron; kódovanie <constant>iso-8859-15</constant>, ktoré
definuje znaky euro a cent.</para>
<para>Príklady kódov miestnych nastavení (ka&zcaron;dý z týchto re&tcaron;azcov je mo&zcaron;né priradi&tcaron; premenným
miestnych nastavení, ale naj&ccaron;astej&scaron;ie sa pou&zcaron;ívajú len dvojpísmenkové skratky v poslednom
st&lacute;pci):
<table>
<title>Príklady kódov miestnych nastavení</title>
<tgroup cols="4" align="left" colsep="1" rowsep="1">
<tbody>
<row>
<entry>sk_SK.ISO-8859-2</entry>
<entry>sk_SK</entry>
<entry></entry>
<entry>sk</entry>
</row>
<row>
<entry>cs_CZ.ISO-8859-2</entry>
<entry>cs_CZ@-ch</entry>
<entry>cs@-ch</entry>
<entry>cs</entry>
</row>
<row>
<entry>en_GB.iso8859</entry>
<entry>en_GB</entry>
<entry>en@euro</entry>
<entry>en</entry>
</row>
<row>
<entry>ja_JP.ujis</entry>
<entry>ja_JP.EUC</entry>
<entry>ja_JP</entry>
<entry>ja</entry>
</row>
</tbody>
</tgroup>
</table></para>
<para>Nemali by sme zabudnú&tcaron; na dve &scaron;tandardné locales, ktoré sa pou&zcaron;ijú, ak nie sú systémové
premenné nastavené a programy ich pou&zcaron;ívajú do doby, kým sa inicializuje lokalizácia.
Tvrdím, &zcaron;e sa pou&zcaron;ijú obe, preto&zcaron;e momentálne sú toto&zcaron;né, ale v budúcnosti sa mô&zcaron;u v tejto
oblasti &scaron;tandardy <acronym>ISO</acronym> <acronym>C</acronym> a <acronym>POSIX</acronym>
odli&scaron;ova&tcaron; a potom to bude zále&zcaron;a&tcaron; na konfigurácii systému.
<simplelist>
<member><constant>C</constant> --- nastavenia pod&lcaron;a &scaron;tandardu <acronym>ISO</acronym>
<acronym>C</acronym>.</member>
<member><constant>POSIX</constant> --- nastavenia pod&lcaron;a &scaron;tandardu
<acronym>POSIX</acronym>. V sú&ccaron;asnosti je to alias pre nastavenia
<constant>C</constant>.</member>
</simplelist></para>
</section>
</section> <!-- locales-principles -->
<section id="locales-slovakia">
<title>Miestne nastavenia pre Slovensko</title>
<para>V prvom rade treba nain&scaron;talova&tcaron; balík s podporou miestnych nastavení, ktorý má názov
<application>locales</application> a tie&zcaron; balík s podporou priamo pre Slovensko ---
<application>locales-sk</application>. Ak máte záujem pou&zcaron;íva&tcaron; aj podporu pre nejaký iný jazyk
(na na&scaron;om území je aktuálna najmä &ccaron;e&scaron;tina a ma&dcaron;ar&ccaron;ina), musíte tie&zcaron; nain&scaron;talova&tcaron; balíky pre
tieto jazyky.</para>
<para>V druhom rade si musíte nain&scaron;talova&tcaron; balíky s podporou miestnych nastavení a priamo
sloven&ccaron;iny (sú to <application>locales</application> a <application>locales-sk</application>).
</para>
<para>V &dcaron;al&scaron;om kroku si nezabudnite nain&scaron;talova&tcaron; balíky <application>locales</application> a
<application>locales-sk</application>. Takisto, pre ka&zcaron;dý jazyk, ktorý sa chystáte pou&zcaron;íva&tcaron;,
si nain&scaron;talujte balík s podporou miestnych nastavení.</para>
<para>V prípade problémov s miestnymi nastaveniami sa dr&zcaron;te predchádzajúcich troch krokov.
</para>
<section>
<title>Súbory s miestnymi nastaveniami</title>
<para>Prejdime sa teraz trochu po na&scaron;ich adresároch. Prvý nav&scaron;tívime <filename
class="directory">/usr/share/locale/sk</filename>. Na prvý poh&lcaron;ad vidno, &zcaron;e adresár a
súbory v tomto adresári majú mená toto&zcaron;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&ccaron;ítajú nastavenia, ke&dcaron; je daná premenná nastavená na hodnotu <constant>sk</constant>.
Okrem nich tu mô&zcaron;e by&tcaron; e&scaron;te súbor <filename>charset</filename>, ktorý obsahuje len jeden
riadok s re&tcaron;azcom <computeroutput>iso-8859-2</computeroutput>. Ten hovorí, aké kódovanie
znakov sa má pou&zcaron;i&tcaron; pre dané miestne nastavenia.</para>
<para>V&scaron;etky súbory v tomto adresári sú binárne dáta a adresár <envar>LC_MESSAGES</envar>
obsahuje súbory, ktorých mená sú toto&zcaron;né s názvami niektorých balíkov nain&scaron;talovaných na
va&scaron;om systéme, s príponou mo. Sú to preklady re&tcaron;azcov z jednotlivých aplikácií. O nich si
povieme neskôr. Teraz by sme mohli zisti&tcaron;, &ccaron;o vlastne obsahujú súbory <envar>LC_*</envar>.
</para>
<para>Presu&ncaron;me sa do adresára <filename class="directory">/usr/share/i18n/</filename>. Tu, v
textovom súbore <filename>sk_SK</filename> v podadresári
<filename class="directory">locales/</filename> sa kone&ccaron;ne nachádzajú slovenské miestne
nastavenia v &ccaron;itate&lcaron;nej (a editovate&lcaron;nej) forme. Súbory v tomto adresári majú presne danú
&scaron;truktúru, ktorá je popísaná v manuálovej stránke locale(5). Pre be&zcaron;ného pou&zcaron;ívate&lcaron;a nemá
zmysel meni&tcaron; nastavenia v tomto súbore, ke&dcaron;&zcaron;e ide o &scaron;tandardné nastavenia, ktoré sa
pou&zcaron;ívajú na celom Slovensku. Ale, proti Gustovi &zcaron;iadna putika! Ak sa teda rozhodnete zmeni&tcaron;
nie&ccaron;o v tomto súbore, musíte aktualizova&tcaron; súbory v prvom spomínanom adresári
<filename class="directory">/usr/share/locales/sk/</filename> príkazom, ktorý údaje v súbore
<filename>sk_SK</filename> skompiluje a ulo&zcaron;í do súborov
<simplelist type="inline">
<member><envar>LC_COLLATE</envar></member>
<member><envar>LC_CTYPE</envar></member>
<member>...</member>
</simplelist>
<programlisting>
sh$ localedef -i sk_SK -f ISO-8859-2 sk_SK
</programlisting></para>
<para>V podadresári <filename class="directory">/usr/share/i18n/charmaps/</filename> sa
nachádzajú súbory s popismi jednotlivých kódovani znakov. Pre Slovensko je aktuálny
<filename>ISO-8859-2</filename> (&ccaron;o je aj obsah spomínaneho súboru
<filename>charset</filename>).</para>
<para>V adresári <filename class="directory">/usr/share/locale/</filename> sa nachádza súbor
<filename>locale.alias</filename>, ktorý definuje tzv. <firstterm>aliasy</firstterm> pre
kódy miestnych nastavení. Pre správnu funkciu slovenských miestnych nastavení by mal
obsahova&tcaron; tieto dva riadky:
<programlisting>
sk sk_SK.ISO-8859-2
slovak sk_SK.ISO-8859-2
</programlisting></para>
<para>To zabezpe&ccaron;í, &zcaron;e aj ke&dcaron; nezadáte kódovanie znakov, bude pou&zcaron;ité iso-8859-2. Druhý riadok
má na svedomí to, &zcaron;e namiesto sk mo&zcaron;no zada&tcaron; slovak.</para>
<warning>
<simpara>Ale na aliasy typu <constant>slovak</constant> si dávajte bacha! Niektoré
aplikácie, ktoré v súvislosti s miestnymi nastaveniami nevyu&zcaron;ívajú slu&zcaron;by libc, toti&zcaron; na
aliasy ka&scaron;&lcaron;ú a zaujímajú ich len prvé dva znaky nastavených premenných. A tak sa zo
<constant>slovak</constant> stane <constant>sl</constant>, &ccaron;o je Slovinsko. Pozitívne je,
&zcaron;e pre sloven&ccaron;inu mô&zcaron;ete nastavi&tcaron; premennú napríklad na hodnotu
<constant>skaderukaskadenoha</constant>.</simpara>
</warning>
</section>
<section>
<title>Konfigurácia miestnych nastavení</title>
<para>Nastavenia internacionalizácie sa (v <systemitem class="osname">RedHat</systemitem> a
<systemitem class="osname">Mandrake</systemitem>) nachádzajú v súbore
<filename>/etc/sysconfig/i18n</filename>. Je to ve&lcaron;mi u&zcaron;ito&ccaron;ný súbor, ktorý si rýchlo
ob&lcaron;úbite. Mo&zcaron;no v &ncaron;om nastavi&tcaron; v&scaron;etko, &ccaron;o sa kedy týkalo internacionalizácie, národných
fontov a rozlo&zcaron;ení kláves. Tento súbor v&scaron;ak len definuje systémové premenné a zvykne sa
vklada&tcaron; (<computeroutput>source /etc/sysconfig/i18n</computeroutput>) do inicializa&ccaron;ných
skriptov. Exportovanie premenných (odovzdanie ostatným aplikáciám) má na starosti skript
<filename>/etc/profile.d/lang.sh</filename> (<application>bash</application>) alebo
<filename>/etc/profile.d/lang.csh</filename> (<application>tcsh</application>). Tento sa
vykoná pri ka&zcaron;dom &scaron;tarte shellu, typicky je volaný z <filename>/etc/profile</filename>
(<application>bash</application>) alebo <filename>/etc/csh.cshrc</filename>
(<application>tcsh</application>).</para>
<para>Súbor <filename>/etc/sysconfig/i18n</filename> definuje nastavenia pre celý systém.
Tieto sa pou&zcaron;ijú, ak sa nenájde súbor s u&zcaron;ívate&lcaron;ovými nastaveniami. Ka&zcaron;dý u&zcaron;ívate&lcaron; si mô&zcaron;e
ur&ccaron;i&tcaron; svoje vlastné nastavenia v súbore <filename>.i18n</filename> v jeho domovskom
adresári. Nastavenia sa v&zcaron;dy &ccaron;ítajú len z jedného z týchto súborov, teda ak má u&zcaron;ívate&lcaron;
svoj vlastný súbor <filename>&tilde;/.i18n</filename>, nastavenia zo súboru
<filename class="directory">/etc/sysconfig/i18n</filename> sa ignorujú.</para>
<para>U&zcaron;ívate&lcaron; si mô&zcaron;e zmeni&tcaron; nastavenia aj ru&ccaron;ne, kedyko&lcaron;vek sa mu zachce, nastavením
premenných prostredia
<simplelist type="inline">
<member><envar>LC_MESSAGES</envar></member>
<member><envar>LANG</envar></member>
<member>at&dcaron;.</member>
</simplelist></para>
<para>Vypnú&tcaron; nejaké nastavenie je mo&zcaron;né príkazom
<screen>
sh$ unset LC_MESSAGES LANG
</screen></para>
<para>Tým sa zru&scaron;ia nastavenia daných premenných (a pou&zcaron;ije sa &scaron;tandardné locale
<constant>C</constant> alebo <constant>POSIX</constant>).</para>
<para>Ak máte napríklad nastavené premenné <computeroutput>LC_ALL=sk</computeroutput> a
<computeroutput>LC_MESSAGES=cz</computeroutput>, tak po príkaze <computeroutput>unset
LC_ALL</computeroutput> nebudete ma&tcaron; hlásenia programov v angli&ccaron;tine, ale &ccaron;e&scaron;tine. Preto, ak
chcete vypnú&tcaron; nejaké nastavenia, v&zcaron;dy musíte príkazom unset zru&scaron;i&tcaron; nastavenia v&scaron;etkých
premenných, ktoré mô&zcaron;u ovplyv&ncaron;ova&tcaron; dané miestne nastavenia.</para>
<note>
<title>export/setenv</title>
<para>Neodpustím si malú poznámku k príkazu <command>export</command>. Je to vstavaná
funkcia v&scaron;etkých shellov kompatibilných s klasickým <application>sh</application> (teda aj
<application>bash</application>). Pre shelly typu <application>tcsh</application> je
ekvivalentom príkaz <command>setenv</command>.</para>
<para>Je dôle&zcaron;ité uvedomi&tcaron; si, &ccaron;o presne tento príkaz robí s premennými. V dokumentácii k
bashu sa hovorí, &zcaron;e <command>export</command> ozna&ccaron;í premennú, aby bola odovzdaná detským
(<foreignphrase>child</foreignphrase>) procesom v rámci prostredia
(<foreignphrase>environment</foreignphrase>). To znamená asi to&lcaron;ko, &zcaron;e ke&dcaron; spustíte napr.
iXy z materského procesu <systemitem class="resource">bash</systemitem>, ktorý pri &scaron;tarte
exportoval premennú <computeroutput>LANG=sk</computeroutput>, v&scaron;etky aplikácie v prostredí
<application>X Window System</application> budú dedi&tcaron; toto nastavenie a teda (ak to sami
podporujú) budú fungova&tcaron; po slovensky. Ak budete chcie&tcaron; spusti&tcaron; aplikáciu bez slovenských
nastavení, musíte v <application>xterme</application> zada&tcaron; príkaz <computeroutput>unset
LANG</computeroutput> (<computeroutput>unsetenv LANG</computeroutput> pre
<application>tcsh</application>), &ccaron;ím pre v&scaron;etky detské procesy
<application>xtermu</application> (presnej&scaron;ie shellu, ktorý je v &ncaron;om spustený), zru&scaron;íte
nastavenie premennej <envar>LANG</envar>. Potom aplikácie spustené priamo z tohto xtermu
budú fungova&tcaron; bez podpory sloven&ccaron;iny. Trochu sa s tým pohrajte.</para>
</note>
</section>
<section>
<title>Nastavenie &ccaron;asovej zóny</title>
<para>S miestnymi nastaveniami úzko súvisí aj nastavenie &ccaron;asovej zóny. Vedel by som o tom
rozpráva&tcaron; celé hodiny, ale ono by to muselo by&tcaron; zlo&zcaron;itej&scaron;ie ako len nastavenie jednej
premennej... A to takto:
<screen>
bash$ export TZ="Europe/Bratislava"
tcsh$ setenv TZ "Europe/Bratislava"
</screen></para>
<para>Toto nastavenie ovplyv&ncaron;uje len &ccaron;asový posun oproti hardverovým hodinám. (Mimochodom,
odporú&ccaron;am hardverové hodiny nastavené na greenwichský svetový &ccaron;as, &ccaron;ím tie&zcaron; odpadajú
problémy s prechodom medzi letným a zimným &ccaron;asom at&dcaron;. ale o tom sú popísané iné súbory.)
Toto celé je dos&tcaron; dobrá vec, hlavne ak mate prístup k po&ccaron;íta&ccaron;u v inej &ccaron;asovej zóne, ale
chcete pracova&tcaron; s &ccaron;asom v stredoeurópskej zóne. Do svojho súboru
<filename>.bash_profile</filename> (<filename>.login</filename> pre
<application>tcsh</application>) vlo&zcaron;te vy&scaron;&scaron;ie uvedený riadok.</para>
</section>
</section> <!-- locales-slovakia -->
<section id="locales-examples">
<title>Príklady miestnych nastavení</title>
<itemizedlist>
<listitem>
<para>U&zcaron;ívate&lcaron; je síce zo stredného Slovenska, ale u&zcaron; ke&dcaron; s ním bola jeho mama tehotná,
pú&scaron;&tcaron;ala mu do brucha kurzy angli&ccaron;tiny. Nemá teda zmysel pou&zcaron;íva&tcaron; slovenské nastavenia, a&zcaron;
na krajné prípady, napr. slovenské fonty v <application>Gimpe</application>. Darujte mu
súbor <filename>.i18n</filename> s nasledovným obsahom (aj na takéto malé oné potrebuje
<application>locales-sk</application>):
<screen>
LC_CTYPE=sk
</screen></para>
</listitem>
<listitem>
<para>U&zcaron;ívate&lcaron; je normálny, má rád svoj materinský jazyk, ale netrápi ho, ke&dcaron; má polovicu
aplikácií po slovensky a polovicu po anglicky. Po &ccaron;esky vie. Toto ho pote&scaron;í (nezabudnite
mu potajomky nain&scaron;talova&tcaron; aj <application>locales-cs</application>):
<screen>
LANGUAGE=sk:cs
LANG=sk
</screen></para>
</listitem>
<listitem>
<para>U&zcaron;ívate&lcaron; je z blízkeho juhu, jeho ob&lcaron;úbené pleso je Balaton, v&scaron;etky hlá&scaron;ky chce po
ma&dcaron;arsky, ak sa inak nedá, pochopí aj sloven&ccaron;inu. Nesmieme zabudnú&tcaron; na jeho miernu
schizofreniu, pri&ccaron;om jedno jeho ja potrebuje slovenské triedenie re&tcaron;azcov a druhé nevie
&zcaron;i&tcaron; bez formátovania dátumu a &ccaron;asu v &ccaron;e&scaron;tine. Nikdy sa nesmie zabudnú&tcaron; na in&scaron;taláciu
prekladov hlá&scaron;ok pre ma&dcaron;ar&ccaron;inu, &ccaron;e&scaron;tinu a sloven&ccaron;inu z balíkov, ktoré podporujú premennú
LINGUAS. Treba ho tie&zcaron; presved&ccaron;i&tcaron;, &zcaron;e in&scaron;talácia
<application>locales-{sk,hu,cs}</application> nepredstavuje bezpe&ccaron;nostné riziko:
<screen>
LANGUAGE=hu:sk:cs
LC_COLLATE=sk
LC_TIME=cs
LANG=hu
LINGUAS="hu cs sk"
</screen></para>
</listitem>
</itemizedlist>
</section> <!-- locales-examples -->
</section> <!-- locales -->
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="console">
<title>Nastavenia konzoly</title>
<para>Táto kapitola by mala &ccaron;ítavou, pou&ccaron;nou a zárove&ncaron; zábavnou formou pojednáva&tcaron; o veciach medzi
prstom a okom. Základnou otázkou nech nám je <quote>Zmysel &zcaron;ivota, vesmíru a vôbec.</quote>
</para>
<section id="console-fonts">
<title>Sloven&ccaron;ina na výstupe textovej konzoly</title>
<section id="console-fonts-fonts">
<title>Fonty</title>
<para>Ke&dcaron; zobudíte o polnoci hocikoho, kto vo svojom &zcaron;ivote videl po&ccaron;íta&ccaron; a opýtate sa ho, ako
rozbeha&tcaron; slovenské znaky, ur&ccaron;ite spomenie nie&ccaron;o ako fonty. Na zobrazovanie znakov na
obrazovku -- &ccaron;i u&zcaron; v textovom alebo grafickom re&zcaron;ime -- slú&zcaron;ia skuto&ccaron;ne fonty. Fonty pre
konzolu a programy ur&ccaron;ené na manipuláciu s nimi sa nachádzajú v balíku
<application>kbd</application>. Po jeho nain&scaron;talovaní sú súbory s fontami umiestnené v
adresári <filename class="directory">/usr/lib/kbd/consolefonts/</filename>.</para>
<para>Pre nás sú dôle&zcaron;ité najmä súbory, ktoré majú v mene <filename>iso02</filename>,
<filename>lat2</filename>, <filename>latin2</filename> alebo &ccaron;íslo <filename>852</filename>.
To nazna&ccaron;uje, &zcaron;e ide o fonty s podporou <emphasis>ISO-8859-2</emphasis>
(<emphasis>latin2</emphasis>), prípadne <emphasis>DOS codepage 852</emphasis>, &ccaron;o sú
&scaron;tandardy aj pre slovenskú diakritiku.</para>
<para>Pozor, pôvodný balík sa volá <application>kbd</application>, ale existuje jeho roz&scaron;írená
verzia, ktorá sa objavuje v distribúciách -- <application>console-tools</application>.
Rozdiely medzi nimi sú minimálne, pre <application>kbd</application> budeme pou&zcaron;íva&tcaron; príkaz
<command>setfont</command>, pre <application>console-tools</application> zase
<command>consolechars</command>. Taktie&zcaron;, názvy dodávaných fontov sa trochu odli&scaron;ujú, tak&zcaron;e
budem uvádza&tcaron; ekvivalenty pre oba balíky.</para>
</section> <!-- console-fonts-fonts -->
<section id="console-fonts-theory">
<title>Ako fonty fungujú</title>
<para>Existuje nieko&lcaron;ko súborových formátov na ukladanie fontov, princíp je v&scaron;ak rovnaký --
súbor obsahuje 256 obrázkov (<foreignphrase>glyphs</foreignphrase>), z ktorých v&scaron;etky majú
rovnaký rozmer (napr. 8x16 bodov -- ve&lcaron;kos&tcaron; fontu) a ka&zcaron;dý zobrazuje jeden znak.</para>
<para>Aby nám tých 256 obrázkov bolo na nie&ccaron;o dobrých, je treba font zo súboru zavies&tcaron; do
znakového generátora videokarty. Na to slú&zcaron;i jeden z príkazov
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<cmdsynopsis>
<command>setfont</command>
<arg choice="plain"><replaceable>meno-fontu</replaceable></arg>
</cmdsynopsis></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<cmdsynopsis>
<command>consolechars</command>
<arg choice="plain">-f <replaceable>meno-fontu</replaceable></arg>
</cmdsynopsis></para>
</listitem>
</varlistentry>
</variablelist></para>
<para><computeroutput>meno-fontu</computeroutput> mô&zcaron;e by&tcaron; absolútna alebo relatívna cesta k
súboru s fontom, alebo meno súboru, pokia&lcaron; sa nachádza v adresári <filename
class="directory">/usr/lib/kbd/consolefonts/</filename>, &ccaron;i u&zcaron; s príponou, alebo
bez.</para>
<para>Pre &lcaron;ah&scaron;ie pochopenie tých obrázkov, skúste nahradi&tcaron;
<computeroutput>meno-fontu</computeroutput> re&tcaron;azcom <computeroutput>t850</computeroutput> a
sledujte výsledok na v&scaron;etkých virtuálnych konzolách.</para>
<para>Naspä&tcaron; k &scaron;tandardnému fontu sa v&zcaron;dy dostanete jedným z príkazov
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<screen>
sh$ setfont
</screen></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<screen>
sh$ consolechars -d
</screen></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>&Ccaron;o sa presne deje? Program <command>setfont</command>/<command>consolechars</command>
zavedie v&scaron;etkých 256 obrázkov do znakového generátora
<acronym>EGA</acronym>/<acronym>VGA</acronym> karty. Od tohto momentu sa na v&scaron;etkých
konzolách bude znak s <acronym>ASCII</acronym> kódom napr. 65 vykreslova&tcaron; ako &scaron;esdesiaty
piaty obrázok z na&scaron;eho súboru s fontom. E&scaron;te raz pripomínam a dvakrát pod&ccaron;iarkujem, &zcaron;e font
je v&zcaron;dy rovnaký pre v&scaron;etky virtuálne konzoly, na ktorých zobrazuje znaky ten istý znakový
generátor <acronym>EGA</acronym>/<acronym>VGA</acronym> karty.</para>
<para>Dôle&zcaron;ité je uvedomi&tcaron; si, &zcaron;e interne ide naozaj len o obrázky a tvar niektorého znaku vo
fonte nemá ni&ccaron; spolo&ccaron;ného s jeho ASCII kódom. Ak by ste si sami vytvorili nejaký font (v
dokumentácii ku <application>kbd</application>/<application>console-tools</application> máte
informácie o v&scaron;etkých formátoch), v ktorom by mal ten &scaron;esdesiaty piaty obrázok tvar písmena
<computeroutput>z</computeroutput>, po jeho natiahnutí sa vám bude pri zadaní
<keycombo><keycap>Alt</keycap><keycap>6</keycap><keycap>5</keycap></keycombo>, &ccaron;o je
<acronym>ASCII</acronym> kód písmena <computeroutput>A</computeroutput>, zobrazova&tcaron; znak
<computeroutput>z</computeroutput>. Ale ak tento znak ulo&zcaron;íte do súboru, v tomto sa bude
nachádza&tcaron; bajt s hodnotou 65, teda písmeno <computeroutput>A</computeroutput>.</para>
</section> <!-- console-fonts-theory -->
<section id="console-fonts-latin2">
<title>Fonty ISO-8859-2</title>
<para>Toto vyu&zcaron;íva &scaron;tandard <emphasis>ISO-8859-2</emphasis> (a iné) - spolo&ccaron;né znaky s
<acronym>ASCII</acronym> vykreslí rovnako a znaky &scaron;pecifické pre tú ktorú abecedu
<quote>namapuje</quote> na menej pou&zcaron;ívané znaky <acronym>ASCII</acronym> tabu&lcaron;ky. Kam
presne ktorá norma umiest&ncaron;uje znaky s diakritikou, nás zaujíma&tcaron; nemusí (pokia&lcaron; nevytvárame
vlastné fonty), hlavné je, &zcaron;e napr. anglický text je nezmenený (angli&ccaron;tina má v&scaron;etky znaky
spolo&ccaron;né so sloven&ccaron;inou) a slovenský text u&zcaron; viac neobsahuje hlúpe znaky, ktoré so
sloven&ccaron;inou nemajú ni&ccaron; spolo&ccaron;né.</para>
<para>Slovenské (ISO-8859-2) fonty, ktoré sú sú&ccaron;as&tcaron;ou balíkov <application>kbd</application>
a <application>console-tools</application>:
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>lat2-{08,10,12,14,16}, lat2a-16, iso02.{08,14,16}</para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>lat2-{08,10,12,14,16}, lat2u-16, iso02.f{08,14,16}</para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Na zavedenie fontu pou&zcaron;ite príkaz
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<screen>
sh$ setfont meno-zo-zoznamu
</screen></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<screen>
sh$ consolechars -f meno-zo-zoznamu
</screen></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Odporú&ccaron;am pou&zcaron;íva&tcaron; <computeroutput>lat2a-16</computeroutput>, resp.
<computeroutput>lat2u-16</computeroutput>. Ostatné fonty majú bezchybné zobrazovanie
slovenských znakov, problém v&scaron;ak nastáva pri aplikáciách, ktoré vyu&zcaron;ívajú znaky na kreslenie
rám&ccaron;ekov (napr. <command>mc</command>).</para>
<para>&Ccaron;o sa týka fontov <computeroutput>iso02.*</computeroutput> z balíka
<application>kbd</application>, treba pri nich pou&zcaron;i&tcaron; argument príkazu
<command>setfont</command> <computeroutput>-m latin2u.trans</computeroutput>. Tak&zcaron;e celý
príkaz na zavedenie niektorého z týchto fontov je:
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<screen>
sh$ setfont iso02.16 -m latin2u.trans
</screen></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<screen>
sh$ consoletrans -f lat2u-16 -m iso02
</screen></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>V súbore <filename>latin2u.trans</filename> (<filename>iso02.acm</filename>) sa nachádza
tzv. <foreignphrase>Aplication-Charset Map</foreignphrase> (<acronym>ACM</acronym>), akási
prevodná tabu&lcaron;ka, ktorá obsahuje riadok pre ka&zcaron;dý znak fontu a jeho podobu v kódovaní
<acronym>UTF-8</acronym>.</para>
</section> <!-- console-fonts-latin2 -->
<section id="console-fonts-autoload">
<title>Automatické zavádzanie fontov</title>
<para> Ak ste si na&scaron;li svoj font, ktorý chcete pou&zcaron;íva&tcaron; a ma&tcaron; ho automaticky zavedený v&zcaron;dy pri
&scaron;tarte, nie je ni&ccaron; &lcaron;ah&scaron;ie. Inicializa&ccaron;ný skript <filename>rc.sysinit</filename> robí asi
toto: skontroluje, &ccaron;i existuje súbor <filename>/etc/sysconfig/i18n</filename> a program
(skript) <filename>/sbin/setsysfont</filename>. Ak áno, spustí
<command>setsysfont</command>. Ten na&ccaron;íta <filename>/etc/sysinfo/i18n</filename> a pod&lcaron;a
premenných definovaných v tomto súbore príkazom <command>consolechars</command> alebo
<command>setfont</command> zavedie font.</para>
<para>Tak&zcaron;e sta&ccaron;í nastavi&tcaron; správne premenné v súbore <filename>/etc/sysconfig/i18n</filename>
a skript <filename>/sbin/setsysfont</filename> urobí v&scaron;etko za nás. Tento skript mo&zcaron;no
spusti&tcaron; kedyko&lcaron;vek chcete zavies&tcaron; font nastavený ako &scaron;tandardný pre systém.</para>
<para>Premenné v súbore <filename>/etc/sysinit/i18n</filename> sú (pou&zcaron;ívajte len mená súborov
bez cesty a bez prípony!):
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<programlisting>
SYSFONT=lat2a-16
</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<programlisting>
SYSFONT=lat2u-16
SYSFONTACM=iso02
</programlisting></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Skriptík <command>setsysfont</command> obsahujú oba balíky a kedyko&lcaron;vek mô&zcaron;ete zavies&tcaron;
font nastavený ako systémový v súbore <filename>/etc/sysinit/i18n</filename> jednoduchým
zadaním
<screen>
sh$ /sbin/setsysfont
</screen></para>
<para>Pod&lcaron;a toho, &ccaron;o sme si hovorili o tom, &zcaron;e pre v&scaron;etky virtuálne konzoly mô&zcaron;e by&tcaron; nastavený
len jeden spolo&ccaron;ný font, nemá ve&lcaron;ký zmysel zavádza&tcaron; nastavovanie fontu zvlá&scaron;&tcaron; pre ka&zcaron;dého
u&zcaron;ívate&lcaron;a. S tým súvisí aj fakt, &zcaron;e nastavenie fontu sa vz&tcaron;ahuje k danému po&ccaron;íta&ccaron;u, pri
ktorom práve sedíte a nie k tomu, ku ktorému ste pripojení napr. cez
<application>ssh</application>.</para>
<para>Predsa len si viem predstavi&tcaron; prípad, ke&dcaron; niektorý z viacerých pou&zcaron;ívate&lcaron;ov jedného
po&ccaron;íta&ccaron;a potrebuje odli&scaron;ný font. V tom prípade mô&zcaron;e vlo&zcaron;i&tcaron; 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&tcaron; takto:
<variablelist>
<varlistentry>
<term><filename>~/.bash_profile</filename>:</term>
<listitem>
<para>
<programlisting>
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.font ]; then
setfont -o ~/.font gr928a-8x16
fi
</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>~/.bash_logout</filename>:</term>
<listitem>
<para>
<programlisting>
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.font ]; then
setfont ~/.font
rm -f ~/.font
fi
</programlisting></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Vonkoncom to nie je ideálne rie&scaron;enie, ale svoj ú&ccaron;el splní (minimálne po moment prvého
odhlásenia). Trochu sa s tým pozabávajte, aby sa font (a rozlo&zcaron;enie kláves) menilo len pri
prvom prihlásení a poslednom odhlásení, tie&zcaron; setfont pod iXami nemá ve&lcaron;mi zmysel a tak... V
Tips-HOWTO je uvedený spôsob, ako zisti&tcaron;, na ko&lcaron;kých virtuálnych konzolách je e&scaron;te u&zcaron;ívate&lcaron;
prihlásený.</para>
<para>Iná&ccaron;, aby bolo jasné, toto vám bude fungova&tcaron; len na lokálnom stroji - zamyslite sa,
pre&ccaron;o asi <command>setfont</command> (aj <command>loadkeys</command>) nefunguje cez
vzdialený terminál a &ccaron;i by ste z toho nie&ccaron;o mali, keby to tak nebolo.</para>
<para>Ak to s takýmto rie&scaron;ením myslíte vá&zcaron;ne, tak skôr uva&zcaron;ujte nad modifikáciou skriptu
<filename>/etc/profile.d/lang.sh</filename>, kde by sa kontroloval aj obsah u&zcaron;ívate&lcaron;ského
súboru <filename>~/.i18n</filename> a pod&lcaron;a toho by sa zaviedol skript, popis rozlo&zcaron;enia
kláves, prípadne nejaké premenné...</para>
</section> <!-- console-fonts-autoload -->
</section> <!-- console-fonts -->
<section id="console-kbd">
<title>Slovenská klávesnica na textovej konzole</title>
<para>Ke&dcaron; je slovenský font na konzole rozbehaný a na&scaron;e národné znaky sa zobrazujú správne, máme
so sloven&ccaron;inou problém &ccaron;íslo dva - ako tam tie znaky dosta&tcaron;? Keby ste si chceli tento súbor
len pre&ccaron;íta&tcaron; bez potreby následnej nav&scaron;tevy psychiatra, sta&ccaron;ilo by zavies&tcaron; nejaký font so
slovenskou podporou. Ale ke&dcaron;&zcaron;e ste uvedomelý linuxák&nbsp;/&nbsp;uvedomelá linuxá&ccaron;ka, hne&dcaron;
chcete do <citetitle>Slovak-HOWTO</citetitle> prispie&tcaron; a pomocou klávesnice písa&tcaron; slovenský
text. Na to potrebujete s tou klávesnicou nie&ccaron;o urobi&tcaron;.</para>
<section id="console-kbd-kmap">
<title>Popis rozlo&zcaron;enia kláves (keymap)</title>
<para>Adresáre <filename class="directory">/usr/lib/kbd/keymaps/i386/qwertz/</filename> a
<filename class="directory">qwerty/</filename> obsahujú
po nain&scaron;talovaní balíka
<application>kbd</application>/<application>console-tools</application> aj popisy
slovenského rozlo&zcaron;enia kláves. Pre nás sú zaujímavé súbory
<simplelist>
<member><filename>sk-prog-qwerty.map.gz</filename></member>
<member><filename>sk-qwerty.map.gz</filename></member>
<member><filename>sk-prog-qwertz.map.gz</filename></member>
<member><filename>sk-qwertz.map.gz</filename></member>
</simplelist></para>
<para>Tieto súbory obsahujú definície rozlo&zcaron;enia kláves pre slovenský jazyk, pri&ccaron;om rozdiely
medzi nimi sú v umiestnení kláves <keycap>Y</keycap> a <keycap>Z</keycap> a po&ccaron;te
slovenských znakov, ktoré pomocou nich mo&zcaron;no napísa&tcaron; priamo (bez m&racute;tvych kláves). Najviac sa
na slovenský písací stroj podobá <computeroutput>sk-qwertz</computeroutput>, najmen&scaron;ie zmeny
oproti americkej klávesnici sú zase v <computeroutput>sk-prog-qwerty</computeroutput>.
</para>
<para>Súbory v adresári <filename class="directory">/usr/lib/kbd/keymaps/i386/include/
</filename> obsahujú popis základných rozlo&zcaron;ení kláves (<computeroutput>azerty
</computeroutput>, <computeroutput>qwerty</computeroutput>, <computeroutput>qwertz
</computeroutput>), prídavných kláves (<computeroutput>keypad</computeroutput>,
<computeroutput>windowkeys</computeroutput>), prípadne problémových kláves (<computeroutput>
delete</computeroutput>, <computeroutput>backspace</computeroutput>, <computeroutput>ctrl
</computeroutput>). Súbory <filename>linux-*.inc.gz</filename> sú &scaron;pecifické pre linux
(teda nie pre jazyk). Sú to napr. k&lcaron;ú&ccaron;e (<keycap>F1</keycap>-<keycap>F12</keycap>,
kombinovaním s <keycap>Ctrl</keycap> a <keycap>Shift</keycap> a&zcaron; po <keycap>F48</keycap>),
<keycombo><keycap>Shift</keycap> <keycap>PgUp</keycap></keycombo> a <keycombo><keycap>Shift
</keycap> <keycap>PgDown</keycap></keycombo>, at&dcaron;.</para>
<para>Keymapy <filename>*.inc.gz</filename> nepopisujú kompletné rozlo&zcaron;enie klávesnice, ale
len niektorých jej &ccaron;astí. Vyu&zcaron;ívajú sa pri pripájaní
(<foreignphrase>include</foreignphrase>) zo súborov <filename>*.map.gz</filename>, &ccaron;o je
výhodné z dôvodu jednoduch&scaron;ej konfigurácie klávesnice. Napríklad zmenou jedného riadku v
súbore s rozlo&zcaron;ením <computeroutput>sk-qwerty</computeroutput> mô&zcaron;me dosta&tcaron; rozlo&zcaron;enie
qwertz, prípadne (to asi vyu&zcaron;ijete) jednoducho odstavi&tcaron; znaky <keycap>euro</keycap> a
<keycap>cent</keycap>, ktoré (zatia&lcaron;?) nepotrebujeme a zbyto&ccaron;ne nám zaberajú znaky
<keycap>E</keycap> a <keycap>C</keycap>.</para>
<para>Na zavedenie súboru s popisom rozlo&zcaron;enia kláves slú&zcaron;i nasledovný príkaz:
<cmdsynopsis>
<command>loadkeys</command>
<arg choice="plain"><replaceable>nazov</replaceable></arg>
</cmdsynopsis>
kde <computeroutput>nazov</computeroutput> mô&zcaron;e by&tcaron; absolútna alebo relatívna cesta ku
keymap súboru, alebo meno súboru, pokia&lcaron; sa nachádza v adresári <filename class="directory">
/usr/lib/kbd/keymaps/</filename>, &ccaron;i u&zcaron; s príponou, alebo bez.</para>
<para>&Scaron;tandardné slovenské popisy rozlo&zcaron;enia kláves nájdeme vo vy&scaron;&scaron;ie spomínaných
<filename>*.map.gz</filename> súboroch. Ak sa chcete vráti&tcaron; k &scaron;tandardnému rozlo&zcaron;eniu,
príkaz
<screen>
sh$ loadkeys -d
</screen>
zavedie pôvodné, ktoré je ulo&zcaron;ené v súbore <filename>defkeymap.map.gz</filename> niekde
medzi ostatnými keymap súbormi. Predtým ale nikdy nezabudnite zmeni&tcaron; re&zcaron;im slovenskej
klávesnice na <acronym>US</acronym> znaky, tzn. <keycap>1</keycap> dáva
<computeroutput>1</computeroutput> a nie <computeroutput>+</computeroutput> at&dcaron;. Ak by ste
predsa zabudli, je mo&zcaron;né, &zcaron;e klávesy, kde sa nachádzali slovenské znaky, nebudú fungova&tcaron;
správne (v skuto&ccaron;nosti budú fungova&tcaron; správne, ale vám sa to nebude pá&ccaron;i&tcaron;). Vtedy znovu
zave&dcaron;te predchadzájúcu keymapu (na nefunk&ccaron;né klávesy pou&zcaron;ite <keycap>AltGr</keycap> - pravý
<keycap>Alt</keycap>) a klávesou <keycap>Pause/Break</keycap> v&scaron;etko napravíte. Potom mô&zcaron;ete
znova zavies&tcaron; defkeymap.</para>
<para>Pokia&lcaron; sa vám nepá&ccaron;i ani jeden zo &scaron;tandardných keymap súborov pre sloven&ccaron;inu, &ccaron;o je
pravdepodobné v&dcaron;aka riadku
<programlisting>
include "euro"
</programlisting>
v include súboroch <filename>qwerty-layout.inc.gz</filename> aj
<filename>qwertz-layout.inc.gz</filename>, mô&zcaron;ete k&lcaron;udne pozmeni&tcaron; existujúci súbor s popisom
rozlo&zcaron;enia kláves, prípadne vytvori&tcaron; nový. Nebojte sa, je to zlo&zcaron;ité! Nebudem to tu
rozpisova&tcaron; v&scaron;etko, prezrite si zopár kmap súborov, pre&ccaron;ítajte manuálovú stránku keymaps(5) a
mali by ste to &lcaron;ahko pochopi&tcaron;.</para>
<para>My si povieme len o základných veciach, ktoré nám pomô&zcaron;u pozmeni&tcaron; 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&zcaron;enie kláves pod&lcaron;a svojho gusta.</para>
</section> <!-- console-kbd-kmap -->
<section id="console-kbd-include">
<title>Include a nesprávna funkcia kláves <keycap>E</keycap> a <keycap>C</keycap></title>
<para>Problém s <keycap>E</keycap> a <keycap>C</keycap> je spôsobený zavedením jednotnej meny
v európskej únii. Na vine nie je ani tak <acronym>EU</acronym>, ale niekto, kto symboly pre
<keycap>euro</keycap> a <keycap>cent</keycap> umiestnil na <keycombo><keycap>AltGr</keycap>
<keycap>E</keycap></keycombo> a <keycombo><keycap>AltGr</keycap><keycap>C</keycap>
</keycombo>, &ccaron;o sú na&scaron;e oby&ccaron;ajné <keycap>E</keycap> a <keycap>C</keycap>. Toti&zcaron;, národné
klávesnice sú vä&ccaron;&scaron;inou rie&scaron;ené tak, &zcaron;e po zavedení súboru na&dcaron;alej funguje americké
rozlo&zcaron;enie a na prepínanie do národného re&zcaron;imu sa pou&zcaron;íva klávesa <keycap>Pause</keycap>,
alebo mô&zcaron;me zadáva&tcaron; národné klávesy pri sú&ccaron;asnom dr&zcaron;aní klávesy <keycap>AltGr</keycap>
(pravý <keycap>Alt</keycap>). Súbor <filename>euro.inc</filename>, ktorý definuje tieto dva
problémové symboly, je pripojený zo súboru <filename>qwerty-layout.inc</filename>, ktorý
zase pripájajú samotné slovenské keymapy (<filename>sk-qwerty</filename>,
<filename>sk-prog-qwertz</filename>, &hellip;).</para>
<para>Rie&scaron;enie je ve&lcaron;mi jednoduché - zeditujete <filename>qwerty-layout.inc</filename> (alebo
<filename>qwertz-layout.inc</filename>) a odkomentujete znakom
<computeroutput>&num;</computeroutput> riadok
<programlisting>
include "euro"
</programlisting></para>
</section> <!-- console-kbd-include -->
<section id="console-kbd-keycode">
<title>Keycode a definovanie kláves</title>
<para>Predchádzajúci problém s eurom mo&zcaron;no vyrie&scaron;i&tcaron; aj definovaním znakov <keycap>E</keycap> a
<keycap>C</keycap> v samotnom súbore <filename>sk-qwerty.kmap.gz</filename> (alebo inom,
ktorý pou&zcaron;ívate) pomocou slova <computeroutput>keycode</computeroutput>:
<programlisting>
keycode 18 = e
keycode 46 = c
</programlisting></para>
<para>V keymap súboroch je pre ka&zcaron;dú klávesu (alebo aspo&ncaron; pre ka&zcaron;dú, ktorú chceme
predefinova&tcaron;) jeden riadok pribli&zcaron;ne tohto razenia:
<programlisting>
keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two...
</programlisting></para>
<para>&Ccaron;íslo za <computeroutput>keycode</computeroutput> ozna&ccaron;uje ur&ccaron;itú klávesu a re&tcaron;azce za
<computeroutput>=</computeroutput> hovoria o tom, aký znak má ovláda&ccaron; klávesnice generova&tcaron;
pri stla&ccaron;ení tejto klávesy, a to bu&dcaron; samotnej, alebo v kombinácii so &scaron;peciálnymi klávesmi
<keycap>Shift</keycap>, <keycap>AltGr</keycap>, <keycap>Control</keycap>,
<keycap>Alt</keycap>, <keycap>ShiftL</keycap>, <keycap>ShiftR</keycap>,
<keycap>Ctrl</keycap> a <keycap>CtrlR</keycap>. To nám dáva 256 mo&zcaron;ných znakov na ka&zcaron;dú
klávesu.</para>
<para>Vä&ccaron;&scaron;inou sa pozme&ncaron;uje len prvých 16 kombinácií modifikátorov. To je význam riadku
<programlisting>
keymaps 0-15
</programlisting>
na za&ccaron;iatku kmap súborov.</para>
<para>V nasledujúcom zozname je týchto 16 kombinácií (po riadkoch):
<simplelist columns="4" type="horiz">
<member>&zcaron;iadny</member>
<member><keycap>Shift</keycap></member>
<member><keycap>AltGr</keycap></member>
<member><keycombo><keycap>Shift</keycap><keycap>AltGr</keycap></keycombo></member>
<member><keycap>Control</keycap></member>
<member><keycombo><keycap>Shift</keycap><keycap>Control</keycap></keycombo></member>
<member><keycombo><keycap>AltGr</keycap><keycap>Control</keycap></keycombo></member>
<member><keycombo><keycap>Shift</keycap><keycap>AltGr</keycap><keycap>Control</keycap>
</keycombo></member>
<member><keycap>Alt</keycap></member>
<member><keycombo><keycap>Shift</keycap><keycap>Alt</keycap></keycombo></member>
<member><keycombo><keycap>AltGr</keycap><keycap>Alt</keycap></keycombo></member>
<member><keycombo><keycap>Shift</keycap><keycap>AltGr</keycap><keycap>Alt</keycap>
</keycombo></member>
<member><keycombo><keycap>Control</keycap><keycap>Alt</keycap></keycombo></member>
<member><keycombo><keycap>Shift</keycap><keycap>Control</keycap><keycap>Alt</keycap>
</keycombo></member>
<member><keycombo><keycap>AltGr</keycap><keycap>Control</keycap><keycap>Alt</keycap>
</keycombo></member>
<member><keycombo><keycap>Shift</keycap><keycap>AltGr</keycap><keycap>Control</keycap>
<keycap>Alt</keycap></keycombo></member>
</simplelist></para>
<para>Z h&lcaron;adiska slovenskej klávesnice sú dôle&zcaron;ité len prvé &scaron;tyri - prvé dva sú zvy&ccaron;ajne
nezmenené americké znaky, napr. <computeroutput>two at</computeroutput>, &ccaron;o je
<keycap>2</keycap> <keycap>@</keycap>, a druhé dva sú znaky slovenskej abecedy, ktoré bude
ovláda&ccaron; klávesnice posiela&tcaron; aplikáciám ak pri stla&ccaron;ení tejto klávesy budeme sú&ccaron;asne dr&zcaron;a&tcaron;
klávesu <keycap>AltGr</keycap> (pravý <keycap>Alt</keycap>), napr. <computeroutput>lcaron
two</computeroutput>, &ccaron;o je na&scaron;e <keycap>&lcaron;</keycap> <keycap>2</keycap>.</para>
<para>Aby ste mohli vklada&tcaron; slovenské znaky, nemusíte celý &ccaron;as pridr&zcaron;iava&tcaron;
<keycap>AltGr</keycap> nosom, ale mô&zcaron;ete pou&zcaron;i&tcaron; <keycap>Pause/Break</keycap>, ktorý v
kontexte s národnými klávesnicami funguje ako <keycap>AltGr Lock</keycap>. Chápte to tak, &zcaron;e
ke&dcaron; sa prepnete do slovenského re&zcaron;imu stla&ccaron;ením <keycap>Pause/Break</keycap>, prvé a druhé
dva re&tcaron;azce v ka&zcaron;dom riadku keycode sa vymenia, napr.
<programlisting>
two at lcaron two -> lcaron two two at
</programlisting></para>
<para>Vtedy mô&zcaron;ete pou&zcaron;i&tcaron; <keycap>AltGr</keycap> na zadávanie znakov americkej klávesnice,
alebo sa opätovným stla&ccaron;ením <keycap>Pause/Break</keycap> prepnú&tcaron; spät do
<acronym>US</acronym> re&zcaron;imu.</para>
<para>Riadok pre klávesu s kódom 41 (znaky <keycap>`</keycap> a <keycap>~</keycap>), má v
súbore <filename>sk-qwerty.map.gz</filename> nasledovný tvar:
<programlisting>
keycode 41 = grave asciitilde dead_diaeresis dead_circumflex ...
</programlisting></para>
<para>Mne osobne sa nepá&ccaron;i, &zcaron;e sú tu umiestnené m&racute;tve klávesy <keycap>dead_diaeresis</keycap>
(dve bodky nad znakom) a <keycap>dead_circumflex</keycap> (mäk&ccaron;e&ncaron;), preto&zcaron;e ich nepotrebujem
--- <keycap>ä</keycap> aj <keycap>ô</keycap> na slovenskej klávesnici predsa je. A keby aj
nebolo, na ich písanie mô&zcaron;em k&lcaron;udne pou&zcaron;i&tcaron; m&racute;tvy kláves mäk&ccaron;e&ncaron;. O tom si bli&zcaron;&scaron;ie povieme v
&ccaron;asti o compose sekvenciách. Teraz chcem ma&tcaron; na tomto mieste znaky <keycap>;</keycap>
(semicolon) a <keycap>°</keycap> (degree) tak, ako je to na popiske mojej klávesnice. Zmením
teda riadok takto:
<programlisting>
keycode 41 = grave asciitilde semicolon degree ...
</programlisting></para>
<para>Iná&ccaron;, ten stupe&ncaron; asi nie je stupe&ncaron;, ale m&racute;tvy znak krú&zcaron;ku nad písmenom, napr. v &ccaron;e&scaron;tine
nad u, ale taký kláves je nám fakt nani&ccaron;. Rad&scaron;ej budeme písa&tcaron; stupne.</para>
<para>Názvy znakov, ktoré sa pou&zcaron;ívajú pri definovaní jednotlivých kláves si mô&zcaron;ete pre znaky
<acronym>ASCII</acronym> zisti&tcaron; v súbore <filename>us.map.gz</filename>. &Ccaron;íselné kódy
v&scaron;etkých kláves vám vyp&lcaron;uje program
<cmdsynopsis>
<command>showkey</command>
</cmdsynopsis></para>
<para>Pravidlá pre názvy znakov &scaron;pecifických pre sloven&ccaron;inu v kmap súboroch:
<orderedlist>
<listitem>
<para>Prvé písmeno v názve ur&ccaron;uje <acronym>ASCII</acronym> znak, pre ktorý chceme pou&zcaron;i&tcaron;
diakritiku.</para>
</listitem>
<listitem>
<para>K nemu pridáme identifikátor diakritického znamienka:
<simplelist>
<member>caron --- mäk&ccaron;e&ncaron;</member>
<member>acute --- d&lacute;&zcaron;e&ncaron;</member>
<member>diaeresis --- dve bodky nad</member>
<member>circumflex --- voká&ncaron;</member>
</simplelist></para>
<para>Napríklad:
<simplelist>
<member>scaron = <keycap>&scaron;</keycap></member>
<member>uacute = <keycap>ú</keycap></member>
<member>Ocircumflex = <keycap>Ô</keycap></member>
</simplelist></para>
</listitem>
</orderedlist></para>
<para>Názvy &dcaron;al&scaron;ích znakov &scaron;pecifických pre sloven&ccaron;inu:
<simplelist>
<member>0xa7 --- <keycap>§</keycap> (paragraf)</member>
<member>degree --- <keycap>°</keycap> stupe&ncaron;</member>
</simplelist></para>
<para>Pre správnu interpretáciu identifikátorov znakov s diakritikou je nutné na za&ccaron;iatku kmap
súboru ur&ccaron;i&tcaron; kódovú stránku, pre ktorú bude ur&ccaron;ený tento popis rozlo&zcaron;enia kláves. Ide o to,
&zcaron;e ten istý znak mô&zcaron;e ma&tcaron; v rôznych kódových stránkach iný <acronym>ASCII</acronym> kód.
Implicitná hodnota je <constant>iso-8859-1</constant>, teda pre slovenské keymapy je nutné
vlo&zcaron;i&tcaron; riadok:
<programlisting>
charset "iso-8859-2"
</programlisting></para>
<para>E&scaron;te jeden príklad: ak chcete pou&zcaron;íva&tcaron; slovenské rozlo&zcaron;enie
<computeroutput>qwertz</computeroutput> a americké rozlo&zcaron;enie
<computeroutput>qwerty</computeroutput>, potrebujete vymeni&tcaron; znaky <keycap>Y</keycap> a
<keycap>Z</keycap>:
<programlisting>
keycode 21 = y Y z Z
keycode 44 = z Z y Y
</programlisting></para>
<para>Na prvý poh&lcaron;ad to mô&zcaron;e fungova&tcaron; dobre, ale problém sa prejaví pri zapnutom <keycap>Caps
Lock</keycap> - znaky <keycap>Y</keycap> a <keycap>Z</keycap> sa stále pí&scaron;u malými
písmenami. Pri písaní popisov rozlo&zcaron;ení znakov mo&zcaron;no takýto problém o&scaron;etri&tcaron; pridaním písmena
<computeroutput>+</computeroutput> pred ka&zcaron;dé písmeno v keycode riadku danej klávesy.
Písmeno <computeroutput>+</computeroutput> ur&ccaron;uje nasledovnému písmenu atribút
<foreignphrase>letter</foreignphrase>, teda sa bude pri stla&ccaron;enom <keycap>Caps Lock</keycap>
písa&tcaron; ve&lcaron;ké písmeno. V&scaron;etky písmená <keycap>a</keycap>-<keycap>z</keycap>,
<keycap>A</keycap>-<keycap>Z</keycap> majú tento atribút priradený automaticky, ale to len v
prípade, &zcaron;e majú keycode riadok tvaru:
<programlisting>
keycode 21 = y
</programlisting></para>
<para>V na&scaron;om prípade teda musíme priradi&tcaron; tento atribút v&scaron;etkým znakom explicitne. Tak&zcaron;e,
kone&ccaron;ná úprava keymapy bude:
<programlisting>
keycode 21 = +y +Y +z +Z
keycode 44 = +z +Z +y +Y
</programlisting></para>
<para>Pre výmenu písmen toto rie&scaron;enie funguje spo&lcaron;ahlivo, bohu&zcaron;ia&lcaron;, e&scaron;te stále neexistuje
spôsob, ktorým by sa dalo dosiahnu&tcaron; napríklad písanie ve&lcaron;kých písmen s diakritikou pri
zapnutom <keycap>Caps Lock</keycap> jednoduchým stlá&ccaron;aním ich kláves, ako je to v slovenskom
popise rozlo&zcaron;enia kláves pre <application>X Window System</application>.</para>
</section> <!-- console-kbd-keycode -->
<section id="console-kbd-dead">
<title>M&racute;tve klávesy a sekvencie compose</title>
<para>S m&racute;tvymi klávesami súvisia v kmap súboroch riadky tvaru
<programlisting>
compose 'c1' 'c2' to 'c3'
</programlisting></para>
<para>Predstavme si m&racute;tve znaky ako úplne oby&ccaron;ajné znaky s tým rozdielom, &zcaron;e ovláda&ccaron;
klávesnice ich neposiela aplikáciám, ale zostanú niekde <quote>visie&tcaron;</quote>, kým z
klávesnice nepríde &dcaron;al&scaron;í znak. Ovláda&ccaron; klávesnice nepo&scaron;le ani tento, ale pokúsi sa spoji&tcaron; ho
s predchádzajúcim m&racute;tvym znakom a a&zcaron; výsledok spojenia pustí &dcaron;alej. No, a ako má to spojenie
uskuto&ccaron;ni&tcaron;, to mu presne hovoria riadky <computeroutput>compose</computeroutput> v keymap
súboroch.</para>
<para>V nasledujúcej tabu&lcaron;ke je zoznam m&racute;tvych znakov pou&zcaron;ívaných v sloven&ccaron;ine, spolu s
významom a znakom, ktorým sa ozna&ccaron;ujú v compose sekvenciách.
<table id="console-kbd-dead.tables.dead">
<title id="console-kbd-dead.tables.dead.title">M&racute;tve klávesy</title>
<tgroup cols="3">
<thead>
<row>
<entry>Názov</entry>
<entry>Význam</entry>
<entry>Compose</entry>
</row>
</thead>
<tbody>
<row>
<entry>dead_acute</entry>
<entry>d&lacute;&zcaron;e&ncaron;</entry>
<entry>\'</entry>
</row>
<row>
<entry>dead_circumflex</entry>
<entry>mäk&ccaron;e&ncaron;</entry>
<entry>^</entry>
</row>
<row>
<entry>dead_diaeresis</entry>
<entry>dve bodky nad</entry>
<entry>"</entry>
</row>
</tbody>
</tgroup>
</table></para>
<procedure>
<title>Postup pri písani compose sekvencií</title>
<step>
<para>Ka&zcaron;dá compose sekvencia sa za&ccaron;ína k&lcaron;ú&ccaron;ovým slovom
<computeroutput>compose</computeroutput>.</para>
</step>
<step>
<para>Nasleduje compose znak m&racute;tvej klávesy (pod&lcaron;a tabu&lcaron;ky <xref
linkend="console-kbd-dead.tables.dead" endterm="console-kbd-dead.tables.dead.title">),
napríklad <computeroutput>\'</computeroutput>.
</para>
<para>Druhý je znak, s ktorým chceme m&racute;tvu klávesu kombinova&tcaron;, napríklad
<computeroutput>A</computeroutput>.</para>
<para>Za k&lcaron;ú&ccaron;ovým slovom <computeroutput>to</computeroutput> nasleduje výsledok spojenia
m&racute;tvej klávesy a znaku bez diakritiky, teda <computeroutput>Á</computeroutput>.</para>
</step>
</procedure>
<para>Je praktické ma&tcaron; pri vytváraní compose sekvencií zavedený slovenský font, aby ste
výsledok mohli hne&dcaron; kontrolova&tcaron;. Ve&lcaron;kou pomocou je tie&zcaron; mo&zcaron;nos&tcaron; príkazu
<command>loadkeys</command> &ccaron;íta&tcaron; zo &scaron;tandardného vstupu. Napríklad:
<screen>
sh$ loadkeys
include "/usr/lib/kbd/keymaps/i386/include/windowkeys.map.gz"
keycode 41 = grave asciitilde semicolon dead_diaeresis
compose '"' 'a' to 'ä'
# ukon&ccaron;enie zadávania: EOF - Ctrl-D
sh$
</screen></para>
<para>Popis aktuálneho rozlo&zcaron;enia kláves mô&zcaron;ete ulo&zcaron;i&tcaron; do súboru príkazom
<screen>
sh$ dumpkeys > subor
</screen></para>
<para>Ak nemáte zavedený slovenský popis rozlo&zcaron;enia kláves, musíte zadáva&tcaron; tieto znaky ako
<keycap>Alt</keycap> sekvencie, poprípade vklada&tcaron; ich hex kódy v tvare
<keycode>0xed</keycode> pre <keycap>í</keycap>. Výpis znakov aktuálneho fontu spolu s ich
hex kódmi vám urobí program
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<cmdsynopsis>
<command>showfont</command>
</cmdsynopsis></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<cmdsynopsis>
<command>showcfont</command>
</cmdsynopsis></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>E&scaron;te raz na&scaron;a compose sekvencia a nejaké navy&scaron;e:
<programlisting>
compose '\'' 'A' to 'Á' # dlhé A cez d&lacute;&zcaron;e&ncaron;
compose '^' 'O' to 'Ô' # O s voká&ncaron;om cez mäk&ccaron;e&ncaron;
compose '^' 'a' to 'ä' # &scaron;iroké a cez mäk&ccaron;e&ncaron;,
compose '^' 'A' to 0x84 # ...preto nepotrebujeme dead_diaeresis
</programlisting></para>
<para>Mimochodom, v súbore <filename>/usr/lib/kbd/keymaps/compose/compose.latin2</filename>
máte zoznam compose sekvencií pre normu <acronym>ISO-8859-2</acronym>.</para>
</section> <!-- console-kbd-dead -->
<section id="console-kbd-autoload">
<title>Automatické zavádzanie keymap súboru</title>
<para>Na nastavenie rozlo&zcaron;enia klávesnice, ktoré chceme zavies&tcaron; pri &scaron;tarte systému, nám slú&zcaron;i
súbor <filename>/etc/sysconfig/keyboard</filename>. Pre Slováka ako repa by mal vyzera&tcaron;
minimálne takto:
<programlisting>
KEYTABLE=sk-qwerty # zavedie rozlo&zcaron;enie kláves sk-qwerty
KBCHARSET=iso-8859-2 # ...a spomínaný súbor compose.latin2
</programlisting></para>
<para>Nastavenie klávesnice pri &scaron;tarte má na starosti skript <command>keytable</command>,
ktorý je volaný priamo z <filename>rc.sysinit</filename>, tak&zcaron;e netreba vytvára&tcaron; linky v
adresároch pre runlevel <constant>3/multiuser</constant>, prípadne <constant>5/X</constant>.
</para>
<para>V dokumentácii k <application>initscripts</application> sa pí&scaron;e: <quote>Ak ulo&zcaron;íte popis
rozlo&zcaron;enia kláves (pou&zcaron;itím <command>dumpkeys</command>) do súboru
<filename>/etc/sysconfig/console/default.kmap</filename>, zavedie sa pri &scaron;tarte systému e&scaron;te
pred pripájaním/kontrolou súborových systémov. To mô&zcaron;e by&tcaron; u&zcaron;ito&ccaron;né, ak potrebujete zada&tcaron;
heslo roota v prípade problémov. Musí to by&tcaron; <quote>dumpnutý</quote> popis rozlo&zcaron;enia kláves
a nie skopírovaný súbor z <filename class="directory">/usr/lib/kbd/keytables/</filename>,
preto&zcaron;e tie &ccaron;asto e&scaron;te vkladajú (include) iné popisy z tejto adresárovej
&scaron;truktúry.</quote></para>
<para>Po pripojení súborových systémov, v prípade, &zcaron;e existuje spustite&lcaron;ný súbor
<filename>/etc/rc.d/init.d/keytable</filename> a adresár
<filename class="directory">/usr/lib/kbd/keymaps/</filename>, vykoná sa príkaz
<screen>
sh# /etc/rc.d/init.d/keytable start
</screen></para>
<para>Tento u&zcaron; zavedie popis rozlo&zcaron;enia kláves tak, ako to máte ur&ccaron;ené premennými v súbore
<filename>/etc/sysconfig/keyboard</filename>, preto nemusíte vytvára&tcaron; odkazy v jednotlivých
<filename class="directory">rc[1-5].d/</filename> adresároch.</para>
<para>To, &ccaron;o sme si hovorili o zmene fontu pri prihlásení nejakého u&zcaron;ívate&lcaron;a na virtuálnej
konzole, sa dá aplikova&tcaron; aj na rozlo&zcaron;enie kláves. Úplne najjednoduch&scaron;ie rie&scaron;enie (ktoré sa
pri prvom odhlásení po&scaron;le do kríkov) je asi takéto:
<variablelist>
<varlistentry>
<term><filename>~/.bash_profile</filename>:</term>
<listitem>
<para>
<programlisting>
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.keymap ]; then
dumpkeys > ~/.keymap
loadkeys gr.map
fi
</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>~/.bash_logout</filename>:</term>
<listitem>
<para>
<programlisting>
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.keymap ]; then
loadkeys ~/.keymap
rm -f ~/.keymap
fi
</programlisting></para>
</listitem>
</varlistentry>
</variablelist></para>
</section> <!-- console-kbd-autoload -->
</section> <!-- console-kbd -->
<section id="console-summary">
<title>Zhrnutie nastavení konzoly</title>
<para>Pokia&lcaron; som sa niekde nesekol, tak minimálne v distribúciách
<systemitem class="osname">RedHat</systemitem> a
<systemitem class="osname">Mandrake</systemitem> by po týchto zmenách mala do pohody za&scaron;lapa&tcaron;
slovenská podpora (fonty + klávesnica).
<variablelist>
<varlistentry>
<term><filename>/etc/sysconfig/i18n</filename>:</term>
<listitem>
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<programlisting>
SYSFONT=lat2a-16
</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<programlisting>
SYSFONT=lat2u-16
SYSFONTACM=iso02
</programlisting></para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/sysconfig/keyboard</filename>:</term>
<listitem>
<para>
<programlisting>
KEYTABLE=sk-qwertz
KBCHARSET=iso-8859-2
</programlisting></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Tie&zcaron;, ak zadávate rootovské heslo s pou&zcaron;itím iného rozlo&zcaron;enia kláves ako je &scaron;tandardné
(<computeroutput>us</computeroutput>), vlo&zcaron;te si jeho popis do súboru
<filename>/etc/sysconfig/console/default.kmap</filename>. Pozor, nesmiete len tak skopírova&tcaron;
súbor, alebo vytvori&tcaron; link! Ak chcete pou&zcaron;i&tcaron; napríklad rozlo&zcaron;enie
<computeroutput>sk-qwertz</computeroutput>, urobte to takto:
<screen>
sh$ loadkeys sk-qwertz
sh# dumpkeys >/etc/sysconfig/console/default.kmap
</screen></para>
<para>Ak chcete nastavi&tcaron; slovenský font a klávesnicu len jednorazovo, tieto príkazy by to mali
dokáza&tcaron;:
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<screen>
sh$ setfont lat2a-16
sh$ loadkeys sk-qwertz
</screen></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<screen>
sh$ consolechars -f lat2u-16 -m iso02
sh$ loadkeys sk-qwertz
</screen></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>...a naspä&tcaron; na &scaron;tandardné nastavenia:
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<screen>
sh$ setfont
sh$ loadkeys -d
</screen></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<screen>
sh$ consolechars -d
sh$ loadkeys -d
</screen></para>
</listitem>
</varlistentry>
</variablelist></para>
</section> <!-- console-summary -->
</section> <!-- console -->
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="xwindow">
<title>Nastavenia X Window Systemu</title>
<para>&Ccaron;oko&lcaron;vek sa chystáte robi&tcaron; s <application>X Window Systemom</application> a sloven&ccaron;inou
dokopy, s&lcaron;ubujem, &zcaron;e vám to nebude fungova&tcaron;, ak nenastavíte totok taktok:
<programlisting>
LC_CTYPE=sk
</programlisting></para>
<para>&Ccaron;o to znamená a ako sa to nastavuje, tak o tom pojednáva kapitola <xref linkend="locales"
endterm="locales.title">.</para>
<section id="xwindow-fonts">
<title>Slovenské fonty v X Window Systeme</title>
<para>Predpokladám, &zcaron;e <application>X Window System</application> máte nain&scaron;talovaný, prípadne
aj <application>X Font Server</application>, va&ccaron;&scaron;inu dôle&zcaron;itých vecí sme si povedali v &ccaron;asti o
konzole, po&dcaron;me si rovno nain&scaron;talova&tcaron; slovenské fonty.</para>
<section id="xwindow-fonts-xsinstall">
<title>In&scaron;talácia fontov - X server</title>
<para>Slovenské fonty pre <acronym>X</acronym> nájdeme v balíku
<application>XFree86-ISO8859-2</application>, ve&lcaron;a &dcaron;al&scaron;ích je v balíkoch
<application>XFree-ISO8859-2-<emphasis>&lt;druh></emphasis>-fonts</application>, kde
<emphasis>&lt;druh></emphasis> mô&zcaron;e by&tcaron; <application>Type1</application>,
<application>100dpi</application> alebo <application>75dpi</application>. Ak chcete pou&zcaron;íva&tcaron;
sloven&ccaron;inu seriózne (<application>Gimp</application>, <application>Netscape</application>,
lokalizácia), nain&scaron;talujte si v&scaron;etky, ak potrebujete slovenský font len napr. v
<application>XTerme</application>, posta&ccaron;í vám základný balík.</para>
<para>Po rozbalení archívu sa fonty nachádzajú na nieko&lcaron;kých miestach. V&scaron;etky cesty k novým
fontom si treba odpisa&tcaron;, zapamäta&tcaron;, ma&tcaron; na o&ccaron;iach:
<simplelist>
<member><filename class="directory">/usr/share/fonts/ISO8859-2/misc</filename></member>
<member><filename class="directory">/usr/share/fonts/ISO8859-2/75dpi</filename></member>
<member><filename class="directory">/usr/share/fonts/ISO8859-2/100dpi</filename></member>
<member><filename class="directory">/usr/share/fonts/ISO8859-2/Type1</filename></member>
</simplelist></para>
<para>Tieto cesty toti&zcaron; budeme vklada&tcaron; do konfigura&ccaron;ného súboru <application>X Window
Systemu</application> (<filename>/etc/X11/XF86Config</filename>, prípadne
<filename>/etc/X11/XF86Config-4</filename>). Tým sprístupníme X serveru fonty z týchto
adresárov. Sekciu <computeroutput>"Files"</computeroutput> upravíme vlo&zcaron;ením riadkov
<computeroutput>FontPath</computeroutput>:
<programlisting>
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
</programlisting></para>
<para>Správne poradie riadkov s cestami k fontom nájdete v
<citetitle>XWindow-User-HOWTO</citetitle>, ale nemali by ste ma&tcaron; ve&lcaron;ké problémy ani ke&dcaron;
slovenské fonty vlo&zcaron;íte na koniec zoznamu.</para>
<para>Za behu <application>X Window Systemu</application> pridáte nové adresáre s fontami
príkazom
<screen>
sh$ xset +fp /usr/share/fonts/ISO8859-2/misc, /usr/share/fonts/ISO8859-2/75dpi, &hellip;
</screen></para>
</section> <!-- xwindow-fonts-xsinstall -->
<section id="xwindow-fonts-fsinstall">
<title>In&scaron;talácia fontov - X Font Server</title>
<para><application>X Font Server</application> ponúka druhý spôsob spravovania fontov pre
<application>X Window Server</application>, a to ako pre lokálnu ma&scaron;inu, tak aj pre
vzdialené systémy. Moderné distribúcie u&zcaron; po in&scaron;talácii ponúkajú nakonfigurovaný
<application>X Font Server</application> a <application>X Window System</application>, ktorý
vyu&zcaron;íva jeho slu&zcaron;by.</para>
<para>Pri tomto spôsobe treba cesty k fontom vlo&zcaron;i&tcaron; do konfigura&ccaron;ného súboru
<application>X Font Serveru</application> a konfigurácia v
<filename>/etc/X11/X86Config</filename> (XF86Config-4) by mala vyzera&tcaron; takto:
<programlisting>
Section "Files"
FontPath "unix/:7100"
EndSection
</programlisting>
za predpokladu, &zcaron;e X Font Server be&zcaron;í na porte 7100 (vo&lcaron;ba príkazového riadku
<computeroutput>-port</computeroutput>).</para>
<para>Ak teda pou&zcaron;ívate <application><acronym>xfs</acronym></application>, nie&ccaron;o podobné ako v
predchádzajúcej kapitole urobíte s konfigura&ccaron;ným súborom pre tento program
(<filename>/etc/X11/fs/config</filename>) v &ccaron;asti
<computeroutput>catalogue</computeroutput>:
<programlisting>
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
</programlisting></para>
<para>Hne&dcaron; potom musí <application><acronym>xfs</acronym></application> znovu na&ccaron;íta&tcaron;
konfigura&ccaron;ný súbor a tým umo&zcaron;níte pou&zcaron;ívanie slovenských fontov lokálnemu aj iným
<acronym>X</acronym> serverom:
<screen>
sh# killall -USR1 xfs
</screen></para>
</section> <!-- xwindow-fonts-fsinstall -->
<section id="xwindow-fonts-ttf">
<title id="xwindow-fonts-ttf.title">Slovenské TrueType fonty</title>
<para>Ak vlastníte legálnu kópiu systému <systemitem class="osname">WindowsXX</systemitem>
(kde <acronym>XX</acronym> je hoci&ccaron;o), alebo <systemitem class="osname">MacOS</systemitem>,
nemali by vás zavrie&tcaron;, ak pou&zcaron;ijete <application>TrueType</application> fonty obsiahnuté v
ich distribúciách. Existuje aj mnoho balíkov s <application>TrueType</application> fontmi s
podporou normy <acronym>ISO-8859-2</acronym>, ktoré sú vo&lcaron;ne dostupné.</para>
<para>Popis in&scaron;talácie takýchto fontov prebehneme len v krátkosti, podrobnej&scaron;í
nájdete v dokumentácii k balíku <application>free-type</application>:</para>
<procedure>
<step>
<para>Skopírujte súbory s <application>TrueType</application> fontami napr. do adresára
<filename class="directory">/usr/share/fonts/ttf/win/</filename>. Odporú&ccaron;am zmeni&tcaron;
mená súborov s fontami aj ich prípony na malé písmená -- mal som s tým
problémy.</para>
</step>
<step>
<para>Vytvorte v ka&zcaron;dom adresári súbor s informáciami o scalable fontoch
<filename>fonts.scale</filename> nasledovným príkazom:
<screen>
sh# cd /usr/share/fonts/ttf/win
sh# ttmkfdir -o fonts.scale
</screen></para>
<para>Ak to nie je celkom ono a dostanete ve&lcaron;a chybových hlásení, alebo súbor
<filename>fonts.scale</filename> obsahuje príli&scaron; málo záznamov o fontoch v adresári,
skúste pou&zcaron;i&tcaron; s príkazom <command>ttmkfdir</command> aj vo&lcaron;bu príkazoveho riadku
<computeroutput>-c</computeroutput>.</para>
</step>
<step>
<para>Zoznam fontov v súbore, ktorý na&ccaron;ítava <acronym>X</acronym> server aj
<application>xfs</application>, vytvoríte nasledovne:
<screen>
sh# cd /usr/share/fonts/ttf/win
sh# mkfontdir
</screen></para>
</step>
</procedure>
<para>Od tohto momentu pokra&ccaron;ujte &scaron;tandardným spôsobom tak, ako je to popísané
v predchádzajúcej &ccaron;asti o konfigurácii <acronym>X</acronym> servera alebo
<application>xfs</application>.</para>
</section> <!-- xwindow-fonts-ttf -->
<section id="xwindow-fonts-alias">
<title>&Ccaron;o je iné so slovenskými fontami</title>
<para>Okrem toho, &zcaron;e sa slovenské znaky zobrazujú správne, ni&ccaron;. Fonty z balíkov pre normu
<acronym>ISO-8859-2</acronym> sa síce volajú inak, ale vzh&lcaron;adom zodpovedajú &scaron;tandardným
fontom. V nasledujúcej tabu&lcaron;ke sú uvedené zodpovedajúce dvojice fontov:
<table>
<title>Slovenské ekvivalenty &scaron;tandardných fontov</title>
<tgroup cols="2">
<thead>
<row>
<entry>&scaron;tandardne</entry>
<entry>iso8859-2</entry>
</row>
</thead>
<tbody>
<row>
<entry>Times</entry>
<entry>Kathimerini</entry>
</row>
<row>
<entry>Helvetica</entry>
<entry>Aplos</entry>
</row>
<row>
<entry>New Century Schoolbook</entry>
<entry>Anagnostiko</entry>
</row>
<row>
<entry>Lucida</entry>
<entry>Fotinos</entry>
</row>
<row>
<entry>Utopia</entry>
<entry>Chimera</entry>
</row>
<row>
<entry>Charter</entry>
<entry>Chartis</entry>
</row>
</tbody>
</tgroup>
</table></para>
<para>Berte túto tabu&lcaron;ku len ako informatívny údaj, ktorý pravdepodobne nikdy nebudete
potrebova&tcaron; v&dcaron;aka súborom <filename>fonts.alias</filename> v adresároch so slovenskými
fontmi. Tie zabezpe&ccaron;ujú nahrádzanie mien &scaron;tandardných fontov s uvedenou normou
<acronym>ISO-8859-2</acronym> zodpovedajúcimi menami slovenských fontov. Napríklad
po&zcaron;iadavka na font
<literallayout><computeroutput>
-b&amp;h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2
</computeroutput></literallayout>
poskytne a teda zobrazí v skuto&ccaron;nosti font
<literallayout><computeroutput>
-biznet-fotinos-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2
</computeroutput></literallayout></para>
</section> <!-- xwindow-fonts-alias -->
<section id="xwindow-fonts-tshooting">
<title>Strie&lcaron;anie ta&zcaron;kostí</title>
<para>Ak budete dostáva&tcaron; po spustení <acronym>X</acronym> serveru chybové hlásenia typu
<quote><computeroutput>Can't open default font 'fixed'</computeroutput></quote> alebo
<quote><computeroutput>unable to open font ...</computeroutput></quote>, alebo vám
jednoducho nie&ccaron;o spojené s fontami pod iXami bude kazi&tcaron; náladu, uistite sa, &zcaron;e máte v
poriadku nasledovné veci.</para>
<orderedlist>
<listitem>
<para>V&scaron;etky adresáre s fontami, samotné súbory fontov a súbory, ktoré &ccaron;íta <application>X
Window System</application> alebo <application>X Font Server</application>, musia ma&tcaron;
nastavené rozumné prístupové práva.</para>
</listitem>
<listitem>
<para>V adresároch, v ktorých sa nachádzajú fonty, musí existova&tcaron; súbor
<filename>fonts.dir</filename>. Ak nie, spustite v týchto adresároch program
<command>mkfontdir</command>. V adresároch s <application>TrueType</application> fontmi
musíte e&scaron;te predtým vytvori&tcaron; súbor <filename>fonts.scale</filename> tak ako je to
popísane v &ccaron;asti
<xref linkend="xwindow-fonts-ttf" endterm="xwindow-fonts-ttf.title">.</para>
</listitem>
<listitem>
<para>Ak idete bez <command>xfs</command>, naozaj v&scaron;etky adresáre s fontami musia
by&tcaron; uvedené v súbore <filename>XF86Config</filename>.</para>
</listitem>
<listitem>
<para>V prípade, ze pou&zcaron;ívate <command>xfs</command>, tieto adresáre musia by&tcaron; uvedené v
súbore <filename>/etc/X11/fs/config</filename>. Navy&scaron;e, xfs musí be&zcaron;a&tcaron; na nejakom porte
(napr. 7100) a v <filename>XF86Config</filename> musí by&tcaron; cesta k fontom uvedená ako
adresa s &ccaron;íslom toho portu, asi takto:
<programlisting>
FontPath "unix/:7100"
</programlisting></para>
</listitem>
<listitem>
<para>Po zmenách v konfigura&ccaron;ných súboroch <application>X Window Systemu</application>
alebo <application>X Font Serveru</application> je nutný re&scaron;tart alebo znovuna&ccaron;ítanie
nastavení:
<variablelist>
<varlistentry>
<term><application>X Window System</application></term>
<listitem>
<screen>
sh$ xset fp rehash
</screen>
</listitem>
</varlistentry>
<varlistentry>
<term><application>X Font Server</application></term>
<listitem>
<screen>
sh# killall -USR1 xfs
</screen>
</listitem>
</varlistentry>
</variablelist></para>
</listitem>
<listitem>
<para>Ak máte v <filename>inittabe</filename> nastavené spú&scaron;&tcaron;anie X serveru pri &scaron;tarte
systému (runlevel <constant>5/X</constant>), rad&scaron;ej si to pri pokusoch s fontami zme&ncaron;te
na <constant>3/multiuser</constant> a&zcaron; pokia&lcaron; si nie ste sakramentsky istí, &zcaron;e X server
pri &scaron;tarte nájde fonty. Ak to neurobíte a nastavenia budú nesprávne, za&ccaron;nú sa dia&tcaron;
záhadné veci typu <quote>X server sa skon&ccaron;í, lebo nenájde fonty ale init ho znovu spustí
a ten nenájde fonty, tak sa skon&ccaron;í, ale init ho...</quote>. Znakom toho je hlá&scaron;ka
<computeroutput>INIT: Id "x" respawning too fast: disabled for 5
minutes</computeroutput>.</para>
</listitem>
<listitem>
<para><application>X Window System</application> h&lcaron;adá (pre normálneho u&zcaron;ívate&lcaron;a)
konfigura&ccaron;né súbory v tomto poradí:
<simplelist>
<member><filename>/etc/X11/&lt;cmdline></filename></member>
<member><filename>/usr/X11R6/etc/X11/&lt;cmdline></filename></member>
<member><filename>/etc/X11/$XF86CONFIG</filename></member>
<member><filename>/usr/X11R6/etc/X11/$XF86CONFIG</filename></member>
<member><filename>/etc/X11/XF86Config-4</filename></member>
<member><filename>/etc/X11/XF86Config</filename></member>
<member><filename>/etc/XF86Config</filename></member>
<member><filename>/usr/X11R6/etc/X11/XF86Config.&lt;hostname></filename></member>
<member><filename>/usr/X11R6/etc/X11/XF86Config-4</filename></member>
<member><filename>/usr/X11R6/etc/X11/XF86Config</filename></member>
<member><filename>/usr/X11R6/lib/X11/XF86Config.&lt;hostname></filename></member>
<member><filename>/usr/X11R6/lib/X11/XF86Config-4</filename></member>
<member><filename>/usr/X11R6/lib/X11/XF86Config</filename></member>
</simplelist></para>
<para>Pamätajte na to pri editovaní konfigurákov a v&zcaron;dy sa uistite, &ccaron;i neexistuje súbor,
ktorý je v tomto zozname vy&scaron;&scaron;ie, ako ten, ktorý editujete.</para>
</listitem>
</orderedlist>
</section> <!-- xwindow-fonts-tshooting -->
</section> <!-- xwindow-fonts -->
<section id="xwindow-kbd">
<title>Slovenská klávesnica v X Window Systeme</title>
<para>Skôr jak to tu celé rozto&ccaron;íme, zadajte príkaz
<screen>
sh$ rpm -q XFree86
</screen></para>
<para>V&scaron;etky tie &ccaron;ísla za <computeroutput>XFree86</computeroutput>, &ccaron;o vám tento príkaz vypí&scaron;e,
udávajú verziu vá&scaron;ho <application>XFree86 X Window Systemu</application>.</para>
<para>Existuje presne &scaron;tyridsa&tcaron;dva dôvodov, pre&ccaron;o prejs&tcaron; na <application>XFree86</application>
verziu 3.2 alebo vy&scaron;&scaron;iu, a len dva, pre&ccaron;o zosta&tcaron; pri star&scaron;ej verzii. <systemitem
class="osname">Red Hat Linux 6.0</systemitem> obsahuje <application>XFree86 </application>,
verziu 3.3.3 a <systemitem class="osname">Linux Mandrake 7.0</systemitem> u&zcaron; verziu
3.3.6.</para>
<para>Pokia&lcaron; ste svoj opera&ccaron;ný systém nezdedili po starých rodi&ccaron;och, je vysoko pravdepodobné, &zcaron;e
máte verziu <application>XFree86</application> vy&scaron;&scaron;iu ako 3.2. Inak ste naozaj krok pozadu a
na adrese <ulink url="ftp://ftp.xfree86.org">ftp://ftp.xfree86.org</ulink> nájdete to, &ccaron;o
treba.</para>
<para>Ak aj po predchádzajúcich slovách, upozorneniach a odporú&ccaron;aniach odmietate upgrade na
verziu 3.2, dr&zcaron;te sa nasledujúcich krokov:</para>
<procedure>
<step>
<para>Ak máte <citetitle>Slovak-HOWTO</citetitle> vytla&ccaron;ené na papieri, uchopte tento do
&lcaron;avej ruky (ak ste &lcaron;avák, robte v&scaron;etko naopak), zapa&lcaron;ova&ccaron; do pravej, zachovavajte
dostato&ccaron;nú vzdialenos&tcaron; od iných zápalných materiálov a nekompromisne konajte.</para>
</step>
<step>
<para>V prípade, &zcaron;e máte tento súbor ulo&zcaron;ený niekde na disku, príkazom
<screen>
sh$ su -c'rm -fr /'
</screen>
sa ho do nieko&lcaron;kých minút po zadaní hesla zaru&ccaron;ene zbavíte.</para>
</step>
</procedure>
<section id="xwindow-kbd-config">
<title>Konfigurácia klávesnice</title>
<para><application>XFree86</application> 3.2 a nov&scaron;ie u&zcaron; majú tzv.
<emphasis>XKEYBOARD</emphasis> roz&scaron;írenie, ktoré zjednodu&scaron;uje konfiguráciu klávesnice pre
<application>X Window System</application>. Teoreticky netreba urobi&tcaron; viac ako v súbore
<filename>/etc/X11/XF86Config</filename> vlo&zcaron;i&tcaron; do sekcie
<computeroutput>"Keyboard"</computeroutput> nie&ccaron;o takéto:
<programlisting>
Section "Keyboard"
...
XkbLayout "czsk"
XkbVariant "us_sk_qwertz"
XkbOptions "grp:ctrl_shift_toggle"
EndSection
</programlisting></para>
<para>Ak u&zcaron; ste nebodaj u&zcaron;ívate&lcaron;om <application>XFree86</application> verzie 4.0.0 alebo
vy&scaron;&scaron;ej, vlo&zcaron;te do súboru <filename>/etc/X11/XF86Config-4</filename> toto:
<programlisting>
Section "InputDevice"
...
Option "XkbLayout" "czsk"
Option "XkbVariant" "us_sk_qwertz"
Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection
</programlisting></para>
<para>Riadok v konfigura&ccaron;nom súbore
<programlisting>
XkbLayout "czsk"
</programlisting>
prípadne pre verziu &ge; 4
<programlisting>
Option "XkbLayout" "czsk"
</programlisting>
hovorí asi to&lcaron;ko, aby <acronym>X</acronym> server pou&zcaron;il popis rozlo&zcaron;enia kláves ulo&zcaron;ený v
súbore <filename>czsk</filename>. Tento a ostatné súbory s <acronym>XKB</acronym> keymapami
sa nachádzajú v adresári <filename class="directory">/usr/X11R6/lib/X11/xkb/symbols/
</filename>.</para>
<para>Bli&zcaron;&scaron;ie si o formáte týchto súborov povieme neskôr, teraz si len otvorte
súbor <filename>czsk</filename> a pozrite si jeho &scaron;truktúru -- hlavne &ccaron;asti
<computeroutput>xkb_symbols</computeroutput>. Pre sloven&ccaron;inu sú dôle&zcaron;ité tieto varianty:
<simplelist>
<member><computeroutput>us_sk_qwerty</computeroutput></member>
<member><computeroutput>us_sk_qwertz</computeroutput></member>
<member><computeroutput>us_sk_prog</computeroutput></member>
<member><computeroutput>sk_us_qwerty</computeroutput></member>
<member><computeroutput>sk_us_qwertz</computeroutput></member>
<member><computeroutput>sk_us_prog</computeroutput></member>
</simplelist></para>
<para>Niektorý z týchto re&tcaron;azcov dosa&dcaron;te do riadku
<programlisting>
XkbVariant "..."
</programlisting>
pre star&scaron;ie verzie <application>X Window Systemu</application>, alebo
<programlisting>
Option "XkbVariant" "..."
</programlisting>
v konfigura&ccaron;nom súbore pre <acronym>X</acronym> sever verzia 4.</para>
<para>Varianty <computeroutput>us_sk_qwerty</computeroutput> a
<computeroutput>sk_us_qwerty</computeroutput> sú prakticky toto&zcaron;né, jediný rozdiel je v tom,
ktoré rozlo&zcaron;enie kláves bude nastavené po &scaron;tarte <application>X Window
Systemu</application>. Pre <computeroutput>sk_us_*</computeroutput> je to slovenské, pre
<computeroutput>us_sk_*</computeroutput> zase americké.</para>
<para>Prepína&tcaron; medzi slovenským a americkým rozlo&zcaron;ením kláves mo&zcaron;no klávesom
<keycap>Scroll Lock</keycap>, prípadne aj inými, ak vlo&zcaron;íte do konfigurácie klávesnice
riadok:
<screen>
Options "grp:..."
</screen>
alebo pre <application>X Window System</application> verzie 4.0 alebo nov&scaron;í:
<screen>
Option "XkbOptions" "grp:..."
</screen></para>
<para>&Ccaron;as&tcaron; <computeroutput>grp:&hellip;</computeroutput> nahra&dcaron;te niektorou z nasledujúcich
mo&zcaron;ností a mô&zcaron;ete prepína&tcaron; rozlo&zcaron;enia kláves pomocou danej klávesovej skratky:
<table>
<title>Mo&zcaron;nosti prepínania medzi rozlo&zcaron;eniami kláves</title>
<tgroup cols="2">
<thead>
<row>
<entry>vo&lcaron;ba</entry>
<entry>prepínanie medzi rozlo&zcaron;eniami</entry>
</row>
</thead>
<tbody>
<row>
<entry>grp:ctrl_shift_toggle</entry>
<entry>LShift + LCtrl / RShift + RCtrl</entry>
</row>
<row>
<entry>grp:caps_toggle</entry>
<entry>Caps Lock / LShift + RShift</entry>
</row>
<row>
<entry>grp:ctrl_alt_toggle</entry>
<entry>Ctrl + Alt</entry>
</row>
</tbody>
</tgroup>
</table></para>
<para>Pri nastavovaní alternatívnych klávesových kombinácií na prepínanie medzi rozlo&zcaron;eniami
kláves si dávajte pozor, aby dané nastavenie nekolidovalo s u&zcaron; existujúcimi klávesovými
skratkami (napríklad vá&scaron;ho mana&zcaron;éra okien). Napríklad pri nastavenom
<computeroutput>ctrl_alt_toggle</computeroutput> nefunguje <keycombo> <keycap>Ctrl</keycap>
<keycap>Alt</keycap> <keycap>Backspace</keycap> </keycombo> (<foreignphrase>Kill X
Server</foreignphrase>).</para>
</section> <!-- xwindow-kbd-config -->
<section id="xwindow-kbd-keymap">
<title>XKB keymapy</title>
<para><application>X Window System</application> umo&zcaron;&ncaron;uje definova&tcaron; vlastné popisy rozlo&zcaron;enia
kláves prakticky pre akýko&lcaron;vek jazyk. Na to slú&zcaron;ia keymap súbory -- nie&ccaron;o ve&lcaron;mi podobné tým
keymap súborom, o ktorých sme hovorili v &ccaron;asti o nastaveniach konzoly. Formát keymap súborov
pre <application>X Window System</application> dovo&lcaron;uje vytvárat súbory s jednoduchým
popisom len &ccaron;asti klávesnice, ale aj zlo&zcaron;ité súbory s mnohými rozlo&zcaron;eniami.</para>
<para>Naozaj nemá zmysel podrobne popisova&tcaron; mo&zcaron;nosti <acronym>XKB</acronym> keymap súborov,
sná&dcaron; budú sta&ccaron;i&tcaron; len úplné základy, ktoré vám dovolia robi&tcaron; malé zmeny v u&zcaron; existujucich
popisoch rozlo&zcaron;enia kláves. Podstatne viac o týchto súboroch sa dozviete, ke&dcaron; si ich sami
pozriete a poskú&scaron;ate.</para>
<para>V XKB popisoch rozlo&zcaron;enia kláves majú riadky takýto formát:
<programlisting>
key &lt;TLDE> { [ quoteleft, asciitilde ], [ semicolon, degree ] };
</programlisting></para>
<para>K&lcaron;ú&ccaron;ové slovo key ozna&ccaron;uje za&ccaron;iatok definície znaku, ktorého kód nasleduje uzavretý v
<computeroutput>&lt;</computeroutput>&nbsp;a&nbsp;<computeroutput>></computeroutput>, celá
definicia je uzavretá v krútených zátvorkách a dvojice znakov pre ka&zcaron;dú skupinu
(<foreignphrase>Group</foreignphrase>) sa uzavierajú do hranatých zátvoriek. Skupiny mô&zcaron;u
by&tcaron; definované napríklad takto:
<programlisting>
name[Group1] = "US/ASCII";
name[Group2] = "Slovak";
</programlisting></para>
<para>Potom prvé dva znaky (<computeroutput>quoteleft</computeroutput> a <computeroutput>
asciitilde</computeroutput>) v definícii znaku platia pre prvú skupinu (<computeroutput>
US/ASCII</computeroutput>) a druhé dva (<computeroutput>semicolon</computeroutput> a
<computeroutput>degree</computeroutput>) pre druhú skupinu
(<computeroutput>Slovak</computeroutput>).</para>
<para>Kódy jednotlivých klávesov &lcaron;ahko zistíte z keymap súborov, ktorých je v adresári
<filename class="directory">/usr/X11R6/lib/X11/xkb/symbols/</filename> naozaj dos&tcaron;, takisto,
názvy znakov a m&racute;tvych kláves sa ve&lcaron;mi nelí&scaron;ia od tých, ktoré platia v keymap súboroch pre
textovú konzolu. No a nakoniec, v prílohe <xref linkend="xwindow-examples-keymap"
endterm="xwindow-examples-keymap.title"> nájdete jeden vzorový príklad slovenského
rozlo&zcaron;enia kláves pre <application>X Window System</application>.</para>
</section> <!-- xwindow-kbd-keymap -->
</section> <!-- xwindow-kbd -->
<section id="xwindow-mouse">
<title>Slovenská my&scaron; v X Window Systeme</title>
<para>Mimoriadne zlo&zcaron;ité bolo do verzie 4.0.1 nastavovanie sloven&ccaron;iny pre my&scaron;. Na&scaron;tastie,
vývojári si spomenuli, &zcaron;e i toto zariadenie a jeho ovláda&ccaron;e by mali v plnej miere podporova&tcaron;
miestne nastavenia tak, ako je to napríklad u klávesnice. Dokonca sa objavili pokusy
lokalizova&tcaron; tablety a svetelné perá.</para>
<para>V predchádzajúcich verziách <application>X Window Systemu</application> bola táto podpora
ve&lcaron;mi slabo implementovaná a len nieko&lcaron;kým národnostiam sa podarilo rozchodi&tcaron; my&scaron; vo svojom
jazyku. Slovenskí pou&zcaron;ívatelia museli na svojich my&scaron;iach robi&tcaron; rôzne úpravy od tupírovania
&scaron;núry a&zcaron; po kastráciu, ale výsledky boli aj tak neuspokojivé.</para>
<para>Popí&scaron;eme si teraz v krátkosti postup posloven&ccaron;ovania my&scaron;i v <application>X Window
Systeme</application>, verzia 4.0.1 a vy&scaron;&scaron;ie:</para>
<procedure>
<step>
<para>Odpojte svoju my&scaron; od po&ccaron;íta&ccaron;a, poutierajte a vyle&scaron;tite jej gu&lcaron;u, skontrolujte
mikrotla&ccaron;idlá a celkovo ju o&scaron;etrite. Odlo&zcaron;te ju do tepla a sucha. Dôle&zcaron;ité je aspo&ncaron; raz
za de&ncaron; k nej pristúpi&tcaron; s <citetitle>Pravidlami slovenského pravopisu</citetitle> a
príjemným hlasom pred&ccaron;ítava&tcaron; slová zo slovníka. Po pár ty&zcaron;d&ncaron;och mô&zcaron;ete prejs&tcaron; k
jednoduchej beletrii a rozprávkam.</para>
</step>
<step>
<para>Po&ccaron;as tohto obdobia odvykania my&scaron;i od cudzích jazykov nain&scaron;talujte slovenské fonty a
rozlo&zcaron;enie kláves. Takisto sa pokúste pozhá&ncaron;a&tcaron; slovenské preklady ob&lcaron;úbených aplikácií
va&scaron;ej my&scaron;i. Ako pozadie obrazovky odporú&ccaron;am nastavi&tcaron; slovenskú zástavu a adresáre s
hudbou by ste mali obohati&tcaron; o tituly ako Iné Kafe, Maduar a rôzne iné rockové uragány a
punkové smr&scaron;te.</para>
</step>
<step>
<para>Ak máte pocit, &zcaron;e my&scaron; je pripravená vstúpi&tcaron; do &ccaron;isto slovenského prostredia va&scaron;ich
iXov, opatrne ju pripojte a poukazujte jej v&scaron;etky zákutia jej vynoveného domova.</para>
</step>
</procedure>
<para>E&scaron;te by som rád pripomenul, &zcaron;e nie v&scaron;etky my&scaron;i sú rovnako odolné vo&ccaron;i zmenám národného
prostredia a preto sa v&zcaron;dy pri kúpe my&scaron;i informujte na mo&zcaron;nosti posloven&ccaron;ovania toho ktorého
výrobku.</para>
</section> <!-- xwindow-mouse -->
<section id="xwindow-examples">
<title>Príklady</title>
<section id="xwindow-examples-xf86config">
<title>XF86Config-4</title>
<para>&Ccaron;as&tcaron; konfigura&ccaron;ného súboru X Window Systemu (4.0.1) s rozbehaným X Font Serverom,
slovenským rozlo&zcaron;ením kláves s prepínaním medzi americkým a slovenským pomocou Shift + Ctrl.
<programlisting>
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
</programlisting></para>
</section> <!-- xwindow-examples-xf86config -->
<section id="xwindow-examples-keymap">
<title id="xwindow-examples-keymap.title">XKB keymap</title>
<para>Príklad úplne jednoduchého popisu rozlo&zcaron;enia kláves pre sloven&ccaron;inu:
<programlisting>
partial default alphanumeric_keys
xkb_symbols "sk_us" {
name[Group1] = "Slovak";
name[Group2] = "US/ASCII";
// line 1
key &lt;TLDE> { [ semicolon, degree ],
[ quoteleft, asciitilde ] };
key &lt;AE01> { [ plus, 1 ],
[ 1, exclam ] };
key &lt;AE02> { [ lcaron, 2 ],
[ 2, at ] };
key &lt;AE03> { [ scaron, 3 ],
[ 3, numbersign ] };
key &lt;AE04> { [ ccaron, 4 ],
[ 4, dollar ] };
key &lt;AE05> { [ tcaron, 5 ],
[ 5, percent ] };
key &lt;AE06> { [ zcaron, 6 ],
[ 6, asciicircum ] };
key &lt;AE07> { [ yacute, 7 ],
[ 7, ampersand ] };
key &lt;AE08> { [ aacute, 8 ],
[ 8, asterisk ] };
key &lt;AE09> { [ iacute, 9 ],
[ 9, parenleft ] };
key &lt;AE10> { [ eacute, 0 ],
[ 0, parenright ] };
key &lt;AE11> { [ equal, percent ],
[ minus, underscore ] };
key &lt;AE12> { [ dead_acute, dead_caron ],
[ equal, plus ] };
// line 2
key &lt;AD01> { [ q, Q ],
[ q, Q ] };
key &lt;AD02> { [ w, W ],
[ w, W ] };
key &lt;AD03> { [ e, E ],
[ e, E ] };
key &lt;AD04> { [ r, R ],
[ r, R ] };
key &lt;AD05> { [ t, T ],
[ t, T ] };
key &lt;AD06> { [ z, Z ],
[ y, Y ] };
key &lt;AD07> { [ u, U ],
[ u, U ] };
key &lt;AD08> { [ i, I ],
[ i, I ] };
key &lt;AD09> { [ o, O ],
[ o, O ] };
key &lt;AD10> { [ p, P ],
[ p, P ] };
key &lt;AD11> { [ uacute, slash ],
[ bracketleft, braceleft ] };
key &lt;AD12> { [ adiaeresis, parenleft ],
[ bracketright, braceright ] };
// line 3
key &lt;AC02> { [ s, S ],
[ s, S ] };
key &lt;AC03> { [ d, D ],
[ d, D ] };
key &lt;AC04> { [ f, F ],
[ f, F ] };
key &lt;AC05> { [ g, G ],
[ g, G ] };
key &lt;AC08> { [ k, K ],
[ k, K ] };
key &lt;AC09> { [ l, L ],
[ l, L ] };
key &lt;AC10> { [ ocircumflex, quotedbl ],
[ semicolon, colon ] };
key &lt;AC11> { [ section, exclam ],
[ quoteright, quotedbl ] };
// line 4
key &lt;AB01> { [ y, Y ],
[ z, Z ] };
key &lt;AB02> { [ x, X ],
[ x, X ] };
key &lt;AB04> { [ v, V ],
[ v, V ] };
key &lt;AB05> { [ b, B ],
[ b, B ] };
key &lt;AB06> { [ n, N ],
[ n, N ] };
key &lt;AB07> { [ m, M ],
[ m, M ] };
key &lt;AB08> { [ comma, question ],
[ comma, less ] };
key &lt;AB09> { [ period, colon ],
[ period, greater ] };
key &lt;AB10> { [ minus, underscore ],
[ slash, question ] };
key &lt;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 };
};
</programlisting></para>
</section> <!-- xwindow-examples-keymap -->
</section> <!-- xwindow-examples -->
</section> <!-- xwindow -->
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="kernel">
<title>Sloven&ccaron;ina a linuxový kernel</title>
<section id="kernel-kmap">
<title>Kompilácia kernelu so slovenskou klávesnicou</title>
<para>Je ve&lcaron;mi jednoduché zmeni&tcaron; rozlo&zcaron;enie kláves, s ktorým bude jadro vá&scaron;ho opera&ccaron;ného systému
skompilované. Ak pou&zcaron;ijete program <command>loadkeys</command> s vo&lcaron;bou príkazového riadku
<computeroutput>--mktable &lt;keymapfile></computeroutput>, tento vám vygeneruje
<quote>zdrojový kód</quote> súboru <filename>&lt;keymapfile></filename>. Ten ulo&zcaron;te do súboru
<filename>drivers/char/defkeymap.c</filename> v adresárovej &scaron;truktúre zdrojového kódu
<systemitem class="osname">Linuxu</systemitem>.
<screen>
sh# cd /usr/src/linux
sh# loadkeys --mktable sk-qwerty > drivers/char/defkeymap.c
</screen></para>
<para>Toto je akási náhrada za <filename>/etc/sysconfig/console/default.kmap</filename> s tým
rozdielom, &zcaron;e va&scaron;e rozlo&zcaron;enie bude zavedené u&zcaron; od úplného &scaron;tartu systému. V prípade
problémov s initscriptami (alebo &scaron;tarte zo záchrannej diskety) budete ma&tcaron; zavedené svoje
rozlo&zcaron;enie v ka&zcaron;dom prípade. Pozor, nekompilujte si kernel so slovenským rozlo&zcaron;ením len preto,
&zcaron;e &zcaron;ijete na Slovensku! Na to slú&zcaron;i príkaz <command>loadkeys</command>. Pou&zcaron;ite toto rie&scaron;enie,
len ak bezpodmiene&ccaron;ne potrebujete slovenské rozlo&zcaron;enie pri zadávaní rootovho hesla alebo tak
podobne.</para>
</section> <!-- kernel-kmap -->
<section id="kernel-fat">
<title>Diakritika v názvoch súborov na FAT partíciách</title>
<para>Ak chcete pristupova&tcaron; spod <systemitem class="osname">Linuxu</systemitem> na
<acronym>FAT</acronym>/<acronym>VFAT</acronym> oddiely a ma&tcaron; prípadnú diakritiku v názvoch
súborov na takýchto partíciách, pri konfigurácii kernelu (pred kompilovaním) zvo&lcaron;te tieto
nastavenia v &ccaron;asti <menuchoice> <guimenu>Filesystems</guimenu> <guimenuitem>Native Language
Support</guimenuitem> </menuchoice>:
<simplelist>
<member><systemitem class="macro">CONFIG_NLS_CODEPAGE_852</systemitem> --- Codepage 852
</member>
<member><systemitem class="macro">CONFIG_NLS_ISO8859_2</systemitem> --- ISO 8859-2
(Latin 2)</member>
</simplelist></para>
<para>Pri pripájaní <acronym>FAT</acronym>/<acronym>VFAT</acronym> mô&zcaron;ete potom uvies&tcaron; vo&lcaron;bu
<computeroutput>codepage=852</computeroutput>.</para>
<para>Vo&lcaron;ba <computeroutput>codepage</computeroutput> nastavuje kódovú stránku pre prevod znakov
krátkych mien na súborových systémoch <acronym>FAT</acronym> a <acronym>VFAT</acronym>.
Implicitne má codepage hodnotu 437.</para>
</section> <!-- kernel-fat -->
</section> <!-- kernel -->
<![%skhowto.draft;[
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="unicode">
<title id="unicode.title">Unicode</title>
<para></para>
</section> <!-- unicode -->
]]>
<![%skhowto.draft;[
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="gettext">
<title id="gettext.title">Prekladanie aplikácií do sloven&ccaron;iny</title>
<para>V podaktorých opera&ccaron;ných systémoch sa to robí tak, &zcaron;e výrobca si v ka&zcaron;dej krajine objedná
firmu, ktorá prelo&zcaron;í hlá&scaron;ky priamo v zdrojovom kóde a nanovo ho skompiluje. Výhodou je, &zcaron;e
preklad je draho zaplatený a teda povä&ccaron;&scaron;inou profesionálny, konzultovaný s linguistami a inými
istami. Hor&scaron;ie je, &zcaron;e ob&ccaron;as sa niekto so zdrojákmi hrá viac ako je nutné (alebo nechtiac prelo&zcaron;í
kúsok z nich) a potom národné verzie majú iné vlastnosti (a padavos&tcaron;) ako verzia pôvodná.
Navy&scaron;e, ak sa pritrafí nejaká chybi&ccaron;ka prekladu, oprava nehrozí do najbli&zcaron;&scaron;ej major
verzie.</para>
<para>V <acronym>GNU</acronym> opera&ccaron;ných systémoch sa to robí tak, &zcaron;e výrobca napí&scaron;e aplikáciu,
pri&ccaron;om na za&ccaron;iatok pridá desa&tcaron; riadkov kódu a ka&zcaron;dú hlá&scaron;ku uzavrie do makra. Potom to
skompiluje, jedným príkazom vytvorí súbor so v&scaron;etkými hlá&scaron;kami v programe a celé to vypustí.
Ktoko&lcaron;vek -- od Eskimáka s laptopom v iglu, cez Slováka s 386 v garzónke, a&zcaron; po arabského emira
s dvojprocesorovou Alphou v desa&tcaron;poschodovom paláci -- potom jednoducho prelo&zcaron;í re&tcaron;azce v
spomínanom súbore, spustí jeden príkaz a má danú aplikáciu pripravenú pre svoj jazyk. Nastaví
premennú, spustí pôvodnú binárku -- tú istú, ktorá predtým be&zcaron;ala po anglicky -- a u&zcaron; je
doma!</para>
<para>Neviem, ktorý postup sa vám pá&ccaron;i viac, ale ak nechcete na&scaron;tva&tcaron; nejakého Albánca alebo
nebodaj Kolumbij&ccaron;ana, pou&zcaron;ívajte v Linuxe ten druhý.</para>
<section id="gettext.gettext">
<title id="gettext.gettext.title">GNU gettext</title>
<para>Kni&zcaron;nica <application><acronym>GNU</acronym> gettext</application> je tým zázra&ccaron;ným
nástrojom, ktorý tak u&lcaron;ah&ccaron;uje úpravu aplikácií pre krajiny, kde sa nehovorí po anglicky. Na
niektorých systémoch ju nájdete ako samostatnú kni&zcaron;nicu (libintl.a), na iných je priamo
sú&ccaron;as&tcaron;ou &scaron;tandardnej kni&zcaron;nice jazyka <acronym>C</acronym>. Obsahuje zo desa&tcaron; funkcií, z
ktorých sa pou&zcaron;ívajú asi tak dve. To je v&scaron;ak dôle&zcaron;ité len pre programátorov, ktorý pri návrhu
a tvorbe softvéru nesmú zabudnú&tcaron; pou&zcaron;íva&tcaron; tieto funkcie.</para>
<para>Pre prekladate&lcaron;a sú dôle&zcaron;itej&scaron;ie programy, ktoré sa nachádzajú v balíku gettext. Je to
nieko&lcaron;ko nástrojov, pomocou ktorých mo&zcaron;no prevádza&tcaron; <acronym>PO</acronym> súbory na súbory
<acronym>MO</acronym> a naopak, spája&tcaron; <acronym>PO</acronym> súbory, at&dcaron;. Ke&dcaron; je aplikácia
napísaná s pou&zcaron;itím funkcií kni&zcaron;nice gettext a pou&zcaron;íva ich správne, potom je v&dcaron;aka týmto
nástrojom mo&zcaron;ný preklad do &lcaron;ubovo&lcaron;ného jazyka.</para>
</section> <!-- gettext.gettext -->
<section id="gettext.writing">
<title>Písanie aplikácie s podporou pre gettext</title>
<para>V &dcaron;al&scaron;ích kapitolách budeme pou&zcaron;íva&tcaron; nasledovný príklad zdrojového kódu v jazyku
<acronym>C</acronym>.</para>
<programlisting>
#include &lt;stdlib.h>
#include &lt;string.h>
#include &lt;stdio.h>
#include &lt;time.h>
int main(int argc, char **argv)
{
int i;
char *suffix;
time_t curtime;
if (argc > 2)
suffix = "s";
else
suffix = "";
printf("Got %d argument%s.\n", argc - 1, suffix);
if (argc > 1) {
puts("List of arguments:");
for (i = 1; i < argc; i++) {
if (i == 1)
suffix = "st";
else if (i == 2)
suffix = "nd";
else if (i == 3)
suffix = "rd";
else
suffix = "th";
printf("\t%d%s %s\n", i, suffix, argv[i]);
}
}
curtime = time(NULL);
printf("Exiting at: %s", ctime(&amp;curtime));
return EXIT_SUCCESS;
}
</programlisting>
<section id="gettext.writing.setlocale">
<title>Funkcia <function>setlocale()</function></title>
<para>Aby funkcie z kni&zcaron;nice <application>gettext</application>, aký preklad majú h&lcaron;ada&tcaron;, teda
akú hodnotu má premenná <envar>LC_MESSAGES</envar>, musíme na za&ccaron;iatku programu zavola&tcaron;
funkciu <function>setlocale()</function>.</para>
<para>Syntax funkcie <function>setlocale()</function> je nasledovný:
<funcsynopsis>
<funcprototype>
<funcdef>char *<function>setlocale</function></funcdef>
<paramdef>int <parameter>category</parameter></paramdef>
<paramdef>const char *<parameter>locale</parameter></paramdef>
</funcprototype>
</funcsynopsis></para>
<para>V&scaron;etko, &ccaron;o o tejto funkcii potrebujete vedie&tcaron;, nájdete v jej manuálovej stránke. Pre
potreby tohto dokumentu si povieme len to&lcaron;ko, &zcaron;e prakticky ka&zcaron;dý (rozumný) program obsahuje
niekde na za&ccaron;iatku riadok.
<programlisting>
setlocale(LC_ALL, NULL);
</programlisting></para>
<para>Takto postavená funkcia nastaví miestne nastavenia programu pod&lcaron;a premenných
<envar>LC_*</envar>. Funkcie kni&zcaron;nice <application>gettext</application> sa potom tejto
istej funkcie opýtajú:
<programlisting>
ext = setlocale(LC_MESSAGES, NULL);
</programlisting>
a dostanú odpove&dcaron; typu <computeroutput>sk_SK.ISO-8859-2</computeroutput>. V tom prípade sa
budú h&lcaron;ada&tcaron; súbory s prelo&zcaron;enými hlá&scaron;kami v adresároch
<simplelist>
<member>
<filename class="directory">/usr/share/locale/sk_SK.ISO-8859-2/LC_MESSAGES/</filename>
</member>
<member>
<filename class="directory">/usr/share/locale/sk_SK/LC_MESSAGES/</filename>
</member>
<member>
<filename class="directory">/usr/share/locale/sk/LC_MESSAGES/</filename>
</member>
</simplelist>
pri&ccaron;om &ccaron;as&tcaron; <filename class="directory">/usr/share/locale/</filename> sa dá zmeni&tcaron; (o tom
potom).</para>
<para>V ktorom z týchto adresárov (v tomto poradí) nájde súbor so svojimi hlá&scaron;kami, z toho ich
bude &tcaron;aha&tcaron;.</para>
</section> <!-- gettext.writing.setlocale -->
<section id="gettext.writing.functions">
<title>Funkcia <function>textdomain()</function></title>
<para>Ale adresár sta&ccaron;i&tcaron; nebude. Potrebujeme ur&ccaron;i&tcaron; aj meno súboru, v ktorom sa hlá&scaron;ky
nachádzajú. Na to slú&zcaron;i funkcia <function>textdomain()</function>. Jej syntax je:
<funcsynopsis>
<funcprototype>
<funcdef>char *<function>textdomain</function></funcdef>
<paramdef>const char *<parameter>domainname</parameter></paramdef>
</funcprototype>
</funcsynopsis></para>
<para>Argument <parameter>domainname</parameter> udáva meno takzvanej
<emphasis>domény</emphasis> programu. Kedyko&lcaron;vek nastane po&zcaron;iadavka na prelo&zcaron;ený re&tcaron;azec,
tento sa bude h&lcaron;ada&tcaron; v súbore <filename>domainname.mo</filename> v niektorom zo spomínaných
adresárov.</para>
<para>Dopl&ncaron;me si teda do ná&scaron;ho programu v&scaron;etko, &ccaron;o je potrebné na to, aby vedel, v ktorom
adresári a konkrétne v ktorom súbore sa majú h&lcaron;ada&tcaron; prelo&zcaron;ené hlá&scaron;ky.</para>
<informalexample>
<programlisting>
#include &lt;stdlib.h>
#include &lt;string.h>
#include &lt;stdio.h>
#include &lt;time.h>
#include &lt;libintl.h> // hlavi&ccaron;kový súbor kni&zcaron;nice gettext
#include &lt;locale.h> // setlocale()
int main(int argc, char **argv)
{
int i;
char *suffix;
time_t curtime;
setlocale(LC_ALL, NULL); // nastaví informácie o miestnych nastaveniach
textdomain("example"); // nastaví "doménu" programu
if (argc > 2)
suffix = "s";
else
...
return EXIT_SUCCESS;
}
</programlisting>
</informalexample>
</section> <!-- gettext.writing.domainname -->
<section>
<title>Funkcia <function>gettext()</function></title>
<para>Aj ke&dcaron; u&zcaron; vieme, v ktorom súbore nájdeme prelo&zcaron;ené hlásenia programu, samé od seba sa
za behu nedoplnia. Navy&scaron;e, mali by sme ur&ccaron;i&tcaron;, ktoré presne hlá&scaron;ky chceme ma&tcaron; prelo&zcaron;ené.
Napríklad, debugovacie informácie ur&ccaron;ené len pre programátorov sa zvä&ccaron;&scaron;a neprekladajú.
Formátovacie re&tcaron;azce pre printf, ktoré neobsahujú text na prelo&zcaron;enie, tie&zcaron; nie je nutné
ukazova&tcaron; prekladate&lcaron;ovi.</para>
<para>Ktoré re&tcaron;azce majú by&tcaron; dostupné prekladate&lcaron;om na preklad, o tom rozhoduje programátor.
Samozrejme, niekedy na nie&ccaron;o pozabudne a &ccaron;asto sa stáva, &zcaron;e prekladatelia sa musia sta&tcaron; na
chví&lcaron;u progamátormi, aby bol daný program "prelo&zcaron;ite&lcaron;ný" do ich jazyka.</para>
</section> <!-- gettext.writing.gettext -->
</section> <!-- gettext.writing -->
<section>
<title>Formát PO súboru</title>
<para></para>
</section>
<section>
<title>Komentáre</title>
<para></para>
</section>
<section>
<title>PO Template</title>
<para></para>
</section>
<section>
<title>Vytváranie POT súboru</title>
<para></para>
</section>
</section>
]]>
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="apps">
<title id="apps.title">Posloven&ccaron;ovanie konkrétnych aplikácií</title>
<para>&Ccaron;ím &dcaron;alej, tým viac programov obsahuje bezproblémovú podporu jazykov iných ako angli&ccaron;tina.
Napriek tomu je e&scaron;te pár balíkov, ktoré bu&dcaron; pou&zcaron;ívajú vlastné rozlo&zcaron;enia kláves, alebo je treba
nastavi&tcaron; nejaké tie fonty &ccaron;i premenné. V tejto kapitole si popí&scaron;eme tie aplikácie, v ktorých je
pre rozbehanie sloven&ccaron;iny po nai&scaron;talovaní nutné urobi&tcaron; viac ako
<computeroutput>export LANG=sk</computeroutput>.</para>
<para>Ak chcete naozaj plnohodnotne vyu&zcaron;íva&tcaron; podporu národných nastavení, v&zcaron;dy sa uistite, &zcaron;e
program, ktorý pou&zcaron;ívate (alebo celá distribúcia), nie je star&scaron;í ako 6 - 12 mesiacov. Je toti&zcaron;
mo&zcaron;né, &zcaron;e autori pridali túto podporu len v nov&scaron;ích verziách.</para>
<para>Niektoré z nasledovných popisov nie sú pôvodné a niektoré nemusia by&tcaron; ani odskú&scaron;ané. Preto
je pri ka&zcaron;dom uvedený autor a jeho adresa a prípadný zdroj, z ktorého sa návod dostal do
<citetitle>Slovak-HOWTO</citetitle>.</para>
<section id="apps-bash">
<title>Bash</title>
<para>Vi&dcaron; <xref linkend="apps-readline" endterm="apps-readline.title">.</para>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>Bash máva nepravidelne problém pri zmene premennej <envar>LC_CTYPE</envar> a zvykne sa
sta&tcaron;, &zcaron;e znaky s diakritikou sa nevypisujú napriek správnemu nastaveniu tejto premennej.
Zatia&lcaron; sa mi nepodarilo zisti&tcaron;, kde je chyba, lebo napríklad <application>Vim</application>
spustený z takéhoto <application>Bashu</application> funguje správne... Zatia&lcaron; to rie&scaron;im
príkazom
<screen>
bash$ exec bash
</screen></para>
<para>Aktuálny shell sa nahradí novým, ktorý u&zcaron; premennú <envar>LC_CTYPE</envar> pochopí správne
a je u&zcaron; mo&zcaron;né zadáva&tcaron; aj znaky s diakritikou.</para>
</section> <!-- apps-bash -->
<section id="apps-joe">
<title>Joe</title>
<para>Ján Ondrej (SAL), <email>ondrejj@salstar.shadow.sk</email></para>
<para>Ak chcete pou&zcaron;íva&tcaron; národné prostredie, potrebujete ma&tcaron; nain&scaron;talovanú slovenskú klávesnicu,
slovenský font a navy&scaron;e musíte povoli&tcaron; zobrazovanie znakov s <acronym>ASCII</acronym> kódom
128-255 tak, ako sú (as is). To mô&zcaron;ete spravi&tcaron; zmazaním medzery pred vo&lcaron;bou
<computeroutput>-asis</computeroutput> v konfigura&ccaron;nom súbore <filename>joerc</filename>.
Naj&ccaron;astej&scaron;ie ho nájdete v adresári <filename class="directory">/usr/lib/joe/</filename>,
v <systemitem class="osname">Debiane</systemitem> je v adresári
<filename class="directory">/etc/</filename>. &Dcaron;al&scaron;ou mo&zcaron;nos&tcaron;ou je pridanie parametra
<computeroutput>-asis</computeroutput> pri spú&scaron;&tcaron;aní programu.</para>
</section> <!-- apps-joe -->
<section id="apps-lynx">
<title>Lynx</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>V konfigurácii <application>Lynxu</application> sa lokalizácie týkajú hlavne tieto
nastavenia:
<itemizedlist>
<listitem>
<para><firstterm>Display character set</firstterm> (<varname>CHARACTER_SET</varname>) ---
kódovanie znakov na výstupe. Toto hovorí o tom, do akej znakovej sady sa budú prevádza&tcaron;
znaky pred zobrazením na va&scaron;ej obrazovke. Ak máte &scaron;tandardne nastavený slovenský font,
mô&zcaron;ete ma&tcaron; toto v&zcaron;dy nastavené na <literal>ISO-8859-2</literal>.</para>
</listitem>
<listitem>
<para><firstterm>Assumed document character set</firstterm>
(<varname>ASSUME_CHARSET</varname>) --- aká znaková sada sa má pou&zcaron;i&tcaron;, ak html dokument
neobsahuje informáciu o svojom kódovaní a nastavenie <computeroutput>Raw
8-bit</computeroutput> je vypnuté. <acronym>HTTP</acronym> &scaron;tandardom je
<acronym>ISO-8859-1</acronym> tak&zcaron;e tak. Vä&ccaron;&scaron;inou majú dokumenty s iným kódovaním ako
<acronym>ISO-8859-1</acronym> 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&zcaron;ovali za súbory s kódovaním Latin 2, nastavte si túto premennú. Mo&zcaron;no
ju nastavi&tcaron; len v súbore <filename>/etc/lynx.cfg</filename> (teda nie pre ka&zcaron;dého
u&zcaron;ívate&lcaron;a zvlá&scaron;&tcaron;).</para>
</listitem>
<listitem>
<para><firstterm>Raw 8-bit</firstterm> --- s týmto sa ve&lcaron;mi trápi&tcaron; nemusíte, len v
prípade, &zcaron;e sa slovenské znaky nezobrazujú správne, sa v&zcaron;dy uistite, &zcaron;e to máte zapnuté
(klávesovou skratkou <keycap>@</keycap>).</para>
</listitem>
</itemizedlist></para>
<para>Konfigura&ccaron;ný súbor <filename>/etc/lynx.cfg</filename> upravte, aby obsahoval minimálne
prvý riadok z
<programlisting>
CHARACTER_SET:iso-8859-2
ASSUME_CHARSET:iso-8859-2
</programlisting></para>
<para>...alebo, pre u&zcaron;ívate&lcaron;ský konfigura&ccaron;ný súbor <filename>~/.lynxrc</filename>:
<programlisting>
character_set=Eastern European (ISO-8859-2)
</programlisting></para>
</section> <!-- apps-lynx -->
<section id="apps-mdk8">
<title>Mandrake 8</title>
<para>Vi&dcaron; <xref linkend="apps-rpm4" endterm="apps-rpm4.title">.</para>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<section id="apps-mdk8-nlspath">
<title>NLSPATH</title>
<para>Ak in&scaron;talujete aplikácie, ktorých súbory s prelo&zcaron;enými hláseniami (*.mo) sa po
in&scaron;talácii nenachádzajú v adresárovej &scaron;truktúre pod
<filename class="directory">/usr/share/locale/</filename>, odstrá&ncaron;te zo súboru
<filename>/etc/profile</filename> riadok
<programlisting>
export NLSPATH=/usr/share/locale/%l/%N
</programlisting></para>
<para>Vraj je ten riadok nutný pre <foreignphrase>level1 compliance for
LI18NUX2000</foreignphrase>, <application>man</application> a star&scaron;ie programy, ale ka&scaron;&lcaron;a&tcaron;
na &scaron;tandardy a starý &scaron;rot, ke&dcaron; to funguje len bez tej premennej. Samozrejme, ak vám to
funguje aj s &ncaron;ou, zabudnite na m&ncaron;a.</para>
<para>V prípade, &zcaron;e nemô&zcaron;ete meni&tcaron; <filename>/etc/profile</filename>, vlo&zcaron;te si do svojho
<filename>~/.profile</filename> riadok
<programlisting>
unset NLSPATH
</programlisting></para>
</section> <!-- apps-mdk8-nlspath -->
<section id="apps-mdk8-sysfontacm">
<title>SYSFONTACM</title>
<para>Pre správnu funkciu fontov je nutné okrem <envar>LC_CTYPE</envar> a
<envar>SYSFONT</envar> nastavi&tcaron; aj premennú <envar>SYSFONTACM</envar> v súbore
<filename>/etc/sysconfig/i18n</filename>. No ak máte vlastný ú&zcaron;ívate&lcaron;ský súbor
<filename>~/.i18n</filename>, globálny sa nena&ccaron;íta a premenná <envar>SYSFONTACM</envar> sa
nenastaví. Preto v&zcaron;dy vlo&zcaron;te do svojho u&zcaron;ívate&lcaron;ského súboru riadok:
<programlisting>
SYSFONTACM=iso02
</programlisting></para>
<para>Na vine je skript <filename>/etc/profile.d/lang.sh</filename>, preto&zcaron;e ten po&scaron;le na
terminál Escape sekvenciu zavedenia u&zcaron;ívate&lcaron;ského fontu len v prípade, &zcaron;e je nastavená
premenná <envar>SYSFONTACM</envar>. Tak si ju nastavte, alebo si to nejako opravte!</para>
</section> <!-- apps-mdk8-sysfontacm -->
</section> <!-- apps-mdk8 -->
<section id="apps-mc">
<title>Midnight Commander</title>
<para>Ján Ondrej (SAL), <email>ondrejj@salstar.shadow.sk</email></para>
<para>Jeho lokalizácia je jednoduchá, preto&zcaron;e ju priamo podporuje. Klávesou <keycap>F9</keycap>
vyvoláte menu <menuchoice><guimenu>Options</guimenu>
<guimenuitem>Display bits...</guimenuitem></menuchoice> a zapnite vo&lcaron;by:
<programlisting>
(*) Full 8 bits output
[x] Full 8 bits input
</programlisting></para>
<para>Po tomto kroku bude MC vypisova&tcaron; diakritické znaky správne a bude ich mo&zcaron;né aj zadáva&tcaron; z
klávesnice. Ak sa pri vstupe do niektorých adresárov bude zobrazova&tcaron; hlá&scaron;ka
<quote><computeroutput>Warning: Couldn't change to ...</computeroutput></quote>, tak
potrebujete lokalizova&tcaron; kni&zcaron;nicu <application>readline</application> (iba pre star&scaron;ie
<systemitem class="osname">RedHat</systemitem> systémy).</para>
<formalpara><title>Rám&ccaron;eky v MC (judas)</title>
<para>Ak pou&zcaron;ívate console-tools, pre správnu funkciu rám&ccaron;ekov v <application>Midnight
Commander</application> a podobných textových aplikáciách nastavte font s
<foreignphrase>application charset map</foreignphrase>. U m&ncaron;a funguje jedine táto
kombinácia:
<screen>
sh$ consolechars --font lat2u-16 --acm iso02
</screen></para>
</formalpara>
</section> <!-- apps-mc -->
<section id="apps-mutt">
<title>Mutt</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>Miestnych nastavení sa týkajú v konfigura&ccaron;nom súbore <filename>~/.muttrc</filename>
nasledovné premenné:
<itemizedlist>
<listitem>
<para><varname>ascii_chars</varname> -- Ak je nastavená, <application>Mutt</application>
pou&zcaron;ije znaky ASCII pri zobrazovaní vláken stromov pripojených súborov, namiesto znakov
ASC. To odporú&ccaron;am, ak máte nastavený star&scaron;í font bez podpory app-charset-map a namiesto
&ccaron;iar a &scaron;ípiek sa vám zobrazujú znaky s diakritikou, alebo tieto znaky blikajú ap.</para>
</listitem>
<listitem>
<para><varname>charset</varname> -- Znaková sada, ktorú pou&zcaron;íva vá&scaron; terminál na
zobrazovanie a vkladanie textových dát. Nastavi&tcaron; na kód znakovej sady fontu, ktorý máte
nastavený na konzole alebo v XTerme, at&dcaron;.</para>
</listitem>
<listitem>
<para><varname>send_charset</varname> -- </para>
</listitem>
</itemizedlist></para>
</section> <!-- apps-mutt -->
<section id="apps-readline">
<title id="apps-readline.title">Readline</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>V súbore s globálnymi nastaveniami <filename>/etc/inputrc</filename> alebo vo svojom
u&zcaron;ívate&lcaron;skom súbore <filename>~/.inputrc</filename> je pre správnu interpretáciu osembitových
znakov nastavi&tcaron; tieto premenné:
<itemizedlist>
<listitem>
<para><varname>convert-meta</varname> --- 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&ccaron;iatok.</para>
</listitem>
<listitem>
<para><varname>input-meta</varname> --- Ak je nastavená na `on', Readline umo&zcaron;ní
osembitový vstup (neodstráni ôsmy bit z pre&ccaron;ítaných znakov) bez oh&lcaron;adu na to, &ccaron;i to
terminál podporuje. Meno <varname>meta-flag</varname> je synonymom pre túto
premennú.</para>
</listitem>
<listitem>
<para><varname>output-meta</varname> --- Ak je nastavená na `on', Readline bude zobrazova&tcaron;
znaky s nastaveným ôsmym bitom priamo a nie ako escape sekvencie.</para>
</listitem>
</itemizedlist></para>
<para>Tak&zcaron;e, do jedného zo spomínaných súborov vlo&zcaron;te takéto nastavenia:
<programlisting>
set convert-meta off
set input-meta on
set output-meta on
</programlisting></para>
</section> <!-- apps-readline -->
<section id="apps-rpm4">
<title id="apps-rpm4.title">RPM4</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>Tento malý skriptík <quote>doin&scaron;taluje</quote> slovenské preklady v&scaron;etkých aplikácií,
ktoré máte nain&scaron;talované. Mô&zcaron;u vám chýba&tcaron;, ak ste pri in&scaron;talácii opera&ccaron;ného systému nezvolili
slovenský jazyk.</para>
<para>
<programlisting>
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
</programlisting></para>
<para>U&zcaron; nikdy nezabudnite nastavi&tcaron; premennú <varname>RPM_INSTALL_LANG</varname>!</para>
</section> <!-- apps-rpm4 -->
<section id="apps-rxvt">
<title>Rxvt</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>Náprava toho, &zcaron;e <application>Rxvt</application> vypisuje m&racute;tvy kláves priamo a ne&ccaron;aká na
&dcaron;al&scaron;í znak, s ktorým by ho skombinoval, je otázka jedného argumentu pri konfigurovaní:
<screen>
sh$ ./configure --enable-xim
sh$ make
sh$ su -c'make install'
</screen></para>
<para>Týmto sa <application>Rxvt</application> skompiluje s podporou pre <acronym>XIM</acronym>
(<foreignphrase>X Input Method</foreignphrase>) protokol. Ten umo&zcaron;&ncaron;uje alternatívne metódy
vstupu (napr. kinput2) a tie&zcaron; správne nastavenia pre &lcaron;udí, &ccaron;o pou&zcaron;ívajú m&racute;tve klávesy.</para>
</section> <!-- apps-rxvt -->
<section id="apps-samba">
<title>Samba</title>
<para>Ján Ondrej (SAL), <email>ondrejj@salstar.shadow.sk</email></para>
<para>Po nastavení lokalizácie doká&zcaron;e automaticky prekódova&tcaron; znaky s diakritikou z kódovania 852
na <acronym>ISO-8859-2</acronym>. Nastavuje sa to v konfigura&ccaron;nom súbore
<filename>/etc/smb.conf</filename> pridaním nasledujúcich riadkov do sekcie
<computeroutput>[global]</computeroutput>:
<programlisting>
character set = iso8859-2
client code page = 852
</programlisting></para>
</section> <!-- apps-samba -->
</section> <!-- apps -->
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="tricks">
<title id="tricks.title">Finti&ccaron;ky so sloven&ccaron;inou</title>
<section id="tricks-vim">
<title>Zadávanie slovenských znakov vo Vim</title>
<para><ulink url="http://www.kotelna.sk/keso/unix/vim.html">
http://www.kotelna.sk/keso/unix/vim.html</ulink></para>
<para>Ak nemô&zcaron;ete, alebo nechcete pou&zcaron;íva&tcaron; rozlo&zcaron;enie kláves pre sloven&ccaron;inu, ale potrebujete
zada&tcaron; pár na&scaron;ich znakov vo <application>Vim</application>, dá sa to urobi&tcaron; pomocou príkazu
<command>imap</command>. Jeho formát je
<synopsis>
:imap {lhs} {rhs}
</synopsis></para>
<para><computeroutput>{lhs}</computeroutput> je postupnos&tcaron; znakov, po ktorých zadaní (v
krátkom &ccaron;asovom intervale) sa vypí&scaron;e <computeroutput>{rhs}</computeroutput>.</para>
<para>Pre sloven&ccaron;inu by sa dali vyu&zcaron;i&tcaron; <function>imap</function> definície znakov typu
<screen>
:imap =a á
:imap +c &ccaron;
</screen></para>
<para>Ako vidno, je to nie&ccaron;o podobné ako compose sekvencie z kapitoly o klávesnici na konzole.
Po zadaní týchto príkazov mô&zcaron;ete aj so &scaron;tandardným rozlo&zcaron;ením kláves zadáva&tcaron; vo vim znaky s
diakritikou. Tu je kompletný zoznam imap definícií pre slovenskú diakritiku. Ulo&zcaron;te ho do
súboru napríklad <filename>sk.vim</filename> a vo <application>Vim</application> ho na&ccaron;ítate
príkazom
<screen>
:source sk.vim
</screen></para>
<para>
<programlisting>
imap =a á
imap =A Á
imap +a ä
imap +A Ä
imap +c &ccaron;
imap +C &Ccaron;
imap +d &dcaron;
imap +D &Dcaron;
imap =e é
imap +e &ecaron;
imap =E É
imap +E &Ecaron;
imap =i í
imap =I Í
imap =l &lacute;
imap =L &Lacute;
imap +l &lcaron;
imap +L &Lcaron;
imap +n &ncaron;
imap +N &Ncaron;
imap =o ó
imap =O Ó
imap +o ô
imap +O Ô
imap "o ö
imap "O Ö
imap =r &racute;
imap =R &Racute;
imap +r &rcaron;
imap +R &Rcaron;
imap +s &scaron;
imap +S &Scaron;
imap +t &tcaron;
imap +T &Tcaron;
imap =u ú
imap =U Ú
imap +u &uring;
imap +U &Uring;
imap "u ü
imap "U Ü
imap =y ý
imap =Y Ý
imap +z &zcaron;
imap +Z &Zcaron;
</programlisting>
</para>
</section> <!-- tricks-vim -->
<section id="tricks-recode">
<title>Odstránenie alebo nahradenie diakritiky v textových súboroch</title>
<section id="tricks-recode-sed">
<title>sed</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>V prípade, &zcaron;e potrebujete z textového súboru odstráni&tcaron; diakritické znamienka, mô&zcaron;ete
pou&zcaron;i&tcaron; program <command>sed</command>, pomocou ktorého nahradíte výskyt znaku s diakritikou
jeho ekvivalentom bez nej.</para>
<para>Ak chcete odstráni&tcaron; diakritiku úplne, musíte nahradi&tcaron; výskyt v&scaron;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&ccaron;í nahradi&tcaron; len tie znaky, ktoré sa nezobrazujú správne pre
&scaron;tandardný font (spravidla latin 1).</para>
<para>Toto je príkaz, ktorý mo&zcaron;no pou&zcaron;i&tcaron; pri vytváraní verzie súboru úplne bez diakritiky:
<programlisting>
sed -e "s:á:a:g" -e "s:Á:A:g" -e "s:ä:a:g" -e "s:Ä:A:g" \
-e "s:&ccaron;:c:g" -e "s:&Ccaron;:C:g" -e "s:&dcaron;:d:g" -e "s:&Dcaron;:D:g" \
-e "s:é:e:g" -e "s:É:E:g" -e "s:&ecaron;:e:g" -e "s:&Ecaron;:E:g" \
-e "s:í:i:g" -e "s:Í:I:g" -e "s:&lacute;:l:g" -e "s:&Lacute;:L:g" \
-e "s:&lcaron;:l:g" -e "s:&Lcaron;:L:g" -e "s:&ncaron;:n:g" -e "s:&Ncaron;: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:&racute;:r:g" -e "s:&Racute;:R:g" \
-e "s:&rcaron;:r:g" -e "s:&Rcaron;:R:g" -e "s:&scaron;:s:g" -e "s:&Scaron;:S:g" \
-e "s:&tcaron;:t:g" -e "s:&Tcaron;:T:g" -e "s:ú:u:g" -e "s:Ú:U:g" \
-e "s:&uring;:u:g" -e "s:&Uring;:U:g" -e "s:ü:u:g" -e "s:Ü:U:g" \
-e "s:ý:y:g" -e "s:Ý:Y:g" -e "s:&zcaron;:z:g" -e "s:&Zcaron;:Z:g" \
"Slovak-HOWTO.sgml" > "Slovak-HOWTO-nodiac.sgml"
</programlisting></para>
</section> <!-- tricks-recode-sed -->
<section id="tricks-recode-cstocs">
<title>cstocs</title>
<para>Bra&ncaron;o Katreniak</para>
<para>Ke&dcaron; sa zmie&ncaron;ujete o tom, ako sa dá odstráni&tcaron; sloven&ccaron;ina z dokumentu, zdá sa mi vhodné
spomenú&tcaron; aj program <command>cstocs</command>. Je to milá utilitka &scaron;tandardne dodávaná s
<application>TeXom</application>. Umo&zcaron;&ncaron;uje konverziu súborov prakticky v&scaron;etkých mo&zcaron;ných
kódových stránok medzi sebou navzájom, pri&ccaron;om jedna z mo&zcaron;ností je aj odstránenie diakritiky.
Pri&ccaron;om sa mi to zdá pohodlnej&scaron;ie ako <command>sed</command>.</para>
</section> <!-- tricks-recode-cstocs -->
<section id="tricks-recode-recode">
<title>recode</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>Existuje aj program <command>recode</command>, ktorý pravdepodobne tie&zcaron; slú&zcaron;i na zmeny v
kódovaní súborov. Ur&ccaron;ite ho pou&zcaron;ijete na tento cie&lcaron;, ak sa predtým nestane niektorá z
nasledujúcich vecí:
<orderedlist>
<listitem>
<para>Prídete o o&ccaron;i pri &ccaron;ítaní man stránky, info manuálu a v&scaron;etkého &ccaron;o je o tomto --
inak ur&ccaron;ite u&zcaron;ito&ccaron;nom programe -- popísané.</para>
</listitem>
<listitem>
<para>Prídete o nervy pri skú&scaron;aní v&scaron;etkých mo&zcaron;ných kombinácií parametrov, volieb &ccaron;i
argumentov pre tento nesmierne u&zcaron;ito&ccaron;ný program.</para>
</listitem>
<listitem>
<para>Prídete o po&ccaron;íta&ccaron;, ke&dcaron;&zcaron;e ho vyhodíte z okna po dvoch tý&zcaron;d&ncaron;och psychického
utrpenia, ktoré za&zcaron;ijete pri pokusoch s týmto extrémne u&zcaron;ito&ccaron;ným programom.</para>
</listitem>
</orderedlist></para>
<para>Pod&lcaron;a v&scaron;etkého by mal sta&ccaron;i&tcaron; nasledovný príkaz:
<screen>
recode l2 subor.txt
</screen>
ale zdá sa, &zcaron;e to sta&ccaron;i&tcaron; nebude. Latka na titul <quote>Linuxový Guru</quote> sa posunula do
závratných vý&scaron;ok, preto&zcaron;e -- aby ste sa stali jeho nosite&lcaron;om -- musíte vedie&tcaron; pomocou tohto
programu previes&tcaron; dokument v latin2 na latin1 alebo dokonca <acronym>ASCII</acronym> (a to
u&zcaron; je pekný Saigon...)</para>
</section> <!-- tricks-recode-recode -->
</section> <!-- tricks-recode -->
</section> <!-- tricks -->
</article>
<!--
pou&zcaron;ité kódové mená:
Klotilda, ?, Malvína, Bla/nka
kódové mená &dcaron;al&scaron;ích verzií:
Justína, Matilda, Hermína, &Zcaron;ofia, Gizela, Gertrúda, &Zcaron;elmíra, Sidónia, Lujza, Jozefína, Anabela,
Rozália, Eugénia, Hortenzia, Ur&scaron;u&lcaron;a, Aurélia, Agnesa, Filoména, *** Mária Jana ***
-->