Initial import of sources and tools, v4.0.

This commit is contained in:
judas 2002-02-05 03:50:45 +00:00
parent 98609374f6
commit 94616188bd
13 changed files with 3294 additions and 0 deletions

View File

@ -0,0 +1,88 @@
#!/usr/bin/perl
#
# replace iso-8859-2 characters with appropriate SGML entities
# author: Juraj Bednar
# usage: lat2ent.pl <latin2.sgml >entities.sgml
while ($_=<>) {
s/¡/&Aogon;/g;
s/£/&Lstrok;/g;
s/¥/&Lcaron;/g;
s/¦/&Sacute;/g;
s/©/&Scaron;/g;
s/ª/&Scedil;/g;
s/«/&Tcaron;/g;
s/¬/&Zacute;/g;
s/®/&Zcaron;/g;
s/¯/&Zabovedot;/g;
s/±/&aogon;/g;
s/³/&lstrok;/g;
s/µ/&lcaron;/g;
s/¶/&sacute;/g;
s/¹/&scaron;/g;
s/º/&scedil;/g;
s/»/&tcaron;/g;
s/¼/&zacute;/g;
s/¾/&zcaron;/g;
s/¿/&zabovedot;/g;
s/À/&Racute;/g;
s/Á/&Aacute;/g;
s/Â/&Acirc;/g;
s/Ã/&Abreve;/g;
s/Ä/&Amacr;/g;
s/Å/&Lacute;/g;
s/Æ/&Cacute;/g;
s/Ç/&Ccedil;/g;
s/È/&Ccaron;/g;
s/É/&Eacute;/g;
s/Ê/&Eogon;/g;
s/Ë/&Emacr;/g;
s/Ì/&Ecaron;/g;
s/Í/&Iacute;/g;
s/Î/&Icirc;/g;
s/Ï/&Dcaron;/g;
s/Ñ/&Nacute;/g;
s/Ò/&Ncaron;/g;
s/Ó/&Oacute;/g;
s/Ô/&Ocirc;/g;
s/Õ/&Odblac;/g;
s/Ö/&Omacr;/g;
s/Ø/&Rcaron;/g;
s/Ù/&Uring;/g;
s/Ú/&Uacute;/g;
s/Û/&Udblac;/g;
s/Ü/&Umacr;/g;
s/Ý/&Yacute;/g;
s/Þ/&Tcedil;/g;
s/ß/&ssharp;/g;
s/à/&racute;/g;
s/á/&aacute;/g;
s/â/&acirc;/g;
s/ã/&abreve;/g;
s/ä/&amacr;/g;
s/å/&lacute;/g;
s/æ/&cacute;/g;
s/ç/&ccedil;/g;
s/è/&ccaron;/g;
s/é/&eacute;/g;
s/ê/&eogon;/g;
s/ë/&emacr;/g;
s/ì/&ecaron;/g;
s/í/&iacute;/g;
s/î/&icirc;/g;
s/ï/&dcaron;/g;
s/ñ/&nacute;/g;
s/ò/&ncaron;/g;
s/ó/&oacute;/g;
s/ô/&ocirc;/g;
s/õ/&odblac;/g;
s/ö/&omacr;/g;
s/ø/&rcaron;/g;
s/ù/&uring;/g;
s/ú/&uacute;/g;
s/û/&udblac;/g;
s/ü/&umacr;/g;
s/ý/&yacute;/g;
s/þ/&tcedil;/g;
print $_;
}

View File

@ -0,0 +1,24 @@
# Slovak-HOWTO
# make a single SGML file from Slovak-HOWTO sources
# with latin2 chars replaced with SGML entities
SOURCES = apps.sgml \
console.sgml \
gettext.sgml \
index.sgml \
intro.sgml \
kernel.sgml \
locales.sgml \
tricks.sgml \
unicode.sgml \
xwindow.sgml
Slovak-HOWTO.sgml: $(SOURCES)
./Single-SGML.awk <index.sgml | ./Lat2ent.pl >Slovak-HOWTO.sgml
.PHONY: clean
clean:
rm Slovak-HOWTO.sgml

View File

@ -0,0 +1,23 @@
#!/bin/awk -f
#
# merge Slovak-HOWTO sgml sources into one file
# author: Jan 'judas' Tomka, Oct 13 2001
# usage: single-sgml.awk <index.sgml >Slovak-HOWTO.sgml
/ENTITY[[[:blank:]]+skhowto\.\w+/ {
sub(/skhowto\./, "", $2)
sub(/>/, "", $4)
a[$2] = $4
next
}
/&skhowto\.\w+;/ {
gsub(/\&skhowto\.|\;/, "", $1)
system("cat " a[$1])
next
}
{
print $0
}

View File

@ -0,0 +1,370 @@
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<section id="apps">
<title id="apps.title">Poslovenèovanie konkrétnych aplikácií</title>
<para>Èím ïalej, tým viac programov obsahuje bezproblémovú podporu jazykov iných ako angliètina.
Napriek tomu je e¹te pár balíkov, ktoré buï pou¾ívajú vlastné rozlo¾enia kláves, alebo je treba
nastavi» nejaké tie fonty èi premenné. V tejto kapitole si popí¹eme tie aplikácie, v ktorých je
pre rozbehanie slovenèiny po nai¹talovaní nutné urobi» viac ako
<computeroutput>export LANG=sk</computeroutput>.</para>
<para>Ak chcete naozaj plnohodnotne vyu¾íva» podporu národných nastavení, v¾dy sa uistite, ¾e
program, ktorý pou¾ívate (alebo celá distribúcia), nie je star¹í ako 6 - 12 mesiacov. Je toti¾
mo¾né, ¾e autori pridali túto podporu len v nov¹ích verziách.</para>
<para>Niektoré z nasledovných popisov nie sú pôvodné a niektoré nemusia by» ani odskú¹ané. Preto
je pri ka¾dom uvedený autor a jeho adresa a prípadný zdroj, z ktorého sa návod dostal do
<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ém pri zmene premennej <envar>LC_CTYPE</envar> a zvykne sa
sta», ¾e znaky s diakritikou sa nevypisujú napriek správnemu nastaveniu tejto premennej.
Zatiaµ sa mi nepodarilo zisti», kde je chyba, lebo napríklad Vim spustený z takéhoto Bashu
funguje správne... Zatiaµ to rie¹im príkazom
<screen>
bash$ exec bash
</screen></para>
<para>Aktuálny shell sa nahradí novým, ktorý u¾ premennú <envar>LC_CTYPE</envar> pochopí správne
a je u¾ mo¾né zadá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¾íva» národné prostredie, potrebujete ma» nain¹talovanú slovenskú klávesnicu,
slovenský font a navy¹e musíte povoli» zobrazovanie znakov s <acronym>ASCII</acronym> kódom
128-255 tak, ako sú (as is). To mô¾ete spravi» zmazaním medzery pred voµbou
<computeroutput>-asis</computeroutput> v konfiguraènom súbore <filename>joerc</filename>.
Najèastej¹ie ho nájdete v adresári <filename class="directory">/usr/lib/joe/</filename>, v
<systemitem class="osname">Debiane</systemitem> je priamo v adresári
<filename class="directory">/etc/</filename>. Ïal¹ou mo¾nos»ou je pridanie parametra
<computeroutput>-asis</computeroutput> pri spú¹»aní programu.</para>
</section> <!-- apps-joe -->
<section id="apps-lynx">
<title>Lynx</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>V konfigurácii Lynxu sa lokalizácie týkajú hlavne tieto nastavenia:
<itemizedlist>
<listitem>
<para>Display character set (<varname>CHARACTER_SET</varname>) --- kódovanie znakov na
výstupe. Toto hovorí o tom, do akej znakovej sady sa budú prevádza» znaky pred
zobrazením na va¹ej obrazovke. Ak máte ¹tandardne nastavený slovenský font, mô¾ete ma»
toto v¾dy nastavené na ISO-8859-2.</para>
</listitem>
<listitem>
<para>Assumed document character set (<varname>ASSUME_CHARSET</varname>) --- aká znaková
sada sa má pou¾i», ak html dokument neobsahuje informáciu o svojom kódovaní a nastavenie
<computeroutput>Raw 8-bit</computeroutput> je vypnuté. Http ¹tandardom je iso-8859-1
tak¾e tak. Väè¹inou majú dokumenty s iným kódovaním ako iso-8859-1 informáciu o svojej
znakovej sade, vtedy sa toto nastavenie neberie do úvahy. Ak chcete, aby sa dokumenty,
ktoré nemajú explicitne danú sadu znakov, pova¾ovali za súbory s kódovaním latin 2,
nastavte si túto premennú. Mo¾no ju nastavi» len v súbore
<filename>/etc/lynx.cfg</filename> (teda nie pre ka¾dého u¾ívateµa zvlá¹»).</para>
</listitem>
<listitem>
<para>Raw 8-bit --- s týmto sa veµmi trápi» nemusíte, len v prípade, ¾e sa slovenské znaky
nezobrazujú správne, sa v¾dy uistite, ¾e to máte zapnuté (klávesovou skratkou
<keycap>@</keycap>).</para>
</listitem>
</itemizedlist></para>
<para>Konfiguraèný súbor <filename>/etc/lynx.cfg</filename> upravte, aby obsahoval minimálne
prvý riadok z
<programlisting>
CHARACTER_SET:iso-8859-2
ASSUME_CHARSET:iso-8859-2
</programlisting></para>
<para>...alebo, pre u¾ívateµský 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ácie, ktorých súbory s prelo¾enými hláseniami (*.mo) sa po
in¹talácii nenachádzajú v adresárovej ¹truktúre pod
<filename class="directory">/usr/share/locale/</filename>, odstráòte zo súboru
<filename>/etc/profile</filename> riadok
<programlisting>
export NLSPATH=/usr/share/locale/%l/%N
</programlisting></para>
<para>Vraj je ten riadok nutný pre <foreignphrase>level1 compliance for
LI18NUX2000</foreignphrase>, <application>man</application> a star¹ie programy, ale ka¹µa»
na ¹tandardy a starý ¹rot, keï to funguje len bez tej premennej. Samozrejme, ak vám to
funguje aj s òou, zabudnite na mòa.</para>
<para>V prípade, ¾e nemô¾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ávnu funkciu fontov je nutné okrem <envar>LC_CTYPE</envar> a
<envar>SYSFONT</envar> nastavi» aj premennú <envar>SYSFONTACM</envar> v súbore
<filename>/etc/sysconfig/i18n</filename>. No ak máte vlastný ú¾ívateµský súbor
<filename>~/.i18n</filename>, globálny sa nenaèíta a premenná <envar>SYSFONTACM</envar> sa
nenastaví. Preto v¾dy vlo¾te do svojho u¾ívateµské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ál Escape sekvenciu zavedenia u¾ívateµského fontu len v prípade, ¾e je nastavená
premenná <envar>SYSFONTACM</envar>. Tak si ju nastavte, alebo si to nejako opravte!</para>
</section> <!-- apps-mdk8-sysfontacm -->
</section> <!-- apps-mdk8 -->
<section id="apps-mc">
<title>Midnight Commander</title>
<para>Ján Ondrej (SAL), <email>ondrejj@salstar.shadow.sk</email></para>
<para>Jeho lokalizácia je jednoduchá, preto¾e ju priamo podporuje. Klávesou <keycap>F9</keycap>
vyvolá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é znaky správne a bude ich mo¾né aj zadáva» z
klávesnice. Ak sa pri vstupe do niektorých adresárov bude zobrazova» hlá¹ka
<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émy).</para>
<formalpara><title>Rámèeky v MC (judas)</title>
<para>Ak pou¾ívate console-tools, pre správnu funkciu rámèekov v <application>Midnight
Commander</application> a podobných textových aplikáciách nastavte font s
<foreignphrase>application charset map</foreignphrase>. U mòa funguje jedine táto
kombinácia:
<screen>
sh$ consolechars --font lat2u-16 --acm iso02
</screen></para>
</formalpara>
</section> <!-- apps-mc -->
<section id="apps-mutt">
<title>Mutt</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>Miestnych nastavení sa týkajú v konfiguraènom súbore <filename>~/.muttrc</filename>
nasledovné premenné:
<itemizedlist>
<listitem>
<para><varname>allow_8bit</varname> -- Ovplyvòuje konverziu 8-bitových dát na 7-bitové
kódovaním Quoted-Printable alebo Base64 pri zasielaní po¹ty. U mòa na nastavení tejto
premennej nezále¾í, ale v prípade problémov skúste zmeni» nastavenie tejto
premennej.</para>
</listitem>
<listitem>
<para><varname>ascii_chars</varname> -- Ak je nastavená, <application>Mutt</application>
pou¾ije znaky ASCII pri zobrazovaní vláken stromov pripojených súborov, namiesto znakov
ASC. To odporúèam, ak máte nastavený star¹í font bez podpory app-charset-map a namiesto
èiar a ¹ípiek sa vám zobrazujú znaky s diakritikou, alebo tieto znaky blikajú ap.</para>
</listitem>
<listitem>
<para><varname>charset</varname> -- Znaková sada, ktorú pou¾íva vá¹ terminál na
zobrazovanie a vkladanie textových dát. Nastavi» na kód znakovej sady fontu, ktorý máte
nastavený na konzole alebo v XTerme, atï.</para>
</listitem>
</itemizedlist></para>
</section> <!-- apps-mutt -->
<section id="apps-readline">
<title id="apps-readline.title">Readline</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>V súbore s globálnymi nastaveniami <filename>/etc/inputrc</filename> alebo vo svojom
u¾ívateµskom súbore <filename>~/.inputrc</filename> je pre správnu interpretáciu osembitových
znakov nastavi» tieto premenné:
<itemizedlist>
<listitem>
<para><varname>convert-meta</varname> --- Ak je nastavená na `on', Readline konvertuje
znaky s nastaveným ôsmym bitom na sekvenciu znakov ASCII odstránením ôsmeho bitu a
pridaním znaku Esc na zaèiatok.</para>
</listitem>
<listitem>
<para><varname>input-meta</varname> --- Ak je nastavená na `on', Readline umo¾ní
osembitový vstup (neodstráni ôsmy bit z preèítaných znakov) bez ohµadu na to, èi to
terminál podporuje. Meno <varname>meta-flag</varname> je synonymom pre túto
premennú.</para>
</listitem>
<listitem>
<para><varname>output-meta</varname> --- Ak je nastavená na `on', Readline bude zobrazova»
znaky s nastaveným ôsmym bitom priamo a nie ako escape sekvencie.</para>
</listitem>
</itemizedlist></para>
<para>Tak¾e, do jedného zo spomínaných súborov vlo¾te takéto nastavenia:
<programlisting>
set convert-meta off
set input-meta on
set output-meta on
</programlisting></para>
</section> <!-- apps-readline -->
<section id="apps-rpm4">
<title id="apps-rpm4.title">RPM4</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>Tento malý skriptík <quote>doin¹taluje</quote> slovenské preklady v¹etkých aplikácií,
ktoré máte nain¹talované. Mô¾u vám chýba», ak ste pri in¹talácii operaèného systému nezvolili
slovenský jazyk.</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ú <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áves priamo a neèaká na
ïal¹í znak, s ktorým by ho skombinoval, je otázka jedného argumentu pri konfigurovaní:
<screen>
sh$ ./configure --enable-xim
sh$ make
sh$ su -c'make install'
</screen></para>
<para>Týmto sa <application>Rxvt</application> skompiluje s podporou pre <acronym>XIM</acronym>
(<foreignphrase>X Input Method</foreignphrase>) protokol. Ten umo¾òuje alternatívne metódy
vstupu (napr. kinput2) a tie¾ správne nastavenia pre µudí, èo pou¾ívajú màtve klávesy. Preèo
distribúcie prichádzajú s rxvt bez tejto vlastnosti, to nechám na detektíva Karola.</para>
<para>Pre správnu funkciu <keycap>Home</keycap> a <keycap>End</keycap> je treba v konfiguraènom
súbore <filename>src/feature.h</filename> (e¹te pred prvým príkazom make) definova» makro
<programlisting>
#define LINUX_KEYS
</programlisting></para>
</section> <!-- apps-rxvt -->
<section id="apps-samba">
<title>Samba</title>
<para>Ján Ondrej (SAL), <email>ondrejj@salstar.shadow.sk</email></para>
<para>Po nastavení lokalizácie doká¾e automaticky prekódova» znaky s diakritikou z kódovania 852
na ISO8859-2. Nastavuje sa to v konfiguraènom súbore <filename>/etc/smb.conf</filename>
pridaním nasledujúcich riadkov do sekcie <computeroutput>[global]</computeroutput>:
<programlisting>
character set = iso8859-2
client code page = 852
</programlisting></para>
</section> <!-- apps-samba -->
<section id="apps-wmaker">
<title>Window Maker</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para><application>Window Maker</application> má prakticky bezproblémovú podporu locales. V
aktuálnej verzii sa nachádzajú najnov¹ie preklady a úpravy pre Slovenèinu, tak¾e u¾ netreba
¾iadne záplaty.</para>
<itemizedlist>
<listitem>
<para>Kompilácia:
<screen>
sh$ LINGUAS=sk ./configure --enable-modelock # modelock = language button
sh$ make
sh$ su -c'make install'
</screen></para>
</listitem>
<listitem>
<para>Slovenské fonty a menu (po wmaker.inst)
<screen>
### star¹ie ako 0.65.0
sh$ wsetfont latin2
sh$ wdwrite WMGLOBAL MultiByteText YES
# proplist menu
sh$ cp ~/GNUstep/Library/WindowMaker/plmenu.sk ~/GNUstep/Defaults/WMRootMenu
# plain-text menu
sh$ echo "~/GNUstep/Library/WindowMaker/menu.sk" > ~/GNUstep/Defaults/WMRootMenu
### 0.65.0sk a nov¹ie
sh$ wmchlocale sk
</screen></para>
</listitem>
<listitem>
<para>Slovenská ikona pre language button (len pre 0.65.0sk) ---
ak ste zadali s <command>configure</command> argument
<computeroutput>--enable-modelock</computeroutput>, mô¾ete v
súbore <filename class="headerfile">src/wconfig.h</filename> zmeni» riadok
<programlisting>
#undef LANGUAGE_SK
</programlisting>
na
<programlisting>
#define LANGUAGE_SK
</programlisting></para>
<para>Potom staèí wmaker skompilova» a vo WPrefs povoli» language button. Pri prepínaní
klávesnice sa v òom bude zobrazova» slovenský dvojkrí¾ namiesto srdieèka...</para>
</listitem>
</itemizedlist>
<para>Bohu¾iaµ, aplikácie zalo¾ené na kni¾nici WINGs majú problémy s prepínaním rozlo¾ení
kláves. To sa prejavuje pri editovaní WMTextField (opravené v 0.65.0sk) a polo¾iek menu, keï
je mo¾né zadáva» znaky len pri nastavenom rozlo¾ení kláves, s ktorým bol X server
spustený.</para>
</section> <!-- apps-wmaker -->
</section> <!-- apps -->

View File

@ -0,0 +1,910 @@
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<section id="console">
<title>Nastavenia konzoly</title>
<para>Táto kapitola by mala èítavou, pouènou a zároveò zábavnou formou pojednáva» o veciach medzi
prstom a okom. Základnou otázkou nech nám je <quote>Hét szentség it neky, ako mám prinúti» svoju
ma¹inu, aby mi ¾rala slovenské znaky z klávesnice a aby mi ich tie¾ aj vypµúvala na
obrazovku?! To v¹etko v textovom re¾ime!</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íte o polnoci hocikoho, kto vo svojom ¾ivote videl poèítaè a opýtate sa ho, ako
rozbeha» slovenské znaky, urèite spomenie nieèo ako fonty. Toti¾, aj malé decko vie, ¾e na
zobrazovanie znakov na obrazovku -- èi u¾ v textovom alebo grafickom re¾ime -- slú¾ia fonty.
Fonty pre konzolu a programy urèené na manipuláciu s nimi sa nachádzajú v balíku
<application>kbd</application>. Po jeho nain¹talovaní sú súbory s fontami umiestnené v
adresári <filename class="directory">/usr/lib/kbd/consolefonts/</filename>.</para>
<para>Pre nás sú dôle¾ité najmä súbory, ktoré majú v mene <filename>iso02</filename>,
<filename>lat2</filename>, <filename>latin2</filename> alebo èíslo <filename>852</filename>.
To naznaèuje, ¾e ide o fonty s podporou <emphasis>iso-8859-2</emphasis>
(<emphasis>latin2</emphasis>), alebo <emphasis>DOS codepage 852</emphasis>, èo sú ¹tandardy
aj pre slovenskú diakritiku.</para>
<para>Pozor, pôvodný balík sa volá <application>kbd</application>, ale existuje jeho roz¹írená
verzia, ktorá sa objavuje v distribúciách -- <application>console-tools</application>.
Rozdiely medzi nimi sú minimálne, pre <application>kbd</application> budeme pou¾íva» príkaz
<command>setfont</command>, pre <application>console-tools</application> zase
<command>consolechars</command>. Taktie¾, názvy dodávaných fontov sa trochu odli¹ujú, tak¾e
budem uvádza» ekvivalenty pre oba balíky.</para>
</section> <!-- console-fonts-fonts -->
<section id="console-fonts-theory">
<title>Ako fonty fungujú</title>
<para>Existuje niekoµko súborových formátov na ukladanie fontov, princíp je v¹ak rovnaký --
súbor obsahuje 256 obrázkov (<foreignphrase>glyphs</foreignphrase>), z ktorých v¹etky majú
rovnaký rozmer (napr. 8x16 bodov -- veµkos» fontu) a ka¾dý zobrazuje jeden znak.</para>
<para>Aby nám tých 256 obrázkov bolo na nieèo dobrých, je treba font zo súboru zavies» do
znakového generátora videokarty. Na to slú¾i jeden z príkazov
<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útna alebo relatívna cesta k
súboru s fontom, alebo meno súboru, pokiaµ sa nachádza v adresári <filename
class="directory">/usr/lib/kbd/consolefonts/</filename>, èi u¾ s príponou, alebo
bez.</para>
<para>Pre µah¹ie pochopenie tých obrázkov, skúste nahradi»
<computeroutput>meno-fontu</computeroutput> re»azcom <computeroutput>t850</computeroutput> a
sledujte výsledok na v¹etkých virtuálnych konzolách.</para>
<para>Naspä» k ¹tandardnému fontu sa v¾dy dostanete jedným z príkazov
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<screen>
sh$ setfont
</screen></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<screen>
sh$ consolechars -d
</screen></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Èo sa presne deje? Program <command>setfont</command>/<command>consolechars</command>
zavedie v¹etkých 256 obrázkov do znakového generátora
<acronym>EGA</acronym>/<acronym>VGA</acronym> karty. Od tohto momentu sa na v¹etkých
konzolách bude znak s <acronym>ASCII</acronym> kódom napr. 65 vykreslova» ako ¹esdesiaty
piaty obrázok z na¹eho súboru s fontom. E¹te raz pripomínam a dvakrát podèiarkujem, ¾e font
je v¾dy rovnaký pre v¹etky virtuálne konzoly, na ktorých zobrazuje znaky ten istý znakový
generátor <acronym>EGA</acronym>/<acronym>VGA</acronym> karty.</para>
<para>Dôle¾ité je uvedomi» si, ¾e interne ide naozaj len o obrázky a tvar niektorého znaku vo
fonte nemá niè spoloèného s jeho ASCII kódom. Ak by ste si sami vytvorili nejaký font (v
dokumentácii ku <application>kbd</application>/<application>console-tools</application> máte
informácie o v¹etkých formátoch), v ktorom by mal ten ¹esdesiaty piaty obrázok tvar písmena
<computeroutput>z</computeroutput>, po jeho natiahnutí sa vám bude pri zadaní
<keycombo><keycap>Alt</keycap><keycap>6</keycap><keycap>5</keycap></keycombo>, èo je pri
¹tandardnom fonte písmeno <computeroutput>A</computeroutput>, zobrazova» znak
<computeroutput>z</computeroutput>. Ale ak tento znak ulo¾íte do súboru, v tomto sa bude
nachá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¾íva ¹tandard <emphasis>iso-8859-2</emphasis> (a iné) - spoloèné znaky s
<acronym>ASCII</acronym> vykreslí rovnako a znaky ¹pecifické pre tú ktorú abecedu
<quote>namapuje</quote> na menej pou¾ívané znaky <acronym>ASCII</acronym> tabuµky. Kam
presne ktorá norma umiestòuje znaky s diakritikou, nás zaujíma» nemusí (pokiaµ nevytvárame
vlastné fonty), hlavné je, ¾e napr. anglický text je nezmenený (angliètina má v¹etky znaky
spoloèné so slovenèinou) a slovenský text u¾ viac neobsahuje hlúpe znaky, ktoré so
slovenèinou nemajú niè spoloèné.</para>
<para>Slovenské (iso-8859-2) fonty, ktoré sú súèas»ou balíkov <application>kbd</application>
a <application>console-tools</application>:
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>lat2-{08,10,12,14,16}, lat2a-16, iso02.{08,14,16}</para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>lat2-{08,10,12,14,16}, lat2u-16, iso02.f{08,14,16}</para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Na zavedenie fontu pou¾ite príkaz
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<screen>
sh$ setfont meno-zo-zoznamu
</screen></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<screen>
sh$ consolechars -f meno-zo-zoznamu
</screen></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Odporúèam pou¾íva» <computeroutput>lat2a-16</computeroutput>, resp.
<computeroutput>lat2u-16</computeroutput>. Ostatné fonty majú bezchybné zobrazovanie
slovenských znakov, problém v¹ak nastáva pri aplikáciách, ktoré vyu¾ívajú znaky na kreslenie
rámèekov (napr. mc).</para>
<para>Èo sa týka fontov <computeroutput>iso02.*</computeroutput> z balíka
<application>kbd</application>, treba pri nich pou¾i» argument príkazu
<command>setfont</command> <computeroutput>-m latin2u.trans</computeroutput>. Tak¾e celý
príkaz na zavedenie niektorého z týchto fontov je:
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<screen>
sh$ setfont iso02.16 -m latin2u.trans
</screen></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<screen>
sh$ consoletrans -f lat2u-16 -m iso02
</screen></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>V súbore <filename>latin2u.trans</filename> (<filename>iso02.acm</filename>) sa nachádza
tzv. <foreignphrase>Aplication-Charset Map</foreignphrase> (<acronym>ACM</acronym>), akási
prevodná tabuµka, ktorá obsahuje riadok pre ka¾dý znak fontu a jeho podobu v kódovaní
UTF-8.</para>
</section> <!-- console-fonts-latin2 -->
<section id="console-fonts-autoload">
<title>Automatické zavádzanie fontov</title>
<para> Ak ste si na¹li svoj font, ktorý chcete pou¾íva» a ma» ho automaticky zavedený v¾dy pri
¹tarte, nie je niè µah¹ie. Inicializaèný skript <filename>rc.sysinit</filename> robí asi
toto: skontroluje, èi existuje súbor <filename>/etc/sysconfig/i18n</filename> a program
(skript) <filename>/sbin/setsysfont</filename>. Ak áno, spustí
<command>setsysfont</command>. Ten naèíta <filename>/etc/sysinfo/i18n</filename> a podµa
premenných definovaných v tomto súbore príkazom <command>consolechars</command> alebo
<command>setfont</command> zavedie font.</para>
<para>Tak¾e staèí nastavi» správne premenné v súbore <filename>/etc/sysconfig/i18n</filename>
a skript <filename>/sbin/setsysfont</filename> urobí v¹etko za nás. Tento skript mo¾no
spusti» kedykoµvek chcete zavies» font nastavený ako ¹tandardný pre systém.</para>
<para>Premenné v súbore <filename>/etc/sysinit/i18n</filename> sú (pou¾ívajte len mená súborov
bez cesty a bez prípony!):
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<programlisting>
SYSFONT=lat2a-16
</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<programlisting>
SYSFONT=lat2u-16
SYSFONTACM=iso02
</programlisting></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Skriptík <command>setsysfont</command> obsahujú oba balíky a kedykoµvek mô¾ete zavies»
font nastavený ako systémový v súbore <filename>/etc/sysinit/i18n</filename> jednoduchým
zadaním
<screen>
sh$ /sbin/setsysfont
</screen></para>
<para>Podµa toho, èo sme si hovorili o tom, ¾e pre v¹etky virtuálne konzoly mô¾e by» nastavený
len jeden spoloèný font, nemá veµký zmysel zavádza» nastavovanie fontu zvlá¹» pre ka¾dého
u¾ívateµa. S tým súvisí aj fakt, ¾e nastavenie fontu sa vz»ahuje k danému poèítaèu, pri
ktorom práve sedíte a nie k tomu, ku ktorému ste pripojení napr. cez
<application>telnet</application>.</para>
<para>Predsa len si viem predstavi» prípad, keï niektorý z viacerých pou¾ívateµov jedného
poèítaèa potrebuje odli¹ný font. V tom prípade mô¾e vlo¾i» príkaz na zavádzanie fontov do
svojich skriptov, ktoré vykonáva shell pri prihlásení a odhlásení. Pre bash by to mohlo
vyzera» takto:
<variablelist>
<varlistentry>
<term><filename>~/.bash_profile</filename>:</term>
<listitem>
<para>
<programlisting>
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.font ]; then
setfont -o ~/.font gr928a-8x16
fi
</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>~/.bash_logout</filename>:</term>
<listitem>
<para>
<programlisting>
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.font ]; then
setfont ~/.font
rm -f ~/.font
fi
</programlisting></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Vonkoncom to nie je ideálne rie¹enie, ale svoj úèel splní (minimálne po moment prvého
odhlásenia). Trochu sa s tým pozabávajte, aby sa font (a rozlo¾enie kláves) menilo len pri
prvom prihlásení a poslednom odhlásení, tie¾ setfont pod iXami nemá veµmi zmysel a tak...
Ináè, aby bolo jasné, toto vám bude fungova» len na lokálnom stroji - zamyslite sa, preèo je
asi <command>setfont</command> (aj <command>loadkeys</command>) zakázaný cez vzdialený
terminál a èi by ste z toho nieèo mali, keby nebol.</para>
<para>Ak to s takýmto rie¹ením myslíte vá¾ne, tak skôr uva¾ujte nad modifikáciou skriptu
<filename>/etc/profile.d/lang.sh</filename>, kde by sa kontroloval aj obsah u¾ívateµského
súboru <filename>~/.i18n</filename> a podµa toho by sa zaviedol skript, popis rozlo¾enia
kláves, prípadne nejaké premenné...</para>
</section> <!-- console-fonts-autoload -->
</section> <!-- console-fonts -->
<section id="console-kbd">
<title>Slovenská klávesnica na textovej konzole</title>
<para>Keï je slovenský font na konzole rozbehaný a na¹e národné znaky sa zobrazujú správne, máme
so slovenèinou problém èíslo dva - ako tam tie znaky dosta»? Keby bol napríklad tento súbor
napísaný s diakritikou a vy by ste si ho chceli len preèíta» bez potreby následnej nav¹tevy
psychiatra, staèilo by zavies» nejaký font so slovenskou podporou. Ale ak chcete sami pomocou
klávesnice písa» slovenský text, potrebujete s tou klávesnicou nieèo urobi».</para>
<section id="console-kbd-kmap">
<title>Popis rozlo¾enia kláves (keymap)</title>
<para>Adresáre <filename class="directory">/usr/lib/kbd/keymaps/i386/qwertz/</filename> a
<filename class="directory">qwerty/</filename> obsahujú
po nain¹talovaní balíka
<application>kbd</application>/<application>console-tools</application> aj popisy
slovenského rozlo¾enia kláves. Pre nás sú zaujímavé súbory
<simplelist>
<member><filename>sk-prog-qwerty.map.gz</filename></member>
<member><filename>sk-qwerty.map.gz</filename></member>
<member><filename>sk-prog-qwertz.map.gz</filename></member>
<member><filename>sk-qwertz.map.gz</filename></member>
</simplelist></para>
<para>Tieto súbory obsahujú definície rozlo¾enia kláves pre slovenský jazyk, prièom rozdiely
medzi nimi sú v umiestnení kláves <keycap>Y</keycap> a <keycap>Z</keycap> a poète
slovenských znakov, ktoré pomocou nich mo¾no napísa» priamo (bez màtvych kláves). Najviac sa
na slovenský písací stroj podobá <computeroutput>sk-qwertz</computeroutput>, najmen¹ie zmeny
oproti americkej klávesnici sú zase v
<computeroutput>sk-prog-qwerty</computeroutput>.</para>
<para>Súbory v adresári <filename class="directory">/usr/lib/kbd/keymaps/i386/include/
</filename> obsahujú popis základných rozlo¾ení kláves (<computeroutput>azerty
</computeroutput>, <computeroutput>qwerty</computeroutput>, <computeroutput>qwertz
</computeroutput>), prídavných kláves (<computeroutput>keypad</computeroutput>,
<computeroutput>windowkeys</computeroutput>), prípadne problémových kláves (<computeroutput>
delete</computeroutput>, <computeroutput>backspace</computeroutput>, <computeroutput>ctrl
</computeroutput>). Súbory <filename>linux-*.inc.gz</filename> sú ¹pecifické pre linux
(teda nie pre jazyk). Sú to napr. kµúèe (<keycap>F1</keycap>-<keycap>F12</keycap>,
kombinovaní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ú kompletné rozlo¾enie klávesnice, ale
len niektorých jej èastí. Vyu¾ívajú sa pri pripájaní
(<foreignphrase>include</foreignphrase>) zo súborov <filename>*.map.gz</filename>, èo je
výhodné jednak z dôvodu ¹etrenia miestom na disku, ale hlavne jednoduch¹ej konfigurácie
klávesnice. Napríklad zmenou jedného riadku v súbore s rozlo¾ením
<computeroutput>sk-qwerty</computeroutput> mô¾me dosta» rozlo¾enie qwertz, prípadne (to asi
vyu¾ijete) jednoducho odstavi» znaky <keycap>Euro</keycap> a <keycap>Cent</keycap>, ktoré
(zatiaµ?) nepotrebujeme a zbytoène nám zaberajú znaky <keycap>E</keycap> a
<keycap>C</keycap>.</para>
<para>Na zavedenie súboru s popisom rozlo¾enia kláves slú¾i nasledovný príkaz:
<cmdsynopsis>
<command>loadkeys</command>
<arg choice="plain"><replaceable>nazov</replaceable></arg>
</cmdsynopsis>
kde <computeroutput>nazov</computeroutput> mô¾e by» absolútna alebo relatívna cesta ku
keymap súboru, alebo meno súboru, pokiaµ sa nachádza v adresári <filename class="directory">
/usr/lib/kbd/keymaps/</filename>, èi u¾ s príponou, alebo bez.</para>
<para>©tandardné slovenské popisy rozlo¾enia kláves nájdeme vo vy¹¹ie spomínaných
<filename>*.map.gz</filename> súboroch. Ak sa chcete vráti» k ¹tandardnému rozlo¾eniu,
príkaz
<screen>
sh$ loadkeys -d
</screen>
zavedie pôvodné, ktoré je ulo¾ené v súbore <filename>defkeymap.map.gz</filename> niekde
medzi ostatnými keymap súbormi. Predtým ale nikdy nezabudnite zmeni» re¾im slovenskej
klá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ávesy, kde sa nachádzali slovenské znaky, nebudú fungova»
správne (v skutoènosti budú fungova» správne, ale vám sa to nebude páèi»). Vtedy znovu
zaveïte predchadzájucú keymapu (na nefunkèné klávesy pou¾ite <keycap>AltGr</keycap> - pravý
<keycap>Alt</keycap>) a klávesou <keycap>Pause/Break</keycap> v¹etko napravíte. Potom mô¾ete
zavies» defkeymap bez nebezpeèenstva straty svojprávnosti.</para>
<para>Pokiaµ sa vám nepáèi ani jeden zo ¹tandardných keymap súborov pre slovenèinu, èo je
pravdepodobné 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úci súbor s popisom
rozlo¾enia kláves, prípadne vytvori» nový. Nebojte sa, je to zlo¾ité! Nebudem to tu
rozpisova» v¹etko, prezrite si zopár kmap súborov, preèítajte manuálovú stránku keymaps(5) a
mali by ste to µahko pochopi».</para>
<para>My si povieme len o základných veciach, ktore nám pomô¾u pozmeni» existujúce kmap súbory
s popismi slovenských klávesníc, aby ste si poradili s (mne známymi) komplikáciami, alebo
upravili rozlo¾enie kláves podµa svojho gusta.</para>
</section> <!-- console-kbd-kmap -->
<section id="console-kbd-include">
<title>Include a nesprávna funkcia kláves `E' a `C'</title>
<para>Problém s <keycap>E</keycap> a <keycap>C</keycap> je spôsobený zavedením jednotnej meny
v európskej únii. Na vine nie je ani tak <acronym>EU</acronym>, ale niekto, kto symboly pre
<keycap>Euro</keycap> a <keycap>Cent</keycap> umiestnil na <keycombo><keycap>AltGr</keycap>
<keycap>E</keycap></keycombo> a <keycombo><keycap>AltGr</keycap><keycap>C</keycap>
</keycombo>, èo sú na¹e obyèajné <keycap>E</keycap> a <keycap>C</keycap>. Toti¾, národné
klávesnice sú väè¹inou rie¹ené tak, ¾e po zavedení súboru naïalej funguje americké
rozlo¾enie a na prepínanie do národného re¾imu sa pou¾íva klávesa <keycap>Pause</keycap>,
alebo mô¾me zadáva» národné klávesy pri súèasnom dr¾aní klávesy <keycap>AltGr</keycap>
(pravý <keycap>Alt</keycap>). Súbor <filename>euro.inc</filename>, ktorý definuje tieto dva
problémové symboly, je pripojený zo súboru <filename>qwerty-layout.inc</filename>, ktorý
zase pripájajú samotné slovenské keymapy (<filename>sk-qwerty</filename>,
<filename>sk-prog-qwertz</filename>, &hellip;). A takto sa dostala definícia
<keycap>Euro</keycap> a <keycap>Cent</keycap> na slovenskú klávesnicu.</para>
<para>Rie¹enie je brutálne jednoduché - 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áves</title>
<para>Predchádzajúci problém s eurom mo¾no vyrie¹i» aj definovaním znakov <keycap>E</keycap> a
<keycap>C</keycap> v samotnom súbore <filename>sk-qwerty.kmap.gz</filename> (alebo inom,
ktorý pou¾í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ávesu (alebo aspoò pre ka¾dú, ktorú 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>Èíslo za <computeroutput>keycode</computeroutput> oznaèuje urèitú klávesu a re»azce za
<computeroutput>=</computeroutput> hovoria o tom, aký znak má ovládaè klávesnice generova»
pri stlaèení tejto klávesy, a to buï samotnej, alebo v kombinácii so ¹peciálnymi klávesmi
<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ávesu.</para>
<para>Väè¹inou sa pozmeòuje len prvých 16 kombinácií modifikátorov. To je význam riadku
<programlisting>
keymaps 0-15
</programlisting>
na zaèiatku kmap súborov.</para>
<para>V nasledujúcej zozname je týchto 16 kombinácií (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ávesnice sú dôle¾ité len prvé ¹tyri - prvé dva sú zvyèajne
nezmenené americké znaky, napr. <computeroutput>two at</computeroutput>, èo je
<keycap>2</keycap> <keycap>@</keycap>, a druhé dva sú znaky slovenskej abecedy, ktoré bude
ovládaè klávesnice posiela» aplikáciám ak pri stlaèení tejto klávesy budeme súèasne dr¾a»
klávesu <keycap>AltGr</keycap> (pravý <keycap>Alt</keycap>), napr. <computeroutput>lcaron
two</computeroutput>, èo je na¹e <keycap>µ</keycap> <keycap>2</keycap>.</para>
<para>Aby ste mohli vklada» slovenské znaky, nemusíte celý èas pridr¾iava»
<keycap>AltGr</keycap> nosom, ale mô¾ete pou¾i» <keycap>Pause/Break</keycap>, ktorý v
kontexte s národnými klávesnicami funguje ako <keycap>AltGr Lock</keycap>. Chápte to tak, ¾e
keï sa prepnete do slovenského re¾imu stlaèením <keycap>Pause/Break</keycap>, prvé a druhé
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ávanie znakov americkej klávesnice,
alebo sa opätovným stlaèením <keycap>Pause/Break</keycap> prepnú» spät do US re¾imu.</para>
<para>Riadok pre klávesu s kódom 41 (znaky <keycap>`</keycap> a <keycap>~</keycap>), má v
súbore <filename>sk-qwerty.map.gz</filename> nasledovný tvar:
<programlisting>
keycode 41 = grave asciitilde dead_diaeresis dead_circumflex ...
</programlisting></para>
<para>Mne osobne sa nepáèi, ¾e sú tu umiestnené màtve klávesy <keycap>dead_diaeresis</keycap>
(dve bodky nad znakom) a <keycap>dead_circumflex</keycap> (mäkèeò), preto¾e ich nepotrebujem
--- <keycap>ä</keycap> aj <keycap>ô</keycap> na slovenskej klávesnici predsa je. A keby aj
nebolo, na ich písanie mô¾em kµudne pou¾i» màtvy kláves mäkèeò. O tom si bli¾¹ie povieme v
èasti o compose. Teraz chcem ma» na tomto mieste znaky <keycap>;</keycap> (semicolon) a
<keycap>°</keycap> (degree) tak, ako je to na popiske mojej klávesnice. Zmením teda riadok
takto:
<programlisting>
keycode 41 = grave asciitilde semicolon degree ...
</programlisting></para>
<para>(Ináè, ten stupeò asi nie je stupeò, ale màtvy znak krú¾ku nad písmenom, napr. v èe¹tine
nad u, ale taký kláves je nám fakt naniè.)</para>
<para>Názvy znakov, ktoré sa pou¾ívajú pri definovaní jednotlivých kláves si mô¾ete pre znaky
<acronym>ASCII</acronym> zisti» v súbore <filename>us.map.gz</filename>. Èíselné kódy
v¹etkých kláves vám vypµuje program
<cmdsynopsis>
<command>showkey</command>
</cmdsynopsis></para>
<para>Pravidlá pre názvy znakov ¹pecifických pre slovenèinu v kmap súboroch:
<orderedlist>
<listitem>
<para>Prvé písmeno v názve urèuje <acronym>ASCII</acronym> znak, pre ktorý chceme pou¾i»
diakritiku.</para>
</listitem>
<listitem>
<para>K nemu pridáme identifikátor diakritického znamienka:
<simplelist>
<member>caron --- mäkèeò</member>
<member>acute --- då¾eò</member>
<member>diaeresis --- dve bodky nad</member>
<member>circumflex --- vokáò</member>
</simplelist></para>
<para>Napríklad:
<simplelist>
<member>scaron = <keycap>¹</keycap></member>
<member>uacute = <keycap>ú</keycap></member>
<member>Ocircumflex = <keycap>Ô</keycap></member>
</simplelist></para>
</listitem>
</orderedlist></para>
<para>Názvy ïal¹ích znakov ¹pecifických pre slovenèinu:
<simplelist>
<member>0xa7 --- <keycap>§</keycap> (paragraf)</member>
<member>degree --- <keycap>°</keycap> stupeò</member>
</simplelist></para>
<para>Pre správnu interpretáciu identifikátorov znakov s diakritikou je nutné na zaèiatku kmap
súboru urèi» kódovú stránku, pre ktorú bude urèený tento popis rozlo¾enia kláves. Ide o to,
¾e ten istý znak mô¾e ma» v rôznych kódových stránkach iný <acronym>ASCII</acronym> kód.
Implicitná hodnota je iso-8859-1, teda pre slovenské keymapy je nutné vlo¾i» riadok:
<programlisting>
charset "iso-8859-2"
</programlisting></para>
<para>E¹te jeden príklad: ak chcete pou¾íva» slovenské rozlo¾enie
<computeroutput>qwertz</computeroutput> a americké 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ý pohµad to mô¾e fungova» dobre, ale problém sa prejaví pri zapnutom <keycap>Caps
Lock</keycap> - znaky <keycap>Y</keycap> a <keycap>Z</keycap> sa stále pí¹u malými
písmenami. Pri písaní popisov rozlo¾ení znakov mo¾no takýto problém o¹etri» pridaním písmena
<computeroutput>+</computeroutput> pred ka¾dé písmeno v keycode riadku danej klávesy.
Písmeno <computeroutput>+</computeroutput> urèuje nasledovnému písmenu atribút
<foreignphrase>letter</foreignphrase>, teda sa bude pri stlaèenom <keycap>Caps Lock</keycap>
písa» veµké písmeno. V¹etky písmená a-z, A-Z majú tento atribút priradený automaticky, ale
to len v prípade, ¾e majú keycode riadok tvaru:
<programlisting>
keycode 21 = y
</programlisting></para>
<para>V na¹om prípade teda musíme priradi» tento atribút v¹etkým znakom explicitne. Tak¾e,
koneèná úprava keymapy bude:
<programlisting>
keycode 21 = +y +Y +z +Z
keycode 44 = +z +Z +y +Y
</programlisting></para>
<para>Pre výmenu písmen toto rie¹enie funguje spoµahlivo, bohu¾iaµ, e¹te stále neexistuje
spôsob, ktorým by sa dalo dosiahnu» napríklad písanie veµkých písmen s diakritikou pri
zapnutom <keycap>Caps Lock</keycap> jednoduchým stláèaním ich kláves, ako je to v slovenskom
popise rozlo¾enia kláves pre <application>X Window System</application>.</para>
</section> <!-- console-kbd-keycode -->
<section id="console-kbd-dead">
<title>Màtve klávesy a sekvencie compose</title>
<para>S màtvymi klávesami súvisia v kmap súboroch riadky tvaru
<programlisting>
compose 'c1' 'c2' to 'c3'
</programlisting></para>
<para>Predstavme si màtve znaky ako úplne obyèajné znaky s tým rozdielom, ¾e ovládaè
klávesnice ich neposiela aplikáciám, ale zostanú niekde visie», kým z klávesnice nepríde
ïal¹í znak. Ovládaè klávesnice nepo¹le ani tento, ale pokúsi sa spoji» ho s predchádzajúcim
màtvym znakom a a¾ výsledok spojenia pustí ïalej. No, a ako má to spojenie uskutoèni», to mu
presne hovoria riadky <computeroutput>compose</computeroutput> v keymap súboroch.</para>
<para>V nasledujúcej tabuµke je zoznam màtvych znakov pou¾ívaných v Slovenèine, spolu s
významom a znakom, ktorým sa oznaèujú v compose sekvenciách.
<table id="console-kbd-dead.tables.dead">
<title id="console-kbd-dead.tables.dead.title">Màtve klávesy</title>
<tgroup cols="3">
<thead>
<row>
<entry>Názov</entry>
<entry>Význam</entry>
<entry>Compose</entry>
</row>
</thead>
<tbody>
<row>
<entry>dead_acute</entry>
<entry>då¾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í</title>
<step>
<para>Tvárte sa, ¾e ste úplný mumák a neviete, ¾e daný znak s diakritikou e¹te nemáte
definovaný a jednoducho chcete zada» tento znak pou¾itím màtvej klávesy.</para>
</step>
<step>
<para>Ako¾e omylom (hi-hi) napí¹te na zaèiatok riadku slovo
<computeroutput>compose</computeroutput>.</para>
</step>
<step>
<para>Prvý bude compose znak màtvej klávesy (podµa tabuµky <xref
linkend="console-kbd-dead.tables.dead" endterm="console-kbd-dead.tables.dead.title">),
napríklad <computeroutput>\'</computeroutput>.
</para>
<para>Druhý je znak, s ktorým chcete màtvu klávesu kombinova», napríklad
<computeroutput>A</computeroutput>.</para>
<para>Za kµúèovým slovom <computeroutput>to</computeroutput> nasleduje výsledok spojenia
màtvej klávesy a znaku bez diakritiky, teda <computeroutput>Á</computeroutput>.</para>
</step>
</procedure>
<para>Je praktické ma» pri vytváraní compose sekvencií zavedený slovenský font, aby ste
výsledok mohli hneï kontrolova». Veµkou pomocou je tie¾ mo¾nos» príkazu
<command>loadkeys</command> èíta» zo ¹tandardného vstupu. Napríklad:
<screen>
sh$ loadkeys
include "/usr/lib/kbd/keymaps/i386/include/windowkeys.map.gz"
keycode 41 = grave asciitilde semicolon dead_diaeresis
compose '"' 'a' to 'ä'
# ukonèenie zadávania: EOF - Ctrl-D
sh$
</screen></para>
<para>Popis aktuálneho rozlo¾enia kláves mô¾ete ulo¾i» do súboru príkazom
<screen>
sh$ dumpkeys > subor
</screen></para>
<para>Ak nemáte zavedený slovenský popis rozlo¾enia kláves, musíte zadáva» tieto znaky ako Alt
sekvencie, poprípade vklada» ich hex kódy v tvare <keycode>0xed</keycode> pre
<keycap>í</keycap>. Výpis znakov aktuálneho fontu spolu s ich hex kódmi vám urobí program
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<cmdsynopsis>
<command>showfont</command>
</cmdsynopsis></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<cmdsynopsis>
<command>showcfont</command>
</cmdsynopsis></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>E¹te raz na¹a compose sekvencia a nejaké navy¹e:
<programlisting>
compose '\'' 'A' to 'Á' # `dlhé A' cez då¾eò
compose '^' 'O' to 'Ô' # definícia `O s vokáòom' cez mäkèeò
compose '^' 'a' to 'ä' # definícia `¹irokého 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í pre normu iso-8859-2.</para>
</section> <!-- console-kbd-dead -->
<section id="console-kbd-autoload">
<title>Automatické zavádzanie keymap súboru</title>
<para>Na nastavenie rozlo¾enia klávesnice, ktoré chceme zavies» pri ¹tarte systému, nám slú¾i
súbor <filename>/etc/sysconfig/keyboard</filename>. Pre Slováka ako repa by mal vyzera»
minimálne takto:
<programlisting>
KEYTABLE=sk-qwerty # zavedie rozlo¾enie kláves sk-qwerty
KBCHARSET=iso-8859-2 # ...a spomínaný súbor compose.latin2
</programlisting></para>
<para>Nastavenie klávesnice pri ¹tarte má na starosti skript keytable, ktorý je volaný priamo
z <filename>rc.sysinit</filename>, tak¾e netreba vytvára» linky v adresároch pre runlevel
3/multiuser, prípadne 5/X.</para>
<para>V dokumentácii k <application>initscripts</application> sa pí¹e: <quote>Ak ulo¾íte popis
rozlo¾enia kláves (pou¾itím <command>dumpkeys</command>) do súboru
<filename>/etc/sysconfig/console/default.kmap</filename>, zavedie sa pri ¹tarte systému e¹te
pred montovaním/kontrolou súborových systémov. To mô¾e by» u¾itoèné, ak potrebujete zada»
heslo roota v prípade problémov. Musí to by» <quote>dumpnutý</quote> popis rozlo¾enia kláves
a nie skopírovaný súbor z <filename class="directory">/usr/lib/kbd/keytables/</filename>,
preto¾e tie èasto e¹te vkladajú iné popisy z tejto adresárovej ¹truktúry.</quote></para>
<para>Po namontovaní súborových systémov, v prípade, ¾e existuje spustiteµný súbor
<filename>/etc/rc.d/init.d/keytable</filename> a adresár
<filename class="directory">/usr/lib/kbd/keymaps/</filename>, vykoná sa príkaz
<screen>
sh# /etc/rc.d/init.d/keytable start
</screen></para>
<para>Tento u¾ zavedie popis rozlo¾enia kláves tak, ako to máte urèené premennými v súbore
<filename>/etc/sysconfig/keyboard</filename>, preto nemusíte vytvára» odkazy v jednotlivých
<filename class="directory">rc[1-5].d/</filename> adresároch.</para>
<para>To, èo sme si hovorili o zmene fontu pri prihlásení nejakého u¾ívateµa na virtuálnej
konzole, sa dá aplikova» aj na rozlo¾enie kláves. Úplne najjednoduch¹ie rie¹enie (ktoré sa
pri prvom odhlásení po¹le do kríkov) je asi takéto:
<variablelist>
<varlistentry>
<term><filename>~/.bash_profile</filename>:</term>
<listitem>
<para>
<programlisting>
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.keymap ]; then
dumpkeys > ~/.keymap
loadkeys gr.map
fi
</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>~/.bash_logout</filename>:</term>
<listitem>
<para>
<programlisting>
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.keymap ]; then
loadkeys ~/.keymap
rm -f ~/.keymap
fi
</programlisting></para>
</listitem>
</varlistentry>
</variablelist></para>
</section> <!-- console-kbd-autoload -->
</section> <!-- console-kbd -->
<section id="console-summary">
<title>Zhrnutie nastavení konzoly</title>
<para>Pokiaµ som sa niekde nesekol, tak minimálne v distribúciách <systemitem
class="osname">RedHat</systemitem> a <systemitem class="osname">Mandrake</systemitem> by po
týchto zmenách mala do pohody za¹lapa» slovenská podpora (fonty + klávesnica).
<variablelist>
<varlistentry>
<term><filename>/etc/sysconfig/i18n</filename>:</term>
<listitem>
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<programlisting>
SYSFONT=lat2a-16
</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<programlisting>
SYSFONT=lat2u-16
SYSFONTACM=iso02
</programlisting></para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/sysconfig/keyboard</filename>:</term>
<listitem>
<para>
<programlisting>
KEYTABLE=sk-qwertz
KBCHARSET=iso-8859-2
</programlisting></para>
</listitem>
</varlistentry>
</variablelist></para>
<para>Tie¾, ak zadávate rootovské heslo s pou¾itím iného rozlo¾enia kláves ako je ¹tandardné
(<computeroutput>us</computeroutput>), vlo¾te si jeho popis do súboru
<filename>/etc/sysconfig/console/default.kmap</filename>. Pozor, nesmiete len tak skopírova»
súbor, alebo vytvori» link! Ak chcete pou¾i» naprí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ý font a klávesnicu len jednorazovo, tieto príkazy by to mali
doká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ä» na ¹tandardné nastavenia:
<variablelist>
<varlistentry>
<term><application>kbd</application>:</term>
<listitem>
<para>
<screen>
sh$ setfont
sh$ loadkeys -d
</screen></para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>console-tools</application>:</term>
<listitem>
<para>
<screen>
sh$ consolechars -d
sh$ loadkeys -d
</screen></para>
</listitem>
</varlistentry>
</variablelist></para>
</section> <!-- console-summary -->
</section> <!-- console -->

View File

@ -0,0 +1,230 @@
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<section id="gettext">
<title id="gettext.title">Prekladanie aplikácií do slovenčiny</title>
<para>V podaktorých operačných systémoch sa to robí tak, že výrobca si v každej krajine objedná
firmu, ktorá preloží hlášky priamo v zdrojovom kóde a nanovo ho skompiluje. Výhodou je, že
preklad je draho zaplatený a teda poväčšinou profesionálny, konzultovaný s linguistami a inými
istami. Horšie je, že občas sa niekto so zdrojákmi hrá viac ako je nutné (alebo nechtiac preloží
kúsok z nich) a potom národné verzie majú iné vlastnosti (a padavosť) ako verzia pôvodná.
Navyše, ak sa pritrafí nejaká chybička prekladu, oprava nehrozí do najbližšej major
verzie.</para>
<para>V <acronym>GNU</acronym> operačných systémoch sa to robí tak, že výrobca napíše aplikáciu,
pričom na začiatok pridá desať riadkov kódu a každú hlášku uzavrie do makra. Potom to
skompiluje, jedným príkazom vytvorí súbor so všetkými hláškami v programe a celé to vypustí.
Ktokoľvek -- od Eskimáka s laptopom v iglu, cez Slováka s 386 v garzónke, až po arabského emira
s dvojprocesorovou Alphou v desaťposchodovom paláci -- potom jednoducho preloží reťazce v
spomínanom súbore, spustí jeden príkaz a má danú aplikáciu pripravenú pre svoj jazyk. Nastaví
premennú, spustí pôvodnú binárku -- tú istú, ktorá predtým bežala po anglicky -- a už je
doma!</para>
<para>Neviem, ktorý postup sa vám páči viac, ale ak nechcete naštvať nejakého Albánca alebo
nebodaj Kolumbijčana, používajte v Linuxe ten druhý.</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ý tak uľahčuje úpravu aplikácií pre krajiny, kde sa nehovorí po anglicky. Na
niektorých systémoch ju nájdete ako samostatnú knižnicu (libintl.a), na iných je priamo
súčasťou štandardnej knižnice jazyka <acronym>C</acronym>. Obsahuje zo desať funkcií, z
ktorých sa používajú asi tak dve. To je však dôležité len pre programátorov, ktorý pri návrhu
a tvorbe softvéru nesmú zabudnúť používať tieto funkcie.</para>
<para>Pre prekladateľa sú dôležitejšie programy, ktoré sa nachádzajú v balíku gettext. Je to
niekoľko nástrojov, pomocou ktorých možno prevádzať <acronym>PO</acronym> súbory na súbory
<acronym>MO</acronym> a naopak, spájať <acronym>PO</acronym> súbory, atď. Keď je aplikácia
napísaná s použitím funkcií knižnice gettext a používa ich sprá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ácie s podporou pre gettext</title>
<para>V ďalších kapitolách budeme používať nasledovný príklad zdrojového kódu v jazyku
<acronym>C</acronym>.</para>
<programlisting>
#include &lt;stdlib.h>
#include &lt;string.h>
#include &lt;stdio.h>
#include &lt;time.h>
int main(int argc, char **argv)
{
int i;
char *suffix;
time_t curtime;
if (argc > 2)
suffix = "s";
else
suffix = "";
printf("Got %d argument%s.\n", argc - 1, suffix);
if (argc > 1) {
puts("List of arguments:");
for (i = 1; i < argc; i++) {
if (i == 1)
suffix = "st";
else if (i == 2)
suffix = "nd";
else if (i == 3)
suffix = "rd";
else
suffix = "th";
printf("\t%d%s %s\n", i, suffix, argv[i]);
}
}
curtime = time(NULL);
printf("Exiting at: %s", ctime(&amp;curtime));
return EXIT_SUCCESS;
}
</programlisting>
<section id="gettext.writing.setlocale">
<title>Funkcia <function>setlocale()</function></title>
<para>Aby funkcie z knižnice <application>gettext</application>, aký preklad majú hľadať, teda
akú hodnotu má premenná <envar>LC_MESSAGES</envar>, musíme na začiatku programu zavolať
funkciu <function>setlocale()</function>.</para>
<para>Syntax funkcie <function>setlocale()</function> je nasledovný:
<funcsynopsis>
<funcprototype>
<funcdef>char *<function>setlocale</function></funcdef>
<paramdef>int <parameter>category</parameter></paramdef>
<paramdef>const char *<parameter>locale</parameter></paramdef>
</funcprototype>
</funcsynopsis></para>
<para>Všetko, čo o tejto funkcii potrebujete vedieť, nájdete v jej manuálovej stránke. Pre
potreby tohto dokumentu si povieme len toľko, že prakticky každý (rozumný) program obsahuje
niekde na začiatku riadok.
<programlisting>
setlocale(LC_ALL, NULL);
</programlisting></para>
<para>Takto postavená funkcia nastaví miestne nastavenia programu podľa premenných
<envar>LC_*</envar>. Funkcie knižnice <application>gettext</application> sa potom tejto
istej funkcie opýtajú:
<programlisting>
ext = setlocale(LC_MESSAGES, NULL);
</programlisting>
a dostanú odpoveď typu <computeroutput>sk_SK.ISO-8859-2</computeroutput>. V tom prípade sa
budú hľadať súbory s preloženými hláškami v adresároch
<simplelist>
<member>
<filename class="directory">/usr/share/locale/sk_SK.ISO-8859-2/LC_MESSAGES/</filename>
</member>
<member>
<filename class="directory">/usr/share/locale/sk_SK/LC_MESSAGES/</filename>
</member>
<member>
<filename class="directory">/usr/share/locale/sk/LC_MESSAGES/</filename>
</member>
</simplelist>
pričom časť <filename class="directory">/usr/share/locale/</filename> sa dá zmeniť (o tom
potom).</para>
<para>V ktorom z týchto adresárov (v tomto poradí) nájde súbor so svojimi hláš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ár stačiť nebude. Potrebujeme určiť aj meno súboru, v ktorom sa hlášky
nachádzajú. Na to slúži funkcia <function>textdomain()</function>. Jej syntax je:
<funcsynopsis>
<funcprototype>
<funcdef>char *<function>textdomain</function></funcdef>
<paramdef>const char *<parameter>domainname</parameter></paramdef>
</funcprototype>
</funcsynopsis></para>
<para>Argument <parameter>domainname</parameter> udáva meno takzvanej
<emphasis>domény</emphasis> programu. Kedykoľvek nastane požiadavka na preložený reťazec,
tento sa bude hľadať v súbore <filename>domainname.mo</filename> v niektorom zo spomínaných
adresárov.</para>
<para>Doplňme si teda do nášho programu všetko, čo je potrebné na to, aby vedel, v ktorom
adresári a konkrétne v ktorom súbore sa majú hľadať preložené hlášky.</para>
<informalexample>
<programlisting>
#include &lt;stdlib.h>
#include &lt;string.h>
#include &lt;stdio.h>
#include &lt;time.h>
#include &lt;libintl.h> // hlavičkový súbor knižnice gettext
#include &lt;locale.h> // setlocale()
int main(int argc, char **argv)
{
int i;
char *suffix;
time_t curtime;
setlocale(LC_ALL, NULL); // nastaví informácie o miestnych nastaveniach
textdomain("example"); // nastaví "doménu" programu
if (argc > 2)
suffix = "s";
else
...
return EXIT_SUCCESS;
}
</programlisting>
</informalexample>
</section> <!-- gettext.writing.domainname -->
<section>
<title>Funkcia <function>gettext()</function></title>
<para>Aj keď už vieme, v ktorom súbore nájdeme preložené hlásenia programu, samé od seba sa
za behu nedoplnia. Navyše, mali by sme určiť, ktoré presne hlášky chceme mať preložené.
Napríklad, debugovacie informácie určené len pre programátorov sa zväčša neprekladajú.
Formátovacie reťazce pre printf, ktoré neobsahujú text na preloženie, tiež nie je nutné
ukazovať prekladateľovi.</para>
<para>Ktoré reťazce majú byť dostupné prekladateľom na preklad, o tom rozhoduje programátor.
Samozrejme, niekedy na niečo pozabudne a často sa stáva, že prekladatelia sa musia stať na
chvíľu progamátormi, aby bol daný program "preložiteľný" do ich jazyka.</para>
</section> <!-- gettext.writing.gettext -->
</section> <!-- gettext.writing -->
<section>
<title>Formát PO súboru</title>
<para></para>
</section>
<section>
<title>Komentáre</title>
<para></para>
</section>
<section>
<title>PO Template</title>
<para></para>
</section>
<section>
<title>Vytváranie POT súboru</title>
<para></para>
</section>
</section>

View File

@ -0,0 +1,72 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!ENTITY % skhowto.draft "IGNORE">
<!ENTITY skhowto.intro SYSTEM "intro.sgml">
<!ENTITY skhowto.locales SYSTEM "locales.sgml">
<!ENTITY skhowto.console SYSTEM "console.sgml">
<!ENTITY skhowto.xwindow SYSTEM "xwindow.sgml">
<!ENTITY skhowto.kernel SYSTEM "kernel.sgml">
<!ENTITY skhowto.unicode SYSTEM "unicode.sgml">
<!ENTITY skhowto.gettext SYSTEM "gettext.sgml">
<!ENTITY skhowto.apps SYSTEM "apps.sgml">
<!ENTITY skhowto.tricks SYSTEM "tricks.sgml">
]>
<article id="index" lang="sk">
<articleinfo>
<title>Slovak-HOWTO</title>
<authorgroup>
<author>
<firstname>Ján</firstname><othername>'judas'</othername><surname>Tomka</surname>
</author>
</authorgroup>
<releaseinfo>verzia 4 (Blanka)</releaseinfo>
<pubdate>5. február 2002</pubdate>
<keywordset>
<keyword>Slovakia</keyword> <keyword>Slovensko</keyword> <keyword>slovenèina</keyword>
<keyword>keyboard</keyword> <keyword>klávesnica</keyword> <keyword>kbd</keyword>
<keyword>font</keyword> <keyword>písmo</keyword> <keyword>console</keyword>
<keyword>konzola</keyword> <keyword>GNU</keyword> <keyword>Linux</keyword>
</keywordset>
<abstract>
<para>Tento dokument poskytuje informácie týkajúce sa problematiky miestnych nastavení v
prostredí operaèných systémov GNU/Linux s ohµadom na potreby slovenského u¾ívateµa.</para>
</abstract>
</articleinfo>
&skhowto.intro;
&skhowto.locales;
&skhowto.console;
&skhowto.xwindow;
&skhowto.kernel;
<![%skhowto.draft;[
&skhowto.unicode;
]]>
<![%skhowto.draft;[
&skhowto.gettext;
]]>
&skhowto.apps;
&skhowto.tricks;
</article>
<!--
pou¾ité kódové mená:
Klotilda, ?, Malvína, Bla/nka
kódové mená ïal¹ích verzií:
Justína, Matilda, Hermína, ®ofia, Gizela, Gertrúda, ®elmíra, Sidónia, Lujza, Jozefína, Anabela,
Rozália, Eugénia, Hortenzia, Ur¹uµa, Aurélia, Agnesa, Filoména, *** Mária Jana ***
-->

View File

@ -0,0 +1,107 @@
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<section id="intro">
<title>Úvodné informácie</title>
<section id="intro-licence">
<title>Licencia</title>
<para>Áno, mô¾ete èíta» tento súbor, a to aj na komerèné uèely!</para>
<para>Autori nenesú zodpovednos» za materiálnu èi psychickú ujmu spôsobenú èitateµovi, jeho
rodinným príslu¹níkom, domácim a hospodárskym zvieratám, prípadne poèítaèovému
zariadeniu.</para>
<para>Toto je <quote>free</quote> dokument --- mô¾ete ho ¹íri» a/alebo modifikova» v súlade s
podmienkami licencie GNU Free Documentation Licence, ktorej znenie nájdete na adrese <ulink
url="http://www.gnu.org/copyleft">http://www.gnu.org/copyleft</ulink>.</para>
<para>Autorom pôvodného Slovak-HOWTO je Ján Ondrej (SAL). Tento dokument z neho obsahuje: názov
a návody pre Joe, MC a Sambu. V¹etko bolo ukradnuté so súhlasom autora.</para>
</section> <!-- intro-licence -->
<section id="intro-contrib">
<title>Aktuálna verzia a prispievanie</title>
<para>Ak nájdete v tomto súbore nieèo, èo je nezlúèiteµné s va¹im linuxovým presvedèením,
napí¹te najskôr do diskusie linux, potom sk-i18n, dajte príspevok na www.linux.sk a
poohovárajte ma na &num;sklug. V prípade, ¾e vás to neprejde, skontrolujte, èi máte aktuálnu
verziu a, samozrejme, a¾ nakoniec, dajte mi vedie». Adresy sú:
<itemizedlist>
<listitem>
<simpara>Aktuálna verzia <ulink url="http://slovencina.linux.sk/howto/">
http://slovencina.linux.sk/howto</ulink></simpara>
</listitem>
<listitem>
<simpara>Priania a s»a¾nosti <ulink url="mailto:judas@linux.sk">judas@linux.sk</ulink>
</simpara>
</listitem>
</itemizedlist>
</para>
<para>Na tieto adresy sa tie¾ obracajte, ak máte nieèo, èo by nemalo chýba» v Slovak-HOWTO.
</para>
<para>Nadácia Pomô¾ a skonaj prispela na dopísanie èasti o klávesnici v iXoch sama sebe èiastkou
500&nbsp;000,-&nbsp;Sk, v televízii Pomô¾ a skonaj i v rovnomennom èasopise boli zverejnené
inzeráty, politická strana <acronym>PAS</acronym> sa sna¾í o konsenzus v tejto otázke a v¹etci
pijú minerálku <productname>Pomô¾ a skonaj</productname>. Tigre, nosoro¾ce a lúène koníky boli
pokrstené, a predsa sa s kapitolou o klávesnici v iXoch niè nedeje. Mimochodom, sme
najèítanej¹ie Slovak-HOWTO na svete!</para>
<para>Pri prispievaní sa skúste riadi» týmito pravidlami:
<itemizedlist>
<listitem>
<simpara>Opravy robte v¾dy v sgml formáte (DTD linuxdoc), ktorý je primárnym formátom
pri tvorbe tohto dokumentu. Je tie¾ mo¾né posiela» èistý text, ale opravy vo formáte
<filename>.ps.gz</filename> rad¹ej nechajte tak... Príspevky pí¹te, pokiaµ mo¾no, s
diakritikou (norma iso-8859-2). To aj v prípade, ¾e meníte verziu bez
diakritiky.</simpara>
</listitem>
<listitem>
<simpara>Ak je to nieèo väè¹ie, dajte mi najskôr vedie», èo chystáte, preto¾e je mo¾né,
¾e u¾ na tom niekto maká a teda buï na to zabudnete, alebo to skúsite dorobi» s danou
osobou. (Vzhµadom na to, ¾e zatiaµ sa do tohto dokumentu dostalo asi 20 riadkov
cudzieho textu, zdá sa mi predchádzajúca veta maximálne smie¹na. Ha-ha, zasmial som
sa...)</simpara>
</listitem>
<listitem>
<simpara>Va¹e meno a adresa budú automaticky zverejnené spolu s va¹im príspevkom. Ak si
to ne¾eláte, musíte o to výslovne po¾iada». Takisto, autor príspevku u¾ jeho zaslaním
implicitne súhlasí s aplikáciou licencie tohto dokumentu na èas», ktorej je
autorom.</simpara>
</listitem>
<listitem>
<simpara>V Czech-HOWTO sa hovorí: <quote>Kdy¾ u¾ nìkdo podobný dokument ète, dìlá to z
nutnosti a ne pro své pobavení.</quote> No hej, ale Èesi jedia aj olomoucké syreèky...
</simpara>
</listitem>
</itemizedlist></para>
</section> <!-- intro-contrib -->
<section id="intro-authors">
<title>Osoby a obsadenie</title>
<para>Mená autorov návodov na lokalizáciu konkrétnych aplikácií sa nachádzajú priamo v kapitole
<xref linkend="apps" endterm="apps.title">, prípadne <xref linkend="tricks"
endterm="tricks.title">.</para>
<itemizedlist>
<listitem>
<simpara><author><firstname>Ján</firstname><othername>'judas'</othername>
<surname>Tomka</surname></author> -- Zodpovedný vedúci.</simpara>
</listitem>
<listitem>
<simpara><author><firstname>¥ubomír</firstname><othername>'salo'</othername>
<surname>Sedláèik</surname></author> -- ksh/csh/tcsh, grammar bugfixes.</simpara>
</listitem>
</itemizedlist>
</section> <!-- intro-authors -->
</section> <!-- intro -->

View File

@ -0,0 +1,47 @@
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<section id="kernel">
<title>Slovenèina a linuxový kernel</title>
<section id="kernel-kmap">
<title>Kompilácia kernelu so slovenskou klávesnicou</title>
<para>Je veµmi jednoduché zmeni» rozlo¾enie kláves, s ktorým bude jadro vá¹ho operaèného systému
skompilované. Ak pou¾ijete program loadkeys s voµbou príkazového riadku
<computeroutput>--mktable &lt;keymapfile></computeroutput>, tento vám vygeneruje
<quote>zdrojový kód</quote> súboru <filename>&lt;keymapfile></filename>. Ten ulo¾te do súboru
<filename>drivers/char/defkeymap.c</filename> v adresárovej ¹truktúre zdrojového kódu Linuxu.
<screen>
sh# cd /usr/src/linux
sh# loadkeys --mktable sk-qwerty > drivers/char/defkeymap.c
</screen></para>
<para>Toto je akási náhrada za <filename>/etc/sysconfig/console/default.kmap</filename> s tým
rozdielom, ¾e va¹e rozlo¾enie bude zavedené u¾ od úplného ¹tartu systému. Tak¾e v prípade
problémov s initscriptami (alebo ¹tarte zo záchrannej diskety) budete ma» zavedené svoje
rozlo¾enie v ka¾dom prípade. Pozor, nekompilujte si kernel so slovenským rozlo¾ením len preto,
¾e ¾ijete na Slovensku! Na to slú¾i príkaz <command>loadkeys</command>. Pou¾ite toto rie¹enie,
len ak bezpodmieneène potrebujete slovenské rozlo¾enie pri zadávaní rootovho hesla alebo tak
podobne.</para>
</section> <!-- kernel-kmap -->
<section id="kernel-fat">
<title>Diakritika v názvoch súborov na fat partíciách</title>
<para>Ak chcete pristupova» spod Linuxu na fat/vfat a ma» prípadnú diakritiku v názvoch súborov
na takýchto partíciách, pri konfigurácii kernelu (pred kompilovaním) zvoµte tieto nastavenia v
èasti <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 mountovaní fat/vfat mô¾ete potom uvies» voµbu
<computeroutput>codepage=852</computeroutput>.</para>
<para>Voµba <computeroutput>codepage</computeroutput> nastavuje kódovú stránku pre prevod znakov
krátkych mien na súborových systémoch <acronym>FAT</acronym> a <acronym>VFAT</acronym>.
Implicitne má codepage hodnotu 437.</para>
</section> <!-- kernel-fat -->
</section> <!-- kernel -->

View File

@ -0,0 +1,534 @@
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<section id="locales">
<title id="locales.title">Miestne nastavenia</title>
<section>
<title>Princípy miestnych nastavení</title>
<para>Podpora miestnych nastavení je dnes mimoriadne doležitým faktorom, ktorý charakterizuje
jednotlivé operačné systémy. Časy, keď boli ľudia štastní, že to niečo píše, sú nenávratne
preč a používatelia vyžadujú podporu svojich miestnych nastavení. V GNU systémoch je táto
podpora implementovaná priamo do štandardnej knižnice jazyka C -- GNU libc. Táto podpora je
navrhnutá tak, aby zohľadňovala všetky požiadavky kladené na nastavenia pre akúkoľvek krajinu
a akýkoľvek jazyk.</para>
<section>
<title>Ciele a prostriedky</title>
<para> Rôzne krajiny a kultúry majú odlišné pravidlá komunikácie. Tieto pravidlá môžu byť
malého rozsahu, napr. formát dátumu a času, až po veľmi koplexné ako je jazyk, ktorým
hovoria.</para>
<para>Internacionalizácia softvéru znamená programovať ho tak, aby bol schopný pracovať s
použivateľovými miestnymi nastaveniami. V ISO C pracuje internacionalizácia v zmysle
locales. Každé locale (miestne nastavenia) špecifikuje skupinu pravidiel, jedno pravidlo pre
každý učel. Užívateľ si zvolí skupinu pravidiel špecifikovaním locale (pomocou systémových
premenných).</para>
<para>Všetky programy dedia nastavené locale v rámci ich prostredia. Pod podmienkou, že
programy sú napísané tak, že akceptujú nastavené locales, môžu sa riadiť pravidlami, ktoré
uprednostňuje používateľ.</para>
</section>
<section>
<title>Kategórie a ich funkcie</title>
<para> Táto časť popisuje jednotlivé premenné, ktoré ovplyvňujú miestne nastavenia a ktorými
sa riadia aj funkcie knižnice glibc.</para>
<para>Nastavenie premennej prostredia sa robí pomocou príkazu shellu
<screen>
bash$ export LC_PREMENNA=sk
tcsh$ setenv LC_PREMENNA sk
</screen></para>
<para><envar>LC_PREMENNA</envar> je jedna z nasledujúcich:
<itemizedlist>
<listitem>
<para><envar>LC_COLLATE</envar> --- Triedenie reťazcov. Nastavením tejto premennej
možno prinútiť aplikácie, napr. sort, ls a iné, aby pri porovnávaní reťazcov brali do
úvahy miestne rozloženie jednotlivých písmen v abecede. Slovenčina má napríklad hneď
niekoľko znakov, ktoré by pri triedení podľa číselnej hodnoty znaku spôsobovali
problémy. Slovenské nastavenia triedenia povedia funkciam strcoll a strxfrm, že
napríklad ch je jedno písmeno a nasleduje hneď za h a nie za c, že široké a nasleduje
za dlhým `a' a to zase za obyčajným `a'. Skúste si to na príkaze sort. Zadajte
písmená cc, ch, hh, potom zmeňte <envar>LC_COLLATE</envar> príkazom
<screen>
bash$ export LC_COLLATE=sk
tcsh$ setenv LC_COLLATE sk
</screen></para>
<para>Skúste to so sort znovu a porovnajte výsledok...</para>
</listitem>
<listitem>
<para><envar>LC_CTYPE</envar> --- Klasifikácia a prevod znakov, multibyte. Správne
nastavenie tejto premennej je nutné pre korektné rozlišovanie znakov abecedy
jednotlivých jazykov, určenie číslic, tzv. bielych znakov, prevod malých písmen na
veľké, atď. Najvhodnejšie je túto premennú nenastavovať a tým umožniť, aby bola jej
hodnota prebratá od premenných <envar>LC_ALL</envar> alebo <envar>LANG</envar>
(viď ďalej). Ak ale nechcete používať slovenské nastavenia, len mať správne zobrazené
slovenské fonty a funkčnú slovenskú klávesnicu na konzole aj pod iXami, nastavte iba
túto premennú.</para>
<warning>
<title>HEJ!</title>
<simpara>Ja to ešte raz zopakujem! Vždy si buďte stopercentne istí, že máte túto
premennú nastavenú (buď cez <envar>LC_ALL</envar>, <envar>LANG</envar> alebo
priamo), lebo inak nemá zmysel čítať ďalej! Ono <quote>klasifikácia a prevod
znakov</quote> neznie nijako lákavo, ale vedzte, že je to sakramentsky dôležité
pre život slovenský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át peňažných a
číselných hodnôt. Umožňuje meniť skupinu nastavení, ktoré sa použijú pri formátovaní
peňažných hodnôt alebo všetkých ostatných číselných hodnôt. Sú to desatinná čiarka,
oddeľovač tisícov, zoskupovanie číslic, znamienka pre kladné a zaporné hodnoty,
atď.</para>
</listitem>
<listitem>
<para><envar>LC_TIME</envar> --- Formátovanie dátumu a času. Nastavenia oddeľovačov
medzi hodinami, minútami a sekundami, názvy dní, poradie rok, mesiac a deň v dátume,
...</para>
</listitem>
<listitem>
<para><envar>LC_MESSAGES</envar> --- Výber jazyka, použitého užívateľským rozhraním na
preklad hlášok programov. Toto je presne tá premenná, ktorá prinúti aplikácie hovoriť
po slovensky. Viď ďalšie kapitoly.</para>
</listitem>
</itemizedlist>
</para>
<para>S prekladom hlásení programov, hlavne s umiestnením súborov s preloženými reťazcami,
súvisí premenná <envar>NLSPATH</envar>. Mala by obsahovať dvojbodkami oddelený zoznam
adresárov, v ktorých sa budú hľadať <filename>.mo</filename> súbory pre miestne nastavenia
dané premennou <envar>LC_MESSAGES</envar>. Premennú <envar>NLSPATH</envar> je však
potrebné nastavovať len vo výnimočných prípadoch, pretože aplikácie hľadajú preklady svojich
hlásení v štandardných adresároch pre tieto súbory.</para>
<para>Okrem týchto premenných bolo implementovaných niekoľko ďalších, ktoré zatiaľ nie sú
zdokumentované (libc.info alebo locale(1,5,7)). Ich význam je zrejmý z názvu, takže uvediem
aj svoju dedukciu.</para>
<itemizedlist>
<listitem>
<simpara><envar>LC_PAPER</envar> --- Formát papiera. V našich zemepisných šírkach sa
napríklad používa formát A4, v Amerike je to Letter, atď. Pozor, táto premenná
neobsahuje priamo názov formátu, ale (tak, ako všetky <envar>LC_</envar> premenné),
skratku miestneho nastavenia, teda u nás to bude "sk". Ak by sme chceli používať formát
Letter, museli by sme túto premennú nastaviť na kód miestneho nastavenia niektorej z
krajín, ktorá používa takýto formát, napríklad "us". V tomto prípade je nutné
nainštalovať balík s miestnymi nastaveniami pre túto krajinu (locales-us).</simpara>
</listitem>
<listitem>
<simpara><envar>LC_NAME</envar> --- Formát mena a priezviska. U nás má každý dve mená,
píšu sa v poradí meno, priezvisko. V Rusku majú zase tri mená v poradí meno,
otcovo-meno, priezvisko. V Maďarsku majú dve mená tak ako u nás, ale píšu sa v opačnom
poradí. O tom je táto premenná. Asi...</simpara>
</listitem>
<listitem>
<simpara><envar>LC_ADDRESS</envar> --- Spôsob zápisu adresy. Poradie ulice a popisného
čísla domu, ZIP kód, PSČ apod.</simpara>
</listitem>
<listitem>
<simpara><envar>LC_TELEPHONE</envar> --- Formát telefónnych a faxových čísel. Určuje
zoskupovanie číslic, ich oddelovanie, počet čísel predvoľby, ...</simpara>
</listitem>
<listitem>
<simpara><envar>LC_MEASUREMENT</envar> --- Miery. Jednotky hmotnosti, objemu, teploty a
dĺžky, používané v tej ktorej krajine. Program napísaný v USA bude pravdepodobne počítať
s galónmi vody, ale ak je správne napísaný, s premennou <envar>LC_MEASUREMENT</envar>
nastavenou na <quote>sk</quote> bude zobrazovať litre v správnom pomere. To isté platí
napríklad pre prevod teploty vo Fahrenheitovej stupnici na stupne Celsia.</simpara>
</listitem>
<listitem>
<simpara><envar>LC_IDENTIFICATION</envar> --- Az apád, tak toto neviem. Rodné číslo?
Číslo sociálneho poistenia? Číslo topánok?</simpara>
</listitem>
</itemizedlist>
</section>
<section>
<title>Ďalšie premenné</title>
<itemizedlist>
<listitem>
<simpara><envar>LC_ALL</envar> --- Ak je táto premenná nastavená, použije sa jej hodnota
pre všetky vyššie spomenuté premenné, bez ohľadu na ich hodnotu.</simpara>
</listitem>
<listitem>
<simpara><envar>LANG</envar> --- Nastavenie tejto premennej sa použije len pre tie
premenné, ktoré nemajú priradenú žiadnu hodnotu.</simpara>
</listitem>
<listitem>
<simpara><envar>LANGUAGE</envar> --- Alternatívne miestne nastavenia. Táto premenná môže
obsahovať usporiadaný zoznam kódov miestnych nastavení oddelených dvojbodkami. Súbory s
prekladmi hlášok programov sa budú hľadať v poradí, v akom sú určené v tomto zozname. Ak
sa nepodarí nájsť súbor s preloženými hláškami programu v jednom jazyku, použije sa
súbor pre nasledujúci jazyk v zozname <envar>LANGUAGE</envar>. Navyše, ak sa súbor pre
prvý jazyk aj nájde, ale niektorý reťazec z neho nie je preložený, nepoužije sa pôvodný
(anglický), ale najskôr sa pokúsi nájsť preklad daného reťazca v súbore pre ďalší jazyk
v zozname <envar>LANGUAGE</envar>. To je maximálne výhodné pre ľudí, ktorí okrem svojho
jazyka ovládajú nejaký iný lepšie ako angličtinu, v ktorej sú zvyčajne programy
originálne napísané. Napríklad Slovák by mohol mať nastavené
<computeroutput>LANGUAGE="sk:cz"</computeroutput> a Szolvák z juhu zase
<computeroutput>LANGUAGE="hu:sk"</computeroutput>.</simpara>
<caution>
<title>Bacha!</title>
<simpara>Premenná <envar>LANGUAGE</envar> ovplyvňuje len premennú
<envar>LC_MESSAGES</envar>, preto je pre správnu funkciu nutné nastaviť aj ostatné
premenné (minimálne <envar>LC_CTYPE</envar>).</simpara>
</caution>
</listitem>
<listitem>
<para><envar>LINGUAS</envar> --- Táto premenná nemá špeciálny význam z hľadiska GNU libc,
ale zvykne sa používať pri inštalácii programov (zo zdrojákov). Medzerami oddelený
zoznam kódov miestnych nastavení určuje jazyky, pre ktoré si užívateľ želá inštalovať
preklady reťazcov aplikácie. Príklad:
<screen>
bash$ export LINGUAS="sk cz"
bash$ ./configure
bash$ make install
</screen></para>
<simpara>Tieto príkazy skompilujú a nainštalujú aplikáciu s podporou slovenčiny a češtiny.
Inštalačné skripty obvykle tiež kontrolujú obsah premenných <envar>LANG</envar> a
<envar>LC_ALL</envar>, tieto ale môžu obsahovať len jeden kód miestnych
nastavení.</simpara>
</listitem>
<listitem>
<para><envar>RPM_INSTALL_LANG</envar> --- Častejšie ako zo zdrojového kódu sa aplikácie
inštalujú z rôznych balíkov (rpm, deb, ...). Kvôli šetreniu miestom na disku (a logike
-- málokto ovláda tridsať rečí) je v RPM4 možné určiť jazyk, ktorého preložené hlášky sa
budú inštalovať. Preto odporúčam do súboru <filename>.bash_profile</filename>
(<filename>.login</filename>) užívateľa, ktorý inštaluje balíky (root), vložiť
nasledovný riadok:
<screen>
bash$ export RPM_INSTALL_LANG=sk
tcsh$ setenv RPM_INSTALL_LANG "sk"
</screen></para>
<simpara>Ak sa vám nebodaj stane taká vec, že nainštalujete celý operačný systém a až
potom sa dozviete o tejto premennej (tak, ako sa to stalo aj mne), skúste skript uvedený
v časti <xref linkend="apps-rpm4">.</simpara>
</listitem>
</itemizedlist>
</section>
<section>
<title>Priorita premenných</title>
<para>Miestne nastavenia sa určujú zo spomenutých premenných, pričom tieto sa vyhodnocujú v
tomto poradí:
<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á asi toľko, že keď raz nastavíte <envar>LC_ALL</envar>, jednotlivé
premenné <envar>LC_*</envar> sa už neberú do úvahy. Na druhej strane, ak máte
napríklad nastavené len niektoré z <envar>LC_*</envar>, ostatné sa nastavia na hodnotu
premennej <envar>LANG</envar>.</para>
</section>
<section>
<title>Kódy miestnych nastavení</title>
<para>Premenné, ktoré ovplyvňujú miestne nastavenia, sa napĺňajú kódmi miestnych nastavení.
Kódy miestnych nastavení sú reťazce, ktorých formát sa riadi niekoľkými pravidlami.
Všeobecný tvar je:
<synopsis>
jazyk[_územie[.kódovanie]][@modifiká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, územie je
<constant>SK</constant> pre Slovensko, <constant>CZ</constant> pre Českú republiku,
<constant>HU</constant> pre Maďarsko, kódovanie je <constant>ISO-8859-2</constant> pre
všetky stredoeurópske jazyky (je možne použiť niekoľko formátov na zadanie kódovania) a
modifikátor služi na povolenie alebo zakázanie niektorých funkcií. Tie sú dané v definíciach
miestnych nastavení. Napríklad, pre Veľkú Britániu je modifikátorom reťazec
<constant>euro</constant> a pri jeho použití sa ako peňažná mena bude používať euro namiesto
libry. To znamená, že sa musí použiť kódovanie <constant>iso-8859-15</constant>, ktoré
definuje znaky euro a cent.</para>
<para>Príklady kódov miestnych nastavení (každý z týchto reťazcov je možné priradiť premenným
miestnych nastavení, ale najčastejšie sa používajú len dvojpísmenkové skratky v poslednom
stĺpci):
<table>
<title>Príklady kódov miestnych nastavení</title>
<tgroup cols="4" align="left" colsep="1" rowsep="1">
<tbody>
<row>
<entry>sk_SK.ISO-8859-2</entry>
<entry>sk_SK</entry>
<entry></entry>
<entry>sk</entry>
</row>
<row>
<entry>cs_CZ.ISO-8859-2</entry>
<entry>cs_CZ@-ch</entry>
<entry>cs@-ch</entry>
<entry>cs</entry>
</row>
<row>
<entry>en_GB.iso8859</entry>
<entry>en_GB</entry>
<entry>en@euro</entry>
<entry>en</entry>
</row>
<row>
<entry>ja_JP.ujis</entry>
<entry>ja_JP.EUC</entry>
<entry>ja_JP</entry>
<entry>ja</entry>
</row>
</tbody>
</tgroup>
</table></para>
<para>Nemali by sme zabudnúť na dve štandardné locales, ktoré sa použijú, ak nie sú systémové
premenné nastavené a programy ich používajú do doby, kým sa inicializuje lokalizácia.
Tvrdím, že sa použijú obe, pretože momentálne sú totožné, ale v budúcnosti sa môžu v tejto
oblasti štandardy ISO C a POSIX odlišovať a potom to bude záležať na konfigurácii systému.
<simplelist>
<member><constant>C</constant> --- nastavenia podľa štandardu ISO C.</member>
<member><constant>POSIX</constant> --- nastavenia podľa štandardu POSIX. 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ík s podporou miestnych nastavení, ktorý má názov
<application>locales</application> a tiež balík s podporou priamo pre Slovensko ---
<application>locales-sk</application>. Ak máte záujem používať aj podporu pre nejaký iný jazyk
(na našom území je aktuálna najmä čeština a maďarčina), musíte tiež nainštalovať balíky pre
tieto jazyky.</para>
<para>V druhom rade si musíte nainštalovať balíky s podporou miestnych nastavení 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íky <application>locales</application> a
<application>locales-sk</application>. Takisto, pre každý jazyk, ktorý sa chystáte používať,
si nainštalujte balík s podporou miestnych nastavení.</para>
<para>V prípade problémov s miestnymi nastaveniami sa držte predchádzajúcich troch krokov. Bez
týchto balíkov vám to totiž šlapať nebude!!!</para>
<section>
<title>Súbory s miestnymi nastaveniami</title>
<para>Prejdime sa teraz trochu po našich adresároch. Prvý navštívime <filename
class="directory">/usr/share/locale/sk</filename>. Na prvý pohľad vidno, že adresár a
súbory v tomto adresári majú mená totožné s premennými, o ktorých sme si hovorili. Je to
preto, lebo práve z týchto súborov sa načítajú nastavenia, keď je daná premenná nastavená na
hodnotu <constant>sk</constant>. Okrem nich tu môže byť ešte súbor
<filename>charset</filename>, ktorý obsahuje len jeden riadok s reťazcom
<computeroutput>iso-8859-2</computeroutput>. Ten hovorí, aké kódovanie znakov sa má použiť
pre dané miestne nastavenia.</para>
<para>Všetky súbory v tomto adresári sú binárne dáta a adresár <envar>LC_MESSAGES</envar>
obsahuje súbory, ktorých mená sú mená niektorých balíkov nainštalovaných na vašom systéme, s
príponou mo. Sú to preklady reťazcov z jednotlivých aplikácií. O nich si povieme neskôr.
Teraz by sme mohli zistiť, čo vlastne obsahujú súbory <envar>LC_*</envar>.</para>
<para>Presuňme sa do adresára <filename class="directory">/usr/share/i18n/</filename>. Tu, v
textovom súbore <filename>sk_SK</filename> v podadresári <filename
class="directory">locales/</filename> sa konečne nachádzajú slovenské miestne nastavenia v
čitateľnej (a editovateľnej) forme. Súbory v tomto adresári majú presne danú štruktúru,
ktorá je popísaná v manuálovej stránke locale(5). Pre bežného používateľa nemá zmysel meniť
nastavenia v tomto súbore, keďže ide o štandardné nastavenia, ktoré sa používajú na celom
Slovensku. Ale, proti Gustovi žiadna putika! Ak sa teda rozhodnete zmeniť niečo v tomto
súbore, musíte aktualizovať súbory v prvom spomínanom adresári <filename
class="directory">/usr/share/locales/sk/</filename> príkazom, ktorý údaje v súbore
<filename>sk_SK</filename> skompiluje a uloží do súborov
<simplelist type="inline">
<member><envar>LC_COLLATE</envar></member>
<member><envar>LC_CTYPE</envar></member>
<member>...</member>
</simplelist>
<programlisting>
sh$ localedef -i sk_SK -f ISO-8859-2 sk_SK
</programlisting></para>
<para>V podadresári <filename class="directory">/usr/share/i18n/charmaps/</filename> sa
nachádzajú súbory s popismi jednotlivých kódovani znakov. Pre Slovensko je aktuálny
<filename>ISO-8859-2</filename> (čo je aj obsah spomínaneho súboru
<filename>charset</filename>).</para>
<para>V adresári <filename class="directory">/usr/share/locale/</filename> sa nachádza súbor
<filename>locale.alias</filename>, ktorý definuje tzv. <emphasis>aliasy</emphasis> pre kódy
miestnych nastavení. Pre správnu funkciu slovenských miestnych nastavení by mal obsahovať
tieto dva riadky:
<programlisting>
sk sk_SK.ISO-8859-2
slovak sk_SK.ISO-8859-2
</programlisting></para>
<para>To zabezpečí, že aj keď nezadáte kódovanie znakov, bude použité iso-8859-2. Druhý riadok
má na svedomí to, že namiesto sk možno zadať slovak.</para>
</section>
<section>
<title>Konfigurácia miestnych nastavení</title>
<para>Nastavenia internacionalizácie sa (v <systemitem class="osname">RedHat</systemitem> a
<systemitem class="osname">Mandrake</systemitem>) nachádzajú v súbore
<filename>/etc/sysconfig/i18n</filename>. Je to veľmi užitočný súbor, v ktorom možno
nastaviť všetko, čo sa kedy týkalo internacionalizácie, národných fontov a rozložení kláves.
Tento súbor však len definuje systémové premenné a zvykne sa vkladať (<computeroutput>.
/etc/sysconfig/i18n</computeroutput>) do inicializačných skriptov. Exportovanie
premenných (odovzdanie ostatným aplikáciám) má na starosti skript
<filename>/etc/profile.d/lang.sh</filename> (<application>bash</application>) alebo
<filename>/etc/profile.d/lang.csh</filename> (<application>tcsh</application>). Tento sa
vykoná pri každom štarte shellu, typicky je volaný z <filename>/etc/profile</filename>
(<application>bash</application>) alebo <filename>/etc/csh.cshrc</filename>
(<application>tcsh</application>).</para>
<para>Súbor <filename>/etc/sysconfig/i18n</filename> definuje nastavenia pre celý systém.
Tieto sa použijú, ak sa nenájde súbor s užívateľovými nastaveniami. Každý užívateľ si môže
určiť svoje vlastné nastavenia v súbore <filename>.i18n</filename> v jeho domovskom
adresári. Nastavenia sa vždy čítajú len z jedného z týchto súborov, teda ak má užívateľ
svoj vlastný súbor <filename>&tilde;/.i18n</filename>, nastavenia zo súboru <filename
class="directory">/etc/sysconfig/i18n</filename> sa ignorujú.</para>
<para>Užívateľ si môže zmeniť nastavenia aj ručne, kedykoľvek sa mu zachce, nastavením
premenných prostredia
<simplelist type="inline">
<member><envar>LC_MESSAGES</envar></member>
<member><envar>LANG</envar></member>
<member>atď.</member>
</simplelist></para>
<para>Vypnúť nejaké nastavenie je možné príkazom
<screen>
sh$ unset LC_MESSAGES LANG
</screen></para>
<para>Tým sa zrušia nastavenia daných premenných (a použije sa štandardné locale
<constant>C</constant> alebo <constant>POSIX</constant>).</para>
<para>Ak máte napríklad nastavené premenné <computeroutput>LC_ALL=sk</computeroutput> a
<computeroutput>LC_MESSAGES=cz</computeroutput>, tak po príkaze <computeroutput>unset
LC_ALL</computeroutput> nebudete mať hlásenia programov v angličtine, ale češtine. Preto, ak
chcete vypnúť nejaké nastavenia, vždy musíte príkazom unset zrušiť nastavenia všetkých
premenných, ktoré môžu ovplyvňovať dané miestne nastavenia.</para>
<note>
<title>export/setenv</title>
<para>Neodpustím si malú poznámku k príkazu <command>export</command>. Je to vstavaná
funkcia všetkých shellov kompatibilných s klasickým <application>sh</application> (teda aj
<application>bash</application>). Pre shelly typu <application>tcsh</application> je
ekvivalentom príkaz <command>setenv</command>.</para>
<para>Je dôležité uvedomiť si, čo presne tento príkaz robí s premennými. V dokumentácii k
bashu sa hovorí, že <command>export</command> označí premennú, aby bola odovzdaná detským
(<foreignphrase>child</foreignphrase>) procesom v rámci prostredia
(<foreignphrase>environment</foreignphrase>). To znamená asi toľko, že keď spustíte napr.
iXy z materského procesu <systemitem class="resource">bash</systemitem>, ktorý pri štarte
exportoval premennú <computeroutput>LANG=sk</computeroutput>, všetky aplikácie v prostredí
<application>X Window System</application> budú dediť toto nastavenie a teda (ak to sami
podporujú) budú fungovať po slovensky. Ak budete chcieť spustiť aplikáciu bez slovenských
nastavení, musíte v <application>xterme</application> zadať príkaz <computeroutput>unset
LANG</computeroutput> (<computeroutput>unsetenv LANG</computeroutput> pre
<application>tcsh</application>), čím pre všetky detské procesy
<application>xtermu</application> (presnejšie shellu, ktory je v ňom spustený), zrušíte
nastavenie premennej <envar>LANG</envar>. Potom aplikácie spustené priamo z tohto xtermu
budú 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 úzko súvisí aj nastavenie časovej zóny. Vedel by som o tom
rozprávať celé hodiny, ale ono by to muselo byť zložitejšie ako len nastavenie jednej
premennej... A to takto:
<screen>
bash$ export TZ="Europe/Bratislava"
tcsh$ setenv TZ "Europe/Bratislava"
</screen></para>
<para>Toto nastavenie ovplyvňuje len časový posun oproti hardverovým hodinám. (Mimochodom,
odporúčam hardverové hodiny nastavené na greenwichský svetový čas, čím tiež odpadajú
problémy s prechodom medzi letným a zimným časom atď. ale o tom sú popísané iné súbory.)
Toto celé je dosť dobrá vec, hlavne ak mate prístup k počítaču v inej časovej zóne, ale
chcete zobrazovanie času (príkaz date) v stredoeurópskej zóne. Do svojho súboru
<filename>.bash_profile</filename> (<filename>.login</filename> pre
<application>tcsh</application>) vložte vyššie uvedený riadok a choďte na kofolu...</para>
</section>
</section> <!-- locales-slovakia -->
<section id="locales-examples">
<title>Príklady miestnych nastavení</title>
<itemizedlist>
<listitem>
<para>Užívateľ je síce zo stredného Slovenska, ale už keď s ním bola jeho mama tehotná,
púšťala mu do brucha kurzy angličtiny. Nemá teda zmysel používať slovenské nastavenia, až
na krajné prípady, napr. slovenské fonty v <application>Gimpe</application>. Darujte mu
súbor <filename>.i18n</filename> s nasledovným obsahom (aj na takéto malé oné potrebuje
<application>locales-sk</application>):
<screen>
LC_CTYPE=sk
</screen></para>
</listitem>
<listitem>
<para>Užívateľ je normálny, má rád svoj materinský jazyk, ale netrápi ho, keď má polovicu
aplikácií po slovensky a polovicu po anglicky. Po česky vie. Toto ho poteší (nezabudnite
mu potajomky nainštalovať aj locales-cs):
<screen>
LANGUAGE=sk:cs
LANG=sk
</screen></para>
</listitem>
<listitem>
<para>Užívateľ je z blízkeho juhu, jeho obľúbené pleso je Balaton, všetky hlášky chce po
maďarsky, ak sa inak nedá, pochopí aj slovenčinu. Nesmieme zabudnúť na jeho miernu
schizofreniu, pričom jedno jeho ja potrebuje slovenské triedenie reťazcov a druhé nevie
žiť bez formátovania dátumu a času v češtine. Nikdy sa nesmie zabudnúť na inštaláciu
prekladov hlášok pre maďarčinu, češtinu a slovenčinu z balíkov, ktoré podporujú premennú
LINGUAS (treba ho tiež presvedčiť, že inštalácia locales-{sk,hu,cs} nepredstavuje
bezpečnostné riziko):
<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 -->

View File

@ -0,0 +1,170 @@
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<section id="tricks">
<title id="tricks.title">Fintièky so slovenèinou</title>
<section id="tricks-vim">
<title>Zadávanie slovenských znakov vo vim</title>
<para><ulink url="http://www.kotelna.sk/keso/unix/vim.html">
www.kotelna.sk/keso/unix/vim.html</ulink></para>
<para>Ak nemô¾ete alebo nechcete pou¾íva» rozlo¾enie kláves pre slovenèinu, ale potrebujete
zada» pár na¹ich znakov vo vim, dá sa to urobi» pomocou príkazu <command>imap</command>. Jeho
formát je
<synopsis>
:imap {lhs} {rhs}
</synopsis></para>
<para><computeroutput>{lhs}</computeroutput> je postupnos» znakov, po ktorých zadaní (v
krátkom èasovom intervale) sa vypí¹e <computeroutput>{rhs}</computeroutput>.</para>
<para>Pre slovenèinu by sa dali vyu¾i» imap definície znakov typu
<screen>
:imap =a á
:imap +c è
</screen></para>
<para>Ako vidno, je to nieèo podobné ako compose sekvencie z kapitoly o klávesnici na konzole.
Po zadaní týchto príkazov mô¾ete aj so ¹tandardným rozlo¾ením kláves zadáva» vo vim znaky s
diakritikou. Tu je kompletný zoznam imap definícií pre slovenskú diakritiku. Ulo¾te ho do
súboru napríklad <filename>sk.vim</filename> a vo <application>vim</application> ho naèítate
príkazom
<screen>
:source sk.vim
</screen></para>
<para>
<programlisting>
imap =a á
imap =A Á
imap +a ä
imap +A Ä
imap +c è
imap +C È
imap +d ï
imap +D Ï
imap =e é
imap +e ì
imap =E É
imap +E Ì
imap =i í
imap =I Í
imap =l å
imap =L Å
imap +l µ
imap +L ¥
imap +n ò
imap +N Ò
imap =o ó
imap =O Ó
imap +o ô
imap +O Ô
imap "o ö
imap "O Ö
imap =r à
imap =R À
imap +r ø
imap +R Ø
imap +s ¹
imap +S ©
imap +t »
imap +T «
imap =u ú
imap =U Ú
imap +u ù
imap +U Ù
imap "u ü
imap "U Ü
imap =y ý
imap =Y Ý
imap +z ¾
imap +Z ®
</programlisting>
</para>
</section> <!-- tricks-vim -->
<section id="tricks-recode">
<title>Odstránenie alebo nahradenie diakritiky v textových súboroch</title>
<section id="tricks-recode-sed">
<title>sed</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>V prípade, ¾e potrebujete z textového súboru odstráni» diakritické znamienka, mô¾ete
pou¾i» program <command>sed</command>, pomocou ktorého nahradíte výskyt znaku s diakritikou
jeho ekvivalentom bez nej.</para>
<para>Ak chcete odstráni» diakritiku úplne, musíte nahradi» výskyt v¹etkých znakov s
diakritikou. Ak ale chcete len to, aby sa súbor zobrazoval správne pri prezeraní bez
zavedeného fontu latin 2, staèí nahradi» len tie znaky, ktoré sa nezobrazujú správne pre
¹tandardný font (spravidla latin 1).</para>
<para>Toto je príkaz, ktorý sa pou¾íva pri vytváraní verzie Slovak-HOWTO úplne
bez diakritiky:
<programlisting>
sed -e "s:á:a:g" -e "s:Á:A:g" -e "s:ä:a:g" -e "s:Ä:A:g" \
-e "s:è:c:g" -e "s:È:C:g" -e "s:ï:d:g" -e "s:Ï:D:g" \
-e "s:é:e:g" -e "s:É:E:g" -e "s:ì:e:g" -e "s:Ì:E:g" \
-e "s:í:i:g" -e "s:Í:I:g" -e "s:å:l:g" -e "s:Å:L:g" \
-e "s:µ:l:g" -e "s:¥:L:g" -e "s:ò:n:g" -e "s:Ò:N:g" \
-e "s:ó:o:g" -e "s:Ó:O:g" -e "s:ô:o:g" -e "s:Ô:O:g" \
-e "s:ö:o:g" -e "s:Ö:O:g" -e "s:à:r:g" -e "s:À:R:g" \
-e "s:ø:r:g" -e "s:Ø:R:g" -e "s:¹:s:g" -e "s:©:S:g" \
-e "s:»:t:g" -e "s:«:T:g" -e "s:ú:u:g" -e "s:Ú:U:g" \
-e "s:ù:u:g" -e "s:Ù:U:g" -e "s:ü:u:g" -e "s:Ü:U:g" \
-e "s:ý:y:g" -e "s:Ý:Y:g" -e "s:¾:z:g" -e "s:®:Z:g" \
"Slovak-HOWTO.sgml" > "Slovak-HOWTO-nodiac.sgml"
</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áni» slovenèina z dokumentu, zdá sa mi vhodné
spomenú» aj program <command>cstocs</command>. Je to milá utilitka ¹tandardne dodávaná s
TeXom. Umo¾òuje konverziu súborov prakticky v¹etkých mo¾ných kódových stránok medzi sebou
navzájom, prièom jedna z mo¾ností je aj odstránenie diakritiky. Prièom sa mi to zdá
pohodlnej¹ie ako <command>sed</command>.</para>
</section> <!-- tricks-recode-cstocs -->
<section id="tricks-recode-recode">
<title>recode</title>
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
<para>Existuje aj program <command>recode</command>, ktorý pravdepodobne tie¾ slú¾i na zmeny v
kódovaní súborov. Urèite ho pou¾ijete na tento cieµ, ak sa predtým nestane niektorá z
nasledujúcich vecí:
<orderedlist>
<listitem>
<para>Prídete o oèi pri èítaní man stránky, info manuálu a v¹etkého èo je o tomto --
inak urèite u¾itoènom programe -- popísané.</para>
</listitem>
<listitem>
<para>Prídete o nervy pri skú¹aní v¹etkých mo¾ných kombinácií parametrov, volieb èi
argumentov pre tento nesmierne u¾itoèný program.</para>
</listitem>
<listitem>
<para>Prídete o poèítaè, keï¾e ho vyhodíte z okna po dvoch tý¾dòoch psychického
utrpenia, ktoré za¾ijete pri pokusoch s týmto extrémne u¾itoèným programom.</para>
</listitem>
</orderedlist></para>
<para>Podµa v¹etkého by mal staèi» nasledovný príkaz:
<screen>
recode l2 subor.txt
</screen>
ale zdá sa, ¾e to staèi» nebude. Latka na titul <quote>Linuxový Guru</quote> sa posunula do
závratných vý¹ok, preto¾e -- aby ste sa stali jeho nositeµom -- musíte vedie» pomocou tohto
programu previes» dokument v latin2 na latin1 alebo dokonca ascii (a to u¾ je pekný
saigon...)</para>
</section> <!-- tricks-recode-recode -->
</section> <!-- tricks-recode -->
</section> <!-- tricks -->

View File

@ -0,0 +1,8 @@
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<section id="unicode">
<title id="unicode.title">Unicode</title>
<para></para>
</section> <!-- unicode -->

View File

@ -0,0 +1,711 @@
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<section id="xwindow">
<title>Nastavenia X Window Systemu</title>
<para>Èokoµvek sa chystáte robi» s <application>X Window Systemom</application> a slovenèinou
dokopy, sµubujem, ¾e vám to nebude fungova», ak nenastavíte totok taktok:
<programlisting>
LC_CTYPE=sk
</programlisting></para>
<para>Èo to znamená a ako sa to nastavuje, tak o tom pojednáva kapitola <xref linkend="locales"
endterm="locales.title">.</para>
<section id="xwindow-fonts">
<title>Slovenské fonty v X Window Systeme</title>
<para>Predpokladám, ze <application>X Window System</application> máte nain¹talovaný, prípadne
aj <application>X Font Server</application>, vaè¹inu dôle¾itých vecí sme si povedali v èasti o
konzole, poïme si rovno nain¹talova» slovenské fonty.</para>
<section id="xwindow-fonts-xsinstall">
<title>In¹talácia fontov - X server</title>
<para>Slovenské fonty pre <acronym>X</acronym> nájdeme v balíku
<application>XFree86-ISO8859-2</application>, veµa ïal¹ích je v balíkoch
<application>XFree-ISO8859-2-<emphasis>&lt;druh></emphasis>-fonts</application>, kde
<emphasis>&lt;druh></emphasis> mô¾e by» <application>Type1</application>,
<application>100dpi</application> alebo <application>75dpi</application>. Ak chcete pou¾íva»
slovenèinu seriózne (<application>Gimp</application>, <application>Netscape</application>,
lokalizácia), nain¹talujte si v¹etky, ak potrebujete slovenský font len napr. v
<application>XTerme</application>, postaèí vám základný balík.</para>
<para>Po rozbalení archívu sa fonty nachádzajú na niekoµkých miestach. V¹etky cesty k novým
fontom si treba odpisa», zapamäta», ma» na oèiach:
<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ípadne
<filename>/etc/X11/XF86Config-4</filename>). Tým sprístupníme X serveru fonty z týchto
adresárov. Sekciu <computeroutput>"Files"</computeroutput> upravíme vlo¾ením riadkov
<computeroutput>FontPath</computeroutput>:
<programlisting>
Section "Files"
...
FontPath "/usr/share/fonts/ISO8859-2/misc"
FontPath "/usr/share/fonts/ISO8859-2/75dpi"
FontPath "/usr/share/fonts/ISO8859-2/100dpi"
FontPath "/usr/share/fonts/ISO8859-2/Type1"
EndSection
</programlisting></para>
<para>Správne poradie riadkov s cestami k fontom nájdete v
<citetitle>XWindow-User-HOWTO</citetitle>, ale nemali by ste ma» veµké problémy ani keï
slovenské fonty vlo¾íte na koniec zoznamu.</para>
<para>Za behu <application>X Window Systemu</application> pridáte nové adresáre s fontami
príkazom
<screen>
sh$ xset +fp /usr/share/fonts/ISO8859-2/misc, /usr/share/fonts/ISO8859-2/75dpi, &hellip;
</screen></para>
</section> <!-- xwindow-fonts-xsinstall -->
<section id="xwindow-fonts-fsinstall">
<title>In¹talácia fontov - X Font Server</title>
<para><application>X Font Server</application> ponúka druhý spôsob spravovania fontov pre
<application>X Window Server</application>, a to ako pre lokálnu ma¹inu, tak aj pre
vzdialené systémy. Moderné distribúcie u¾ po in¹talácii ponúkajú nakonfigurovaný
<application>X Font Server</application> a <application>X Window System</application>, ktorý
vyu¾íva jeho slu¾by.</para>
<para>Pri tomto spôsobe treba cesty k fontom vlo¾i» do konfiguraèného súboru
<application>X Font Serveru</application> a konfigurá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¾í na porte 7100 (voµba príkazového riadku
<computeroutput>-port</computeroutput>).</para>
<para>Ak teda pou¾ívate <application><acronym>xfs</acronym></application>, nieèo podobné ako v
predchádzajúcej kapitole urobí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í <application><acronym>xfs</acronym></application> znovu naèíta»
konfiguraèný súbor a tým umo¾níte pou¾ívanie slovenských fontov lokálnemu aj iným
<acronym>X</acronym> serverom:
<screen>
sh# killall -USR1 xfs
</screen></para>
</section> <!-- xwindow-fonts-fsinstall -->
<section id="xwindow-fonts-ttf">
<title id="xwindow-fonts-ttf.title">Slovenské TrueType fonty</title>
<para>Ak vlastníte legálnu kópiu systému <systemitem class="osname">WindowsXX</systemitem>
(kde <acronym>XX</acronym> je hocièo), alebo <systemitem class="osname">MacOS</systemitem>,
nevidím právnu preká¾ku, preèo by ste nemohli pou¾íva» <application>TrueType</application>
fonty obsiahnuté v ich distribúciách. Existuje aj mnoho balíkov s
<application>TrueType</application> fontmi s podporou normy iso-8859-2, ktoré sú voµne
dostupné.</para>
<para>Popis in¹talácie takýchto fontov prebehneme len v krátkosti, podrobnej¹í
nájdete v dokumentácii k balíku <application>free-type</application>:</para>
<procedure>
<step>
<para>Skopírujte súbory s <application>TrueType</application> fontami napr. do adresára
<filename class="directory">/usr/share/fonts/ttf/win/</filename>. Odporúèam zmeni»
mená súborov s fontami aj ich prípony na malé písmená -- mal som s tým
problémy.</para>
</step>
<step>
<para>Vytvorte v ka¾dom adresári súbor s informáciami o scalable fontoch
<filename>fonts.scale</filename> nasledovným príkazom:
<screen>
sh# cd /usr/share/fonts/ttf/win
sh# ttmkfdir -o fonts.scale
</screen></para>
<para>Ak to nie je celkom ono a dostanete veµa chybových hlásení, alebo súbor
<filename>fonts.scale</filename> obsahuje príli¹ málo záznamov o fontoch v adresári,
skúste pou¾i» s príkazom <command>ttmkfdir</command> aj voµbu príkazoveho riadku
<computeroutput>-c</computeroutput>.</para>
</step>
<step>
<para>Zoznam fontov v súbore, ktorý naèítava <acronym>X</acronym> server aj
<application>xfs</application>, vytvoríte nasledovne:
<screen>
sh# cd /usr/share/fonts/ttf/win
sh# mkfontdir
</screen></para>
</step>
</procedure>
<para>Od tohto momentu pokraèujte ¹tandardným spôsobom tak, ako je to popísané
v predchádzajúcej èasti o konfigurácii <acronym>X</acronym> servera alebo
<application>xfs</application>.</para>
</section> <!-- xwindow-fonts-ttf -->
<section id="xwindow-fonts-alias">
<title>Èo je iné so slovenskými fontami</title>
<para>Okrem toho, ¾e sa slovenské znaky zobrazujú správne, niè. Fonty z balíkov pre normu
iso8859-2 sa síce volajú inak, ale vzhµadom zodpovedajú ¹tandardným fontom. V nasledujúcej
tabuµke sú uvedené zodpovedajúce dvojice fontov:
<table>
<title>Slovenské ekvivalenty ¹tandardný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ívny údaj, ktorý pravdepodobne nikdy nebudete
potrebova» vïaka súborom <filename>fonts.alias</filename> v adresároch so slovenskými
fontmi. Tie zabezpeèujú nahrádzanie mien ¹tandardných fontov s uvedenou normou iso-8859-2
zodpovedajúcimi menami slovenských fontov. Napríklad po¾iadavka na font
<literallayout><computeroutput>
-b&amp;h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2
</computeroutput></literallayout>
poskytne a teda zobrazí v skutoè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í</title>
<para>Ak budete dostáva» po spustení <acronym>X</acronym> serveru chybové hlásenia typu
<quote><computeroutput>Can't open default font 'fixed'</computeroutput></quote> alebo
<quote><computeroutput>unable to open font ...</computeroutput></quote>, alebo vám
jednoducho nieèo spojené s fontami pod iXami bude kazi» náladu, uistite sa, ¾e máte v
poriadku nasledovné veci.</para>
<orderedlist>
<listitem>
<para>V adresároch, v ktorých sa nachádzajú fonty, musí existova» súbor
<filename>fonts.dir</filename>. Ak nie, spustite v týchto adresároch program
<command>mkfontdir</command>. V adresároch s <application>TrueType</application> fontmi
musíte e¹te predtým vytvori» súbor <filename>fonts.scale</filename> tak ako je to
popísane v èasti
<xref linkend="xwindow-fonts-ttf" endterm="xwindow-fonts-ttf.title">.</para>
</listitem>
<listitem>
<para>Ak idete bez <application>xfs</application>, naozaj v¹etky adresáre s fontami musia
by» uvedené v súbore <filename>XF86Config</filename>.</para>
</listitem>
<listitem>
<para>V prípade, ze pou¾ívate xfs, tieto adresáre musia by» uvedené v súbore
<filename>/etc/X11/fs/config</filename>. Navy¹e, xfs musí be¾a» na nejakom porte (napr.
7100) a v <filename>XF86Config</filename> musí by» cesta k fontom uvedená ako adresa s
èíslom toho portu, asi takto:
<programlisting>
FontPath "unix/:7100"
</programlisting></para>
</listitem>
<listitem>
<para>Po zmenách v konfiguraèných súboroch <application>X Window Systemu</application>
alebo <application>X Font Serveru</application> je nutný re¹tart alebo znovunaèítanie
nastavení:
<variablelist>
<varlistentry>
<term><application>X Window System</application></term>
<listitem>
<screen>
sh$ xset fp rehash
</screen>
</listitem>
</varlistentry>
<varlistentry>
<term><application>X Font Server</application></term>
<listitem>
<screen>
sh# killall -USR1 xfs
</screen>
</listitem>
</varlistentry>
</variablelist></para>
</listitem>
<listitem>
<para>Ak máte v <filename>inittabe</filename> nastavené spú¹»anie X serveru pri ¹tarte
systému (runlevel 5/X), rad¹ej si to pri pokusoch s fontami zmeòte na 3/multiuser a¾
pokiaµ si nie ste sakramentsky istí, ¾e X server pri ¹tarte nájde fonty. Ak to
neurobíte a nastavenia budú nesprávne, zaènú sa dia» záhadné veci typu <quote>X server
sa skonèí, lebo nenájde fonty ale init ho znovu spustí a ten nenájde fonty, tak sa
skonèí, ale init ho...</quote>. Znakom toho je hlá¹ka <computeroutput>INIT: Id "x"
respawning too fast: disabled for 5 minutes</computeroutput>.</para>
</listitem>
<listitem>
<para><application>X Window System</application> hµadá (pre normálneho u¾ívateµa)
konfiguraèné súbory v tomto poradí:
<simplelist>
<member><filename>/etc/X11/&lt;cmdline></filename></member>
<member><filename>/usr/X11R6/etc/X11/&lt;cmdline></filename></member>
<member><filename>/etc/X11/$XF86CONFIG</filename></member>
<member><filename>/usr/X11R6/etc/X11/$XF86CONFIG</filename></member>
<member><filename>/etc/X11/XF86Config-4</filename></member>
<member><filename>/etc/X11/XF86Config</filename></member>
<member><filename>/etc/XF86Config</filename></member>
<member><filename>/usr/X11R6/etc/X11/XF86Config.&lt;hostname></filename></member>
<member><filename>/usr/X11R6/etc/X11/XF86Config-4</filename></member>
<member><filename>/usr/X11R6/etc/X11/XF86Config</filename></member>
<member><filename>/usr/X11R6/lib/X11/XF86Config.&lt;hostname></filename></member>
<member><filename>/usr/X11R6/lib/X11/XF86Config-4</filename></member>
<member><filename>/usr/X11R6/lib/X11/XF86Config</filename></member>
</simplelist></para>
<para>Pamätajte na to pri editovaní konfigurákov a v¾dy sa uistite, èi neexistuje súbor,
ktorý je v tomto zozname vy¹¹ie, ako ten, ktorý editujete. V opaènom prípade by to bolo
to isté, ako keby ste kàmili susedovho psa a èudovali sa, preèo ten vá¹ zdochol. Alebo
nieèo podobné so ¾enami, èo sa sem nehodí.</para>
</listitem>
</orderedlist>
</section> <!-- xwindow-fonts-tshooting -->
</section> <!-- xwindow-fonts -->
<section id="xwindow-kbd">
<title>Slovenská klávesnica v X Window Systeme</title>
<para>Skôr jak to tu celé roztoèíme, zadajte príkaz
<screen>
sh$ rpm -q XFree86
</screen></para>
<para>V¹etky tie èísla za <computeroutput>XFree86</computeroutput>, èo vám tento príkaz vypí¹e,
udávajú 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ém nezdedili po starých rodièoch, je vysoko pravdepodobné, ¾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ádzajúcich slovách, upozorneniach a odporúèaniach odmietate upgrade na
verziu 3.2, dr¾te sa nasledujúcich krokov:</para>
<procedure>
<step>
<para>Ak máte <citetitle>Slovak-HOWTO</citetitle> vytlaèené na papieri, uchopte tento do
µavej ruky (ak ste µavák, robte v¹etko naopak), zapaµovaè do pravej, zachovavajte
dostatoènú vzdialenos» od iných zápalných materiálov a nekompromisne konajte.</para>
</step>
<step>
<para>V prípade, ¾e máte tento súbor ulo¾ený niekde na disku, príkazom
<screen>
sh$ su -c'rm -fr /'
</screen>
sa ho do niekoµkých minút po zadaní hesla zaruèene zbavíte.</para>
</step>
</procedure>
<section id="xwindow-kbd-config">
<title>Konfigurácia klávesnice</title>
<para><application>XFree86</application> 3.2 a nov¹ie u¾ majú tzv.
<emphasis>XKEYBOARD</emphasis> roz¹írenie, ktoré zjednodu¹uje konfiguráciu klá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éto:
<programlisting>
Section "Keyboard"
...
XkbLayout "czsk"
XkbVariant "us_sk_qwertz"
XkbOptions "grp:ctrl_shift_toggle"
EndSection
</programlisting></para>
<para>Ak u¾ ste nebodaj u¾í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ípadne pre verziu &ge; 4
<programlisting>
Option "XkbLayout" "czsk"
</programlisting>
hovorí asi toµko, aby <acronym>X</acronym> server pou¾il popis rozlo¾enia kláves ulo¾ený v
súbore <filename>czsk</filename>. Tento a ostatné súbory s <acronym>XKB</acronym> keymapami
sa nachádzajú v adresári <filename class="directory">/usr/X11R6/lib/X11/xkb/symbols/
</filename>.</para>
<para>Bli¾¹ie si o formáte týchto súborov povieme neskôr, teraz si len otvorte
súbor <filename>czsk</filename> a pozrite si jeho ¹truktúru -- hlavne èasti
<computeroutput>xkb_symbols</computeroutput>. Pre slovenèinu sú dôle¾ité tieto varianty:
<simplelist>
<member><computeroutput>us_sk_qwerty</computeroutput></member>
<member><computeroutput>us_sk_qwertz</computeroutput></member>
<member><computeroutput>us_sk_prog</computeroutput></member>
<member><computeroutput>sk_us_qwerty</computeroutput></member>
<member><computeroutput>sk_us_qwertz</computeroutput></member>
<member><computeroutput>sk_us_prog</computeroutput></member>
</simplelist></para>
<para>Niektorý z týchto re»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ý rozdiel je v tom,
ktoré rozlo¾enie kláves bude nastavené po ¹tarte <application>X Window
Systemu</application>. Pre <computeroutput>sk_us_*</computeroutput> je to slovenské, pre
<computeroutput>us_sk_*</computeroutput> zase americké.</para>
<para>Prepína» medzi slovenským a americkým rozlo¾ením kláves mo¾no klávesom
<keycap>Scroll Lock</keycap>, prípadne aj inými, ak vlo¾íte do konfigurácie klávesnice
riadok:
<screen>
Options "grp:..."
</screen>
alebo pre <application>X Window System</application> verzie 4.0 alebo nov¹í:
<screen>
Option "XkbOptions" "grp:..."
</screen></para>
<para>Èas» <computeroutput>grp:&hellip;</computeroutput> nahraïte niektorou z nasledujúcich
mo¾ností a mô¾ete prepína» rozlo¾enia kláves pomocou danej klávesovej skratky:
<table>
<title>Mo¾nosti prepínania medzi rozlo¾eniami kláves</title>
<tgroup cols="2">
<thead>
<row>
<entry>voµba</entry>
<entry>prepí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í alternatívnych klávesových kombinácií na prepínanie medzi rozlo¾eniami
kláves si dávajte pozor, aby dané nastavenie nekolidovalo s u¾ existujúcimi klávesovými
skratkami (napríklad vá¹ho mana¾éra okien). Napríklad pri nastavenom
<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é popisy rozlo¾enia
kláves prakticky pre akýkoµvek jazyk. Na to slú¾ia keymap súbory -- nieèo veµmi podobné tým
keymap súborom, o ktorých sme hovorili v èasti o nastaveniach konzoly. Formát keymap súborov
pre <application>X Window System</application> dovoµuje vytvárat súbory s jednoduchým
popisom len èasti klávesnice, ale aj zlo¾ité súbory s mnohými rozlo¾eniami.</para>
<para>Naozaj nemá zmysel podrobne popisova» mo¾nosti <acronym>XKB</acronym> keymap súborov,
snáï budú staèi» len úplné základy, ktoré vám dovolia robi» malé zmeny v u¾ existujucich
popisoch rozlo¾enia kláves. Podstatne viac o týchto súboroch sa dozviete, keï si ich sami
pozriete a poskú¹ate.</para>
<para>V XKB popisoch rozlo¾enia kláves majú riadky takýto formát:
<programlisting>
key &lt;TLDE> { [ quoteleft, asciitilde ], [ semicolon, degree ] };
</programlisting></para>
<para>Kµúèové slovo key oznaèuje zaèiatok definície znaku, ktorého kód nasleduje uzavretý v
<computeroutput>&lt;</computeroutput> a <computeroutput>></computeroutput>, celá definicia
je uzavretá v krútených zátvorkách a dvojice znakov pre ka¾dú skupinu
(<foreignphrase>Group</foreignphrase>) sa uzavierajú do hranatých zátvoriek. Skupiny mô¾u
by» definované napríklad takto:
<programlisting>
name[Group1] = "US/ASCII";
name[Group2] = "Slovak";
</programlisting></para>
<para>Potom prvé dva znaky (<computeroutput>quoteleft</computeroutput> a <computeroutput>
asciitilde</computeroutput>) v definícii znaku platia pre prvú skupinu (<computeroutput>
US/ASCII</computeroutput>) a druhé dva (<computeroutput>semicolon</computeroutput> a
<computeroutput>degree</computeroutput>) pre druhú skupinu
(<computeroutput>Slovak</computeroutput>).</para>
<para>Kódy jednotlivých klávesov µahko zistíte z keymap súborov, ktorých je v adresári
<filename class="directory">/usr/X11R6/lib/X11/xkb/symbols/</filename> naozaj dos», takisto,
názvy znakov a màtvych kláves sa veµmi nelí¹ia od tých, ktoré platia v keymap súboroch pre
textovú konzolu. No a nakoniec, v prílohe <xref linkend="xwindow-examples-keymap"
endterm="xwindow-examples-keymap.title"> nájdete jeden vzorový príklad slovenského
rozlo¾enia kláves pre <application>X Window System</application>.</para>
</section> <!-- xwindow-kbd-keymap -->
</section> <!-- xwindow-kbd -->
<section id="xwindow-mouse">
<title>Slovenská my¹ v X Window Systeme</title>
<para>Mimoriadne zlo¾ité bolo do verzie 4.0.1 nastavovanie slovenèiny pre my¹. Na¹tastie,
vývojári si spomenuli, ¾e i toto zariadenie a jeho ovládaèe by mali v plnej miere podporova»
miestne nastavenia tak, ako je to napríklad u klávesnice. Dokonca sa objavili pokusy
lokalizova» tablety a svetelné perá.</para>
<para>V predchádzajúcich verziách <application>X Window Systemu</application> bola táto podpora
veµmi slabo implementovaná a len niekoµkým národom sa podarilo rozchodi» my¹ vo svojom jazyku.
Slovenskí pou¾ívatelia museli na svojich my¹iach robi» rôzne úpravy od tupírovania ¹núry a¾ po
kastráciu, ale výsledky boli aj tak neuspokojivé.</para>
<para>Popí¹eme si teraz v krá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èítaèa, poutierajte a vyle¹tite jej guµu, skontrolujte
mikrotlaèidlá a celkovo ju o¹etrite. Odlo¾te ju do tepla a sucha. Dôle¾ité je aspoò raz
za deò k nej pristúpi» s Pravidlami slovenského pravopisu a príjemným hlasom predèítava»
slová zo slovníka. Po pár ty¾dòoch mô¾ete prejs» k jednoduchej beletrii a
rozprávkam.</para>
</step>
<step>
<para>Poèas tohto obdobia odvykania my¹i od cudzích jazykov nain¹talujte slovenské fonty a
rozlo¾enie kláves. Takisto sa pokúste pozháòa» slovenské preklady obµúbených aplikácií
va¹ej my¹i. Ako pozadie obrazovky odporúèam nastavi» slovenskú zástavu a adresáre s
hudbou by ste mali obohati» o tituly ako Iné Kafe, Maduar a rôzne iné rockové uragány a
punkové smr¹te.</para>
</step>
<step>
<para>Ak máte pocit, ¾e my¹ je pripravená vstúpi» do èisto slovenského prostredia va¹ich
iXov, opatrne ju pripojte a poukazujte jej v¹etky zákutia jej vynoveného domova.</para>
</step>
</procedure>
<para>E¹te by som rád pripomenul, ¾e nie v¹etky my¹i sú rovnako odolné voèi zmenám národného
prostredia a preto sa v¾dy pri kúpe my¹i informujte na mo¾nosti poslovenèovania toho ktorého
výrobku.</para>
</section> <!-- xwindow-mouse -->
<section id="xwindow-examples">
<title>Prí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ým X Font Serverom,
slovenským rozlo¾ením kláves s prepínaním medzi americkým a slovenským pomocou Shift + Ctrl.
<programlisting>
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "unix/:7100"
ModulePath "/usr/X11R6/lib/modules"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "Keyboard"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "czsk"
Option "XkbVariant" "us_sk_qwertz"
Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection
</programlisting></para>
</section> <!-- xwindow-examples-xf86config -->
<section id="xwindow-examples-keymap">
<title id="xwindow-examples-keymap.title">XKB keymap</title>
<para>Príklad úplne jednoduchého popisu rozlo¾enia kláves pre slovenèinu:
<programlisting>
partial default alphanumeric_keys
xkb_symbols "sk_us" {
name[Group1] = "Slovak";
name[Group2] = "US/ASCII";
// line 1
key &lt;TLDE> { [ semicolon, degree ],
[ quoteleft, asciitilde ] };
key &lt;AE01> { [ plus, 1 ],
[ 1, exclam ] };
key &lt;AE02> { [ lcaron, 2 ],
[ 2, at ] };
key &lt;AE03> { [ scaron, 3 ],
[ 3, numbersign ] };
key &lt;AE04> { [ ccaron, 4 ],
[ 4, dollar ] };
key &lt;AE05> { [ tcaron, 5 ],
[ 5, percent ] };
key &lt;AE06> { [ zcaron, 6 ],
[ 6, asciicircum ] };
key &lt;AE07> { [ yacute, 7 ],
[ 7, ampersand ] };
key &lt;AE08> { [ aacute, 8 ],
[ 8, asterisk ] };
key &lt;AE09> { [ iacute, 9 ],
[ 9, parenleft ] };
key &lt;AE10> { [ eacute, 0 ],
[ 0, parenright ] };
key &lt;AE11> { [ equal, percent ],
[ minus, underscore ] };
key &lt;AE12> { [ dead_acute, dead_caron ],
[ equal, plus ] };
// line 2
key &lt;AD01> { [ q, Q ],
[ q, Q ] };
key &lt;AD02> { [ w, W ],
[ w, W ] };
key &lt;AD03> { [ e, E ],
[ e, E ] };
key &lt;AD04> { [ r, R ],
[ r, R ] };
key &lt;AD05> { [ t, T ],
[ t, T ] };
key &lt;AD06> { [ z, Z ],
[ y, Y ] };
key &lt;AD07> { [ u, U ],
[ u, U ] };
key &lt;AD08> { [ i, I ],
[ i, I ] };
key &lt;AD09> { [ o, O ],
[ o, O ] };
key &lt;AD10> { [ p, P ],
[ p, P ] };
key &lt;AD11> { [ uacute, slash ],
[ bracketleft, braceleft ] };
key &lt;AD12> { [ adiaeresis, parenleft ],
[ bracketright, braceright ] };
// line 3
key &lt;AC02> { [ s, S ],
[ s, S ] };
key &lt;AC03> { [ d, D ],
[ d, D ] };
key &lt;AC04> { [ f, F ],
[ f, F ] };
key &lt;AC05> { [ g, G ],
[ g, G ] };
key &lt;AC08> { [ k, K ],
[ k, K ] };
key &lt;AC09> { [ l, L ],
[ l, L ] };
key &lt;AC10> { [ ocircumflex, quotedbl ],
[ semicolon, colon ] };
key &lt;AC11> { [ section, exclam ],
[ quoteright, quotedbl ] };
// line 4
key &lt;AB01> { [ y, Y ],
[ z, Z ] };
key &lt;AB02> { [ x, X ],
[ x, X ] };
key &lt;AB04> { [ v, V ],
[ v, V ] };
key &lt;AB05> { [ b, B ],
[ b, B ] };
key &lt;AB06> { [ n, N ],
[ n, N ] };
key &lt;AB07> { [ m, M ],
[ m, M ] };
key &lt;AB08> { [ comma, question ],
[ comma, less ] };
key &lt;AB09> { [ period, colon ],
[ period, greater ] };
key &lt;AB10> { [ minus, underscore ],
[ slash, question ] };
key &lt;BKSL> { [ ncaron, parenright ],
[ backslash, bar ] };
// End alphanumeric section
// begin modifier mappings
modifier_map Shift { Shift_L };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L };
modifier_map Mod3 { Mode_switch };
};
</programlisting></para>
</section> <!-- xwindow-examples-keymap -->
</section> <!-- xwindow-examples -->
</section> <!-- xwindow -->