Penguin
Note: You are viewing an old revision of this page. View the current version.

Slovak-HOWTO

Slovak-HOWTO

Ján 'judas' Tomkaverzia 4 (Blanka)

16. február 2002

Tento dokument poskytuje informácie týkajúce sa problematiky miestnych nastavení v prostredí opera#269ných systémov GNU/Linux s oh#318adom na potreby slovenského u#382ívate#318a.

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

1. Úvodné informácie

1.1. Licencia

Áno, mô#382ete #269íta#357 tento dokument, a to aj na komer#269né u#269ely!

Autori nenesú zodpovednos#357 za materiálnu #269i psychickú ujmu spôsobenú #269itate#318ovi, jeho rodinným príslu#353níkom, domácim a hospodárskym zvieratám, prípadne po#269íta#269ovému zariadeniu.

Toto je #8222free" dokument --- mô#382ete ho #353íri#357 a/alebo modifikova#357 v súlade s podmienkami licencie GNU Free Documentation Licence, ktorej znenie nájdete na adrese http://www.gnu.org/licenses/fdl.html.

Autorom pôvodného Slovak-HOWTO je Ján Ondrej (SAL). Tento dokument z neho obsahuje: názov a návody pre Joe, MC a Sambu. V#353etko bolo ukradnuté so súhlasom autora.


1.2. Aktuálna verzia a prispievanie

Ak nájdete v tomto súbore nie#269o, #269o je nezlú#269ite#318né s va#353im linuxovým presved#269ením, napí#353te najskôr do diskusie linux, potom sk-i18n, dajte príspevok na www.linux.sk a poohovárajte ma na #sklug. V prípade, #382e vás to neprejde, skontrolujte, #269i máte aktuálnu verziu a, samozrejme, a#382 nakoniec, dajte mi vedie#357. Adresy sú:

****

Aktuálna verzia: http://slovencina.linux.sk/howto

**** ****

Priania, s#357a#382nosti a ponuky na sobá#353: judas@linux.sk

****

Na túto adresu sa tie#382 obracajte, ak máte nie#269o, #269o by nemalo chýba#357 v Slovak-HOWTO.

Nadácia Pomô#382 a skonaj prispela na dopísanie #269asti o klávesnici v iXoch sama sebe #269iastkou 500 000,- Sk, v televízii Pomô#382 a skonaj i v rovnomennom #269asopise boli zverejnené inzeráty, politická strana PAS nekompromisne trvá na kompromise a v#353etci pijú minerálku Pomô#382 a skonaj. Tigre, nosoro#382ce a lú#269ne koníky boli pokrstené, a predsa sa s kapitolou o klávesnici v iXoch ni#269 nedeje. Mimochodom, sme naj#269ítanej#353ie Slovak-HOWTO na svete!

Pri prispievaní sa skúste riadi#357 nasledovnými pravidlami:

****

Pre tých, ktorí majú vá#382ny záujem podie#318a#357 sa na písaní Slovak-HOWTO, je mo#382ný CVS prístup priamo k zdrojovým kódom dokumentu na serveri cvs.linuxdoc.org

v adresári

/cvsroot/LDP/howto/docbook/Slovak-HOWTO/. Bli#382#353ie informácie o získaní CVS konta a webovskom rozhraní k CVS serveru nájdete v LDP Autor Guide.

**** ****

Opravy robte v#382dy vo formáte SGML (DTD

DocBook, verzia 4.0), ktorý je primárnym formátom pri tvorbe

tohto dokumentu. Je tie#382 mo#382né posiela#357 #269istý text. Príspevky pí#353te, pokia#318 mo#382no, s diakritikou v norme ISO-8859-2.

**** ****

Ak je to nie#269o vä#269#353ie, dajte mi najskôr vedie#357, #269o chystáte, preto#382e je mo#382né,

  1. 382e u#382 na tom niekto maká a teda bu#271 na to zabudnete, alebo to skúsite dorobi#357 s danou

osobou. (Vzh#318adom na to, #382e zatia#318 sa do tohto dokumentu dostalo asi 20 riadkov cudzieho textu, zdá sa mi predchádzajúca veta maximálne smie#353na. Ha-ha, zasmial som sa...)

**** ****

Va#353e meno a adresa budú automaticky zverejnené spolu s va#353im príspevkom. Ak si to ne#382eláte, musíte o to výslovne po#382iada#357. Takisto, autor príspevku u#382 jeho zaslaním implicitne súhlasí s aplikáciou licencie tohto dokumentu na #269as#357, ktorej je autorom.

**** ****

V Czech-HOWTO sa hovorí: #8222Kdy#382 u#382 n#283kdo podobný dokument #269te, d#283lá to z nutnosti a ne pro své pobavení." Musíme v#353ak zobra#357 do úvahy, #382e v #268echách je vy#353#353ia #382ivotná úrove#328 a oni a#382 to#318ko srandy nepotrebujú...

****


1.3. Osoby a obsadenie

Mená autorov návodov na lokalizáciu konkrétnych aplikácií sa nachádzajú priamo v kapitole Posloven#269ovanie konkrétnych aplikácií, prípadne Finti#269ky so sloven#269inou.

****

Ján 'judas' Tomka -- Zodpovedný vedúci.

**** ****

  1. 317ubomír 'salo' Sedlá#269ik -- ksh/csh/tcsh, grammar bugfixes.

    ***----

2. Miestne nastavenia

2.1. Princípy miestnych nastavení

Podpora miestnych nastavení je dnes mimoriadne dôle#382itým faktorom, ktorý charakterizuje jednotlivé opera#269né systémy. #268asy, ke#271 boli #318udia #353tastní, #382e to nie#269o pí#353e, sú nenávratne pre#269 a pou#382ívatelia vy#382adujú podporu svojich miestnych nastavení. V GNU systémoch je táto podpora implementovaná priamo do #353tandardnej kni#382nice jazyka C -- GNU libc. Táto podpora je navrhnutá tak, aby zoh#318ad#328ovala v#353etky po#382iadavky kladené na nastavenia pre akúko#318vek krajinu a akýko#318vek jazyk.


2.1.1. Ciele a prostriedky

Rôzne krajiny a kultúry majú odli#353né pravidlá komunikácie. Tieto pravidlá mô#382u by#357 malého rozsahu, napr. formát dátumu a #269asu, a#382 po ve#318mi koplexné ako je jazyk, ktorým hovoria.

Internacionalizácia softvéru znamená programova#357 ho tak, aby bol schopný pracova#357 s pou#382ivate#318ovými miestnymi nastaveniami. V ISO C pracuje internacionalizácia v zmysle locales. Ka#382dé locale (miestne nastavenia) #353pecifikuje skupinu pravidiel, jedno pravidlo pre ka#382dý u#269el. U#382ívate#318 si zvolí skupinu pravidiel #353pecifikovaním locale (pomocou systémových premenných).

V#353etky programy dedia nastavené locale v rámci ich prostredia. Pod podmienkou, #382e programy sú napísané tak, #382e akceptujú nastavené locales, mô#382u sa riadi#357 pravidlami, ktoré uprednost#328uje pou#382ívate#318.


2.1.2. Kategórie a ich funkcie

Táto #269as#357 popisuje jednotlivé premenné, ktoré ovplyv#328ujú miestne nastavenia a ktorými sa riadia aj funkcie kni#382nice GNU libc.

Nastavenie premennej prostredia sa robí pomocou príkazu shellu

bash$ export LC_PREMENNA=sk tcsh$ setenv LC_PREMENNA sk

LC_PREMENNA je jedna z nasledujúcich:

****

LC_COLLATE --- Triedenie re#357azcov. Nastavením tejto premennej mo#382no prinúti#357 aplikácie, napr. sort, ls a iné, aby pri porovnávaní re#357azcov brali do úvahy miestne rozlo#382enie jednotlivých písmen v abecede. Sloven#269ina má napríklad hne#271 nieko#318ko znakov, ktoré by pri triedení pod#318a

  1. 269íselnej hodnoty znaku spôsobovali problémy. Slovenské nastavenia triedenia povedia

funkciam strcoll a strxfrm, #382e napríklad ch je jedno písmeno a nasleduje hne#271 za h a nie za c, #382e #353iroké ä nasleduje za dlhým á a to zase za oby#269ajným a. Skúste si to na príkaze sort. Zadajte písmená cc ch hh, potom zme#328te LC_COLLATE príkazom

bash$ export LC_COLLATE=sk tcsh$ setenv LC_COLLATE sk

Skúste to so sort znovu a porovnajte výsledok...

**** ****

LC_CTYPE --- Klasifikácia a prevod znakov, multibyte. Správne nastavenie tejto premennej je nutné pre korektné rozli#353ovanie znakov abecedy jednotlivých jazykov, ur#269enie #269íslic, tzv. bielych znakov, prevod malých písmen na ve#318ké, at#271. Najvhodnej#353ie je túto premennú nenastavova#357 a tým umo#382ni#357, aby bola jej hodnota prebratá od premenných LC_ALL alebo LANG (vi#271 #271alej). Ak ale nechcete pou#382íva#357 slovenské nastavenia, len ma#357 správne zobrazené slovenské fonty a funk#269nú slovenskú klávesnicu na konzole aj pod iXami, nastavte iba túto premennú.

V#382dy si bu#271te stopercentne istí, #382e máte túto premennú nastavenú (bu#271 cez LC_ALL, LANG alebo priamo), lebo inak nemá zmysel

  1. 269íta#357 #271alej! Ono #8222klasifikácia a prevod znakov" neznie nejako lákavo,

ale vedzte, #382e je to sakramentsky dôle#382ité pre #382ivot slovenských písmeniek vo va#353om Linuxe!

**** ****

LC_MONETARY, LC_NUMERIC --- Formát pe#328a#382ných a

  1. 269íselných hodnôt. Umo#382#328uje meni#357 skupinu nastavení, ktoré sa pou#382ijú pri formátovaní

pe#328a#382ných hodnôt alebo v#353etkých ostatných #269íselných hodnôt. Sú to desatinná #269iarka, odde#318ova#269 tisícov, zoskupovanie #269íslic, znamienka pre kladné a zaporné hodnoty, at#271.

**** ****

LC_TIME --- Formátovanie dátumu a #269asu. Nastavenia odde#318ova#269ov medzi hodinami, minútami a sekundami, názvy dní, poradie rok, mesiac a de#328 v dátume, ...

**** ****

LC_MESSAGES --- Výber jazyka, pou#382itého u#382ívate#318ským rozhraním na preklad hlá#353ok programov. Toto je presne tá premenná, ktorá prinúti aplikácie hovori#357 po slovensky. Vi#271 #271al#353ie kapitoly.

****

S prekladom hlásení programov, hlavne s umiestnením súborov s prelo#382enými re#357azcami, súvisí premenná NLSPATH. Mala by obsahova#357 dvojbodkami oddelený zoznam adresárov, v ktorých sa budú h#318ada#357 .mo súbory pre miestne nastavenia dané premennou LC_MESSAGES. Premennú NLSPATH je v#353ak potrebné nastavova#357 len vo výnimo#269ných prípadoch, preto#382e aplikácie h#318adajú preklady svojich hlásení v #353tandardných adresároch pre tieto súbory.

Okrem týchto premenných bolo implementovaných nieko#318ko #271al#353ích, ktoré zatia#318 nie sú zdokumentované (The GNU C Library Reference Manual). Ich význam je zrejmý z názvu, tak#382e uvediem aj svoju dedukciu.

****

LC_PAPER --- Formát papiera. V na#353ich zemepisných #353írkach sa napríklad pou#382íva formát A4, v Amerike je to Letter, at#271. Pozor, táto premenná neobsahuje priamo názov formátu, ale (tak, ako v#353etky LC_ premenné), skratku miestneho nastavenia, teda u nás to bude sk. Ak by sme chceli pou#382íva#357 formát Letter, museli by sme túto premennú nastavi#357 na kód miestneho nastavenia niektorej z krajín, ktorá pou#382íva takýto formát, napríklad us. V tomto prípade je nutné nain#353talova#357 balík s miestnymi nastaveniami pre túto krajinu (locales-us).

**** ****

LC_NAME --- Formát mena a priezviska. U nás má ka#382dý dve mená, pí#353u sa v poradí meno, priezvisko. V Rusku majú zase tri mená v poradí meno, otcovo-meno, priezvisko. V Ma#271arsku majú dve mená tak ako u nás, ale pí#353u sa v opa#269nom poradí. O tom je táto premenná. Asi...

**** ****

LC_ADDRESS --- Spôsob zápisu adresy. Poradie ulice a popisného

  1. 269ísla domu, ZIP kód, PS#268 apod.

    *** ***

LC_TELEPHONE --- Formát telefónnych a faxových #269ísel. Ur#269uje zoskupovanie #269íslic, ich oddelovanie, po#269et #269ísel predvo#318by, ...

**** ****

LC_MEASUREMENT --- Miery. Jednotky hmotnosti, objemu, teploty a d#314#382ky, pou#382ívané v tej ktorej krajine. Program napísaný v USA bude pravdepodobne po#269íta#357 s galónmi vody, ale ak je správne napísaný, s premennou LC_MEASUREMENT nastavenou na #8222sk" bude zobrazova#357 litre v správnom pomere. To isté platí napríklad pre prevod teploty vo Fahrenheitovej stupnici na stupne Celsia.

**** ****

LC_IDENTIFICATION --- Az apád, tak toto neviem. Rodné #269íslo?

  1. 268íslo sociálneho poistenia? #268íslo topánok?

    ***----

2.1.3. #270al#353ie premenné

****

LC_ALL --- Ak je táto premenná nastavená, pou#382ije sa jej hodnota pre v#353etky vy#353#353ie spomenuté skupiny locales, bez oh#318adu na hodnotu príslu#353ných premenných.

**** ****

LANG --- Hodnota tejto premennej sa pou#382ije pre tie skupiny locales, ktoré nemajú príslu#353nú premennú nastavenú.

**** ****

LANGUAGE --- Alternatívne miestne nastavenia. Táto premenná mô#382e obsahova#357 usporiadaný zoznam kódov miestnych nastavení oddelených dvojbodkami. Súbory s prekladmi hlá#353ok programov sa budú h#318ada#357 v poradí, v akom sú ur#269ené v tomto zozname. Ak sa nepodarí nájs#357 súbor s prelo#382enými hlá#353kami programu v jednom jazyku, pou#382ije sa súbor pre nasledujúci jazyk v zozname LANGUAGE. Navy#353e, ak sa súbor pre prvý jazyk aj nájde, ale niektorý re#357azec z neho nie je prelo#382ený, nepou#382ije sa pôvodný (anglický), ale najskôr sa pokúsi nájs#357 preklad daného re#357azca v súbore pre #271al#353í jazyk v zozname LANGUAGE. To je výhodné pre #318udí, ktorí okrem svojho jazyka ovládajú nejaký iný lep#353ie ako angli#269tinu, v ktorej sú zvy#269ajne programy originálne napísané. Napríklad Slovák by mohol ma#357 nastavené LANGUAGE="sk:cz" a Szolvák z Komárom zase LANGUAGE="hu:sk".

Premenná LANGUAGE ovplyv#328uje len premennú LC_MESSAGES! Pre správnu funkciu je nutné nastavi#357 aj ostatné premenné (minimálne LC_CTYPE).

**** ****

LINGUAS --- Táto premenná nemá #353peciálny význam z h#318adiska GNU libc, ale zvykne sa pou#382íva#357 pri in#353talácii programov (zo zdrojákov). Medzerami oddelený zoznam kódov miestnych nastavení ur#269uje jazyky, pre ktoré si u#382ívate#318 #382elá in#353talova#357 preklady re#357azcov aplikácie. Príklad:

bash$ export LINGUAS="sk cz" bash$ ./configure bash$ make install

Tieto príkazy skompilujú a nain#353talujú aplikáciu s podporou sloven#269iny a #269e#353tiny. In#353tala#269né skripty obvykle tie#382 kontrolujú obsah premenných LANG a LC_ALL, tieto ale mô#382u obsahova#357 len jeden kód miestnych nastavení.

**** ****

RPM_INSTALL_LANG --- #268astej#353ie ako zo zdrojového kódu sa aplikácie in#353talujú z rôznych balíkov (rpm, deb, ...). Kvôli #353etreniu miestom na disku (a logike -- málokto ovláda tridsa#357 re#269í) je v RPM4 mo#382né ur#269i#357 jazyk, ktorého prelo#382ené hlá#353ky sa budú in#353talova#357. Preto odporú#269am do súboru .bash_profile (.login) u#382ívate#318a, ktorý in#353taluje balíky (root), vlo#382i#357 nasledovný riadok:

bash$ export RPM_INSTALL_LANG=sk tcsh$ setenv RPM_INSTALL_LANG "sk"

Ak sa vám nebodaj stane taká vec, #382e nain#353talujete celý opera#269ný systém a a#382 potom sa dozviete o tejto premennej (tak, ako sa to stalo aj mne), skúste skript uvedený v #269asti RPM4.

****----

2.1.4. Priorita premenných

Miestne nastavenia sa ur#269ujú zo spomenutých premenných, pri#269om tieto sa vyhodnocujú v tomto poradí:

LANGUAGE --- ovplyv#328uje len LC_MESSAGES LC_ALLLC_*LANG

To znamená asi to#318ko, #382e ke#271 raz nastavíte LC_ALL, jednotlivé premenné LC_* sa u#382 neberú do úvahy. Na druhej strane, ak máte napríklad nastavené len niektoré z LC_*, ostatné sa nastavia na hodnotu premennej LANG.


2.1.5. Kódy miestnych nastavení

Premenné, ktoré ovplyv#328ujú miestne nastavenia, sa nap#314#328ajú kódmi miestnych nastavení. Kódy miestnych nastavení sú re#357azce, ktorých formát sa riadi nieko#318kými pravidlami. V#353eobecný tvar je:

jazyk[_územie[[.kódovanie?][@modifikátor?

jazyk je napr. sk pre sloven#269inu, cs pre #269e#353tinu, hu pre ma#271ar#269inu, územie je SK pre Slovensko, CZ pre #268eskú republiku, HU pre Ma#271arsko, kódovanie je ISO-8859-2 pre v#353etky stredoeurópske jazyky (je mo#382ne pou#382i#357 nieko#318ko formátov na zadanie kódovania) a modifikátor slu#382i na povolenie alebo zakázanie niektorých funkcií. Tie sú dané v definíciach miestnych nastavení. Napríklad, pre Ve#318kú Britániu je modifikátorom re#357azec euro a pri jeho pou#382ití sa ako pe#328a#382ná mena bude pou#382íva#357 euro namiesto libry. To znamená, #382e sa musí pou#382i#357 kódovanie iso-8859-15, ktoré definuje znaky euro a cent.

Príklady kódov miestnych nastavení (ka#382dý z týchto re#357azcov je mo#382né priradi#357 premenným miestnych nastavení, ale naj#269astej#353ie sa pou#382ívajú len dvojpísmenkové skratky v poslednom st#314pci):

Tabu#318ka 1. Príklady kódov miestnych nastavení

sk_SK.ISO-8859-2sk_SK skcs_CZ.ISO-8859-2cs_CZ@-chcs@-chcsen_GB.iso8859en_GBen@euroenja_JP.ujisja_JP.EUCja_JPja

Nemali by sme zabudnú#357 na dve #353tandardné locales, ktoré sa pou#382ijú, ak nie sú systémové premenné nastavené a programy ich pou#382ívajú do doby, kým sa inicializuje lokalizácia. Tvrdím, #382e sa pou#382ijú obe, preto#382e momentálne sú toto#382né, ale v budúcnosti sa mô#382u v tejto oblasti #353tandardy ISO C a POSIX odli#353ova#357 a potom to bude zále#382a#357 na konfigurácii systému.

C --- nastavenia pod#318a #353tandardu ISO C.POSIX --- nastavenia pod#318a #353tandardu POSIX. V sú#269asnosti je to alias pre nastavenia C.


2.2. Miestne nastavenia pre Slovensko

V prvom rade treba nain#353talova#357 balík s podporou miestnych nastavení, ktorý má názov locales a tie#382 balík s podporou priamo pre Slovensko --- locales-sk. Ak máte záujem pou#382íva#357 aj podporu pre nejaký iný jazyk (na na#353om území je aktuálna najmä #269e#353tina a ma#271ar#269ina), musíte tie#382 nain#353talova#357 balíky pre tieto jazyky.

V druhom rade si musíte nain#353talova#357 balíky s podporou miestnych nastavení a priamo sloven#269iny (sú to locales a locales-sk).

V #271al#353om kroku si nezabudnite nain#353talova#357 balíky locales a locales-sk. Takisto, pre ka#382dý jazyk, ktorý sa chystáte pou#382íva#357, si nain#353talujte balík s podporou miestnych nastavení.

V prípade problémov s miestnymi nastaveniami sa dr#382te predchádzajúcich troch krokov.


2.2.1. Súbory s miestnymi nastaveniami

Prejdime sa teraz trochu po na#353ich adresároch. Prvý nav#353tívime /usr/share/locale/sk. Na prvý poh#318ad vidno, #382e adresár a súbory v tomto adresári majú mená toto#382né 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#269ítajú nastavenia, ke#271 je daná premenná nastavená na hodnotu sk. Okrem nich tu mô#382e by#357 e#353te súbor charset, ktorý obsahuje len jeden riadok s re#357azcom iso-8859-2. Ten hovorí, aké kódovanie znakov sa má pou#382i#357 pre dané miestne nastavenia.

V#353etky súbory v tomto adresári sú binárne dáta a adresár LC_MESSAGES obsahuje súbory, ktorých mená sú toto#382né s názvami niektorých balíkov nain#353talovaných na va#353om systéme, s príponou mo. Sú to preklady re#357azcov z jednotlivých aplikácií. O nich si povieme neskôr. Teraz by sme mohli zisti#357, #269o vlastne obsahujú súbory LC_*.

Presu#328me sa do adresára /usr/share/i18n/. Tu, v textovom súbore sk_SK v podadresári locales/ sa kone#269ne nachádzajú slovenské miestne nastavenia v #269itate#318nej (a editovate#318nej) forme. Súbory v tomto adresári majú presne danú

  1. 353truktúru, ktorá je popísaná v manuálovej stránke locale(5). Pre be#382ného pou#382ívate#318a nemá

zmysel meni#357 nastavenia v tomto súbore, ke#271#382e ide o #353tandardné nastavenia, ktoré sa pou#382ívajú na celom Slovensku. Ale, proti Gustovi #382iadna putika! Ak sa teda rozhodnete zmeni#357 nie#269o v tomto súbore, musíte aktualizova#357 súbory v prvom spomínanom adresári /usr/share/locales/sk/ príkazom, ktorý údaje v súbore sk_SK skompiluje a ulo#382í do súborov LC_COLLATE, LC_CTYPE, ...

sh$ localedef -i sk_SK -f ISO-8859-2 sk_SK

V podadresári /usr/share/i18n/charmaps/ sa nachádzajú súbory s popismi jednotlivých kódovani znakov. Pre Slovensko je aktuálny ISO-8859-2 (#269o je aj obsah spomínaneho súboru charset).

V adresári /usr/share/locale/ sa nachádza súbor locale.alias, ktorý definuje tzv. aliasy pre kódy miestnych nastavení. Pre správnu funkciu slovenských miestnych nastavení by mal obsahova#357 tieto dva riadky:

sk sk_SK.ISO-8859-2 slovak sk_SK.ISO-8859-2

To zabezpe#269í, #382e aj ke#271 nezadáte kódovanie znakov, bude pou#382ité iso-8859-2. Druhý riadok má na svedomí to, #382e namiesto sk mo#382no zada#357 slovak.

Ale na aliasy typu slovak si dávajte bacha! Niektoré aplikácie, ktoré v súvislosti s miestnymi nastaveniami nevyu#382ívajú slu#382by libc, toti#382 na aliasy ka#353#318ú a zaujímajú ich len prvé dva znaky nastavených premenných. A tak sa zo slovak stane sl, #269o je Slovinsko. Pozitívne je,

  1. 382e pre sloven#269inu mô#382ete nastavi#357 premennú napríklad na hodnotu

skaderukaskadenoha.


2.2.2. Konfigurácia miestnych nastavení

Nastavenia internacionalizácie sa (v !RedHat a Mandrake) nachádzajú v súbore /etc/sysconfig/i18n. Je to ve#318mi u#382ito#269ný súbor, ktorý si rýchlo ob#318úbite. Mo#382no v #328om nastavi#357 v#353etko, #269o sa kedy týkalo internacionalizácie, národných fontov a rozlo#382ení kláves. Tento súbor v#353ak len definuje systémové premenné a zvykne sa vklada#357 (source /etc/sysconfig/i18n) do inicializa#269ných skriptov. Exportovanie premenných (odovzdanie ostatným aplikáciám) má na starosti skript /etc/profile.d/lang.sh (bash) alebo /etc/profile.d/lang.csh (tcsh). Tento sa vykoná pri ka#382dom #353tarte shellu, typicky je volaný z /etc/profile (bash) alebo /etc/csh.cshrc (tcsh).

Súbor /etc/sysconfig/i18n definuje nastavenia pre celý systém. Tieto sa pou#382ijú, ak sa nenájde súbor s u#382ívate#318ovými nastaveniami. Ka#382dý u#382ívate#318 si mô#382e ur#269i#357 svoje vlastné nastavenia v súbore .i18n v jeho domovskom adresári. Nastavenia sa v#382dy #269ítajú len z jedného z týchto súborov, teda ak má u#382ívate#318 svoj vlastný súbor #732/.i18n, nastavenia zo súboru /etc/sysconfig/i18n sa ignorujú.

U#382ívate#318 si mô#382e zmeni#357 nastavenia aj ru#269ne, kedyko#318vek sa mu zachce, nastavením premenných prostredia LC_MESSAGES, LANG, at#271.

Vypnú#357 nejaké nastavenie je mo#382né príkazom

sh$ unset LC_MESSAGES LANG

Tým sa zru#353ia nastavenia daných premenných (a pou#382ije sa #353tandardné locale C alebo POSIX).

Ak máte napríklad nastavené premenné LC_ALL=sk a LC_MESSAGES=cz, tak po príkaze unset LC_ALL nebudete ma#357 hlásenia programov v angli#269tine, ale #269e#353tine. Preto, ak chcete vypnú#357 nejaké nastavenia, v#382dy musíte príkazom unset zru#353i#357 nastavenia v#353etkých premenných, ktoré mô#382u ovplyv#328ova#357 dané miestne nastavenia.

export/setenv

Neodpustím si malú poznámku k príkazu export. Je to vstavaná funkcia v#353etkých shellov kompatibilných s klasickým sh (teda aj bash). Pre shelly typu tcsh je ekvivalentom príkaz setenv.

Je dôle#382ité uvedomi#357 si, #269o presne tento príkaz robí s premennými. V dokumentácii k bashu sa hovorí, #382e export ozna#269í premennú, aby bola odovzdaná detským (child) procesom v rámci prostredia (environment). To znamená asi to#318ko, #382e ke#271 spustíte napr. iXy z materského procesu bash, ktorý pri #353tarte exportoval premennú LANG=sk, v#353etky aplikácie v prostredí X Window System budú dedi#357 toto nastavenie a teda (ak to sami podporujú) budú fungova#357 po slovensky. Ak budete chcie#357 spusti#357 aplikáciu bez slovenských nastavení, musíte v xterme zada#357 príkaz unset LANG (unsetenv LANG pre tcsh), #269ím pre v#353etky detské procesy xtermu (presnej#353ie shellu, ktorý je v #328om spustený), zru#353íte nastavenie premennej LANG. Potom aplikácie spustené priamo z tohto xtermu budú fungova#357 bez podpory sloven#269iny. Trochu sa s tým pohrajte.


2.2.3. Nastavenie #269asovej zóny

S miestnymi nastaveniami úzko súvisí aj nastavenie #269asovej zóny. Vedel by som o tom rozpráva#357 celé hodiny, ale ono by to muselo by#357 zlo#382itej#353ie ako len nastavenie jednej premennej... A to takto:

bash$ export TZ="Europe/Bratislava" tcsh$ setenv TZ "Europe/Bratislava"

Toto nastavenie ovplyv#328uje len #269asový posun oproti hardverovým hodinám. (Mimochodom, odporú#269am hardverové hodiny nastavené na greenwichský svetový #269as, #269ím tie#382 odpadajú problémy s prechodom medzi letným a zimným #269asom at#271. ale o tom sú popísané iné súbory.) Toto celé je dos#357 dobrá vec, hlavne ak mate prístup k po#269íta#269u v inej #269asovej zóne, ale chcete pracova#357 s #269asom v stredoeurópskej zóne. Do svojho súboru .bash_profile (.login pre tcsh) vlo#382te vy#353#353ie uvedený riadok.


2.3. Príklady miestnych nastavení

****

U#382ívate#318 je síce zo stredného Slovenska, ale u#382 ke#271 s ním bola jeho mama tehotná, pú#353#357ala mu do brucha kurzy angli#269tiny. Nemá teda zmysel pou#382íva#357 slovenské nastavenia, a#382 na krajné prípady, napr. slovenské fonty v Gimpe. Darujte mu súbor .i18n s nasledovným obsahom (aj na takéto malé oné potrebuje locales-sk):

LC_CTYPE=sk

**** ****

U#382ívate#318 je normálny, má rád svoj materinský jazyk, ale netrápi ho, ke#271 má polovicu aplikácií po slovensky a polovicu po anglicky. Po #269esky vie. Toto ho pote#353í (nezabudnite mu potajomky nain#353talova#357 aj locales-cs):

LANGUAGE=sk:cs LANG=sk

**** ****

U#382ívate#318 je z blízkeho juhu, jeho ob#318úbené pleso je Balaton, v#353etky hlá#353ky chce po ma#271arsky, ak sa inak nedá, pochopí aj sloven#269inu. Nesmieme zabudnú#357 na jeho miernu schizofreniu, pri#269om jedno jeho ja potrebuje slovenské triedenie re#357azcov a druhé nevie

  1. 382i#357 bez formátovania dátumu a #269asu v #269e#353tine. Nikdy sa nesmie zabudnú#357 na in#353taláciu

prekladov hlá#353ok pre ma#271ar#269inu, #269e#353tinu a sloven#269inu z balíkov, ktoré podporujú premennú LINGUAS. Treba ho tie#382 presved#269i#357, #382e in#353talácia locales-{sk,hu,cs} nepredstavuje bezpe#269nostné riziko:

LANGUAGE=hu:sk:cs LC_COLLATE=sk LC_TIME=cs LANG=hu LINGUAS="hu cs sk"

****----

3. Nastavenia konzoly

Táto kapitola by mala #269ítavou, pou#269nou a zárove#328 zábavnou formou pojednáva#357 o veciach medzi prstom a okom. Základnou otázkou nech nám je #8222Zmysel #382ivota, vesmíru a vôbec."


3.1. Sloven#269ina na výstupe textovej konzoly

3.1.1. Fonty

Ke#271 zobudíte o polnoci hocikoho, kto vo svojom #382ivote videl po#269íta#269 a opýtate sa ho, ako rozbeha#357 slovenské znaky, ur#269ite spomenie nie#269o ako fonty. Na zobrazovanie znakov na obrazovku -- #269i u#382 v textovom alebo grafickom re#382ime -- slú#382ia skuto#269ne fonty. Fonty pre konzolu a programy ur#269ené na manipuláciu s nimi sa nachádzajú v balíku kbd. Po jeho nain#353talovaní sú súbory s fontami umiestnené v adresári /usr/lib/kbd/consolefonts/.

Pre nás sú dôle#382ité najmä súbory, ktoré majú v mene iso02, lat2, latin2 alebo #269íslo 852. To nazna#269uje, #382e ide o fonty s podporou ISO-8859-2 (latin2), prípadne DOS codepage 852, #269o sú

  1. 353tandardy aj pre slovenskú diakritiku.

Pozor, pôvodný balík sa volá kbd, ale existuje jeho roz#353írená verzia, ktorá sa objavuje v distribúciách -- console-tools. Rozdiely medzi nimi sú minimálne, pre kbd budeme pou#382íva#357 príkaz setfont, pre console-tools zase consolechars. Taktie#382, názvy dodávaných fontov sa trochu odli#353ujú, tak#382e budem uvádza#357 ekvivalenty pre oba balíky.


3.1.2. Ako fonty fungujú

Existuje nieko#318ko súborových formátov na ukladanie fontov, princíp je v#353ak rovnaký -- súbor obsahuje 256 obrázkov (glyphs), z ktorých v#353etky majú rovnaký rozmer (napr. 8x16 bodov -- ve#318kos#357 fontu) a ka#382dý zobrazuje jeden znak.

Aby nám tých 256 obrázkov bolo na nie#269o dobrých, je treba font zo súboru zavies#357 do znakového generátora videokarty. Na to slú#382i jeden z príkazov

kbd
:

setfont meno-fontu

console-tools
:

consolechars -f meno-fontu

meno-fontu mô#382e by#357 absolútna alebo relatívna cesta k súboru s fontom, alebo meno súboru, pokia#318 sa nachádza v adresári /usr/lib/kbd/consolefonts/, #269i u#382 s príponou, alebo bez.

Pre #318ah#353ie pochopenie tých obrázkov, skúste nahradi#357 meno-fontu re#357azcom t850 a sledujte výsledok na v#353etkých virtuálnych konzolách.

Naspä#357 k #353tandardnému fontu sa v#382dy dostanete jedným z príkazov

kbd
:

sh$ setfont

console-tools
:

sh$ consolechars -d

  1. 268o sa presne deje? Program setfont/consolechars

zavedie v#353etkých 256 obrázkov do znakového generátora EGA/VGA karty. Od tohto momentu sa na v#353etkých konzolách bude znak s ASCII kódom napr. 65 vykreslova#357 ako #353esdesiaty piaty obrázok z na#353eho súboru s fontom. E#353te raz pripomínam a dvakrát pod#269iarkujem, #382e font je v#382dy rovnaký pre v#353etky virtuálne konzoly, na ktorých zobrazuje znaky ten istý znakový generátor EGA/VGA karty.

Dôle#382ité je uvedomi#357 si, #382e interne ide naozaj len o obrázky a tvar niektorého znaku vo fonte nemá ni#269 spolo#269ného s jeho ASCII kódom. Ak by ste si sami vytvorili nejaký font (v dokumentácii ku kbd/console-tools máte informácie o v#353etkých formátoch), v ktorom by mal ten #353esdesiaty piaty obrázok tvar písmena z, po jeho natiahnutí sa vám bude pri zadaní Alt-6-5, #269o je ASCII kód písmena A, zobrazova#357 znak z. Ale ak tento znak ulo#382íte do súboru, v tomto sa bude nachádza#357 bajt s hodnotou 65, teda písmeno A.


3.1.3. Fonty ISO-8859-2

Toto vyu#382íva #353tandard ISO-8859-2 (a iné) - spolo#269né znaky s ASCII vykreslí rovnako a znaky #353pecifické pre tú ktorú abecedu

  1. 8222namapuje" na menej pou#382ívané znaky ASCII tabu#318ky. Kam

presne ktorá norma umiest#328uje znaky s diakritikou, nás zaujíma#357 nemusí (pokia#318 nevytvárame vlastné fonty), hlavné je, #382e napr. anglický text je nezmenený (angli#269tina má v#353etky znaky spolo#269né so sloven#269inou) a slovenský text u#382 viac neobsahuje hlúpe znaky, ktoré so sloven#269inou nemajú ni#269 spolo#269né.

Slovenské (ISO-8859-2) fonty, ktoré sú sú#269as#357ou balíkov kbd a console-tools:

kbd
:

lat2-{08,10,12,14,16}, lat2a-16, iso02.{08,14,16}

console-tools
:

lat2-{08,10,12,14,16}, lat2u-16, iso02.f{08,14,16}

Na zavedenie fontu pou#382ite príkaz

kbd
:

sh$ setfont meno-zo-zoznamu

console-tools
:

sh$ consolechars -f meno-zo-zoznamu

Odporú#269am pou#382íva#357 lat2a-16, resp. lat2u-16. Ostatné fonty majú bezchybné zobrazovanie slovenských znakov, problém v#353ak nastáva pri aplikáciách, ktoré vyu#382ívajú znaky na kreslenie rám#269ekov (napr. mc).

  1. 268o sa týka fontov iso02.* z balíka

kbd, treba pri nich pou#382i#357 argument príkazu setfont -m latin2u.trans. Tak#382e celý príkaz na zavedenie niektorého z týchto fontov je:

kbd
:

sh$ setfont iso02.16 -m latin2u.trans

console-tools
:

sh$ consoletrans -f lat2u-16 -m iso02

V súbore latin2u.trans (iso02.acm) sa nachádza tzv. Aplication-Charset Map (ACM), akási prevodná tabu#318ka, ktorá obsahuje riadok pre ka#382dý znak fontu a jeho podobu v kódovaní UTF-8.


3.1.4. Automatické zavádzanie fontov

Ak ste si na#353li svoj font, ktorý chcete pou#382íva#357 a ma#357 ho automaticky zavedený v#382dy pri

  1. 353tarte, nie je ni#269 #318ah#353ie. Inicializa#269ný skript rc.sysinit robí asi

toto: skontroluje, #269i existuje súbor /etc/sysconfig/i18n a program (skript) /sbin/setsysfont. Ak áno, spustí setsysfont. Ten na#269íta /etc/sysinfo/i18n a pod#318a premenných definovaných v tomto súbore príkazom consolechars alebo setfont zavedie font.

Tak#382e sta#269í nastavi#357 správne premenné v súbore /etc/sysconfig/i18n a skript /sbin/setsysfont urobí v#353etko za nás. Tento skript mo#382no spusti#357 kedyko#318vek chcete zavies#357 font nastavený ako #353tandardný pre systém.

Premenné v súbore /etc/sysinit/i18n sú (pou#382ívajte len mená súborov bez cesty a bez prípony!):

kbd
:

SYSFONT=lat2a-16

console-tools
:

SYSFONT=lat2u-16 SYSFONTACM=iso02

Skriptík setsysfont obsahujú oba balíky a kedyko#318vek mô#382ete zavies#357 font nastavený ako systémový v súbore /etc/sysinit/i18n jednoduchým zadaním

sh$ /sbin/setsysfont

Pod#318a toho, #269o sme si hovorili o tom, #382e pre v#353etky virtuálne konzoly mô#382e by#357 nastavený len jeden spolo#269ný font, nemá ve#318ký zmysel zavádza#357 nastavovanie fontu zvlá#353#357 pre ka#382dého u#382ívate#318a. S tým súvisí aj fakt, #382e nastavenie fontu sa vz#357ahuje k danému po#269íta#269u, pri ktorom práve sedíte a nie k tomu, ku ktorému ste pripojení napr. cez ssh.

Predsa len si viem predstavi#357 prípad, ke#271 niektorý z viacerých pou#382ívate#318ov jedného po#269íta#269a potrebuje odli#353ný font. V tom prípade mô#382e vlo#382i#357 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#357 takto:

/.bash_profile
:

if tty 2b/dev/null |grep '/dev/tty[0-9?*$' 8b/dev/null 88 ! [ -f /.font?; then setfont -o /.font gr928a-8x16 fi

/.bash_logout
:

if tty 2b/dev/null |grep '/dev/tty[0-9?*$' 8b/dev/null 88 [ -f /.font?; then setfont /.font rm -f /.font fi

Vonkoncom to nie je ideálne rie#353enie, ale svoj ú#269el splní (minimálne po moment prvého odhlásenia). Trochu sa s tým pozabávajte, aby sa font (a rozlo#382enie kláves) menilo len pri prvom prihlásení a poslednom odhlásení, tie#382 setfont pod iXami nemá ve#318mi zmysel a tak... V Tips-HOWTO je uvedený spôsob, ako zisti#357, na ko#318kých virtuálnych konzolách je e#353te u#382ívate#318 prihlásený.

Iná#269, aby bolo jasné, toto vám bude fungova#357 len na lokálnom stroji - zamyslite sa, pre#269o asi setfont (aj loadkeys) nefunguje cez vzdialený terminál a #269i by ste z toho nie#269o mali, keby to tak nebolo.

Ak to s takýmto rie#353ením myslíte vá#382ne, tak skôr uva#382ujte nad modifikáciou skriptu /etc/profile.d/lang.sh, kde by sa kontroloval aj obsah u#382ívate#318ského súboru /.i18n a pod#318a toho by sa zaviedol skript, popis rozlo#382enia kláves, prípadne nejaké premenné...


3.2. Slovenská klávesnica na textovej konzole

Ke#271 je slovenský font na konzole rozbehaný a na#353e národné znaky sa zobrazujú správne, máme so sloven#269inou problém #269íslo dva - ako tam tie znaky dosta#357? Keby ste si chceli tento súbor len pre#269íta#357 bez potreby následnej nav#353tevy psychiatra, sta#269ilo by zavies#357 nejaký font so slovenskou podporou. Ale ke#271#382e ste uvedomelý linuxák / uvedomelá linuxá#269ka, hne#271 chcete do Slovak-HOWTO prispie#357 a pomocou klávesnice písa#357 slovenský text. Na to potrebujete s tou klávesnicou nie#269o urobi#357.


3.2.1. Popis rozlo#382enia kláves (keymap)

Adresáre /usr/lib/kbd/keymaps/i386/qwertz/ a qwerty/ obsahujú po nain#353talovaní balíka kbd/console-tools aj popisy slovenského rozlo#382enia kláves. Pre nás sú zaujímavé súbory

sk-prog-qwerty.map.gzsk-qwerty.map.gzsk-prog-qwertz.map.gzsk-qwertz.map.gz

Tieto súbory obsahujú definície rozlo#382enia kláves pre slovenský jazyk, pri#269om rozdiely medzi nimi sú v umiestnení kláves Y a Z a po#269te slovenských znakov, ktoré pomocou nich mo#382no napísa#357 priamo (bez m#341tvych kláves). Najviac sa na slovenský písací stroj podobá sk-qwertz, najmen#353ie zmeny oproti americkej klávesnici sú zase v sk-prog-qwerty.

Súbory v adresári /usr/lib/kbd/keymaps/i386/include/

obsahujú popis základných rozlo#382ení kláves (azerty

, qwerty, qwertz ), prídavných kláves (keypad, windowkeys), prípadne problémových kláves ( delete, backspace, ctrl ). Súbory linux-*.inc.gz sú #353pecifické pre linux (teda nie pre jazyk). Sú to napr. k#318ú#269e (F1-F12, kombinovaním s Ctrl a Shift a#382 po F48), Shift-!PgUp? a Shift -!PgDown?, at#271.

Keymapy *.inc.gz nepopisujú kompletné rozlo#382enie klávesnice, ale len niektorých jej #269astí. Vyu#382ívajú sa pri pripájaní (include) zo súborov *.map.gz, #269o je výhodné z dôvodu jednoduch#353ej konfigurácie klávesnice. Napríklad zmenou jedného riadku v súbore s rozlo#382ením sk-qwerty mô#382me dosta#357 rozlo#382enie qwertz, prípadne (to asi vyu#382ijete) jednoducho odstavi#357 znaky euro a cent, ktoré (zatia#318?) nepotrebujeme a zbyto#269ne nám zaberajú znaky E a C.

Na zavedenie súboru s popisom rozlo#382enia kláves slú#382i nasledovný príkaz:

loadkeys nazov

kde nazov mô#382e by#357 absolútna alebo relatívna cesta ku keymap súboru, alebo meno súboru, pokia#318 sa nachádza v adresári /usr/lib/kbd/keymaps/, #269i u#382 s príponou, alebo bez.

  1. 352tandardné slovenské popisy rozlo#382enia kláves nájdeme vo vy#353#353ie spomínaných
  • .map.gz súboroch. Ak sa chcete vráti#357 k #353tandardnému rozlo#382eniu,

príkaz

sh$ loadkeys -d

zavedie pôvodné, ktoré je ulo#382ené v súbore defkeymap.map.gz niekde medzi ostatnými keymap súbormi. Predtým ale nikdy nezabudnite zmeni#357 re#382im slovenskej klávesnice na US znaky, tzn. 1 dáva 1 a nie + at#271. Ak by ste predsa zabudli, je mo#382né, #382e klávesy, kde sa nachádzali slovenské znaky, nebudú fungova#357 správne (v skuto#269nosti budú fungova#357 správne, ale vám sa to nebude pá#269i#357). Vtedy znovu zave#271te predchadzájúcu keymapu (na nefunk#269né klávesy pou#382ite !AltGr? - pravý Alt) a klávesou Pause/Break v#353etko napravíte. Potom mô#382ete znova zavies#357 defkeymap.

Pokia#318 sa vám nepá#269i ani jeden zo #353tandardných keymap súborov pre sloven#269inu, #269o je pravdepodobné v#271aka riadku

include "euro"

v include súboroch qwerty-layout.inc.gz aj qwertz-layout.inc.gz, mô#382ete k#318udne pozmeni#357 existujúci súbor s popisom rozlo#382enia kláves, prípadne vytvori#357 nový. Nebojte sa, je to zlo#382ité! Nebudem to tu rozpisova#357 v#353etko, prezrite si zopár kmap súborov, pre#269ítajte manuálovú stránku keymaps(5) a mali by ste to #318ahko pochopi#357.

My si povieme len o základných veciach, ktoré nám pomô#382u pozmeni#357 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#382enie kláves pod#318a svojho gusta.


3.2.2. Include a nesprávna funkcia kláves E a C

Problém s E a C je spôsobený zavedením jednotnej meny v európskej únii. Na vine nie je ani tak EU, ale niekto, kto symboly pre euro a cent umiestnil na !AltGr?-E a !AltGr?-C, #269o sú na#353e oby#269ajné E a C. Toti#382, národné klávesnice sú vä#269#353inou rie#353ené tak, #382e po zavedení súboru na#271alej funguje americké rozlo#382enie a na prepínanie do národného re#382imu sa pou#382íva klávesa Pause, alebo mô#382me zadáva#357 národné klávesy pri sú#269asnom dr#382aní klávesy !AltGr? (pravý Alt). Súbor euro.inc, ktorý definuje tieto dva problémové symboly, je pripojený zo súboru qwerty-layout.inc, ktorý zase pripájajú samotné slovenské keymapy (sk-qwerty, sk-prog-qwertz, #8230).

Rie#353enie je ve#318mi jednoduché - zeditujete qwerty-layout.inc (alebo qwertz-layout.inc) a odkomentujete znakom

  1. riadok

include "euro"


3.2.3. Keycode a definovanie kláves

Predchádzajúci problém s eurom mo#382no vyrie#353i#357 aj definovaním znakov E a C v samotnom súbore sk-qwerty.kmap.gz (alebo inom, ktorý pou#382ívate) pomocou slova keycode:

keycode 18 = e keycode 46 = c

V keymap súboroch je pre ka#382dú klávesu (alebo aspo#328 pre ka#382dú, ktorú chceme predefinova#357) jeden riadok pribli#382ne tohto razenia:

keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two...

  1. 268íslo za keycode ozna#269uje ur#269itú klávesu a re#357azce za

= hovoria o tom, aký znak má ovláda#269 klávesnice generova#357 pri stla#269ení tejto klávesy, a to bu#271 samotnej, alebo v kombinácii so #353peciálnymi klávesmi Shift, !AltGr?, Control, Alt, ShiftL, ShiftR, Ctrl a CtrlR. To nám dáva 256 mo#382ných znakov na ka#382dú klávesu.

Vä#269#353inou sa pozme#328uje len prvých 16 kombinácií modifikátorov. To je význam riadku

keymaps 0-15

na za#269iatku kmap súborov.

V nasledujúcom zozname je týchto 16 kombinácií (po riadkoch):

  1. 382iadnyShift!AltGr?Shift-!AltGr?ControlShift-Control!AltGr?-ControlShift-!AltGr?-ControlAltShift-Alt!AltGr?-AltShift-!AltGr?-AltControl-AltShift-Control-Alt!AltGr?-Control-AltShift-!AltGr?-Control-Alt

Z h#318adiska slovenskej klávesnice sú dôle#382ité len prvé #353tyri - prvé dva sú zvy#269ajne nezmenené americké znaky, napr. two at, #269o je 2 @, a druhé dva sú znaky slovenskej abecedy, ktoré bude ovláda#269 klávesnice posiela#357 aplikáciám ak pri stla#269ení tejto klávesy budeme sú#269asne dr#382a#357 klávesu !AltGr? (pravý Alt), napr. lcaron two, #269o je na#353e #318 2.

Aby ste mohli vklada#357 slovenské znaky, nemusíte celý #269as pridr#382iava#357 !AltGr? nosom, ale mô#382ete pou#382i#357 Pause/Break, ktorý v kontexte s národnými klávesnicami funguje ako !AltGr? Lock. Chápte to tak, #382e ke#271 sa prepnete do slovenského re#382imu stla#269ením Pause/Break, prvé a druhé dva re#357azce v ka#382dom riadku keycode sa vymenia, napr.

two at lcaron two -b lcaron two two at

Vtedy mô#382ete pou#382i#357 !AltGr? na zadávanie znakov americkej klávesnice, alebo sa opätovným stla#269ením Pause/Break prepnú#357 spät do US re#382imu.

Riadok pre klávesu s kódom 41 (znaky ` a ____), má v súbore sk-qwerty.map.gz nasledovný tvar:

keycode 41 = grave asciitilde dead_diaeresis dead_circumflex ...

Mne osobne sa nepá#269i, #382e sú tu umiestnené m#341tve klávesy dead_diaeresis (dve bodky nad znakom) a dead_circumflex (mäk#269e#328), preto#382e ich nepotrebujem --- ä aj ô na slovenskej klávesnici predsa je. A keby aj nebolo, na ich písanie mô#382em k#318udne pou#382i#357 m#341tvy kláves mäk#269e#328. O tom si bli#382#353ie povieme v

  1. 269asti o compose sekvenciách. Teraz chcem ma#357 na tomto mieste znaky ;

(semicolon) a ° (degree) tak, ako je to na popiske mojej klávesnice. Zmením teda riadok takto:

keycode 41 = grave asciitilde semicolon degree ...

Iná#269, ten stupe#328 asi nie je stupe#328, ale m#341tvy znak krú#382ku nad písmenom, napr. v #269e#353tine nad u, ale taký kláves je nám fakt nani#269. Rad#353ej budeme písa#357 stupne.

Názvy znakov, ktoré sa pou#382ívajú pri definovaní jednotlivých kláves si mô#382ete pre znaky ASCII zisti#357 v súbore us.map.gz. #268íselné kódy v#353etkých kláves vám vyp#318uje program

showkey

Pravidlá pre názvy znakov #353pecifických pre sloven#269inu v kmap súboroch:

***#

Prvé písmeno v názve ur#269uje ASCII znak, pre ktorý chceme pou#382i#357 diakritiku.

***# ***#

K nemu pridáme identifikátor diakritického znamienka:

caron --- mäk#269e#328acute --- d#314#382e#328diaeresis --- dve bodky nadcircumflex --- voká#328

Napríklad:

scaron = #353uacute = úOcircumflex = Ô

***#

Názvy #271al#353ích znakov #353pecifických pre sloven#269inu:

0xa7 --- § (paragraf)degree --- ° stupe#328

Pre správnu interpretáciu identifikátorov znakov s diakritikou je nutné na za#269iatku kmap súboru ur#269i#357 kódovú stránku, pre ktorú bude ur#269ený tento popis rozlo#382enia kláves. Ide o to,

  1. 382e ten istý znak mô#382e ma#357 v rôznych kódových stránkach iný ASCII kód.

Implicitná hodnota je iso-8859-1, teda pre slovenské keymapy je nutné vlo#382i#357 riadok:

charset "iso-8859-2"

E#353te jeden príklad: ak chcete pou#382íva#357 slovenské rozlo#382enie qwertz a americké rozlo#382enie qwerty, potrebujete vymeni#357 znaky Y a Z:

keycode 21 = y Y z Z keycode 44 = z Z y Y

Na prvý poh#318ad to mô#382e fungova#357 dobre, ale problém sa prejaví pri zapnutom Caps Lock - znaky Y a Z sa stále pí#353u malými písmenami. Pri písaní popisov rozlo#382ení znakov mo#382no takýto problém o#353etri#357 pridaním písmena

  • pred ka#382dé písmeno v keycode riadku danej klávesy.

Písmeno + ur#269uje nasledovnému písmenu atribút letter, teda sa bude pri stla#269enom Caps Lock písa#357 ve#318ké písmeno. V#353etky písmená a-z, A-Z majú tento atribút priradený automaticky, ale to len v prípade, #382e majú keycode riadok tvaru:

keycode 21 = y

V na#353om prípade teda musíme priradi#357 tento atribút v#353etkým znakom explicitne. Tak#382e, kone#269ná úprava keymapy bude:

keycode 21 = +y +Y +z +Z keycode 44 = +z +Z +y +Y

Pre výmenu písmen toto rie#353enie funguje spo#318ahlivo, bohu#382ia#318, e#353te stále neexistuje spôsob, ktorým by sa dalo dosiahnu#357 napríklad písanie ve#318kých písmen s diakritikou pri zapnutom Caps Lock jednoduchým stlá#269aním ich kláves, ako je to v slovenskom popise rozlo#382enia kláves pre X Window System.


3.2.4. M#341tve klávesy a sekvencie compose

S m#341tvymi klávesami súvisia v kmap súboroch riadky tvaru

compose 'c1' 'c2' to 'c3'

Predstavme si m#341tve znaky ako úplne oby#269ajné znaky s tým rozdielom, #382e ovláda#269 klávesnice ich neposiela aplikáciám, ale zostanú niekde #8222visie#357", kým z klávesnice nepríde #271al#353í znak. Ovláda#269 klávesnice nepo#353le ani tento, ale pokúsi sa spoji#357 ho s predchádzajúcim m#341tvym znakom a a#382 výsledok spojenia pustí #271alej. No, a ako má to spojenie uskuto#269ni#357, to mu presne hovoria riadky compose v keymap súboroch.

V nasledujúcej tabu#318ke je zoznam m#341tvych znakov pou#382ívaných v sloven#269ine, spolu s významom a znakom, ktorým sa ozna#269ujú v compose sekvenciách.

Tabu#318ka 2. M#341tve klávesy

Názov Význam Composedead_acuted#314#382e#328\'dead_circumflexmäk#269e#328^dead_diaeresisdve bodky nad"

Postup pri písani compose sekvencií

***#

Ka#382dá compose sekvencia sa za#269ína k#318ú#269ovým slovom compose.

***# ***#

Nasleduje compose znak m#341tvej klávesy (pod#318a tabu#318ky M#341tve klávesy), napríklad \'.

Druhý je znak, s ktorým chceme m#341tvu klávesu kombinova#357, napríklad A.

Za k#318ú#269ovým slovom to nasleduje výsledok spojenia m#341tvej klávesy a znaku bez diakritiky, teda Á.

***#

Je praktické ma#357 pri vytváraní compose sekvencií zavedený slovenský font, aby ste výsledok mohli hne#271 kontrolova#357. Ve#318kou pomocou je tie#382 mo#382nos#357 príkazu loadkeys #269íta#357 zo #353tandardného vstupu. Napríklad:

sh$ loadkeys include "/usr/lib/kbd/keymaps/i386/include/windowkeys.map.gz" keycode 41 = grave asciitilde semicolon dead_diaeresis compose '"' 'a' to 'ä'

  1. ukon#269enie zadávania: EOF - Ctrl-D

sh$

Popis aktuálneho rozlo#382enia kláves mô#382ete ulo#382i#357 do súboru príkazom

sh$ dumpkeys b subor

Ak nemáte zavedený slovenský popis rozlo#382enia kláves, musíte zadáva#357 tieto znaky ako Alt sekvencie, poprípade vklada#357 ich hex kódy v tvare 0xed pre í. Výpis znakov aktuálneho fontu spolu s ich hex kódmi vám urobí program

kbd
:

showfont

console-tools
:

showcfont

E#353te raz na#353a compose sekvencia a nejaké navy#353e:

compose '\'' 'A' to 'Á' # dlhé A cez d#314#382e#328 compose '^' 'O' to 'Ô' # O s voká#328om cez mäk#269e#328 compose '^' 'a' to 'ä' # #353iroké a cez mäk#269e#328, compose '^' 'A' to 0x84 # ...preto nepotrebujeme dead_diaeresis

Mimochodom, v súbore /usr/lib/kbd/keymaps/compose/compose.latin2 máte zoznam compose sekvencií pre normu ISO-8859-2.


3.2.5. Automatické zavádzanie keymap súboru

Na nastavenie rozlo#382enia klávesnice, ktoré chceme zavies#357 pri #353tarte systému, nám slú#382i súbor /etc/sysconfig/keyboard. Pre Slováka ako repa by mal vyzera#357 minimálne takto:

KEYTABLE=sk-qwerty # zavedie rozlo#382enie kláves sk-qwerty KBCHARSET=iso-8859-2 # ...a spomínaný súbor compose.latin2

Nastavenie klávesnice pri #353tarte má na starosti skript keytable, ktorý je volaný priamo z rc.sysinit, tak#382e netreba vytvára#357 linky v adresároch pre runlevel 3/multiuser, prípadne 5/X.

V dokumentácii k initscripts sa pí#353e: #8222Ak ulo#382íte popis rozlo#382enia kláves (pou#382itím dumpkeys) do súboru /etc/sysconfig/console/default.kmap, zavedie sa pri #353tarte systému e#353te pred pripájaním/kontrolou súborových systémov. To mô#382e by#357 u#382ito#269né, ak potrebujete zada#357 heslo roota v prípade problémov. Musí to by#357 #8218dumpnutý#8216 popis rozlo#382enia kláves a nie skopírovaný súbor z /usr/lib/kbd/keytables/, preto#382e tie #269asto e#353te vkladajú (include) iné popisy z tejto adresárovej

  1. 353truktúry."

Po pripojení súborových systémov, v prípade, #382e existuje spustite#318ný súbor /etc/rc.d/init.d/keytable a adresár /usr/lib/kbd/keymaps/, vykoná sa príkaz

sh# /etc/rc.d/init.d/keytable start

Tento u#382 zavedie popis rozlo#382enia kláves tak, ako to máte ur#269ené premennými v súbore /etc/sysconfig/keyboard, preto nemusíte vytvára#357 odkazy v jednotlivých rc[1-5?.d/ adresároch.

To, #269o sme si hovorili o zmene fontu pri prihlásení nejakého u#382ívate#318a na virtuálnej konzole, sa dá aplikova#357 aj na rozlo#382enie kláves. Úplne najjednoduch#353ie rie#353enie (ktoré sa pri prvom odhlásení po#353le do kríkov) je asi takéto:

/.bash_profile
:

if tty 2b/dev/null |grep '/dev/tty[0-9?*$' 8b/dev/null 88 ! [ -f /.keymap?; then dumpkeys b /.keymap loadkeys gr.map fi

/.bash_logout
:

if tty 2b/dev/null |grep '/dev/tty[0-9?*$' 8b/dev/null 88 [ -f /.keymap?; then loadkeys /.keymap rm -f /.keymap fi


3.3. Zhrnutie nastavení konzoly

Pokia#318 som sa niekde nesekol, tak minimálne v distribúciách

RedHat a

Mandrake by po týchto zmenách mala do pohody za#353lapa#357 slovenská podpora (fonty + klávesnica).

/etc/sysconfig/i18n
:
kbd
:

SYSFONT=lat2a-16

console-tools
:

SYSFONT=lat2u-16 SYSFONTACM=iso02

/etc/sysconfig/keyboard
:

KEYTABLE=sk-qwertz KBCHARSET=iso-8859-2

Tie#382, ak zadávate rootovské heslo s pou#382itím iného rozlo#382enia kláves ako je #353tandardné (us), vlo#382te si jeho popis do súboru /etc/sysconfig/console/default.kmap. Pozor, nesmiete len tak skopírova#357 súbor, alebo vytvori#357 link! Ak chcete pou#382i#357 napríklad rozlo#382enie sk-qwertz, urobte to takto:

sh$ loadkeys sk-qwertz sh# dumpkeys b/etc/sysconfig/console/default.kmap

Ak chcete nastavi#357 slovenský font a klávesnicu len jednorazovo, tieto príkazy by to mali dokáza#357:

kbd
:

sh$ setfont lat2a-16 sh$ loadkeys sk-qwertz

console-tools
:

sh$ consolechars -f lat2u-16 -m iso02 sh$ loadkeys sk-qwertz

...a naspä#357 na #353tandardné nastavenia:

kbd
:

sh$ setfont sh$ loadkeys -d

console-tools
:

sh$ consolechars -d sh$ loadkeys -d


4. Nastavenia X Window Systemu

  1. 268oko#318vek sa chystáte robi#357 s X Window Systemom a sloven#269inou

dokopy, s#318ubujem, #382e vám to nebude fungova#357, ak nenastavíte totok taktok:

LC_CTYPE=sk

  1. 268o to znamená a ako sa to nastavuje, tak o tom pojednáva kapitola Miestne nastavenia.

4.1. Slovenské fonty v X Window Systeme

Predpokladám, #382e X Window System máte nain#353talovaný, prípadne aj X Font Server, va#269#353inu dôle#382itých vecí sme si povedali v #269asti o konzole, po#271me si rovno nain#353talova#357 slovenské fonty.


4.1.1. In#353talácia fontov - X server

Slovenské fonty pre X nájdeme v balíku XFree86-ISO8859-2, ve#318a #271al#353ích je v balíkoch XFree-ISO8859-2-`druhb-fonts, kde `druhb mô#382e by#357 Type1, 100dpi alebo 75dpi. Ak chcete pou#382íva#357 sloven#269inu seriózne (Gimp, Netscape, lokalizácia), nain#353talujte si v#353etky, ak potrebujete slovenský font len napr. v XTerme, posta#269í vám základný balík.

Po rozbalení archívu sa fonty nachádzajú na nieko#318kých miestach. V#353etky cesty k novým fontom si treba odpisa#357, zapamäta#357, ma#357 na o#269iach:

/usr/share/fonts/ISO8859-2/misc/usr/share/fonts/ISO8859-2/75dpi/usr/share/fonts/ISO8859-2/100dpi/usr/share/fonts/ISO8859-2/Type1

Tieto cesty toti#382 budeme vklada#357 do konfigura#269ného súboru X Window Systemu (/etc/X11/XF86Config, prípadne /etc/X11/XF86Config-4). Tým sprístupníme X serveru fonty z týchto adresárov. Sekciu "Files" upravíme vlo#382ením riadkov

FontPath?:

Section "Files" ...

FontPath? "/usr/share/fonts/ISO8859-2/misc"

FontPath? "/usr/share/fonts/ISO8859-2/75dpi"

FontPath? "/usr/share/fonts/ISO8859-2/100dpi"

FontPath? "/usr/share/fonts/ISO8859-2/Type1"

EndSection?

Správne poradie riadkov s cestami k fontom nájdete v XWindow-User-HOWTO, ale nemali by ste ma#357 ve#318ké problémy ani ke#271 slovenské fonty vlo#382íte na koniec zoznamu.

Za behu X Window Systemu pridáte nové adresáre s fontami príkazom

sh$ xset +fp /usr/share/fonts/ISO8859-2/misc, /usr/share/fonts/ISO8859-2/75dpi, #8230


4.1.2. In#353talácia fontov - X Font Server

X Font Server ponúka druhý spôsob spravovania fontov pre X Window Server, a to ako pre lokálnu ma#353inu, tak aj pre vzdialené systémy. Moderné distribúcie u#382 po in#353talácii ponúkajú nakonfigurovaný X Font Server a X Window System, ktorý vyu#382íva jeho slu#382by.

Pri tomto spôsobe treba cesty k fontom vlo#382i#357 do konfigura#269ného súboru X Font Serveru a konfigurácia v /etc/X11/X86Config (XF86Config-4) by mala vyzera#357 takto:

Section "Files"

FontPath? "unix/:7100"

EndSection?

za predpokladu, #382e X Font Server be#382í na porte 7100 (vo#318ba príkazového riadku

  • port).

Ak teda pou#382ívate xfs, nie#269o podobné ako v predchádzajúcej kapitole urobíte s konfigura#269ným súborom pre tento program (/etc/X11/fs/config) v #269asti catalogue:

catalogue = ..., /usr/share/fonts/ISO8859-2/misc, /usr/share/fonts/ISO8859-2/75dpi, /usr/share/fonts/ISO8859-2/100dpi, /usr/share/fonts/ISO8859-2/Type1

Hne#271 potom musí xfs znovu na#269íta#357 konfigura#269ný súbor a tým umo#382níte pou#382ívanie slovenských fontov lokálnemu aj iným X serverom:

sh# killall -USR1 xfs


4.1.3. Slovenské !TrueType fonty

Ak vlastníte legálnu kópiu systému WindowsXX (kde XX je hoci#269o), alebo MacOS, nemali by vás zavrie#357, ak pou#382ijete !TrueType fonty obsiahnuté v ich distribúciách. Existuje aj mnoho balíkov s !TrueType fontmi s podporou normy ISO-8859-2, ktoré sú vo#318ne dostupné.

Popis in#353talácie takýchto fontov prebehneme len v krátkosti, podrobnej#353í nájdete v dokumentácii k balíku free-type:

***#

Skopírujte súbory s !TrueType fontami napr. do adresára /usr/share/fonts/ttf/win/. Odporú#269am zmeni#357 mená súborov s fontami aj ich prípony na malé písmená -- mal som s tým problémy.

***# ***#

Vytvorte v ka#382dom adresári súbor s informáciami o scalable fontoch fonts.scale nasledovným príkazom:

sh# cd /usr/share/fonts/ttf/win sh# ttmkfdir -o fonts.scale

Ak to nie je celkom ono a dostanete ve#318a chybových hlásení, alebo súbor fonts.scale obsahuje príli#353 málo záznamov o fontoch v adresári, skúste pou#382i#357 s príkazom ttmkfdir aj vo#318bu príkazoveho riadku

  • c.

***# ***#

Zoznam fontov v súbore, ktorý na#269ítava X server aj xfs, vytvoríte nasledovne:

sh# cd /usr/share/fonts/ttf/win sh# mkfontdir

***#

Od tohto momentu pokra#269ujte #353tandardným spôsobom tak, ako je to popísané v predchádzajúcej #269asti o konfigurácii X servera alebo xfs.


4.1.4. #268o je iné so slovenskými fontami

Okrem toho, #382e sa slovenské znaky zobrazujú správne, ni#269. Fonty z balíkov pre normu ISO-8859-2 sa síce volajú inak, ale vzh#318adom zodpovedajú #353tandardným fontom. V nasledujúcej tabu#318ke sú uvedené zodpovedajúce dvojice fontov:

Tabu#318ka 3. Slovenské ekvivalenty #353tandardných fontov

  1. 353tandardneiso8859-2TimesKathimeriniHelveticaAplosNew Century !SchoolbookAnagnostikoLucidaFotinosUtopiaChimeraCharterChartis?

Berte túto tabu#318ku len ako informatívny údaj, ktorý pravdepodobne nikdy nebudete potrebova#357 v#271aka súborom fonts.alias v adresároch so slovenskými fontmi. Tie zabezpe#269ujú nahrádzanie mien #353tandardných fontov s uvedenou normou ISO-8859-2 zodpovedajúcimi menami slovenských fontov. Napríklad po#382iadavka na font

  • b8h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2

poskytne a teda zobrazí v skuto#269nosti font

  • biznet-fotinos-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2

4.1.5. Strie#318anie ta#382kostí

Ak budete dostáva#357 po spustení X serveru chybové hlásenia typu

  1. 8222Can't open default font 'fixed'" alebo
  2. 8222unable to open font ...", alebo vám

jednoducho nie#269o spojené s fontami pod iXami bude kazi#357 náladu, uistite sa, #382e máte v poriadku nasledovné veci.

***#

V#353etky adresáre s fontami, samotné súbory fontov a súbory, ktoré #269íta X Window System alebo X Font Server, musia ma#357 nastavené rozumné prístupové práva.

***# ***#

V adresároch, v ktorých sa nachádzajú fonty, musí existova#357 súbor fonts.dir. Ak nie, spustite v týchto adresároch program mkfontdir. V adresároch s !TrueType fontmi musíte e#353te predtým vytvori#357 súbor fonts.scale tak ako je to popísane v #269asti Slovenské !TrueType fonty.

***# ***#

Ak idete bez xfs, naozaj v#353etky adresáre s fontami musia by#357 uvedené v súbore XF86Config.

***# ***#

V prípade, ze pou#382ívate xfs, tieto adresáre musia by#357 uvedené v súbore /etc/X11/fs/config. Navy#353e, xfs musí be#382a#357 na nejakom porte (napr. 7100) a v XF86Config musí by#357 cesta k fontom uvedená ako adresa s #269íslom toho portu, asi takto:

FontPath? "unix/:7100"

***# ***#

Po zmenách v konfigura#269ných súboroch X Window Systemu alebo X Font Serveru je nutný re#353tart alebo znovuna#269ítanie nastavení:

; X Window System: sh$ xset fp rehash ; X Font Server: sh# killall -USR1 xfs

***# ***#

Ak máte v inittabe nastavené spú#353#357anie X serveru pri #353tarte systému (runlevel 5/X), rad#353ej si to pri pokusoch s fontami zme#328te na 3/multiuser a#382 pokia#318 si nie ste sakramentsky istí, #382e X server pri #353tarte nájde fonty. Ak to neurobíte a nastavenia budú nesprávne, za#269nú sa dia#357 záhadné veci typu #8222X server sa skon#269í, lebo nenájde fonty ale init ho znovu spustí a ten nenájde fonty, tak sa skon#269í, ale init ho...". Znakom toho je hlá#353ka INIT: Id "x" respawning too fast: disabled for 5 minutes.

***# ***#

X Window System h#318adá (pre normálneho u#382ívate#318a) konfigura#269né súbory v tomto poradí:

/etc/X11/`cmdlineb/usr/X11R6/etc/X11/`cmdlineb/etc/X11/$XF86CONFIG/usr/X11R6/etc/X11/$XF86CONFIG/etc/X11/XF86Config-4/etc/X11/XF86Config/etc/XF86Config/usr/X11R6/etc/X11/XF86Config.`hostnameb/usr/X11R6/etc/X11/XF86Config-4/usr/X11R6/etc/X11/XF86Config/usr/X11R6/lib/X11/XF86Config.`hostnameb/usr/X11R6/lib/X11/XF86Config-4/usr/X11R6/lib/X11/XF86Config

Pamätajte na to pri editovaní konfigurákov a v#382dy sa uistite, #269i neexistuje súbor, ktorý je v tomto zozname vy#353#353ie, ako ten, ktorý editujete.

***#----

4.2. Slovenská klávesnica v X Window Systeme

Skôr jak to tu celé rozto#269íme, zadajte príkaz

sh$ rpm -q XFree86

V#353etky tie #269ísla za XFree86, #269o vám tento príkaz vypí#353e, udávajú verziu vá#353ho XFree86 X Window Systemu.

Existuje presne #353tyridsa#357dva dôvodov, pre#269o prejs#357 na XFree86 verziu 3.2 alebo vy#353#353iu, a len dva, pre#269o zosta#357 pri star#353ej verzii. Red Hat Linux 6.0 obsahuje XFree86 , verziu 3.3.3 a Linux Mandrake 7.0 u#382 verziu 3.3.6.

Pokia#318 ste svoj opera#269ný systém nezdedili po starých rodi#269och, je vysoko pravdepodobné, #382e máte verziu XFree86 vy#353#353iu ako 3.2. Inak ste naozaj krok pozadu a na adrese ftp://ftp.xfree86.org nájdete to, #269o treba.

Ak aj po predchádzajúcich slovách, upozorneniach a odporú#269aniach odmietate upgrade na verziu 3.2, dr#382te sa nasledujúcich krokov:

***#

Ak máte Slovak-HOWTO vytla#269ené na papieri, uchopte tento do

  1. 318avej ruky (ak ste #318avák, robte v#353etko naopak), zapa#318ova#269 do pravej, zachovavajte

dostato#269nú vzdialenos#357 od iných zápalných materiálov a nekompromisne konajte.

***# ***#

V prípade, #382e máte tento súbor ulo#382ený niekde na disku, príkazom

sh$ su -c'rm -fr /'

sa ho do nieko#318kých minút po zadaní hesla zaru#269ene zbavíte.

***#----

4.2.1. Konfigurácia klávesnice

XFree86 3.2 a nov#353ie u#382 majú tzv. XKEYBOARD roz#353írenie, ktoré zjednodu#353uje konfiguráciu klávesnice pre X Window System. Teoreticky netreba urobi#357 viac ako v súbore /etc/X11/XF86Config vlo#382i#357 do sekcie "Keyboard" nie#269o takéto:

Section "Keyboard" ...

XkbLayout? "czsk"

XkbVariant? "us_sk_qwertz"

XkbOptions? "grp:ctrl_shift_toggle"

EndSection?

Ak u#382 ste nebodaj u#382ívate#318om XFree86 verzie 4.0.0 alebo vy#353#353ej, vlo#382te do súboru /etc/X11/XF86Config-4 toto:

Section "!InputDevice?" ... Option "!XkbLayout?" "czsk" Option "!XkbVariant?" "us_sk_qwertz" Option "!XkbOptions?" "grp:ctrl_shift_toggle"

EndSection?

Riadok v konfigura#269nom súbore

XkbLayout? "czsk"

prípadne pre verziu #8805 4

Option "!XkbLayout?" "czsk"

hovorí asi to#318ko, aby X server pou#382il popis rozlo#382enia kláves ulo#382ený v súbore czsk. Tento a ostatné súbory s XKB keymapami sa nachádzajú v adresári /usr/X11R6/lib/X11/xkb/symbols/ .

Bli#382#353ie si o formáte týchto súborov povieme neskôr, teraz si len otvorte súbor czsk a pozrite si jeho #353truktúru -- hlavne #269asti xkb_symbols. Pre sloven#269inu sú dôle#382ité tieto varianty:

us_sk_qwertyus_sk_qwertzus_sk_progsk_us_qwertysk_us_qwertzsk_us_prog

Niektorý z týchto re#357azcov dosa#271te do riadku

XkbVariant? "..."

pre star#353ie verzie X Window Systemu, alebo

Option "!XkbVariant?" "..."

v konfigura#269nom súbore pre X sever verzia 4.

Varianty us_sk_qwerty a sk_us_qwerty sú prakticky toto#382né, jediný rozdiel je v tom, ktoré rozlo#382enie kláves bude nastavené po #353tarte X Window Systemu. Pre sk_us_* je to slovenské, pre us_sk_* zase americké.

Prepína#357 medzi slovenským a americkým rozlo#382ením kláves mo#382no klávesom Scroll Lock, prípadne aj inými, ak vlo#382íte do konfigurácie klávesnice riadok:

Options "grp:..."

alebo pre X Window System verzie 4.0 alebo nov#353í:

Option "!XkbOptions?" "grp:..."

  1. 268as#357 grp:#8230 nahra#271te niektorou z nasledujúcich

mo#382ností a mô#382ete prepína#357 rozlo#382enia kláves pomocou danej klávesovej skratky:

Tabu#318ka 4. Mo#382nosti prepínania medzi rozlo#382eniami kláves

vo#318baprepínanie medzi rozlo#382eniamigrp:ctrl_shift_toggleLShift + LCtrl / RShift + RCtrlgrp:caps_toggleCaps Lock / LShift + RShiftgrp:ctrl_alt_toggleCtrl + Alt

Pri nastavovaní alternatívnych klávesových kombinácií na prepínanie medzi rozlo#382eniami kláves si dávajte pozor, aby dané nastavenie nekolidovalo s u#382 existujúcimi klávesovými skratkami (napríklad vá#353ho mana#382éra okien). Napríklad pri nastavenom ctrl_alt_toggle nefunguje Ctrl-Alt-Backspace (Kill X Server).


4.2.2. XKB keymapy

X Window System umo#382#328uje definova#357 vlastné popisy rozlo#382enia kláves prakticky pre akýko#318vek jazyk. Na to slú#382ia keymap súbory -- nie#269o ve#318mi podobné tým keymap súborom, o ktorých sme hovorili v #269asti o nastaveniach konzoly. Formát keymap súborov pre X Window System dovo#318uje vytvárat súbory s jednoduchým popisom len #269asti klávesnice, ale aj zlo#382ité súbory s mnohými rozlo#382eniami.

Naozaj nemá zmysel podrobne popisova#357 mo#382nosti XKB keymap súborov, sná#271 budú sta#269i#357 len úplné základy, ktoré vám dovolia robi#357 malé zmeny v u#382 existujucich popisoch rozlo#382enia kláves. Podstatne viac o týchto súboroch sa dozviete, ke#271 si ich sami pozriete a poskú#353ate.

V XKB popisoch rozlo#382enia kláves majú riadky takýto formát:

key `TLDEb { [ quoteleft, asciitilde?, [ semicolon, degree? };

K#318ú#269ové slovo key ozna#269uje za#269iatok definície znaku, ktorého kód nasleduje uzavretý v ` a b, celá definicia je uzavretá v krútených zátvorkách a dvojice znakov pre ka#382dú skupinu (Group) sa uzavierajú do hranatých zátvoriek. Skupiny mô#382u by#357 definované napríklad takto:

name[Group1? = "US/ASCII"; name[Group2? = "Slovak";

Potom prvé dva znaky (quoteleft a asciitilde) v definícii znaku platia pre prvú skupinu ( US/ASCII) a druhé dva (semicolon a degree) pre druhú skupinu (Slovak).

Kódy jednotlivých klávesov #318ahko zistíte z keymap súborov, ktorých je v adresári /usr/X11R6/lib/X11/xkb/symbols/ naozaj dos#357, takisto, názvy znakov a m#341tvych kláves sa ve#318mi nelí#353ia od tých, ktoré platia v keymap súboroch pre textovú konzolu. No a nakoniec, v prílohe XKB keymap nájdete jeden vzorový príklad slovenského rozlo#382enia kláves pre X Window System.


4.3. Slovenská my#353 v X Window Systeme

Mimoriadne zlo#382ité bolo do verzie 4.0.1 nastavovanie sloven#269iny pre my#353. Na#353tastie, vývojári si spomenuli, #382e i toto zariadenie a jeho ovláda#269e by mali v plnej miere podporova#357 miestne nastavenia tak, ako je to napríklad u klávesnice. Dokonca sa objavili pokusy lokalizova#357 tablety a svetelné perá.

V predchádzajúcich verziách X Window Systemu bola táto podpora ve#318mi slabo implementovaná a len nieko#318kým národnostiam sa podarilo rozchodi#357 my#353 vo svojom jazyku. Slovenskí pou#382ívatelia museli na svojich my#353iach robi#357 rôzne úpravy od tupírovania

  1. 353núry a#382 po kastráciu, ale výsledky boli aj tak neuspokojivé.

Popí#353eme si teraz v krátkosti postup posloven#269ovania my#353i v X Window Systeme, verzia 4.0.1 a vy#353#353ie:

***#

Odpojte svoju my#353 od po#269íta#269a, poutierajte a vyle#353tite jej gu#318u, skontrolujte mikrotla#269idlá a celkovo ju o#353etrite. Odlo#382te ju do tepla a sucha. Dôle#382ité je aspo#328 raz za de#328 k nej pristúpi#357 s Pravidlami slovenského pravopisu a príjemným hlasom pred#269ítava#357 slová zo slovníka. Po pár ty#382d#328och mô#382ete prejs#357 k jednoduchej beletrii a rozprávkam.

***# ***#

Po#269as tohto obdobia odvykania my#353i od cudzích jazykov nain#353talujte slovenské fonty a rozlo#382enie kláves. Takisto sa pokúste pozhá#328a#357 slovenské preklady ob#318úbených aplikácií va#353ej my#353i. Ako pozadie obrazovky odporú#269am nastavi#357 slovenskú zástavu a adresáre s hudbou by ste mali obohati#357 o tituly ako Iné Kafe, Maduar a rôzne iné rockové uragány a punkové smr#353te.

***# ***#

Ak máte pocit, #382e my#353 je pripravená vstúpi#357 do #269isto slovenského prostredia va#353ich iXov, opatrne ju pripojte a poukazujte jej v#353etky zákutia jej vynoveného domova.

***#

E#353te by som rád pripomenul, #382e nie v#353etky my#353i sú rovnako odolné vo#269i zmenám národného prostredia a preto sa v#382dy pri kúpe my#353i informujte na mo#382nosti posloven#269ovania toho ktorého výrobku.


4.4. Príklady

4.4.1. XF86Config-4

  1. 268as#357 konfigura#269ného súboru X Window Systemu (4.0.1) s rozbehaným X Font Serverom,

slovenským rozlo#382ením kláves s prepínaním medzi americkým a slovenským pomocou Shift + Ctrl.

Section "Files"

RgbPath? "/usr/X11R6/lib/X11/rgb"

FontPath? "unix/:7100"

ModulePath? "/usr/X11R6/lib/modules"

EndSection?

Section "!InputDevice?" Identifier "Keyboard1" Driver "Keyboard" Option "!AutoRepeat?" "500 30" Option "!XkbRules?" "xfree86" Option "!XkbModel?" "pc104" Option "!XkbLayout?" "czsk" Option "!XkbVariant?" "us_sk_qwertz" Option "!XkbOptions?" "grp:ctrl_shift_toggle"

EndSection?


4.4.2. XKB keymap

Príklad úplne jednoduchého popisu rozlo#382enia kláves pre sloven#269inu:

partial default alphanumeric_keys xkb_symbols "sk_us" { name[Group1? = "Slovak"; name[Group2? = "US/ASCII"; // line 1 key `TLDEb { [ semicolon, degree?, [ quoteleft, asciitilde? }; key `AE01b { [ plus, 1?, [ 1, exclam? }; key `AE02b { [ lcaron, 2?, [ 2, at? }; key `AE03b { [ scaron, 3?, [ 3, numbersign? }; key `AE04b { [ ccaron, 4?, [ 4, dollar? }; key `AE05b { [ tcaron, 5?, [ 5, percent? }; key `AE06b { [ zcaron, 6?, [ 6, asciicircum? }; key `AE07b { [ yacute, 7?, [ 7, ampersand? }; key `AE08b { [ aacute, 8?, [ 8, asterisk? }; key `AE09b { [ iacute, 9?, [ 9, parenleft? }; key `AE10b { [ eacute, 0?, [ 0, parenright? }; key `AE11b { [ equal, percent?, [ minus, underscore? }; key `AE12b { [ dead_acute, dead_caron?, [ equal, plus? }; // line 2 key `AD01b { [ q, Q?, [ q, Q? }; key `AD02b { [ w, W?, [ w, W? }; key `AD03b { [ e, E?, [ e, E? }; key `AD04b { [ r, R?, [ r, R? }; key `AD05b { [ t, T?, [ t, T? }; key `AD06b { [ z, Z?, [ y, Y? }; key `AD07b { [ u, U?, [ u, U? }; key `AD08b { [ i, I?, [ i, I? }; key `AD09b { [ o, O?, [ o, O? }; key `AD10b { [ p, P?, [ p, P? }; key `AD11b { [ uacute, slash?, [ bracketleft, braceleft? }; key `AD12b { [ adiaeresis, parenleft?, [ bracketright, braceright? }; // line 3 key `AC02b { [ s, S?, [ s, S? }; key `AC03b { [ d, D?, [ d, D? }; key `AC04b { [ f, F?, [ f, F? }; key `AC05b { [ g, G?, [ g, G? }; key `AC08b { [ k, K?, [ k, K? }; key `AC09b { [ l, L?, [ l, L? }; key `AC10b { [ ocircumflex, quotedbl?, [ semicolon, colon? }; key `AC11b { [ section, exclam?, [ quoteright, quotedbl? }; // line 4 key `AB01b { [ y, Y?, [ z, Z? }; key `AB02b { [ x, X?, [ x, X? }; key `AB04b { [ v, V?, [ v, V? }; key `AB05b { [ b, B?, [ b, B? }; key `AB06b { [ n, N?, [ n, N? }; key `AB07b { [ m, M?, [ m, M? }; key `AB08b { [ comma, question?, [ comma, less? }; key `AB09b { [ period, colon?, [ period, greater? }; key `AB10b { [ minus, underscore?, [ slash, question? }; key `BKSLb { [ ncaron, parenright?, [ backslash, bar? }; // End alphanumeric section // begin modifier mappings modifier_map Shift { Shift_L }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L }; modifier_map Mod3 { Mode_switch }; };


5. Sloven#269ina a linuxový kernel

5.1. Kompilácia kernelu so slovenskou klávesnicou

Je ve#318mi jednoduché zmeni#357 rozlo#382enie kláves, s ktorým bude jadro vá#353ho opera#269ného systému skompilované. Ak pou#382ijete program loadkeys s vo#318bou príkazového riadku --mktable `keymapfileb, tento vám vygeneruje

  1. 8222zdrojový kód" súboru `keymapfileb. Ten ulo#382te do súboru

drivers/char/defkeymap.c v adresárovej #353truktúre zdrojového kódu Linuxu.

sh# cd /usr/src/linux sh# loadkeys --mktable sk-qwerty b drivers/char/defkeymap.c

Toto je akási náhrada za /etc/sysconfig/console/default.kmap s tým rozdielom, #382e va#353e rozlo#382enie bude zavedené u#382 od úplného #353tartu systému. V prípade problémov s initscriptami (alebo #353tarte zo záchrannej diskety) budete ma#357 zavedené svoje rozlo#382enie v ka#382dom prípade. Pozor, nekompilujte si kernel so slovenským rozlo#382ením len preto,

  1. 382e #382ijete na Slovensku! Na to slú#382i príkaz loadkeys. Pou#382ite toto rie#353enie,

len ak bezpodmiene#269ne potrebujete slovenské rozlo#382enie pri zadávaní rootovho hesla alebo tak podobne.


5.2. Diakritika v názvoch súborov na FAT partíciách

Ak chcete pristupova#357 spod Linuxu na FAT/VFAT oddiely a ma#357 prípadnú diakritiku v názvoch súborov na takýchto partíciách, pri konfigurácii kernelu (pred kompilovaním) zvo#318te tieto nastavenia v #269asti Filesystems->Native Language Support:

CONFIG_NLS_CODEPAGE_852 --- Codepage 852 CONFIG_NLS_ISO8859_2 --- ISO 8859-2 (Latin 2)

Pri pripájaní FAT/VFAT mô#382ete potom uvies#357 vo#318bu codepage=852.

Vo#318ba codepage nastavuje kódovú stránku pre prevod znakov krátkych mien na súborových systémoch FAT a VFAT. Implicitne má codepage hodnotu 437.


6. Posloven#269ovanie konkrétnych aplikácií

  1. 268ím #271alej, tým viac programov obsahuje bezproblémovú podporu jazykov iných ako angli#269tina.

Napriek tomu je e#353te pár balíkov, ktoré bu#271 pou#382ívajú vlastné rozlo#382enia kláves, alebo je treba nastavi#357 nejaké tie fonty #269i premenné. V tejto kapitole si popí#353eme tie aplikácie, v ktorých je pre rozbehanie sloven#269iny po nai#353talovaní nutné urobi#357 viac ako export LANG=sk.

Ak chcete naozaj plnohodnotne vyu#382íva#357 podporu národných nastavení, v#382dy sa uistite, #382e program, ktorý pou#382ívate (alebo celá distribúcia), nie je star#353í ako 6 - 12 mesiacov. Je toti#382 mo#382né, #382e autori pridali túto podporu len v nov#353ích verziách.

Niektoré z nasledovných popisov nie sú pôvodné a niektoré nemusia by#357 ani odskú#353ané. Preto je pri ka#382dom uvedený autor a jeho adresa a prípadný zdroj, z ktorého sa návod dostal do Slovak-HOWTO.


6.1. Bash

Vi#271 Readline.

Ján 'judas' Tomka, `judas@linux.skb

Bash máva nepravidelne problém pri zmene premennej LC_CTYPE a zvykne sa sta#357, #382e znaky s diakritikou sa nevypisujú napriek správnemu nastaveniu tejto premennej. Zatia#318 sa mi nepodarilo zisti#357, kde je chyba, lebo napríklad Vim spustený z takéhoto Bashu funguje správne... Zatia#318 to rie#353im príkazom

bash$ exec bash

Aktuálny shell sa nahradí novým, ktorý u#382 premennú LC_CTYPE pochopí správne a je u#382 mo#382né zadáva#357 aj znaky s diakritikou.


6.2. Joe

Ján Ondrej (SAL), `ondrejj@salstar.shadow.skb

Ak chcete pou#382íva#357 národné prostredie, potrebujete ma#357 nain#353talovanú slovenskú klávesnicu, slovenský font a navy#353e musíte povoli#357 zobrazovanie znakov s ASCII kódom 128-255 tak, ako sú (as is). To mô#382ete spravi#357 zmazaním medzery pred vo#318bou

  • asis v konfigura#269nom súbore joerc.

Naj#269astej#353ie ho nájdete v adresári /usr/lib/joe/, v Debiane je v adresári /etc/. #270al#353ou mo#382nos#357ou je pridanie parametra

  • asis pri spú#353#357aní programu.

6.3. Lynx

Ján 'judas' Tomka, `judas@linux.skb

V konfigurácii Lynxu sa lokalizácie týkajú hlavne tieto nastavenia:

****

Display character set (CHARACTER_SET) --- kódovanie znakov na výstupe. Toto hovorí o tom, do akej znakovej sady sa budú prevádza#357 znaky pred zobrazením na va#353ej obrazovke. Ak máte #353tandardne nastavený slovenský font, mô#382ete ma#357 toto v#382dy nastavené na ISO-8859-2.

**** ****

Assumed document character set (ASSUME_CHARSET) --- aká znaková sada sa má pou#382i#357, ak html dokument neobsahuje informáciu o svojom kódovaní a nastavenie Raw 8-bit je vypnuté. HTTP #353tandardom je ISO-8859-1 tak#382e tak. Vä#269#353inou majú dokumenty s iným kódovaním ako ISO-8859-1 informáciu o svojej znakovej sade, vtedy sa toto nastavenie neberie do úvahy. Ak chcete, aby sa dokumenty, ktoré nemajú explicitne danú sadu znakov, pova#382ovali za súbory s kódovaním Latin 2, nastavte si túto premennú. Mo#382no ju nastavi#357 len v súbore /etc/lynx.cfg (teda nie pre ka#382dého u#382ívate#318a zvlá#353#357).

**** ****

Raw 8-bit --- s týmto sa ve#318mi trápi#357 nemusíte, len v prípade, #382e sa slovenské znaky nezobrazujú správne, sa v#382dy uistite, #382e to máte zapnuté (klávesovou skratkou @).

****

Konfigura#269ný súbor /etc/lynx.cfg upravte, aby obsahoval minimálne prvý riadok z

CHARACTER_SET:iso-8859-2 ASSUME_CHARSET:iso-8859-2

...alebo, pre u#382ívate#318ský konfigura#269ný súbor /.lynxrc:

character_set=Eastern European (ISO-8859-2)


6.4. Mandrake 8

Vi#271 RPM4.

Ján 'judas' Tomka, `judas@linux.skb


6.4.1. NLSPATH

Ak in#353talujete aplikácie, ktorých súbory s prelo#382enými hláseniami (*.mo) sa po in#353talácii nenachádzajú v adresárovej #353truktúre pod /usr/share/locale/, odstrá#328te zo súboru /etc/profile riadok

export NLSPATH=/usr/share/locale/%l/%N

Vraj je ten riadok nutný pre level1 compliance for LI18NUX2000, man a star#353ie programy, ale ka#353#318a#357 na #353tandardy a starý #353rot, ke#271 to funguje len bez tej premennej. Samozrejme, ak vám to funguje aj s #328ou, zabudnite na m#328a.

V prípade, #382e nemô#382ete meni#357 /etc/profile, vlo#382te si do svojho /.profile riadok

unset NLSPATH


6.4.2. SYSFONTACM

Pre správnu funkciu fontov je nutné okrem LC_CTYPE a SYSFONT nastavi#357 aj premennú SYSFONTACM v súbore /etc/sysconfig/i18n. No ak máte vlastný ú#382ívate#318ský súbor /.i18n, globálny sa nena#269íta a premenná SYSFONTACM sa nenastaví. Preto v#382dy vlo#382te do svojho u#382ívate#318ského súboru riadok:

SYSFONTACM=iso02

Na vine je skript /etc/profile.d/lang.sh, preto#382e ten po#353le na terminál Escape sekvenciu zavedenia u#382ívate#318ského fontu len v prípade, #382e je nastavená premenná SYSFONTACM. Tak si ju nastavte, alebo si to nejako opravte!


6.5. Midnight Commander

Ján Ondrej (SAL), `ondrejj@salstar.shadow.skb

Jeho lokalizácia je jednoduchá, preto#382e ju priamo podporuje. Klávesou F9 vyvoláte menu Options->Display bits... a zapnite vo#318by:

(*) Full 8 bits output [x? Full 8 bits input

Po tomto kroku bude MC vypisova#357 diakritické znaky správne a bude ich mo#382né aj zadáva#357 z klávesnice. Ak sa pri vstupe do niektorých adresárov bude zobrazova#357 hlá#353ka

  1. 8222Warning: Couldn't change to ...", tak

potrebujete lokalizova#357 kni#382nicu readline (iba pre star#353ie

RedHat systémy).

Rám#269eky v MC (judas). Ak pou#382ívate console-tools, pre správnu funkciu rám#269ekov v Midnight Commander a podobných textových aplikáciách nastavte font s application charset map. U m#328a funguje jedine táto kombinácia:

sh$ consolechars --font lat2u-16 --acm iso02


6.6. Mutt

Ján 'judas' Tomka, `judas@linux.skb

Miestnych nastavení sa týkajú v konfigura#269nom súbore /.muttrc nasledovné premenné:

****

ascii_chars -- Ak je nastavená, Mutt pou#382ije znaky ASCII pri zobrazovaní vláken stromov pripojených súborov, namiesto znakov ASC. To odporú#269am, ak máte nastavený star#353í font bez podpory app-charset-map a namiesto

  1. 269iar a #353ípiek sa vám zobrazujú znaky s diakritikou, alebo tieto znaky blikajú ap.

    *** ***

charset -- Znaková sada, ktorú pou#382íva vá#353 terminál na zobrazovanie a vkladanie textových dát. Nastavi#357 na kód znakovej sady fontu, ktorý máte nastavený na konzole alebo v XTerme, at#271.

**** ****

send_charset --

****


6.7. Readline

Ján 'judas' Tomka, `judas@linux.skb

V súbore s globálnymi nastaveniami /etc/inputrc alebo vo svojom u#382ívate#318skom súbore /.inputrc je pre správnu interpretáciu osembitových znakov nastavi#357 tieto premenné:

****

convert-meta --- Ak je nastavená na `on', Readline konvertuje znaky s nastaveným ôsmym bitom na sekvenciu znakov ASCII odstránením ôsmeho bitu a pridaním znaku Esc na za#269iatok.

**** ****

input-meta --- Ak je nastavená na `on', Readline umo#382ní osembitový vstup (neodstráni ôsmy bit z pre#269ítaných znakov) bez oh#318adu na to, #269i to terminál podporuje. Meno meta-flag je synonymom pre túto premennú.

**** ****

output-meta --- Ak je nastavená na `on', Readline bude zobrazova#357 znaky s nastaveným ôsmym bitom priamo a nie ako escape sekvencie.

****

Tak#382e, do jedného zo spomínaných súborov vlo#382te takéto nastavenia:

set convert-meta off set input-meta on set output-meta on


6.8. RPM4

Ján 'judas' Tomka, `judas@linux.skb

Tento malý skriptík #8222doin#353taluje" slovenské preklady v#353etkých aplikácií, ktoré máte nain#353talované. Mô#382u vám chýba#357, ak ste pri in#353talácii opera#269ného systému nezvolili slovenský jazyk.

export RPM_INSTALL_LANG=sk cd /mnt/cdrom/Mandrake/RPMS/ for i in *.rpm; do j=$(rpm -q --queryformat "%{NAME}" -p $i) if rpm -q $j; then rpm -Uvh --replacepkgs $i fi done

U#382 nikdy nezabudnite nastavi#357 premennú RPM_INSTALL_LANG!


6.9. Rxvt

Ján 'judas' Tomka, `judas@linux.skb

Náprava toho, #382e Rxvt vypisuje m#341tvy kláves priamo a ne#269aká na

  1. 271al#353í znak, s ktorým by ho skombinoval, je otázka jedného argumentu pri konfigurovaní:

sh$ ./configure --enable-xim sh$ make sh$ su -c'make install'

Týmto sa Rxvt skompiluje s podporou pre XIM (X Input Method) protokol. Ten umo#382#328uje alternatívne metódy vstupu (napr. kinput2) a tie#382 správne nastavenia pre #318udí, #269o pou#382ívajú m#341tve klávesy.


6.10. Samba

Ján Ondrej (SAL), `ondrejj@salstar.shadow.skb

Po nastavení lokalizácie doká#382e automaticky prekódova#357 znaky s diakritikou z kódovania 852 na ISO-8859-2. Nastavuje sa to v konfigura#269nom súbore /etc/smb.conf pridaním nasledujúcich riadkov do sekcie [global?:

character set = iso8859-2 client code page = 852


7. Finti#269ky so sloven#269inou

7.1. Zadávanie slovenských znakov vo Vim

http://www.kotelna.sk/keso/unix/vim.html

Ak nemô#382ete, alebo nechcete pou#382íva#357 rozlo#382enie kláves pre sloven#269inu, ale potrebujete zada#357 pár na#353ich znakov vo Vim, dá sa to urobi#357 pomocou príkazu imap. Jeho formát je

:imap {lhs} {rhs}

{lhs} je postupnos#357 znakov, po ktorých zadaní (v krátkom #269asovom intervale) sa vypí#353e {rhs}.

Pre sloven#269inu by sa dali vyu#382i#357 imap definície znakov typu

:imap =a á :imap +c #269

Ako vidno, je to nie#269o podobné ako compose sekvencie z kapitoly o klávesnici na konzole. Po zadaní týchto príkazov mô#382ete aj so #353tandardným rozlo#382ením kláves zadáva#357 vo vim znaky s diakritikou. Tu je kompletný zoznam imap definícií pre slovenskú diakritiku. Ulo#382te ho do súboru napríklad sk.vim a vo Vim ho na#269ítate príkazom

:source sk.vim

imap =a á imap =A Á imap +a ä imap +A Ä imap +c #269 imap +C #268 imap +d #271 imap +D #270 imap =e é imap +e #283 imap =E É imap +E #282 imap =i í imap =I Í imap =l #314 imap =L #313 imap +l #318 imap +L #317 imap +n #328 imap +N #327 imap =o ó imap =O Ó imap +o ô imap +O Ô imap "o ö imap "O Ö imap =r #341 imap =R #340 imap +r #345 imap +R #344 imap +s #353 imap +S #352 imap +t #357 imap +T #356 imap =u ú imap =U Ú imap +u #367 imap +U #366 imap "u ü imap "U Ü imap =y ý imap =Y Ý imap +z #382 imap +Z #381


7.2. Odstránenie alebo nahradenie diakritiky v textových súboroch

7.2.1. sed

Ján 'judas' Tomka, `judas@linux.skb

V prípade, #382e potrebujete z textového súboru odstráni#357 diakritické znamienka, mô#382ete pou#382i#357 program sed, pomocou ktorého nahradíte výskyt znaku s diakritikou jeho ekvivalentom bez nej.

Ak chcete odstráni#357 diakritiku úplne, musíte nahradi#357 výskyt v#353etký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#269í nahradi#357 len tie znaky, ktoré sa nezobrazujú správne pre

  1. 353tandardný font (spravidla latin 1).

Toto je príkaz, ktorý mo#382no pou#382i#357 pri vytváraní verzie súboru úplne bez diakritiky:

sed -e "s:á:a:g" -e "s:Á:A:g" -e "s:ä:a:g" -e "s:Ä:A:g" \

  • e "s:#269:c:g" -e "s:#268:C:g" -e "s:#271:d:g" -e "s:#270:D:g" \
  • e "s:é:e:g" -e "s:É:E:g" -e "s:#283:e:g" -e "s:#282:E:g" \
  • e "s:í:i:g" -e "s:Í:I:g" -e "s:#314:l:g" -e "s:#313:L:g" \
  • e "s:#318:l:g" -e "s:#317:L:g" -e "s:#328:n:g" -e "s:#327: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:#341:r:g" -e "s:#340:R:g" \
  • e "s:#345:r:g" -e "s:#344:R:g" -e "s:#353:s:g" -e "s:#352:S:g" \
  • e "s:#357:t:g" -e "s:#356:T:g" -e "s:ú:u:g" -e "s:Ú:U:g" \
  • e "s:#367:u:g" -e "s:#366:U:g" -e "s:ü:u:g" -e "s:Ü:U:g" \
  • e "s:ý:y:g" -e "s:Ý:Y:g" -e "s:#382:z:g" -e "s:#381:Z:g" \

"Slovak-HOWTO.sgml" b "Slovak-HOWTO-nodiac.sgml"


7.2.2. cstocs

Bra#328o Katreniak

Ke#271 sa zmie#328ujete o tom, ako sa dá odstráni#357 sloven#269ina z dokumentu, zdá sa mi vhodné spomenú#357 aj program cstocs. Je to milá utilitka #353tandardne dodávaná s

TeXom?. Umo#382#328uje konverziu súborov prakticky v#353etkých mo#382ných

kódových stránok medzi sebou navzájom, pri#269om jedna z mo#382ností je aj odstránenie diakritiky. Pri#269om sa mi to zdá pohodlnej#353ie ako sed.


7.2.3. recode

Ján 'judas' Tomka, `judas@linux.skb

Existuje aj program recode, ktorý pravdepodobne tie#382 slú#382i na zmeny v kódovaní súborov. Ur#269ite ho pou#382ijete na tento cie#318, ak sa predtým nestane niektorá z nasledujúcich vecí:

***#

Prídete o o#269i pri #269ítaní man stránky, info manuálu a v#353etkého #269o je o tomto -- inak ur#269ite u#382ito#269nom programe -- popísané.

***# ***#

Prídete o nervy pri skú#353aní v#353etkých mo#382ných kombinácií parametrov, volieb #269i argumentov pre tento nesmierne u#382ito#269ný program.

***# ***#

Prídete o po#269íta#269, ke#271#382e ho vyhodíte z okna po dvoch tý#382d#328och psychického utrpenia, ktoré za#382ijete pri pokusoch s týmto extrémne u#382ito#269ným programom.

***#

Pod#318a v#353etkého by mal sta#269i#357 nasledovný príkaz:

recode l2 subor.txt

ale zdá sa, #382e to sta#269i#357 nebude. Latka na titul #8222Linuxový Guru" sa posunula do závratných vý#353ok, preto#382e -- aby ste sa stali jeho nosite#318om -- musíte vedie#357 pomocou tohto programu previes#357 dokument v latin2 na latin1 alebo dokonca ASCII (a to u#382 je pekný Saigon...)