Czech HOWTO <author>Kolektiv autorů <date>Verze 1.10, 12. května 1998. <abstract> Tento dokument pojednává o tom, jak počeštit, poslovenštit, zkrátka lokalizovat Linux. Některé z~popsaných postupů uplatnit i na jiné unixové systémy. </abstract> <toc> <sect>Úvod <p> Tento dokument pojednává o tom, jak počeštit, poslovenštit, zkrátka lokalizovat Linux. Podle přetrvávajících diskusí na toto téma v~konferenci linux na listserv@muni.cz, je zřejmé, že se stále nejedná o tak jednoduchou věc, jak by si většina uživatelů přála. <p> Přestože je tento dokument zaměřen zejména na Linux, je možné některé z~popsaných postupů uplatnit i na jiné unixové systémy. <p> Jednotlivé části tohoto dokumentu byly vytvořeny různými lidmi. Jejich seznam naleznete na konci dokumentu (viz sekce~<ref id="lide" name="Autoři">). <sect1>Kopírování a záruka <p> Toto HOWTO je "free" dokument; můžete jej šířit a/nebo modifikovat podle podmínek GNU General Public License verze 2 nebo (dle vašeho výběru) kterékoliv verze pozdější, v~podobě, v~jaké byla publikována Free Software Foundation. <p> Tento dokument je distribuován 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. <p> Kopii GNU General Public License lze získat od Free Software Foundation, Inc., 675~Mass~Ave, Cambridge, MA~02139, USA. <sect>Cíle lokalizace <p> Popis lokalizace Linuxu pro češtinu případně slovenštinu je rozdělen na několik částí, aby bylo patrné, čeho se vlastně nainstalováním určitého balíku dosáhne. Toto rozdělení také usnadní práci uživatelům, kteří mají zájem pouze o částečnou lokalizaci systému. <enum> <item>Zobrazování národních znaků a jejich vkládání z~klávesnice. Ačkoli se jedná o dvě samostatné úlohy, přeci jenom jsou spolu svázány natolik, že je vhodné je řešit současně. Na druhou stranu je vhodné se zvlášť zabývat <ref id="konzole" name="lokalizací konzole"> a grafického prostředí <ref id="Xwindow" name="X Window System">. Splnění tohoto bodu umožňuje v~zásadě používat češtinu v~programech, které nekladou zvláštní odpor, a u nichž se nepožaduje, aby komunikovaly v~češtině, třídily, případně prováděly další specifické úkoly, jako je 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 například editor vi, jehož činnost lze ovšem ještě vylepšit nainstalováním locales. <item><ref id="locale" name="Lokalizace knihovny libc nebo glibc"> (tzv. locale). Zajišťuje správnou klasifikaci znaků (písmena, číslice, oddělovače, malá písmena, velká písmena atd.), převody mezi malými a velkými písmeny, třídění, výstupy číselných, časových a peněžních údajů podle národních zvyklostí, a umožňuje výstupy programů v~národním jazyce. 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. Do této části je zahrnuto také řešení online nápovědy a dalších textů v~řádkově orientovaných programech. <item>Lokalizace <ref id="programy" name="jednotlivých programů">. Ne u každého programu postačuje pro lokalizaci národní klávesnice, fonty a lokalizace knihovny libc. U některých programů je to způsobeno jejich ne zcela vhodným návrhem (například program pine, starší verze less), jiné programy jsou natolik komplexní, že je snadno lokalizovat zkrátka nelze (příkladem je <ref id="TeX" name="TeX"> nebo <ref id="emacs" name="emacs">). U programů pracujících v prostředí X Window System se jedná také o překlady menu a jednotlivých hlášení. <item><ref id="tisk" name="Český tisk">. Tato část bohužel dosud není zpracována. <item>Programy pro <ref id="konverze" name="konverze znakových souborů">. Co se týče znakové sady, pro češtinu je v~Linuxu bez diskusí jedinou správnou volbou ISO-8859-2. Nicméně v~jiných systémech se používají jiné znakové sady a je vhodné být na to připraven. Asi trvalým problémem budou omezení správci WWW serverů, které neumožňují posílání dat v~jediném pro češtinu povinném kódování ISO-8859-2. Body 1. až 5. stačí pro seriózní práci pro člověka, který umí anglicky. <item>České <ref id="manstranky" name="manuálové stránky">. Spolu s~bodem 7. nadmíru užitečná věc pro uživatele neznalého angličtiny. <item><ref id="spellcheck" name="Kontrola pravopisu">. <item>Možnost používání čestiny v~objektech systému. Tím jsou myšlena jména souborů. <item>Úplné počeštění systému, včetně jmen příkazů a parametrů (<tt/ls/ bude <tt/va/ - jako výpis adresáře, Unix bude Stejník nebo Jednotník, atd. :-) </enum> <sect>Lokalizace textové konzole<label id="konzole"> <p> Problematika podpory českého jazyka na virtuální konzole Linuxu sestává ze dvou částí. První z~nich je vůbec docílit, aby náš Linux rozpoznal naše nabodeníčka (jistě i někteří z~nás měli ve svých šesti letech podobné problémy ...). Když už Linux zjistí, že máme v~úmyslu psát česká písmenka a přečte si z~klávesnice např. písmenko 'ě', vznikne nám další problém - jak zobrazit české znaky na obrazovku. Naštěstí ani jeden z~těchto problémů není neřešitelný. <p> 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 v~Unixu určena znaková sada ISO-8859-2, známá také pod názvem ISO~LATIN-2. Pro většinu západoevropských jazyků je určena sada ISO-8859-1, ovšem pro angličtinu, němčinu a italštinu lze používat i ISO-8859-2. <p> Sada ISO-8859-2 se značně liší od sady PC LATIN-2 (code page 852) používané pro východoevropské jazyky v~OS MS-DOS a v~několika znacích i od sady Windows-1250 používané pro tyto jazyky ve Windows. <p> Problémem české klávesnice je, že většina uživatelů se shodne nejvýše na tom, že standardní klávesnice (obrácené lomítko se zadává pomocí pravého Alt a Q apod.) jim nevyhovuje, ale už ne na "správném" rozložení klávesnice. Pro mnoho lidí je jakákoli odchylka od klávesnice, na níž jsou zvyklí, velice traumatizující, ne každý je schopen se rychle přizpůsobit novému rozložení klávesnice, a proto vznikají nejrůznější "programátorské klávesnice", a existuje minimum lidí, kteří se shodnou na rozložení kláves, přepínání klávesnic, atd.. Celý problém ještě násobí existence různých prostředí v~Linuxu (konzole, X~Window, připojení přes terminál nebo telnetem a konečně jednotlivé programy), která vyžadují různé přístupy pro vytváření národní klávesnice a poskytují různě omezené prostředky. <p> Národní klávesnici je nutné podobně jako fonty nainstalovat zvlášť na textovou konzolu a zvlášť do X. Při zkoušení klávesnice nezapoměňte, že mnoha programům je třeba pomoci, aby pracovaly s~osmibitovými znaky (viz <ref id="osmbit" name="dále">). Asi nejmenší problémy v~tomto ohledu jsou s~editorem vi, proto nově nainstalovanou klávesnici testujte nejdříve zkušebním psaním v tomto editoru. <p> Zde uvedené informace mají obecný charakter. Systém, který používáte, může mít podporu pro české prostředí už zabudovanou. Proto je lépe nahlédnout nejprve do kapitoly~<ref id="distribuce" name="Jak počeštit různé distribuce"> a teprve až pokud tam nenaleznete jednodušší řešení, pokoušet se o~řešení popsaná v~následujících odstavcích. <sect1>Zobrazování znaků v ISO-8859-2 <p> ISO-8859-2 fonty pro konzolu a program setfont, kterým se zavádí, jsou součástí balíku kbd už od počátků Linuxu. Pokud na některém systému kbd není, je možné jej získat například na <url url="ftp://ftp.muni.cz/pub/linux/system/keyboards/kbd-0.96.tar.gz">. <p> Pro adaptéry VGA a lepší stačí zavést font příkazem <tscreen><code> setfont lat2-16.psf </code></tscreen> <p> (nikoli <tt>lat2-08.psf</tt> výšky 8, jak je doporučováno v~dokumentaci k~cs-tools), pro adaptéry EGA je vhodný font <tt>lat2-14.psf</tt> (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 <tt>iso02*</tt>. Zavedení fontu se projeví na všech virtuálních terminálech (konzolích). <sect1>Klávesnice pro konzolu <p> Instalace národní klávesnice pro konzolu by neměla činit žádné problémy. Z~balíku cs-tools <url url="ftp://ftp.muni.cz/pub/localization/linux/obsolete/cs-tools/cs-tools-0.19.tar.gz"> se zkopírují soubory <tt>*.map</tt> z~adresáře <tt>console</tt> do adresáře <tt>/usr/lib/kbd/keytables</tt>. Zvolená mapa klávesnice se pak zavede příkazem <tscreen><code> loadkeys cz-lat2.map </code></tscreen> <p>v~některém ze startovacích skriptů. V~distribuci Redhat lze provést nastavení pomocí řádku KEYTABLE v~souboru <tt>/etc/sysconfig/keyboard</tt>: <tscreen><verb> KEYTABLE="/usr/lib/kbd/keytables/cz-prog.map </verb></tscreen> <p> Po provedení příkazu loadkeys by se klávesnice měla začít chovat jako česká. Přepínání mezi českou a anglickou klávesnicí lze provádět pomocí klávesy AltGr (tedy pravý Alt). Ovšem toto přepnutí je jen dočasné, po uvolnění této klávesy máme opět klávesnici anglickou. Klávesa Pause slouží jako zámek klávesy AltGr, proto ji použijeme vždy, když chceme mít českou klávesnici delší dobu. <sect2>Jak to funguje <p> Kernel při čtení klávesnice dostává údaje o stisknuté klávese ve formě tzv. scankódů. Jsou to čísla v~šestnáctkové soustavě. Např. po stisku klávesy 'q' kernel obdrží 0x10 (tedy 16 v~desítkové soustavě), po jejím uvolnění 0x90. Některé klávesy, jako např. Delete posílají escape-scankódy 0xe0xx, tedy dvoubajtové. A aby v~tom byl ještě větší zmatek, tak jedna klávesa (samozřejmě vše, co zde píšu, se týká platformy i386), konkrétně Pause, generuje scankód 0xe1 0x1d 0x45. Jak vidíte, nemá to kernel jednoduché. Proto Linus zavedl tzv. klávesové kódy (keycodes). Každá klávesa na klávesnici dostane přiřazený svůj kód a jádro si potom scankódy převádí na keykódy (funkce getkeycode v~<tt>drivers/char/keyboard.c</tt> - mimochodem docela zajímavé čtení). Samozřejmě toto mapování lze nastavit i na uživatelské úrovni, ale to bych překračoval rámec tohoto dokumentu. Nyní tedy musíme nějak říci jádru, že chceme psát české znaky. Existuje mnoho způsobů, jak to udělat. Yenyovo (Jan Kasprzak <htmlurl url="mailto:kas@fi.muni.cz" name="kas@fi.muni.cz">) řešení je poměrně elegantní, proto si ho zde popíšeme. <p> Jádro Linuxu od verze 0.99pl10 podporuje dynamické změny klávesnice. Proto si můžeme nadefinovat, jak se bude Linux chovat při stisku kterékoliv klávesy. Standardní klávesová mapa (<tt>drivers/char/defkeymap.map</tt>) se pro naše účely moc nehodí, protože používá kódování ISO-Latin1. Proto Jan "Yenya" Kasprzak vytvořil nové mapy klávesnice, která (až na některé rozumné výjimky) plně odpovídá klávesnici českého psacího stroje. <sect1>Alternativa: Balík ucw-cs-1.1.tar.gz <p> Tento balík se elegantně vyrovnává s~problémy popsanými v~kapitole <ref id="ramecky" name="Rámečky programů MC & spol. nejsou čitelné">. <p> Balík se nachází na <url url="ftp://atrey.karlin.mff.cuni.cz/pub/local/mj/linux/ucw-cs-1.1.tar.gz">. Po jeho rozbalení a přepnutí do adresáře <tt>ucw-cs-1.1</tt> se instalace provede příkazy <tscreen><code> 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 </code></tscreen> <p> do startovacích skriptů <tt>/etc/rc*</tt> je nutné přidat příkazy <tscreen><code> setfont ucw16.psf mapscrnuni < /usr/lib/kbd/consoletrans/latin2.table loadkeys cs-head cs-ucw cs-compose </code></tscreen> <p> a do souborů <tt>/etc/profile</tt> a <tt>/etc/csh.cshrc</tt> nebo <tt>$HOME/.bashrc</tt> a <tt>$HOME/.cshrc</tt>, případně do <tt>/etc/issue</tt> je nutné přidat příkaz, který zajistí přepnutí na uživatelské mapování (čeho - klávesnice, obrazovky nebo obojího?): <tscreen><code> /bin/echo -en "\033(K" </code></tscreen> <p> Pokud se při spuštění programu loadkeys objeví chybové hlášení jako <tscreen><verb> Keymap 12: permission denied </verb></tscreen> <p> 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, a výsledkem je zmíněné hlášení. <p> Při použití balíku <tt>ucw-cs-1.1.tar.gz</tt>, který je popsán dále stačí zkopírovat obsah adresáře <tt>keymaps</tt> do <tt>/usr/lib/kbd/keytables</tt> a zavést mapu klávesnice příkazem <tscreen><code> loadkeys cs-head.map cz-type.map cs-compose.map </code></tscreen> <p> (mapa klávesnice je rozložena do několika souborů, které příkaz <tt>loadkeys</tt> spojí a zavede jako jednu mapu). Místo <tt>cz-type.map</tt> (český psací stroj) může být <tt>cs-ucw.map</tt> (akcenty se píšou se stisknutým Caps Lock), <tt>cz-prog.map</tt> (česká programátorská), <tt>sk-type.map</tt> (slovenský psací stroj) nebo <tt>sk-prog.map</tt> (slovenská programátorská), podle toho, komu co vyhovuje. <sect1>Tipy a problémy <sect2>Vypadnutí fontu při přepnutí do X a zpět <p> 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 - <url url="ftp://ftp.excom.spb.su/pub/linux/Utils/Console/vtfontd-1.0.1.tar.gz">, který také umožňuje používat na jednotlivých konzolích různé fonty. <sect2>V Midnight Commanderu nelze přepínat fonty <p> 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 (<tt>drivers/char/vt.c</tt> řádek 212 - opět velmi zajímavé čtení). <sect2>Rámečky programů MC & spol. nejsou čitelné<label id="ramecky"> <p> 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 <tt>-a</tt>, který způsobí, že mc bude pro zobrazování rámečků používat ASCII znaky plus, minus a svislou čáru, což sice nepůsobí příliš esteticky, ale je to rozhodně lepší, než když se místo rámečků zobrazují písmena. <p> Vzhledem k~tomu, že programy používající čárovu 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 <url url="http://linux-cz.inecnet.cz/ftp/mc/">. <p> Tyto databáze je nutno zkopírovat <tt>termcap</tt> do <tt>/etc/termcap</tt> a <tt>terminfo</tt> do <tt>/usr/lib/terminfo/l/linux</tt> a znovu se přihlásit. Ke konverzi mezi zdrojovou a binárni 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 čeština Pavla Mareše <url url="ftp://atrey.karlin.mff.cuni.cz/pub/local/mj/linux/ucw-cs-1.1.tar.gz">, která používá Unicode. <sect2>Snadné přepínání češtiny a angličtiny <p> 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ů. <itemize> <item>Cz: <tscreen><verb> loadkeys cz-lat2.map setfont lat2-16.psf </verb></tscreen> <item>Us: <tscreen><verb> loadkeys us.map setfont </verb></tscreen> </itemize> <p> 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 se přepínají pro všechny (není-li použito vtfontd). <sect2>Český text je i po nastavení správného fontu nečitelný <p> Tento problém může být způsoben jiným typem kódování. Doporučuji text překódovat pomocí utility <ref id="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 ftp.inet.cz. <sect2>Lepší konzolové fonty <p> 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: <p> Soubory s~fontem jsou umístěny v~<tt>/usr/lib/kbd/consolefonts</tt>. Používají se dva formáty těchto souborů, formát psf, který je popsán v~souboru <url url="/usr/lib/kbd/consolefonts/psffiles.doc">, 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. <p> Je také možné použít editor fontů chedit, který se nachází na <url url="ftp://ftp.muni.cz/pub/linux/apps/misc/chedit.tag.gz">. Je poněkud zastaralý a umí editovat pouze fonty ve formátu psf. <sect2>Změna qwerty na qwertz <p> Obě české klávesové mapy, tedy <tt>cz-lat2.map</tt> i <tt>cz-lat2-prog.map</tt>, mají standardní rozložení qwerty, jste-li zvyklí na rozložení qwertz, není nic jednoduššího než zaměnit písmenka y a z v~klávesové mapě, tedy v~souboru <tt>cz-lat2.map</tt>, případně <tt>cz-lat2-prog.map</tt>: <tscreen><verb> ... keycode 21 = z ... keycode 44 = y ... </verb></tscreen> <sect2>Jediný dvojhmat z~Woken, který znám je Alt+Shift... <p> 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 <tt>cz-lat2.map</tt>: <p> upravíme řádek s~keycode 42 (klávesa shift) <tscreen><verb> keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift AltGr_Lock\ Shift AltGr_Lock Shift Shift Shift Shift Shift Shift </verb></tscreen> <p> ...vše samozřejmě na jednom řádku. Potom již bude kombinace Left Shift+LeftAlt fungovat stejně jako klávesa Pause, tedy pro přepínání klávesnic. <sect2>Zdroje <p> <itemize> <item> <url url="ftp://ftp.muni.cz/pub/localization/linux/obsolete/cs-tools/"> Balík české podpory pro Linux - cs-tools z~větší části zastaralý. <item> <url url="ftp://sunsite.unc.edu/pub/Linux/system/"> Balík kbd - programy chvt, dumpkeys, getkeycodes, loadkeys, mapscrn, setfont, setkeycodes a další. Spousta fontů a klávesových map. <item> <url url="ftp://ftp.inet.cz/pub/UNIX/"> Různé fonty - mc.psf (font pro MC), font.winux (CP1250+IL2) </itemize> <sect2>Použité materiály <p> <itemize> <item> Zpravodaj ÚVT MU, březen 1994: Pavel Ševeček - Ufff, zase ta čeština! Luděk Matyska - Čeština v~Unixu <item> Manuálové stránky console, console_ioctls, dumpkeys, getkeycodes, keytables, loadkeyssetfont, setkeycodes, showkey <item> Dokumentace balíků cs-tools a kbd. <item> Vlastní zkušenosti. <item> Zdrojové texty Linux 2.0.29 - Here you can find virtually everything you'd like to know. </itemize> <sect>Lokalizace X~Window Systemu<label id="Xwindow"> <p> Základem lokalizace X~Window Systemu je instalace fontů a klávesnicových map použitelných ve všech programech v~tomto prostředí. Dále je možné lokalizovat jednotlivé programy, zejména window managery. <sect1>Fonty v~X~Window System <p> Server v~X~Window System umí používat různé druhy fontů. Soubory s~fonty mohou být buď uloženy přímo na disku X serveru (nebo v paměti ROM u X-terminálů), nebo mohou být zpřístupněny po síti pomocí tak zvaného font serveru. Fonty mohou být bitmapové nebo škálovatelné (novější servery umí škálovat - to je zvětšovat a zmenšovat - i bitmapové fonty, ale kvalita je velmi odpuzující). Bitmapové fonty jsou uloženy, jak název napovídá, v~podobě dvoubarevných bitových map. I když je možné vytvářet fonty přímo jako bitové mapy, profesionální bitmapové fonty jsou zpravidla vyrastrované škálovatelné fonty. Nápad, že by bylo možné použít fonty z~TeXu, je dobrý (existuje i konvertor pk2bm), ovšem TeXovské 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é. <p> Bitmapové fonty se distribuují zpravidla v~textových souborech ve formátu .bdf (Bitmap Distribution Format). X server ovšem rychleji pracuje s~fonty v~binárním formátu. Preferovaným binárním formátem pro servery X11R6 a X11R5 je formát .pcf. Pro ušetření diskového prostoru mohou být na většině serverů (včetně volně šířených XFree86) fonty zkomprimované programem gzip nebo compress. Starší X servery (X11R4) používaly jiné formáty binárních fontů - například .snf. Pro konverzi různých formátů fontů jsou dostupné programy bdftopcf, bdftosnf a další. <p> Fonty v~různých kódováním mohou být buď v~různých adresářích (pak je nutné všechny adresáře uvést v~konfiguraci X serveru, například u XFree86 v~řádcích FontPath v~sekci Files v~souboru <tt>/etc/X11/XF86Config</tt>) nebo ve stejných adresářích, pak musí mít soubory obsahující stejné fonty ale s~různým kódováním různá jména. <p> Na X~serveru jsou fonty uložené v~několika adresářích, jejichž jména bývají uvedena v~konfiguračním souboru X~serveru, například u XFree86 v~řádcích FontPath v~sekci Files v~souboru <tt>/etc/X11/XF86Config</tt>. V~každém z~těchto adresářů musí být soubor <tt>fonts.dir</tt>, který se vytvoří (případně aktualizuje) příkazem <tscreen><code> mkfontdir [ adresář ] </code></tscreen> <p> Vzhledem k~tomu, že jsou názvy fontů velmi dlouhé (viz dále), poskytuje X~Window System možnost používat přezdívky, které jsou definovány pomocí řádků v~souboru <tt>fonts.alias</tt> tvaru: <tscreen><verb> fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 </verb></tscreen> <p> Pokud si chce uživatel nainstalovat vlastní fonty a nemá možnost měnit konfigurační soubor, může umístit fonty do libovolného adresáře, provést <tscreen><code> mkfontdir adresář xset +fp adresář </code></tscreen> <p> který zajistí přidání zadaného adresáře na začátek seznamu adresářů s~fonty (alternativou je <tt>xset fp+ adresář</tt>, který přidá adresář na konec seznamu; příkaz <tt>xset -fp adresář</tt> naopak adresář ze seznamu odebere; a konečně příkazem <tt>xset fp rehash</tt> zajistíme nové načtení seznamu fontů, po jejich změně - bez restartování X~serveru). <p> Fonty v~X se rozlišují pomocí jmen, která se skládají ze 14 složek. Příkladem jména může být -adobe-times-medium-r-normal--12-120-75-75-p-64-iso8859-2. <table><tabular ca="lll">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í @ </tabular> <caption> Složky jména fontu v X11 </caption> </table> <p> Jeden výrobce může dodávat různá písma. Základní vzhled písma je dán rodinou. V~jedné rodině může být mnoho řezů písma, které se liší tučností (tloušťkou tahů), šířkou, sklonem, případně i tím, zda znaky mají patičky (serif) nebo jsou bez nich (sans serif). U jednotlivých rodin, případně řezů je důležitou charakteristikou i mezerování. V~proporcionálních písmech (spacing=p) zabírá znak 'i' menší šířku než znak 'm'. Proporcionální písma se používají v~knihách, časopisech i na WWW stránkách a jsou vhodná pro textové dokumenty. Písmo pevné šířky je známé z~psacího stroje, je vhodné pro výpisy programů apod., písmena v~různých řádcích jsou pod sebou. I u tohoto písma mohou některé znaky přečnívat z~prostoru, který je jim vymezen (spacing=m). Pro xterm a další programy, které na obrazovce přepisují jednotlivá písmena, je nutné písmo, které má pevnou šířku, a u něhož se všechny znaky vejdou do vymezeného prostoru, tak zvané cellbox (spacing=c). Přitom některá písma v~X (například neskloněná písma Adobe Courier) mají uvedeno spacing=m, i když ve skutečnosti mají spacing=c a je tedy možné je používat jako fonty pro xterm. <p> 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 <url url="http://www.biz.net.pl/english/x-fonts/index.html"> nebo na <url url="ftp://ftp.agh.edu.pl/pub/utils/x11/fonts/pl/">, ve formátu *.rpm na <url url="ftp://ftp.muni.cz/pub/linux/distributions/redhat/contrib/i386/"> nebo <url url="ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.redhat.com/pub/contrib/i386/"> soubory <url url="ftp://ftp.muni.cz/pub/linux/distributions/redhat/contrib/i386/ISO-8859-2-X11-fonts-75dpi-970301biznet-3.i386.rpm">, <url url="ftp://ftp.muni.cz/pub/linux/distributions/redhat/contrib/i386/ISO-8859-2-X11-fonts-100dpi-970301biznet-3.i386.rpm"> a <url url="ftp://ftp.muni.cz/pub/linux/distributions/redhat/contrib/i386/ISO-8859-2-X11-fonts-basic-970301biznet-3.i386.rpm"> 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 <tt>X11/fonts/xfonts</tt>. Tyto fonty ovšem údajně nejsou free. <p> Pro použití v~programu xterm jsou potřeba fonty pevné šířky, tj. neproporcionální, programy jako Netscape používají převážně proporcionální fonty. <p> Přestože rozlišení většiny displejů je okolo 75dpi, je vhodné při dostatku místa na disku nainstalovat i fonty v~rozlišení 100dpi, zvětší se tím počet dostupných velikostí jednotlivých písem. <p> Většině programů je možné stanovit, jaký mají používat font pomocí parametru <tt>-fn</tt>: <tscreen><code> xterm -fn '-misc-fixed-medium-r-normal--14-*-iso8859-2' </code></tscreen> neuvedené složky je možné nahradit znakem hvězdička. Další možností je upravit soubor atributů (resources) příslušného programu. To může provést buď správce počítače úpravou souboru z~adresáře <tt>/usr/X11R6/lib/X11/app-defaults</tt>, 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. <sect1>Klávesnice v~X pomocí XKB <p> Lokalizace klávesnice v~X je nejtvrdším oříškem ze základních lokalizačních úloh v~Linuxu. Je to způsobeno zejména tím, že česká a slovenská klávesnice používá pro psaní části znaků s~akcenty mrtvé klávesy (klávesy odpovídající samostatné čárce a háčku na psacím stroji, při jejichž použití se neposouvá válec; na počítači při stisknutí mrtvé klávesy aplikace nic nenačte ani nevypíše, ale význam další stisknuté klávesy je změněn, například místo krátkého 'a' se načte dlouhé 'á'). Bohužel podpora mrtvých kláves byla až do verze X11R5 záležitostí X serveru, a některé X servery mrtvé klávesy podporovaly, jiné ne. <p> Ve verzi X11R6.1 se objevil nový standard pro práci s~národními klávesnicemi - X Keyboard Extension (XKB) a vstupních metod. Bohužel pro použití XKB musí aplikace obsahovat určitý inicializační kód, ale vzhledem k~tomu, že toto rozšíření je poměrně nové, mnoho aplikací, tento kód neobsahuje! <p> V~implementaci XFree86 používané ve většině distribucí Linuxu byla podpora mrtvých kláves na serveru až do verze XFree86 3.2, od verze 3.3 lze mrtvé klávesy řešit pouze pomocí XKB. Tím došlo u nových verzích k~nepříjemné situaci, kdy jediný podporovaný mechanismus mrtvých kláves mnohé aplikace neumějí používat. <p> Stano Meduna dočasně vyřešil tento problém patchem na knihovnu libX11, který způsobí, že pokud aplikace správně neinicializuje vstupní metody, zajistí jejich inicializaci přímo zmíněná knihovna. Některé aplikace (jako například Netscape 4) se ovšem i přes to používání mrtvých kláves brání. <p> Dalším problémem je chyba v~XKB, která se projeví při použití jiné znakové sady než ISO-8859-1 u znaků, které nejsou zadávány pomocí mrtvých kláves, a které jsou obsaženy ve znakové sadě ISO-8859-2 i ISO-8859-1 (znaky á, é, í, ý, případně ú). Chyba se projevuje tak, že klávesy generující zmíněné znaky nefungují (je však stále možné zadávat tyto znaky pomocí mrtvé klávesy). Oprava této chyby existuje, dokud se nedostane do distribuce X, je však nutné chybu obcházet například používáním symbolů il2_* nebo použitím xmodmap. <p> Nejnovějším balíkem pro lokalizaci klávesnice v~X~Window Systému je <url url="ftp://ftp.fi.muni.cz/pub/localization/linux/X11/XKB-czsk-forcedIM-RH5-0.02.tar.gz">. Tento balík v~sobě zahrnuje starší balíky <tt>XKB-cz-X11R6.3.tar.gz</tt>, <tt>xlib-forcedIM-0.01.tar.gz</tt> (který obsahuje i přeloženou patchovanou knihovnu z~<url url="ftp://ftp.levonet.sk/pub/linux/localization/libX11.so.6.99">) a cs_CZ locale (už obsažené v~glibc 2.0.7, ale chybějící v~glibc 2.0.5). Ačkoli podle názvu balíku se zdá, že je určen výhradně pro Redhat 5.x, je použitelný i pro jiné distribuce - základní podmínkou však je, aby X~Window System měl xkb rozšíření, což lze zjistit podle existence adresáře <tt>/usr/X11R6/lib/X11/xkb</tt>. Pokud tento adresář chybí, nezbývá než provést upgrade na verzi X, která podporu XKB obsahuje. <p> Instalace balíku po jeho rozbalení se provede spuštěním skriptu <tt>install.sh</tt>. Tento 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 <tt>id:5:initdefault:</tt> v~souboru <tt>/etc/inittab</tt> na 3, a hodnotu 5 vrátit až po ověření, že X skutečně fungují. <p> Instalační skript <tt>install.sh</tt> z~balíku v~mnoha případech nefunguje správně. V~další verze by to mělo být lepší. Jedním z~případů, kdy skript nefunguje, je když systém nepoužívá knihovnu glibc označovanou také jako libc6 nebo libc2, ale libc5. Je tedy vhodné se přesvědčit, jakou verzi knihovny libc používá program X: <tscreen><verb> ldd `which X` | grep libc </verb></tscreen> <p> Pokud vypsaný řádek obsahuje libc.so.5, používají X knihovnu libc5, a po instalaci bude nutné ručně zkopírovat knihovnu <tt>libX11-libc5.so.6.99</tt> do <tt>/usr/X11R6/lib/libX11.so.6.99</tt>. <p> Pokud skript odmítne instalaci, je třeba příslušné části skriptu vykomentovat (nebo vše nainstalovat ručně). <p> Pokud selže patch na soubor <tt>/usr/X11R6/lib/X11/xkb/keymap.dir</tt>, je možné do tohoto souboru ručně přidat řádky <tscreen><verb> -------- -------- xfree86(us_cz_qwerty) -------- -------- xfree86(cz_us_qwerty) -------- -------- xfree86(us_cz_qwertz) -------- -------- xfree86(cz_us_qwertz) -------- -------- xfree86(us_cz_prog) -------- -------- xfree86(cz_us_prog) -------- -------- xfree86(us_sk_qwerty) -------- -------- xfree86(sk_us_qwerty) -------- -------- xfree86(us_sk_qwertz) -------- -------- xfree86(sk_us_qwertz) -------- -------- xfree86(us_sk_prog) -------- -------- xfree86(sk_us_prog) </verb></tscreen> <p> Po instalaci je třeba změnit sekci "Keyboard" v~<tt>/etc/X11/XF86Config</tt>: <itemize> <item>zakomentovat řádky LeftAlt, RightAlt, LeftCtl, RightCtl a ScrollLock <item>zakomentovat řádek XkbDisable <item>změnit řádek XkbKeymap na XkbKeymap "xfree86(<map_name>)", kde <map_name> je vybraná klávesnice z <tscreen><verb> us_cz_qwerty us_cz_qwertz us_cz_prog cz_us_qwerty cz_us_qwertz cz_us_prog us_sk_qwerty us_sk_qwertz us_sk_prog sk_us_qwerty sk_us_qwertz sk_us_prog </verb></tscreen> </itemize> <p> Doporučuji vybírat z~klávesnic <tt>us_*</tt>. S~klávesnicemi, které mají primární české nebo slovenské rozložení mohou být nepřekonatelné problémy, pokud se přihlašujete na nelokalizované stroje (tzn. pokud spustíte například xterm z~nelokalizovaného stroje a X-server je lokalizovaný). <p> Dále je nutné nastavit <tscreen><verb> setenv XLIB_FORCE_I18N setenv LC_CTYPE cs </verb></tscreen> <p> a pak už je možné spustit X a vyzkoušet klávesnici v~jednotlivých programech. <p> Nezapoměňte, že nestačí jenom lokalizovat klávesnici je nutné mít také nainstalované vhodné fonty (mnoha aplikacím, napřílad xtermu, je možné předepsat font pomocí parametru <tt>-fn</tt>) a zejména je nutné mít zajištěno, že příslušný program umí z~klávesnice načítat a pracovat s~osmibitovými znaky. Pro vyzkoušení je vhodný editor vi nebo vim, který s~osmibitovými znaky nemá problémy (na rozdíl od příkazového řádku v~tcsh nebo bash). Informace k~tomuto tématu jsou v~části <ref id="shelly" name="lokalizace shellů">. <sect2>Tipy a triky <p> V~případě problémů je možné nastavit <tscreen><verb> setenv XKB_DEBUG </verb></tscreen> <p> a spustit libovolnou X aplikaci (například xterm). Při jejím spuštění se musí vypsat <tscreen><verb> XKEYBOARD (version 1.00/1.00) OK! </verb></tscreen> <p> pokud se vypíše <tscreen><verb> XKEYBOARD extension not present </verb></tscreen> <p> znamená to, že nemáte nainstalované nebo zapnuté XKB (v~XF86Config musí být křížek '#' na začátku řádku XkbDisable). <p> Pokud jste zvyklí psát kroužkované 'ů' jako mrtvý haček a 'u', přidejte do souboru <tt>/usr/X11R6/lib/X11/locale/iso8859-2/Compose</tt> řádky <tscreen><verb> <dead_caron> <U> : "\331" Uring <dead_caron> <u> : "\371" uring </verb></tscreen> <p> (velké mezery jsou tvořeny tabelátory). <p> Nefungující klávesy á, é, í, ý, případně ú by měly jít opravit řádky tvaru <tscreen><verb> keycode 16 = 0x1fd ampersand 7 ampersand keycode 17 = 0x1e1 ??? keycode 18 = 0x1ed keycode 19 = 0x1e9 keycode 34 = 0x1fa </verb></tscreen> <p> Protože přesné tvary řádků závisí na použité klávesnici, je vhodnější používat přezdívky il2_*, jako je tomu v balíku <p> Verzi X je možné zjistit příkazem <tscreen><verb> X -showconfig </verb></tscreen> <sect1>Klávesnice v~X pomocí xmodmap <sect2>Řešení z~cs-tools <p> Jedná se o staré řešení pro X servery, které nepodporují XKB. Aby fungovaly mrtvé klávesy, je nutná jejich podpora na X serveru. <p> Toto řešení je zde uvedeno pouze pro lepší orientaci, není příliš čisté, a může způsobovat problémy. Pokud byste se přesto rozhodli jej použít, je to na vaše vlastní nebezpečí, neobracejte se na autora ani s~žádostmi o pomoc nebo radu. <p> Řešení je obsaženo v~balíku <url url="ftp://ftp.muni.cz/pub/localization/linux/obsolete/cs-tools/cs-tools-0.19.tar.gz" name="cs-tools">, v~adresáři <tt>X11/Xlib-Compose-1.1</tt>. 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. <sect2>Řešení od Zdeňka Kabeláče <p> Novější řešení pochází od Zdeňka Kabeláče <url url="mailto:kabi@fi.muni.cz" name="kabi@fi.muni.cz">: <p> Jedná se o pokračování modifikace varianty s pomocí Xmodmap (Viz např <url url="http://www.fi.muni.cz/˜kabi/linux.html">); původní Xmodmap se nahradí novější variantou <url url="http://www.fi.muni.cz/˜kabi/Xmodmap">, čí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, C není příliš srozumitelný): <p> 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 :-)) <p> 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 <url url="http://www.fi.muni.cz/˜pekon/Compose">. <p> 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ř. netscape aj. (lze na to použít i LD_PRELOAD s~několika hacknutými patchnutými funkcemi, ale tato varianta je přeci jen jednodušší). Protože v~této variantě nelze používat mrtvé klávesy, musel jsem naskládat standardně česky používane klávesy na F-keys - velká písmena se píší se shiftem - tj. klávesnice C 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. <p> 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ávne, jenže uvidíte špatně :-) <p> 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. <p> 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. <sect1>Když všechno selže <p> Pokud selžou všechny možnosti lokalizace klávesnice v~X, je možné lokalizovat klávesnici alespoň pro některé aplikace, zejména pro xterm, jak je popsáno v~kapitole věnované <ref id="xterm" name="lokalizaci jednotlivých aplikací">. <sect>Locales aneb lokalizace knihovny libc<label id="locale"> <p> Pod názvem "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. <sect1>Účel locales a jejich kategorie <p> 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í 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, datumu a času, názvů dnů v~týdnu a měsíců. Pomocí locales je také možné zařídit, aby programy vypisovaly svá hlášení ve vybraném jazyce. Přitom toto vše je možné změnit, aniž by bylo nutné programy rekompilovat! <p> Locales je možné nastavit buď všechny najednou, nebo pouze pro vybrané kategorie. Kategorie locales jsou následující: <table><tabular ca="ll">Kategorie | Význam @ <tt>LC_COLLATE</tt> | Popisuje všechny znaky abecedy a určuje pořadí znaků při lexikografickém třídění. Slouží funkcím strcoll() a strxfrm() pro porovnávání řetězců. @ <tt>LC_CTYPE</tt> | Používána pro dělení znaků do tříd jako: malá, velká písmena, oddělovače, apod.. Tuto kategorii používají funkce jako isupper(), toupper(), ... a funkce pro práci s~vícebajtovými znaky jako jsou mblen(), wctomb(). @ <tt>LC_MESSAGES</tt> | Používána pro zprávy zobrazované programy, tzv. katalogy zpráv. @ <tt>LC_MONETARY</tt> | Definuje formátování výpisů peněžních informací. Používá se ve funkci localeconv(). @ <tt>LC_NUMERIC</tt> | Definuje formátování výpisů čísel. Používá se ve funkci localeconv(), někde i ve funkcích ze skupiny printf(). @ <tt>LC_TIME</tt> | Formát výpisu času a datumu, názvy a zkratky měsíců a dnů v~týdnu; používá se ve funkci strftime(). @ </tabular></table> <sect1>Způsob nastavování locales <p> Při používání locales se převážná většina programů řídí nastavením proměnných prostředí. Jejich názvy jsou stejné jako kategorie locales, navíc je možné použít proměnné <tt>LC_ALL</tt> a <tt>LANG</tt>, které slouží k~nastavení všech kategorií. <p> Při vyhodnocování, jaká lokalizace se má použít pro určitou kategorii, funguje většina programů následovně: Je-li nastavena proměnná <tt>LC_ALL</tt>, použije se její hodnota. Pokud nastavena není, pak se zkoumá nastavení proměnných <tt>LC_kategorie</tt>. Pokud není nastavena ani proměnná pro příslušnou kategorii, rozhoduje nastavení proměnné <tt>LANG</tt>. Není-li nastavena ani proměnná <tt>LANG</tt>, použije se implicitní hodnota "C". <p> Zmíněné proměnné se nastavují na hodnoty tvaru: <verb> jazyk[_ZEMĚ[.kódování]] </verb> <p> Zkratky jazyků stanovuje norma ISO 639, zkratky zemí norma ISO 3166 (viz <ref id="zeme_jazyky" name="příloha">). Kód češtiny je <tt>cs</tt>, slovenštiny <tt>sk</tt>, kód České republiky <tt>CZ</tt>, Slovenska <tt>SK</tt>. Země se uvádí z~toho důvodu, že některými jazyky se mluví ve více zemích, ve kterých se ovšem používá například jiné měna. <p> Pro češtinu by měla být použita hodnota <tt>cs</tt> nebo <tt>cs_CZ</tt>, pro slovenštinu <tt>sk</tt> nebo <tt>sk_SK</tt>. <p> 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 ještě o jeden důvod ke zmatení více, protože kód češtiny je shodný s ISO kódem bývalého Československa. <p> Přípona <tt>.kódování</tt> by měla sloužit k~výběru správných locale informací na počítačích, které nepodporují například kódování ISO-8859-2 (v~případě, že by byl adresář <tt>/usr/share</tt> sdílen více počítači například pomocí NFS). Tato možnost není dosud dobře implementována a navíc není ani shoda, jaký řetězec má být pro kódování použit, takže je možné se setkat se zápisy <tt>ISO-8859-2</tt>, <tt>ISO_8859-2</tt>, <tt>ISO8859-2</tt>, <tt>iso88592</tt>, za kterými ještě někdy bývá dvojtečka a rok přijetí standardu kódování ISO-8859-2. Podle všeho je lepší příponu <tt>.kódování</tt> vůbec nepoužívat. <sect1>Které kategorie locales používat <p> Přestože v~mnoha návodech je lakonické sdělení "nastavte proměnnou <tt>LANG</tt> na <tt>cs</tt>" (někde je ještě chybně <tt>cz</tt>), je užitečné se zamyslet, jestli skutečně chcete nastavit na češtinu všechny kategorie z~locales. Při nastavení <tt>LC_ALL</tt> nebo <tt>LANG</tt> totiž hrozí nebezpečí, že některé programy nebo skripty přestanou fungovat. <p> Autoři programů totiž ne vždy dobře rozlišují, 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 <tt>ls -l</tt>, který může být jak vyvolán uživatelem, tak použit v~jiném programu nebo skriptu). <p> Autoři skriptů by proto měli zajistit, že skripty budou fungovat i při nastavených locales. Pokud ve svých skriptech očekávají, že výstupy programů budou v~nelokalizované formě, musí na začátku skriptu uvést příkazy <tscreen><code> LC_ALL=C; export LC_ALL LANG=C; export LANG </code></tscreen> <p> <em>Pokud pracujete se znakovou sadou ISO-8859-2, je velice vhodné mít nastavené přinejmenším <tt>LC_CTYPE</tt></em>. Bez tohoto nastavení 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). <sect1>Softwarové požadavky <p> Aby locales dobře fungovaly, je třeba mít instalovány knihovny libc verze alespoň 5.4.17. Ve v~Linuxu poměrně rozšířené verzi libc-5.3.12 jsou právě v~oblasti locales chyby. Pokud programy používají (lze zjistit příkazem <tt>ldd `which program`</tt>) knihovnu libc-2, pak se jedná o knihovnu glibc (také označovanou jako libc6 nebo libc2), která podporu locale obsahuje (od verze 2.0.7 obsahuje i české locales). 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é utilitu `gencat' a `msgfmt'. <sect1>Instalace <p> Nejdříve zjistěte v~jakém stavu má váš systém locales: Příkazem <tscreen><code> localedef --help </code></tscreen> <p> zjistíte (podle řádku s~textem <tt>System's directory for character maps:</tt>), v~jakém adresáři jsou očekávány mapy znaků. U systémů s~libc5 to bývá <tt>/usr/share/nls/charmaps</tt>, u systémů s~glibc <tt>/usr/share/i18n/charmaps</tt>. 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í provádět jednotlivé příkazy s~upravenými cestami. <p> 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 <url url="http://www.inf.upol.cz/~michlv/ftp/WG15-collection.tar.gz"> rozbalit jej do libovolného adresáře a z~rozbaleného adresáře <tt>WG15-collection</tt> zkopírovat adresáře <tt>charmaps</tt> a <tt>locales</tt> včetně obsahu do adresáře, ve kterém se očekává adresář <tt>charmaps</tt> s~mapami znaků: <tscreen><code> cp -r WG15-collection/charmaps /usr/share/nls cp -r WG15-collection/locales /usr/share/nls/locale </code></tscreen> <p> 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 <tt>XKB-czsk-forcedIM*</tt>, máte české a slovenské locales už také nainstalované. Zkrátka pokud příkaz <tscreen><code> locale -a | grep ^cs </code></tscreen> <p> nic nevypíše, bude nutné ještě stáhnout alespoň soubor <url url="/zip/czech/ftp.fi.muni.cz/pub/localization/locale/cs_CZ"> a umístit jej do adresáře <tt>/usr/share/nls/locale</tt>. <p> Ať už jste získali soubor s~českými locales z~balíku <tt>WG15-collection.tar.gz</tt> nebo samostatně, je nutné jej přeložit do binární podoby příkazy <tscreen><code> cd /usr/share/locale mkdir -p cs_CZ/LC_MESSAGES localedef -c -i /usr/share/nls/locale/cs_CZ \ -f /usr/share/nls/charmaps/ISO*8859-2* ./cs_CZ </code></tscreen> <p> Výsledkem bude adresář <tt>/usr/share/locale/cs_CZ</tt> obsahující sadu souborů se jmény <tt>LC_*</tt> a adresář <tt>LC_MESSAGES</tt>. <p> Pokud chcete používat (nebo některé vaše programy používají) pro čestinu jinou zkratku než <tt>cs_CZ</tt> (obvyklé je ještě <tt>cs</tt>, <tt>czech</tt> a výše zmíněné <tt>cs_CZ.kód</tt>, kde <tt>kód</tt> je <tt>ISO-8859-2</tt>, přičemž místo první pomlčky může být podtržítko, nebo může jedna nebo obě pomlčky zcela chybět a ještě může být za dvojtečkou uveden rok - je v tom obrovský nepořádek, navíc se někde může ještě vyskytnout <tt>cz</tt> místo počátečního <tt>cs</tt>), musíte vytvořit soubor <tt>/usr/share/locale/locale.alias</tt> (pokud existuje, pak pouze přidat řádky), obsahující <verb> cs cs_CZ czech cs_CZ jiná_přezdívka cs_CZ </verb> <p> Pak už můžete nastavovat proměnné <tt>LC_CTYPE</tt>, <tt>LC_COLLATE</tt> nebo <tt>LC_ALL</tt> a <tt>LANG</tt> a kochat se, jak to funguje. Nevytvářejte v adresáři <tt>/usr/share/locale</tt> symbolické odkazy, případné aliasy přidávejte do <tt>locale.alias</tt>! <p> Aby fungovala správně klasifikace znaků, je třeba nastavit proměnnou prostředí <tt>LC_CTYPE</tt> příkazem: <tscreen><code> export LC_CTYPE=cs </code></tscreen> <p> - tento způsob nastavování proměnné <tt>LC_CTYPE</tt> lze použít v~shellech bash a ksh; v~csh a tcsh se použije <tscreen><code> setenv LC_CTYPE cs </code></tscreen> <p> a ve starších shellech vycházejících z~Bourne shellu, sh, a jsh <tscreen><code> LC_CTYPE=cs export LC_CTYPE </code></tscreen> <p> Pro kompletní locales by se nastavila proměnnou prostředí <tt>LANG</tt> nebo <tt>LC_ALL</tt>. <p> Pokud chcete, aby pouze zprávy vypisované programy byly česky, nastavte proměnnou <tt>LC_MESSAGES</tt>: <tscreen><code> export LC_MESSAGES=cs </code></tscreen> <sect1>Jak to funguje <p> Při nastavení některé z~proměnných prostředí ovládajících locales se najde v souboru <tt>/usr/share/locale/locale.alias</tt> odpovídající hodnota, podle které se vybere adresář z~<tt>/usr/share/locale</tt> (nebo se tento adresář vybere přímo). V~adresáři odpovídajícím vybranému jazyku jsou binární soubory vygenerované příkazem <tt>localedef</tt> z~textových locales. Jména souborů jsou následující: <verb> LC_COLLATE, LC_MESSAGES, LC_NUMERIC, LC_CTYPE, LC_MONETARY, LC_TIME. </verb> <p> Pokud některý soubor smažeme a vytvoříme místo něj adresář se stejným jménem, pak po novém vygenerování souborů utilitou `localedef' se původní soubor umístí do tohoto adresáře se jménem začínajícím předponou SYS_. <p> Tohoto se nejčastěji využívá u <tt>LC_MESSAGES</tt>, kdy jsou do tohoto adresáře umísťovány katalogy zpráv. 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. <p> V~případě katalogů zpráv lze předepsat, kde se tyto katalogy mají hledat, pomocí proměnné prostředí <tt>NLSPATH</tt>. <verb> Např: export NLSPATH=/usr/share/locale/%L/LC_MESSAGES/%N.cat kde %N znamená jméno katalogu. %L znamená jméno lokalizace (dosazuje se z LC_MESSAGES). </verb> <p> Za oba tyto atributy si program dosadí správné hodnoty, když potřebuje informace o zvyklostech země. <p> Pokud je třeba v~<tt>NLSPATH</tt> zadat více adresářů, oddělují se dvojtečkou. <sect1>Katalogy zpráv aneb programy komunikující česky <p> Aby program mohl být přeložen do jiného jazyka je třeba, aby byly všechny zprávy z~tohoto programu vytaženy a umístěny v~nějakém externím souboru. Jeho záměnou za jiný docílíme změny všech zpráv. V~současné době existují dva způsoby totoho a to:<p> <itemize> <item>a) Použití katalogových služeb libc. <item>b) Použití GNU gettextu (tyto služby budou integrovány v~knihovně glibc-2 (alias libc-6) </itemize> <p> ad a) Toto je starší řešení a také pracnější při programování. Člověk musí paralelně s~programem tvořit také katalog zpráv. Katalog zpráv je pak pomocí `gencat' vytvořen ze zdrojového tvaru katalogu. (katalog v~binárním tvaru mívá příponu .cat). V~programu se používají funkce catopen, catclose, catgets (popis viz man). <p> ad b) Toto je novější řešení a zdá se mi, že jednodušší pro tvorbu a údržbu programů. Pro programování je třeba stáhnout z~nějakého ftp balík gettext. V~programu pak každou zprávu, kterou vypisujete, napíšete jako argument funkce gettext. Po každé změně programu pak vygenerujete všechny zprávy, které jsou v~programu, a můžete je překládat. Také lze tento nový katalog 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> Pro oba způsoby se pak katalog zpráv umístí do adresáře <tt>/usr/share/locale/cs_CZ.iso88592/LC_MESSAGES</tt>. <sect2>Počešťování <p> Nejprve zjistíme, zda je aplikace napsaná internacionálně. To lze několika způsoby: <itemize> <item>pomocí příkazu strace zjistíme, zda se aplikace snaží někde hledat katalog zpráv. Musíme však mít před spuštěním nastavenu proměnnou prostředí <tt>LANG</tt> nebo <tt>LC_ALL</tt> na příslušný jazyk. Např: <tt>export LC_ALL=cs</tt>. <item>podíváme se do zdrojáků a hledáme katalogy zpráv. Mívají přípony .msg, .m, .cat, .pot, .po . </itemize> <p> Když internacionálně napsaná není, pak máme smůlu, nebo ji můžeme upravit. <p> Je-li internacionálně napsaná, pak může používat jeden ze dvou mně známých způsobů a to: <enum> <item>funkce knihovny libc (catopen, catclose, catgets) <item>GNU gettext (integrován do GNU libc 2.xx (libc-6)) </enum> <sect2>Funkce knihovny libc <p> Tento způsob je starším způsobem a také více přenositelným 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 do několika množin. Katalog vypadá následovně: <verb> $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 ... </verb> <p> Řádky které začínají znakem '&dollar', 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. <p> &dollar #Jmeno_zpravy1 dále poznámky, třeba originální zpráva # Vlastní zpráva 1 <p> Takže pokud máme napsán katalog, můžeme jej zkompilovat příkazem gencat, jehož syntaxe je: <verb> gencat [-new] [-or] [-lang C|C++|ANSIC] catfile msgfile [-h <header-file>]... -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 </verb> <p> Po kompilaci již máme výsledný katalog, který pak stačí umístit do adresáře s~ostatními katalogy. <p> !!!POZOR!!! Pokud překládáme katalog z~jiného jazyka, je třeba zachovat pořadí i počet zpráv. <p> Příklad: <p> Uděláme malý příklad použití tohoto způsobu: <enum> <item>Napíšeme program test.c <verb> #include <locale.h> #include <stdio.h> #include <features.h> #include <nl_types.h> #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; } </verb> <item>Napíšeme soubor zpráv test.m: <verb> $set 10 #Testlist $ #Welcome # Vítejte v testovacím programu $ #Autor # Autor: Vladimir Michl </verb> <item>Zkompilujeme soubor zpráv do katalogu: <verb> gencat -new -lang C test.cat test.m -h test-cat.h </verb> <item>Program přeložíme: <verb> gcc -o test test.c </verb> <item>Umístíme katalog do adresáře s~českými katalogy a nastavíme proměnnou <tt>NLSPATH</tt> do tohoto adresáře <verb> mv test.cat /usr/share/locale/cs_CZ.iso88592/LC_MESSAGES export NLSPATH=/usr/share/locale/%L/LC_MESSAGES/%N.cat </verb> <item>Nastavíme proměnnou <tt>LC_ALL</tt> a spustíme test <verb> LC_ALL=C test LC_ALL=cs_CZ.ISO-8859-2 test </verb> </enum> <sect2>GNU gettext <p> 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í. <p> 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: <itemize> <item>Řádky začínající znakem '#' jsou komentářem. <item>Řádky které začínají řetězcem '#:' jsou odkazy, kde se řetězec vyskytuje ve zdrojovém kódu. <item>Řádkem msgid "xxxxxx" nebo msgid "" začíná původní řetězec uvedený ve zdrojovém kódu. <item>Řádkem msgstr "xxxxxx" nebo msgstr "" začíná přeložený řetězec. <item>Řádky začínající řetězcem '#,' informují o stavu překladu nebo formátu. </itemize> <p> Výjimku tvoří první dvojice msgid a msgstr, kde se uvádí informace o konkrétním katalogu. <p> Příklad .po souboru: <verb> # Czech translations for the GNU gettext messages # Copyright (C) 1996 Free Software Foundation, Inc. # Vladimir Michl <Vladimir.Michl@upol.cz>, 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 <Vladimir.Michl@upol.cz>\n" "Language-Team: Czech <cs@li.org>\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" </verb> <p> Pro práci s~katalogem existuje několik utilit: <itemize> <item>xgettext pro vytvoření katalogu zpráv ze zdrojových kódů <item>msgcmp k~porovnání dvou katalogů zpráv <item>msgmerge ke spojení starého přeloženého katalogu s~katalogem novým, nepřeloženým <item>msgfmt ke kompilaci katalogu zpráv do binárního formátu <item>msgunfmt k~dekompilaci </itemize> <p> Zkompilované katalogy musí mít příponu .mo. <p> Příklad použití: <enum> <item>Napíšeme program test.c <verb> #include <locale.h> #include <stdio.h> #include <libintl.h> #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; } </verb> <item>Vytvoříme katalog zpráv použitím příkazu xgettext <verb> xgettext test.c </verb> <item>Přeložíme zprávy a vyplníme hlavičku v~souboru messages.po. Výsledek bude vypadat takto: <verb> # Czech translation of test. # Vladimir Michl <Vladimir.Michl@upol.cz>, 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 <Vladimir.Michl@upol.cz>\n" "Language-Team: Czech <cs@li.org>\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" </verb> <item>Katalog přeložíme <verb> msgfmt -v -o test.mo messages.po </verb> <item>Přeložíme zdroják <verb> gcc -o test test.c -lintl </verb> <item>Přeložený katalog umístíme do adresáře s~katalogy a spustíme program <verb> mv test.mo /usr/share/locale/cs_CZ.iso88592/LC_MESSAGES LC_ALL=C test LC_ALL=cs_CZ.ISO-8859-2 test </verb> </enum> <sect2>Zdroje <p> Manuálové stránky: catopen(3), catclose(3), catgets(3), locale(7), setlocale(3) Info stránky: gettext <sect2>Přílohy<label id="zeme_jazyky"> <p> Některé kódy jazyků podle normy <url url="ftp://dkuug.dk/i18n/ISO_639" name="ISO 639">: <p> Arabština `ar', Čínština `zh', Čeština `cs', Dánština `da', Holandština `nl', Angličtina `en', Esperanto `eo', Finština `fi', Francouština `fr', Hebrejština `he', Němčina `de', Řečtina `el', Maďarština `hu', Irština `ga', Italština `it', Indonédš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' a Ukrajinština `uk'. <p> Některé kódy zemí podle normy <url url="ftp://dkuug.dk/i18n/ISO_3166" name="ISO 3166">: <p> Česká republika `CZ', Slovensko `SK', Francie `FR', Polsko `PL'. <sect>Lokalizace různých aplikací <label id="programy"> <label id="osmbit"> <p> Ne všem programům stačí pro lokalizaci národní klávesnice, fonty, a lokalizace knihovny libc. Tato kapitola se zabývá tím, co je dále potřeba udělat, aby jednotlivé programy správně pracovaly v~českém (případně slovenském) prostředí. <p> 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. <p> Pouze část programů umí implicitně zpracovávat (a zejména načítat z~klávesnice) osmibitové znaky. Většině novějších programů naštěstí stačí správně nastavené locales, velkou část ostatních je nutné přesvědčit jinak, ale existují i programy, které s~osmibitovými znaky vůbec nefungují. Těch posledních naštěstí rychle ubývá. <sect1>Shelly bash a tcsh<label id="shelly"> <sect2>Bash <p> Pro bash je nutné pro zpracovávání osmibitových znaků nastavit <tscreen><verb> set meta-flag on set convert-meta off set output-meta on </verb></tscreen> <p> Je vhodné dát tyto příkazy do <tt>$HOME/.inputrc</tt> nebo pro všechny uživatele do <tt>/etc/profile</tt>. <p> Po této úpravě můžete např. vytvořit adresář, jehož jméno je "ČeskéManuálovéStránky" ... (Pozor, ovšem potom budete muset použít ls -N, místo ls, abyste se dozvěděli jeho skutečné jméno). <sect2>Tcsh <p> Shellu tcsh stačí nastavené locales (kategorie <tt>LC_CTYPE</tt> nebo <tt>LANG</tt>), ale v~nouzi stačí dokonce <tt>setenv LANG</tt> nebo <tt>setenv LC_CTYPE</tt> bez udání hodnoty, i v~případě, že locales nejsou nainstalované. <sect1>XTerm <label id="xterm"> <p> Pokud selžou všechny pokusy lokalizovat klávesnici v~X, je možné lokalizovat alespoň klávesnici pro xterm pomocí translations v~app-defaults. <p> Vcelku spolehlivě funguje počeštění programu xterm pomocí app-defaults z~adresáře <tt>X11/xterm</tt> 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 <tt>Shift <Key>velké_písmeno</tt> toto <tt>velké_písmeno</tt> 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. <p> Národní klávesnice v~programu xterm neovlivní programy, které si otevírají vlastní okna. Pro tyto programy lze v~nouzi používat operace Copy-and-paste, ale pro rozumnou práci je nutné provést lokalizaci celých X. <sect1>Less <p> Program less implicitně zobrazuje znaky s~kódy >= 128 jako šestnáctkové kódy uzavřené mezi znaky <> (např. znak 'Č' jako "<C8>") a řídící znaky ve formě "^x" (například znak control-A (s~kódem 1) zobrazí jako "^A"). <p> Novější verze zobrazují osmibitové znaky, pokud jsou nastaveny locales (<tt>LC_CTYPE</tt> nebo <tt>LANG</tt>). Pro starší verze je možné použít parametr <tt>-r</tt>, nastavit proměnnou prostředí <tt>LESS</tt> na <tt>-r</tt>, nastavit proměnnou prostředí <tt>LESSCHARSET</tt> na <tt>latin1</tt>, nebo nastavit proměnnou <tt>LESSCHARDEF</tt> 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 <tt>$HOME/.lesskey</tt>: <tscreen><verb> #env LESS = -r </verb></tscreen> <p> a příkazem lesskey tento soubor přeložit na konfigurační soubor pro less - <tt>$HOME/.less</tt>. <p> 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. <sect1>Groff <label id="groff-latin2"> <p> 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 <url url="ftp://ftp.fi.muni.cz/pub/localization/groff/"> pod názvem groff-latin2. Aby groff používal správnou znakovou sadu, je nutné nastavit proměnnou prostředí <tt>GROFF_TYPESETTER</tt> podle manuálové stránky ke groff. <sect1>Joe <p> Aby editor joe akceptoval osmibitové znaky, existují dvě jednoduchá řešení: <itemize> <item> v~souboru <tt>/usr/lib/joe/joerc</tt> nebo <tt>˜/.joerc</tt> umazat mezeru v~prvním sloupečku před "-asis" <item> nebo spouštět joe pomocí <tt>joe -asis</tt>. </itemize> <sect1>Midnight Commander <p> 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 linuxovskou konzolu je k~dispozici někde na ftp.inet.cz. <p> Aby Midnight Comander (dále jen MC), správně zobrazoval české fonty, je nutné spustit MC s~parametrem <tt>-m</tt>, a nastavit v~"Options/Display bits" volbu "(*) Full 8 bits" (platí pro starší verze MC). Spouštění <tt>mc -m</tt> lze automatizovat dopsáním <tt>alias mc='mc -m'</tt> do souboru <tt>˜/.bashrc</tt> nebo <tt>˜/.cshrc</tt>, podle toho, jaký shell používáte. <p> 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". <p> Vzhledem k~tomu, že MC standardně používá jako editor VI, je možno jej nahradit za jiný editor pomocí systémové proměnné <tt>EDITOR</tt>. Například pro editor JOE přidejte do svého <tt>˜/.bash_profile</tt> řádek <tt>export EDITOR='joe -asis'</tt>. <sect1>Databáze MySQL <p> Jan Pazdziora vytvořil ISO-8859-2 <url url="http://www.fi.muni.cz/~adelton/l10n/mysql-ctype-czech.c" name="definiční tabulku"> (ctype-latin2.c) pro MySQL s~českým tříděním. Je potřeba ji zkopírovat do souboru strings/ctype-latin2.c v~rozbalené distribuci (testováno s~verzí 3.20.31e). Pak je nutné spustit ./configure s~volbou --with-charset=latin2. Tabulka vznikla konverzí ze základní posloupnosti českých znaků. <p> Také je k~dispozici <url url="http://www.fi.muni.cz/~adelton/l10n/mysql-sql-share-czech-errmsg.txt" name="překlad souboru chybových hlášení">. Zkopírujte ho do sql/share/czech/errmsg.txt a přegenerujte binární soubor sql/share/czech/errmsg.sys příkazem <tscreen><code> extra/comp_err sql/share/czech/errmsg.txt sql/share/czech/errmsg.sys </code></tscreen> <p> Používání českých chybových hlášek se pak zapne při startu serveru mysqld parametrem <tt>--language=czech</tt>. <p> Upozornění: tato třídící tabulka implementuje posloupnost, ve které záleží na velikosti písmen (case sensitivity). Vzhledem k~tomu, že manuál MySQL říká, že třídění na velikosti písmen nezávisí, byly by výsledky (byť správné pro češtinu) nekompatibilní se zbytkem MySQL. Proto tato tabulka nebyla poslána do oficiální distribuce. Na nalezení řešení problému se pracuje, pokud k~němu máte nějaký komentář, napište autorovi počeštění. <sect1>Perl <p> Podle všeho pokud má Perl používat locales, je nutné mít verzi 5.004. Skript musí obsahovat příkaz <tscreen><code> use locale; </code></tscreen> nebo musí být perl spuštěn příkazem <tscreen><code> perl -Mlocale další parametry </code></tscreen> <p> Pro test klasifikace znaků lze použít tento test od Jana Pazdziory: <tscreen><code> perl -Mlocale -e '$_="maličký ježeček\n"; s/\w/$&:/g; print;' </code></tscreen> který má správně vytisknout <tscreen><verb> m:a:l:i:č:k:ý: j:e:ž:e:č:e:k: </verb></tscreen> <sect1>KDE <p> Mělo by stačit mít nainstalované locales a nastavenou proměnnou prostředí <tt>LC_CTYPE</tt> (nebo <tt>LANG</tt>) na <tt>cs</tt>. <sect1>Lynx <p> Od verze 2.5 umí pracovat se stránkami v~kódování ISO-8859-2. Při problémech by mělo stačit změnit v~souboru <tt>/usr/local/lib/lynx.cfg</tt> nebo <tt>/etc/lynx.cfg</tt> změnit řádek <tt>CHARACTER_SET</tt> na <tscreen><verb> CHARACTER_SET:ISO Latin 2 </verb></tscreen> <p> 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:). <sect1>Java <p> Na tomto bodě se údajně :-) ještě pracuje. <sect1>Fvwm95 <p> 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 nejlépe jako uživatelské nastavení zkopírovat soubor do domácího adresáře jako <tt>˜/.fvwm2rc95</tt> a provést potřebné úpravy. <tscreen><code> cp /etc/X11/fvwm95-2/fvwm2rc95 ˜/.fvwm2rc95 </code></tscreen> <p> Předpokládám, že máte nainstalovanou podporu češtiny pro X11, včetně českých fontů. (viz popis 2.2. XFREE 3.2) <p> Úprava orginálního <tt>˜/.fvwm2rc95</tt> spočívá: <enum> <item>nastavením českých iso-8859-2 fontů pro písma oken, ikon a menu <verb> WindowFont -adobe-helvetica-*-r-*-*-*-120-*-*-*-*-iso8859-2 IconFont -misc-fixed-*-r-*-*-*-120-*-*-*-*-iso8859-2 MenuFont -adobe-helvetica-*-r-*-*-*-120-*-*-*-*-iso8859-2 </verb> <item>počeštění dialogu při práci s~okny <verb> 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 </verb> <item>nastavením českých iso-8859-2 fontů pro modul "Pager" <verb> *FvwmPagerFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-iso8859-2 </verb> <item>nastavením českých iso-8859-2 fontů pro modul "fvwm buttons" <verb> *FvwmButtonsFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-iso8859-2 </verb> <item>nastavením českých iso-8859-2 fontů pro modul "Identity" <verb> *FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-2 </verb> <item>nastavením českých iso-8859-2 fontů pro modul "FvwmWinList" <verb> *FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-iso8859-2 </verb> <item>nastavením českých iso-8859-2 fontů pro modul "TaskBar" <verb> &num&num# Font tlačítka na TaskBaru bez výběru (vystouplý) *FvwmTaskBarFont -adobe-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-2 &num&num# Font tlačítka na TaskBaru vybraného (zamáčknutý) *FvwmTaskBarSelFont -adobe-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-2 </verb> </enum> <p> Ukázkové menu je možno najít na URL <url url="http://www.comp.cz/linux/fvwm95.html"> <sect1>Pošta a news <p> Hledá se někdo, kdo o tomto něco napíše. <sect>TeX a jiné DTP systémy<label id="TeX"> <sect1>Instalace z~rpm balíků CsTeXu <p> Tohoto způsobu využijí především ti, kteří mají instalován Linux-RedHat. Nejprve si opatřete instalační balíky. Protože se neustále objevují nové a nové verze prakticky všeho, nejprve se podívejte na server <url url="ftp://math.feld.cvut.cz/pub/cstex/unix/"> a přečtěte si soubor README.rpms, kde najdete seznam nejnověji podporovaných balíků. Pozor, existují dva různé rpm balíky, je třeba nezaměňovat balíky na výše zmíněném URL s~balíky pana Kasprzaka (které jsou starší a nejsou podporovány v~rámci CsTUGu). Potom si sežeňte balíky s~originálním teTeXem, např. na nejbližším z~anonymních serverů: <itemize> <item><url url="ftp://sunsite.mff.cuni.cz/OS/Linux/Redhat/"> <item><url url="ftp://ftp.muni.cz/pub/linux/distributions/redhat/"> </itemize> <p> V~době psaní tohoto dokumentu se jedná o~balíky (pro platformu i386): <verb> tetex-0.4-7.i386.rpm ... Základní soubory TeXu, plain tetex-latex-0.4-7.i386.rpm ... LaTeX tetex-afm-0.4-7.i386.rpm ... Metriky PostScriptových fontů tetex-dvips-0.4-7.i386.rpm ... Driver dvi -> PostScript tetex-xdvi-0.4-7.i386.rpm ... Zobrazovač dvi </verb> Pro využití všech možností TeXu a prohlížeče xdvi při práci s~PostScriptem a pro tisk z~TeXu doporučuji opatřit si ještě balíčky (na verzích zde nezáleží): <verb> ghostscript-*.i386.rpm ... PostScriptový RIP ghostscript-fonts-*.i386.rpm ... PostScriptové fonty ghostview-*.i386.rpm ... Grafické rozhraní pro ghostscript </verb> <p> Dále si opatřete české doplňky z~některého z~ftp serverů, např.: <itemize> <item><url url="ftp://math.feld.cvut.cz/pub/cstex/unix/RPMS"> <item><url url="http://www.cstug.cz/pub/local/cstex/unix/RPMS"> </itemize> <p> Momentálně se jedná o balíčky <verb> csplain-1.1-2.i386.rpm ... Český plain cslatex-1.1-4.i386.rpm ... Český LaTeX cspsfonts-1.1-1.i386.rpm ... Postsciptové fonty csuvodlat-1.0-1.i386.rpm ... Úvod do LaTeXu pro začátečníky </verb> <p> Tak, teď máte všechno, co budete potřebovat, a můžete se pustit do instalace. Nejprve instalujte originální balíky příkazem <verb> # rpm -i tetex* # rpm -i gh* </verb> <p> (Musíte být v~adresáři, ve kterém máte výše uvedené soubory, ale žádné jiné.) Dále instalujte rpm balíky s~počeštěním: <verb> # rpm -i csplain* # rpm -i cslatex* # rpm -i cspsfonts* # rpm -i uvlat* </verb> <p> V~případě českých doplňků záleží na pořadí; nejprve tedy musíte instalovat csplain a teprve poté cslatex. Při instalaci balíků csplain a cslatex se budou generovat formáty csplain a cslatex. Pokud vše skončí bez chyby, můžete začít TeXovat. <p> Pokud vám nebude vyhovovat originální konfigurace TeXu, můžete použít program <tt>texconfig</tt> pro její změnu. Po spuštění se objeví menu, ze kterého můžete vybírat jednotlivé položky a pohodlně je měnit. Pokud se v~TeXu zatím příliš nevyznáte, nedoporučuji s~nastaveními příliš experimentovat. <sect2>Něco nefunguje?<p> <p> Zkontrolujte si nejprve, zdali jste nainstalovali správné balíky (viz poznámku na začátku). <itemize> <item>LaTeX hlásí, že nemůže najít czech.sty (slovak.sty).<p> Pokud máte nainstalovaný csplain (a to byste měli mít), nejjednodušší řešení je: <verb> ln -s /usr/lib/texmf/texmf/tex/csplain/czech.sty /usr/lib/texmf/texmf/tex/generic/misc/czech.sty </verb> a podobně pro slovak.sty. <item>LaTeX styl czech.sty najde, ale při jeho načtení skončí s~chybou.<p> Chyba je zřejmě v~makru <tt>\atBeginDocument</tt>, které je v~některých verzích czech.sty voláno s~parametrem <tt>\czechTeX</tt>. Nejrychlejší řešení je přejmenovat tento parametr na <tt>\czech</tt>. </itemize> <p> Další informace lze získat z~ftp serveru <url url="ftp://math.feld.cvut.cz/pub/cstex/unix/README.*"> <sect1>Obecná instalace z~web2c <p> Instalaci TeXu pro jakoukoliv platformu UNIXu a jakoukoliv distribuci LINUXu lze provést ze zdrojových kódů Web2c. Podrobný popis zpracoval pan Petr Olšák v~textu, který lze nalézt na <url url="ftp://math.feld.cvut.cz/pub/cstex/unix/README.web2c">. Zde uvedu jen stručný popis instalace s~ohledem na Linux. <p> Pro kompilaci a instalaci budete potřebovat asi 50 MB volného místa. Opatřete si tyto soubory např. z~ftp archivu <url url="ftp://math.feld.cvut.cz/pub/cstex/unix">: <verb> texk.tar.gz ... Zdrojové kódy web2c, xdvi, dvips a dvilj texmflib.tar.gz ... Základní vstupní soubory TeXu </verb> <p> a české doplňky <verb> csplain.tar.gz ... Makra csplainu cslatex-*-*.tar.gz ... Makro cslatex (verse se často mění, nyní 12-96) csfonts.tar.gz ... české fonty (cs*.mf) cspsfonts.tar.gz ... počeštěné postscriptové fonty csuvodlat.tar.gz ... úvod do LaTeXu pro začátečníky (jen pro LaTeX 2.09) </verb> <p> Soubor texk.tar.gz můžete rozbalit kamkoliv, např. v~/usr/src, a texmflib.tar.gz by měl být v~/usr/local/share (toto můžete při instalaci změnit, viz. soubor kpathsea/INSTALL): <verb> # cd /usr/src # tar -xzf texk.tar.gz # cd /usr/local # mkdir share # cd share # tar -xzf texmflib.tar.gz </verb> Nyní nechte zkonfigurovat zdrojové kódy. Proveďte: <verb> # cd /usr/src/texk-7.0 # ./configure </verb> <p> Pokud budete chtít, aby vám TeX psal do logovacích souborů a na konzoli české znaky místo sekvencí jako ^^e8 (kód pro č), musíte upravit změnový soubor TeXu. V~souboru web2c/tex.ch na řádku 633 vymažte vše, co se týče sekce [4.49], tj. řádky 633--639. Místo toho vložte následující text: <verb> % [4.49] l.1295 - Do Not Hardwire Printable ASCII. @x (k<" ")or(k>"~") @y (k<" ")or(k=invalid_code) @z </verb> Je důležité, aby před kulatými závorkami byly právě dvě mezery. Dále je vhodné upravit soubor xdvik/Makefile tak, aby zobrazovač xdvi používal jako základní velikost papíru A4. Pozměňte proto definici DEFS (měla by být přibližně na řádku 103) takto: <verb> DEFS = -DHAVE_CONFIG_H -DA4 -DALTFONT=\"csr10\" $(XDEFS) </verb> Po této proceduře nechte celý TeX konečně zkompilovat a instalovat: <verb> # make # make install </verb> Poslední příkaz zkopíruje zkompilované binární programy do <tt>/usr/local/bin</tt> a vytvořený základní formát (tex.fmt) do <tt>/usr/local/share/texmf/web2c</tt>. Nyní je na řadě počeštění. Kvůli případným problémům s~rychle se měnícími verzemi LaTeXu jej nejprve vymažte z~originální distribuce. Poté rozbalte soubory s~českými fonty, csplainem a CSLaTeXem: <verb> # cd /usr/local/share/texmf/tex # rm -rf latex # cd /usr/local/share # tar -xzf csplain.tar.gz # tar -xzf cslatex-12-96.tar.gz # tar -xzf csfonts.tar.gz # tar -xzf cspsfonts.tar.gz # tar -xzf csuvodlat.tar.gz # MakeTeXls-R </verb> Poslední příkaz (MakeTeXls-R) vytvoří databázi souborů TeXu pro urychlení vyhledávání. Poslední důležitý krok je vytvoření českých formátů: <verb> # cd /usr/local/share/texmf/web2c # tex -ini csplain.ini # mv csplain.ini.fmt csplain.fmt # tex -ini cslatex.ini # mv cslatex.ini.fmt cslatex.fmt # rm latex.fmt # ln -s cslatex.fmt latex.fmt # cd /usr/local/bin # ln -s tex csplain # ln -s tex cslatex </verb> <p> Úplně nakonec ještě můžete upravit konfiguraci dvips tak, aby pracoval s~formátem papíru A4: <verb> # cd /usr/local/share/texmf/dvips # cp /usr/src/texk-7.0/dvipsk/contrib/config.proto . # cp /usr/src/texk-7.0/dvipsk/contrib/papersize.simple . # cat config.proto papersize.simple > config.ps </verb> <p> Ve vzniklém souboru config.ps okomentujte řádek 4 tak, aby výstup dvips nešel přímo na tiskárnu: <verb> %o |lpr </verb> <p> a naopak odkomentujte řádky 52 a 53, čímž předefinujete formát papíru: <verb> @ A4size 210mm 297mm @+ %%PaperSize: A4 </verb> <p> Tak a to je vše. Zdrojové kódy (/usr/src/texk-7.0) můžete klidně smazat. Jak celý TeX vyzkoušet si přečtěte ve výše zmíněném návodu p. Olšáka. <sect1>Doplňky pro TeX <sect2>Program vlnka <p> V~našich krajích je typografickým zvykem nenechávat neslabičné předložky na koncích řádků. Pro automatizaci tohoto procesu slouží např. program vlnka. Jeden takový napsal pan Petr Olšák a zdrojový kód můžete nalézt na serveru <url url="ftp://math.feld.cvut.cz/pub/olsak/vlna/"> <p> Program byl napsán v~programovacím jazyku WEB, ale je k~dispozici i již "přeložený" do jazyka C. Proto si stačí nahrát soubor vlna.c a přeložit jej: <verb> $ cc vlna.c -o vlnka </verb> Takto vzniklý program přesuňte např. do <tt>/usr/local/bin</tt> a můžete vesele "vlnkovat". Dokumentace k~programu je k~dispozici ve stejném adresáři serveru v~souborech <tt>README</tt> a <tt>vlna.doc</tt>, resp. <tt>vlna.dvi</tt>.<p> <sect1>České fonty v~TeXu<p> <sect2>O kódování <p> V~současné době existují tři základní možnosti jak v~TeXu psát česky: <enum> <item>Použít nativní TeXovský přístup a kódovat české znaky pomocí sekvencí <tt>\' \v \accent23</tt> kde <tt>\'</tt> je sekvence pro čárku, <tt>\v</tt> pro háček a <tt>\accent23</tt> pro kroužek. <item> Použít CS-fonty distribuované CS-Tugem a pro kódování znaků užívat stránku ISO-latin-2. <item> Použít EC/DC fonty pokrývající téměř všechny evropské jazyky (balík Babel). </enum> <p> Výhody a nevýhody těchto přístupů: <enum> <item> Lehká přenositelnost dokumentů jak ve zdrojovém kódu, tak ve formě dvi. Tento přístup se vyplácí, pouze pokud češtinu používáme na málo místech v~textu z~důvodu nepřehlednosti. Příklad <tt>sl\accent23 un\v ec\'\i</tt> = slůněcí to myslím dokumentuje. <item> CS-fonty jsou 8-bitové 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. Istalací CSTeXu se zabývá první část tohoto HowTo. <item> 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 francouzký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 type1. Metafontový zdroják je poněkud rozsáhlý, tj. stovky malých souborů. současný CSTeX zajišťuje podporu EC/DC fontů pomocí parametru <tt>T1</tt> příkazu: <verb> \usepackage[T1]{czech} </verb> 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: <verb> \DeclareLanguage[IL2,T1]{\czech}{czhyphen.tex}% {\lefthyphenmin=2 \righthyphenmin=3 \@requesthyphens}% </verb> <p> Pro bližší info o czech.sty: <url url="http://home.zcu.cz/~snajdr5/cslatex/"> <p> Pokud nepotřebujeme dělení slov (nechce se nám právě teď instalovat CsTeX) můžeme použít: <verb> \usapackage[T1]{fontenc} </verb> </enum> <p> 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. <sect2>Formáty fontů <p> Do TeXu lze pohodlně začlenit jednak fonty ve formátu Metafontu, jednak fonty ve formátu Type1. 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. <sect2>Metafontové fonty <p> 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. <p> Dále se vyskytují fonty (např. Pandora) dobře počeštitelné pomocí virtuálních fontů (programem l2accent <url url="ftp://ftp.cstug.cz/pub/local/fontware/accents/">). <p> Všechny zmíněné fonty jsou dostupné v~archívu <url url="ftp://ftp.cstug.cz/pub/local/">, <url url="ftp://ftp.cstug.cz/pub/CTAN/fonts/">. <sect2>Type1 fonty <p> 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 jednak obsaženy přímo ve výstupním zařízení nebo je lze vlastnit ve formě souborů s~extenzí <tt>pfa</tt>, potažmo <tt>pfb</tt>, jejichž nedílnou součástí by měl být i metrický soubor s~extenzí <tt>afm</tt>. <sect2>Počeštění fontů zabudovaných ve výstupním zařízení. <p> Tyto fonty se pohodlně počešťují pomocí virtuálních skriptů. Pokud chcete počeštit pouze fonty ze základní sady tj.: <verb> TimesNewRoman Helvetica NewCenturySchoolBook Palatino Bookman </verb> <p> lze s~výhodou použít již hotové řešení z~balíku <tt>cspsfonts.tar.gz</tt>. Obsahuje TFM a VF soubory, které stačí umístit na patřičná místa. (<tt>/usr/lib/texmf/texmf/fonts/tfm</tt>, <tt>/usr/lib/texmf/texmf/fonts/vf</tt>). Balík je také šířen formou rpm jako <tt>cspsfonts-1.1-1.i386.rpm</tt>. <p> Pokud vlastníte PostScriptový font ve formě AFM, PFA, resp. AFM, PFB souborů, jsou rámcově dvě možnosti: <enum> <item> Font je již počeštěný, zbývá jej pouze překódovat. <item> Font zatím neobsahuje všechny české znaky. </enum> <p> Jak to zjistím? Pokud již font obsahuje české znaky, pak je o nich informace v~AFM souboru. Podívám se tedy, zdali AFM soubor obsahuje řádky typu: <verb> C -1 ; WX 722 ; N Aacute ; B 15 0 706 892 ; </verb> <p> kde místo <tt>Aacute</tt> 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: <verb> $ afm2tfm font.afm -t kodovani.enc -v cfont rfont </verb> <p> kde <verb> 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 </verb> <p> Česká kódování jsou dostupná např. v~balíku <tt>a2ac</tt> <url url="ftp://ftp.cstug.cz/pub/local/cstug/olsak/a2ac">, kde je také podrobnější info. Jméno českého fontu by mělo být ve shodě s~``Font Naming Conventions'' <url url="ftp://ftp.cstug.cz/pub/tex/CTAN/documentation/fontname/"> Jméno raw fontu můžete zvolit libovolně, většinou se používá jméno původního fontu s~předponou r.<p> Program <tt>afm2tfm</tt> vygeneruje jednak na standardní výstup řádek: <verb> rfont JmenoFontu </verb> <p> který přidáte (po malé úpravě) do souboru psfonts.map (<tt>/usr/lib/texmf/texmf/dvips/misc/psfonts.mapi</tt>). Co a jak přesně přidat do tohoto souboru, je lépe konzultovat v~dokumentaci k~programu DVIPS. <p> Dále vytvoří soubor <tt>rfont.tfm</tt> a <tt>cfont.vpl</tt>. Na posledně jmenovaný aplikujeme program: <verb> vptovf cfont.vpl </verb> <p> čímž dostaneme soubory <tt>cfont.tfm</tt> a <tt>cfont.vf</tt>, které umístíme do adresářů <tt>/usr/lib/texmf/texmf/fonts/tfm</tt> a <tt>/usr/lib/texmf/texmf/fonts/vf</tt>. <p> Pokud font české znaky neobsahuje, můžete se pokusit zjednat nápravu programem a2ac <url url="ftp://ftp.cstug.cz/pub/local/cstug/olsak/a2ac">, který, pokud najde jednotlivé akcenty, je schopen vytvořit kompozitní popis všech českých písmen. <p> Podrobnější popis viz dokumentace k~a2ac, či článek Virtuální fonty, accents a přátelé <url url="ftp://ftp.cstug.cz/pub/tex/local/cstug/sojka/aboutacc/">. <sect1>Literatura <p> <itemize> <item>Tomáš Mráz, PostScriptová písma v~TeXu, Zpravodaj CSTUG, 1994, 2, 70--76 <item>Petr Olšák, Program a2ac -- manipulace s~fontem na úrovni PostScriptu, Zpravodaj CSTUG, 1996, 1, 23--30, <url url="ftp://math.feld.cvut.cz/pub/cstex/msdos/cspsfont.zip"> <item>Adobe Font Metrics File Format Specification Version 4.0, Adobe Systems Incorporated, 1992, February <item>Pavel Herout, PostScriptové fonty pro ty, co o nich moc nevědí, Zpravodaj CSTUG, 1996, 1, 43--64 <item>Joachim Schrod, Komponenty TeXu, Zpravodaj CSTUG, 1993, 1--10, 1, <url url="ftp://ftp.muni.cz/pub/tex/CTAN/documentation/components-of-TeX/"> <item>Donald Knuth, Virtual fonts, a more fun for grand wizards, TUGboat, 1990, April, 1, 11, 13--23, <url url="ftp://ftp.muni.cz/pub/tex/CTAN/documentation/virtual-fonts.knuth"> <item>Petr Olšák, Typografický systém TeX, CSTUG, 1995 <item>Petr Olšák, TeXbook naruby, CSTUG, 1995, <url url="ftp://math.feld.cvut.cz/pub/"> <item>Petr Sojka, Virtuální fonty, accents a přátelé, Zpravodaj CSTUG, 1994, 2, 56--69, <url url="ftp://ftp.muni.cz/pub/tex/local/cstug/sojka/aboutacc/"> </itemize> <sect>Emacs<label id="emacs"> <p> Emacs je rozsáhlý a komplexní program a jeho kompletní počeštění je tedy netriviální. Navíc v~současnosti připadají v~úvahu dvě verze: Emacs 19 a Emacs 20. <p> Pro lokalizaci Emacsu verze 19 slouží balík <url url="ftp://ftp.fi.muni.cz/pub/localization/emacs/emacs-19/emacs-czech-3.8.tar.gz">, pro lokalizaci verze 20 pak balík <url url="ftp://ftp.fi.muni.cz/pub/localization/emacs/emacs-20/emacs-cs-utils-4.1.tar.gz">. Cílem lokalizace verze 20 je dosáhnout zahrnutí obsahu počešťovacího balíku přímo do hlavní distribuce Emacsu. Pro lokalizaci Emacsu verze 20 z~distribuce Redhat, je třeba původní Emacs nahradit balíky z~adresáře <url url="ftp://ftp.fi.muni.cz/pub/localization/emacs/emacs-20/rpm/">, protože emacs v~Redhatu je přeložen s volbami, které jeho lokalizaci znemožňují. <p> Základní informace o lokalizaci Emacsu je možné získat na stránce <url url="http://www.fi.muni.cz/~pdm/emacs-czech.html">. <p> Pokud momentálně nemáte možnost se k~<sf/emacs-czech/ dostat, můžete použít následující nouzové řešení: <itemize> <item> Do svého <tt>˜/.emacs</tt> přidejte řádky <tscreen><code> (standard-display-european t) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) </code></tscreen> <item> 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. </itemize> <sect>Tisk<label id="tisk"> <p> Dosud nezpracováno. <sect>Konverze znakových sad<label id="konverze"><label id="cstocs"> <p> 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~programu perl a awk, které jsou 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.. Nejnovější verze cstocs (pro Perl 5) je opět samostatná a lze ji nalézt na <url url="ftp://sunsite.mff.cuni.cz/Languages/Perl/CPAN/authors/id/JANPAZ/"> nebo na jiném serveru obsahujícím archiv CPAN. <p> 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 <url url="ftp://ftp.muni.cz/pub/localization/linux/obsolete/cs-tools/">. 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. <sect>České třídění<label id="trideni"> <p> Č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ý". Na druhou stranu, i když zapomeneme na největší výstřelky ČSN, třídění, jaké poskytují standardní funkce, a které je podporováno v~<ref id="locale" name="locales">, je pro češtinu příliš slabé. <p> Řešením je implementace funkce <url url="http://www.fi.muni.cz/~adelton/l10n/cssort/csort.c" name="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 řetezců bez nutnosti předchozí konverze, tedy v~konstatní paměti. Soubor přeložíme příkazem <tscreen><code> cc -c -o csort.o csort.c </code></tscreen> <p> a pomocí <tscreen><code> ld -shared -o csort.so csort.o </code></tscreen> <p> z~něho uděláme sdílenou knihovnu. Tu potom použijeme například nastavením proměnné prostředí <tt>export LD_PRELOAD=/cesta/k/csort.so</tt>, čímž zajistíme, že se místo implicitních strxfrm a strcoll použijí výše uvedené, české. <p> Další informace o třídění, včetně implementace třídění pro databázi MySQL, lze nalézt na <url url="http://www.fi.muni.cz/~adelton/l10n/.cz" name="stránce"> Jana Pazdziory. <sect>České manuálové stránky<label id="manstranky"> <sect1>Instalace<p> <p> K~tomu, abyste mohli prohlížet manuálové stránky v~češtině, potřebujeme mít nainstalovánu podporu zobrazování českých znaků, <ref id="groff-latin2" name="úpravu"> programu groff pro ISO-8859-2 a program man verze 1.4h nebo novější. <p> A nyní k~vlastní instalaci manuálových stránek. České manuálové stránky jsou distribuovány jako zdrojové texty pro groff v~několika formátech: <itemize> <item>a. pro starší distribuce (Slackware, SLS, Yggdrasil) vhodnější formát .tar.gz </itemize> <p> Instalace je velmi jednoduchá - po rozbalení balíku příkazem <verb> tar xfz man-pages-cz-x.xx.tgz </verb> <p> jednoduše v~příslušném adresáři provedeme příkaz <tt>make install</tt>. Potom budou manuálové stránky nainstalovány do adresáře <tt>/usr/local/man/cz/</tt>. <itemize> b. pro novější distribuce (RedHat, Caldera) ve formátu .rpm </itemize> <p> Instalace je opět velice jednoduchá: <verb> rpm -i man-pages-cz-x.xx-x.i386.rpm </verb> <sect2>Prohlížení českých manuálových stránek<p> <p> Nyní máme české manuálové stránky nainstalovány a chceme si je prohlédnout. K~prohlížení manuálových stránek slouží program man, proto jej použijeme. 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 <verb> NROFF /usr/bin/groff -Tlatin1 -mandoc </verb> <p> latin1 za latin2: <verb> NROFF /usr/bin/groff -Tlatin2 -mandoc </verb> <p> Novější verze programu man, který je spravován A. Brouwerem, již podporují národní manuálové stránky. Předtím, než zobrazí příslušnou manuálovou stránku, se podívají do proměnné prostředí <tt>LANG</tt> a podle ní vezmou příslušnou jazykovou mutaci stránky. (Další verze programu man snad bude kompletně počeštěna.) Proto pro prohlížení českých manuálových stránek použijeme jeden z~následujících ekvivalentních příkazů: <verb> bash$ LANG=cz man intro bash$ export LANG=cz bash$ man intro csh$ setenv LANG cz csh$ man intro </verb> <p> Uživatelé jiných interpretrů si jistě příslušné příkazy upraví sami. <sect1>Prohlížení českých manuálových stránek pod systémem X-Window <p> 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 si můžete stáhnout z~těchto ftp serverů: <verb> ftp://ftp.inet.cz/pub/People/Pavel.Janik/ na IGN ftp://ftp.fi.muni.cz/pub/linux/localization na CESNETu </verb> <p> Jeho instalace probíhá podobně jako instalace vlastních manuálových stránek. <sect1>Projekt "České Manuálové Stránky" <p> 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 <verb> Pavel Janík ml. <Pavel.Janik@math.muni.cz> </verb> <p> České Manuálové Stránky mají i svou konferenci (czman@muni.cz). Přihlásit se můžete na adrese listserv@muni.cz: <verb> echo subscribe czman Jméno Příjmení|mail listserv@muni.cz </verb> <p> 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. <sect2>Odkazy <p> <verb> ftp://ftp.inet.cz/pub/People/Pavel.Janik/... ftp://ftp.fi.muni.cz/pub/linux/localization/... http://www.inet.cz/~pjanik/czman </verb> <sect2>Autor <p> Autorem tohoto textu je Pavel Janík ml. <sect>Kontrola českého pravopisu (spell-checker)<label id="spellcheck"> <p> Čeština je jazyk zapeklitý a skoro každý z~nás se s~ní někdy potýkal (veškeré problémy způsobil Mistr Jan Hus a jemu podobní, kterým nestačilo 26 písmenek anglické abecedy). Proto pravděpodobně vznikl i balík ispell-czech, který obsahuje českou podporu pro GNU ispell verze 3.1.20 od Tomáše Čermáka (cermak@fsv.cvut.cz). <p> Balík ispell-czech najdete na těchto adresách: <verb> ftp://ftp.inet.cz/pub/People/Pavel.Janik/ispell-czech/ ftp://ftp.math.muni.cz/pub/math/people/Janik/ispell-czech/ </verb> <p> V~tomto textu je popsáno, jak je možno používat program ispell při práci v~různých editorech. <sect1>Ispell pro Emacs <p> Č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. <sect1>Ispell pro Joe <p> Editor joe rovněž podporuje kontrolu pravopisu. V~tomto textu si popíšeme řešení, které umožňuje kontrolu pravopisu jak českého, tak i anglického. <p> Podpora anglické kontroly pravopisu je vestavěna přímo v~programu. Kombinací kláves <tt>'CTRL+[ N'</tt> kontrolujeme jedno slovo, klávesami <tt>'CTRL+[ L'</tt> kontrolujeme celý soubor. Česká podpora není přímo vestavěna, ale lze ji jednoduše nakonfigurovat. Stačí do souboru <tt>˜/.joerc</tt> nebo přímo do souboru <tt>/usr/lib/joe/joerc</tt> doplnit následující řádky: <tscreen><code> Czech spell-check macros :def czechspellfile filt,"cat >ispell.tmp;\ ispell -d czech ispell.tmp </dev/tty >/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 >/dev/tty;\ tr -d <ispell.tmp '\\012';/bin/rm ispell.tmp",rtn,retype,nextword :def czechspellline psh,eol,markk,bol,markb,filt,"cat >ispell.tmp;\ ispell -d czech ispell.tmp </dev/tty >/dev/tty;\ tr -d <ispell.tmp '\\012';/bin/rm ispell.tmp",rtn,retype,eol czechspellfile .k8 czechspellword .k9 czechspellline ^k .k9 </code></tscreen> <p> Tato makra nadefinují funkční klávesu F8 pro kontrolu českého pravopisu v~celém souboru a F9 pro kontrolu pouze jednoho slova (POZOR ovšem na to, že joe neumí rozeznávat česká písmenka ...). Kombinace kláves 'CTRL+k F9' umožní kontrolu pravopisu pouze na jedné řádce. <sect2>Vlastní použití v~editoru joe <p> Jak se tedy používá kontrola pravopisu? Vyzkoušíme to např. na souboru, který obsahuje následující text: Tento text je napsán v~českém jazyk. Nyní stiskneme klávesu F8 a ispell "skočí" až na slovo "napsán", protože slova "Tento", "text" a "je" jsou pravděpodobně v~jeho slovníku. Slovo "napsán" bude zvýrazněno a objeví se nám několik možností výběru slova, kterým ho můžeme nahradit. V~našem případě je to slovo dobře, proto stiskneme klávesu mezerník, čímž toto slovo akceptujeme. Další zastávka bude na slově "českém". Pokud jsme měli v~úmyslu napsat např. "v~ruském ...", jednoduše stiskneme klávesu R (Replace) a napíšeme slovo, které to původní nahradí. Pokud bychom nyní znovu spustili kontrolu pravopisu, opět bychom museli potvrzovat slovo "napsán". Proto stiskneme klávesu I (Insert) a slovo "napsán" bude uloženo do našeho privátního slovníku (<tt>˜/.ispel_czech</tt>), odkud bude vždy zařazeno mezi známá slova a při příští kontrole již bude automaticky akceptováno. <p> Pavel Janík ml. a Milan Zamazal (Emacs) <sect>Jak počeštit různé distribuce<label id="distribuce"> <sect1>Debian GNU/Linux <sect2>Současný stav oficiální distribuce <p> Od verze~1.3 jsou oficiální součástí Debianu následující balíky vztahující se k~českému prostředí: <itemize> <item>kbd: obsahuje ISO~8859-2 fonty pro konzolu <item>xfntil2, xfntil2-nonfree: ISO~8859-2 fonty pro XFree <item>emacs-czech: počeštění Emacsu <item>cstocs: známý převodník znakových sad </itemize> Všechny tyto balíky je možné bez problémů používat i na Debianu~1.2. Existuje neoficiální popora českého (La)TeXu pro Debian 1.2 a 1.3. Tyto balíky nejsou oficiální součástí Debianu z~důvodu problémů s~copyrightem CsTeXu. Balíky pro obě verze Debianu jsou vzájemně nekompatibilní a lze je v~obou podobách nalézt na <url url="ftp://ftp.fi.muni.cz/pub/linux/localization/cstex-deb/"> nebo <url url="ftp://blackbird.ics.muni.cz/pub/Debian/">. <p> 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. <p> Debianu dosud chybí: <itemize> <item>České klávesnicové mapy pro konzolu. <item>Česká klávesnice pro XFree. <item>Česká locales. <item>České manové stránky. </itemize> Máte-li zájem o~některou z~těchto věcí, musíte postupovat podle návodů v~jiných částech tohoto dokumentu. Česká klávesnice pro konzolu se stala součástí balíku <sf/kbd/, dostane se tedy do Debianu s~jeho novou verzí (0.93). Česká locales a manové stránky se dostanou do nejbližší verze Debianu, překročí-li jejich rozsah zanedbatelné množství. Problém české klávesnice pro XFree začne být řešen, výsledek je zatím nejistý. V~současné době je mezi maintainery Debianu pouze jediný zástupce České republiky --- Milan Zamazal <htmlurl url="mailto:pdm@fi.muni.cz" name="pdm@fi.muni.cz">. Na něj se lze obracet s~náměty ohledně podpory češtiny v~Debianu. Nezapomeňte také, ž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 <url url="http://www.debian.org">. <sect2>Ruční zásahy do oficiální distribuce <sect3>Konzola <p> Instalace češtiny pro textovou konzolu Debian Linuxu. Popsaný postup byl vyzkoušen pro Debian Linux 1.2.5 a cs-tools-0.19. <enum> <item> Soubory <tt>*.map</tt> z~cs-tools v~adresáři <tt>cs-tools-0.19/console</tt> zkopírujte do adresáře <tt>/usr/share/keytables</tt>. <item> Spusťte program kbdconfig a vyberte klavesnici dle vašeho přání. <item> Natažení české znakové sady pro obrazovku provedte příkazem <tt>setfont lat2-16.psf</tt>. Tento příkaz nesmí být puštěn z~mc. Je možné přidat tento příkaz na konec souboru <tt>/etc/init.d/boot</tt>. <item> Pokud používáte bash (pokud jste nic neměnili, tak používáte), musíte upravit <tt>˜.inputrc</tt> a přidat následujících několik příkazů set: <tscreen><code> 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 </code></tscreen> </enum> Poslední tři řádky slouží pro zprovoznění kláves Home, Delete a End. POZOR! Některé X-servery zruší konzolový font z~paměti počítače, takže po přepnutí z~X-oken na konzolu je nutné znovu zadat příkaz setfont. <sect1>RedHat Linux <p> Na tomto bodě se ještě pracuje. <sect>Odkazy na odkazy <p> <itemize> <item><url url="www.cestina.cz"> - stránky věnované technickým otázkám používání češtiny na počítačích <item><url url="http://www.agh.edu.pl/ogonki/"> - "Polska stránka ogoňkova" (v~polštině) </itemize> <p> Hledá se někdo, kdo o~tom napíše více. <sect>Jak se zapojit do počešťování a tvorby tohoto HOWTO <sect1>Počešťování <sect1>Czech HOWTO <p> Toto HOWTO vzniklo jako iniciativa několika různých lidí v~diskusní skupině <tt/cz.comp.linux/. Máte-li chuť přispět, neváhejte. Vítány jsou zcela nové příspěvky, doplňky, upozornění na chyby faktické i pravopisné a gramatické. Můžete i dát vědět, co v~HOWTO postrádáte. Nové příspěvky, stejně jako upozornění na menší nedostatky v~textu, které lze snadno napravit, zasílejte koordinátorovi tvorby HOWTO. Jeho jméno a e-mailovou adresu naleznete ke konci dokumentu v~sekci~<ref id="koordinace" name="Koordinace">. S~odbornějšími nebo diskutabilními problémy se obracejte na autory jednotlivých částí. Jejich seznam je uveden na konci HOWTO v~sekci~<ref id="lide" name="Autoři">. HOWTO je napsáno v~Linuxdoc~SGML. Příspěvky jsou přijímány v~tomto formátu 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: <itemize> <item> Předpokládáte-li, že napsání příspěvku vám 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. <item> 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. <item> 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. <item> Používejte znak <tt/˜/ v~TeXovském významu i v~jednoduchém textu (tam, kde má být v~textu skutečně vypsán znak vlnka, je nutné použít <tt>&tilde;</tt>). <item> Dodržujte pokud možno terminologii v~duchu již existujících částí tohoto HOWTO, není-li vám tato příliš proti srsti. <item> 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"). <item> Výsledný text si po sobě důkladně přečtěte. Uvědomte si, že jej po vás bude číst mnoho lidí. </itemize> <sect2>Důležité upozornění <p> Zasláním svého příspěvku implicitně souhlasíte s~tím, že: <itemize> <item> na váš příspěvek se v~rámci Czech HOWTO vztahují podmínky GNU General Public License; <item> vaše jméno a e-mailová adresa bude zveřejněna v~závěru HOWTO s~uvedením sekcí, na jejichž tvorbě jste se významným dílem podílel(a). </itemize> První podmínka je bez výjimky závazná. V~případě druhé podmínky je možné na explicitní žádost autora učinit výjimku. <sect>O~Czech HOWTO <sect1>Aktuální verze <p> Tato verze Czech HOWTO je pouze předběžná. Jakmile bude Czech HOWTO hotovo, bude periodicky postováno do diskusní skupiny <tt>cz.comp.linux</tt>. <sect1>Koordinace<label id="koordinace"> <p> Koordinaci tvorby HOWTO momentálně provádí Ondřej Koala Vácha <htmlurl url="mailto:koala@fi.muni.cz" name="koala@fi.muni.cz">. Na jeho adresu se lze obracet s~veškerými příspěvky a připomínkami. <sect>Autoři<label id="lide"> <p> Na tvorbě tohoto HOWTO se podíleli tito lidé (v~abecedním pořadí): <descrip> <tag>Pavel Janík ml. <htmlurl url="mailto:Pavel.Janik@math.muni.cz" name="Pavel.Janik@math.muni.cz"></tag> linuxovská konzola, bash, joe, české manuálové stránky, ispell <tag>Michal Choura <url url= "mailto:xchoura@cs.felk.cvut.cz" name="xchoura@cs.felk.cvut.cz"></tag> TeX <tag>Petr Kolář <url url="mailto:Petr.Kolar@vslib.cz" name="Petr.Kolar@vslib.cz"></tag>Cíle lokalizace, Lokalizace X, Locales, Less, Lynx, redakce dalším částí <tag>Vladimír Michl <url url="mailto:michlv@risc.upol.cz" name="michlv@risc.upol.cz"></tag> Počešťování konzolových aplikací, Locales <tag>Jan Pazdziora</tag> České třídění, MySQL. <tag>Vítězslav Samel <url url="mailto:xsamel00@dcse.fee.vutbr.cz" name="xsamel00@dcse.fee.vutbr.cz"></tag> Less, MC (část) <tag>Petr Špatka <htmlurl url="mailto:xspatk00@dcse.fee.vutbr.cz" name="xspatk00@dcse.fee.vutbr.cz"></tag> linuxovská konzola v~Debianu <tag>Petr Staněk 'Šnek' <htmlurl url="mailto:finurad@ova.comp.cz" name="finurad@ova.comp.cz"></tag> Fvwm95, Midnight Commander (část) <tag>Arnošt Štědrý<url url= "mailto:arnost@uivt.cas.cz" name="arnost@uivt.cas.cz"></tag> TeX <tag>Milan Zamazal <htmlurl url="mailto:pdm@fi.muni.cz" name="pdm@fi.muni.cz"></tag> koordinace tvorby, základní podoba HOWTO, Emacs, Debian, ispell </descrip> </article> <!-- $Id: Czech-HOWTO.sgml,v 0.2 1997/04/21 09:31:01 pdm Exp $ Local variables: mode: sgml sgml-local-catalogs: ("/usr/lib/sgml-tools/dtd/catalog") sgml-public-map: ("/usr/lib/sgml-tools/dtd/%n.%y") sgml-validate-command: "sgmlcheck Czech-HOWTO.sgml" fill-column: 72 End: -->