Slovak-HOWTO Ján 'judas' Tomka verzia 4 (Blanka) 16. február 2002 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. ----------------------------------------------------------------------------- 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??ina 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?? v X Window Systeme 4.4. Príklady 5. Sloven??ina 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??ovanie 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??ky so sloven??inou 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ô??ete ??íta?? tento dokument, a to aj na komer??né u??ely! 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. Toto je ??free?? dokument --- mô??ete ho ??íri?? a/alebo modifikova?? v súlade s podmienkami licencie GNU Free Documentation Licence, ktorej znenie nájdete na adrese [http://www.gnu.org/licenses/fdl.html] 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??etko bolo ukradnuté so súhlasom autora. ----------------------------------------------------------------------------- 1.2. Aktuálna verzia a prispievanie 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ú:   * Aktuálna verzia: [http://slovencina.linux.sk/howto/] http:// slovencina.linux.sk/howto   * Priania, s??a??nosti a ponuky na sobá??: [mailto:judas@linux.sk] judas@linux.sk Na túto adresu sa tie?? obracajte, ak máte nie??o, ??o by nemalo chýba?? v Slovak-HOWTO. 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 PAS nekompromisne trvá na kompromise a v??etci pijú minerálku Pomô?? a skonaj. Tigre, nosoro??ce a lú??ne koníky boli pokrstené, a predsa sa s kapitolou o klávesnici v iXoch ni ?? nedeje. Mimochodom, sme naj??ítanej??ie Slovak-HOWTO na svete! Pri prispievaní sa skúste riadi?? nasledovnými pravidlami:   * Pre tých, ktorí majú vá??ny záujem podie??a?? sa na písaní Slovak-HOWTO, je mo??ný 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????ie informácie o získaní CVS konta a webovskom rozhraní k CVS serveru nájdete v LDP Autor Guide.   * Opravy robte v??dy vo formáte SGML (DTD DocBook, 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 ISO-8859-2.   * 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...)   * 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.   * V Czech-HOWTO sa hovorí: ??Kdy?? u?? n??kdo podobný dokument ??te, d??lá to z nutnosti a ne pro své pobavení.?? Musíme v??ak zobra?? do úvahy, ??e v ??echách je vy????ia ??ivotná úrove?? a oni a?? to??ko 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??ovanie konkrétnych aplikácií, prípadne Finti??ky so sloven??inou.   * Ján 'judas' Tomka -- Zodpovedný vedúci.   * ??ubomír 'salo' Sedlá??ik -- ksh/csh/tcsh, grammar bugfixes. ----------------------------------------------------------------------------- 2. Miestne nastavenia 2.1. Princípy miestnych nastavení 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 GNU systémoch je táto podpora implementovaná priamo do ??tandardnej kni??nice jazyka C -- GNU libc. Táto podpora je navrhnutá tak, aby zoh??ad??ovala v??etky po??iadavky kladené na nastavenia pre akúko??vek krajinu a akýko??vek jazyk. ----------------------------------------------------------------------------- 2.1.1. Ciele a prostriedky 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. Internacionalizácia softvéru znamená programova?? ho tak, aby bol schopný pracova?? s pou??ivate??ovými miestnymi nastaveniami. V ISO C pracuje internacionalizácia v zmysle locales. Ka??dé locale (miestne nastavenia) ??pecifikuje skupinu pravidiel, jedno pravidlo pre ka??dý u??el. U??ívate?? si zvolí skupinu pravidiel ??pecifikovaním locale (pomocou systémových premenných). 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??. ----------------------------------------------------------------------------- 2.1.2. Kategórie a ich funkcie Táto ??as?? popisuje jednotlivé premenné, ktoré ovplyv??ujú miestne nastavenia a ktorými sa riadia aj funkcie kni??nice 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??azcov. Nastavením tejto premennej mo??no prinúti?? aplikácie, napr. sort, ls a iné, aby pri porovnávaní re??azcov brali do úvahy miestne rozlo??enie jednotlivých písmen v abecede. Sloven ??ina má napríklad hne?? nieko??ko znakov, ktoré by pri triedení pod??a ??íselnej hodnoty znaku spôsobovali problémy. Slovenské nastavenia triedenia povedia funkciam strcoll a strxfrm, ??e napríklad ch je jedno písmeno a nasleduje hne?? za h a nie za c, ??e ??iroké ä nasleduje za dlhým á a to zase za oby??ajným a. Skúste si to na príkaze sort. Zadajte písmená cc ch hh, potom zme??te 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??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 LC_ALL alebo LANG (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ú. Varovanie V??dy si bu??te stopercentne istí, ??e máte túto premennú nastavenú (bu?? cez LC_ALL, LANG alebo priamo), lebo inak nemá zmysel ??íta?? ??alej! Ono ?? klasifikácia a prevod znakov?? neznie nejako lákavo, ale vedzte, ??e je to sakramentsky dôle??ité pre ??ivot slovenských písmeniek vo va??om Linuxe!   * LC_MONETARY, LC_NUMERIC --- 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??.   * LC_TIME --- 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, ...   * LC_MESSAGES --- 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. S prekladom hlásení programov, hlavne s umiestnením súborov s prelo??enými re??azcami, súvisí premenná NLSPATH. Mala by obsahova?? dvojbodkami oddelený zoznam adresárov, v ktorých sa budú h??ada?? .mo súbory pre miestne nastavenia dané premennou LC_MESSAGES. Premennú NLSPATH 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. Okrem týchto premenných bolo implementovaných nieko??ko ??al??ích, ktoré zatia?? nie sú zdokumentované (The GNU C Library Reference Manual). Ich význam je zrejmý z názvu, tak??e uvediem aj svoju dedukciu.   * LC_PAPER --- Formát papiera. V na??ich zemepisných ??írkach sa napríklad pou??íva formát A4, v Amerike je to Letter, at??. Pozor, táto premenná neobsahuje priamo názov formátu, ale (tak, ako v??etky LC_ premenné), skratku miestneho nastavenia, teda u nás to bude sk. Ak by sme chceli pou??íva?? formát Letter, museli by sme túto premennú nastavi?? na kód miestneho nastavenia niektorej z krajín, ktorá pou??íva takýto formát, napríklad us. V tomto prípade je nutné nain??talova?? balík s miestnymi nastaveniami pre túto krajinu (locales-us).   * LC_NAME --- 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...   * LC_ADDRESS --- Spôsob zápisu adresy. Poradie ulice a popisného ??ísla domu, ZIP kód, PS?? apod.   * LC_TELEPHONE --- Formát telefónnych a faxových ??ísel. Ur??uje zoskupovanie ??íslic, ich oddelovanie, po??et ??ísel predvo??by, ...   * LC_MEASUREMENT --- Miery. Jednotky hmotnosti, objemu, teploty a d????ky, pou??ívané v tej ktorej krajine. Program napísaný v USA bude pravdepodobne po??íta?? s galónmi vody, ale ak je správne napísaný, s premennou LC_MEASUREMENT nastavenou na ??sk?? bude zobrazova?? 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é ??íslo? ??íslo sociálneho poistenia? ??íslo topánok? ----------------------------------------------------------------------------- 2.1.3. ??al??ie premenné   * LC_ALL --- 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.   * LANG --- Hodnota tejto premennej sa pou??ije pre tie skupiny locales, ktoré nemajú príslu??nú premennú nastavenú.   * LANGUAGE --- 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 LANGUAGE. 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 LANGUAGE. 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é LANGUAGE="sk:cz" a Szolvák z Komárom zase LANGUAGE= "hu:sk". Výstraha Premenná LANGUAGE ovplyv??uje len premennú LC_MESSAGES! Pre správnu funkciu je nutné nastavi?? aj ostatné premenné (minimálne LC_CTYPE).   * LINGUAS --- Táto premenná nemá ??peciálny význam z h??adiska GNU libc, ale zvykne sa pou??íva?? pri in??talácii programov (zo zdrojákov). Medzerami oddelený zoznam kódov miestnych nastavení ur??uje jazyky, pre ktoré si u??ívate?? ??elá in??talova?? preklady re??azcov aplikácie. Príklad: +---------------------------------------------------------------+ |bash$ export LINGUAS="sk cz" | |bash$ ./configure | |bash$ make install | | | +---------------------------------------------------------------+ 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 LANG a LC_ALL, tieto ale mô??u obsahova?? len jeden kód miestnych nastavení.   * RPM_INSTALL_LANG --- ??astej??ie ako zo zdrojového kódu sa aplikácie in??talujú z rôznych balíkov (rpm, deb, ...). Kvôli ??etreniu miestom na disku (a logike -- málokto ovláda tridsa?? re??í) je v RPM4 mo??né ur?? i?? jazyk, ktorého prelo??ené hlá??ky sa budú in??talova??. Preto odporú ??am do súboru .bash_profile (.login) u??ívate??a, ktorý in??taluje balíky (root), vlo??i?? nasledovný riadok: +---------------------------------------------------------------+ |bash$ export RPM_INSTALL_LANG=sk | | | |tcsh$ setenv RPM_INSTALL_LANG "sk" | | | +---------------------------------------------------------------+ 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 RPM4. ----------------------------------------------------------------------------- 2.1.4. Priorita premenných Miestne nastavenia sa ur??ujú zo spomenutých premenných, pri??om tieto sa vyhodnocujú v tomto poradí: LANGUAGE --- ovplyv??uje len LC_MESSAGES LC_ALL LC_* LANG To znamená asi to??ko, ??e ke?? raz nastavíte LC_ALL, jednotlivé premenné LC_ * sa u?? 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??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: jazyk[_územie[.kódovanie]][@modifikátor] jazyk je napr. sk pre sloven??inu, cs pre ??e??tinu, hu pre ma??ar??inu, územie je SK pre Slovensko, CZ pre ??eskú republiku, HU pre Ma??arsko, kódovanie je ISO-8859-2 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 euro 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 iso-8859-15, ktoré definuje znaky euro a cent. 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): Tabu??ka 1. Príklady kódov miestnych nastavení +-----------------+---------+-------+--+ |sk_SK.ISO-8859-2 |sk_SK |  |sk| +-----------------+---------+-------+--+ |cs_CZ.ISO-8859-2 |cs_CZ@-ch|cs@-ch |cs| +-----------------+---------+-------+--+ |en_GB.iso8859 |en_GB |en@euro|en| +-----------------+---------+-------+--+ |ja_JP.ujis |ja_JP.EUC|ja_JP |ja| +-----------------+---------+-------+--+ Nemali by sme zabudnú?? na dve ??tandardné locales, ktoré sa pou??ijú, ak nie sú systémové premenné nastavené a programy ich pou??ívajú do doby, kým sa inicializuje lokalizácia. Tvrdím, ??e sa pou??ijú obe, preto??e momentálne sú toto??né, ale v budúcnosti sa mô??u v tejto oblasti ??tandardy ISO C a POSIX odli??ova?? a potom to bude zále??a?? na konfigurácii systému. C --- nastavenia pod??a ??tandardu ISO C. POSIX --- nastavenia pod??a ??tandardu POSIX. V sú??asnosti je to alias pre nastavenia C. ----------------------------------------------------------------------------- 2.2. Miestne nastavenia pre Slovensko V prvom rade treba nain??talova?? balík s podporou miestnych nastavení, ktorý má názov locales a tie?? balík s podporou priamo pre Slovensko --- locales-sk . 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. V druhom rade si musíte nain??talova?? balíky s podporou miestnych nastavení a priamo sloven??iny (sú to locales a locales-sk). V ??al??om kroku si nezabudnite nain??talova?? balíky locales a locales-sk. Takisto, pre ka??dý jazyk, ktorý sa chystáte pou??íva??, si nain??talujte balík s podporou miestnych nastavení. V prípade problémov s miestnymi nastaveniami sa dr??te predchádzajúcich troch krokov. ----------------------------------------------------------------------------- 2.2.1. Súbory s miestnymi nastaveniami Prejdime sa teraz trochu po na??ich adresároch. Prvý nav??tívime /usr/share/ locale/sk. 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 sk. Okrem nich tu mô??e by?? e??te súbor charset, ktorý obsahuje len jeden riadok s re??azcom iso-8859-2. Ten hovorí, aké kódovanie znakov sa má pou??i?? pre dané miestne nastavenia. V??etky súbory v tomto adresári sú binárne dáta a adresár LC_MESSAGES 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 LC_*. Presu??me sa do adresára /usr/share/i18n/. Tu, v textovom súbore sk_SK v podadresári locales/ 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 /usr/share/locales/sk / príkazom, ktorý údaje v súbore sk_SK skompiluje a ulo??í 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 (??o 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?? tieto dva riadky: sk sk_SK.ISO-8859-2 slovak sk_SK.ISO-8859-2 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. Varovanie Ale na aliasy typu slovak 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 slovak stane sl, ??o je Slovinsko. Pozitívne je, ??e pre sloven??inu mô??ete nastavi?? 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??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?? (source /etc/sysconfig/i18n) do inicializa??ný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??dom ??tarte 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??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 .i18n 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 ??/.i18n, nastavenia zo súboru /etc/ sysconfig/i18n sa ignorujú. U??ívate?? si mô??e zmeni?? nastavenia aj ru??ne, kedyko??vek sa mu zachce, nastavením premenných prostredia LC_MESSAGES, LANG, at??. Vypnú?? nejaké nastavenie je mo??né príkazom +---------------------------------------------------------------------------+ |sh$ unset LC_MESSAGES LANG | | | +---------------------------------------------------------------------------+ Tým sa zru??ia nastavenia daných premenných (a pou??ije sa ??tandardné 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?? 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. Poznámka export/setenv   Neodpustím si malú poznámku k príkazu export. Je to vstavaná funkcia v??etkých shellov kompatibilných s klasickým sh (teda aj bash). Pre shelly typu tcsh je ekvivalentom príkaz setenv. Je dôle??ité uvedomi?? si, ??o presne tento príkaz robí s premennými. V dokumentácii k bashu sa hovorí, ??e export ozna??í premennú, aby bola odovzdaná detským (child) procesom v rámci prostredia (environment). To znamená asi to??ko, ??e ke?? spustíte napr. iXy z materského procesu bash, ktorý pri ??tarte exportoval premennú LANG=sk, v??etky aplikácie v prostredí X Window System 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 xterme zada?? príkaz unset LANG (unsetenv LANG pre tcsh), ??ím pre v??etky detské procesy xtermu (presnej??ie shellu, ktorý je v ??om spustený), zru??íte nastavenie premennej LANG. Potom aplikácie spustené priamo z tohto xtermu budú fungova?? bez podpory sloven??iny. Trochu sa s tým pohrajte. ----------------------------------------------------------------------------- 2.2.3. Nastavenie ??asovej zóny 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: +---------------------------------------------------------------------------+ |bash$ export TZ="Europe/Bratislava" | | | |tcsh$ setenv TZ "Europe/Bratislava" | | | +---------------------------------------------------------------------------+ 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 .bash_profile (.login pre tcsh) vlo??te vy????ie uvedený riadok. ----------------------------------------------------------------------------- 2.3. Príklady miestnych nastavení   * 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 Gimpe. Darujte mu súbor .i18n s nasledovným obsahom (aj na takéto malé oné potrebuje locales-sk): +---------------------------------------------------------------+ |LC_CTYPE=sk | | | +---------------------------------------------------------------+   * U??ívate?? je normálny, má rád svoj materinský jazyk, ale netrápi ho, ke ?? má polovicu aplikácií po slovensky a polovicu po anglicky. Po ??esky vie. Toto ho pote??í (nezabudnite mu potajomky nain??talova?? aj locales-cs): +---------------------------------------------------------------+ |LANGUAGE=sk:cs | |LANG=sk | | | +---------------------------------------------------------------+   * U??ívate?? je z blízkeho juhu, jeho ob??úbené pleso je Balaton, v??etky hlá??ky chce po ma??arsky, ak sa inak nedá, pochopí aj sloven??inu. Nesmieme zabudnú?? na jeho miernu schizofreniu, pri??om jedno jeho ja potrebuje slovenské triedenie re??azcov a druhé nevie ??i?? bez formátovania dátumu a ??asu v ??e??tine. Nikdy sa nesmie zabudnú?? na in??taláciu prekladov hlá??ok pre ma??ar??inu, ??e??tinu a sloven??inu z balíkov, ktoré podporujú premennú LINGUAS. Treba ho tie?? presved??i??, ??e in??talácia locales-{sk,hu,cs} nepredstavuje bezpe??nostné riziko: +---------------------------------------------------------------+ |LANGUAGE=hu:sk:cs | |LC_COLLATE=sk | |LC_TIME=cs | |LANG=hu | |LINGUAS="hu cs sk" | | | +---------------------------------------------------------------+ ----------------------------------------------------------------------------- 3. Nastavenia konzoly 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 ?? Zmysel ??ivota, vesmíru a vôbec.?? ----------------------------------------------------------------------------- 3.1. Sloven??ina na výstupe textovej konzoly 3.1.1. Fonty 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 kbd. Po jeho nain??talovaní sú súbory s fontami umiestnené v adresári /usr/lib/kbd/ consolefonts/. Pre nás sú dôle??ité najmä súbory, ktoré majú v mene iso02, lat2, latin2 alebo ??íslo 852. To nazna??uje, ??e ide o fonty s podporou ISO-8859-2 ( latin2), prípadne DOS codepage 852, ??o sú ??tandardy aj pre slovenskú diakritiku. Pozor, pôvodný balík sa volá kbd, ale existuje jeho roz??írená verzia, ktorá sa objavuje v distribúciách -- console-tools. Rozdiely medzi nimi sú minimálne, pre kbd budeme pou??íva?? príkaz setfont, pre console-tools zase consolechars. Taktie??, názvy dodávaných fontov sa trochu odli??ujú, tak??e budem uvádza?? ekvivalenty pre oba balíky. ----------------------------------------------------------------------------- 3.1.2. Ako fonty fungujú Existuje nieko??ko súborových formátov na ukladanie fontov, princíp je v??ak rovnaký -- súbor obsahuje 256 obrázkov (glyphs), z ktorých v??etky majú rovnaký rozmer (napr. 8x16 bodov -- ve??kos?? fontu) a ka??dý zobrazuje jeden znak. 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 kbd: setfont meno-fontu console-tools: consolechars -f meno-fontu meno-fontu 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 /usr/lib/kbd/consolefonts/, ??i u?? s príponou, alebo bez. Pre ??ah??ie pochopenie tých obrázkov, skúste nahradi?? meno-fontu re??azcom t850 a sledujte výsledok na v??etkých virtuálnych konzolách. Naspä?? k ??tandardnému fontu sa v??dy dostanete jedným z príkazov kbd: +---------------------------------------------------------------+ |sh$ setfont | | | +---------------------------------------------------------------+ console-tools: +---------------------------------------------------------------+ |sh$ consolechars -d | | | +---------------------------------------------------------------+ ??o sa presne deje? Program setfont/consolechars zavedie v??etkých 256 obrázkov do znakového generátora EGA/VGA karty. Od tohto momentu sa na v??etkých konzolách bude znak s ASCII 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 EGA/VGA karty. 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 kbd/console-tools máte informácie o v??etkých formátoch), v ktorom by mal ten ??esdesiaty piaty obrázok tvar písmena z, po jeho natiahnutí sa vám bude pri zadaní Alt-6-5, ?? o je ASCII kód písmena A, zobrazova?? znak z. Ale ak tento znak ulo??íte do súboru, v tomto sa bude nachádza?? bajt s hodnotou 65, teda písmeno A. ----------------------------------------------------------------------------- 3.1.3. Fonty ISO-8859-2 Toto vyu??íva ??tandard ISO-8859-2 (a iné) - spolo??né znaky s ASCII vykreslí rovnako a znaky ??pecifické pre tú ktorú abecedu ??namapuje?? na menej pou??ívané znaky ASCII 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é. Slovenské (ISO-8859-2) fonty, ktoré sú sú??as??ou 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??ite príkaz kbd: +---------------------------------------------------------------+ |sh$ setfont meno-zo-zoznamu | | | +---------------------------------------------------------------+ console-tools: +---------------------------------------------------------------+ |sh$ consolechars -f meno-zo-zoznamu | | | +---------------------------------------------------------------+ Odporú??am pou??íva?? lat2a-16, resp. lat2u-16. Ostatné fonty majú bezchybné zobrazovanie slovenských znakov, problém v??ak nastáva pri aplikáciách, ktoré vyu??ívajú znaky na kreslenie rám??ekov (napr. mc). ??o sa týka fontov iso02.* z balíka kbd, treba pri nich pou??i?? argument príkazu setfont -m latin2u.trans. Tak??e 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??ka, ktorá obsahuje riadok pre ka??dý znak fontu a jeho podobu v kódovaní UTF-8. ----------------------------------------------------------------------------- 3.1.4. Automatické zavádzanie fontov 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 rc.sysinit robí asi toto: skontroluje, ??i existuje súbor /etc/sysconfig/i18n a program (skript) /sbin/setsysfont. Ak áno, spustí setsysfont. Ten na??íta / etc/sysinfo/i18n a pod??a premenných definovaných v tomto súbore príkazom consolechars alebo setfont zavedie font. Tak??e sta??í nastavi?? správne premenné v súbore /etc/sysconfig/i18n a skript /sbin/setsysfont urobí v??etko za nás. Tento skript mo??no spusti?? kedyko??vek chcete zavies?? font nastavený ako ??tandardný pre systém. Premenné v súbore /etc/sysinit/i18n sú (pou??í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??vek mô??ete zavies?? font nastavený ako systémový v súbore /etc/sysinit/i18n jednoduchým zadaním +---------------------------------------------------------------------------+ |sh$ /sbin/setsysfont | | | +---------------------------------------------------------------------------+ 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 ssh. 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: ~/.bash_profile: if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.font ]; then setfont -o ~/.font gr928a-8x16 fi ~/.bash_logout: if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.font ]; then setfont ~/.font rm -f ~/.font fi 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ý. Iná??, aby bolo jasné, toto vám bude fungova?? len na lokálnom stroji - zamyslite sa, pre??o asi setfont (aj loadkeys) nefunguje cez vzdialený terminál a ??i by ste z toho nie??o mali, keby to tak nebolo. Ak to s takýmto rie??ením myslíte vá??ne, tak skôr uva??ujte nad modifikáciou skriptu /etc/profile.d/lang.sh, kde by sa kontroloval aj obsah u??ívate?? ského súboru ~/.i18n a pod??a toho by sa zaviedol skript, popis rozlo??enia kláves, prípadne nejaké premenné... ----------------------------------------------------------------------------- 3.2. Slovenská klávesnica na textovej konzole 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 Slovak-HOWTO prispie?? a pomocou klávesnice písa?? slovenský text. Na to potrebujete s tou klávesnicou nie??o urobi??. ----------------------------------------------------------------------------- 3.2.1. Popis rozlo??enia kláves (keymap) Adresáre /usr/lib/kbd/keymaps/i386/qwertz/ a qwerty/ obsahujú po nain??talovaní balíka kbd/console-tools aj popisy slovenského rozlo??enia kláves. Pre nás sú zaujímavé súbory sk-prog-qwerty.map.gz sk-qwerty.map.gz sk-prog-qwertz.map.gz sk-qwertz.map.gz Tieto súbory obsahujú definície rozlo??enia kláves pre slovenský jazyk, pri?? om rozdiely medzi nimi sú v umiestnení kláves Y a Z 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á sk-qwertz, najmen??ie 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??ení 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ú ??pecifické pre linux (teda nie pre jazyk). Sú to napr. k??ú??e (F1-F12, kombinovaním s Ctrl a Shift a?? po F48), Shift-PgUp a Shift -PgDown, at??. Keymapy *.inc.gz nepopisujú kompletné rozlo??enie klávesnice, ale len niektorých jej ??astí. Vyu??ívajú sa pri pripájaní (include) zo súborov *.map.gz, ??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 sk-qwerty mô??me dosta?? rozlo??enie qwertz, prípadne (to asi vyu??ijete) jednoducho odstavi?? znaky euro a cent, ktoré (zatia???) nepotrebujeme a zbyto??ne nám zaberajú znaky E a C. Na zavedenie súboru s popisom rozlo??enia kláves slú??i nasledovný príkaz: loadkeys nazov kde nazov mô??e by?? absolútna alebo relatívna cesta ku keymap súboru, alebo meno súboru, pokia?? sa nachádza v adresári /usr/lib/kbd/keymaps/, ??i u?? s príponou, alebo bez. ??tandardné slovenské popisy rozlo??enia kláves nájdeme vo vy????ie spomínaných *.map.gz súboroch. Ak sa chcete vráti?? k ??tandardnému rozlo??eniu, príkaz +---------------------------------------------------------------------------+ |sh$ loadkeys -d | | | +---------------------------------------------------------------------------+ zavedie pôvodné, ktoré je ulo??ené v súbore defkeymap.map.gz niekde medzi ostatnými keymap súbormi. Predtým ale nikdy nezabudnite zmeni?? re??im slovenskej klávesnice na US znaky, tzn. 1 dáva 1 a nie + 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 AltGr - pravý Alt) a klávesou Pause/Break v??etko napravíte. Potom mô??ete znova zavies?? defkeymap. Pokia?? sa vám nepá??i ani jeden zo ??tandardných keymap súborov pre sloven?? inu, ??o je pravdepodobné v??aka riadku include "euro" v include súboroch qwerty-layout.inc.gz aj qwertz-layout.inc.gz, 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??. 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. ----------------------------------------------------------------------------- 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, ??o sú na??e oby??ajné E a C. 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 Pause, alebo mô??me zadáva?? národné klávesy pri sú??asnom dr??aní 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, ??). Rie??enie je ve??mi jednoduché - zeditujete qwerty-layout.inc (alebo qwertz-layout.inc) a odkomentujete znakom # riadok include "euro" ----------------------------------------------------------------------------- 3.2.3. Keycode a definovanie kláves Predchádzajúci problém s eurom mo??no vyrie??i?? aj definovaním znakov E a C v samotnom súbore sk-qwerty.kmap.gz (alebo inom, ktorý pou??ívate) pomocou slova keycode: keycode 18 = e keycode 46 = c V keymap súboroch je pre ka??dú klávesu (alebo aspo?? pre ka??dú, ktorú chceme predefinova??) jeden riadok pribli??ne tohto razenia: keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two... ??íslo za keycode ozna??uje ur??itú klávesu a re??azce za = 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 Shift, AltGr, Control, Alt, ShiftL, ShiftR, Ctrl a CtrlR. To nám dáva 256 mo??ných znakov na ka??dú klávesu. Vä????inou sa pozme??uje len prvých 16 kombinácií modifikátorov. To je význam riadku keymaps 0-15 na za??iatku kmap súborov. V nasledujúcom zozname je týchto 16 kombinácií (po riadkoch): ??iadny Shift AltGr Shift-AltGr Control Shift-Control AltGr-Control Shift-AltGr-Control Alt Shift-Alt AltGr-Alt Shift-AltGr-Alt Control-Alt Shift-Control-Alt AltGr-Control-Alt Shift-AltGr-Control-Alt Z h??adiska slovenskej klávesnice sú dôle??ité len prvé ??tyri - prvé dva sú zvy??ajne nezmenené americké znaky, napr. two at, ??o je 2 @, 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 AltGr (pravý Alt), napr. lcaron two, ??o je na??e ?? 2. Aby ste mohli vklada?? slovenské znaky, nemusíte celý ??as pridr??iava?? AltGr nosom, ale mô??ete pou??i?? Pause/Break, ktorý v kontexte s národnými klávesnicami funguje ako AltGr Lock. Chápte to tak, ??e ke?? sa prepnete do slovenského re??imu stla??ením Pause/Break, prvé a druhé dva re??azce v ka??dom riadku keycode sa vymenia, napr. two at lcaron two -> lcaron two two at Vtedy mô??ete pou??i?? AltGr na zadávanie znakov americkej klávesnice, alebo sa opätovným stla??ením Pause/Break prepnú?? spät do US re??imu. 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á??i, ??e sú tu umiestnené m??tve klávesy dead_diaeresis (dve bodky nad znakom) a dead_circumflex (mäk??e??), preto??e ich nepotrebujem --- ä aj ô 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 ; (semicolon) a ° (degree) tak, ako je to na popiske mojej klávesnice. Zmením teda riadok takto: keycode 41 = grave asciitilde semicolon degree ... 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. Názvy znakov, ktoré sa pou??ívajú pri definovaní jednotlivých kláves si mô??ete pre znaky ASCII zisti?? v súbore us.map.gz. ??íselné kódy v??etkých kláves vám vyp??uje program showkey Pravidlá pre názvy znakov ??pecifických pre sloven??inu v kmap súboroch: 1. Prvé písmeno v názve ur??uje ASCII znak, pre ktorý chceme pou??i?? diakritiku. 2. K nemu pridáme identifikátor diakritického znamienka: caron --- mäk??e?? acute --- d????e?? diaeresis --- dve bodky nad circumflex --- voká?? Napríklad: scaron = ?? uacute = ú Ocircumflex = Ô Názvy ??al??ích znakov ??pecifických pre sloven??inu: 0xa7 --- § (paragraf) degree --- ° stupe?? 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ý ASCII kód. Implicitná hodnota je iso-8859-1, teda pre slovenské keymapy je nutné vlo??i?? riadok: charset "iso-8859-2" E??te jeden príklad: ak chcete pou??íva?? slovenské rozlo??enie qwertz a americké rozlo??enie qwerty, potrebujete vymeni?? znaky Y a Z: keycode 21 = y Y z Z keycode 44 = z Z y Y Na prvý poh??ad to mô??e fungova?? dobre, ale problém sa prejaví pri zapnutom Caps Lock - znaky Y a Z 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 + pred ka??dé písmeno v keycode riadku danej klávesy. Písmeno + ur??uje nasledovnému písmenu atribút letter, teda sa bude pri stla??enom Caps Lock písa?? ve??ké písmeno. V??etky písmená a-z, A-Z majú tento atribút priradený automaticky, ale to len v prípade, ??e majú keycode riadok tvaru: keycode 21 = y V na??om prípade teda musíme priradi?? tento atribút v??etkým znakom explicitne. Tak??e, kone??ná úprava keymapy bude: keycode 21 = +y +Y +z +Z keycode 44 = +z +Z +y +Y 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 Caps Lock jednoduchým stlá??aním ich kláves, ako je to v slovenskom popise rozlo??enia kláves pre X Window System. ----------------------------------------------------------------------------- 3.2.4. M??tve klávesy a sekvencie compose S m??tvymi klávesami súvisia v kmap súboroch riadky tvaru compose 'c1' 'c2' to 'c3' Predstavme si m??tve znaky ako úplne oby??ajné znaky s tým rozdielom, ??e ovláda?? klávesnice ich neposiela aplikáciám, ale zostanú niekde ??visie????, kým z klávesnice nepríde ??al??í znak. Ovláda?? klávesnice nepo??le ani tento, ale pokúsi sa spoji?? ho s predchádzajúcim m??tvym znakom a a?? výsledok spojenia pustí ??alej. No, a ako má to spojenie uskuto??ni??, to mu presne hovoria riadky compose v keymap súboroch. 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. Tabu??ka 2. M??tve klávesy +----------------+-------------+-------+ |Názov |Význam |Compose| +----------------+-------------+-------+ |dead_acute |d????e?? |\' | +----------------+-------------+-------+ |dead_circumflex |mäk??e?? |^ | +----------------+-------------+-------+ |dead_diaeresis |dve bodky nad|" | +----------------+-------------+-------+ Postup pri písani compose sekvencií 1. Ka??dá compose sekvencia sa za??ína k??ú??ovým slovom compose. 2. Nasleduje compose znak m??tvej klávesy (pod??a tabu??ky M??tve klávesy), napríklad \'. Druhý je znak, s ktorým chceme m??tvu klávesu kombinova??, napríklad A. Za k??ú??ovým slovom to nasleduje výsledok spojenia m??tvej klávesy a znaku bez diakritiky, teda Á. 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 loadkeys ??íta?? zo ??tandardné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 'ä' | |# ukon??enie zadávania: EOF - Ctrl-D | |sh$ | | | +---------------------------------------------------------------------------+ Popis aktuálneho rozlo??enia kláves mô??ete ulo??i?? do súboru príkazom +---------------------------------------------------------------------------+ |sh$ dumpkeys > subor | | | +---------------------------------------------------------------------------+ Ak nemáte zavedený slovenský popis rozlo??enia kláves, musíte zadáva?? tieto znaky ako Alt sekvencie, poprípade vklada?? ich hex kódy v tvare 0xed pre í. Výpis znakov aktuálneho fontu spolu s ich hex kódmi vám urobí program kbd: showfont console-tools: showcfont E??te raz na??a compose sekvencia a nejaké navy??e: 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 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??enia klávesnice, ktoré chceme zavies?? pri ??tarte systému, nám slú??i súbor /etc/sysconfig/keyboard. Pre Slováka ako repa by mal vyzera?? minimálne takto: KEYTABLE=sk-qwerty # zavedie rozlo??enie kláves sk-qwerty KBCHARSET=iso-8859-2 # ...a spomínaný súbor compose.latin2 Nastavenie klávesnice pri ??tarte má na starosti skript keytable, ktorý je volaný priamo z rc.sysinit, tak??e netreba vytvára?? linky v adresároch pre runlevel 3/multiuser, prípadne 5/X. V dokumentácii k initscripts sa pí??e: ??Ak ulo??íte popis rozlo??enia kláves (pou??itím dumpkeys) do súboru /etc/sysconfig/console/default.kmap, 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?? ??dumpnutý?? popis rozlo??enia kláves a nie skopírovaný súbor z /usr/lib/kbd/keytables/, preto??e tie ??asto e??te vkladajú (include) iné popisy z tejto adresárovej ??truktúry.?? Po pripojení súborových systémov, v prípade, ??e existuje spustite??ný 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?? zavedie popis rozlo??enia kláves tak, ako to máte ur??ené premennými v súbore /etc/sysconfig/keyboard, preto nemusíte vytvára?? odkazy v jednotlivých rc[1-5].d/ adresároch. 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: ~/.bash_profile: if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.keymap ]; then dumpkeys > ~/.keymap loadkeys gr.map fi ~/.bash_logout: if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.keymap ]; then loadkeys ~/.keymap rm -f ~/.keymap fi ----------------------------------------------------------------------------- 3.3. Zhrnutie nastavení konzoly Pokia?? som sa niekde nesekol, tak minimálne v distribúciách RedHat a Mandrake by po týchto zmenách mala do pohody za??lapa?? 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??, ak zadávate rootovské heslo s pou??itím iného rozlo??enia kláves ako je ??tandardné (us), vlo??te si jeho popis do súboru /etc/sysconfig/console/ default.kmap. Pozor, nesmiete len tak skopírova?? súbor, alebo vytvori?? link! Ak chcete pou??i?? napríklad rozlo??enie sk-qwertz, urobte to takto: +---------------------------------------------------------------------------+ |sh$ loadkeys sk-qwertz | |sh# dumpkeys >/etc/sysconfig/console/default.kmap | | | +---------------------------------------------------------------------------+ Ak chcete nastavi?? slovenský font a klávesnicu len jednorazovo, tieto príkazy by to mali dokáza??: kbd: +---------------------------------------------------------------+ |sh$ setfont lat2a-16 | |sh$ loadkeys sk-qwertz | | | +---------------------------------------------------------------+ console-tools: +---------------------------------------------------------------+ |sh$ consolechars -f lat2u-16 -m iso02 | |sh$ loadkeys sk-qwertz | | | +---------------------------------------------------------------+ ...a naspä?? na ??tandardné nastavenia: kbd: +---------------------------------------------------------------+ |sh$ setfont | |sh$ loadkeys -d | | | +---------------------------------------------------------------+ console-tools: +---------------------------------------------------------------+ |sh$ consolechars -d | |sh$ loadkeys -d | | | +---------------------------------------------------------------+ ----------------------------------------------------------------------------- 4. Nastavenia X Window Systemu ??oko??vek sa chystáte robi?? s X Window Systemom a sloven??inou dokopy, s?? ubujem, ??e vám to nebude fungova??, ak nenastavíte totok taktok: LC_CTYPE=sk ??o 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, ??e X Window System máte nain??talovaný, prípadne aj X Font Server, va????inu dôle??itých vecí sme si povedali v ??asti o konzole, po??me si rovno nain??talova?? slovenské fonty. ----------------------------------------------------------------------------- 4.1.1. In??talácia fontov - X server Slovenské fonty pre X nájdeme v balíku XFree86-ISO8859-2, ve??a ??al??ích je v balíkoch XFree-ISO8859-2--fonts, kde mô??e by?? Type1, 100dpi alebo 75dpi. Ak chcete pou??íva?? sloven??inu seriózne (Gimp, Netscape, lokalizácia), nain??talujte si v??etky, ak potrebujete slovenský font len napr. v XTerme, posta??í vám základný balík. 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: /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?? budeme vklada?? do konfigura??né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??ení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?? ve??ké problémy ani ke?? slovenské fonty vlo??í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, ?? | | | +-----------------------------------------------------------------------------------+ ----------------------------------------------------------------------------- 4.1.2. In??talá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??inu, tak aj pre vzdialené systémy. Moderné distribúcie u?? po in??talácii ponúkajú nakonfigurovaný X Font Server a X Window System, ktorý vyu??íva jeho slu??by. Pri tomto spôsobe treba cesty k fontom vlo??i?? do konfigura??ného súboru X Font Serveru a konfigurácia v /etc/X11/X86Config (XF86Config-4) by mala vyzera?? takto: Section "Files" FontPath "unix/:7100" EndSection za predpokladu, ??e X Font Server be??í na porte 7100 (vo??ba príkazového riadku -port). Ak teda pou??ívate xfs, nie??o podobné ako v predchádzajúcej kapitole urobíte s konfigura??ným súborom pre tento program (/etc/X11/fs/config) v ??asti 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?? potom musí xfs znovu na??íta?? konfigura??ný súbor a tým umo??níte pou??í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??o), alebo MacOS , nemali by vás zavrie??, ak pou??ijete 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??ne dostupné. Popis in??talácie takýchto fontov prebehneme len v krátkosti, podrobnej??í nájdete v dokumentácii k balíku free-type: 1. Skopírujte súbory s TrueType fontami napr. do adresára /usr/share/fonts/ ttf/win/. Odporú??am zmeni?? mená súborov s fontami aj ich prípony na malé písmená -- mal som s tým problémy. 2. Vytvorte v ka??dom 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??a chybových hlásení, alebo súbor fonts.scale obsahuje príli?? málo záznamov o fontoch v adresári, skúste pou??i?? s príkazom ttmkfdir aj vo??bu príkazoveho riadku -c. 3. Zoznam fontov v súbore, ktorý na??ítava X server aj xfs, vytvoríte nasledovne: +-----------------------------------------------------------------------+ |sh# cd /usr/share/fonts/ttf/win | |sh# mkfontdir | | | +-----------------------------------------------------------------------+ Od tohto momentu pokra??ujte ??tandardným spôsobom tak, ako je to popísané v predchádzajúcej ??asti o konfigurácii X servera alebo xfs. ----------------------------------------------------------------------------- 4.1.4. ??o je iné so slovenskými fontami Okrem toho, ??e sa slovenské znaky zobrazujú správne, ni??. Fonty z balíkov pre normu ISO-8859-2 sa síce volajú inak, ale vzh??adom zodpovedajú ??tandardným fontom. V nasledujúcej tabu??ke sú uvedené zodpovedajúce dvojice fontov: Tabu??ka 3. Slovenské ekvivalenty ??tandardných fontov +-----------------------+-----------+ |??tandardne |iso8859-2 | +-----------------------+-----------+ |Times |Kathimerini| +-----------------------+-----------+ |Helvetica |Aplos | +-----------------------+-----------+ |New Century Schoolbook |Anagnostiko| +-----------------------+-----------+ |Lucida |Fotinos | +-----------------------+-----------+ |Utopia |Chimera | +-----------------------+-----------+ |Charter |Chartis | +-----------------------+-----------+ Berte túto tabu??ku len ako informatívny údaj, ktorý pravdepodobne nikdy nebudete potrebova?? v??aka súborom fonts.alias v adresároch so slovenskými fontmi. Tie zabezpe??ujú nahrádzanie mien ??tandardných fontov s uvedenou normou ISO-8859-2 zodpovedajúcimi menami slovenských fontov. Napríklad po??iadavka na font -b&h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2 poskytne a teda zobrazí v skuto??nosti font -biznet-fotinos-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2 ----------------------------------------------------------------------------- 4.1.5. Strie??anie ta??kostí Ak budete dostáva?? po spustení X serveru chybové hlásenia typu ??Can't open default font 'fixed'?? alebo ??unable to open font ...??, alebo vám jednoducho nie??o spojené s fontami pod iXami bude kazi?? náladu, uistite sa, ??e máte v poriadku nasledovné veci. 1. V??etky adresáre s fontami, samotné súbory fontov a súbory, ktoré ??íta X Window System alebo X Font Server, musia ma?? nastavené rozumné prístupové práva. 2. V adresároch, v ktorých sa nachádzajú fonty, musí existova?? súbor fonts.dir. Ak nie, spustite v týchto adresároch program mkfontdir. V adresároch s TrueType fontmi musíte e??te predtým vytvori?? súbor fonts.scale tak ako je to popísane v ??asti Slovenské TrueType fonty. 3. Ak idete bez xfs, naozaj v??etky adresáre s fontami musia by?? uvedené v súbore XF86Config. 4. V prípade, ze pou??ívate xfs, tieto adresáre musia by?? uvedené v súbore /etc/X11/fs/config. Navy??e, xfs musí be??a?? na nejakom porte (napr. 7100) a v XF86Config musí by?? cesta k fontom uvedená ako adresa s ?? íslom toho portu, asi takto: FontPath "unix/:7100" 5. Po zmenách v konfigura??ných súboroch X Window Systemu alebo X Font Serveru je nutný re??tart alebo znovuna??ítanie nastavení: X Window System +------------------------------------------------------------+ |sh$ xset fp rehash | | | +------------------------------------------------------------+ X Font Server +------------------------------------------------------------+ |sh# killall -USR1 xfs | | | +------------------------------------------------------------+ 6. Ak máte v inittabe nastavené spú????anie X serveru pri ??tarte systému (runlevel 5/X), rad??ej si to pri pokusoch s fontami zme??te na 3/ multiuser a?? pokia?? si nie ste sakramentsky istí, ??e X server pri ??tarte nájde fonty. Ak to neurobíte a nastavenia budú nesprávne, za??nú sa dia?? záhadné veci typu ??X server sa skon??í, lebo nenájde fonty ale init ho znovu spustí a ten nenájde fonty, tak sa skon??í, ale init ho... ??. Znakom toho je hlá??ka INIT: Id "x" respawning too fast: disabled for 5 minutes. 7. X Window System h??adá (pre normálneho u??ívate??a) konfigura??né súbory v tomto poradí: /etc/X11/ /usr/X11R6/etc/X11/ /etc/X11/$XF86CONFIG /usr/X11R6/etc/X11/$XF86CONFIG /etc/X11/XF86Config-4 /etc/X11/XF86Config /etc/XF86Config /usr/X11R6/etc/X11/XF86Config. /usr/X11R6/etc/X11/XF86Config-4 /usr/X11R6/etc/X11/XF86Config /usr/X11R6/lib/X11/XF86Config. /usr/X11R6/lib/X11/XF86Config-4 /usr/X11R6/lib/X11/XF86Config 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. ----------------------------------------------------------------------------- 4.2. Slovenská klávesnica v X Window Systeme Skôr jak to tu celé rozto??íme, zadajte príkaz +---------------------------------------------------------------------------+ |sh$ rpm -q XFree86 | | | +---------------------------------------------------------------------------+ V??etky tie ??ísla za XFree86, ??o vám tento príkaz vypí??e, udávajú verziu vá??ho XFree86 X Window Systemu. Existuje presne ??tyridsa??dva dôvodov, pre??o prejs?? na XFree86 verziu 3.2 alebo vy????iu, a len dva, pre??o zosta?? pri star??ej verzii. Red Hat Linux 6.0 obsahuje XFree86 , verziu 3.3.3 a Linux Mandrake 7.0 u?? verziu 3.3.6. Pokia?? ste svoj opera??ný systém nezdedili po starých rodi??och, je vysoko pravdepodobné, ??e máte verziu XFree86 vy????iu ako 3.2. Inak ste naozaj krok pozadu a na adrese [ftp://ftp.xfree86.org] ftp://ftp.xfree86.org nájdete to, ??o treba. Ak aj po predchádzajúcich slovách, upozorneniach a odporú??aniach odmietate upgrade na verziu 3.2, dr??te sa nasledujúcich krokov: 1. Ak máte Slovak-HOWTO 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. 2. V prípade, ??e máte tento súbor ulo??ený niekde na disku, príkazom +-----------------------------------------------------------------------+ |sh$ su -c'rm -fr /' | | | +-----------------------------------------------------------------------+ sa ho do nieko??kých minút po zadaní hesla zaru??ene zbavíte. ----------------------------------------------------------------------------- 4.2.1. Konfigurácia klávesnice XFree86 3.2 a nov??ie u?? majú tzv. XKEYBOARD roz??írenie, ktoré zjednodu??uje konfiguráciu klávesnice pre X Window System. Teoreticky netreba urobi?? viac ako v súbore /etc/X11/XF86Config vlo??i?? do sekcie "Keyboard" nie??o takéto: Section "Keyboard" ... XkbLayout "czsk" XkbVariant "us_sk_qwertz" XkbOptions "grp:ctrl_shift_toggle" EndSection Ak u?? ste nebodaj u??ívate??om XFree86 verzie 4.0.0 alebo vy????ej, vlo??te 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??nom súbore XkbLayout "czsk" prípadne pre verziu ?? 4 Option "XkbLayout" "czsk" hovorí asi to??ko, aby X server pou??il popis rozlo??enia kláves ulo??ený 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????ie si o formáte týchto súborov povieme neskôr, teraz si len otvorte súbor czsk a pozrite si jeho ??truktúru -- hlavne ??asti xkb_symbols. Pre sloven??inu sú dôle??ité tieto varianty: us_sk_qwerty us_sk_qwertz us_sk_prog sk_us_qwerty sk_us_qwertz sk_us_prog Niektorý z týchto re??azcov dosa??te do riadku XkbVariant "..." pre star??ie verzie X Window Systemu, alebo Option "XkbVariant" "..." v konfigura??nom súbore pre X sever verzia 4. Varianty us_sk_qwerty a sk_us_qwerty sú prakticky toto??né, jediný rozdiel je v tom, ktoré rozlo??enie kláves bude nastavené po ??tarte X Window Systemu. Pre sk_us_* je to slovenské, pre us_sk_* zase americké. Prepína?? medzi slovenským a americkým rozlo??ením kláves mo??no klávesom Scroll Lock, prípadne aj inými, ak vlo??íte do konfigurácie klávesnice riadok: +---------------------------------------------------------------------------+ |Options "grp:..." | | | +---------------------------------------------------------------------------+ alebo pre X Window System verzie 4.0 alebo nov??í: +---------------------------------------------------------------------------+ |Option "XkbOptions" "grp:..." | | | +---------------------------------------------------------------------------+ ??as?? grp:?? nahra??te niektorou z nasledujúcich mo??ností a mô??ete prepína?? rozlo??enia kláves pomocou danej klávesovej skratky: Tabu??ka 4. Mo??nosti prepínania medzi rozlo??eniami kláves +---------------------+-------------------------------+ |vo??ba |prepínanie medzi rozlo??eniami | +---------------------+-------------------------------+ |grp:ctrl_shift_toggle|LShift + LCtrl / RShift + RCtrl| +---------------------+-------------------------------+ |grp:caps_toggle |Caps Lock / LShift + RShift | +---------------------+-------------------------------+ |grp:ctrl_alt_toggle |Ctrl + Alt | +---------------------+-------------------------------+ 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 ctrl_alt_toggle nefunguje Ctrl-Alt-Backspace (Kill X Server). ----------------------------------------------------------------------------- 4.2.2. XKB keymapy X Window System 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 X Window System 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. Naozaj nemá zmysel podrobne popisova?? mo??nosti XKB 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. V XKB popisoch rozlo??enia kláves majú riadky takýto formát: key { [ quoteleft, asciitilde ], [ semicolon, degree ] }; K??ú??ové slovo key ozna??uje za??iatok definície znaku, ktorého kód nasleduje uzavretý v < a >, celá definicia je uzavretá v krútených zátvorkách a dvojice znakov pre ka??dú skupinu (Group) sa uzavierajú do hranatých zátvoriek. Skupiny mô??u by?? 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 ??ahko zistíte z keymap súborov, ktorých je v adresári /usr/X11R6/lib/X11/xkb/symbols/ 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 XKB keymap nájdete jeden vzorový príklad slovenského rozlo??enia kláves pre X Window System. ----------------------------------------------------------------------------- 4.3. Slovenská my?? v X Window Systeme 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á. V predchádzajúcich verziách X Window Systemu 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é. Popí??eme si teraz v krátkosti postup posloven??ovania my??i v X Window Systeme, verzia 4.0.1 a vy????ie: 1. Odpojte svoju my?? od po??íta??a, poutierajte a vyle??tite jej gu??u, skontrolujte mikrotla??idlá a celkovo ju o??etrite. Odlo??te ju do tepla a sucha. Dôle??ité je aspo?? raz za de?? k nej pristúpi?? s Pravidlami slovenského pravopisu a príjemným hlasom pred??ítava?? slová zo slovníka. Po pár ty??d??och mô??ete prejs?? k jednoduchej beletrii a rozprávkam. 2. 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. 3. 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. 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. ----------------------------------------------------------------------------- 4.4. Príklady 4.4.1. XF86Config-4 ??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. 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??enia kláves pre sloven??inu: partial default alphanumeric_keys xkb_symbols "sk_us" { name[Group1] = "Slovak"; name[Group2] = "US/ASCII"; // line 1 key { [ semicolon, degree ], [ quoteleft, asciitilde ] }; key { [ plus, 1 ], [ 1, exclam ] }; key { [ lcaron, 2 ], [ 2, at ] }; key { [ scaron, 3 ], [ 3, numbersign ] }; key { [ ccaron, 4 ], [ 4, dollar ] }; key { [ tcaron, 5 ], [ 5, percent ] }; key { [ zcaron, 6 ], [ 6, asciicircum ] }; key { [ yacute, 7 ], [ 7, ampersand ] }; key { [ aacute, 8 ], [ 8, asterisk ] }; key { [ iacute, 9 ], [ 9, parenleft ] }; key { [ eacute, 0 ], [ 0, parenright ] }; key { [ equal, percent ], [ minus, underscore ] }; key { [ dead_acute, dead_caron ], [ equal, plus ] }; // line 2 key { [ q, Q ], [ q, Q ] }; key { [ w, W ], [ w, W ] }; key { [ e, E ], [ e, E ] }; key { [ r, R ], [ r, R ] }; key { [ t, T ], [ t, T ] }; key { [ z, Z ], [ y, Y ] }; key { [ u, U ], [ u, U ] }; key { [ i, I ], [ i, I ] }; key { [ o, O ], [ o, O ] }; key { [ p, P ], [ p, P ] }; key { [ uacute, slash ], [ bracketleft, braceleft ] }; key { [ adiaeresis, parenleft ], [ bracketright, braceright ] }; // line 3 key { [ s, S ], [ s, S ] }; key { [ d, D ], [ d, D ] }; key { [ f, F ], [ f, F ] }; key { [ g, G ], [ g, G ] }; key { [ k, K ], [ k, K ] }; key { [ l, L ], [ l, L ] }; key { [ ocircumflex, quotedbl ], [ semicolon, colon ] }; key { [ section, exclam ], [ quoteright, quotedbl ] }; // line 4 key { [ y, Y ], [ z, Z ] }; key { [ x, X ], [ x, X ] }; key { [ v, V ], [ v, V ] }; key { [ b, B ], [ b, B ] }; key { [ n, N ], [ n, N ] }; key { [ m, M ], [ m, M ] }; key { [ comma, question ], [ comma, less ] }; key { [ period, colon ], [ period, greater ] }; key { [ minus, underscore ], [ slash, question ] }; key { [ 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??ina a linuxový kernel 5.1. Kompilácia kernelu so slovenskou klávesnicou Je ve??mi jednoduché zmeni?? rozlo??enie kláves, s ktorým bude jadro vá??ho opera??ného systému skompilované. Ak pou??ijete program loadkeys s vo??bou príkazového riadku --mktable , tento vám vygeneruje ??zdrojový kód?? súboru . Ten ulo??te do súboru drivers/char/defkeymap.c v adresárovej ??truktúre zdrojového kódu Linuxu. +---------------------------------------------------------------------------+ |sh# cd /usr/src/linux | |sh# loadkeys --mktable sk-qwerty > drivers/char/defkeymap.c | | | +---------------------------------------------------------------------------+ Toto je akási náhrada za /etc/sysconfig/console/default.kmap 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 loadkeys. Pou??ite toto rie??enie, len ak bezpodmiene??ne potrebujete slovenské rozlo??enie pri zadávaní rootovho hesla alebo tak podobne. ----------------------------------------------------------------------------- 5.2. Diakritika v názvoch súborov na FAT partíciách Ak chcete pristupova?? spod Linuxu na FAT/VFAT 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 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ô??ete potom uvies?? vo??bu codepage=852. Vo??ba 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??ovanie konkrétnych aplikácií ??í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 export LANG= sk. 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. 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 Slovak-HOWTO. ----------------------------------------------------------------------------- 6.1. Bash Vi?? Readline. Ján 'judas' Tomka, Bash máva nepravidelne problém pri zmene premennej LC_CTYPE a zvykne sa sta??, ??e znaky s diakritikou sa nevypisujú napriek správnemu nastaveniu tejto premennej. Zatia?? sa mi nepodarilo zisti??, kde je chyba, lebo napríklad Vim spustený z takéhoto Bashu funguje správne... Zatia?? to rie??im príkazom +---------------------------------------------------------------------------+ |bash$ exec bash | | | +---------------------------------------------------------------------------+ Aktuálny shell sa nahradí novým, ktorý u?? premennú LC_CTYPE pochopí správne a je u?? mo??né zadáva?? aj znaky s diakritikou. ----------------------------------------------------------------------------- 6.2. Joe Ján Ondrej (SAL), 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 ASCII kódom 128-255 tak, ako sú (as is). To mô??ete spravi?? zmazaním medzery pred vo??bou -asis v konfigura??nom súbore joerc. Naj?? astej??ie ho nájdete v adresári /usr/lib/joe/, v Debiane je v adresári /etc/. ??al??ou mo??nos??ou je pridanie parametra -asis pri spú????aní programu. ----------------------------------------------------------------------------- 6.3. Lynx Ján 'judas' Tomka, 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?? znaky pred zobrazením na va??ej obrazovke. Ak máte ??tandardne nastavený slovenský font, mô??ete ma?? toto v??dy nastavené na ISO-8859-2.   * Assumed document character set (ASSUME_CHARSET) --- aká znaková sada sa má pou??i??, ak html dokument neobsahuje informáciu o svojom kódovaní a nastavenie Raw 8-bit je vypnuté. HTTP ??tandardom je ISO-8859-1 tak??e tak. Vä????inou majú dokumenty s iným kódovaním ako ISO-8859-1 informáciu o svojej znakovej sade, vtedy sa toto nastavenie neberie do úvahy. Ak chcete, aby sa dokumenty, ktoré nemajú explicitne danú sadu znakov, pova??ovali za súbory s kódovaním Latin 2, nastavte si túto premennú. Mo??no ju nastavi?? len v súbore /etc/lynx.cfg (teda nie pre ka??dého u??ívate??a zvlá????).   * Raw 8-bit --- s týmto sa ve??mi trápi?? nemusíte, len v prípade, ??e sa slovenské znaky nezobrazujú správne, sa v??dy uistite, ??e to máte zapnuté (klávesovou skratkou @). Konfigura??ný 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??ívate??ský konfigura??ný súbor ~/.lynxrc: character_set=Eastern European (ISO-8859-2) ----------------------------------------------------------------------------- 6.4. Mandrake 8 Vi?? RPM4. Ján 'judas' Tomka, ----------------------------------------------------------------------------- 6.4.1. NLSPATH 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 /usr/share/locale/, odstrá??te 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??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. V prípade, ??e nemô??ete meni?? /etc/profile, vlo??te si do svojho ~/.profile riadok unset NLSPATH ----------------------------------------------------------------------------- 6.4.2. SYSFONTACM Pre správnu funkciu fontov je nutné okrem LC_CTYPE a SYSFONT nastavi?? aj premennú SYSFONTACM v súbore /etc/sysconfig/i18n. No ak máte vlastný ú??ívate ??ský súbor ~/.i18n, globálny sa nena??íta a premenná SYSFONTACM sa nenastaví. Preto v??dy vlo??te do svojho u??ívate??ského súboru riadok: SYSFONTACM=iso02 Na vine je skript /etc/profile.d/lang.sh, preto??e ten po??le na terminál Escape sekvenciu zavedenia u??ívate??ského fontu len v prípade, ??e je nastavená premenná SYSFONTACM. Tak si ju nastavte, alebo si to nejako opravte! ----------------------------------------------------------------------------- 6.5. Midnight Commander Ján Ondrej (SAL), Jeho lokalizácia je jednoduchá, preto??e ju priamo podporuje. Klávesou F9 vyvoláte menu Options->Display bits... a zapnite vo??by: (*) Full 8 bits output [x] Full 8 bits input 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 ??Warning: Couldn't change to ...??, tak potrebujete lokalizova?? kni??nicu readline (iba pre star??ie RedHat systémy). Rám??eky v MC (judas). Ak pou??ívate console-tools, pre správnu funkciu rám?? ekov v Midnight Commander a podobných textových aplikáciách nastavte font s application charset map. U m??a funguje jedine táto kombinácia: +---------------------------------------------------------------------------+ |sh$ consolechars --font lat2u-16 --acm iso02 | | | +---------------------------------------------------------------------------+ ----------------------------------------------------------------------------- 6.6. Mutt Ján 'judas' Tomka, Miestnych nastavení sa týkajú v konfigura??nom súbore ~/.muttrc nasledovné premenné:   * ascii_chars -- Ak je nastavená, Mutt 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.   * charset -- 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??.   * send_charset -- ----------------------------------------------------------------------------- 6.7. Readline Ján 'judas' Tomka, V súbore s globálnymi nastaveniami /etc/inputrc alebo vo svojom u??ívate?? skom súbore ~/.inputrc je pre správnu interpretáciu osembitových znakov nastavi?? 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??iatok.   * input-meta --- 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 meta-flag je synonymom pre túto premennú.   * output-meta --- Ak je nastavená na `on', Readline bude zobrazova?? znaky s nastaveným ôsmym bitom priamo a nie ako escape sekvencie. Tak??e, do jedného zo spomínaných súborov vlo??te takéto nastavenia: set convert-meta off set input-meta on set output-meta on ----------------------------------------------------------------------------- 6.8. RPM4 Ján 'judas' Tomka, Tento malý skriptík ??doin??taluje?? 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. 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?? nikdy nezabudnite nastavi?? premennú RPM_INSTALL_LANG! ----------------------------------------------------------------------------- 6.9. Rxvt Ján 'judas' Tomka, Náprava toho, ??e Rxvt 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í: +---------------------------------------------------------------------------+ |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????uje alternatívne metódy vstupu (napr. kinput2) a tie?? správne nastavenia pre ??udí, ??o pou??ívajú m??tve klávesy. ----------------------------------------------------------------------------- 6.10. Samba Ján Ondrej (SAL), Po nastavení lokalizácie doká??e automaticky prekódova?? znaky s diakritikou z kódovania 852 na ISO-8859-2. Nastavuje sa to v konfigura??nom súbore /etc/ smb.conf pridaním nasledujúcich riadkov do sekcie [global]: character set = iso8859-2 client code page = 852 ----------------------------------------------------------------------------- 7. Finti??ky so sloven??inou 7.1. Zadávanie slovenských znakov vo Vim [http://www.kotelna.sk/keso/unix/vim.html] http://www.kotelna.sk/keso/unix/ vim.html Ak nemô??ete, alebo nechcete pou??íva?? rozlo??enie kláves pre sloven??inu, ale potrebujete zada?? pár na??ich znakov vo Vim, dá sa to urobi?? pomocou príkazu imap. Jeho formát je :imap {lhs} {rhs} {lhs} je postupnos?? znakov, po ktorých zadaní (v krátkom ??asovom intervale) sa vypí??e {rhs}. Pre sloven??inu by sa dali vyu??i?? imap definície znakov typu +---------------------------------------------------------------------------+ |:imap =a á | |:imap +c ?? | | | +---------------------------------------------------------------------------+ 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 sk.vim a vo Vim ho na??ítate príkazom +---------------------------------------------------------------------------+ |:source sk.vim | | | +---------------------------------------------------------------------------+ 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 ?? ----------------------------------------------------------------------------- 7.2. Odstránenie alebo nahradenie diakritiky v textových súboroch 7.2.1. sed Ján 'judas' Tomka, V prípade, ??e potrebujete z textového súboru odstráni?? diakritické znamienka, mô??ete pou??i?? program sed, pomocou ktorého nahradíte výskyt znaku s diakritikou jeho ekvivalentom bez nej. 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). Toto je príkaz, ktorý mo??no pou??i?? 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:??: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" ----------------------------------------------------------------------------- 7.2.2. cstocs Bra??o Katreniak Ke?? sa zmie??ujete o tom, ako sa dá odstráni?? sloven??ina z dokumentu, zdá sa mi vhodné spomenú?? aj program cstocs. Je to milá utilitka ??tandardne dodávaná s TeXom. Umo????uje konverziu súborov prakticky v??etkých mo??ných kódových stránok medzi sebou navzájom, pri??om jedna z mo??ností je aj odstránenie diakritiky. Pri??om sa mi to zdá pohodlnej??ie ako sed. ----------------------------------------------------------------------------- 7.2.3. recode Ján 'judas' Tomka, Existuje aj program recode, 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í: 1. 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é. 2. 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. 3. 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. Pod??a v??etkého by mal sta??i?? nasledovný príkaz: +---------------------------------------------------------------------------+ |recode l2 subor.txt | | | +---------------------------------------------------------------------------+ ale zdá sa, ??e to sta??i?? nebude. Latka na titul ??Linuxový Guru?? sa posunula do závratných vý??ok, preto??e -- aby ste sa stali jeho nosite??om -- musíte vedie?? pomocou tohto programu previes?? dokument v latin2 na latin1 alebo dokonca ASCII (a to u?? je pekný Saigon...)