mirror of https://github.com/tLDP/LDP
3136 lines
147 KiB
Plaintext
3136 lines
147 KiB
Plaintext
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
|
|
<!-- $Id$ -->
|
|
|
|
<!ENTITY % skhowto.draft "IGNORE">
|
|
|
|
]>
|
|
|
|
|
|
<article id="index" lang="sk">
|
|
<articleinfo>
|
|
<title>Slovak-HOWTO</title>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Ján</firstname><othername>'judas'</othername><surname>Tomka</surname>
|
|
</author>
|
|
</authorgroup>
|
|
<releaseinfo>verzia 4 (Blanka)</releaseinfo>
|
|
<pubdate>19. február 2002</pubdate>
|
|
|
|
<keywordset>
|
|
<keyword>Slovakia</keyword> <keyword>Slovensko</keyword> <keyword>slovenč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>
|
|
|
|
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
|
|
<!-- $Id$ -->
|
|
|
|
<section id="intro">
|
|
<title>Úvodné informácie</title>
|
|
|
|
<section id="intro-licence">
|
|
<title>Licencia</title>
|
|
|
|
<para>Áno, môžete čítať tento dokument, 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 <citetitle><acronym>GNU</acronym> Free Documentation Licence</citetitle>,
|
|
ktorej znenie nájdete na adrese <ulink url="http://www.gnu.org/licenses/fdl.html">
|
|
http://www.gnu.org/licenses/fdl.html</ulink>.</para>
|
|
</section> <!-- intro-licence -->
|
|
|
|
<section id="intro-contrib">
|
|
<title>Aktuálna verzia a prispievanie</title>
|
|
|
|
<para>Ak nájdete v tomto súbore niečo, čo je nezlúčiteľné s vašim linuxovým presvedčením,
|
|
napíšte najskôr do diskusie linux, potom sk-i18n, dajte príspevok na www.linux.sk a
|
|
poohovárajte ma na #sklug. V prípade, že vás to neprejde, skontrolujte, či máte aktuálnu
|
|
verziu a, samozrejme, až nakoniec, dajte mi vedieť. Adresy sú:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>Aktuálna verzia:
|
|
<ulink url="http://www.linuxdoc.org/HOWTO/Slovak-HOWTO/index.html">
|
|
http://www.linuxdoc.org/HOWTO/Slovak-HOWTO/index.html</ulink></simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara>Priania, sťažnosti a ponuky na sobáš: <ulink url="mailto:judas@linux.sk">
|
|
judas@linux.sk</ulink>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>Na túto adresu sa tiež obracajte, ak máte niečo, čo by nemalo chýbať v
|
|
<citetitle>Slovak-HOWTO</citetitle>.</para>
|
|
|
|
<para>Nadácia Pomôž a skonaj prispela na dopísanie časti o klávesnici v iXoch sama sebe čiastkou
|
|
500 000,- Sk, v televízii Pomôž a skonaj i v rovnomennom časopise boli zverejnené
|
|
inzeráty, politická strana <acronym>PAS</acronym> nekompromisne trvá na kompromise 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 <citetitle>Slovak-HOWTO</citetitle> na svete!</para>
|
|
|
|
<para>Pri prispievaní sa skúste riadiť nasledovnými pravidlami:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>Pre tých, ktorí majú vážny záujem podieľať sa na písaní
|
|
<citetitle>Slovak-HOWTO</citetitle>, je možný <acronym>CVS</acronym> prístup priamo k
|
|
zdrojovým kódom dokumentu na serveri <systemitem class="systemname">cvs.linuxdoc.org
|
|
</systemitem> v adresári
|
|
<filename class="directory">/cvsroot/LDP/howto/docbook/Slovak-HOWTO/</filename>. Bližšie
|
|
informácie o získaní CVS konta a webovskom rozhraní k CVS serveru nájdete v
|
|
<citetitle><acronym>LDP</acronym> Autor Guide</citetitle>.
|
|
</simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara>Opravy robte vždy vo formáte <acronym>SGML</acronym> (<acronym>DTD</acronym>
|
|
<application>DocBook</application>, verzia 4.0), ktorý je primárnym formátom pri tvorbe
|
|
tohto dokumentu. Je tiež možné posielať čistý text. Príspevky píšte, pokiaľ možno, s
|
|
diakritikou v norme <acronym>ISO-8859-2</acronym>.</simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara>Ak je to niečo väčšie, dajte mi najskô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 <citetitle>Czech-HOWTO</citetitle> sa hovorí: <quote>Když už někdo podobný
|
|
dokument čte, dělá to z nutnosti a ne pro své pobavení.</quote> Musíme však zobrať do
|
|
úvahy, že v Čechách je vyššia životná úroveň a oni až toľko srandy
|
|
nepotrebujú...</simpara>
|
|
</listitem>
|
|
</itemizedlist></para>
|
|
</section> <!-- intro-contrib -->
|
|
|
|
<section id="intro-authors">
|
|
<title>Osoby a obsadenie</title>
|
|
|
|
<para>Mená autorov návodov na lokalizáciu konkrétnych aplikácií sa nachádzajú priamo v kapitole
|
|
<xref linkend="apps" endterm="apps.title">, prípadne <xref linkend="tricks"
|
|
endterm="tricks.title">.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara><author><firstname>Ján</firstname><othername>'judas'</othername>
|
|
<surname>Tomka</surname></author> -- Zodpovedný vedúci.</simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara><author><firstname>Ján</firstname><surname>Ondrej</surname>
|
|
<othername>(SAL)</othername></author> -- Autor pôvodného Slovak-HOWTO.</simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara><author><firstname>Ľubomír</firstname><othername>'salo'</othername>
|
|
<surname>Sedláčik</surname></author> -- ksh/csh/tcsh, grammar bugfixes.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section> <!-- intro-authors -->
|
|
|
|
</section> <!-- intro -->
|
|
|
|
|
|
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
|
|
<!-- $Id$ -->
|
|
|
|
<section id="locales">
|
|
<title id="locales.title">Miestne nastavenia</title>
|
|
|
|
<section>
|
|
<title>Princípy miestnych nastavení</title>
|
|
|
|
<para>Podpora miestnych nastavení je dnes mimoriadne dôlež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 <acronym>GNU</acronym>
|
|
systémoch je táto podpora implementovaná priamo do štandardnej knižnice jazyka
|
|
<acronym>C</acronym> -- <acronym>GNU</acronym> 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 <acronym>ISO</acronym> <acronym>C</acronym>
|
|
pracuje internacionalizácia v zmysle <firstterm>locales</firstterm>. 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 <acronym>GNU</acronym> libc.</para>
|
|
|
|
<para>Nastavenie premennej prostredia sa robí pomocou príkazu shellu
|
|
<screen>
|
|
bash$ export LC_PREMENNA=sk
|
|
|
|
tcsh$ setenv LC_PREMENNA sk
|
|
</screen></para>
|
|
|
|
<para><envar>LC_PREMENNA</envar> je jedna z nasledujúcich:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><envar>LC_COLLATE</envar> --- Triedenie reťazcov. Nastavením tejto premennej
|
|
možno prinútiť aplikácie, napr. <command>sort</command>, <command>ls</command> 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 <function>strcoll</function> a <function>strxfrm</function>, že napríklad
|
|
<literal>ch</literal> je jedno písmeno a nasleduje hneď za <literal>h</literal> a nie
|
|
za <literal>c</literal>, že široké <literal>ä</literal> nasleduje za dlhým
|
|
<literal>á</literal> a to zase za obyčajným <literal>a</literal>. Skúste si to na
|
|
príkaze <command>sort</command>. Zadajte písmená <literal>cc ch hh</literal>, potom
|
|
zmeňte <envar>LC_COLLATE</envar> príkazom
|
|
<screen>
|
|
bash$ export LC_COLLATE=sk
|
|
|
|
tcsh$ setenv LC_COLLATE sk
|
|
</screen></para>
|
|
|
|
<para>Skúste to so <command>sort</command> znovu a porovnajte výsledok...</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><envar>LC_CTYPE</envar> --- Klasifikácia a prevod znakov, multibyte. Správne
|
|
nastavenie tejto premennej je nutné pre korektné rozliš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>
|
|
<simpara>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 nejako 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é (<citetitle>The GNU C Library Reference Manual</citetitle>). 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 <acronym>A4</acronym>, 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
|
|
<constant>sk</constant>. 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 <constant>us</constant>. V tomto prípade je nutné nainštalovať balík s
|
|
miestnymi nastaveniami pre túto krajinu (<application>locales-us</application>).
|
|
</simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara><envar>LC_NAME</envar> --- Formát mena a priezviska. U nás má kaž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 <acronym>USA</acronym> 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é skupiny locales, bez ohľadu na hodnotu príslušných
|
|
premenných.</simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara><envar>LANG</envar> --- Hodnota tejto premennej sa použije pre tie skupiny
|
|
locales, ktoré nemajú príslušnú premennú nastavenú.</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 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 Komárom zase
|
|
<computeroutput>LANGUAGE="hu:sk"</computeroutput>.</simpara>
|
|
|
|
<caution>
|
|
<simpara>Premenná <envar>LANGUAGE</envar> ovplyvňuje len premennú
|
|
<envar>LC_MESSAGES</envar>! Pre správnu funkciu je 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
|
|
<acronym>GNU</acronym> 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 <acronym>RPM4</acronym> 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" endterm="apps-rpm4.title">.</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 <acronym>ISO</acronym> <acronym>C</acronym> a <acronym>POSIX</acronym>
|
|
odlišovať a potom to bude záležať na konfigurácii systému.
|
|
<simplelist>
|
|
<member><constant>C</constant> --- nastavenia podľa štandardu <acronym>ISO</acronym>
|
|
<acronym>C</acronym>.</member>
|
|
|
|
<member><constant>POSIX</constant> --- nastavenia podľa štandardu
|
|
<acronym>POSIX</acronym>. V súčasnosti je to alias pre nastavenia
|
|
<constant>C</constant>.</member>
|
|
</simplelist></para>
|
|
</section>
|
|
</section> <!-- locales-principles -->
|
|
|
|
<section id="locales-slovakia">
|
|
<title>Miestne nastavenia pre Slovensko</title>
|
|
|
|
<para>V prvom rade treba nainštalovať balí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.
|
|
</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, pomocou ktorých sa nastavujú
|
|
jednotlivé kategórie miestnych nastavení. Je to preto, lebo práve z týchto súborov sa
|
|
načítajú nastavenia, keď je daná premenná nastavená na hodnotu <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ú totožné s názvami niektorých balíkov nainštalovaných na
|
|
vašom systéme, s príponou mo. Sú to preklady reťazcov z jednotlivých aplikácií. O nich si
|
|
povieme neskôr. Teraz by sme mohli zistiť, čo vlastne obsahujú súbory <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. <firstterm>aliasy</firstterm> 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>
|
|
|
|
<warning>
|
|
<simpara>Ale na aliasy typu <constant>slovak</constant> si dávajte bacha! Niektoré
|
|
aplikácie, ktoré v súvislosti s miestnymi nastaveniami nevyužívajú služby libc, totiž na
|
|
aliasy kašľú a zaujímajú ich len prvé dva znaky nastavených premenných. A tak sa zo
|
|
<constant>slovak</constant> stane <constant>sl</constant>, čo je Slovinsko. Pozitívne je,
|
|
že pre slovenčinu môžete nastaviť premennú napríklad na hodnotu
|
|
<constant>skaderukaskadenoha</constant>.</simpara>
|
|
</warning>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Konfigurácia miestnych nastavení</title>
|
|
|
|
<para>Nastavenia internacionalizácie sa (v <systemitem class="osname">RedHat</systemitem> a
|
|
<systemitem class="osname">Mandrake</systemitem>) nachádzajú v súbore
|
|
<filename>/etc/sysconfig/i18n</filename>. Je to veľmi užitočný súbor, ktorý si rýchlo
|
|
obľúbite. Možno v ňom nastaviť všetko, čo sa kedy týkalo internacionalizácie, národných
|
|
fontov a rozložení kláves. Tento súbor však len definuje systémové premenné a zvykne sa
|
|
vkladať (<computeroutput>source /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>˜/.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, ktorý 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 pracovať s časom 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.</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 <application>locales-cs</application>):
|
|
<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
|
|
<application>locales-{sk,hu,cs}</application> 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 -->
|
|
|
|
|
|
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
|
|
<!-- $Id$ -->
|
|
|
|
<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>Zmysel života, vesmíru a vôbec.</quote>
|
|
</para>
|
|
|
|
<section id="console-fonts">
|
|
<title>Slovenčina na výstupe textovej konzoly</title>
|
|
|
|
<section id="console-fonts-fonts">
|
|
<title>Fonty</title>
|
|
|
|
<para>Keď zobudíte o polnoci hocikoho, kto vo svojom živote videl počítač a opýtate sa ho, ako
|
|
rozbehať slovenské znaky, určite spomenie niečo ako fonty. Na zobrazovanie znakov na
|
|
obrazovku -- či už v textovom alebo grafickom režime -- slúžia skutočne fonty. Fonty pre
|
|
konzolu a programy určené na manipuláciu s nimi sa nachádzajú v balíku
|
|
<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>), prípadne <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
|
|
<acronym>ASCII</acronym> kód písmena <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. <command>mc</command>).</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í
|
|
<acronym>UTF-8</acronym>.</para>
|
|
</section> <!-- console-fonts-latin2 -->
|
|
|
|
<section id="console-fonts-autoload">
|
|
<title>Automatické zavádzanie fontov</title>
|
|
|
|
<para> Ak ste si naš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>ssh</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... V
|
|
Tips-HOWTO je uvedený spôsob, ako zistiť, na koľkých virtuálnych konzolách je ešte užívateľ
|
|
prihlásený.</para>
|
|
|
|
<para>Ináč, aby bolo jasné, toto vám bude fungovať len na lokálnom stroji - zamyslite sa,
|
|
prečo asi <command>setfont</command> (aj <command>loadkeys</command>) nefunguje cez
|
|
vzdialený terminál a či by ste z toho niečo mali, keby to tak nebolo.</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 ste si chceli tento súbor
|
|
len prečítať bez potreby následnej navštevy psychiatra, stačilo by zaviesť nejaký font so
|
|
slovenskou podporou. Ale keďže ste uvedomelý linuxák / uvedomelá linuxáčka, hneď
|
|
chcete do <citetitle>Slovak-HOWTO</citetitle> prispieť a pomocou klávesnice písať slovenský
|
|
text. Na to 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é z dôvodu 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ájúcu 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
|
|
znova zaviesť defkeymap.</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, ktoré nám pomôžu pozmeniť existujúce kmap súbory
|
|
s popismi slovenských klávesníc, aby ste si poradili s (mne známymi) komplikáciami, alebo
|
|
upravili rozloženie kláves podľa svojho gusta.</para>
|
|
</section> <!-- console-kbd-kmap -->
|
|
|
|
<section id="console-kbd-include">
|
|
<title>Include a nesprávna funkcia kláves <keycap>E</keycap> a <keycap>C</keycap></title>
|
|
|
|
<para>Problém s <keycap>E</keycap> a <keycap>C</keycap> je spôsobený zavedením jednotnej meny
|
|
v európskej únii. Na vine nie je ani tak <acronym>EU</acronym>, ale niekto, kto symboly pre
|
|
<keycap>euro</keycap> a <keycap>cent</keycap> umiestnil na <keycombo><keycap>AltGr</keycap>
|
|
<keycap>E</keycap></keycombo> a <keycombo><keycap>AltGr</keycap><keycap>C</keycap>
|
|
</keycombo>, č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>, …).</para>
|
|
|
|
<para>Riešenie je veľmi 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úcom 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
|
|
<acronym>US</acronym> 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 sekvenciách. 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č. Radšej budeme písať stupne.</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 <constant>iso-8859-1</constant>, 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á <keycap>a</keycap>-<keycap>z</keycap>,
|
|
<keycap>A</keycap>-<keycap>Z</keycap> 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 <quote>visieť</quote>, 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>Každá compose sekvencia sa začína kľúčovým slovom
|
|
<computeroutput>compose</computeroutput>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Nasleduje 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 chceme 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
|
|
<keycap>Alt</keycap> 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 'Ô' # O s vokáňom cez mäkčeň
|
|
compose '^' 'a' to 'ä' # široké a cez mäkčeň,
|
|
compose '^' 'A' to 0x84 # ...preto nepotrebujeme dead_diaeresis
|
|
</programlisting></para>
|
|
|
|
<para>Mimochodom, v súbore <filename>/usr/lib/kbd/keymaps/compose/compose.latin2</filename>
|
|
máte zoznam compose sekvencií pre normu <acronym>ISO-8859-2</acronym>.</para>
|
|
</section> <!-- console-kbd-dead -->
|
|
|
|
<section id="console-kbd-autoload">
|
|
<title>Automatické zavádzanie keymap súboru</title>
|
|
|
|
<para>Na nastavenie rozlož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 <command>keytable</command>,
|
|
ktorý je volaný priamo z <filename>rc.sysinit</filename>, takže netreba vytvárať linky v
|
|
adresároch pre runlevel <constant>3/multiuser</constant>, prípadne <constant>5/X</constant>.
|
|
</para>
|
|
|
|
<para>V dokumentácii k <application>initscripts</application> sa píš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 pripájaním/kontrolou súborových systémov. To môže byť užitočné, ak potrebujete zadať
|
|
heslo roota v prípade problémov. Musí to byť <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ú (include) iné popisy z tejto adresárovej
|
|
štruktúry.</quote></para>
|
|
|
|
<para>Po pripojení 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 -->
|
|
|
|
|
|
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
|
|
<!-- $Id$ -->
|
|
|
|
<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, že <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><druh></emphasis>-fonts</application>, kde
|
|
<emphasis><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, …
|
|
</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>,
|
|
nemali by vás zavrieť, ak použijete <application>TrueType</application> fonty obsiahnuté v
|
|
ich distribúciách. Existuje aj mnoho balíkov s <application>TrueType</application> fontmi s
|
|
podporou normy <acronym>ISO-8859-2</acronym>, ktoré sú voľ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
|
|
<acronym>ISO-8859-2</acronym> 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
|
|
<acronym>ISO-8859-2</acronym> zodpovedajúcimi menami slovenských fontov. Napríklad
|
|
požiadavka na font
|
|
<literallayout><computeroutput>
|
|
-b&h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2
|
|
</computeroutput></literallayout>
|
|
poskytne a teda zobrazí 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šetky adresáre s fontami, samotné súbory fontov a súbory, ktoré číta <application>X
|
|
Window System</application> alebo <application>X Font Server</application>, musia mať
|
|
nastavené rozumné prístupové práva.</para>
|
|
</listitem>
|
|
|
|
<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 <command>xfs</command>, 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 <command>xfs</command>, 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 <constant>5/X</constant>), radšej si to pri pokusoch s fontami zmeňte
|
|
na <constant>3/multiuser</constant> až pokiaľ si nie ste sakramentsky istí, ž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/<cmdline></filename></member>
|
|
<member><filename>/usr/X11R6/etc/X11/<cmdline></filename></member>
|
|
<member><filename>/etc/X11/$XF86CONFIG</filename></member>
|
|
<member><filename>/usr/X11R6/etc/X11/$XF86CONFIG</filename></member>
|
|
<member><filename>/etc/X11/XF86Config-4</filename></member>
|
|
<member><filename>/etc/X11/XF86Config</filename></member>
|
|
<member><filename>/etc/XF86Config</filename></member>
|
|
<member><filename>/usr/X11R6/etc/X11/XF86Config.<hostname></filename></member>
|
|
<member><filename>/usr/X11R6/etc/X11/XF86Config-4</filename></member>
|
|
<member><filename>/usr/X11R6/etc/X11/XF86Config</filename></member>
|
|
<member><filename>/usr/X11R6/lib/X11/XF86Config.<hostname></filename></member>
|
|
<member><filename>/usr/X11R6/lib/X11/XF86Config-4</filename></member>
|
|
<member><filename>/usr/X11R6/lib/X11/XF86Config</filename></member>
|
|
</simplelist></para>
|
|
|
|
<para>Pamä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.</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 ≥ 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:…</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 <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><</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árodnostiam sa podarilo rozchodiť myš vo svojom
|
|
jazyku. Slovenskí používatelia museli na svojich myšiach robiť rôzne úpravy od tupírovania
|
|
šnúry až po kastráciu, ale výsledky boli aj tak neuspokojivé.</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 <citetitle>Pravidlami slovenského pravopisu</citetitle> 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 <TLDE> { [ semicolon, degree ],
|
|
[ quoteleft, asciitilde ] };
|
|
key <AE01> { [ plus, 1 ],
|
|
[ 1, exclam ] };
|
|
key <AE02> { [ lcaron, 2 ],
|
|
[ 2, at ] };
|
|
key <AE03> { [ scaron, 3 ],
|
|
[ 3, numbersign ] };
|
|
key <AE04> { [ ccaron, 4 ],
|
|
[ 4, dollar ] };
|
|
key <AE05> { [ tcaron, 5 ],
|
|
[ 5, percent ] };
|
|
key <AE06> { [ zcaron, 6 ],
|
|
[ 6, asciicircum ] };
|
|
key <AE07> { [ yacute, 7 ],
|
|
[ 7, ampersand ] };
|
|
key <AE08> { [ aacute, 8 ],
|
|
[ 8, asterisk ] };
|
|
key <AE09> { [ iacute, 9 ],
|
|
[ 9, parenleft ] };
|
|
key <AE10> { [ eacute, 0 ],
|
|
[ 0, parenright ] };
|
|
key <AE11> { [ equal, percent ],
|
|
[ minus, underscore ] };
|
|
key <AE12> { [ dead_acute, dead_caron ],
|
|
[ equal, plus ] };
|
|
|
|
// line 2
|
|
key <AD01> { [ q, Q ],
|
|
[ q, Q ] };
|
|
key <AD02> { [ w, W ],
|
|
[ w, W ] };
|
|
key <AD03> { [ e, E ],
|
|
[ e, E ] };
|
|
key <AD04> { [ r, R ],
|
|
[ r, R ] };
|
|
key <AD05> { [ t, T ],
|
|
[ t, T ] };
|
|
key <AD06> { [ z, Z ],
|
|
[ y, Y ] };
|
|
key <AD07> { [ u, U ],
|
|
[ u, U ] };
|
|
key <AD08> { [ i, I ],
|
|
[ i, I ] };
|
|
key <AD09> { [ o, O ],
|
|
[ o, O ] };
|
|
key <AD10> { [ p, P ],
|
|
[ p, P ] };
|
|
key <AD11> { [ uacute, slash ],
|
|
[ bracketleft, braceleft ] };
|
|
key <AD12> { [ adiaeresis, parenleft ],
|
|
[ bracketright, braceright ] };
|
|
|
|
// line 3
|
|
key <AC02> { [ s, S ],
|
|
[ s, S ] };
|
|
key <AC03> { [ d, D ],
|
|
[ d, D ] };
|
|
key <AC04> { [ f, F ],
|
|
[ f, F ] };
|
|
key <AC05> { [ g, G ],
|
|
[ g, G ] };
|
|
key <AC08> { [ k, K ],
|
|
[ k, K ] };
|
|
key <AC09> { [ l, L ],
|
|
[ l, L ] };
|
|
key <AC10> { [ ocircumflex, quotedbl ],
|
|
[ semicolon, colon ] };
|
|
key <AC11> { [ section, exclam ],
|
|
[ quoteright, quotedbl ] };
|
|
|
|
// line 4
|
|
key <AB01> { [ y, Y ],
|
|
[ z, Z ] };
|
|
key <AB02> { [ x, X ],
|
|
[ x, X ] };
|
|
key <AB04> { [ v, V ],
|
|
[ v, V ] };
|
|
key <AB05> { [ b, B ],
|
|
[ b, B ] };
|
|
key <AB06> { [ n, N ],
|
|
[ n, N ] };
|
|
key <AB07> { [ m, M ],
|
|
[ m, M ] };
|
|
key <AB08> { [ comma, question ],
|
|
[ comma, less ] };
|
|
key <AB09> { [ period, colon ],
|
|
[ period, greater ] };
|
|
key <AB10> { [ minus, underscore ],
|
|
[ slash, question ] };
|
|
key <BKSL> { [ ncaron, parenright ],
|
|
[ backslash, bar ] };
|
|
// End alphanumeric section
|
|
|
|
// begin modifier mappings
|
|
modifier_map Shift { Shift_L };
|
|
modifier_map Lock { Caps_Lock };
|
|
modifier_map Control{ Control_L };
|
|
modifier_map Mod3 { Mode_switch };
|
|
};
|
|
</programlisting></para>
|
|
</section> <!-- xwindow-examples-keymap -->
|
|
</section> <!-- xwindow-examples -->
|
|
</section> <!-- xwindow -->
|
|
|
|
|
|
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
|
|
<!-- $Id$ -->
|
|
|
|
<section id="kernel">
|
|
<title>Slovenčina a linuxový 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 <command>loadkeys</command> s voľbou príkazového riadku
|
|
<computeroutput>--mktable <keymapfile></computeroutput>, tento vám vygeneruje
|
|
<quote>zdrojový kód</quote> súboru <filename><keymapfile></filename>. Ten uložte do súboru
|
|
<filename>drivers/char/defkeymap.c</filename> v adresárovej štruktúre zdrojového kódu
|
|
<systemitem class="osname">Linuxu</systemitem>.
|
|
<screen>
|
|
sh# cd /usr/src/linux
|
|
sh# loadkeys --mktable sk-qwerty > drivers/char/defkeymap.c
|
|
</screen></para>
|
|
|
|
<para>Toto je akási náhrada za <filename>/etc/sysconfig/console/default.kmap</filename> s tým
|
|
rozdielom, že vaše rozloženie bude zavedené už od úplného štartu systému. V prípade
|
|
problémov s initscriptami (alebo štarte zo záchrannej diskety) budete mať zavedené svoje
|
|
rozloženie v každom prípade. Pozor, nekompilujte si kernel so slovenským rozložením len preto,
|
|
že žijete na Slovensku! Na to slúži príkaz <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 <systemitem class="osname">Linuxu</systemitem> na
|
|
<acronym>FAT</acronym>/<acronym>VFAT</acronym> oddiely a mať prípadnú diakritiku v názvoch
|
|
súborov na takýchto partíciách, pri konfigurácii kernelu (pred kompilovaním) zvoľte tieto
|
|
nastavenia v časti <menuchoice> <guimenu>Filesystems</guimenu> <guimenuitem>Native Language
|
|
Support</guimenuitem> </menuchoice>:
|
|
<simplelist>
|
|
<member><systemitem class="macro">CONFIG_NLS_CODEPAGE_852</systemitem> --- Codepage 852
|
|
</member>
|
|
|
|
<member><systemitem class="macro">CONFIG_NLS_ISO8859_2</systemitem> --- ISO 8859-2
|
|
(Latin 2)</member>
|
|
</simplelist></para>
|
|
|
|
<para>Pri pripájaní <acronym>FAT</acronym>/<acronym>VFAT</acronym> môž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 -->
|
|
|
|
|
|
<![%skhowto.draft;[
|
|
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
|
|
<!-- $Id$ -->
|
|
|
|
<section id="unicode">
|
|
<title id="unicode.title">Unicode</title>
|
|
|
|
<para></para>
|
|
</section> <!-- unicode -->
|
|
|
|
]]>
|
|
|
|
<![%skhowto.draft;[
|
|
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
|
|
<!-- $Id$ -->
|
|
|
|
<section id="gettext">
|
|
<title id="gettext.title">Prekladanie aplikácií do slovenč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 <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
int i;
|
|
char *suffix;
|
|
time_t curtime;
|
|
|
|
if (argc > 2)
|
|
suffix = "s";
|
|
else
|
|
suffix = "";
|
|
printf("Got %d argument%s.\n", argc - 1, suffix);
|
|
|
|
if (argc > 1) {
|
|
puts("List of arguments:");
|
|
for (i = 1; i < argc; i++) {
|
|
if (i == 1)
|
|
suffix = "st";
|
|
else if (i == 2)
|
|
suffix = "nd";
|
|
else if (i == 3)
|
|
suffix = "rd";
|
|
else
|
|
suffix = "th";
|
|
printf("\t%d%s %s\n", i, suffix, argv[i]);
|
|
}
|
|
}
|
|
|
|
curtime = time(NULL);
|
|
printf("Exiting at: %s", ctime(&curtime));
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|
|
</programlisting>
|
|
|
|
<section id="gettext.writing.setlocale">
|
|
<title>Funkcia <function>setlocale()</function></title>
|
|
|
|
<para>Aby funkcie z knižnice <application>gettext</application>, aký 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 <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
|
|
#include <libintl.h> // hlavičkový súbor knižnice gettext
|
|
#include <locale.h> // setlocale()
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
int i;
|
|
char *suffix;
|
|
time_t curtime;
|
|
|
|
setlocale(LC_ALL, NULL); // nastaví 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>
|
|
|
|
]]>
|
|
|
|
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
|
|
<!-- $Id$ -->
|
|
|
|
<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 <application>Vim</application>
|
|
spustený z takéhoto <application>Bashu</application> 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 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 <application>Lynxu</application> sa lokalizácie týkajú hlavne tieto
|
|
nastavenia:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><firstterm>Display character set</firstterm> (<varname>CHARACTER_SET</varname>) ---
|
|
kódovanie znakov na výstupe. Toto hovorí o tom, do akej znakovej sady sa budú prevádzať
|
|
znaky pred zobrazením na vašej obrazovke. Ak máte štandardne nastavený slovenský font,
|
|
môžete mať toto vždy nastavené na <literal>ISO-8859-2</literal>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><firstterm>Assumed document character set</firstterm>
|
|
(<varname>ASSUME_CHARSET</varname>) --- aká znaková sada sa má použiť, ak html dokument
|
|
neobsahuje informáciu o svojom kódovaní a nastavenie <computeroutput>Raw
|
|
8-bit</computeroutput> je vypnuté. <acronym>HTTP</acronym> štandardom je
|
|
<acronym>ISO-8859-1</acronym> takže tak. Väčšinou majú dokumenty s iným kódovaním ako
|
|
<acronym>ISO-8859-1</acronym> informáciu o svojej znakovej sade, vtedy sa toto
|
|
nastavenie neberie do úvahy. Ak chcete, aby sa dokumenty, ktoré nemajú explicitne danú
|
|
sadu znakov, považ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><firstterm>Raw 8-bit</firstterm> --- 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>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>
|
|
|
|
<listitem>
|
|
<para><varname>send_charset</varname> -- </para>
|
|
</listitem>
|
|
</itemizedlist></para>
|
|
</section> <!-- apps-mutt -->
|
|
|
|
<section id="apps-readline">
|
|
<title id="apps-readline.title">Readline</title>
|
|
|
|
<para>Ján 'judas' Tomka, <email>judas@linux.sk</email></para>
|
|
|
|
<para>V súbore s globálnymi nastaveniami <filename>/etc/inputrc</filename> alebo vo svojom
|
|
uží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.</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 <acronym>ISO-8859-2</acronym>. 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> <!-- apps -->
|
|
|
|
|
|
<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
|
|
<!-- $Id$ -->
|
|
|
|
<section id="tricks">
|
|
<title id="tricks.title">Fintičky so slovenčinou</title>
|
|
|
|
<section id="tricks-vim">
|
|
<title>Zadávanie slovenských znakov vo Vim</title>
|
|
|
|
<para><ulink url="http://www.kotelna.sk/keso/unix/vim.html">
|
|
http://www.kotelna.sk/keso/unix/vim.html</ulink></para>
|
|
|
|
<para>Ak nemôžete, alebo nechcete používať rozloženie kláves pre slovenčinu, ale potrebujete
|
|
zadať pár našich znakov vo <application>Vim</application>, 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ť <function>imap</function> 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ý možno použiť pri vytváraní verzie súboru úplne bez diakritiky:
|
|
<programlisting>
|
|
sed -e "s:á:a:g" -e "s:Á:A:g" -e "s:ä:a:g" -e "s:Ä:A:g" \
|
|
-e "s:č: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
|
|
<application>TeXom</application>. 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 <acronym>ASCII</acronym> (a to
|
|
už je pekný Saigon...)</para>
|
|
</section> <!-- tricks-recode-recode -->
|
|
</section> <!-- tricks-recode -->
|
|
</section> <!-- 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 ***
|
|
-->
|
|
|