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