Lokalizace
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á, budete muset pohledat po Internetu.
Předem musím varovat, že se nyní v Debianu používá výchozí kódování
UTF-8, které je jednu stranu velkým přínosem, na stranu
druhou s ním mají některé starší aplikace problémy a není jisté, zda
je někdy někdo opraví. Narazíte-li na takovouto aplikaci, dejte nám
o tom prosím vědět do české lokalizační
konference Debianu, nebo přímo správci této stránky. Je-li pro
vás přechod na UTF-8 z nějakého důvodu nemožný, bude ještě nějakou
dobu existovat starší verze této
stránky, která se zabývá nastavením českého systému v kódování
ISO-8859-2
.
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á konzole 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.UTF-8 UTF-8
(případně starší
cs_CZ ISO-8859-2
). 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. Doporučuji vybírat vždy
variantu jazyka, ve které se nachází text UTF-8
,
protože to zjednoduší následné přepínání. 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.UTF-8
.
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, případně po ručním nastavení
příslušných proměnných.
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.UTF-8 LC_CTYPE="cs_CZ.UTF-8" LC_NUMERIC="cs_CZ.UTF-8" LC_TIME="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" LC_MONETARY="cs_CZ.UTF-8" LC_MESSAGES=en_GB.UTF-8 LC_PAPER="cs_CZ.UTF-8" LC_NAME="cs_CZ.UTF-8" LC_ADDRESS="cs_CZ.UTF-8" LC_TELEPHONE="cs_CZ.UTF-8" LC_MEASUREMENT="cs_CZ.UTF-8" LC_IDENTIFICATION="cs_CZ.UTF-8" 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.UTF-8 a proměnnou LC_MESSAGES na hodnotu en_GB.UTF-8, což znamená, že mám kompletně české prostředí, ale programy na mě mluví britskou angličtinou.
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=en_GB.UTF-8 export LANG=cs_CZ.UTF-8
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 zjednodušené mezinárodní 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 SCREEN_FONT_vc2=lat2-sun16 SCREEN_FONT_vc3=lat2-sun16 SCREEN_FONT_vc4=lat2-sun16 SCREEN_FONT_vc5=lat2-sun16 SCREEN_FONT_vc6=lat2-sun16
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.
Naneštěstí je však české rozložení klávesnice na unicodové konzoli
téměř nepoužitelné, protože jaderný ovladač klávesnice
neumí pracovat s tzv. mrtvou klávesou, pomocí které píšeme
písmena jako ó, ť, ň, ď
. Písmena navázaná na jedinou
klávesu (ě, š, č, ř, ž, ý, á, í, é, ú, ů
) půjdou napsat
bez problémů. Chyba se týká pouze vstupu — zobrazování znaků
funguje. Existuje několik záplat pro řešení této chyby, ale žádná
z nich nebyla vývojáři linuxového jádra akceptována.
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 unicodových písem které pokrývají
alespoň rozsah ISO8859-2. V popisu těchto písem často
můžete nalézt řetězec ISO10646-1. Balíky písem většinou
začínají na xfonts-
(bitmapová písma) nebo
ttf-
(TrueType). Například:
xfonts-base
xfonts-75dpi
xfonts-100dpi
xfonts-intl-european
xfonts-terminus
ttf-dejavu
ttf-freefont
ttf-isabella
ttf-sil-charis
ttf-sil-doulos
linux-libertine
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 X.Org nastavíte v souboru
/etc/X11/xorg.conf
volbou "XkbLayout"
"cz". Celá sekce pro klávesnici vypadá například
takto:
Section "InputDevice" Identifier "Generic Keyboard" Driver "keyboard" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "cz,us" Option "XkbVariant" "qwerty," Option "XkbOptions" "grp:shifts_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 resp. další 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:shifts_toggle za některou (případně některé) z následujících variant:
- grp:ctrls_toggle (obě klávesy Control),
- grp:alts_toggle (obě klávesy Alt),
- grp:ctrl_shift_toggle (Control+Shift),
- grp:caps_toggle (Caps Lock),
- grp:ctrl_alt_toggle (Control+Alt),
- grp:alt_shift_toggle (Alt+Shift),
- grp:menu_toggle (Menu),
- grp:lwin_toggle (levá okenice),
- grp:rwin_toggle (pravá okenice),
- grp:sclk_toggle (Scroll Lock),
- grp:lshift_toggle (levý Shift),
- grp:rshift_toggle (pravý Shift),
- grp:lctrl_toggle (levý Control),
- grp:rctrl_toggle (pravý Control) nebo
- grp:lalt_toggle (levý Alt).
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/xorg.conf
) se děje programem
setxkbmap
.
setxkbmap cz #přepne na oficiální českou klávesnici setxkbmap cz qwerty #přepne na rozumnou českou klávesnici setxkbmap gb #přepne na anglickou (GB) klávesnici setxkbmap us #přepne na anglickou (US) 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/xorg.conf
a přebírají z něj základní
nastavení.
Emulátory terminálu (xterm, urxvt)
Pokud tyto aplikace nezobrazují akcentovaná písmena korektně,
vyberte si v programu xfontsel
vhodné písmo pokrývající
rozumný rozsah unicode a to zapište do souboru
~/.Xresources
na samostatný řádek. Například:
XTerm*font: -misc-fixed-medium-r-*-*-15-*-*-*-*-*-iso10646-1
Změna písma se projeví po dalším přihlášení do X nebo ihned příkazem
xrdb ~/.Xresources
Mnoho populárních emulátorů terminálu bohužel práci v UTF-8 nezvládá (aterm, eterm, mrxvt) a tedy je vhodné se poohlédnout po vhodné alternativě (rxvt-unicode).
GTK/GNOME 2
Aplikace napsané nad toolkitem GTK2 (tedy i gnomovské aplikace) fungují bez dalšího nastavování.
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). Od dob, kdy Debian
standardně instaluje font ttf-dejavu
, není potřeba
žádné další nastavení. Nicméně kdyby se náhodou místo písmen s háčky
a čárkami zobrazovaly otazníky nebo obdélníky, můžete tomu pomoci
instalací vhodných fontů a pak 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í také počeštěné šablony dokumentů
a automatická oprava překlepů. Užitečný bude i český slovník
v balíku myspell-cs-cz
.
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, Iceweasel, Icedove, 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.
k3b-i18n
koffice-i18n-cs
kile-i18n
libqt3-i18n
iceweasel-l10n-cs
icedove-locale-cs
enigmail-locale-cs
filezilla-locales
sylpheed-claws-gtk2-i18n
sylpheed-claws-i18n
sylpheed-i18n
(Ne)přítomnost těchto balíků nemá vliv na správné čtení/zadávání českých znaků (to funguje automaticky).
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.UTF-8
Další aplikace
Ispell
Český slovník pro ispell
se nachází v balíku
iczech
, nicméně v prostředí UTF-8 je lepší používat
aspell.
Aspell
Český slovník pro aspell
se nachází v balíku
aspell-cs
.
(La)TeX
V Debianu se nyní nachází dvě varianty TeXu — TeX Live 2005 a teTeX 3.0. Jelikož se teTeX již dále nevyvíjí a je možné, že bude z příštích vydání Debianu odstraněn, doporučujeme použít TeX Live.
Zprovoznění českých formátů a fontů je jednoduché. Kromě samotného
TeX Live (např. balík texlive
) stačí doinstalovat
balík texlive-lang-czechslovak
a vše se zařídí samo.
Chcete-li v LaTeXu zpracovávat vstupní soubory v kódování UTF-8,
doinstalujte si ještě balík latex-ucs
a do hlavičky
dokumentů přidejte řádku
\usepackage[utf8x]{inputenc}
Oproti TeX Live vyžaduje nastavení teTeXu trošku ruční práce. Po
nainstalování teTeXu (balíky tetex-base
,
tetex-bin
, tetex-extra
) musíte v souboru
/etc/texmf/fmt.d/01tetex.cnf
odkomentovat řádky
začínající
- cont-cz
- csplain
- cslatex
- pdfcsplain
- pdfcslatex
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
).
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í UTF-8,
můžete nastavit proměnnou prostředí
DARCS_DONT_ESCAPE_8BIT
na hodnotu 1, což promění escape
sekvence zpět na háčkovaná a čárkovaná písmena, ovšem může způsobit
problémy s řídícími znaky z kódové sady ISO8859-1
:
export DARCS_DONT_ESCAPE_8BIT=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
.
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 univerzálního UTF-8:
recode 1250..u8 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 UTF-8 -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.
convmv
Užitečný program, který umí převést názvy souborů do různých
kódování, což se může hodit třeba při přechodu na UTF-8 (a potažmo
zpět na ISO8859-2), jak předvádí následující příklad. Nejprve jsou
rekurzivně překódovány všechy názvy souborů v adresář
i
z původního ISO8859-2 do módního UTF-8 a poté je jeden konkrétní
název souboru překódován až do UTF-32. (Takovýto mix se v praxi
rozhodně nedoporučuje, protože vede jen ke zmatkům!)
convmv --notest -f iso-8859-2 -t utf8 -r adresář convmv --notest -f utf8 -t UTF-32 adresář/soubor
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 utf8 /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,utf8,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
se nyní místo kratšího utf8
používá
parametr nls=utf8
.
/dev/sda1 /mnt/zip ntfs ro,nls=utf8 0 0
CD / DVD
Disky nahrané pouze ve formátu iso9660 mohou obsahovat pouze
podmnožinu ASCII znaků, tj. žádnou češtinu v názvech souborů
neočekávejte. Disky používající rozšíření Joliet (standardně
používané masterovacími programy na MS Windows) mají názvy souborů
uložené v kódování UTF-16, takže při připojování je musíte převést
do UTF-8 pomocí volby iocharset=utf-8
nebo zkráceně jen
utf8
. Řádka v souboru /etc/fstab by mohla
vypadat třeba takto:
/dev/hda /media/cdrom0 udf,iso9660 user,iocharset=utf-8,noauto 0 0
Pokud jsou na disku použita unixová rozšíření RockRidge, jsou názvy
souborů uloženy v takovém kódování, jaké bylo zadáno programu
mkisofs parametrem -output-charset
. Protože příkaz
mount neumí u rozšíření RockRidge nastavit použité kódování, je
potřeba soubory z CD zkopírovat na pevný disk a překódovat
pomocí convmv
(pokud zrovna nejsou názvy uloženy
v UTF-8, pak se automaticky zobrazí správně).