Lokalizace v prostředí ISO-8859-2 (neudržováno)

Tato část návodu se zabývá tím co kam napsat, aby se s vámi Debian bavil (více či méně) v češtině a abyste viděli a mohli psát akcentované znaky. Pokud chcete pochopit proč se ta či ona věc dělá, prostudujte si Czech HOWTO.

Také je nutno zmínit, že pokud jste při instalaci Debianu vybrali češtinu, je již mnoho věcí nastaveno za vás (např. locales, textová kozole a klávesové rozložení).

Nastavení českého prostředí

Aby lokalizace fungovala správně, je nutno nainstalovat balík locales, bez kterého by to prostě nešlo. Při konfiguraci balíku budete dotázáni, jaké locales si přejete vygenerovat. Protože asi chcete, aby na vás programy mluvily česky, tak vyberte cs_CZ ISO-8859-2 (dobrodružné povahy mohou zkusit též cs_CZ.UTF-8 UTF-8). Nemusíte se omezovat jen na jeden jazyk. Pokud na vašem počítači bude pracovat více lidí z různých zemí, můžete vybrat i jejich národní jazyky — každý uživatel si může nastavit své prostředí podle chuti. Když výběr jazyků potvrdíte, objeví se další okno, ve kterém se máte rozhodnout jaké národní prostředí bude výchozí. Pokud chcete mít systém primárně v češtině, vyberte ze seznamu možnost cs_CZ.

Kdybyste chtěli kdykoliv nastavení locales změnit, stačí z příkazové řádky spustit dpkg-reconfigure locales. Nastavení se projeví až po odhlášení a znovupřihlášení uživatele.

Nastavení locales si můžete ověřit příkazem locale, který vypíše všechny proměnné související s národním prostředím a jejich hodnoty. Na mém pracovním stroji vypadá výpis locale následovně:

  LANG=cs_CZ
  LC_CTYPE="cs_CZ"
  LC_NUMERIC="cs_CZ"
  LC_TIME="cs_CZ"
  LC_COLLATE="cs_CZ"
  LC_MONETARY="cs_CZ"
  LC_MESSAGES=C
  LC_PAPER="cs_CZ"
  LC_NAME="cs_CZ"
  LC_ADDRESS="cs_CZ"
  LC_TELEPHONE="cs_CZ"
  LC_MEASUREMENT="cs_CZ"
  LC_IDENTIFICATION="cs_CZ"
  LC_ALL=
    

Význam všech proměnných se dozvíte v manuálové stránce locale(1), zde je pouze krátký přehled:

LC_CTYPE
určuje co je a co není v daném jazyce znak
LC_COLLATE
určuje pořadí třídění
LC_TIME
určuje formát data a času přizpůsobený jazyku
LC_NUMERIC
určuje formát čísel (oddělovače tisíců a desetinných míst) přizpůsobený zvyklostem jazyka
LC_MESSAGES
určuje jazyk, kterým na vás programy mluví
LC_ALL
přebíjí hodnoty všech LC_* proměnných
LANG
naopak od předchozí slouží jako „záchytná“ proměnná — pokud není nějaká LC_* proměnná explicitně nastavená (kromě LC_ALL), bude mít stejnou hodnotu, jako má LANG.

Například já mám nastavenou proměnnou LANG na hodnotu cs_CZ a proměnnou LC_MESSAGES na hodnotu C, což je nativní jazyk programů (v 99% případů angličtina). Tedy mám kompletně české prostředí, ale programy na mě mluví anglicky.

Národní prostředí pro celý systém se nastavuje v souboru /etc/environment. Pokud chce mít uživatel jiné prostředí než správce nastavil, může si ho změnit ve svých konfiguračních skriptech. Pro konzolu v konfiguračním souboru svého oblíbeného shellu (~/.bash_login, ~/.zshenv apod.), pro X Window System nejlépe v ~/.xsession. Stejného prostředí jako mám já, docílíte příkazy:

  export LC_MESSAGES=C
  export LANG=cs_CZ
    

GNU rozšíření

Nyní musím zmínit jedno nestandardní GNU rozšíření, a sice proměnnou LANGUAGE. Tato proměnná obsahuje dvojtečkami oddělený seznam jazyků, kterými na vás mají programy mluvit. Výhodou oproti proměnné LC_MESSAGES je to, že když daný program není přeložen do zvoleného jazyka, nepřepne se okamžitě do výchozího jazyka, ale zkouší postupně zadané možnosti.

Například nastavením LANGUAGE="cs_CZ:pt_BR:pt:en_GB" říkáte, že má aplikace komunikovat v češtině, pokud čeština není k dispozici, tak má zkusit brazilskou portugalštinu, v dalším kroku běžnou (portugalskou) portugalštinu a na závěr britskou angličtinu. Když ani ta není k dispozici, bude aplikace komunikovat tak, jak jí zobák narostl, tedy pravděpodobně v nějakém druhu angličtiny.

Pozor na to, že proměnná LANGUAGE má přednost před výše popsanými proměnnými LANG, LC_MESSAGES a dokonce i před LC_ALL. Také je třeba mít na paměti fakt, že proměnná, která určuje, zda je daný znak platný nebo ne a v jakém je kódování, je stále LC_CTYPE.

Fonty a klávesnice na konzoli

Abyste na konzoli viděli akcentovaná písmenka a ne různé obdélníčky, přidejte do souboru /etc/console-tools/config řádky

  SCREEN_FONT=lat2-sun16
  APP_CHARSET_MAP=iso02
    

Jestliže jste při instalaci zvolili české rozložení klávesnice, můžete se mezi českou a anglickou klávesnicí přepínat klávesou Pause. Pokud jste při instalaci vybrali jinou klávesovou mapu nebo prostě jen chcete rozložení kláves změnit, spuťte jako root příkaz dpkg-reconfigure console-data a z nabízeného seznamu si vyberte vhodnou náhradu.

Aby X aplikace zobrazovaly akcentovaná písmena

Abyste v programech viděli akcentovaná písmenka a ne různé obdélníčky, zlomky nebo průměry, musíte mít nainstalovány příslušné fonty. Pro češtinu jsou to balíky písem, v jejichž názvu nebo popisu se objevuje řetězec iso8859-2, například:

To je vše — každý standardní program by měl nyní správně zobrazovat akcentovaná písmena.

Přepínání klávesnic

Standardní českou klávesnici pro XFree86 4.3 nastavíte v souboru /etc/X11/XF86Config-4 volbou "XkbLayout" "cz". Celá sekce pro klávesnici vypadá například takto:

  Section "InputDevice"
      Identifier  "Generic Keyboard"
      Driver      "keyboard"
      Option      "CoreKeyboard"
      Option      "XkbRules"      "xfree86"
      Option      "XkbModel"      "pc104"
      Option      "XkbLayout"     "cz_qwerty,us"
      Option      "XkbOptions"    "grp:shift_toggle,grp_led:scroll,grp:switch"
  EndSection
    

Tato česká mapa klávesnice umí psát anglické znaky pomocí pravé klávesy Alt. (Např. zavináč se napíše pravý Alt + 2.) Trvalého přepnutí na anglickou klávesnici dosáhnete současným stiskem obou kláves Shift. (Přepnutí na druhou klávesovou mapu indikuje svítící kontrolka Scroll Lock.)

Komu by nevyhovovalo přepínání mezi klávesovými mapami kombinací Shift+Shift, může zaměnit parametr grp:shift_toggle za některou (případně některé) z následujících variant:

Přepínání mezi různými klávesovými mapami (které na rozdíl od předchozího nemusí být zapsány v souboru /etc/X11/XF86Config-4) se děje programem setxkbmap.

  setxkbmap cz_qwerty  #přepne na českou klávesnici
  setxkbmap en_US      #přepne na anglickou klávesnici
  setxkbmap fr         #přepne na francouzskou klávesnici
    

Desktopová prostředí jako KDE a GNOME mají pro přepínání klávesnic vlastní „applety“ (prográmky, které obvykle sedí na panelu), které často spolupracují s výše uvedeným souborem /etc/X11/XF86Config-4 a přebírají z něj základní nastavení.

Emulátory terminálu (xterm, rxvt)

Pokud tyto aplikace nezobrazují akcentovaná písmena korektně, vyberte si v programu xfontsel vhodné písmo (v kódování iso8859-2) a to zapište do souboru ~/.Xresources na samostatný řádek například:

  XTerm*font:  -misc-fixed-medium-r-*-*-12-*-*-*-*-*-iso8859-2
    

Změna písma se projeví po dalším přihlášení do X nebo ihned příkazem xrdb ~/.Xresources

GTK/GNOME

Aplikace napsané nad toolkitem GTK (tedy i gnomovské aplikace) fungují, s malou výjimkou, bez dalšího nastavování.

Drobný problém může nastat u správce obrazovky GDM, který přejímá nastavení jazyka ze souboru /etc/default/gdm, a občas se může stát (při nevhodné posloupnosti instalace balíků), že bude úvodní obrazovka GDM v angličtině (ale po přihlášení bude vše v pořádku). Náprava je jednoduchá — stačí v souboru /etc/default/gdm přidat/opravit řádek LANG, aby vypadal následovně:

  LANG=cs_CZ
    

Novější verze knihovny GTK implicitně předpokládají, že názvy souborů jsou na disku uloženy v kódování UTF-8. Pokud však postupujete podle tohoto návodu, používáte kódování iso-8859-2. Tento rozdíl by způsobil, že názvy souborů zapsaných z GTK aplikací by byly hůře čitelné ne-GTK programy a naopak. Naštěstí můžete proměnnou prostředí G_FILENAME_ENCODING vysvětlit knihovně, že má načítat/ukládat názvy souborů v zadaném kódování. Stačí tedy zajistit, aby se např. při přihlášení provedl příkaz:

  export G_FILENAME_ENCODING=iso-8859-2
    

KDE 3

Při instalaci KDE je potřeba vybrat balík kde-i18n-cs, který obsahuje česká hlášení základních KDE programů.

Při prvním přihlášení do prostředí KDE se spustí průvodce, ve kterém si nastavíte jazyk (čeština) a zemi (Česko), nicméně fontům je stále potřeba pomoci, protože místo písmen s háčky a čárkami se zobrazují otazníky nebo obdélníky. V Ovládacím centru v části Vzhled a chování v uzlu Písma u všech položek vyberte takové písmo, které správně zobrazuje větu o úpějícím poníkovi. (Ve větě se zaměřte obzvláště na písmena č a ř, protože je na nich pěkně vidět, pokud jsou „vypůjčená“ z jiného písma.)

OpenOffice.org

Počeštění tohoto kancelářského balíku dosáhnete instalací balíčku openoffice.org-l10n-cs, ve kterém se kromě českého překladu programu nachází i počeštěné šablony dokumentů a automatická oprava překlepů.

Může se stát, že menu sice bude počeštěné, ale některá akcentovaná písmena se budou zobrazovat chybně. V takovém případě vyberte z menu Nástroje položku Volby... a následně v části OpenOffice.org uzel Náhrada písem. Zde zaškrtněte možnost Použít tabulku náhrad, do pole Písmo vepište text Andale Sans UI a v poli Nahradit za si vyberte nějaké pěkné písmo obsahující české znaky (například URW Gothic L). Nyní musíte zvolenou náhradu písma přesunout do dolního seznamu kliknutím na tlačítko se zelenou fajfkou, zatrhnout na příslušném řádku obdélníček Obrazovka a celý dialog potvrdit tlačítkem OK.

K3b, KOffice, Mozilla, Mozilla Firefox, Sylpheed, …

Některé programy mají lokalizační soubory odděleny do samostatných balíků, v nichž se kromě lokalizovaných hlášek někdy skrývá i přeložená nápověda.

(Ne)přítomnost těchto balíků nemá vliv na správné čtení/zadávání českých znaků (to funguje automaticky).

XMMS

Aby se v oblíbeném multimediálním přehrávači správně zobrazovala čeština v názvech písniček a jménech zpěváků, je třeba provést jeden až dva kroky. Nejprve je nutné vybrat rozumné písmo v kódování iso8859-2. To nastavíte v menu Volby -> Nastavení, kde na záložce Fonty vyberete vhodné písmo jak pro seznam skladeb, tak i pro hlavní okno. Nezapomeňte zatrhnout možnost Používat X Font. Po potvrzení dialogového okna by se vše mělo zobrazovat dle očekávání.

Pokud tomu tak není, bude ještě potřeba nastavit znakovou sadu popisných informací konkrétních dekódovacích modulů. Otevřete dialog Volby -> Nastavení, na záložce Audio I/O pluginy vyberte požadovaný vstupní modul, klikněte na Nastavit a hledejte pole nazvané „Znaková sada“, „Encoding“, nebo podobné (název a umístění bohužel nejsou standardizovány) a zadejte kódování, ve kterém jsou v hudebním souboru uložena popisná data.

Ion3 / Pwm3

Ion je zajímavý správce oken, který se proslavil svým netradičním, avšak efektivním způsobem práce s X Window Systémem. Tento správce oken je od verze 3 počeštěn, avšak abyste viděli uvítací obrazovku a těch několik hlášek, kterými oplývá, v češtině, musíte před startem Ionu nastavit proměnnou LC_CTYPE tak, aby obsahovala i použité kódování, tj.

  export LC_CTYPE=cs_CZ.ISO-8859-2
    

wdm

wdm se (podobně jako xdm, gdm a kdm) stará o grafické přihlašování uživatelů do systému. Aby se přihlašovací obrazovka zobrazila v češtině, musíte v souboru /etc/X11/wdm/wdm-config upravit proměnnou DisplayManager*wdmLocale, aby obsahovala požadované prostředí, tj.

  DisplayManager*wdmLocale: cs_CZ
    

Další aplikace

Ispell

Český slovník pro ispell se nachází v balíku iczech.

(La)TeX

Po nainstalování TeXu (balíky tetex-base, tetex-bin, tetex-extra) musíte v souboru /etc/texmf/fmt.d/00tetex.cnf odkomentovat řádky začínající

a spustit příkaz update-fmtutil, který aktualizuje konfigurační soubor /var/lib/texmf/web2c/fmtutil.cnf.

Nakonec je třeba spustit příkaz texconfig init, čímž se vygenerují příslušné formáty (programy csplain, cslatex, pdfcsplain a pdfcslatex).

Mutt

mutt je velice oblíbený program pro správu pošty. Aby si lépe rozuměl s ostatními poštovními klienty, zadejte do souboru ~/.muttrc následující dva řádky:

  set charset="iso-8859-2"
  set send_charset="us-ascii:iso-8859-2:utf-8"
    

darcs

Distribuovaný systém pro správu verzí darcs implicitně zobrazuje všechny netisknutelné ascii znaky pomocí hexadecimálních escape sekvencí, což velmi ztěžuje čtení změn v souborech obsahujících například český text. Pokud je text v kódování iso-8859-2, můžete nastavit proměnnou prostředí DARCS_USE_ISPRINT na hodnotu 1, což promění escape sekvence zpět na háčkovaná a čárkovaná písmena:

  export DARCS_USE_ISPRINT=1
    

fortunes

Fortunes je sbírka zajímavých citátů, které se obvykle zobrazují uživatelům při přihlášení do systému. Několik tisíc českých a slovenských hlášek naleznete v balíku fortunes-cs.

a2ps

a2ps slouží pro převod nejrůznějších formátů do PostScriptu. Kódování vstupních souborů zadáte parametrem --encoding=latin-2. Abyste nemuseli zadávat kódování při každém převodu textových souborů, můžete tento parametr uložit do konfiguračního souboru /etc/a2ps-site.cfg, kde stačí změnit řádek Options: --encoding=latin1 následovně:

  Options: --encoding=latin2
    

GNU recode

Program recode z balíčku recode slouží k převodu textu z jednoho kódování do jiného. Například převod souboru revolution_os.sub z kódování používaného na Windows (CP 1250) do unixového (ISO8859-2 známého též jako latin-2):

  recode 1250..l2 revolution_os.sub
    

iconv

Stejně jako recode, slouží iconv ke konverzi textu mezi různými kódováními. Na rozdíl od předchozího má sice méně funkcí, ale zato je přímou součástí glibc, tudíž by měl být nainstalován na každém systému. Převod souboru revolution_os.sub z minulého příkladu zpět do windows kódování by se provedl:

  iconv -f ISO8859-2 -t WINDOWS-1250 revolution_os.sub >revolution.sub
    

Seznam všech kódování, mezi kterými můžete převádět, získáte příkazem iconv --list.

Oblasti se souborovým systémem FAT

Připojení diskové oblasti se souborovým systémem FAT tak, aby se správně zobrazovala nabodeníčka, provedete příkazem mount -t vfat -o iocharset=iso8859-2,codepage=852 /dev/sda1 /mnt/zip, kde /dev/sda1 je disková oblast a /mnt/zip je přípojný bod. Pokud chcete toto připojení zvěčnit, zadejte jej do souboru /etc/fstab:

  /dev/sda1  /mnt/zip  vfat  rw,iocharset=iso8859-2,codepage=852,quiet  0  0
    

Oblasti se souborovým systémem NTFS

Připojení diskové oblasti se souborovým systémem NTFS je podobné jako připojení oblasti se souborovým systémem FAT s tím rozdílem, že místo kombinace iocharset/codepage se použije parametr nls=iso8859-2.

Samba

Aby klienti viděli správné názvy souborů obsahující akcentované znaky, musíte do souboru /etc/samba/smb.conf do sekce [global] přidat následucící řádky:

  dos charset = 852
  unix charset = ISO-8859-2
  display charset = ISO-8859-2