Czech HOWTO Kolektiv autorů Verze 1.30a, 24. dubna 2001. Tento dokument pojednává o tom, jak počeštit, poslovenštit, zkrátka lokalizovat Linux. Některé z popsaných postupů lze uplatnit i na jiné unixové systémy. ______________________________________________________________________ Table of Contents 1. Úvod 1.1 Kopírování a záruka 1.2 Kde získat nejnovější verzi Czech-HOWTO 1.3 Přispívání do Czech-HOWTO 1.3.1 Důležité upozornění 1.4 Koordinace 2. Cíle lokalizace 3. Lokalizace textové konzoly 3.1 Zobrazování znaků v kódování ISO-8859-2 3.2 Národní klávesnice 3.2.1 Jak funguje načítání znaků z klávesnice? 3.3 Alternativa: Balík ucw-cs-1.1.tar.gz 3.4 Tipy a problémy 3.4.1 Vypadnutí fontu při přepnutí do X a zpět 3.4.2 V Midnight Commanderu nelze přepínat fonty 3.4.3 Rámečky v programech MC & spol. se zobrazují špatně 3.4.4 Snadné přepínání češtiny a angličtiny 3.4.5 Český text je i po nastavení správného fontu nečitelný 3.4.6 Lepší konzolové fonty 3.4.7 Změna qwerty na qwertz 3.4.8 Jediný dvojhmat z Woken, který znám, je Alt+Shift... 3.4.9 Zdroje 3.4.10 Použité materiály 4. Lokalizace X Window Systemu 4.1 Fonty v X Window System 4.1.1 Rastrové fonty pro X 4.1.2 Vektorové fonty pro X 4.1.3 TrueType fonty pro X 4.2 Klávesnice v X pomocí XKB 4.2.1 Možné problémy 4.2.2 Nefungující áéíúý 4.2.3 Problém mrtvých kláves a XKB 4.3 Klávesnice v X pomocí xmodmap 4.3.1 Řešení z cs-tools 4.3.2 Řešení od Zdeňka Kabeláče 5. Locales aneb lokalizace knihovny libc 5.1 Účel locales a jejich kategorie 5.2 Způsob nastavování locales 5.3 Které kategorie locales používat 5.4 Softwarové požadavky 5.5 Instalace 5.6 Jak to funguje 5.7 Katalogy zpráv aneb programy komunikující česky 5.7.1 Počešťování 5.7.2 Funkce knihovny libc 5.7.3 GNU gettext 5.7.4 Zdroje informací 5.7.5 Dostupné katalogy 5.7.6 Přílohy 6. Lokalizace různých aplikací 6.1 Bash 6.2 Tcsh 6.3 XTerm 6.4 Rxvt 6.5 Ls 6.6 Less 6.7 Groff 6.8 Joe 6.9 Midnight Commander 6.10 Databáze MySQL 6.11 Perl 6.12 KDE 6.13 Telnet 6.14 Rlogin 6.15 Nastavení terminálů 6.16 Samba 6.17 Lynx 6.18 Fvwm95 6.19 Afterstep 6.20 Star Office 6.21 Applixware 6.22 Elm 6.23 Metamail 6.24 Mutt 6.25 Pine 6.26 Tin 6.27 Slrn 6.28 Nn 6.29 Dlouhá jména na partition s Windows-95/NT 6.30 Program wget 6.31 Netscape 7. TeX a jiné DTP systémy 7.1 Instalace z RPM balíků CSTeXu pro RedHat 7.2 Obecná instalace na libovolný Unix 7.3 Doplňky pro TeX 7.3.1 Program vlnka 7.3.2 csindex 7.3.3 a2ac 7.4 České fonty v TeXu 7.4.1 O kódování 7.4.2 Formáty fontů 7.4.3 Metafontové fonty 7.4.4 Type 1 fonty 7.4.5 Počeštění fontů zabudovaných ve výstupním zařízení. 7.5 LyX 7.6 Literatura 8. Emacs 9. Tisk 9.1 Tiskárny s vestavěnými českými fonty 9.2 Postscriptové tiskárny 10. Konverze znakových sad 11. České třídění 12. České manuálové stránky 12.1 Instalace 12.1.1 Prohlížení českých manuálových stránek 12.2 Prohlížení českých manuálových stránek pod systémem X-Window 12.3 Projekt "České Manuálové Stránky" 12.3.1 Odkazy 13. Kontrola českého pravopisu (spell-checker) 13.1 Práce s ispellem 13.2 Ispell pro Emacs 13.3 Ispell pro Joe 14. Jak počeštit různé distribuce 14.1 Debian GNU/Linux 14.1.1 Současný stav oficiální distribuce 14.1.2 Počeštění oficiální distribuce 14.2 Red Hat 6.0 14.3 Red Hat 5.2 14.3.1 Manuálové stránky 14.3.2 Emacs 14.3.3 Tisk na tiskárnách s vestavěnými českými fonty 14.3.4 Midnight Commander 14.3.5 Další úpravy nesouvisející s lokalizací 14.4 Red Hat 5.1 14.4.1 Úprava locales 14.4.2 Nastavení locales a fontů a klávesnice na konzoli 14.4.3 Klávesnice v X 14.4.4 Fonty v X 14.4.5 Emacs 14.4.6 Další úpravy 15. Odkazy na další dokumenty 16. Jak se zapojit do počešťování ______________________________________________________________________ 11.. ÚÚvvoodd Tento dokument pojednává o tom, jak zprovoznit české případně slovenské prostředí v OS Linux. Podle přetrvávajících diskusí na toto téma v konferenci linux na linux-info@linux.cz, je zřejmé, že se stále nejedná o tak jednoduchou záležitost, jak by si většina uživatelů přála. Některé z popsaných postupů je možné uplatnit i na jiné unixové systémy. Na vytváření tohoto dokumentu se podílelo více osob. Pokud se podařilo zjistit jména autorů jednotlivých kapitol, jsou uvedeni v jejich záhlaví. 11..11.. KKooppíírroovváánníí aa zzáárruukkaa Toto HOWTO je "free" dokument; je možné jej šířit a/nebo modifikovat podle podmínek GNU General Public License verze 2 ( , český překlad ), v podobě, v jaké byla publikována Free Software Foundation. Toto HOWTO vzniklo jako iniciativa několika lidí v konferenci linux@linux.cz. Je distribuováno v naději, že bude užitečné, avšak bez jakékoliv záruky; dokonce i bez implicitní záruky dané obchodními zákony nebo záruky způsobilosti pro jakékoliv použití. Podmínky jsou popsány detailněji v GNU General Public License. Kopii GNU General Public License lze získat od Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 11..22.. KKddee zzíísskkaatt nneejjnnoovvěějjššíí vveerrzzii CCzzeecchh--HHOOWWTTOO Tento dokument je vytvořen v Linuxdoc SGML. Primárním distribučním bodem je . HTML verze je dostupná na . V adresáři jsou k dispozici i další formáty (HTML, TeX, Postscript, .txt, .rpm). Czech-HOWTO je postupně doplňováno a opravováno. Informace o nových verzích jsou zasílány do mailing listu linux@linux.cz na linux- info@linux.cz, který je obousměrně propojen s newsovou skupinou cz.comp.linux. 11..33.. PPřřiissppíívváánníí ddoo CCzzeecchh--HHOOWWTTOO Jakékoli příspěvky, které mohou pomoci zlepšit obsah tohoto HOWTO, jsou vítány. Máte-li chuť přispět, neváhejte. Upozornění na chyby faktické i pravopisné a gramatické zasílejte koordinátorovi tvorby HOWTO (viz kapitola ``Koordinace''). Můžete dát také vědět, co v Czech-HOWTO postrádáte. S odbornějšími problémy se můžete obrátit i na autory uvedené v záhlaví jednotlivých kapitol. Nové příspěvky nebo rozsáhlejší změny jsou přijímány ve formátu Linuxdoc SGML nebo jako jednoduchý text. Hledá se dobrovolník, který napíše stručný návod, jak Linuxdoc SGML pro tvorbu tohoto HOWTO používat. Při psaní nových příspěvků je vhodné dodržovat následující pravidla: ˇ Předpokládáte-li, že vám napsání příspěvku zabere více než deset minut, nechte si jej nejprve přiklepnout od koordinátora. Je většinou zbytečné psát něco dvakrát. ˇ Snažte se být struční a výstižní. Uvědomte si, že většina lidí nerada čte dlouhé dokumenty. Když už někdo podobný dokument čte, dělá to z nutnosti a ne pro své pobavení. Usnadněte mu tuto práci co nejvíce. ˇ FTP, WWW a e-mailové adresy uvádějte jako URL. U všech uváděných adres pokud možno prověřte jejich existenci. ˇ Používejte znak ~ v místech nezlomitelných mezer (tam, kde má být v textu skutečně vypsán znak vlnka, je nutné použít ˜). ˇ Dodržujte pokud možno terminologii v duchu již existujících částí tohoto HOWTO, není-li vám tato příliš proti srsti. ˇ Jedná se o české HOWTO, snažte se proto v rozumné míře používat české tvary odborných výrazů. Preferováno je "jádro" před "kernel", "stisk klávesy" před "keystroke"; naopak asi není příliš vhodné používat termínů jako "slabika" místo "byte", příp. "bajt". Každopádně zcela nevhodné je míchat v jednom textu obě varianty ("kernel" i "jádro"). ˇ Výsledný text si po sobě důkladně přečtěte. Uvědomte si, že jej po vás bude číst mnoho lidí. 11..33..11.. DDůůlleežžiittéé uuppoozzoorrnněěnníí Pokud máte zájem o zařazení příspěvku do Czech-HOWTO, připojte prosím svůj souhlas s tím, že: ˇ na váš příspěvek se v rámci Czech-HOWTO vztahují podmínky GNU General Public License; ˇ vaše jméno a e-mailová adresa bude zveřejněna v dokumentu HOWTO u sekcí, na jejichž tvorbě jste se významným dílem podílel(a). První podmínka je pro zveřejnění příspěvku v Czech-HOWTO závazná. V případě druhé podmínky je možné na explicitní žádost autora učinit výjimku. 11..44.. KKoooorrddiinnaaccee Koordinaci tvorby Czech-HOWTO v současné době provádí Petr Kolář Petr.Kolar@vslib.cz . 22.. CCííllee llookkaalliizzaaccee Lokalizaci Linuxu pro češtinu případně slovenštinu lze rozdělit na několik relativně samostatných částí: 1. Zobrazování národních znaků a jejich vkládání z klávesnice. Obě tyto úlohy jsou spolu natolik svázány, že je vhodné je řešit současně. Odděleně je ovšem probrána lokalizace konzole --- kapitola ``lokalizace konzole'' a grafického prostředí X Window System --- kapitola ``X Window System''. Po provedení tohoto kroku lze používat češtinu v programech, které nekladou zvláštní odpor, u nichž se nepožaduje, aby komunikovaly s uživatelem česky, třídily, případně prováděly další specifické úkoly, jako například přidávání informací o použitém kódování do e-poštovních nebo newsových zpráv. Příkladem takového programu je editor vi, jehož činnost je ovšem ještě vhodné přizpůsobit pro používání znakové sady ISO-8859-2 nainstalováním locales. 2. "Lokalizace knihovny libc nebo glibc --- kapitola ``locales''. Zajistí, že písmena s háčky a čárkami budou považována za tisknutelné znaky a písmena, že programy budou vědět, která písmena jsou malá a která velká, a budou umět převádět jedna na druhá, že bude fungovat třídění podle abecedy, že se peněžní a časové údaje i kalendářní data a velká čísla budou vypisovat tak, jak je v češtině zvykem. Díky tomu, že knihovnu libc/glibc používají téměř všechny programy, projeví se její lokalizace v téměř celém systému. S lokalizací libc úzce souvisí katalogy zpráv, které které umožňují, aby vypisovaná hlášení, online nápověda, i menu v některých programech pro X Window System byly ve zvoleném jazyce. 3. Lokalizace jednotlivých programů je popsána v kapitole ``programy''. V některých programech se používá širší škála jazykově závislých vlastností, než jakou podporují locales (způsob lámání řádků, dělení slov, mezerování, hlavičky v poště a newsech apod.). Příkladem je TeX --- kapitola ``TeX'' nebo Emacs --- kapitola ``emacs''. Jiné programy naopak locales nepoužívají a některé jejich vlastnosti se nastavují pomocí konfiguračních souborů, proměnných prostředí apod. (pine, starší verze less a joe). Do této kapitoly je zahrnuta také lokalizace programů pracujících pod X Window System prováděná pomocí X-resources (zpravidla překlady menu a hlášení, výběr fontů apod.). 4. Český tisk --- kapitola ``tisk''. 5. Programy pro konverze textových souborů jsou popsány v kapitole ``konverze''. Linux používá pro kódování češtiny a slovenštiny kódování ISO-8859-2. Nicméně v jiných systémech se používají jiné znakové sady a tak je často potřeba textové, HTML případně i další (DBF apod.) soubory překódovávat. 6. České manuálové stránky. Jejich instalace a konfigurace programů, které umožňují jejich prohlížení je popsána kapitole ``manuálové stránky''. 7. Kontrola pravopisu. Použití programu ispell je popsáno v kapitole ``Kontrola pravopisu''. 8. Možnost používání češtiny v objektech systému, zejména ve jménech souborů. 9. Úplné počeštění systému, včetně jmen příkazů a parametrů (ls bude va --- jako výpis adresáře, Unix bude Stejník nebo Jednotník, atd. :-) 33.. LLookkaalliizzaaccee tteexxttoovvéé kkoonnzzoollyy Petr Kolář Petr.Kolar@vslib.cz : 5. 1. 1999; Pavel Janík ml. Pavel.Janik@math.muni.cz : starší verze; a mnozí další Pro lokalizaci textové konzole je třeba nastavit ovladač klávesnice, aby generoval kódy znaků podle požadovaného rozložení kláves, a ovladač displeje, aby umožňoval zobrazování národních znaků včetně písmen s diakritikou (s akcenty). Ačkoli jádro Linuxu podporuje od verze 1.3.? Unicode umožňující současné používání nejen všech možných písmen s akcenty, ale i téměř všech světových abeced, v současnosti stále převažuje využívání osmibitových kódování. Pro češtinu, slovenštinu, polštinu, maďarštinu, rumunštinu, slovinštinu, chorvatštinu, albánštinu a další východoevropské jazyky psané latinkou je určena znaková sada ISO-8859-2, známá také pod názvem ISO LATIN-2. Západoevropské jazyky naproti tomu používají kódování ISO-8859-1. Obě tato kódování jsou rozšířením kódu ASCII a shodují se i v některých dalších znacích, takže ISO-8859-2 lze používat například i pro němčinu. Přestože kódování ISO-8859-2 je pro zmíněné jazyky mezinárodním standardem a preferovaným kódováním, v mnoha neunixových systémech se používají jiná kódování; v MS-Windows sada Windows-1250, která se bohužel v několika znacích odlišuje od ISO-8859-2, v systému MS-DOS, jeho klonech i v DOSových oknech MS-Windows kódová stránka 852 nazývaná též PC LATIN-2, která má ne-ASCII znaky kódovány zcela odlišně. Další kódování se používají v jednotlivých zemích (v České republice a na Slovensku je stále populární sada Kamenických), na jiných operačních systémech (Macintosh), pro některá zařízení (tiskárny) i programy (kódování Cork v TeXu). Zatímco znaková sada ISO-8859-2 je určena pro několik jazyků, rozložení klávesnice je pro každý jazyk jiné. Standardní česká nebo slovenská klávesnice pro PC vycházející z českého psacího stroje je pro psaní textů, v nichž se vyskytují speciální "počítačové" znaky, dosti nepohodlná. Proto mnoho lidí používá různé "programátorské klávesnice", které bohužel nejsou standardizovány a jak ukázaly diskuse v konferenci linux, širší dohoda o jejich rozložení je téměř vyloučena. Při zkoušení klávesnice nezapomeňte, že mnoha programům je třeba pomoci, aby pracovaly s osmibitovými znaky --- kapitola ``Lokalizace různých aplikací''. Problémy by neměly být s editorem vi, proto nově nainstalovanou klávesnici testujte nejdříve v tomto editoru v režimu vkládání znaků. Distribuce, kterou používáte, může mít podporu pro české prostředí už zabudovanou. Proto je vhodné nahlédnout nejprve do kapitoly ``Jak počeštit různé distribuce'' a postupy popsané v následujících odstavcích zkoušet teprve pokud nenaleznete jednodušší řešení tam. 33..11.. ZZoobbrraazzoovváánníí zznnaakkůů vv kkóóddoovváánníí IISSOO--88885599--22 ISO-8859-2 fonty pro konzolu a program setfont, kterým se zavádí, jsou součástí balíku kbd už od dávných verzí Linuxu. Pokud v některé distribuci balík kbd není, je možné jej získat například na . Pro adaptéry VGA a lepší stačí zavést font příkazem ______________________________________________________________________ setfont lat2-16.psf ______________________________________________________________________ (nikoli lat2-08.psf výšky 8, jak je doporučováno v dokumentaci k cs- tools), pro adaptéry EGA je vhodný font lat2-14.psf (může někdo potvrdit, že na adaptéru EGA program setfont funguje?). V novějších verzích kbd jsou pro ISO-8859-2 k dispozici ještě fonty iso02*. Pokud není použit program vtfontd, zavedení fontu se projeví na všech virtuálních terminálech (konzolách). 33..22.. NNáárrooddnníí kklláávveessnniiccee Pokud na vašem systému není mapa české klávesnice, lze použít část balíku cs-tools . Soubory *.map z adresáře console z tohoto balíku je třeba zkopírovat do adresáře /usr/lib/kbd/keytables. Zvolená mapa klávesnice se pak zavede příkazem ______________________________________________________________________ loadkeys cz-lat2 ______________________________________________________________________ v některém ze startovacích skriptů. V distribuci Red Hat stačí uvést řádek KEYTABLE v souboru /etc/sysconfig/keyboard: KEYTABLE="cz-prog" Klávesnice fungují jako americké, do českého režimu se přepnou stisknutím klávesy Pause nebo držením klávesy AltGr (pravý Alt). Pro zpětné přepnutí lze použít opět Pause nebo držení AltGr. Klávesnice z kbd údajně nefungují s jádry vývojové řady 2.1.x. Na počítačích s vývojovými jádry je nutné používat balík ucw popsaný dále. 33..22..11.. JJaakk ffuunngguujjee nnaaččííttáánníí zznnaakkůů zz kklláávveessnniiccee?? Při stisku klávesy, při držení v rytmu autorepeatu a při uvolnění klávesy generuje klávesnice na počítačích PC přerušení IRQ 1. Jádro načítá z portu 0x60 tak zvané scankódy kláves, což je jeden nebo celá posloupnost bytů. Například při stisku klávesy 'q' bude načteno 0x10 (16 desítkově), při uvolnění kód o 0x80 větší, tedy 0x90. Některé klávesy, jako např. Delete posílají dvoubajtové escape-scankódy 0xe0, 0xNN, klávesa Pause posloupnost 0xe1, 0x1d, 0x45. Jádro nejdříve scankódy převádí na tak zvané keykódy (funkce getkeycode v drivers/char/keyboard.c --- docela zajímavé čtení). Toto mapování lze měnit i na uživatelské úrovni, ale to má význam snad jenom při používání exotického hardware. Pro národní klávesnice je zajímavé další mapování, při němž se keykódy převádějí na kódy znaků. Od jádra verze 0.99pl10 lze implicitní mapu drivers/char/defkeymap.map měnit. 33..33.. AAlltteerrnnaattiivvaa:: BBaallííkk uuccww--ccss--11..11..ttaarr..ggzz Tento balík využívá schopnosti jádra Linuxu pracovat se znaky v kódování Unicode. Pro zobrazování se používá zvláštní textový režim adaptérů EGA/VGA, který umožňuje současně zobrazit 512 různých znaků. Jako devátý bit kódu znaku se používá bit 3 barevných atributů. Tak je možné zobrazovat všechny znaky podle kódování ISO-8859-1 i ISO-8859-2 současně s rámečky, které mohou být na pozicích 0xB0 až 0xDF, pro něž adaptér VGA zdvojuje levý sloupec, aby byla šířka znaku 9 bodů. V budoucnosti by měl být použit grafický režim. Díky tomu se tento balík elegantně vyrovnává s problémy popsanými v kapitole ``Rámečky v~programech MC & spol. se zobrazují špatně''. Balík se nachází na , jeho popis je na . Po rozbalení balíku se přepněte do adresáře ucw-cs-1.1 a zadejte ______________________________________________________________________ install -c -o root -g root -m 644 fonts/* /usr/lib/kbd/consolefonts install -c -o root -g root -m 644 keymaps/* /usr/lib/kbd/keytables install -c -o root -g root -m 755 mapscrnuni/mapscrnuni /usr/local/bin install -c -o root -g root -m 644 mapscrnuni/latin2.table /usr/lib/kbd/consoletrans ______________________________________________________________________ do startovacích skriptů /etc/rc* je nutné přidat příkazy ______________________________________________________________________ setfont ucw16.psf mapscrnuni < /usr/lib/kbd/consoletrans/latin2.table loadkeys cs-head cz-type cs-compose ______________________________________________________________________ a do souborů /etc/profile a /etc/csh.cshrc nebo $HOME/.bashrc a $HOME/.cshrc, případně do /etc/issue je nutné přidat příkaz, který zajistí přepnutí na uživatelské mapování obrazovky: ______________________________________________________________________ /bin/echo -en "\033(K" ______________________________________________________________________ Pokud se při spuštění programu loadkeys objeví chybové hlášení jako Keymap 12: Permission denied je nutné zadat tento příkaz jako root. Zdá se, že loadkeys spuštěný obyčejným uživatelem neumí zvětšit konverzní tabulku pro klávesnici v jádře, a výsledkem je zmíněné hlášení. Balík je zajímavý tím, že mapa klávesnice je rozdělena do několika souborů, které příkaz loadkeys spojí a zavede jako jednu mapu. Na místě cz-type.map (český psací stroj) lze použít cs-ucw.map (písmena s akcenty se píšou se stisknutým Caps Lock), cz-prog.map (česká programátorská), sk-type.map (slovenský psací stroj) nebo sk-prog.map (slovenská programátorská), podle toho, komu co vyhovuje. 33..44.. TTiippyy aa pprroobblléémmyy 33..44..11.. VVyyppaaddnnuuttíí ffoonnttuu ppřřii ppřřeeppnnuuttíí ddoo XX aa zzppěětt U některých X-serverů dojde při přepnutí z virtuálního terminálu do X a zpět k vypadnutí konzolového fontu. Situaci lze řešit opětovným ručním zavedením fontu, nebo je možné použít program vtfontd - , který také umožňuje používat na jednotlivých konzolách různé fonty. 33..44..22.. VV MMiiddnniigghhtt CCoommmmaannddeerruu nneellzzee ppřřeeppíínnaatt ffoonnttyy Inu tento problém vlastně ani není problémem, je to samozřejmost, protože v mc nejsme na virtuální konzole, ale na normálním terminálu ttypx, tudíž nemáme právo použít ioctl PIO_FONT, protože nejsme ani vlastníkem tty, ani superuživatelem (drivers/char/vt.c řádek 212 --- opět velmi zajímavé čtení). 33..44..33.. RRáámmeeččkkyy vv pprrooggrraammeecchh MMCC && ssppooll.. ssee zzoobbrraazzuujjíí ššppaattnněě Při používání některých programů (jako například Midnight Commanderu) bývají problémy se zobrazováním rámečků. U Midnight Commanderu je možné použít parametr -a, který způsobí, že mc bude pro zobrazování rámečků používat ASCII znaky +, - a |, což sice nepůsobí příliš esteticky, ale je to rozhodně lepší, než když se místo rámečků zobrazují písmena. Vzhledem k tomu, že programy používající čárovou grafiku jako MC nebo MenuConfig jádra, jsou po nainstalování českých fontů na textovou konzolu Linuxu nečitelné, je nutné použít font, který tyto rámečky obsahuje, a upravit nastavení databází termcap a terminfo. Již upravené databáze jsou ke stažení na URL . Tyto databáze je nutno zkopírovat termcap do /etc/termcap a terminfo do /usr/lib/terminfo/l/linux a znovu se přihlásit. Ke konverzi mezi zdrojovou a binární podobou terminfo slouží příkazy infocmp a tic. I potom mohou být problémy způsobené tím, že u videoadaptéru VGA jsou znaky s kódy 0xB0 až 0xDF vyhrazeny pro rámečky a VGA při zobrazování zdvojuje pravý sloupec každého z těchto znaků, aby se dosáhlo šířky znaku 9 pixelů, ale u znakových sad ISO-8859-2 jsou na těchto pozicích běžné znaky. Elegantním řešením je použití unikódových fontů Martina Mareše popsaných v kapitole ``''. 33..44..44.. SSnnaaddnnéé ppřřeeppíínnáánníí ččeeššttiinnyy aa aanngglliiččttiinnyy Pokud nepoužíváte klávesnici, která umožňuje přepínání mezi dvěma režimy (čeština nebo slovenština a angličtina), můžete pro přepínání používat následující dva skripty, které zajistí i přepnutí fontů. ˇ Cz: loadkeys cz-lat2 setfont lat2-16.psf ˇ Us: loadkeys us setfont Skripty budou samozřejmě fungovat pouze tehdy, budete-li mít nainstalovánu podporu národní klávesnice a ISO-8859-2 znaky pro konzolu. Přitom je nutné pamatovat, že zatímco klávesnice se přepíná pouze pro jednu virtuální konzolu, fonty (není-li použito vtfontd) se přepínají pro všechny. 33..44..55.. ČČeesskkýý tteexxtt jjee ii ppoo nnaassttaavveenníí sspprráávvnnééhhoo ffoonnttuu nneeččiitteellnnýý Příčinou může být, že text je v jiném kódování. Text je třeba překódovat pomocí utility cstocs popsané v kapitole ``cstocs'' do kódování ISO-8859-2 a poté jej prohlížet a editovat standardním způsobem. Nebo případně, vznikl-li tento font na jednom z Billových produktů, můžete použít k prohlížení font upravený tak, aby zobrazoval správně české znaky, jak v kódování CP1250 (Windoze), tak i ISO-8859-2 (unixové OS). Tento font opět najdete někde na . 33..44..66.. LLeeppššíí kkoonnzzoolloovvéé ffoonnttyy Vzhled fontů z balíku kbd je dost špatný, velká písmena s akcenty jsou nižší než bez akcentů, pokud si chce někdo vytvořit vlastní font, může mu pomoci tento popis: Soubory s fontem jsou umístěny v /usr/lib/kbd/consolefonts. Používají se dva formáty těchto souborů, formát psf, který je popsán v souboru , a ještě jednodušší formát, který nepoužívá žádnou hlavičku, a soubory obsahují prostě obrazy všech 256 znaků uložených v pořadí podle kódů znaků. Pro každý znak z fontu je v souboru tolik bytů, kolik bodů je výška fontu (včetně volných řádků nahoře a dole; nejčastěji 8 až 16 bodů), první byte odpovídá hornímu řádku znaku. Každý znak má šířku 8 bodů, nejvyšší bit se zobrazuje vlevo. Je také možné použít editor fontů chedit, který se nachází na . Je poněkud zastaralý a umí editovat pouze fonty ve formátu psf. 33..44..77.. ZZmměěnnaa qqwweerrttyy nnaa qqwweerrttzz Obě české klávesové mapy, tedy cz-lat2.map i cz-lat2-prog.map, mají standardní rozložení qwerty, jste-li zvyklí na rozložení qwertz, není nic jednoduššího než zaměnit písmenka cz-lat2-prog.map: ... keycode 21 = z~... keycode 44 = y ... 33..44..88.. JJeeddiinnýý ddvvoojjhhmmaatt zz WWookkeenn,, kktteerrýý zznnáámm,, jjee AAlltt++SShhiifftt...... Ano, tento dvojhmat je mým prvním stisknutím klávesnice, jestliže jsem nucen sedět u počítače s Billovým OS. (Doufám, že se autoři skutečných operačních systému neurazí.) Slouží k přepnutí se mezi primární a sekundární klávesnicí. Pro některé skalní příznivce firmy SoftMicro jsem přichystal úpravu cz-lat2.map: upravíme řádek s keycode 42 (klávesa Shift) keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift AltGr_Lock\ Shift AltGr_Lock Shift Shift Shift Shift Shift Shift ...vše samozřejmě na jednom řádku. Potom již bude kombinace LeftShift+LeftAlt fungovat stejně jako klávesa Pause, tedy pro přepínání klávesnic. 33..44..99.. ZZddrroojjee ˇ Balík české podpory pro Linux cs-tools, z větší části zastaralý. ˇ Balík kbd --- programy chvt, dumpkeys, getkeycodes, loadkeys, mapscrn, setfont, setkeycodes a další. Spousta fontů a klávesových map. ˇ Různé fonty --- mc.psf (font pro MC), font.winux (CP1250+IL2) 33..44..1100.. PPoouužžiittéé mmaatteerriiáállyy ˇ Zpravodaj ÚVT MU, březen 1994: Pavel Ševeček --- Ufff, zase ta čeština! Luděk Matyska --- Čeština v Unixu ˇ Manuálové stránky console, console_ioctls, dumpkeys, getkeycodes, keytables, loadkeys, setfont, setkeycodes, showkey ˇ Dokumentace balíků cs-tools a kbd. ˇ Vlastní zkušenosti. ˇ Zdrojové texty Linux 2.0.29 --- Here you can find virtually everything you'd like to know. 44.. LLookkaalliizzaaccee XX WWiinnddooww SSyysstteemmuu Petr Kolář Petr.Kolar@vslib.cz ; 14. 5. 1999, používání mapy cs: Peter Ivanyi Ivanyi@internet.sk : 1. 1. 1999, revize Milan Keršláger kerslage@linux.cz : 25. 4. 2001 Lokalizaci prostředí X Window System rozdělujeme na lokalizaci vlastního grafického prostředí a lokalizaci použitých aplikací. Základem lokalizace prostředí jsou správně nastavené locale (viz kapitola ``locales'', instalace fontů pro naše kódování (ISO-8859-2) a instalace potřebných klávesnicových map. Nepřítomnost lokalizace nebo její špatné použití v jednotlivých aplikacích může způsobit, že v nich nepůjde vkládat české znaky nebo budou špatně zobrazovány. Tyto problémy nesouvisí se správnou lokalizací vlastního grafického prostředí. Samostatným úkolem je lokalizace window manažerů (správců oken), případně celých grafických prostředí, jako je KDE nebo Gnome (které řeší lokalizaci svými vlastními silami). 44..11.. FFoonnttyy vv XX WWiinnddooww SSyysstteemm Aplikace pod X mohou používat jak rastrové (bitmapové) tak vektorové fonty (pokud je podporuje X-server). Starší X servery uměly jen Type1 a Speedo fonty, dnes je možné používat i fonty TrueType (vektorové). Jejich výhoda spočívá v tom, že je můžeme snadno zvětšovat a zmenšovat na různé velikosti (škálovat). Škálovat sice lze i rastrové fonty, avšak výsledek je velmi odpuzující (písmena jsou zubatá a deformovaná). Rastrové fonty vznikají obvykle vyrastrováním škálovatelných fontů na předem zvolené velikosti, i když je lze už od počátku navrhovat jako bitmapy. Rastr je pak uložen jako dvoubarevná bitová mapa. V principu lze použít i fonty z TeXu (zkonvertované programem pk2bm), ovšem tyto fonty (zejména Computer Modern) jsou navrženy pro větší rozlišení, obsahují vlasové čáry a proto jsou při vyrastrování na rozlišení obrazovky (75 nebo 100 dpi) dosti nevzhledné. Fonty jsou uloženy na disku v podobě souborů (u X-terminálů mohou být uloženy i v paměti ROM) Protože jsou některé operace s fonty poměrně náročné a jejich zpracování blokovalo činnost celého X serveru, jsou v dnešní době pro jejich zpracování používány tzv fontservery (běží jako samostatný proces, zpracování fontu zablokuje pak jen jeden proces a ne celý X server). Fontserver může s X serverem komunikovat buď přes soket (pokud oba běží na stejném počítači) nebo přes síť, což může být výhodné pro pomalejší terminály nebo pro sdílení velkého množství fontů (úspora místa na discích). Rastrové fonty jsou zpravidla distribuovány v textovém formátu .bdf (Bitmap Distribution Format). X-server ovšem rychleji pracuje s fonty v binárním tvaru. Preferovaným binárním formátem fontů pro servery X11R6 a X11R5 je formát .pcf, starší X-servery (X11R4) používaly jiné binární formáty fontů (často závislé na endianitě) --- například .snf. Pro ušetření diskového prostoru bývají soubory s fonty zkomprimované programem gzip nebo compress. Pro konverzi různých formátů fontů jsou v distribuci X11 programy jako bdftopcf, bdftosnf a další. X server získá informaci o místě uložení fontů ze svého konfiguračního souboru. Pro XFree86 verze 3 je to soubor /etc/X11/XF86Config, u verze 4 pak soubor /etc/X11/XF86Config-4). Záznam o cestě k fontům je uveden v řádcích FontPath v sekci Files. Následující příklad má na prvním řádku odkaz na místní fontserver, dále pak dva adresáře s fonty a poslední řádek odkazuje na fontserver umístěný na jiném počítači v síti (standardní port pro fontserver je 7100). Více o formátu konfiguračního souboru získáte v manuálové stránce XF86Config(5x). ______________________________________________________________________ Section "Files" FontPath "unix/:7100" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "tcp/stroj.jinde.cz:7100" EndSection ______________________________________________________________________ Cestu k fontům lze za běhu X serveru ovlivňovat příkazem xset fp, pomocí něhož si každý uživatel může měnit konfiguraci X serveru podle svých potřeb. V každém adresáři s fonty musí být soubor fonts.dir, který vytvoříme (případně aktualizuje) příkazem ______________________________________________________________________ mkfontdir [ adresář ] ______________________________________________________________________ Protože jména fontů jsou velmi dlouhá (viz dále), lze pro ně používat i přezdívky. Ty jsou definovány v adresářích s fonty v souborech fonts.alias pomocí řádků ve tvaru: fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 Pokud některá aplikce používá zkratku pro odkaz na font, můžeme změnou aliasu použitý font změnit. To je výhodné zejména pro změnu kódování fontu (poslední část jména zcela vpravo), bohužel tyto změny jsou pak globální pro všechny aplikace běžící na tomto X serveru. Po změně souboru s aliasy je nutné upozornit fontserver příslušným signálem (aby si fonty znovu načetl) nebo případně upozornit X server příkazem xset fp rehash. V našich podmínkách je významnou vlastností možnost používání fontů v různých kódováních. Soubory s fonty pro různá kódování se zpravidla umísťují do samostatných adresářů. Přitom u některých programů záleží na pořadí, v jakém jsou adresáře uvedeny v konfiguračním souboru (je vhodné mít adresáře s ISO-8859-2 fonty na začátku). Mají-li být naopak fonty s různým kódováním v jednom adresáři, je potřeba dát pozor, aby se soubory obsahující stejné fonty v různém kódování nepřepsaly (dát jim různá jména). Neprivilegovaný uživatel, který nemá možnost měnit konfigurační soubor X-serveru, si může nainstalovat vlastní fonty tak, že soubory s fonty umístí do libovolného adresáře, a zadá příkazy ______________________________________________________________________ mkfontdir adresář xset +fp adresář xset fp rehash ______________________________________________________________________ První příkaz vytvoří soubor fonts.dir, který obsahuje seznam fontů v adresáři. Příkaz xset +fp adresář zajistí přidání zadaného adresáře na začátek seznamu adresářů s fonty (alternativou je xset fp+ adresář, který přidá adresář na konec seznamu; příkaz xset -fp adresář naopak adresář ze seznamu odebere). Poslední příkaz zajistí nové načtení seznamu fontů po jejich změně bez restartování X serveru. Aby vzaly nové fonty na vědomí i jednotlivé programy, je nutné je znovu spustit. Pro jednoznačný popis fontu se používá jméno, které se skládá ze 14 složek (jména fontů jsou uložena uvniř souboru s fontem, názvy souborů na ně nemají vliv) --- například -adobe-times-medium-r- normal--12-120-75-75-p-64-iso8859-2. složka příklad význam foundry adobe výrobce (doslova písmolijna) family times rodina weight medium tučnost slant r sklon setwidth normal šířka písma addstyle dodatečný styl pixels 12 velikost v pixelech points 120 velikost v desetinách tiskařského bodu resx 75 rozlišení ve směru osy x resy 75 rozlišení ve směru osy y spacing p mezerování avgwidth 64 průměrná šířka znaku v desetinách tiskařského bodu registry iso8859 registr znakové sady encoding 2 kódování Složky jména fontu v X11 Název fontu vychází z toho, že jeden výrobce může dodávat více rodin písem. Rodina zpravidla obsahuje několik řezů písma v různých velikostech. Jednotlivé řezy se liší tučností (tloušťkou tahů), šířkou, sklonem, tím, zda znaky mají patičky (serif) nebo jsou bez nich (sans serif). Každý řez může být dostupný v několika velikostech. Pro používání v X je důležitou charakteristikou písma jeho mezerování. U proporcionálních písem (spacing=p), které se běžně používají při tisku knih a časopisů, mají různé znaky různou šířku, například znak 'i' je užší než znak 'm'. Tato písma jsou vhodná například pro zobrazování WWW stránek. Pro použití v terminálových emulátorech jako je xterm je třeba používat písma pevné šířky jako u psacího stroje (znaky pak lze umístit na předem danou pozici nezávisle na zvoleném fontu). Tato písma jsou vhodná například pro výpisy programů, kde je potřeba, aby znaky v různých řádcích byly pod sebou. I u písma pevné šířky mohou některé znaky přečnívat z prostoru, který je jim vymezen (spacing=m), ovšem pro xterm a další programy, které na obrazovce přepisují jednotlivá písmena, je nutné písmo, které má nejen pevnou šířku, ale jehož všechny znaky se vejdou do vymezeného prostoru, tak zvaného cellboxu (spacing=c). Přitom některá písma v X (například neskloněná písma Adobe Courier) mají chybně uvedeno spacing=m, i když ve skutečnosti vyhovují podmínkám pro spacing=c a je tedy možné je používat i jako fonty pro xterm. 44..11..11.. RRaassttrroovvéé ffoonnttyy pprroo XX X11R6 jsou standardně dodávány s několika málo nebo zcela bez ISO-8859-2 fontů. ISO-8859-2 fonty lze získat podle informací na nebo na , ve formátu *.rpm na nebo soubory , a a ve formátu *.deb na ftp://ftp.debian.org/debian/hamm/hamm/binary-all/x11/xfntil2*.deb. Neproporcionální fonty z balíku misc nejsou příliš kvalitní, lepší je možné získat z balíku cs-tools z adresáře X11/fonts/xfonts. Tyto fonty ovšem údajně nejsou free. Přestože rozlišení většiny displejů je okolo 75dpi, pokud je dostatek místa na disku, je vhodné nainstalovat i fonty v rozlišení 100dpi, zvětší se tím počet dostupných velikostí jednotlivých písem. U mnoha programů lze parametrem -fn stanovit, jaký mají používat font: ______________________________________________________________________ xterm -fn '-misc-fixed-medium-r-normal--14-*-iso8859-2' ______________________________________________________________________ Znak hvězdička je žolík, který nahrazuje jednu nebo více složek jména. U většiny programů je možné nastavit používané fonty také pomocí atributů (resources). To může provést buď správce počítače úpravou souboru z adresáře /usr/X11R6/lib/X11/app-defaults, nebo libovolný uživatel tím, že zkopíruje soubor ze zmíněného adresáře do svého domovského adresáře, a na začátek jména souboru přidá tečku. 44..11..22.. VVeekkttoorroovvéé ffoonnttyy pprroo XX ˇ ˇ 44..11..33.. TTrruueeTTyyppee ffoonnttyy pprroo XX Protože stále trvá nedostatek kvalitních Type1 fontů, používá mnoho lidí TrueType fonty, které jsou snadněji dostupné (používají se v MS Windows). Pokud vyhovíte licenčnímu ujednání, můžete použít unicodové TrueType fonty od firmy Microsoft (první odkaz). Na Internetu nebo v obchodech (na nejrůznějších CD) pak naleznete nejrůznější další fonty nebo využijete již hotové balíčky z druhého odkazu. ˇ ˇ Získané fonty nakopírujte do nějakého adresáře, vytvořte v něm soubor fonts.dir příkazem: ttmkfdir > fonts.dir Nakonec přidejte cestu k adresáři s fonty do konfiguračního souboru X serveru nebo font serveru. 44..22.. KKlláávveessnniiccee vv XX ppoommooccíí XXKKBB Pro používání české klávesnice v X Window System mmuussííttee mmíítt nnaaiinnssttaalloovvaannéé aa nnaassttaavveennéé llooccaalleess (viz kapitola ``locales''), takže první z příkazů ______________________________________________________________________ printenv LC_ALL printenv LC_CTYPE printenv LANG ______________________________________________________________________ který něco vypíše, musí vypsat cs_CZ, cs_CZ._k_ó_d_o_v_á_n_í nebo czech (pouze v případě, že máte české locale pro kategorii LC_CTYPE v adresáři cs, může být vypsáno cs). V KDE je pro nastavení klávesnice přímo menu, v ostatních prostředích je třeba vybrat vhodnou mapu klávesnice příkazem ______________________________________________________________________ setxkbmap -symbols 'czsk(us_cz_qwertz)' -compat group_led ______________________________________________________________________ který může být umístěn v souboru $HOME/.Xclients jednotlivých uživatelů, aby se provedl automaticky při každém spuštění X. Mapa us_cz_qwertz má dva režimy činnosti. V prvním funguje americké rozložení klávesnice, ve druhém se chová jako český psací stroj. Přepínání mezi oběma režimy se provádí klávesou ScrollLock nebo současným stisknutím obou kláves Shift. Chvilkového přepnutí do opačného režimu lze dosáhnout držením pravé klávesy Alt. Klávesa = funguje jako mrtvá čárka, se Shiftem jako mrtvý háček, klávesa ` (vlevo od klávesy 1) funguje jako mrtvá přehláska a se Shiftem jako mrtvý kroužek, tj. pro napsání ň musíte stisknout Shift+= a potom n. Kromě mapy us_cz_qwertz je k dispozici ještě mapa us_cz_qwerty, která má oproti českému psacímu stroji přehozené klávesy z a y, a mapa us_cz_prog, u které horní řada kláves s číslicemi produkuje písmena s háčky a čárkami jako na českém psacím stroji, fungují obě mrtvé klávesy, ale jinak se klávesnice chová jako americká. Existují i mapy cz_us_*, které mají implicitně zapnutou jednu z uvedených českých klávesnic a lze je přepnout na americkou klávesnici. Tyto mapy ovšem působí problémy při komunikaci s nelokalizovanými počítači. Ke všem šesti mapám existují i slovenské varianty, v jejichž jméně je cs nahrazeno sk. Pro používání výše uvedených map klávesnice musí mít sekce Keyboard souboru /etc/X11/XF86Config tento obsah: Protocol "Standard" AutoRepeat 500 5 XkbModel "pc102" --- nesmí obsahovat řádek XkbDisable, a aby bylo možné měnit mapy klávesnice příkazem setxkbmap, musí být použit řádek XkbModel (samozřejmě s uvedením správného modelu klávesnice). Přidáním řádků XkbKeymap "xfree86(us_cz_qwertz)" XkbCompat "group_led" je možné zajistit zapnutí zadané mapy klávesnice při každém startu X bez použití příkazu setxkbmap. Všechny výše uvedené mapy klávesnice jsou standardní součástí balíku XFree86 až od verze 3.3.3.1 z roku 1999, takže pokud máte starší verzi nebo X jiné produkce, budete muset tyto mapy doinstalovat (nyní jsou pravděpodobně dostupné pouze jako součást balíku XKB-czsk-forcedIM). nebo se musíte spokojit s mapou cs, která je součástí X11 již od verze R6.1 Mapa cs se zapíná příkazem setxkbmap cs -option grp:shift_toggle nebo řádky XkbLayout "cs" XkbOptions "grp:shift_toggle" v souboru /etc/X11/XF86Config. Parametr grp:shift_toggle umožňuje přepnutí na americkou klávesnici současným stiskem obou Shiftů, což je nezbytné, protože mapa cs sama o sobě neumožňuje zadávat některé speciální znaky, například křížek # a zavináč @. Verzi X je možné zjistit příkazem X -showconfig 44..22..11.. MMoožžnnéé pprroobblléémmyy Lokalizace klávesnice v X byla až donedávna jedním z nejtvrdších oříšků při lokalizaci Linuxu. Pokud nepoužíváte nejnovější verzi X11 (a nepoužíváte KDE, v němž je česká klávesnice už poměrně dlouho funkční), je téměř jisté, že vám klávesnice fungovat nebude, ale ani v nejnovější verzi X11 nebude fungovat v každém programu. Pokud máte tu smůlu, že vám klávesnice nefunguje vůbec nikde, použijte následující postup pro odhalení a odstranění chyb: Zkontrolujte, zda máte správně nastavené proměnné prostředí pro locales, jak je popsáno na začátku této kapitoly, otevřete si textové terminálové okno a zkuste zapnout klávesnici příkazem ______________________________________________________________________ setxkbmap -symbols 'czsk(us_cz_qwertz)' -compat group_led ______________________________________________________________________ Pokud není příkaz setxkbmap nalezen (měl by být v /usr/bin/X11/setxkbmap), pak pravděpodobně máte velmi starou verzi X a budete muset provést upgrade nebo použít klávesnici popsanou v podkapitole ``Klávesnice v~X pomocí xmodmap'' či se spokojit s počeštěním klávesnice pouze v programu xterm popsaným v kapitole ``Lokalizace jednotlivých aplikací''. Jestliže se vypíše XKB extension not present on :0.0, znamená to, že nemáte zapnuté XKB (v souboru /etc/X11/XF86Config je nevykomentovaný řádek XkbDisable). Jestliže se vypíše Couldn't interpret _XKB_RULES_NAMES property, chybí vám v sekci Keyboard souboru /etc/X11/XF86Config řádek XkbModel nebo nemáte nainstalovány české mapy klávesnice. Mapy klávesnice jsou součástí balíku , který však obsahuje také knihovnu forcedIM, pro "opravu" některých aplikací nefungujících s českou klávesnicí. Tato knihovna může s některými programy a verzemi X11 způsobovat problémy. Pokud budete instalovat soubory s mapami klávesnice z tohoto balíku ručně, nezapomeňte, že po přidání souboru do některého z adresářů v /usr/X11R6/lib/X11/xkb je nutné aktualizovat příslušný .dir soubor, například takto: cd /usr/X11R6/lib/X11/xkb/keymap xkbcomp -llphfR '*' -o ../keymap.dir Pokud se mapu klávesnice podařilo nastavit, nastavte proměnnou prostředí XKB_DEBUG a v okně s terminálovým emulátorem zadejte ručně příkaz ______________________________________________________________________ xterm & ______________________________________________________________________ V původním okně se musí vypsat XKEYBOARD (version 1.00/1.00) OK!. Pokud se vypíše XKEYBOARD extension not present je opět problém s XkbDisable. Pokud se v původním okně vypíše Warning: locale not supported by C library, locale unchanged, je to chyba v nastavení locales --- některou z výše uvedených proměnných prostředí máte nastavenu na locale, které na vašem počítači není nainstalované nebo je nastavena na alias, jemuž v souboru /usr/share/locale/locale.alias není přiřazeno existující locale (v adresáři, který se vypíše příkazem localedef --help není podadresář s příslušným jménem). Jestliže se v původní okně vypisuje Warning: locale not supported by Xlib, locale set to C není nastavené locale známé knihovně Xlib. Obvykle to je cs_CZ; konkrétní hodnotu lze zjistit ručním startem programu netscape (vypíše se něco jako netscape-navigator: locale `cs_CZ' not supported by Xlib; trying `C'.). Pro inkriminované locale je nutné doplnit nebo upravit v souboru /usr/X11R6/lib/X11/locale/locale.alias řádek cs_CZ cs_CZ.ISO8859-2 Tato chyba je opravena až v XFree86 3.3.3.1. Také je chybně řádek pro czech --- správně má být czech cs_CZ.ISO8859-2 ale tato chyba se při normální instalaci libc/glibc neprojeví (czech je alias na cs_CZ.ISO8859-2 a locales jsou umístěné v adresáři cs_CZ, takže X použijí cs_CZ). Řádek pro czech je opraven v X11R6.4. Je-li vše v pořádku, přepněte se do nově otevřeného okna programu xterm, zadejte příkaz vi test, stiskněte klávesu i, a přepněte na českou klávesnici stisknutím klávesy Scroll Lock. Pokud byla mapa klávesnice nastavena s -compat group_led, měla by se kontrolka Scroll Lock rozsvěcet a zhasínat nejen při mačkání klávesy Scroll Lock, ale i stisknutím obou kláves Shift, a musí také blikat v rytmu mačkání pravé klávesy Alt. Při rozsvícené kontrolce Scroll Lock můžete zkontrolovat, zda funguje psaní českých znaků. Měly by se vypisovat háčkované znaky ěščřž, čárkované ýáíéú i znaky s akcenty po použití mrtvých kláves. Fungovat znamená, že se něco vypisuje. Jestliže se vypisují podivné znaky, bude problém v tom, že xterm nepoužívá ISO-8859-2 fonty nebo tyto fonty ani nemáte nainstalované. Řešení naleznete v kapitole ``Fonty v~X Window System''. Pokud klávesnice funguje ve vi, ale ne v příkazovém řádku, nemáte pravděpodobně zkonfigurovaný shell pro práci s osmibitovými znaky. Náprava je popsána v podkapitolách ``bash'' a ``tcsh''. Pokud v nově otevřeném okně česká klávesnice funguje, ale jinde ne, zkontrolujte, zda máte potřebné proměnné prostředí nastaveny už před startem X a zda ostatní okna nepatří jinému terminálovému emulátoru než programu xterm. Jiné terminálové emulátory nemusí s českou klávesnicí pracovat. Nefungují klávesy 'ěščřž', ale 'ýáíéú' fungují: nemáte nastavenou proměnnou prostředí LC_ALL nebo LC_CTYPE, případně LANG na czech nebo cs_CZ (než jste dočetli sem, byli jste několikrát nabádáni k jejich nastavení). Nefungují klávesy 'ýáíéú', tyto znaky však lze napsat pomocí mrtvé klávesy čárka a 'yaieu': toto je dlouho známá chyba, která je odstraněna až v XFree86 3.3.3.1. Naštěstí ve starších verzích X je možné ji obejít úpravou textových souborů popsanou v podkapitole ``Nefungující áéíúý''. Kroužkované 'ů' se na programátorské klávesnici píše stisknutím mrtvé klávesy Shift+obrácený apostrof následovaným stiskem klávesy u. Pokud jste zvyklí psát kroužkované 'ů' jako mrtvý háček a 'u', přidejte do souboru /usr/X11R6/lib/X11/locale/iso8859-2/Compose řádky : "\331" Uring : "\371" uring (velké mezery jsou vytvořeny tabelátory). V tomto okamžiku by vám česká klávesnice v X měla v zásadě chodit. Bohužel stále existuje mnoho programů pod X, které s českou klávesnicí nepracují. Je to chyba aplikace. Řešením je chybné aplikaci opravit nebo někoho znalejšího slušně požádat o pomoc s opravou. Než bude aplikace korektně opravena, můžete se pokusit o dočasnou nápravu popsanou v podkapitole ``Problém mrtvých kláves a XKB''. Pokud aplikace načítá české znaky, ale nepracuje s mrtvými klávesami, je též možné používat klávesnici cz-komp-qwerty nebo cz-komp-qwertz, kde se akcentované znaky píšou se stisknutým pravým Alt (například 'ó' se dostane jako AltGr-o, 'Ř' se dostane kombinací Alt-Shift-R). 44..22..22.. NNeeffuunngguujjííccíí ááééííúúýý Tato chyba se projevuje tím, že není možné vkládat z klávesnice ne- ASCII znaky, které patří zároveň do ISO-8859-1 i do právě používané znakové sady (pro češtinu sada ISO-8859-2 a znaky áéíúý), bez použití mrtvých kláves. Vkládání pomocí mrtvé klávesy čárka následované aeiuy přitom funguje. Chyba se projevuje ve všech aplikacích v X, a je opravena až v XFree86 3.3.3.1. Ve starších verzích je možné tuto chybu několika způsoby obejít. Pravděpodobně žádný z nich není zcela korektní, ale chybu odstraňují. Asi nejlepší je do souboru /usr/X11R6/lib/X11/locale/iso8859-2/Compose přidat následující řádky: ______________________________________________________________________ : "\375" yacute : "\341" aacute : "\355" iacute : "\351" eacute : "\372" uacute ______________________________________________________________________ Druhou možností je opravit řádek ct_encoding ISO8859-2:GR téměř na konci souboru /usr/X11R6/lib/X11/locale/iso8859-2/XLC_LOCALE na ct_encoding ISO8859-2:GR; ISO8859-1:GR První metoda opravy je pravděpodobně o něco lepší, protože u druhé při uvedení názvu symbolu patřícího do ISO-8859-1 a ne do ISO-8859-2 v definici klávesnice bude při stisknutí příslušné klávesy načten znak s příslušným kódem, přestože se v sadě ISO-8859-2 nevyskytuje. Starší opravy této chyby používaly v mapách klávesnice pro dotčené znaky symboly il2_* definované v souboru Compose (il2_aacute místo aacute) nebo přímo číselné kódy těchto znaků. 44..22..33.. PPrroobblléémm mmrrttvvýýcchh kklláávveess aa XXKKBB Další problémy s českou a slovenskou klávesnicí vznikají tím, že se pro psaní některých znaků s akcenty používají mrtvé klávesy (klávesy odpovídající samostatné čárce a háčku na psacím stroji, které vypíšou akcent bez posuvu válce, takže další napsaný znak bude na téže pozici). Na počítači je potřeba při stisknutí mrtvé klávesy pozdržet zpracování znaku až do stisknutí další klávesy, a pak například místo krátkého X11R6 záležitostí X-serveru, a některé X-servery mrtvé klávesy vůbec nepodporovaly. Standardní podpora mrtvých kláves se objevila až ve verzi X11R6.1 spolu s novým mechanismem pro práci s národními klávesnicemi zvaným X Keyboard Extension (XKB) používajícím tak zvané vstupní metody (input methods). Tyto vstupní metody musí jednotlivé aplikace inicializovat a používat, takže starší aplikace s XKB nefungují. XFree86 --- free implementace X11 používaná ve většině distribucí Linuxu podporuje mrtvé klávesy pomocí XKB od verze 3.3, do té doby bylo možné používat mrtvé klávesy pouze pomocí xmodmap. V současnosti je stále mnoho starších aplikací, které s XKB nefungují. Koncepčním řešením je tyto aplikace upravit, aby používaly vstupní metody. Než k tomu dojde, je nutné se v neupravených programech vzdát používání národních klávesnic nebo používat různé špinavé triky, které jejich používání umožní. Nejrozšířenějším z těchto triků je patch Stano Meduny na knihovnu libX11, známý pod názvem forcedIM. Tento patch zajistí, že pokud aplikace správně neinicializuje vstupní metody, provede jejich inicializaci přímo zmíněná knihovna. Používání patchované knihovny má však několik nevýhod: ˇ Pokud se objeví aktualizovaná verze knihovny libX11 například s opravenými bezpečnostními dírami, je třeba --- dokud nebude k dispozici aktualizovaná verze knihovny s forcedIM patchem --- se buď vzdát mrtvých kláves v neupravených aplikacích nebo používat starou verzi patchované knihovny s bezpečnostními dírami. ˇ Pokud se při aktualizaci změní některé vnitřní datové struktury X11, nebude možné starou knihovnu forcedIM s novou verzí X11 vůbec používat. ˇ Na některé aplikace je krátký i tento patch. Některé z nevýhod forcedIM odstraňuje balík , který obsahuje upravené verze pouze několika málo funkcí z libX11 a navíc je možné jej používat selektivně pouze pro aplikace, které s národní klávesnicí nepracují. Takové aplikace se startují následující dávkou: ______________________________________________________________________ #!/bin/sh LD_PRELOAD=LibI18N/lib/libI18Nforce.so.0.0 export LD_PRELOAD chybna_aplikace $* ______________________________________________________________________ (před libI18Nforce.so.0.0 a chybna_aplikace je třeba doplnit správné cesty, pro libc5 je třeba použít libI18Nforce-c5.so.0.0). Instalace balíku spočívá v rozbalení archivu a vytvoření startovacích skriptů pro všechny X11 programy, které nefungují s mrtvými klávesami (a které s knihovnou libI18Nforce fungují). Balík neobsahuje mapy klávesnice. Obdobným řešením je pomocná knihovna od Tomáše Zikmunda popsaná na . Toto řešení pravděpodobně napravuje chování největší skupiny programů (včetně Applixware 4.4.1), ovšem zásahy do různých konfiguračních souborů jsou poměrně velké (některé z nich budou asi i zbytečné). Původní balík forcedIM od Stano Meduny lze získat na . Tento balík ovlivňuje všechny X11 aplikace (některé bohužel negativně). Zahrnuje v sobě starší balíky XKB-cz- X11R6.3.tar.gz s mapami klávesnic us_cz_qwertz atd., xlib- forcedIM-0.01.tar.gz (který obsahuje i přeloženou patchovanou knihovnu z ), cs_CZ locale (už obsažené v glibc 2.0.7, ale chybějící v glibc 2.0.5), sk_SK locale a patch na soubor XLC_LOCALE. Balík by měl fungovat na všech distribucích Linuxu používajících XFree86 s XKB rozšířením (lze zjistit podle existence adresáře /usr/X11R6/lib/X11/xkb). RPM tohoto balíku je na . Rozbalený balík se nainstaluje spuštěním skriptu install.sh. Skript je nutné spustit jako root z konzole (ne z X). Pokud váš počítač startuje přímo do X (runlevel 5), je vhodné změnit pro instalaci implicitní runlevel v řádku id:5:initdefault: v souboru /etc/inittab na 3, a hodnotu 5 vrátit až po ověření, že X skutečně fungují. Popis, jak přepínat jednotlivé mapy klávesnice, je uveden na začátku kapitoly ``Klávesnice v~X pomocí XKB''. Pro zajištění funkčnosti aplikací, které neinicializují vstupní metody, je třeba nastavit proměnnou XLIB_FORCE_I18N na hodnotu 2 nebo 1. V případě problémů s konkrétní aplikací při používání knihovny forcedIM nastavte před spuštěním problémové aplikace proměnnou prostředí XLIB_FORCE_I18N_DEBUG na hodnotu 2 a pošlete výstup s popisem, po které akci následovaly konkrétní řádky výpisu, na adresu stano@trillian.eunet.sk. 44..33.. KKlláávveessnniiccee vv XX ppoommooccíí xxmmooddmmaapp Tato klávesnice je použitelná i na X-serverech, které nepodporují XKB. Aby fungovaly mrtvé klávesy, je nutná jejich podpora na X-serveru. 44..33..11.. ŘŘeeššeenníí zz ccss--ttoooollss Jedná se o zastaralé řešení, které je zde uvedeno pouze pro úplnost. Neobtěžujte prosím jeho autora ani s žádostmi o pomoc nebo radu. Řešení je obsaženo v balíku cs-tools , v adresáři X11/Xlib-Compose-1.1. Každá klávesnicová mapa obsahuje dvě klávesnice; na druhou klávesnici je možné přepnout držením AltGr (pravá klávesa Alt) nebo přeřazovačem ScrollLock. 44..33..22.. ŘŘeeššeenníí oodd ZZddeeňňkkaa KKaabbeellááččee Zdeněk Kabeláč kabi@fi.muni.cz ; 16. 9. 1998 Jedná se o pokračování modifikace varianty s pomocí Xmodmap (Viz např ); původní Xmodmap se nahradí novější variantou , čímž je v provozu přepínání mezi 3 klávesnicemi (zatím nevím jak to inteligentně hlásit --- svítící scroll-lock při variantě B i C není příliš srozumitelný): Varianta A --- čistá US klávesnice Scroll-lock přepíná klávesnici --- Win95 klávesa také. (Pro zájemce přepínání Ctrl+Shift :-)) Varianta B --- moje "klasická" česká --- tj. česky pouze 2, 3, ..., 0 jinak standard (tj. včetně +/=), vše ostatní přes mrtvé klávesy - využívá jednak standardní mrtvoly rozmístěné na F9-F12 (nejsou všechny) a využívá dead_iota na PrintScrn ve spojení s hack-em Compose - nedávno publikovaném na . Varianta C --- hnusný škaredý ošklivý hack --- nicméně funguje - měl by umožnit vkládat české znaky tam, kde je to nezbytně nutné a program to prostě jinou cestou nepodporuje --- např. staré verze netscape aj. (lze na to použít i LD_PRELOAD s několika hacknutými patchnutými funkcemi, ale tato varianta je přece jen jednodušší). Protože v této variantě nelze používat mrtvé klávesy, musel jsem naskládat standardně česky používané klávesy na F-keys --- velká písmena se píší se shiftem --- tj. klávesnice nepíše !@#$%^&*()_ a F1-F20 --- pokud jsou potřeba tyto znaky je potřeba se přepnout, napsat je, a přepnout se zpět. Samozřejmě nelze očekávat, že program sám od sebe neschopný pracovat s ISO-8859-2, začne tyto symboly korektně implementovat. Jde o hack, který prostě vrací místo dcaron -> idiaeresis, což je symbol ležící na stejné pozici, ale v sadě ISO-8859-1. Aby tedy bylo vidět správný výstup je potřeba špatně napsanému programu vnutit font --- což se nemusí vždy podařit - pak tedy sice budete psát správně, jenže uvidíte špatně :-) Všem se tu omlouvám, že jsem tu publikoval tento hack --- jsem proti němu, ale je to tak jednoduché a primitivní, že by bylo škoda se o této možnosti nezmínit. Pokud chce někdo nějaké standardní rozmístění psacího stroje, nechť si upraví Xmodmap, a pokud si myslí, že to udělal fakt sqěle, ať mi jej mailne. 55.. LLooccaalleess aanneebb llookkaalliizzaaccee kknniihhoovvnnyy lliibbcc Vladimír Michl michlv@risc.upol.cz , Petr Kolář Petr.Kolar@vslib.cz : 5. 1. 1999 Termínem "locale" nebo "locales" se rozumí lokalizace funkcí poskytovaných knihovnou libc nebo glibc. Vzhledem k tomu, že služby této knihovny používá většina programů, ovlivní se tím chování téměř celého systému. 55..11.. ÚÚččeell llooccaalleess aa jjeejjiicchh kkaatteeggoorriiee Locales umožňují, aby se jednotlivé programy chovaly podle národních zvyklostí: aby správně fungovalo rozlišování znaků na písmena, číslice a ostatní znaky, písmen na velká a malá, převody mezi malými a velkými písmeny (to jsou spíše záležitosti znakové sady než národních zvyklostí, ale i to je zahrnuto v locales), řazení (třídění) znaků a řetězců, aby programy používaly v dané zemi a jazyce obvyklý způsob zápisu peněžních údajů, výpisů čísel, data a času, názvů měsíců a dnů v týdnu. Locales úzce souvisí s katalogy zpráv, které umožňují, aby programy vypisovaly svá hlášení ve zvoleném jazyce. Vše je přitom možné měnit, aniž by bylo nutné programy rekompilovat! Lokalizaci libc je možné nastavit buď kompletní, nebo pouze pro vybrané kategorie. Kategorie locales jsou uvedeny v tabulce. Kategorie Význam LC_COLLATE Popisuje všechny znaky abecedy a určuje jejich pořadí při lexikografickém třídění. LC_CTYPE Používána pro dělení znaků do tříd jako: malá, velká písmena, oddělovače, apod.. LC_MESSAGES Používána pro zprávy zobrazované programy, tzv. katalogy zpráv. LC_MONETARY Definuje formátování výpisů peněžních informací. LC_NUMERIC Definuje formátování výpisů čísel. LC_TIME Formát výpisu času a data, názvy a zkratky měsíců a dnů v týdnu. Kategorie locales. Kategorie LC_COLLATE ovlivňuje chování funkcí strcoll() a strxfrm() pro porovnávání řetězců. Kategorie LC_CTYPE ovlivňuje chování funkcí deklarovaných v souboru ctype.h jako jsou isupper(), toupper(), ... a funkcí pro práci s vícebajtovými znaky jako jsou mblen(), wctomb(). Kategorie LC_MONETARY a LC_NUMERIC ovlivňují chování funkce localeconv(), na některých systémech bohužel i funkce ze skupiny printf(). Kategorie LC_TIME ovlivňuje chování funkce strftime(). 55..22.. ZZppůůssoobb nnaassttaavvoovváánníí llooccaalleess Převážná většina programů volá funkci setlocale(LC_ALL, ""), která inicializuje locales podle hodnot proměnných prostředí, jejichž názvy jsou stejné jako kategorie locales, a podle proměnných LC_ALL a LANG. V knihovně libc/glibc je vestavěn mechanismus, díky kterému se vyhodnocování, jaká lokalizace se má použít pro určitou kategorii, provádí následovně: Je-li nastavena proměnná LC_ALL, použije se její hodnota. Pokud nastavena není, pak se zkoumá nastavení proměnných LC_kategorie. Pokud není nastavena ani proměnná pro příslušnou kategorii, rozhoduje nastavení proměnné LANG. Není-li nastavena ani proměnná LANG, použije se implicitní hodnota "C". Některé programy (například man 1.x) nastavení proměnných LC_* ignorují a řídí se pouze podle proměnné LANG. Zmíněné proměnné se nastavují na hodnoty tvaru: jazyk[_ZEMĚ[.kódování]] nebo lépe na některou z přezdívek definovaných v souboru locale.alias --- to je czech pro češtinu, slovak pro slovenštinu. Díky přezdívce se hodnota převede na cs_CZ.ISO-8859-2 nebo sk_SK.ISO-8859-2, což udává jak kódování, tak jazyk a zemi. Locale soubory se díky mechanismu zabudovanému do knihovny libc hledají postupně v adresářích cs_CZ.ISO-8859-2, cs_CZ.iso88592, cs_CZ, cs.ISO-8859-2, cs.iso88592 a nakonec v cs. Zkratky jazyků stanovuje norma ISO 639, zkratky zemí norma ISO 3166 (viz kapitola ``příloha''). Kód češtiny je cs, slovenštiny sk, kód České republiky CZ, Slovenska SK. Země se uvádí z toho důvodu, že některými jazyky se mluví ve více zemích, ve kterých se například používá jiné měna. Poněkud matoucí je fakt, že kód češtiny se liší od kódu České republiky. Ale i mezi jazyky, které se používají v jediné zemi to není ojedinělý případ: podobně je to u da_DK (dánština, Dánsko), ja_JP (japonština, Japonsko). V případě cs_CZ je však o důvod ke zmatení více, protože kód češtiny je shodný s ISO kódem bývalého Československa. Přípona .kódování by měla sloužit k výběru správných locale informací na počítačích, které pro určitý jazyk podporují několik kódování (v Evropských podmínkách asi pouze ISO-8858-x a Unicode), nebo naopak určité kódování nepodporují (například ISO-8859-2). Bohužel v různých systémech se pro kódování používají různé řetězce, takže je možné se setkat se zápisy ISO-8859-2, ISO_8859-2, ISO8859-2, iso88592, za kterými ještě někdy bývá dvojtečka a rok přijetí standardu kódování ISO-8859-2. Pokud nemusíte, je lepší příponu .kódování vůbec nepoužívat. 55..33.. KKtteerréé kkaatteeggoorriiee llooccaalleess ppoouužžíívvaatt Přestože v mnoha návodech je lakonické sdělení "nastavte proměnnou LANG na cs_CZ" (nebo cs, někde dokonce ještě chybně cz), je užitečné se zamyslet, jestli skutečně chcete nastavovat všechny kategorie. Nemusí se vám například líbit lokalizovaný výpis příkazu ls -l, v němž mohou být rozhozeny sloupce kvůli různé délce zkratek názvů měsíců, některé programy nebo skripty mohou dokonce při nastavení LC_ALL nebo LANG špatně fungovat (zejména když na některých systémech nastavení locales ovlivňuje i takové funkce jako je printf()). Navíc autoři programů ne vždy dobře rozlišují (pokud už vůbec používají locales), kdy program produkuje výpisy pro uživatele a kdy výpisy pro další zpracování nějakým programem (například zápis do konfiguračního souboru). Ve druhém případě by se lokalizované funkce neměly používat. Bohužel u mnoha programů to lze těžko odlišit (typickým příkladem jsou řádkové příkazy jako příkaz ls -l, který může být jak vyvolán uživatelem, tak použit v jiném programu nebo skriptu). Při psaní skriptů by mělo být vždy zajištěno, že skripty budou fungovat i při rozličně nastavené lokalizaci. Pokud se ve skriptech očekává, že výstupy programů budou v nelokalizované formě, musí být na začátku skriptu uvedeny příkazy ______________________________________________________________________ LC_ALL=C; export LC_ALL LANG=C; export LANG ______________________________________________________________________ Nastavení proměnné LC_ALL by mělo být postačující; proměnná LANG se nastavuje, aby správně fungovaly i programy, které nesprávně používají pouze tuto proměnnou. PPrroo pprrááccii ssee zznnaakkoovvoouu ssaaddoouu IISSOO--88885599--22 jjee vveelliiccee vvhhooddnnéé mmíítt nnaassttaavveennéé ppřřiinneejjmmeennššíímm LC_CTYPE. Bez něj nebudou fungovat některé klávesnice v X, v textových editorech nebudou správně rozeznávány hranice slov (takže například slovo užovka nepůjde v editoru vi smazat příkazem dw, ale bude nutné použít 3dw, jako by se jednalo o tři slova). 55..44.. SSooffttwwaarroovvéé ppoožžaaddaavvkkyy Knihovna glibc (alias libc6 nebo libc2) funguje s locales vcelku bez problémů (od verze 2.0.7 obsahuje i české locales). To se však nedá říci o knihovně libc5. Ve v Linuxu poměrně rozšířené verzi libc-5.3.12 jsou právě v oblasti locales chyby, které při nevhodných hodnotách v sekci LC_TIME způsobí pád programu localedef. Obvykle se doporučuje libc verze alespoň 5.4.17. Na systémech, které mají libc i glibc je nutné u již přeložených programů zjistit, s jakou variantou knihovny libc pracují. Bohužel například v systému Red Hat 5.x příkaz ldd `which program` zcela bezostyšně lže. Dále je třeba mít odpovídající utility `localedef' a `locale', a pokud chcete překládat katalogy zpráv, tak také utility `gencat' a `msgfmt'. 55..55.. IInnssttaallaaccee Nejdříve zjistěte v jakém stavu má váš systém locales: Příkazem ______________________________________________________________________ localedef --help ______________________________________________________________________ zjistíte (podle řádku s textem System's directory for character maps:), v jakém adresáři jsou očekávány mapy znaků. U systémů s libc5 to bývá /usr/share/nls/charmap, u systémů s glibc /usr/share/i18n/charmaps. Další popis je psán pro systémy s libc5, protože uživatelé glibc systémů pravděpodobně už budou mít locales nainstalované. Pokud ne, musí si v následujícím popisu upravit cesty v příkazech podle vlastního systému. Pozor na 's', které ve jménech adresářů locale(s) a charmap(s) někde je a někde není! Pokud v tomto adresáři chybí soubor s popisem znakové sady ISO-8859-2 (zkuste žolíkový zápis ISO*8859-2*), budete si muset stáhnout soubor rozbalit jej do libovolného adresáře a z rozbaleného adresáře WG15-collection zkopírovat adresáře charmaps a locales včetně obsahu do adresáře, ve kterém se očekává adresář s mapami znaků: ______________________________________________________________________ cp -r WG15-collection/charmaps /usr/share/nls/charmap cp -r WG15-collection/locales /usr/share/nls/locale ______________________________________________________________________ Pokud už na vašem systému zmíněné soubory jsou, bude stačit nainstalovat pouze české nebo slovenské locales. Alespoň české by už měly být v glibc 2.0.7; a pokud jste instalovali českou klávesnici do X11 z balíku XKB-czsk-forcedIM*, máte české a slovenské locales už také nainstalované. O tom je možné se přesvědčit příkazem ______________________________________________________________________ locale -a | grep ^cs ______________________________________________________________________ Vždy je však vhodné stáhnout zdrojový soubor s českými locales a umístit jej do adresáře /usr/share/nls/locale. V mnoha balících je totiž stará verze tohoto souboru, ve které mimo jiné nemusí fungovat správně třídění. Zdrojový soubor s českými locales je nutné přeložit do binární podoby pro libc příkazy ______________________________________________________________________ cd /usr/share/locale mkdir -p cs_CZ/LC_MESSAGES localedef -c -i /usr/share/nls/locale/cs_CZ \ -f /usr/share/nls/charmap/ISO*8859-2* ./cs_CZ ______________________________________________________________________ pro glibc příkazy ______________________________________________________________________ mkdir -p /usr/share/locale/cs_CZ/LC_MESSAGES localedef -c -i /usr/share/i18n/locales/cs_CZ \ -f /usr/share/i18n/charmaps/ISO-8859-2 /usr/share/locale/cs_CZ ______________________________________________________________________ Výsledkem bude adresář /usr/share/locale/cs_CZ obsahující sadu souborů se jmény LC_* a adresář LC_MESSAGES. Výše uvedené příkazy můžete také použít, pokud se vám nelíbí, že v dodávaných českých locales jsou na místě zkratek jmen měsíců použity plné názvy, což způsobuje rozházení výpisu produkovaného příkazem ls -l. Stačí opravit názvy uvedené v sekci abmon ve zdrojovém souboru /usr/share/i18n/locales/cs_CZ a locales znovu přeložit. Pak už můžete nastavovat proměnné LC_CTYPE, LC_COLLATE nebo LC_ALL a LANG a kochat se, jak to funguje. Například aby správně fungovala klasifikace znaků, je třeba nastavit proměnnou prostředí LC_CTYPE. V shellech bash a ksh se to provede příkazem ______________________________________________________________________ export LC_CTYPE=cs_CZ ______________________________________________________________________ v csh a tcsh příkazem ______________________________________________________________________ setenv LC_CTYPE cs_CZ ______________________________________________________________________ a ve starších shellech vycházejících z Bourne shellu, sh, a jsh příkazem ______________________________________________________________________ LC_CTYPE=cs_CZ export LC_CTYPE ______________________________________________________________________ Pro nastavení všech kategorií locales je třeba nastavit proměnnou prostředí LANG nebo LC_ALL. Pokud chcete, aby česky byly pouze zprávy vypisované programy, nastavte proměnnou LC_MESSAGES: ______________________________________________________________________ export LC_MESSAGES=cs_CZ ______________________________________________________________________ 55..66.. JJaakk ttoo ffuunngguujjee Při nastavení některé z proměnných prostředí ovládajících locales se najde v souboru /usr/share/locale/locale.alias odpovídající hodnota, podle které se vybere adresář z /usr/share/locale (nebo se tento adresář vybere přímo). V adresáři odpovídajícím vybranému jazyku jsou binární soubory vygenerované příkazem localedef z textových locales. Jména souborů jsou následující: LC_COLLATE, LC_MESSAGES, LC_NUMERIC, LC_CTYPE, LC_MONETARY, LC_TIME. Pokud některý soubor smažete a vytvoříte místo něj adresář se stejným jménem, pak se po novém vygenerování souborů utilitou `localedef' soubor umístí do tohoto adresáře se jménem začínajícím předponou SYS_. Tohoto se nejčastěji využívá u LC_MESSAGES, kdy jsou do tohoto adresáře umísťovány katalogy zpráv pro různé programy. Katalog zpráv je soubor, v němž jsou umístěny všechny zprávy vypisované programem nebo skupinou programů a jehož záměnou lze docílit změny jazyka, kterým program komunikuje. V případě katalogů zpráv lze předepsat, kde se tyto katalogy mají hledat, pomocí proměnné prostředí NLSPATH. Např: export NLSPATH=/usr/share/locale/%L/LC_MESSAGES/%N.cat kde %N znamená jméno katalogu. %L znamená jméno lokalizace (kategorie LC_MESSAGES). Za oba tyto atributy si program dosadí správné hodnoty, když potřebuje informace o zvyklostech země. Pokud je třeba v NLSPATH zadat více adresářů, oddělují se dvojtečkou. 55..77.. KKaattaallooggyy zzpprráávv aanneebb pprrooggrraammyy kkoommuunniikkuujjííccíí ččeesskkyy Jedním z cílů lokalizace je umožnit, aby si uživatel mohl vybrat, v jakém jazyce budou jednotlivé programy vypisovat svá hlášení, menu, apod., a to bez rekompilace programů. Aby to bylo možné, musí být texty všech zpráv, které program produkuje, z něj vytaženy a umístěny v nějakém externím souboru (katalogu zpráv). Jeho záměnou za jiný se dosáhne změny všech zpráv. V současné době se používají dva způsoby jak to provést: ˇ a) Použití katalogových služeb libc. ˇ b) Použití GNU gettextu (tyto služby budou integrovány v knihovně glibc-2 neboli libc-6) ad a) Starší a také při programování pracnější řešení. Paralelně s programem je třeba vytvářet textový katalog zpráv, ze kterého se nakonec pomocí `gencat' vytvoří katalog v binárním tvary (který mívá příponu .cat). Pro přístup do katalogu se v programu používají funkce catopen, catclose, catgets (popis viz man). ad b) Novější řešení, jednodušší pro tvorbu a údržbu programů. Pro jeho použití je nutný balík gettext. V programu se pak každá zpráva, kterou vypisuje, napíše jako argument funkce gettext. Po změně programu pak stačí vygenerovat seznam všech zpráv, které jsou v programu, a tyto zprávy přeložit. Nový katalog lze také spojit se starým, již přeloženým. Zdrojový tvar katalogu se pro použití programem převádí do binárního tvaru tzv. objektu zpráv (soubor mívá příponu .mo nebo .gmo) utilitou `msgfmt'. Při obou postupech se výsledný katalog zpráv umístí do adresáře /usr/share/locale/cs_CZ.*/LC_MESSAGES. 55..77..11.. PPooččeeššťťoovváánníí Nejprve je třeba zjistit, zda je aplikace napsaná internacionálně. To lze několika způsoby: ˇ pomocí příkazu strace zjistíme, zda se aplikace snaží někde hledat katalog zpráv. Před spuštěním však musíme mít nastavenu proměnnou prostředí LANG nebo LC_ALL na příslušný jazyk --- např: export LC_ALL=cs_CZ. ˇ podíváme se do zdrojáků a hledáme katalogy zpráv. Mívají přípony .msg, .m, .cat, .pot, .po . Pokud aplikace internacionálně napsaná není, pak máme smůlu, nebo ji můžeme upravit. Je-li internacionálně napsaná, je třeba zjistit, který ze dvou výše popsaných, pak může používat jeden ze dvou mně známých způsobů a to: 1. funkce knihovny libc (catopen, catclose, catgets) 2. GNU gettext (integrován do GNU libc 2.xx (libc-6)) 55..77..22.. FFuunnkkccee kknniihhoovvnnyy lliibbcc Tento způsob je starší a pravděpodobně přenositelnější na jiné operační systémy. Všechny zprávy z programu jsou vytaženy do katalogu (mívá příponu .msg, .m), který může být rozdělen na několik částí. Katalog vypadá následovně: $set cislo #Nazev $ #Jmeno_zpravy1 dále poznámky, třeba originální zpráva # Vlastní zpráva 1 $ #Jmeno_zpravy2 dále poznámky, třeba originální zpráva # Vlastní zpráva 2 ... Řádky které začínají znakem '$', nejsou umístěny do výsledného katalogu. '$set cislo #Nazev' je příkaz, který udává číslo množiny a její symbolický název. Tímto musí začínat každý katalog. Dále pokračujeme vždy po dvou řádcích, přitom první řádek je nepovinný, pouze definuje symbolické jméno zprávy. $ #Jmeno_zpravy1 dále poznámky, třeba originální zpráva # Vlastní zpráva 1 Takže pokud máme napsán katalog, můžeme jej zkompilovat příkazem gencat, jehož syntaxe je: gencat [-new] [-or] [-lang C|C++|ANSIC] catfile msgfile [-h ]... -new generuje nový katalog -lang pro jaký jazyk má být vytvořen hlavičkový soubor catfile jak se má jmenovat katalog msgfile soubor zpráv -h hlavičkový_soubor generovat hlavičkový soubor tohoto jména Po kompilaci již máme výsledný katalog, který pak stačí umístit do adresáře s ostatními katalogy. !!!POZOR!!! Pokud překládáme katalog z jiného jazyka, je třeba zachovat pořadí i počet zpráv. Příklad: Uděláme malý příklad použití tohoto způsobu: 1. Napíšeme program test.c #include #include #include #include #include "test-cat.h" char main() { nl_catd cfd; setlocale(LC_MESSAGES, ""); cfd = catopen("test", MCLoadBySet); printf("%s\n", catgets(cfd, TestlistSet, TestlistWelcome, "Welcome in test program")); /* "Welcome in test program" se vypíše v~případě, že zpráva není v~katalogu nalezena, nebo katalog nebyl nalezen */ printf("%s\n", catgets(cfd, TestlistSet, TestlistAuthor, "Author: Vladimir Michl")); catclose(cfd); return 0; } 2. Napíšeme soubor zpráv test.m: $set 10 #Testlist $ #Welcome # Vítejte v~testovacím programu $ #Autor # Autor: Vladimir Michl 3. Zkompilujeme soubor zpráv do katalogu: gencat -new -lang C test.cat test.m -h test-cat.h 4. Program přeložíme: gcc -o test test.c 5. Umístíme katalog do adresáře s českými katalogy a nastavíme proměnnou NLSPATH do tohoto adresáře mv test.cat /usr/share/locale/cs_CZ.iso88592/LC_MESSAGES export NLSPATH=/usr/share/locale/%L/LC_MESSAGES/%N.cat 6. Nastavíme proměnnou LC_ALL a spustíme test LC_ALL=C test LC_ALL=cs_CZ.ISO-8859-2 test 55..77..33.. GGNNUU ggeetttteexxtt K tomuto způsobu je třeba si stáhnout GNU gettext z nějakého FTP. Já osobně považuji tento způsob za daleko lepší než první. Katalogy zpráv bývají ve dvou tvarech a to s příponou .pot a .po. S příponou .pot jsou to pouze zprávy vytažené ze zdrojáků, kdežto soubory s příponou .po jsou soubory, které již mají alespoň některé zprávy přeložené. .po soubor má následující strukturu: ˇ Řádky začínající znakem # jsou komentářem. ˇ Řádky které začínají řetězcem #: jsou odkazy, kde se řetězec vyskytuje ve zdrojovém kódu. ˇ Řádkem msgid "xxxxxx" nebo msgid "" začíná původní řetězec uvedený ve zdrojovém kódu. ˇ Řádkem msgstr "xxxxxx" nebo msgstr "" začíná přeložený řetězec. ˇ Řádky začínající řetězcem #, informují o stavu překladu nebo formátu. Výjimku tvoří první dvojice msgid a msgstr, kde se uvádí informace o konkrétním katalogu. Příklad .po souboru: # Czech translations for the GNU gettext messages # Copyright (C) 1996 Free Software Foundation, Inc. # Vladimir Michl , 1997. # Version: 1.1 # msgid "" msgstr "" "Project-Id-Version: fileutils 3.15a\n" "POT-Creation-Date: 1997-01-26 00:26-0600\n" "PO-Revision-Date: 1997-04-23 20:21+0200\n" "Last-Translator: Vladimir Michl \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8-bit\n" #: src/chgrp.c:144 msgid "group number" msgstr "číslo skupiny" #: src/chgrp.c:290 src/chmod.c:234 src/chown.c:254 src/cp-aux.c:86 #: src/dd.c:1121 src/df.c:576 src/dircolors.c:121 src/du.c:238 #: src/install.c:625 src/ln.c:347 src/ls.c:2805 src/mkdir.c:70 src/mkfifo.c:68 #: src/mknod.c:79 src/mv.c:407 src/rm.c:543 src/rmdir.c:94 src/sync.c:46 #: src/touch.c:262 msgid "" "\n" "Report bugs to fileutils-bugs@gnu.ai.mit.edu" msgstr "" "\n" "Popis chyb zasílejte na adresu fileutils-bugs@gnu.ai.mit.edu (pouze " "anglicky),\n" "popis chyb v~překladu zasílejte na adresu cs@li.org" Pokud se těsně před msgid vyskytne řádek #, fuzzy, pak je tento řetězec považován za neúplně přeložený. Např: #, fuzzy msgid "OK" msgstr "xxx" Pro práci s katalogem existuje několik utilit: ˇ xgettext pro vytvoření katalogu zpráv ze zdrojových kódů ˇ msgcmp k porovnání dvou katalogů zpráv ˇ msgmerge ke spojení starého přeloženého katalogu s katalogem novým, nepřeloženým ˇ msgfmt ke kompilaci katalogu zpráv do binárního formátu ˇ msgunfmt k dekompilaci Zkompilované katalogy musí mít příponu .mo. Příklad použití: 1. Napíšeme program test.c #include #include #include #define PACKAGE "test" #define LOCALEDIR "/usr/share/locale" char main() { setlocale(LC_MESSAGES, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); printf("%s\n", gettext("Welcome in test program")); printf("%s\n", gettext("Author: Vladimir Michl")); return 0; } 2. Vytvoříme katalog zpráv použitím příkazu xgettext xgettext test.c 3. Přeložíme zprávy a vyplníme hlavičku v souboru messages.po. Výsledek bude vypadat takto: # Czech translation of test. # Vladimir Michl , 1997. # msgid "" msgstr "" "Project-Id-Version: test 1.0\n" "POT-Creation-Date: 1997-05-02 16:28+0000\n" "PO-Revision-Date: 1997-05-02 18:00+0200\n" "Last-Translator: Vladimir Michl \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" #: test.c:13 msgid "Welcome in test program" msgstr "Vítejte v~testovacím programu" #: test.c:14 msgid "Author: Vladimir Michl" msgstr "Autor: Vladimír Michl" 4. Katalog přeložíme msgfmt -v -o test.mo messages.po 5. Přeložíme zdroják gcc -o test test.c -lintl 6. Přeložený katalog umístíme do adresáře s katalogy a spustíme program mv test.mo /usr/share/locale/cs_CZ.iso88592/LC_MESSAGES LC_ALL=C test LC_ALL=cs_CZ.ISO-8859-2 test 55..77..44.. ZZddrroojjee iinnffoorrmmaaccíí Manuálové stránky: catopen(3), catclose(3), catgets(3), locale(7), setlocale(3) Info stránky: gettext 55..77..55.. DDoossttuuppnnéé kkaattaallooggyy Přehled programových balíků, které jsou lokalizovány i které na lokalizaci teprve čekají naleznete na . Katalogy je možné získat na nebo . Katalogy pro LyX jsou na . Pro KDE jsou české a slovenské katalogy k dispozici v podadresářích po/cs/ a po/sk/ jednotlivých adresářů na . 55..77..66.. PPřříílloohhyy Některé kódy jazyků podle normy ISO 639 : arabština `ar', čínština `zh', čeština `cs', dánština `da', holandština `nl', angličtina `en', Esperanto `eo', finština `fi', francouzština `fr', hebrejština `he', němčina `de', řečtina `el', maďarština `hu', irština `ga', italština `it', indonéština `id', japonština `ja', korejština `ko', latina `la', norština `no', perština `fa', polština `pl', portugalština `pt', ruština `ru', slovenština `sk', slovinština `sl', španělština `es', švédština `sv', turečtina `tr', ukrajinština `uk'. Některé kódy zemí podle normy ISO 3166 : Česká republika `CZ', Slovensko `SK', Německo `DE', Francie `FR', Polsko `PL', Rakousko `AT', Spojené státy `US'. 66.. LLookkaalliizzaaccee rrůůzznnýýcchh aapplliikkaaccíí Pro lokalizaci některých programů národní klávesnice, fonty a lokalizace knihovny libc nestačí. Tato kapitola popisuje, co je potřeba dále udělat, aby jednotlivé programy správně pracovaly v českém (případně slovenském) prostředí. Část programů není ochotna ani s nastavenými locales zpracovávat osmibitové znaky bez zvláštního nastavení. Většina poštovních a newsových programů vyžaduje informaci o explicitně kódování apod.. Většina popisů v této kapitole předpokládá, že na počítači už je nainstalovaná národní klávesnice, ISO-8859-2 fonty a české nebo slovenské locales. 66..11.. BBaasshh Aby bylo možné v příkazových řádcích shellu bash zadávat a používat ne-ASCII znaky, je třeba v souboru $HOME/.inputrc nebo v /etc/profile uvést první tři z následujících příkazů: set meta-flag on set convert-meta off set output-meta on "\e[1~": beginning-of-line "\e[3~": delete-char "\e[4~": end-of-line Další tři řádky slouží ke zprovoznění kláves Home, Delete a End při editaci příkazových řádků. 66..22.. TTccsshh Petr Kolář Petr.Kolar@vslib.cz : 16. 5. 1999 Pro vstup ne-ASCII znaků je nutné, aby byl tcsh přeložen s volbami 8b a nls (lze zjistit příkazem echo $version). Bohužel tcsh ignoruje nastavení proměnné prostředí LC_ALL, a řídí se pouze proměnnými LC_CTYPE a LANG. Ve starších verzích tcsh akceptoval osmibitové znaky při jakémkoli nastavení těchto proměnných (takže stačilo pouhé setenv LANG nebo setenv LC_CTYPE bez udání hodnoty), ve verzi 6.08.00 se tyto proměnné skutečně používají pro nastavování locales, takže při dosti častém nastavení LC_ALL=cs_CZ a LANG=cs tcsh považuje ne-ASCII znaky za netisknutelné a nenačítá je, protože kategorie LC_CTYPE je definována pouze v locale cs_CZ. Řešením je nastavit ______________________________________________________________________ setenv LC_CTYPE cs_CZ ______________________________________________________________________ Aby fungovaly při editaci příkazových řádků klávesy Home, End a Delete, je nutné do souboru /etc/csh.cshrc přidat řádky if ("$term" == "xterm" || "$term" == "vt100" \ || "$term" == "vt102" || "$term" !~ "con*") then # bind keypad keys for console, vt100, vt102, xterm bindkey "\e[1~" beginning-of-line # Home # bindkey "\e[2~" overwrite-mode # Ins bindkey "\e[3~" delete-char # Delete bindkey "\e[4~" end-of-line # End endif --- Tato informace sice nesouvisí s lokalizací, ale je natolik praktická, že stojí za to ji uvést na tomto místě. 66..33.. XXTTeerrmm Pokud se někomu nepodaří zprovoznit klávesnice v X11, je možné alespoň pomocí translations v app-defaults nastavit požadované rozložení kláves pro program xterm. Programy, které si otevírají vlastní okna, tato klávesnice neovlivní. Nouzově lze do těchto programů vlepovat český text z okna xtermu pomocí operace Copy-and-paste, ale pro rozumnou práci je nutné provést lokalizaci celých X. Vcelku spolehlivě funguje počeštění programu xterm pomocí app-defaults z adresáře X11/xterm z balíku cs-tools. Mělo by fungovat i pro různé X-servery. Bohužel například u XFree86 (nebo je to záležitost verze X?) došlo někde mezi verzemi 3.1.2 a 3.3.2 ke změně, kvůli které je nutné v souborech XTerm* nahradit ve všech řádcích obsahujících Shift velké_písmeno toto velké_písmeno příslušným malým písmenem. Takto upravené soubory fungují na nových i starších verzích; původní soubory pouze na starších verzích. 66..44.. RRxxvvtt Radim Halíř halir@ms.mff.cuni.cz ; 24. 6. 1998 V Rxvt funguje česká klávesnice od verze 2.4.9. Poslední verzi rxvt lze sehnat na . V čem byl problém? Následující text lze použít jako návod na úpravu dalších vzdorných programů: Rxvt dostupný v RedHatu i Debianu s češtinou korektně nefunguje (a ani nemůže) a je potřeba jej upravit a znovu přeložit. Při použití "developer" verze 2.4.6, která je k mání na lze použít následující patche: *** configure.OLD Wed May 6 13:37:12 1998 --- configure Wed May 6 14:20:34 1998 *************** *** 3108,3114 **** cat > conftest.$ac_ext < int main() { setlocale(LC_CTYPE, ""); --- 3108,3113 ---- *** command.c.OLD Wed May 6 15:50:01 1998 --- command.c Thu May 7 09:03:30 1998 *************** *** 44,50 **** # if (XtSpecificationRelease < 6) # define NO_XLOCALE # else - # define X_LOCALE # include # endif #endif /* NO_XLOCALE */ --- 44,49 ---- *************** *** 1103,1111 **** Input_Context = NULL; ! # ifdef MULTICHAR_SET ! setlocale(LC_CTYPE, ""); ! # endif if (rs_inputMethod == NULL # ifndef KANJI --- 1102,1108 ---- Input_Context = NULL; ! setlocale(LC_ALL, ""); if (rs_inputMethod == NULL # ifndef KANJI ------------------------------------------------------------------------------- Jak je vidět, základní problém je v tom, že se volání funkce setlocale() zakompiluje pouze je-li při překladu definován symbol MULTICHAR_SET. Bez této funkce si o češtině můžeme nechat jen zdát... Po aplikaci záplaty stačí standardní cyklus configure; make; make install. Pak už jen mít správně nastavené české locale... Problém s tím, že se na začátku nevolá setlocale(), nemá jen rxvt. Stejně "ne-internacionálně" se chová i nxterm, xjed a další. Pouhé přidání setlocale(LC_CTYPE, "") však obvykle postačuje pouze u programů, které neotvírají vlastní okna v prostředí X11 a které nepracují s vícebajtovými znaky. Pro opravy programů určených pro prostředí X11 je možné se inspirovat například ve zdrojových textech programu xterm na (volání funkce XtSetLanguageProc (NULL, NULL, NULL) v main.c a tělo funkce VTInitI18N() v charproc.c) nebo ve zdrojových textech editoru fte upravených Zdeňkem Kabeláčem pro použití IM z , soubor src/con_i18n.cpp. 66..55.. LLss Aby příkaz ls nevypisoval místo ne-ASCII znaků ve jménech souborů otazníky, je nutné používat ls -N. 66..66.. LLeessss Program less implicitně zobrazuje znaky s kódy >= 128 jako šestnáctkové kódy uzavřené mezi znaky <> (např. znak Č jako ) a řídící znaky ve formě ^x (například znak control-A (s kódem 1) zobrazí jako ^A). Novější verze zobrazují osmibitové znaky, pokud jsou nastaveny locales (LC_CTYPE nebo LANG). Pro starší verze je možné použít parametr -r, nastavit proměnnou prostředí LESS na -r, nastavit proměnnou prostředí LESSCHARSET na latin1 (v tomto případě zcela vyhovuje i pro ostatní kódy ISO-8859-x), nebo nastavit proměnnou LESSCHARDEF podle popisu na manuálové stránce. Místo nastavování proměnných prostředí je možné zadat požadované hodnoty v sekci #env souboru $HOME/.lesskey: #env LESSCHARSET = latin1 a příkazem lesskey tento soubor přeložit na konfigurační soubor pro less --- $HOME/.less. Pozor: Pokud zobrazovaný soubor obsahuje řídící znaky, pak při nastavení pomocí -r program less neví, jak opravdu vypadá výsledek na obrazovce, a může například špatně zalamovat řádky. 66..77.. GGrrooffff Pro lokalizaci balíku groff je nutné, aby podporoval kódování ISO-8859-2. Úprava groff-latin2 vytvořená Henrykem Paluchem a Janem Kasprzakem je k dispozici na pod názvem groff- latin2. Aby groff používal správnou znakovou sadu, je nutné nastavit proměnnou prostředí GROFF_TYPESETTER na hodnotu latin2. Postscriptový tisk v kódu ISO-8859-2 z groffu není pravděpodobně dosud vyřešen. Dále je třeba nastavit české dělení slov. Program groff používá TeXové vzory dělení. Následující příkaz zkopíruje soubor, který tyto vzory dělení obsahuje a odstraní vše kromě obsahu příkazu \patterns (za posledním vzorem vypustí vše počínaje uzavírací složenou závorkou): ______________________________________________________________________ awk '/\\patterns{/, /}/' /usr/share/texmf/tex/generic/hyphen/czhyph2e.tex \ | sed -e 's/^.*\\patterns{//' -e 's/}.*//' -e '/^$/d' \ > /usr/lib/groff/tmac/hyphen.cs ______________________________________________________________________ Pak je nutné v souboru /usr/lib/groff/tmac/troffrc změnit řádek .do hla us na .do hla cs a řádek .do hpf hyphen.us na .do hpf hyphen.cs. 66..88.. JJooee Na adrese je patch, který zajistí, že editor joe bude používat locales. Upravený joe umí se správně nastavenými locales pracovat s osmibitovými znaky i bez nastaveného parametru -asis a navíc správně rozeznává hranice slov s diakritikou. Pro češtinu je vhodné spouštět editor s parametrem -french nebo odstranit mezeru před touto volbou v souboru /usr/lib/joe/joerc nebo $HOME/.joerc, aby joe při přeformátovávání textu dával za interpunkci na konci věty pouze jednu mezeru. Bez zmíněného patche je nutné nastavit volbu -asis (tak jak je popsáno u -french), aby bylo možné pracovat se znaky s kódy většími než 127. Potom však joe písmena s diakritikou nepokládá za písmena, takže například slovo uživatel považuje za tři slova. 66..99.. MMiiddnniigghhtt CCoommmmaannddeerr Petr Staněk 'Šnek' snek@penguin.cz , Vítězslav Samel xsamel00@dcse.fee.vutbr.cz a další Midnight Commander používá rámečky, které jsou v českých fontech na jiném místě, proto vypadá, tak jak vypadá. Tento problém je možno vyřešit malou úpravou některého českého fontu (ale potom to už doopravdy NEBUDE český font, protože bychom museli upravit i znaky na místě písmenek Ú a dalších). Jeden takto upravený font pro linuxovou konzolu je k dispozici někde na ftp.inet.cz. Aby Midnight Commander (dále jen MC), správně zobrazoval české fonty, je nutné spustit MC s parametrem -m, a nastavit v "Options/Display bits" volbu "(*) Full 8 bits" (platí pro starší verze MC). Spouštění mc -m lze automatizovat dopsáním alias mc='mc -m' do souboru ~/.bashrc nebo ~/.cshrc, podle toho, jaký shell používáte. V případě novějšího MC (testována verze 4.1) se musí nastavit v "Options/Display bits" volba "(*) Full 8 bits output". K tomu, aby šlo psát české znaky, je také nutno zapnout volbu "[x] Full 8 bits input". Poznámka: MC používá editor, jehož jméno je uvedeno v proměnné prostředí EDITOR, implicitně vi. Pokud tedy chcete používat například editor joe bez úpravy pro podporu locales, přidejte do svého $HOME/.bash_profile řádek export EDITOR='joe -asis'. 66..1100.. DDaattaabbáázzee MMyySSQQLL Autor informací: Jan Pazdziora adelton@fi.muni.cz , 2001 Přímo v distribuci MySQL je obsažena podpora pro české řazení. Je ale nutno mít server patřičně zkompilován. Buďto bude server podporovat pouze české řazení, pak je nutno volat ./configure s volbou --with- charset=czech. V tomto případě budou standardně všechna třídění na znakových sloupcích respektovat českou normu. Pokud při kompilování použijeme parametr --with-extra-charsets=all či jinak zajistíme, že server bude znakových sad a řazení podporovat více, je pak možno defaultní třídění zvolit při startu serveru parametrem --default-character-set=czech. Při změně ovšem pozor také na nutnost přegenerovat indexy, viz kapitola 10.1.1 dokumentace MySQL. Řazení používá znakovou sadu ISO-8859-2. Pokud jsou Vaše data v kódování Windows-1250 (typicky na to lidé přijdou tehdy, když se jim slova s š a ž řadí jinam, než kam by chtěli), je možno použít převádění znakových sad mezi klientem a serverem. Na to je nutné mít server zkompilován s podporou převodů těchto znakových sad, nejjednodušší je v souboru sql/convert.cc odkomentovat definici ______________________________________________________________________ /* #define DEFINE_ALL_CHARACTER_SETS */ ______________________________________________________________________ a pak v klientovi provést příkaz ______________________________________________________________________ SET CHARACTER SET cp1250_latin2 ______________________________________________________________________ Klient pak zapisuje a čte data ve Windows-1250, server je interně ukládá v ISO-Latin-2. Mimo distribuci MySQL, na URL je k dispozici knihovna udf_charsets, která definuje nové funkce il2_to_ascii, il1_to_ascii, cp1250_to_ascii, il2_to_cp1250 a cp1250_to_il2 pro ořezávání diakritiky a pro převod mezi typickými znakovými sadami. Instalace a použití je v balíku v souboru README. 66..1111.. PPeerrll Autor informací: Jan Pazdziora adelton@fi.muni.cz , 2001 Verze 5.004 a vyšší umí zpracovat informaci o nastavených locales, použijeme-li ______________________________________________________________________ use locale; ______________________________________________________________________ nebo na příkazovém řádku při spuštění interpretu -Mlocale. Jsou-li locales chybně nainstalované (nebo máme nesmyslné hodnoty proměnných prostředí), dostaneme po ______________________________________________________________________ perl -Mlocale -e 1 ______________________________________________________________________ chybové hlášení a můžeme tak perl použít i na test, že vše je v našem systému s locales v pořádku. Nastavení locales se projeví při typických manipulacích s řetězci a s regulárními výrazy, například ______________________________________________________________________ perl -Mlocale -e '$_="maličký ježeček"; s/\W/-/g; print "$_\n";' ______________________________________________________________________ při nastaveném LC_CTYPE, LC_ALL či LANG vytiskne maličký-ježeček, jinak nahradí pomlčkami i písmena s diakritikou. 66..1122.. KKDDEE Mělo by stačit mít nainstalované locales a proměnnou prostředí LC_CTYPE (nebo LANG) nastavenou na cs_CZ. 66..1133.. TTeellnneett Pro používání osmibitových znaků je nutné buď přepnout telnet do binárního režimu nebo použít následující řádek v $HOME/.telnetrc: localhost set outbinary true stroj.domena.cz set outbinary true jiny.jinde.cz set outbinary true 66..1144.. RRllooggiinn Pro umožnění osmibitového přenosu v programu rlogin slouží volba -8. 66..1155.. NNaassttaavveenníí tteerrmmiinnáállůů stty cs8 -istrip -parenb 66..1166.. SSaammbbaa Pro používání národních znaků ve jménech souborů (pro spolupráci s Windows-95 nezbytně nutné, protože už při vytvoření nové složky je v jejím jméně použita diakritika) je nutné mít Sambu verze nejméně 1.9.18 (vzhledem k bezpečnostním dírám je vhodné mít vždy poslední verzi) a uvést v konfiguračním souboru /etc/smb.conf řádky client code page = 852 character set = iso8859-2 66..1177.. LLyynnxx Od verze 2.5 umí pracovat se stránkami v kódování ISO-8859-2. Změnu kódování lze provést ručně pomocí volby O)ptions -> display (C)haracter set, nebo v konfiguračním souboru $HOME/.lynxrc (soubor lze získat zadáním > po výběru volby O)ptions) změnou řádku character_set na character_set=ISO Latin 2 nebo pro všechny uživatele v souboru /usr/local/lib/lynx.cfg respektive /etc/lynx.cfg změnit řádek CHARACTER_SET na CHARACTER_SET:ISO Latin 2 případně ještě ASSUME_CHARSET:iso8859-2 ASSUME_LOCAL_CHARSET:iso8859-2 Od verze 2.8 by měl být schopen korektně zobrazovat jak stránky v kódování ISO-8859-2, tak Windows-1250 (pokud mají správně uvedené kódování v hlavičce Content-Type:). Další nastavení už nesouvisejí s lokalizací: Pro zkrácení doby výpisu hlášení lze dále změnit: INFOSECS:1 MESSAGESECS:1 ALERTSECS:1 Pro prohlížení obrázků pomocí lynxu je třeba nastavit MAKE_LINKS_FOR_ALL_IMAGES:TRUE a pro spouštění na konzole zkopírovat /etc/mailcap.vga do $HOME/.mailcap. Lynx pak bude používat prohlížeč zgv. 66..1188.. FFvvwwmm9955 Petr Staněk 'Šnek' snek@penguin.cz ; 1997 Fvwm95 je virtuální manažer oken, který se vzhledově podobá M$ Win95. Pro zobrazování českých znaků je nutno upravit konfigurační soubor fvwm95. Má-li být úprava provedena pouze pro jednoho uživatele zkopírujeme konfigurační soubor do jeho domácího adresáře jako ~/.fvwm2rc95 a provedeme potřebné úpravy: ______________________________________________________________________ cp /etc/X11/fvwm95-2/fvwm2rc95 ~/.fvwm2rc95 ______________________________________________________________________ Předpokládá se, že máte nainstalovanou podporu češtiny pro X11, včetně českých fontů. (viz popis 2.2. XFREE 3.2) Úprava souboru $HOME/.fvwm2rc95 spočívá v: 1. nastavením iso-8859-2 fontů pro písma oken, ikon a menu WindowFont -adobe-helvetica-*-r-*-*-*-120-*-*-*-*-iso8859-2 IconFont -misc-fixed-*-r-*-*-*-120-*-*-*-*-iso8859-2 MenuFont -adobe-helvetica-*-r-*-*-*-120-*-*-*-*-iso8859-2 2. počeštění dialogu při práci s okny AddToMenu "Window-Ops2" "&Obnovit%mini-ray.xpm%" Iconify -1 + "&Přesunout%mini-move.xpm%" Move-or-Raise + "&Velikost%mini-resize.xpm%" Resize-or-Raise + "Mi&nimalizovat%mini-lower.xpm%" Iconify 1 + "Ma&ximalizovat%mini-max1.xpm%" Maximize 100 100 + "" Nop + "&Zabít%mini-bomb.xpm%" Destroy + "&Ukončit Alt+F4%mini-stop.xpm%" Delete 3. nastavením iso-8859-2 fontů pro modul "Pager" *FvwmPagerFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-iso8859-2 4. nastavením iso-8859-2 fontů pro modul "fvwm buttons" *FvwmButtonsFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-iso8859-2 5. nastavením iso-8859-2 fontů pro modul "Identity" *FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-2 6. nastavením iso-8859-2 fontů pro modul "FvwmWinList" *FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-iso8859-2 7. nastavením iso-8859-2 fontů pro modul "TaskBar" ### Font tlačítka na TaskBaru bez výběru (vystouplý) *FvwmTaskBarFont -adobe-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-2 ### Font tlačítka na TaskBaru vybraného (zamáčknutý) *FvwmTaskBarSelFont -adobe-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-2 Ukázkové menu je možno najít na URL 66..1199.. AAfftteerrsstteepp Rudolf Ulč rudolf.ulc@oku-st.cz ; 14. 12. 1998 Window manažer Afterstep používá pro konfiguraci svého menu program wmconfig (viz man wmconfig). V souboru menu /etc/X11/wmconfig/xterm-color upravíme volání xterm- color: xterm-color exec "xterm -fn -misc-fixed-medium-r-semicondensed-sans-13-120-75-75-c-60-iso8859-2 &" Obdobně je třeba upravit řádek pro vyvolání Emacsu v /etc/X11/wmconfig/emacs (místo xterm a xterm-color bude emacs). Protože menu Afterstepu se skládá ze dvou částí, je třeba také upravit v souboru /usr/share/afterstep/wmconfig.conf řádek obsahující volání exec xterm -fn &. Totéž (ovšem bez úvodního exec) je třeba udělat v konfiguraci Wharfu a Zharfu v souborech /usr/share/afterstep/wharf a /usr/share/afterstep/zharf. Protože klávesová kombinace Alt-Q používaná v Afterstepu pro přepínání mezi okny koliduje s funkcí přeformátování odstavce v Emacsu, je třeba změnit kombinaci pro přepínání oken například na Alt-Shift-Q takto: ve všech souborech v adresáři /use/share/afterstep/feels v části Windows- alike keys uděláme tuto změnu: #alt + shift + q = return to window Key q A~SM WarpBack Potom je ještě třeba donutit Afterstep, aby vytvořil kompletní nový obsah adresáře GNUstep. To lze zajistit smazáním adresáře $HOME/GNUstep, který bude při příštím startu Afterstepu automaticky znovuvytvořen se správným obsahem. 66..2200.. SSttaarr OOffffiiccee Návod na úpravu Star Office verze 3.1, 4.0 a 5.0 pro češtinu je na . 66..2211.. AApppplliixxwwaarree Jan Derfiňák ja@demax.sk ; 14. 12. 1998 Zprovoznění české klávesnice v Applixware je trochu magie. Následující postup byl vyzkoušen na RedHat 5.2 s XKB-czsk-forcedIM a s applix-4.3-2 (funguje-li někomu i s jinými verzemi, dejte mi prosím vědět): Přes ujišťování, že nastavování proměnné _XKB_CHARSET nemá pro novou verzi XKB význam, pro Applixware je nezbytné nastavit tuto proměnnou na hodnotu iso8859-2. Je vhodné to udělat ve spouštěcím skriptu /opt/bin/applix. Je též nutné nastavení XLIB_FORCE_I18N=2 a LC_CTYPE nebo LC_ALL (nejlépe na hodnotu cs_CZ nebo czech). Pro zprovoznění mrtvých kláves je nutné spustit například Word, otevřít menu File --- Save As a v položce File: napsat libovolné písmeno s mrtvou klávesou. Pak už by měly mrtvé klávesy fungovat v celém Applixu. Applixware 4.4.1 vzdoruje české klávesnici ještě více než předchozí verze. Mělo by fungovat řešení popsané v poslední části stránky viz . 66..2222.. EEllmm Pokud jenom potřebujete poštovní program s podporou MIME, zkuste program mutt. Aby bylo možné odesílat dopisy obsahující národní znaky, je nutné vytvořit soubor $HOME/.elm/elmheaders, ve kterém jsou definovány hlavičky, které mají být přidávány do dopisů: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8bit Pro plnou podporu MIME je třeba nainstalovat elm ve verzi ME, kterou lze získat na nebo . V některých verzích programu elm lze zadat volby přímo v souboru $HOME/.elm/elmrc: charset = iso-8859-2 displaycharset = iso-8859-2 textencoding = 8bit 66..2233.. MMeettaammaaiill Metamail je program pro zobrazování MIME zpráv, který je vyvoláván z poštovních programů. Není to samostatný poštovní program. Pro jeho používání je nutné nastavit proměnnou prostředí MM_CHARSET na ISO-8859-2. 66..2244.. MMuutttt Poštovní program mutt podporuje MIME a znakové sady ISO-8859-x. V konfiguračním souboru $HOME/.muttrc je nutné pouze uvést používané kódování: set charset="iso-8859-2" 66..2255.. PPiinnee V konfiguračním souboru /usr/local/lib/pine.conf, /etc/pine.conf nebo $HOME/.pinerc je třeba uvést používané kódování: character-set=ISO-8859-2 66..2266.. TTiinn Jan Vyčudilík hv@uhkt.cz : 17. 3. 1999 Pro odesílání osmibitových zpráv je nutné uvést následující volby v konfiguračním souboru $HOME/.tin/headers: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 8bit 66..2277.. SSllrrnn V konfiguračním souboru /usr/lib/slrn/slrn.rc nebo $HOME/.slrnrc nastavte set use_mime 1 set mime_charset "iso-8859-2" 66..2288.. NNnn V souboru $HOME/.nn/init je nutné uvést: set data-bits 8 Program nn pravděpodobně negeneruje správné MIME hlavičky - nevyzkoušeno. 66..2299.. DDlloouuhháá jjmméénnaa nnaa ppaarrttiittiioonn ss WWiinnddoowwss--9955//NNTT Ma-li být v Linuxu správně vidět diakritika v dlouhých jménech souborů na partition s Windows-95, je třeba v souboru /etc/fstab uvést: /dev/hda1 /dos/c vfat codepage=852,posix,iocharset=iso8859-2,quiet,umask=000 0 0 Nebo příslušné volby zadat přímo v příkazu mount. Je nutné mít jádro, které podporuje vfat (aspoň 2.0.35). 66..3300.. PPrrooggrraamm wwggeett Petr Kolář Petr.Kolar@vslib.cz : 5. 5. 1999 Wget je program na stahování WWW stránek nebo celých webových serverů na lokální disk. Při jeho používání se můžete setkat s tím, že některé servery samy rozhodují o tom, v jakém kódování mají poslat dokument klientovi, takže dokumenty, které jste si Netscapem bez problémů prohlíželi v ISO-8859-2, wget stáhne bez háčků a čárek v ASCII. V tomto případě obvykle pomůže řádek header=Accept-Charset: iso-8859-2 v souboru $HOME/.wgetrc. 66..3311.. NNeettssccaappee.. Novější verze Netscape (asi od verze 4.06) umí zobrazovat korektně stránky kódované jak v ISO-8859-2, tak ve Windows-1250. Pokud server posílá správnou hlavičku Content-Type: nebo pokud je tato informace vložena v dokumentu pomocí META-tagu, přepíná se na správné kódování automaticky, jinak je nutné přepnutí pomocí funkce View -> Character Set. Výjimkou jsou formuláře, které Netscape zobrazuje trvale pomocí ISO-8859-1 fontů. Situaci lze napravit patchem netscapu --- například pomocí program . Pro tisk v ISO-8859-2 je třeba použít filtr od Petra Macháčka . Jedná se o shell skript, který lze použít v tiskovém příkazu programu Netscape jako filtr | lpr nebo jako if či of v souboru /etc/printcap. Tisk vyžaduje PostScriptovou tiskárnu nebo je třeba jej dále zpracovat programem Ghostscript. Některé tiskárny místo Postscriptového výstupu tisknou definice fontů. Potom pomůže nahrazení prvního řádku %! ve skriptu řádkem %!PS-Adobe-2.0 77.. TTeeXX aa jjiinnéé DDTTPP ssyyssttéémmyy Michal Choura xchoura@cs.felk.cvut.cz : 17. 5. 1999, Pavel Janík ml. Pavel.Janik@math.muni.cz : 28. 7 1998; Arnošt Štědrý arnost@uivt.cas.cz : starší verze Český teTeX pro Red Hat 6.0 je na . 77..11.. IInnssttaallaaccee zz RRPPMM bbaallííkkůů CCSSTTeeXXuu pprroo RReeddHHaatt V současné době existují pro distribuci RedHat 5.x balíky s kompletním českým TeXem. Lze je nalézt na serveru a mirrorech, např. . Balíky obsahují teTeX ve verzi 0.9, a obvykle nejnovější verze doplňků csTeXu, tedy csplain, cslatex a doplňky do pdfTeXu včetně Postscriptové verze CS fontů. Doporučuji před instalací přečíst soubor README.cstetex, kde jsou aktuální informace o balících. Rozdíly oproti předchozím verzím lze zjistit příkazem rpm -qp --changelog tetex-0.9cs-*.i386.rpm. Postup instalace je jednoduchý. Přesvědčte se, že dosud nemáte žádný TeX instalován; pokud příkaz # rpm -qa | grep tetex zobrazí nějaký výstup, tedy jméno nějakého balíku, je třeba jej odinstalovat příkazem rpm -e jméno_balíku. Potom lze nainstalovat balíky s českým TeXem: # rpm -Uvh tetex-0.9cs-*.i386.rpm Pochopitelně, pokud některou z částí nechcete instalovat, nemusíte. Čerstvě nainstalovaný TeX je dobré nakonfigurovat. K tomu slouží program texconfig. Po jeho spuštění se objeví menu, kde doporučuji zkonfigurovat minimálně dvips. Tento program totiž v základní konfiguraci přesměrovává svůj výstup přímo na tiskárnu. Zvolte tedy v hlavním menu ,,dvips``, dále ,,global settings``, velikost papíru ,,A4``, potom vyberte ,,Set up the command to print on this printer`` a stiskněte Enter. Balíky v binární formě jsou kompilovány na RedHatu 5.x, a tedy s knihovnou glibc. Nebudou proto chodit na starších verzích RedHatu. Pokud byste je chtěli používat na starších distribucích, je nutné je přeložit z balíku tetex-0.9cs-*.src.rpm. Vzhledem ke komplexnosti TeXu však je (alespoň zatím) nutné balík překládat přímo v systémových adresářích. Proto nejlepší je překlad provést na nějakém zkušebním počítači. Pozor, v průběhu překladu balíku se smaže obsah adresáře /usr/lib/texmf! Další informace lze získat z ftp serveru 77..22.. OObbeeccnnáá iinnssttaallaaccee nnaa lliibboovvoollnnýý UUnniixx Existují dvě možnosti. Jednak můžete nainstalovat TeX ze zdrojových kódů web2c, dnes ve verzi 7.2, a nebo instalovat komplexní teTeX. První možnost popisuje pan Petr Olšák v textu, který lze nalézt na . Pokud máte dost místa na disku, doporučuji druhou možnost, instalaci teTeXu. Postup prozkoumal Pavel Janík ml. Pro kompilaci a instalaci budete potřebovat asi 100 MB volného místa. Originální teTeX lze nalézt na , dále budete potřebovat z soubory csfonts.tar.gz, cspdftexlib.tar.gz, csplain.tar.gz, cspsfonts.tar.gz, csuvodlat.tar.gz, enctex.tar.gz a nejnovější cslatex-*-.tar.gz. Mnoho cenných rad najdete též v souboru README.web2c-7.2 tamtéž. Vzhledem k rychlosti vývoje doporučuji též stáhnout nejnovější verzi pdfTeXu z , soubory pdftex.tar.gz, Makefile.in a configure.in (přečtěte si soubor Install, postup se často mění). Do libovolného adresáře, např. /usr/src, rozbalte originální zdrojové kódy: # cd /usr/src # tar xzvf teTeX-src-0.9.tar.gz Dále do nějakého vhodného adresáře umístěte strom vstupních souborů TeXu: # mkdir -p /usr/local/teTeX/share/texmf # cd /usr/local/teTeX/share/texmf # tar xzvf teTeX-texmf-0.9.tar.gz Rozbalte distribuční balík enctexu (umožní v TeXu používat a za běhu přepínat vstupní kódování TeXových dokumentů): # cd /usr/src/teTeX-0.9 # tar xzvf enctex.tar.gz Instalujte české doplňky do TeXu (Latex není nutno mazat celý, stačí smazat adresáře misc, input, a raději i graphics, psnfss a tools): # rm -rf /usr/local/teTeX/share/texmf/tex/latex # cd /usr/local/teTeX/share/ # tar xzvf csplain.tar.gz # tar xzvf cslatex-*.tar.gz # tar xzvf csfonts.tar.gz # tar xzvf cspsfonts.tar.gz # tar xzvf cspdftexlib.tar.gz # tar xzvf csuvodlat.tar.gz Pokud chcete používat pdfTeX, nainstalujte nejnovější verzi: # cd /usr/src/teTeX-0.9/texk/web2c # rm -rf pdftexdir # tar xzvf pdftex.tar.gz Soubory Makefile.in a configure.in z distribuce pdfTeXu překopírujte do téhož adresáře (přepíší původní). Pak vytvořte nové soubory Makefile.in a configure.in příkazem # autoconf -m ../etc/autoconf # ./configure Vytvořte Makefile pro kompilaci: # cd /usr/src/teTeX-0.9 # ./configure --prefix=/usr/local/teTeX --disable-multiplatform Aplikujte patch enctexu (ovlivní tex.ch) a zkopírujte jeho soubory do TeXového stromu: # cd /usr/src/teTeX-0.9/texk/web2c/ # patch <../../enctex/enctex.patch-to-7.2 # mkdir /usr/local/teTeX/share/texmf/tex/enctex # cp ../../enctex/*.tex /usr/local/teTeX/share/texmf/tex/enctex Dále je vhodné upravit Makefile pro xdvi tak, aby se jako náhradní font používal csr10 a změnit standardní velikost papíru z Letter na A4. V souboru /usr/src/teTeX-0.9/texk/xdvik/Makefile upravte řádek DEFS = -DHAVE_CONFIG_H $(XDEFS) na DEFS = -DHAVE_CONFIG_H -DA4 -DALTFONT=\"csr10\" $(XDEFS) Aby TeX správně pracoval s českými Postscriptovými fonty, je třeba v adresáři /usr/local/teTeX/share/texmf/dvips/ přidat obsah souboru rawfonts.map na začátek psfonts.map. Proto: # cd /usr/local/teTeX/share/texmf/dvips # mv psfonts.map psfonts.orig # cat rawfonts.map psfonts.orig > psfonts.map A další úprava Postscriptových fontů je nutná pro správnou činnost pdfTeXu. Prohlížeče PDF znají jen několik základních fontů, ostatní je nutné do dokumentu přiložit. Musíte mít nainstalovány fonty, dodávané s programem Ghostscript. V souboru /usr/local/teTeX/share/texmf/fonts/type1/adobe/subs upravte proměnnou GSFPATH tak, aby ukazovala na adresář s Postscriptovými fonty Ghostscriptu. Potom skript pusťte, vygenerují se linky na tyto fonty: # cd /usr/local/teTeX/share/texmf/fonts/type1/adobe/ # ./mklinks Nejvíce problémů je s TeXovým modulem Babel. Ten totiž obsahuje soubor czech.sty, jehož jméno koliduje se stylem czech.sty, který používáme v CSTeXu. Pokud Babel nebudete potřebovat, nejjistější je jej zcela vyjmout: # rm -rf /usr/local/teTeX/share/texmf/tex/generic/babel Pokud jej potřebujete, je nutné upravit soubor /usr/local/teTeX/share/texmf/web2c/texmf.cnf tak, aby soubor czech.sty z adresáře /usr/local/teTeX/share/texmf/tex/csplain načetl vždy dříve, než ten z Babelu. Teď již můžete celý teTeX přeložit. Nejprve musíte obnovit TeXovou databázi souborů ls-R, neboť jste měnili obsah TeXového stromu. # cd /usr/src/teTeX-0.9/texk/kpathsea # make # ./mktexlsr # cd ../.. # make world A nakonec je třeba vygenerovat české (slovenské) formáty TeXu: # PATH=/usr/local/teTeX/bin:$PATH # cd /usr/local/teTeX/share/texmf/web2c # tex -ini csplain.ini # ln -s latex.fmt cslatex.fmt # pdftex -fmt pdfcsplain -ini csplain.ini # etex -efmt=ecsplain -ini \*csplain.ini # tex -ini cslatex.ini # cd ../../bin # ln -s tex csplain # ln -s tex cslatex # ln -s pdftex pdfcsplain # ln -s etex ecsplain # mktexlsr Pak už zbývá jen TeX nakonfigurovat (viz odstavec o teTeXu pro RedHat) a vyzkoušet. 77..33.. DDooppllňňkkyy pprroo TTeeXX 77..33..11.. PPrrooggrraamm vvllnnkkaa Slouží pro přidání vlnky (mezery, ve které nemůže dojít ke zlomu řádky). Program je k dispozici na . Pro RedHat Linux je k dispozici RPM balík na a nebo v adresáři contrib na každém zrcadle RedHatu. 77..33..22.. ccssiinnddeexx Program csindex slouží pro vytváření správně česky nebo slovensky setříděných indexů pro LaTeX. Pro RedHat Linux lze nalézt na . 77..33..33.. aa22aacc Utilitka a2ac umí do Postscriptového AFM souboru přidat znaky s českými akcenty. Slouží pro počešťování Postscriptových fontů. Program lze nalézt na , RPM balík pro RedHat Linux je na nebo v adresáři contrib na každém zrcadle RedHatu. 77..44.. ČČeesskkéé ffoonnttyy vv TTeeXXuu 77..44..11.. OO kkóóddoovváánníí V současné době existují tři základní možnosti jak v TeXu psát česky: 1. Použít nativní TeXovský přístup a kódovat české znaky pomocí sekvencí \', \v a \accent23, kde \' je sekvence pro čárku, \v pro háček a \accent23 pro kroužek. 2. Použít CS-fonty distribuované CSTUGem a pro kódování znaků užívat stránku ISO-Latin-2. 3. Použít EC/DC fonty pokrývající téměř všechny evropské jazyky (balík Babel). Výhody a nevýhody těchto přístupů: 1. Lehká přenositelnost dokumentů jak ve zdrojovém kódu, tak ve formě dvi. Tento přístup se kvůli nepřehlednosti vyplácí pouze tehdy, pokud češtinu používáme na málo místech v textu. Příklad sl\accent23 un\v ec\'\i = slůněcí to myslím dokumentuje. 2. CS fonty jsou osmibitové fonty obsahující plnou podporu pro psaní češtiny a slovenštiny. Všechny znaky jsou zde obsaženy ve své akcentované podobě, nechybí ani české uvozovky a ogonok pro psaní polských slov. Ve znacích 1--127 se shodují s cm-fonty, české a slovenské znaky jsou kódovány jako ISO-Latin-2. Instalací CSTeXu se zabývá kapitola ``Obecná instalace na libovolný Unix''. 3. EC/DC fonty se stávají evropským standardem a zdá se, že vytlačí z LaTeXu původní Knuthovy cm-fonty. Kódovány jsou dle standardu Cork. Ve spojení s LaTeX2e a balíkem Babel jsou mocným nástrojem k psaní vícejazyčných dokumentů. Jejich nevýhodou je menší typografická čistota a nekompatibilita s cm-fonty co se týká umístění znaků 1--127. Např. čárka nad českým písmenem é se má lišit co do velikosti od čárky nad francouzským písmenem é, což v EC/DC fontech z důvodu nedostatku místa není. Na druhou stranu jsou podobně jako cm-fonty k dostání ve formátu Type 1. Metafontový zdroják je poněkud rozsáhlý, tj. stovky malých souborů. Současný CSTeX zajišťuje podporu EC/DC fontů pomocí parametru T1 příkazu: \usepackage[T1]{czech} Je nutno míti na paměti, že v LaTeXu musí být zavedeny vzory pro dělení slov pro T1 kódování, tj. při initexování zadáno v hyphen.cfg: \DeclareLanguage[IL2,T1]{\czech}{czhyphen.tex}% {\lefthyphenmin=2 \righthyphenmin=3 \@requesthyphens}% Pro bližší info o czech.sty: Pokud nepotřebujeme dělení slov (nechce se nám právě teď instalovat CSTeX) můžeme použít: \usapackage[T1]{fontenc} Takže (1) použijeme většinou v případě, kdy píšeme dopis v cizině nebo nám nezbývá čas na instalaci. (2) je v současné době podporováno CSTuGem, takže v rámci České republiky by měl být bezproblémový. (3) je způsob podporovaný v Evropě, časem by se měl stát standardem, tj. vesměs dostupným. 77..44..22.. FFoorrmmááttyy ffoonnttůů Do TeXu lze pohodlně začlenit jednak fonty ve formátu Metafontu, jednak fonty ve formátu Type 1. První lze využít pro všechna zařízení, druhé je výhodné používat při převodu textu do PostScriptu programem DVIPS, který zvláště ve velkých rozlišeních generuje menší výstup. 77..44..33.. MMeettaaffoonnttoovvéé ffoonnttyy V současné době vím pouze o třech plně českých fontových sadách. Jednak tedy EC-fonty, pak CS-fonty a nakonec Concrete Modern fonty (vlastně se jedná o pouhý klon CS-fontů) počeštitelný stejným mechanismem jako jsou z CM fontů udělány CS-fonty. Dále se vyskytují fonty (např. Pandora) dobře počeštitelné pomocí virtuálních fontů (programem l2accent ). Všechny zmíněné fonty jsou dostupné v archívu , . 77..44..44.. TTyyppee 11 ffoonnttyy V současné době je k dispozici mnoho českých nebo počeštitelných fontů ve formátu Type 1. Tyto fonty mohou být buď přímo vestavěny ve výstupním zařízení nebo mohou být dodávány ve formě souborů s příponou pfa nebo pfb, k nimž by měl být dodáván i metrický soubor s příponou afm. 77..44..55.. PPooččeeššttěěnníí ffoonnttůů zzaabbuuddoovvaannýýcchh vvee vvýýssttuuppnníímm zzaařříízzeenníí.. Tyto fonty lze počeštit mechanismem virtuálních fontů. Pokud chcete počeštit pouze fonty ze základní sady, tj.: TimesNewRoman Helvetica NewCenturySchoolBook Palatino Bookman lze s výhodou použít již hotové řešení z balíku cspsfonts.tar.gz. Obsahuje TFM a VF soubory, které stačí umístit na patřičná místa (/usr/lib/texmf/fonts/tfm, /usr/lib/texmf/fonts/vf). Verze počeštěného teTeXu v RPM balících je již obsahuje. Pokud vlastníte Postscriptový font ve formě AFM a PFA, resp. AFM a PFB souborů, jsou rámcově dvě možnosti: 1. Font je již počeštěný, zbývá jej pouze překódovat. 2. Font zatím neobsahuje všechny české znaky. Jak to zjistím? Pokud již font obsahuje české znaky, pak je o nich informace v AFM souboru. Podíváme se tedy, zda-li AFM soubor obsahuje řádky typu: C -1 ; WX 722 ; N Aacute ; B 15 0 706 892 ; kde místo Aacute jsou postupně názvy českých znaků (caron = háček, acute = čárka, ring = kroužek, tedy Ccaron = Č (C s háčkem), uring = ů (u s kroužkem)). Pokud se nám podaří najít všechna česká písmena, můžeme zkusit vygenerovat font příkazem: $ afm2tfm font.afm -t kodovani.enc -v cfont rfont kde font.afm je jméno původního fontu kodovani.enc je jméno českého kódování cfont je jméno českého fontu rfont je jméno raw fontu Česká kódování jsou dostupná např. v balíku a2ac , kde je také podrobnější info. Jméno českého fontu by mělo být ve shodě s ,,Font Naming Conventions`` . Jméno raw fontu můžete zvolit libovolně, většinou se používá jméno původního fontu s předponou r. Program afm2tfm vygeneruje jednak na standardní výstup řádek: rfont JmenoFontu který přidáte (po malé úpravě) do souboru psfonts.map (/usr/lib/texmf/texmf/dvips/misc/psfonts.map). Co a jak přesně přidat do tohoto souboru, je lépe konzultovat v dokumentaci k programu DVIPS. Dále vytvoří soubor rfont.tfm a cfont.vpl. Na posledně jmenovaný aplikujeme program: vptovf cfont.vpl čímž dostaneme soubory cfont.tfm a cfont.vf, které umístíme do adresářů /usr/lib/texmf/texmf/fonts/tfm a /usr/lib/texmf/texmf/fonts/vf. Pokud font české znaky neobsahuje, můžete se pokusit sjednat nápravu programem a2ac , který, pokud najde jednotlivé akcenty, je schopen vytvořit kompozitní popis všech českých písmen. Podrobnější popis viz dokumentace k a2ac, či článek Virtuální fonty, accents a přátelé . 77..55.. LLyyXX Program LyX slouží k vytváření textových dokumentů. Je to nadstavba nad TeX, přesněji nad makro LaTeX. Uživatel LyXu pracuje s grafickým rozhraním, podobajícím se textovým editorům ze světa MS Windows. Výstup programu LyX se po stisku tlačítka zpracuje LaTeXem a proto je výsledný dokument typograficky poměrně kvalitní. Aby byla hlášení v menu zobrazována správnými fonty, je nutné zahrnout do souboru $HOME/.lyx/lyxrc řádek \screen_font_encoding iso8859-2 LyX upravený pro bezproblémovou práci v češtině pro RedHat Linux lze nalézt na . 77..66.. LLiitteerraattuurraa ˇ Tomáš Mráz, Postscriptová písma v TeXu, Zpravodaj CSTUG, 1994, 2, 70--76 ˇ Petr Olšák, Program a2ac --- manipulace s fontem na úrovni Postscriptu, Zpravodaj CSTUG, 1996, 1, 23--30, ˇ Adobe Font Metrics File Format Specification Version 4.0, Adobe Systems Incorporated, 1992, February ˇ Pavel Herout, Postscriptové fonty pro ty, co o nich moc nevědí, Zpravodaj CSTUG, 1996, 1, 43--64 ˇ Joachim Schrod, Komponenty TeXu, Zpravodaj CSTUG, 1993, 1--10, 1, ˇ Donald Knuth, Virtual fonts, a more fun for grand wizards, TUGboat, 1990, April, 1, 11, 13--23, ˇ Petr Olšák, Typografický systém TeX, CSTUG, 1995 ˇ Petr Olšák, TeXbook naruby, CSTUG, 1995, ˇ Petr Sojka, Virtuální fonty, accents a přátelé, Zpravodaj CSTUG, 1994, 2, 56--69, 88.. EEmmaaccss Milan Zamazal pdm@fi.muni.cz ; první verze Emacs je rozsáhlý a komplexní program a jeho kompletní počeštění je netriviální. Navíc v současnosti připadají v úvahu dvě verze: Emacs 19 a Emacs 20. Lokalizace Emacsu verze 19 je popsána na a využívá balík . Cílem lokalizace verze 20 je dosáhnout zahrnutí obsahu počešťovacího balíku přímo do hlavní distribuce Emacsu. Než bude tohoto cíle dosaženo, je nutné používat zvláštní počešťovací balíky. Lokalizace verze 20 je popsána na a pro verzi 20.3 využívá balík , pro verzi 20.2 pak balík (též na ). Pokud momentálně nemáte možnost se k balíku emacs-czech dostat, můžete použít následující nouzové řešení: ˇ Do svého ~/.emacs přidejte řádky ______________________________________________________________________ (standard-display-european t) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) ______________________________________________________________________ ˇ Nastavte Emacsu správný font. Tato akce je z hlediska obecného popsána v jiných částech tohoto dokumentu a z hlediska Emacsu v jeho info dokumentaci. 99.. TTiisskk 99..11.. TTiisskkáárrnnyy ss vveessttaavvěěnnýýmmii ččeesskkýýmmii ffoonnttyy Postupujte podle návodu uvedeného v kapitole ``Red Hat'' věnované počeštění distribuce Red Hat. Jména souborů a adresářů je třeba přizpůsobit konkrétnímu systému a distribuci. 99..22.. PPoossttssccrriippttoovvéé ttiisskkáárrnnyy Pro přípravu tisku na Postscriptových tiskárnách slouží balík a2ps , který od verze 4.7.21 zahrnuje i program ogonkify , sloužící k přidání ISO-8859-2 znaků k Postscriptovým fontům definováním kompozitních znaků. K a2ps existuje i katalog českých hlášení. Tisk textů v ISO-8859-2 z programu Netscape je popsán v kapitole ``Netscape''. Hledá se někdo, kdo o tisku napíše něco více. 1100.. KKoonnvveerrzzee zznnaakkoovvýýcchh ssaadd Pro konverzi textových souborů se používá GNU program recode. Mezi českými a slovenskými uživateli je ovšem mnohem oblíbenější program cstocs, který byl zpočátku k dispozici jako samostatný balíček, později byl začleněn do cs-tools. Jde o skripty v jazyce perl a awk schopné konvertovat textové soubory buď pomocí převodu one-to-one nebo one-to-many. Při převodu one-to-many se například konvertuje znak Copyright (C v kroužku) do ASCII jako (c), německé ostré s se nahrazuje ss apod.. Aktuální verze cstocs (pro Perl 5) je součástí nové distribuce Cstools, kterou je možné nalézt na libovolném zrcadle CPANU na . Starší verze, cstocs-3.0, která je též součástí cs-tools-0.19, pracuje i s Perlem 4 a obsahuje též skripty pro awk. Je k dispozici na . V této verzi je chyba. V souboru 1250.enc je třeba smazat poslední prázdný řádek. Pokud má program sloužit pro převod textů v němčině, bude navíc vhodné změnit v souborech kam.enc a vga.enc popis znaku beta na ssharp, aby byl považován za německé ostré s, které bude při převodu one-to-many nahrazeno dvěma znaky s, jak je zvykem v němčině, případně v souboru accent definovat náhradu [AOUaou]diaeresis dvojicí [AOUaou]e. Pokud nemůžete použít ani perl ani awk, je možné použít program sed a jeden ze skriptů z adresáře , které se používají takto: ______________________________________________________________________ sed -f pclat2.isolat2 soubor > vystup ______________________________________________________________________ 1111.. ČČeesskkéé ttřříídděěnníí Autor informací: Jan Pazdziora adelton@fi.muni.cz , 1998 České třídění zcela podle ČSN nelze implementovat bez použití metod umělé inteligence. Norma totiž požaduje takové jemnůstky jako zařadit řetězec "Karel IV" před "Karel II", protože římské číslice se mají nahradit slovy, a "čtvrtý" je před "druhý". Třídění bez největších výstřelků ČSN zvládá knihovna glibc s nainstalovanými locales s Revision: minimálně 1.10 --- viz kapitola ``locales''. Třídění pomocí locales v libc5 nefunguje. Pokud váš systém nepoužívá glibc nebo nemůžete použít locales z nějakého jiného důvodu, lze použít implementaci funkce strxfrm od Jana Pazdziory, která převádí český (ISO-8859-2) text na posloupnost, kterou je potom možno porovnávat pomocí strcmp. Převod je definován tak, aby následné třídění co nejvíce odpovídal české normě (ČSN; je slovenské třídění odlišné?), resp. výkladu normy podle pana Olšáka. Soubor obsahuje také funkci strcoll, která provede porovnání dvou řetězců bez nutnosti předchozí konverze, tedy v konstantní paměti. Soubor přeložíme příkazem ______________________________________________________________________ cc -c -o csort.o csort.c ______________________________________________________________________ a pomocí ______________________________________________________________________ ld -shared -o csort.so csort.o ______________________________________________________________________ z něj uděláme sdílenou knihovnu. Tu potom použijeme například nastavením proměnné prostředí export LD_PRELOAD=/cesta/k/csort.so, čímž zajistíme, že se místo implicitních strxfrm a strcoll použijí výše uvedené, české. Další informace o třídění, včetně implementace třídění pro databázi MySQL (viz kapitola ``mysql''), lze nalézt na stránce Jana Pazdziory. 1122.. ČČeesskkéé mmaannuuáálloovvéé ssttrráánnkkyy Petr Kolář Petr.Kolar@vslib.cz : 27. 10. 1998; Pavel Janík ml. Pavel.Janik@math.muni.cz : starší verze 1122..11.. IInnssttaallaaccee Pro prohlížení manuálových stránek v češtině programem man je nutné mít nainstalovánu podporu zobrazování českých znaků úpravu programu groff pro ISO-8859-2 popsanou v kapitole ``groff'' a program man verze 1.4h nebo novější. České manuálové stránky jsou distribuovány jako zdrojové texty pro groff ve formátu .tar.gz vhodném pro distribuce Slackware, SLS, Yggdrasil aj., a ve formátu .rpm pro distribuce RedHat, Caldera, Suse apod.. Instalace stránek ze souboru .tar.gz je velmi jednoduchá --- po rozbalení balíku příkazem tar xfz man-pages-cz-x.xx.tgz jednoduše v příslušném adresáři provedeme příkaz make install, který zajistí nainstalování manuálových stránek do adresáře /usr/local/man/cs. Instalace stránek ve formátu .rpm je ještě jednodušší: rpm -i man-pages-cz-x.xx-x.i386.rpm 1122..11..11.. PPrroohhllíížžeenníí ččeesskkýýcchh mmaannuuáálloovvýýcchh ssttrráánneekk Standardní instalace programu man používá k zobrazování znaků na terminály zařízení latin1 programu groff. Pro zobrazování českých znaků ale potřebujeme, aby man používal zařízení devlatin2 z balíku groff-latin2. V konfiguračním souboru programu man (/etc/man.config, případně někde jinde) proto změníme na řádku NROFF /usr/bin/groff -Tlatin1 -mandoc Tlatin1 za latin2: NROFF /usr/bin/groff -Tlatin2 -mandoc Novější verze programu man, který je spravován A. Brouwerem se při výběru manuálové stránky řídí proměnnou prostředí LANG, man verze 2.x (dostupný v Debianu) pak pracuje standardně i podle proměnných LC_*. Proto pro prohlížení českých manuálových stránek použijeme jeden z následujících ekvivalentních příkazů: bash$ LANG=cs man intro bash$ export LANG=cs bash$ man intro csh$ setenv LANG cs csh$ man intro Uživatelé jiných interpretů si jistě příslušné příkazy upraví sami. 1122..22.. PPrroohhllíížžeenníí ččeesskkýýcchh mmaannuuáálloovvýýcchh ssttrráánneekk ppoodd ssyyssttéémmeemm XX--WWiinnddooww K prohlížení českých manuálových stránek byl poupraven program xman ze standardní distribuce X11R6. Podporuje zobrazování českých znaků v manuálových stránkách. Tento balík můžete získat z těchto FTP serverů: ˇ na IGN ˇ na CESNETu Jeho instalace se provádí podobně jako instalace vlastních manuálových stránek. 1122..33.. PPrroojjeekktt ""ČČeesskkéé MMaannuuáálloovvéé SSttrráánnkkyy"" Tento projekt vznikl aktivitou několika jednotlivců, kterým nejde jen o to, že sami mají dokonalý operační systém, ale také o to, aby pomohli ostatním zbavit se těch jejich (OS). Hlavním cílem projektu je popularizace Linuxu a jeho zpřístupnění široké veřejnosti. Koordinátorem projektu je Pavel Janík ml. České Manuálové Stránky mají i svou konferenci (czman@linux.cz). Přihlásit se můžete na adrese czman-subscribe@linux.cz: echo subscribe czman Jméno Příjmení | mail czman-subscribe@linux.cz Konference je věnována nejenom překladatelům, ale i uživatelům, kteří mají s českými manuálovými stránkami problémy. 1122..33..11.. OOddkkaazzyy ˇ ˇ ˇ 1133.. KKoonnttrroollaa ččeesskkééhhoo pprraavvooppiissuu ((ssppeellll--cchheecckkeerr)) Petr Kolář Petr.Kolar@vslib.cz : 14. 5. 1999; Pavel Janík ml. Pavel.Janik@math.muni.cz : starší verze Nejrozšířenějším programem pro kontrolu pravopisu na unixových systémech je GNU ispell (v době psaní tohoto textu verze 3.1.20). Vzhledem k jeho schopnostem se spíše jedná o pouhé odhalování překlepů. Ispell totiž neodhalí syntaktické ani stylistické chyby, takže otřepané "víly VYLI věnce" je podle něj správně (jelikož "vyli" je také české slovo). Soubory s českým slovníkem pro ispell naleznete na adrese . Tento slovník je průběžně rozšiřován a v květnu 1999 rozpoznával více než 1 300 000 slovních tvarů. Na rozšiřování slovníku se může podílet každý. Stačí zaslat dosud neznámá česká slova (obsah souboru $HOME/.ispell_czech nebo výstup z příkazu ispell -d czech -l < soubor) na adresu Petr.Kolar@vslib.cz . 1133..11.. PPrrááccee ss iissppeelllleemm Ispell je možné používat buď samostatně --- pomocí příkazu ispell -d czech soubor nebo je možné jej volat z různých editorů. A jak ispell funguje? Máme například soubor, který obsahuje následující text: Tvůrcem opračního sytému Linux je Linus Torvalds. Při kontrole příkazem ispell -d czech soubor (nebo při stisknutí klávesy F8 v editoru joe, apod.) ispell "skočí" na slovo "opračního", protože slovo "Tvůrcem" je ve slovníku obsaženo. Slovo "opračního" bude zvýrazněno, a bude nabídnuta (v tomto případě jediná) možnost opravy --- 0: operačního. Stačí stisknout nulu, a slovo "opračního" bude opraveno na "operačního". Chybné slovo "sytému" nechá ispell bez povšimnutí, protože se může jednat o třetí pád slova "sytý", ale zastaví se na slově "Linus". Tady nabídne několik možností, ale protože původní slovo je správně, stiskneme klávesu mezera nebo "a" (Accept), což znamená "ponechat slovo uvedené v textu". Mezera způsobí, že další výskyt téhož slova ve stejném souboru bude opět chybou, zatímco "a" bude toto slovo připouštět až do konce zpracovávaného souboru. Také je možné stisknutím "i" slovo zařadit do uživatelského slovníku $HOME/.ispell_czech, takže jeho výskyt v kterémkoli v budoucnosti kontrolovaném souboru bude tolerován. Pokud je slovo skutečně špatně, a ispell nenabízí správnou opravu, je možné stisknout klávesu "r" a zadat správné slovo. 1133..22.. IIssppeellll pprroo EEmmaaccss Milan Zamazal pdm@fi.muni.cz ; první verze Český ispell je podporován balíkem emacs-czech od verze 3.5 (ve verzích 3.5 a 3.6 je drobná chyba). Český slovník lze zvolit například v menu "Edit/Spell/Select Czech". Bližší informace o používání ispellu a volbě slovníků naleznete v dokumentaci Emacsu. 1133..33.. IIssppeellll pprroo JJooee Podpora anglické kontroly pravopisu je v editoru joe vestavěna. Kombinací kláves 'CTRL+[ N' kontrolujeme jedno slovo, klávesami 'CTRL+[ L' celý soubor. Českou podporu lze jednoduše nakonfigurovat. Stačí do souboru ~/.joerc nebo přímo do souboru /usr/lib/joe/joerc doplnit následující řádky: ______________________________________________________________________ Czech spell-check macros :def czechspellfile filt,"cat >ispell.tmp;\ ispell -d czech ispell.tmp /dev/tty;cat ispell.tmp;\ /bin/rm ispell.tmp",rtn,retype :def czechspellword psh,nextword,markk,prevword,markb,filt,\ "cat >ispell.tmp;ispell -d czech ispell.tmp /dev/tty;\ tr -d ispell.tmp;\ ispell -d czech ispell.tmp /dev/tty;\ tr -d : 21. 5. 1999; Milan Zamazal pdm@fi.muni.cz , Vítězslav Samel xsamel00@dcse.fee.vutbr.cz a další starší verze 1144..11..11.. SSoouuččaassnnýý ssttaavv ooffiicciiáállnníí ddiissttrriibbuuccee V aktuální stabilní verzi Debianu jsou mimo jiné následující balíky vztahující se k českému a slovenskému prostředí: ˇ kbd: obsahuje ISO 8859-2 fonty pro konzolu a některé české klávesnice ˇ xfntil2: ISO 8859-2 fonty pro XFree ˇ emacs-czech: počeštění Emacsu ˇ cstocs: známý převodník znakových sad ˇ locales: přizpůsobení systému pro různé jazyky a teritoria ˇ iczech: český slovník pro ispell (zatím pouze ve vývojové verzi Debianu nebo na ); vzhledem k poměrně častým změnám je však vhodnější použít data z Tyto balíky s výjimkou posledních dvou jsou součástí Debianu od verze 1.3, a lze je bez problémů používat i na Debianu 1.2. Existuje neoficiální podpora českého a slovenského (La)TeXu pro Debian 1.2 a vyšší. Tyto balíky nejsou oficiální součástí Debianu. S maintainery teTeXu je nutné vyřešit problém s konfliktem czech.sty/slovak.sty v Babelu. Počeštění teTeXu pro aktuální stabilní (a většinou i vývojové verze) Debian GNU/Linux jsou k dispozici na . Na této adrese jsou i další informace vztahujících se k počeštění nebo poslovenštění Debianu, které se nepodařilo dostat do hlavní distribuce Debianu. Balíky CSTeXu pro starší verze Debianu lze nalézt na adrese . Kromě toho by všechny aplikace v Debianu 1.3 a novějším měly podporovat 8-bitový vstup (má-li to v daném případě smysl). Pokud tomu tak není, lze to zaslat jako bug-report přes debianovský Bug Track System. Můžete též využít možnosti nechat si hlášené přeložit (viz ). Máte-li zájem o další věci týkající se češtiny, musíte postupovat podle obecných návodů obsažených v Czech-HOWTO. Nezapomeňte, že Debian je otevřená distribuce ("users for users"). Chcete-li se tedy k jeho počešťování aktivně připojit, nic vám nebrání stát se dalším z jeho maintainerů. Můžete též pomoci radami a nápady, budete-li sledovat maillisty debian-i18n a debian-devel. Informace o nich naleznete na WWW stránkách Debian projektu na . Je také dobré sledovat , což je prezentační místo některých projektů pro počeštění Debianu. Mezi Debian maintainery je již i několik Čechů. Jako člověka, který k počeštění nezanedbatelně přispěl, si dovoluji jmenovat Milan Zamazala pdm@debian.org 1144..11..22.. PPooččeeššttěěnníí ooffiicciiáállnníí ddiissttrriibbuuccee Pokud chcete nainstalovat češtinu/slovenštinu na konzolu a do XFree86, je nejjednodušší použít balíček skcz-slink z adresy (pokud se adresářovou strukturou vrátíte níž, najdete zdrojový tvar balíčku). Pro jeho instalaci použijte příkaz: ______________________________________________________________________ dpkg -i skcz-slink* ______________________________________________________________________ Poté vám instalační skript položí několik otázek, které vás provedou instalací. Podrobnější popis je součástí balíčku, ale domnívám se, že otázky jsou zodpověditelné i bez návodu. 1144..22.. RReedd HHaatt 66..00 Petr Kolář Petr.Kolar@vslib.cz ; 17. 5. 1999 Kvůli nedostatku místa na bootovacích disketách na nich není obsažena instalace v češtině. Doufejme, že do příští verze s tím firma Red Hat něco udělá nebo že se podaří vytvořit obrazy disket včetně češtiny. Do té doby je vhodné zvolit při instalaci slovenštinu, aby alespoň věci, které vyžadují kódování ISO-8859-2 byly v pořádku. Po provedené instalaci změňte obsah souboru /etc/sysconfig/i18n; pokud si přejete používat unikódové konzolové fonty, pak na: LANG=cs LINGUAS=cs LC_ALL=cs_CZ LC_CTYPE=cs_CZ SYSFONT=ucw16.psf UNIMAP=latin2-ucw.uni SYSFONTACM=latin2-ucw.scrnmap nebo na LANG=cs LINGUAS=cs LC_ALL=cs_CZ LC_CTYPE=cs_CZ SYSFONT=lat2-sun16 SYSFONTACM=iso02 pro normální fonty. Rámečky v programech typu mc a linuxconf by měly být v obou případech pořádku. Bez ohledu na použité fonty je však nutné zabezpečit jejich aktivaci příkazem echo -e '\033(K'. Řádek LC_CTYPE=cs_CZ je nutný pro vstup ne-ASCII znaků z klávesnice v příkazových řádcích shellu tcsh, který se nechová zcela korektně. Zároveň tento řádek umožňuje vypustit LC_ALL=cs_CZ v případě, že chcete sice používat české znaky, ale nemáte zájem o to, aby s vámi programy komunikovaly česky. Navíc pokud používá některých z uživatelů shell tcsh, měl by správce vytvořit soubor /etc/profile.d/lang.csh s tímto obsahem if ( -r /etc/sysconfig/i18n ) then eval `sed -e "s/#.*//" -e "s/^\([^=][^=]*\)=\(.*\)/setenv \1 \2;/" \ /etc/sysconfig/i18n` endif Tento skript zajistí nastavení proměnných prostředí podle obsahu souboru /etc/sysconfig/i18n. Výběr mapy klávesnice pro konzolu se provádí v souboru /etc/sysconfig/keyboard. Jeho obsah je KEYTABLE=mapa, kde mapa je jedna z cz-lat2, cz-lat2-prog nebo cz-us-qwertz. Klávesnice funguje při startu jako americká, na češtinu a zpět se přepíná klávesou Pause. Red Hat 6.0 je dodáván s XFree86 3.3.3.1 ve kterém již je opravena stará chyba způsobující, že znaky áéíúý šly zadávat z klávesnice (nebyly-li provedeny příslušné patche) pouze pomocí mrtvých kláves. Pokud jste prováděli upgrade a měli jste nainstalovanou knihovnu libX11 z balíku XKB-czsk-forcedIM (která slouží k tomu, aby ve starých aplikacích fungovaly mrtvé klávesy), bude použita stará libX11 z XKB- czsk-forcedIM (protože má vyšší číslo verze) a nepatchované konfigurační soubory soubory, takže klávesy áéíúý opět nebudou fungovat. Pravděpodobně je to vhodný okamžik pro odstranění XKB-czsk- forcedIM: ______________________________________________________________________ rm /usr/X11R6/lib/libX11.so.6.99 ldconfig ______________________________________________________________________ Pokud skutečně máte aplikace, ve kterých nefungují mrtvé klávesy, použijte knihovnu LibI18Nforce od Zdeňka Kabeláče (a nezapomeňte napsat bug-report autorovi problémové aplikace). Chcete-li zobrazovat české znaky v X, musíte nainstalovat ISO-8859-2 fonty. Fonty však nejsou okamžitě dostupné. Při implicitním použití fontserveru je nutné doplnit odkazy na adresáře s ISO-8859-2 následujícím patchem: --- /etc/X11/fs/config.orig Mon Apr 19 01:33:12 1999 +++ /etc/X11/fs/config Wed Apr 28 14:27:36 1999 @@ -16,7 +16,11 @@ # directories in /usr/share, because they aren't forced to be # installed alongside X. # -catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled, +catalogue = /usr/share/fonts/ISO8859-2/misc:unscaled, + /usr/share/fonts/ISO8859-2/75dpi:unscaled, + /usr/share/fonts/ISO8859-2/100dpi:unscaled, + /usr/share/fonts/ISO8859-2/Type1, + /usr/X11R6/lib/X11/fonts/misc:unscaled, /usr/X11R6/lib/X11/fonts/75dpi:unscaled, /usr/X11R6/lib/X11/fonts/100dpi:unscaled, /usr/X11R6/lib/X11/fonts/misc, Česká klávesnice v X se nastaví jedním z postupů popsaných v kapitole ``Klávesnice v~X pomocí XKB'' a zapne klávesou Scroll Lock nebo současným stiskem obou kláves Shift. Informace o TeXu jsou v kapitole ``TeX''. Red Hat 6.0 s vylepšenou podporou češtiny naleznete na . V souboru je popsáno, co tato úprava obsahuje navíc oproti standardnímu Red Hatu. Tato kapitola není dosud dokončena. Pokud se setkáte s dalšími problémy, podívejte se, zda jejich řešení není popsáno v kapitole o Red Hatu 5.2. 1144..33.. RReedd HHaatt 55..22 Rudolf Ulč rudolf.ulc@oku-st.cz ; 13. 1. 1999 (upravováno autorem Czech-HOWTO) Podpora češtiny je v Red Hatu 5.2 dosti pokročilá, stále však není bez chyb. Pokud při instalaci nebyl vybrán český jazyk, je třeba dodatečně změnit obsah souboru /etc/sysconfig/i18n takto: LANG=cs LINGUAS=cs LC_ALL=cs_CZ SYSFONT=lat2-16 SYSTERM=linux-lat pokud v tomto souboru chcete předepsat nastavování jiných proměnných, je nutné do souboru /etc/profile.d/lang.sh doplnit příkazy, které zajistí jejich export; například pro proměnnou LC_CTYPE je potřeba přidat ______________________________________________________________________ if [ -n "$LC_CTYPE" ]; then export LC_CTYPE fi ______________________________________________________________________ Jestliže je proměnná SYSTERM nastavena na hodnotu linux-lat, budou ve skriptu /etc/profile.d/lang.sh automaticky nastaveny proměnné LESSCHARSET=latin1 a INPUTRC=/etc/inputrc. Soubor /etc/inputrc obsahuje příkazy umožňující používání osmibitových znaků v příkazových řádcích: set meta-flag on set convert-meta off set output-meta on Do /etc/inputrc je vhodné doplnit řádky, které zajistí fungování kláves Home, End a Delete v příkazovém řádku v bashi --- podle kapitoly ``bash''. Aby se nastavení z /etc/sysconfig/i18n projevilo i v shellu tcsh, je nutné vytvořit soubor /etc/profile.d/lang.csh obsahující ______________________________________________________________________ if ( -r /etc/sysconfig/i18n ) then eval `sed -e "s/#.*//" -e "s/^\([^=][^=]*\)=\(.*\)/setenv \1 \2;/" \ /etc/sysconfig/i18n` endif if ( "$SYSTERM" == "linux-lat" ) then setenv LESSCHARSET latin1 endif ______________________________________________________________________ Pokud se při instalaci nevybere česká klávesnice, je nutné později změnit obsah souboru /etc/sysconfig/keyboard například na KEYTABLE=cz-lat2 Pro konzoli lze také použít unikódové fonty buď z balíku nebo z . V kbd-0.96a je jinak umístěný adresář s mapami klávesnic, než jak očekává ucw-cs-1.1-2.i386.rpm, proto pokud máte nainstalován tento balík, musíte vytvořit odkaz ( cd /usr/lib/kbd/keymaps/i386; ln -s ../../keytables ) Unikódové fonty se zavedou příkazem setfont ucw16 -m latin2u.scrnmap a je nutné přepnout tabulku fontů například příkazem /bin/echo -e '\033(K' v /etc/profile. Pro unikódové fonty se v /etc/sysconfig/i18n nastavuje SYSTERM=linux-lat (aby byly správně nastavené semigrafické rámečky). Potom je ale nutné nastavit také INPUTRC=/etc/inputrc a LESSCHARSET=latin1, protože toto nastavení se ve skriptu /etc/profile.d/lang.sh provede pouze pro SYSTERM=linux-lat. Balík ISO-8859-2-console-fonts-980404-1.noarch.rpm, který je zabalen pro RedHat 5.1, způsobuje ještě jeden problém na RedHat 5.2, protože nainstaluje do /etc/rc.d/init.d soubor consolefont, který instaluje font a mapovací tabulku podle obsahu souboru /etc/sysconfig/consolefont. Tento mechanizmus koliduje se záměry RedHatu 5.2. Asi nejjednodušší je nechat v /etc/sysconfig/i18n implicitní font lat2-16.psf a fonty nastavovat v souboru /etc/sysconfig/consolefont a samozřejmě přidat do /etc/profile příkaz /bin/echo -e '\033(K'. Lokalizace správců oken fvwm95 a Afterstep i programů pine, mutt, lynx, emacs, joe, groff, applixware a dalších pro používání znakové sady ISO-8859-2 a české klávesnice je popsána v podkapitolách ``fvwm95'', ``afterstep'', ``pine'', ``mutt'', ``lynx'', ``joe'', ``groff'', ``applixware'' kapitoly ``Lokalizace různých aplikací''. Uživatelské soubory jako .inputrc, .muttrc, které mají být kopírovány všem uživatelům vytvářeným příkazem useradd je třeba umístit do adresáře /etc/skel. Pro zprovoznění české klávesnice v X Window Systemu je potřeba doplnit do souboru /usr/X11R6/lib/X11/locale/locale.alias chybějící řádek cs_CZ cs_CZ.ISO8859-2 (velká mezera je tvořena tabelátory) a příkazem ______________________________________________________________________ setxkbmap -symbols 'czsk(us_cz_prog)' -compat group_led ______________________________________________________________________ aktivovat zvolenou klávesnici. "Automatické" provedení tohoto příkazu při spuštění X se zajistí jeho uvedením v souborech $HOME/.Xclients jednotlivých uživatelů. Nastavení klávesnice lze provést pro všechny uživatele najednou v sekci Keyboard v souboru /etc/X11/XF86Config. Terminálový emulátor rxvt v Red Hatu 5.2 je částečně opraven, ale zdá se, že problémy s mrtvými klávesami přetrvávají. Měl by fungovat s balíkem XKB-czsk-forcedIM a s nastavenou proměnnou prostředí XLIB_FORCE_I18N=1 emulátoru nxterm česká klávesnice dosud nefunguje; proto je nutné při použití Afterstepu v souboru /usr/share/afterstep/fixed/start/1_xterm změnit nxterm na xterm. Také program netscape umožňuje zadávat české znaky z klávesnice. Umí také správně zobrazovat WWW stránky v kódování ISO-8859-2 i Windows-1250, bohužel ve formulářích stále nesprávně používá vždy pouze ISO-8859-1 fonty. Aby program xterm, emacs a další používaly ISO-8859-2 fonty, je nutné je spouštět například s parametrem -fn -misc-fixed-medium-r- normal--16-150-75-75-c-80-iso8859-2. Lepší je ale vyrobit soubor $HOME/.Xresources obsahující *fontMenu.Label: VT Fonts (8859-2) *fontMenu.fontdefault.Label: default (8x16) *vt100.font: -misc-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-2 *vt100.boldfont: -misc-fixed-bold-r-normal-sans-16-150-75-75-c-90-iso8859-2 *fontMenu.font1.Label: 5x7 *vt100.font1: -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-2 *fontMenu.font2.Label: 7x13 *vt100.font2: -misc-fixed-medium-r-normal-sans-13-120-75-75-c-70-iso8859-2 *vt100.boldfont2: -misc-fixed-bold-r-normal-sans-13-120-75-75-c-70-iso8859-2 *fontMenu.font3.Label: 8x14 *vt100.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-80-iso8859-2 *vt100.boldfont3: -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-2 *fontMenu.font4.Label: 8x14 bold *vt100.font4: -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-2 *fontMenu.font5.Label: 10x20 *vt100.font5: -misc-fixed-medium-r-normal-sans-20-200-75-75-c-100-iso8859-2 *fontMenu.font6.Label: 14x26 *vt100.font6: -misc-fixed-medium-r-normal-serif-26-170-75-75-c-140-iso8859-2 xterm*VT100.Translations: #override\n\ BackSpace: string(0x7F)\n\ Insert: string("^[[2~")\n\ Delete: string("^[[3~")\n\ Prior : scroll-back(1,page)\n\ Next : scroll-forw(1,page) nxterm*VT100.Translations: #override\n\ Prior : scroll-back(1,page)\n\ Next : scroll-forw(1,page) rxvt*font: -misc-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-2 rxvt*boldfont: -misc-fixed-bold-r-normal--16-150-75-75-c-90-iso8859-2 emacs*font: -misc-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-2 Uvedený obsah zajistí také fungování kláves Backspace, Delete a Insert a nastavení fontu pro rxvt a Emacs. Pokud vám při zapnuté češtině vadí rozházený výpis příkazu ls -l, použijte postup popsaný v kapitole ``instalace locales''. 1144..33..11.. MMaannuuáálloovvéé ssttrráánnkkyy České manuálové stránky jsou obsaženy v balíku . Pro jejich prohlížení je vhodné mít nainstalován balík groff-latin2-1.1-1.noarch.rpm a v souboru /etc/man.config nahradit -Tascii za -Tlatin2. Nicméně prakticky se lze obejít i bez groff-latin2 a v souboru /etc/man.config nahradit -Tascii za -Tlatin1. Způsob tisku manuálových stránek a výstupů z programu groff na postscriptové tiskárny není autorovi Czech-HOWTO znám. 1144..33..22.. EEmmaaccss 5.2 je první verze Red Hatu, ve které je Emacs s podporou MULE. Podpora češtiny je obsažena v balíku . Další nastavení se provede podle popisu v /usr/doc/emacs-cs- utils-4.2/emacs-czech.html. 1144..33..33.. TTiisskk nnaa ttiisskkáárrnnáácchh ss vveessttaavvěěnnýýmmii ččeesskkýýmmii ffoonnttyy Pro tisk textových souborů v kódování ISO-8859-2 na tiskárnách s vestavěnými českými fonty s jiným kódováním (například CP-852) v textovém režimu je nutné doplnit soubor /usr/lib/rhs/rhs- pritntfilterd/asc-to-printer.fpi o příkaz cstocs il2 kód, kde kód je jméno souboru s definicí kódování znaků použitých danou tiskárnou. Balík cstocs obsahuje definiční soubory pro nejrozšířenější kódování; formát definičních souborů je jednoduchý, takže pokud tiskárna používá exotické kódování, lze jeho popis pro program cstocs snadno doplnit. Jestliže například má tiskárna vestavěnou znakovou sadu CP852, bude na místě parametru kód použito pc2 takto: if [ "$CRLFTRANS" = YES -o "$CRLFTRANS" = 1 ]; then cstocs il2 pc2 | sed -e 's/$/'`echo -ne '\r'`'/g' else cstocs il2 pc2 | cat - fi Poznámky: ˇ Příkaz cat - lze vynechat. ˇ Musí být nainstalován balík cstocs. 1144..33..44.. MMiiddnniigghhtt CCoommmmaannddeerr Je třeba nastavit podporu osmibitových znaků: v menu Options -> Display bits zaškrtnout Full 8 bits output a Full 8 bits input a uložit nastavení. Dále je třeba nastavit barevný terminál - do souboru $HOME/.mc/ini (případně do /usr/lib/mc/mc.ini) přidáme: [Colors] color_terminals=linux,linux-lat,xterm Pro prohlížení českých manuálových stránek v mc je potřeba v menu Command -> Extension file edit (nebo v souboru /usr/lib/mc/mc.ext) v sekcích # Manual page a # Manual page - compressed zaměnit nroff za groff a -Tascii za -Tlatin2. Musí být nainstalován český groff. 1144..33..55.. DDaallššíí úúpprraavvyy nneessoouuvviisseejjííccíí ss llookkaalliizzaaccíí Kvůli chybě v balíku mc-4.1.35-2 nefunguje prohlížení rpm souborů. V /usr/lib/mc/extfs/rpm na řádku 100 má být: rpm -qlvp $1 | sed -e 's/^\(..........\)[-t]/\1 1 /;s/ / 1 /' Dále je užitečné upravit soubor /usr/lib/mc/mc.ext popisující vazby souborů obrázků s programy. Například pro soubory typu JPEG takto: type/JPEG\ image Open=if [ -n "$DISPLAY" ]; then zgv %f; else (ee %f &); fi Icon=jpeg.xpm Include=image-options Tak se v případě spuštění mc na konzoli použije prohlížeč obrázků zgv a v X Windows se použije prohlížeč ee. Podobně lze doplnit například pro midi a mp3: regex/\.(mid|MID)$ Open=playmidi -a %f Icon=sound.xpm (parametr -a je pouze pro Sound Blaster AWE 32, jinak není potřebný). Do souboru /etc/rc.d/rc.local je vhodné přidat nastavení NumLocku a Powersave pro monitor: ______________________________________________________________________ # Set Numlock for tty in /dev/tty[1-6]; do setleds -D +num < $tty done # Set power save setterm -blank 10 -powersave on printf "\033[14;5]" ______________________________________________________________________ Zkontrolujte případně nastavte práva pro zařízení CD-ROM (všichni právo r) a sequencer (všichni právo w), aby mohli všichni uživatelé přehrávat CD a midi soubory: ______________________________________________________________________ chmod o+r /dev/hdx (tam, kde je cdrom) chmod o+w /dev/sequencer ______________________________________________________________________ 1144..44.. RReedd HHaatt 55..11 Rudolf Ulč rudolf.ulc@oku-st.cz ; 9. 9. 1998 Red Hat 5.1 obsahuje částečnou podporu češtiny. Lokalizace však není zdaleka dotažena do konce a jsou v ní chyby. Kromě úprav uvedených výše pro RedHat 5.2 je nutné ještě provést tyto kroky: 1144..44..11.. ÚÚpprraavvaa llooccaalleess Katalogy programů mají být v /usr/share/locale/cs/LC_MESSAGES, lokalizační soubory pro knihovnu glibc v adresáři /usr/share/locale/cs_CZ: ______________________________________________________________________ cd /usr/share/locale mv cz/LC_MESSAGES/* cs/LC_MESSAGES mv cs_CZ/LC_MESSAGES/*.mo cs/LC_MESSAGES rm -r cz ln -s cs cz ______________________________________________________________________ Symbolický odkaz cz se vyrábí proto, aby se české katalogy zpráv rozumně umístily i při dodatečné instalaci balíků, které se je nesprávně snaží umístit do adresáře cz. 1144..44..22.. NNaassttaavveenníí llooccaalleess aa ffoonnttůů aa kklláávveessnniiccee nnaa kkoonnzzoollii Obsah souboru /etc/sysconfig/i18n, který po instalaci, při níž byl vybrán český jazyk, vypadá takto: LANG=cz LINGUAS=cz SYSFONT=lat2-16 SYSTERM=linux-lat je třeba změnit na LANG=cs LINGUAS=cs cz LC_ALL=cs_CZ SYSFONT=lat2-16 SYSTERM=linux-lat Soubor /etc/sysconfig/keyboard slouží pro zadání mapy klávesnice, která se má použít na konzoli. Jméno mapy klávesnice musí být bez přípony .gz a může být i bez přípony .map a bez cesty (pak nebude vadit, že V RedHat 5.2 nejsou mapy klávesnic v /usr/lib/kbd/keytables, ale v /usr/lib/kbd/keymaps/i386. Pro češtinu by měl soubor /etc/sysconfig/keyboard obsahovat jeden ze řádků KEYTABLE="cz-lat2" KEYTABLE="cz-lat2-prog" Nebyla-li při instalaci zvolena čeština, stačí pouze opravit zmíněné dva soubory. Obsah souboru /etc/sysconfig/i18n zajistí, že na konzoli budou nastaveny ISO-8859-2 fonty a díky nastavení klávesnicové mapy z /etc/sysconfig/keyboard lze stisknutím klávesy Pause přepínat na českou klávesnici. Aby bylo možné používat ne-ASCII znaky i v příkazových řádcích shellu bash, je nutné vytvořit soubor $HOME/.inputrc jak je popsáno v kapitole ``''. Podle hodnoty SYSTERM je automaticky nastavena proměnná prostředí TERM na hodnotu linux-lat, pro kterou je upravena databáze termcap a terminfo, takže v mc fungují rámečky tak, jako když se dříve použily upravené soubory termcap a linux.ti z Linux CZ Desktop. Bohužel to není uděláno asi úplně stejně, protože např. přehrávač CD cdp má některé znaky rámečků špatně (jsou potřebné pro iso8859-1?). Pokud se rozhodnete používat unikódové fonty z balíku ucw , je nutné v souboru /etc/sysconfig/i18n nastavit SYSTERM=linux. Dále je nutné nastavit mapovací unikódovou tabulku pomocí příkazu mapscrnuni a přepnout na uživatelské mapování escape sekvencí, jak je popsáno v návodu od ucw. S nastavením SYSTERM=linux Pokud někomu nevyhovuje česká klávesnice z balíku ucw, je možné kombinovat klávesnicové mapy cz-lat2.map nebo cz-lat2-prog.map ze základní distribuce s unikódovými českými fonty z ucw. 1144..44..33.. KKlláávveessnniiccee vv XX Nejsnazší způsob jak zprovoznit klávesnici v X v Red Hat 5.1 je provést upgrade všech použitých balíků XFree86 na poslední verzi (minimálně na verzi 3.3.2.3-25). Staré verze XFree86 neobsahují české klávesnicové mapy, zato obsahují množství bezpečnostních děr, takže upgrade je vhodný už z důvodu bezpečnosti. I po provedení upgrade je nutné upravit soubor /usr/X11R6/lib/X11/locale/locale.alias, aby obsahoval řádky: cs_CZ cs_CZ.ISO8859-2 czech cs_CZ.ISO8859-2 První uvedený řádek je zapotřebí do souboru přidat, druhý zkontrolovat a případně změnit. Klávesnice každopádně vyžaduje fungující locales. Nechcete-li upgradovat XFree86, musíte navíc někde sehnat české mapy klávesnice. Jednou z možností je použít balík XKB-czsk-forcedIM-0.04. Soubor /etc/X11/XF86Config není nutné upravovat (jak je popsáno v dokumentaci k balíku), stačí pouze přepnout na zvolenou klávesnici příkazem ______________________________________________________________________ setxkbmap -symbols 'czsk(us_cz_prog)' -compat group_led ______________________________________________________________________ - pro "automatické" přepnutí lze umístit tento příkaz do souboru $HOME/.Xclients. Pokud uděláte update/upgrade XFree86 a chcete i nadále používat balík XKB-czsk-forcedIM-0.04-1.i386.rpm, je nutné ho nainstalovat znovu (s parametrem --force). 1144..44..44.. FFoonnttyy vv XX Je třeba nainstalovat balíky ISO-8859-2-X11-fonts-100dpi-970301biznet-5.i386.rpm ISO-8859-2-X11-fonts-75dpi-970301biznet-5.i386.rpm ISO-8859-2-X11-fonts-basic-970301biznet-5.i386.rpm z a X11fonts-ulT1mo-beta-1.0-3.noarch.rpm z a přidat řádky FontPath "/usr/X11R6/lib/X11/fonts/ISO-8859-2/misc/" FontPath "/usr/X11R6/lib/X11/fonts/iso8859-2/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/ISO-8859-2/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/ISO-8859-2/100dpi/" do /etc/X11/XF86Config bezprostředně před ostatní řádky FontPath. 1144..44..55.. EEmmaaccss Emacs je v Red Hatu do verze 5.1 kompilován bez podporu MULE, takže jej není možné počeštit. Proto je nutné použít buď Emacs z Red Hatu 5.2 nebo balík emacs-20.6-cs Jaroslava Honsy . A případně novější verze utilit v souboru emacs-cs-utils-4.1.tgz. Vytvoříme soubor /usr/share/emacs/20.2/lisp/term/linux-lat.el (pro TERM=linux-lat) zkopírováním souboru linux.el s obsahem: (set-terminal-coding-system 'iso-latin-2) a soubor $HOME/.emacs s obsahem: (standard-display-european t) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) Soubor potom zkopírujeme do adresáře /etc/skel. Při provozování Emacsu pod X je třeba jedním z postupů, které jsou popsány výše, zajistit, že Emacs použije ISO-8859-2 font. 1144..44..66.. DDaallššíí úúpprraavvyy Pro programy lynx, pine a mutt je třeba vytvořit konfigurační soubory jak je popsáno v kapitolách ``lynx'', ``pine'' a ``mutt''. Časem by měl být k dispozici balíček, který bude potřebné konfigurační soubory obsahovat. Pro převody mezi různými kódováními textových souborů je třeba nainstalovat balík cstocs-3.0-1.i386.rpm. Většinu zmíněných balíků lze získat na z a . 1155.. OOddkkaazzyy nnaa ddaallššíí ddookkuummeennttyy ˇ --- stránky věnované technickým otázkám používání češtiny na počítačích ˇ --- "Polska strona ogonkowa" (v polštině) ˇ --- výklad k ISO-8859-2 fontům (anglicky) ˇ --- Domovská stránka programu a2ps. ˇ - domovská stránka programu ogonkify (nyní součást a2ps), který slouží k přidávání kompozitních znaků do Postscriptových fontů. ˇ --- domovská stránka programu pro konverzi ASCII souborů na PostScript. ˇ --- domovská stránka Romana Czyborry obsahující informace o nejrůznějších kódování včetně ISO-8859-x. 1166.. JJaakk ssee zzaappoojjiitt ddoo ppooččeeššťťoovváánníí Informace o jednotlivých projektech, které souvisejí s lokalizací, jsou na serveru . Relativně nejvíce práce je na lokalizaci jednotlivých programových balíků do češtiny. Jejich seznam naleznete na stránce . Pro lokalizaci distribuce Debian existuje poštovní konference czdebian-l@debian.cz . Informace o přihlášení do konference lze získat zasláním e-dopisu, jehož tělo bude obsahovat help, na adresu czdebian-l-request@debian.cz . Pro lokalizaci distribuce Red Hat existuje konference redhat- cz@linux.cz . Informace o konferenci lze získat zasláním e-dopisu na adresu redhat-cz-help@linux.cz . Pro přihlášení do konference použijte stejný postup, pouze v adrese změňte redhat-cz-help na redhat-cz-subscribe.