Navigační lišta

Nastavení českého prostředí ve FreeBSD a v X Window


Domovská stránka Aplikace Podpora Dokumentace Prodejci Hledání Rejstřík Domovská stránka Domovská stránka
Úvod
Systémová konzola
Připojování disků
Systém X Window
Starší verze FreeBSD a systémová konzola
Starší verze FreeBSD a systém X Window
České prostředí v aplikacích
Autor
Změny

Úvod

Při nastavování české lokalizace je obecně nutné řešit několik typů problémů. Jedná se především o

V případě operačního systému FreeBSD, podobně jako i u ostatních unixových systémů, spočívá tíha podpory národního jazyka na

Česká systémová lokalizace se poprvé objevila ve FreeBSD 4.0 s XFree86 3.3.6 a od té doby je neustále vyvíjena a udržována a některé zde popisované možnosti, jako například přímé nastavení české klávesnice na konzole již během instalace, se objevily až v průběhu vývoje řady 4.x. Ve starších verzích FreeBSD se tedy mohou vyskytovat některé odchylky proti zde uvedeným postupům, z nichž většina je podchycena níže v tomto dokumentu. Není-li napsáno jinak, informace k české systémové lokalizaci se vztahují k verzi FreeBSD 4.9-RELEASE s XFree86 4.3.0.

Systémová konzola

Pro správné nastavení české lokalizace na konzole operačního systému je v zásadě zapotřebí nastavit hodnotu jedné nebo více proměnných a zajistit spuštění některých příkazů s potřebnými parametry pro nastavení klávesnice a zobrazování českých znaků, což se obvykle provádí automaticky při startu systému, nebo i přímo za běhu.

Nastavení lokalizačních proměnných

Aby mohly aplikace s češtinou správně pracovat, v jednom ze skriptů prováděných během přihlašování musí být nastavena proměnná LANG, nebo vhodná kombinace LANG/LC_*. Pro příkazové procesory typu Bourne lze použít následující příklad (např. v /etc/profile nebo ~/.profile):

    LANG=cs_CZ.ISO8859-2; export LANG

Pro csh by příklad výše vypadal takto (např. v /etc/csh.login nebo ~/.cshrc):

    setenv LANG cs_CZ.ISO8859-2

Pokud je požadováno pouze nastavení proměnné LANG, je možné do souboru /etc/login.conf nebo ~/.login_conf na vhodném místě uvést lang=cs_CZ.ISO8859-2, což je navíc řešení nezávislé na používaném příkazovém procesoru. Další informace můžete nalézt v manuálových stránkách setlocale(3), environ(7) (LANG/LC_ALL a ostatní LC_*) a login.conf(5).

Nastavení české klávesnice a zobrazování českých fontů

Pro nastavení české klávesnice a českých fontů je nejlepší mít v souboru /etc/rc.conf uvedeny tyto čtyři řádky:

    keymap="cs.latin2.qwertz"
    font8x16="iso02-8x16"
    font8x14="iso02-8x14"
    font8x8="iso02-8x8"

Zapsání výše uvedených řádků do /etc/rc.conf může zajistit i instalační program, pokud v menu Configure -> Console v podmenu Keymap zvolíte Czech ISO (accent) a v podmenu Font zvolíte ISO 8859-2. Způsob ovládání klávesnice je uveden v souboru /usr/share/syscons/keymaps/cs.latin2.qwertz.kbd.

Zobrazování rámečků

Chcete-li, aby na počeštěné konzole fungovaly rámečky (znaky ACS) alespoň ve formě ASCII znaků, proměnná TERM musí být nastavená na hodnotu cons25l2. Toho lze dosáhnout záměnou cons25 na cons25l2 v souboru /etc/ttys s následným zasláním signálu HUP procesu init a opětovým přihlášením, nebo s následným restartem celého systému. Pokud je globální nastavení nepřijatelné, nebo chcete změnu proměnné TERM pouze u sebe, k nastavení proměnné LANG přidejte také:

    if [ "$TERM" = cons25 ]; then
      TERM=cons25l2
    fi

Pokud chcete, aby byly rámečky zobrazeny pomocí semigrafických znaků, musíte provést příkazy (tímto způsobem se nové fonty zavedou až při restartu systému - pro jejich okamžité zavedení lze použít příkaz vidcontrol):

    cp iso02-8x8.fnt iso02-8x14.fnt iso02-8x16.fnt /usr/share/syscons/fonts/
    patch /usr/share/misc/termcap < termcap.diff
    cap_mkdb /usr/share/misc/termcap

Pozor na přihlašování na vzdálené systémy z této konzole, protože terminálový popis cons25l2 je ostatním systémům mnohem méně známý, než cons25!

Konfigurace kurzoru myši

Při standardní konfiguraci systému jsou pro zobrazování kurzoru myši v podobě šipky využívány čtyři znaky 0xD0 až 0xD3, které jsou ovšem ve znakové sadě ISO8859-2 použity pro písmena přeskrtnuté D, N s čárkou, N s háčkem a O s čárkou, a tato písmena se tedy bez změny konfigurace nemohou správně zobrazovat. Řešením je přesunutí kurzoru myši na jinou pozici ve znakové sadě, což lze provést buď spuštěním příkazu pro změnu nastavení zobrazování vidcontrol -M c nejlépe při startu systému, nebo novou kompilací jádra s nastaveným konfiguračním parametrem SC_MOUSE_CHAR. Pokud je na konzole použit režim s osmibitovými znaky, pro novou pozici lze zvolit znaky z rozsahu 0x00 až 0x1F a za nejrozumnější volbu lze považovat c = 3 nebo c = 7. Pokud je ovšem na konzole režim s devítibitovými znaky, použití znaků mimo interval 0xC0 až 0xDF způsobí, že kurzor myši bude přerušován svislými čárkami. Na druhou stranu jakákoli čtveřice znaků z intervalu 0xC0 až 0xDF může činit problémy při zobrazování některých platných znaků ze znakové sady ISO8859-2, proto musí každý uživatel zvolit svoji nejlepší osobní variantu. Změnu pozice kurzoru myši ve znakové sadě při startu systému lze zajistit přidáním následujícího řádku do /etc/rc.conf:

      mousechar_start="3"

Připojování disků

Pokud někdo chce připojovat WinXX disky s českými názvy souborů, musí u příkazu mount navíc uvést parametry -W iso22dos a -L cs_CZ.ISO8859-2. Disk s českými názvy souborů tedy lze z příkazového řádku připojit takto:

    mount -t msdos -o -Wiso22dos,-Lcs_CZ.ISO8859-2 /dev/... /mnt

A odpovídající řádek v /etc/fstab by vypadal takto:

    /dev/... /mnt msdos rw,-Wiso22dos,-Lcs_CZ.ISO8859-2 0 0

Systém X Window

I grafický systém X Window se primárně řídí hodnotou nastavení lokalizačních proměných LANG/LC_* a i aplikace v systému X Window potřebují vědět, které znaky jsou velká a malá česká písmena, a proto i v tomto případě musí být správně nastavené proměnné LANG/LC_* (viz výše), nejlépe ještě před spuštěním X serveru a všech následně spuštěných aplikací. V případě používání startx stačí mít správně nastavenou konzolu. V případě používání xdm je nutné zvolit jiný způsob nastavení lokalizačních proměnných. Kdo má ve svém domácím adresáři soubor ~/.xinitrc pro spuštění vlastního WM, může nastavení lokalizace uvést v tomto souboru před spuštěním WM.

Fonty

Pro co nejkvalitnější zobrazování fontů, zvláště ve webových prohlížečích, je dobré nainstalovat port webfonts v kategorii x11-fonts. Jelikož port obsahuje TrueTypová písma, v XF86Config musí být v sekci Module povolen modul freetype nebo xtt.

Základní bitmapové české ISO8859-2 fonty v prostředích KDE nebo Gnome fungují hned po instalaci, ale přesto mohou nastat situace, kdy může pomoci i doinstalování ověřených fontů z http://www.biz.net.pl/ s nastavením jejich preferování před ostatními, není-li kódování vynuceno. Jedná se zvláště o starší aplikace nebo o xterm, který ve standardní konfiguraci české fonty také nezobrazuje (samozřejmě je téměř vždy možné nakonfigurovat správné fonty u každé aplikace i jednotlivě). Instalaci včetně případného stažení souboru ISO8859-2-bdf.tar.gz lze provést takto:

    sh ISO8859-2-bdf.INSTALL

Nastavení české klávesnice

Klávesnici lze nastavit přímo v konfiguračním programu xf86cfg. Manuální nastavení je možné provést tak, že v sekci InputDevice s ovladačem Keyboard v XF86Config bude uveden řádek Option "XkbLayout" "x", kde x je seznam map klávesnice oddělených čárkou, mezi kterými lze přepínat pomocí nějaké kombinace kláves, například:

    Option "XkbLayout" "us,cz"

nebo

    Option "XkbLayout" "us,cz_qwerty"

V případě mapy cz je pro přepínání standardně zvolena kombinace ShiftL+ShiftR. Pokud se chcete přiblížit konzole a přepínat mapy dočasně podržením AltR a trvale stiskem AltL+ShiftL a pro indikaci české klávesnice použít diodu CapsLock, v XF86Config zkontrolujte, zda máte tento, nebo podobný řádek:

    Option "XkbOptions" "grp:switch,grp:alt_shift_toggle,grp_led:caps"

Klávesa RAlt pro dočasné přepnutí ovšem funguje jen z anglické mapy, jelikož v české mapě je RAlt využita pro přepnutí na jinou alternativní mapu, která je podobná mapě v neunixových systémech (WinXX, OS/2, ...). Proto je lepší buď místo grp:switch použít grp:win_switch, aby bylo možné na opačnou mapu přepínat pomocí kláves se symbolem Windows, nebo použít následující příkaz, který RAlt z české mapy odstraní a uvolní pro dočasné přepínání:

    patch /usr/X11R6/lib/X11/xkb/symbols/pc/cz < cz.diff

Pěkný seznam možných variant konfigurace klávesnice se nachází v souboru /usr/X11R6/lib/X11/xkb/rules/xfree86.lst.

Je-li česká klávesnice správně nastavená a se všemi doporučeními, při přepnutí na alternativní mapu (např. v případě použití us,cz s výše uvedenými volbami je standardní anglická a na českou je nutné přepnout dočasně podržením AltR nebo Win, nebo trvale stiskem AltL+ShiftL) by se měla rozsvítit LED dioda Caps Lock. Při problémech je dobré zkontrolovat konfigurační soubor a případně zkusit zakomentovat všechna ostatní Xkb* nastavení, která mohou s nově přidanými kolidovat. Pokud použijete konfigurační program xf86cfg, po jeho ukončení zkontrolujte, zda nevznikl soubor /usr/X11R6/lib/X11/xkb/X0-config.keyboard s duplicitní konfigurací klávesnice, která má vyšší prioritu, než hlavní konfigurační soubor XF86Config. Pokud soubor X0-config.keyboard skutečně vznikl, raději ho smažte a správnou konfiguraci udržujte pouze v hlavním konfiguračním souboru.

Starší verze FreeBSD a systémová konzola

Změna názvu lokalizace

Od FreeBSD 4.5 byly vynecháním podtržítka změněny názvy lokalizací z xx_XX.ISO_8859-X na xx_XX.ISO8859-X. Ve FreeBSD 4.4 a starších je tedy místo cs_CZ.ISO8859-2 nutné používat cs_CZ.ISO_8859-2. Správný název lokalizace si lze ověřit v adresáři /usr/share/locale/, kde je i vidět, že z důvodu kompatibility je u novějších verzí zatím stále zachována možnost používat i starší názvy lokalizací, nicméně v nových instalacích by již měly být používány pouze nové názvy.

Ostatní změny

Znaky ACS v semigrafické podobě fungovaly až do FreeBSD 4.5. Od FreeBSD 4.6 však byly v rámci "standardizace" zrušeny a nahrazeny pouze ASCII variantou.

Možnost zvolení české klávesnice při instalaci se objevila ve FreeBSD 4.5 a možnost zadat mousechar_start v rc.conf ve FreeBSD 4.4. Ve starších verzích lze pro změnu použitých znaků pro kurzor myši použít variantu:

      allscreens_flags="-M c"

Starší verze FreeBSD a systém X Window

Konfigurační program a umístění konfiguračního souboru

V XFree86 3.x se místo konfiguračního programu xf86cfg používá program XF86Setup. Konfigurační soubor XF86Config se může nacházet na mnoha různých místech. Nejběžnější umístění jsou /etc/X11/XF86Config nebo /etc/X11/XF86Config-4 pro verze XFree86 4.x a /etc/XF86Config pro verze XFree86 3.x. Existují ale i jiné možnosti a instalační skripty odkazované v tomto dokumentu se snaží počítat s co nejvíce možnostmi v pořadí, které je použito X serverem, ale i přesto může nastat situace, kdy nebude konfigurační soubor nalezen, nebo bude změněna neaktuální verze - v obou případech je nutné skripty upravit a nasměrovat je na existující a správnou verzi konfiguračního souboru.

Akceptování nastavené lokalizace

Pokud používáte starší instalaci ještě s názvem lokalizace s podtržítkem cs_CZ.ISO_8859-2 a soubor locale.alias v XFree86 řádek s tímto řetězcem neobsahuje, je nutné provést tento příkaz:

    patch /usr/X11R6/lib/X11/locale/locale.alias < locale.alias.diff

Fonty

Ve starších verzích XFree86 se základní české ISO8859-2 fonty nevyskytovaly vůbec (například ve 3.3.6), nebo byly chybné (například na počátku řady 4.x), proto u starších instalací může být přidání Biznet fontů za účelem počeštění nutností.

Pro případné přidání dalších TrueTypových fontů umístěných kdekoli na disku lze použít následující příkaz s parametrem dir určujícím adresář, kde jsou tyto fonty umístěny (bez použití parametru dir se implicitně použije cesta /mnt/dos/WINDOWS/Fonts):

    sh TrueType.INSTALL [dir]

Nastavení české klávesnice

Manuální nastavení v XFree86 4.0.x až 4.2.x je možné provést tak, že v sekci InputDevice s ovladačem Keyboard v XF86Config bude uveden řádek Option "XkbLayout" "x", kde x je typ klávesnice, například:

    Option "XkbLayout" "cz"

nebo

    Option "XkbLayout" "cz_qwerty"

Kdo není v těchto verzích spokojen se standardně dodávanou českou klávesnicí, může zkusit nainstalovat mapu klávesnice, která se co nejvíce zkouší přiblížit mapě klávesnice na konzole:

    cp cz cz_qwerty /usr/X11R6/lib/X11/xkb/symbols/

Pokud se chcete konzole přiblížit i tak, že mezi klávesnicemi budete dočasně přepínat podržením AltR a trvale stiskem AltL+ShiftL a pro indikaci české klávesnice chcete použít diodu CapsLock, v XF86Config zkontrolujte, zda máte tento, nebo podobný řádek:

    Option "XkbOptions" "grp:switch,grp:alt_shift_toggle,grp_led:caps"

V několika verzích XFree86 4.x se vyskytovala varianta české klávesnice, která byla zaměřena na některé uživatele neunixových systémů a pro ostatní uživatele byla jen velmi těžko stravitelná, proto krok s nainstalováním klávesnice může být v těchto případech téměř nutný.

Manuální nastavení klávesnice v XFree86 3.x lze provést tak, že v sekci Keyboard v XF86Config bude uveden řádek XkbKeymap "xfree86(x)", kde x je typ klávesnice, například:

    XkbKeymap "xfree86(us_cz_qwertz)"

Implicitně je v XFree 3.x přepínání mezi klávesnicemi nastaveno na ShiftL+ShiftR. Chce-li někdo pro přepínání mezi klávesnicemi používat stisk AltL+ShiftL, může provést tento příkaz:

    patch /usr/X11R6/lib/X11/xkb/symbols/czsk < czsk.diff

Kdo chce, aby se ve verzi XFree86 3.x po stisku mrtvé klávesy s háčkem a klávesy u/U vytvořilo písmenko u/U s kroužkem, může zkusit provést tento příkaz:

    patch /usr/X11R6/lib/X11/locale/iso8859-2/Compose < Compose.diff

Od XFree86 4.x je již podobná změna zařazena přímo v instalaci.

České prostředí v aplikacích

V dnešní době se již spousta aplikací dokáže sama přizpůsobit národnímu prostředí podle systémového nastavení (samozřejmě stále existují i takové, které to nedokáží), ale i přesto je někdy potřebné změnit nastavení konfigurace, aby aplikace správně fungovala s češtinou, což bývá nutné i v případech, kdy některá nastavení nelze rozumně odvodit pouze ze systémového nastavení. Problematika nastavení a konfigurace českého prostředí v aplikacích ve FreeBSD a obecně unixových operačních systémech je poměrně rozsáhlá a velice různorodá, proto zmíníme jen, a to pouze velmi zběžně, několik typických případů.

Webové prohlížeče

Ve webových prohlížečích je potřeba správně nastavit standardní zobrazovanou znakovou sadu, a dále velmi doporučujeme nastavit akceptování webových stránek primárně v českém jazyce. Například v Mozille (a podobně i v Netscape) je nastavení zobrazované znakové sady a akceptování jazykových mutací stránek dostupné přes Edit -> Preferences... -> Navigator -> Languages, kde stačí nastavit znakovou sadu ISO8859-2 a v seznamu před English [en] na první místo přidat Czech [cs]. V prohlížeči Opera je nastavení velmi podobné, a to přes File -> Preferences... -> Document -> Languages. Pokud byste tuto změnu neprovedli, na webových serverech, které obsahují více jazykových mutací shodných stránek, byste místo českých viděli anglické, jelikož by prohlížeč o českou variantu nepožádal.

OpenOffice

Populární kancelářský balík OpenOffice je kromě standardního portu bez českých katalogů zpráv v současné době k dispozici i s českými katalogy, a to v přeložené podobě jako aplikace pro Linux. Jako taková může využít linuxového API FreeBSD. Podrobnosti najdete na http://oo-cs.sourceforge.net/index.php.

TeX

Po instalaci balíku teTeX z kategorie print je potřeba provést příkazy

    patch /usr/local/share/texmf/tex/generic/hyphen/czhyph.tex < czhyph.tex.diff
    texconfig

a v texconfigu v HYPHEN -> latex a v HYPHEN -> cont-en se musí aktivovat řádky, kde je uvedeno slovo czech, aby se přegenerovaly formáty i s českými vzory dělení. Dále je potřeba ve FORMATS aktivovat řádky se slovy csplain, cslatex, pdfcsplain a pdfcslatex, díky čemuž se kromě vygenerování nových formátů vytvoří i nové příkazy csplain, cslatex, pdfcsplain a pdfcslatex.

Mutt

Pro poštovní program mutt se používá následující nastavení v konfiguračním souboru (systémový bývá umístěn jako /usr/local/etc/Muttrc):

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

První řádek slouží k tomu, aby se zobrazovaly české znaky, ale při správném nastavení systému nutný není. Druhý řádek nastavuje znakovou sadu pro odesílané dopisy. Pokud dopis obsahuje pouze znaky ze znakové sady ASCII, je použita, jinak se zkusí použít ISO8859-2, a pokud nepostačuje ani tato sada, dopis je odeslán ve znakové sadě UTF-8.

Pine

Pro poštovní program pine se používá následující nastavení v konfiguračním souboru (systémový bývá umístěn jako /usr/local/lib/pine.conf):

    character-set=iso-8859-2

Uvedený řádek způsobí, že v předmětu u česky psaných dopisů s háčky a čárkami není na začátku zbytečně uváděn text [iso-8859-2].

Samba

Aby klienti Samby ve Windows, ale i uživatelé ve FreeBSD, viděli shodně a správně české názvy souborů, musí být v její konfiguraci uvedeno (nejčastěji /usr/local/etc/smb.conf):

    client code page = 852
    character set = iso8859-2

MySQL

U MySQL je nutné podporu národního prostředí definovat při překladu. Uvedením WITH_CHARSET=czech při překladu portu bude standardní třídění nastaveno co nejvíce podle české normy. Pokud slovo czech, či slovo all zastupující všechny podporované lokalizace, uvedete v seznamu lokalizací, který je možné zadat k parametru překladu WITH_XCHARSET, české třídění bude možné nastavit až při startu databázového serveru.

Psaní skriptů v Perlu

Pro nastavení lokalizace v Perlu podle systémového nastavení je nutné ve skriptu uvést řádek:

    use locale;

V opačném případě skript v Perlu počítá pouze se znakovou sadou ASCII a ostatní znaky nepovažuje za písmena v abecedě, ale za blíže nespecifikované znaky.

Konverze textových dokumentů

Při přenášení textových dokumentů mezi unixovými a neunixovými systémy je důležité umět pro příslušné systémy tyto dokumenty konvertovat, aby mohly být správně zobrazeny. Několik aplikací pro převod mezi různými znakovými sadami a pro převod konců řádků lze nalézt ve FreeBSD v portech v kategorii converters (http://www.FreeBSD.org/ports/converters.html).

Pro převod znakových sad lze použít příkaz recode (port recode) nebo biconv (port iconv společně s iconv-extra). Názvy znakových sad se mezi těmito programy mírně liší. U obou programů ale pro označení znakové sady ISO8859-2 používané v unixových systémech lze použít krátký název l2 (zkratka z Latin2), pro sadu CP1250 používanou ve Windows pak cp1250, a pro sadu IBM852 používanou v DOSu název 852 (recode navíc u sad CP1250 a IBM852 provádí i převod konců řádků).

Pro převod konců řádků mezi unixovýmí systémy a Windows/DOS lze použít příkazy dosunix/unixdos (port dosunix), dos2bsd/bsd2dos (port fconv) nebo tuc (port tuc).

Autor

Rudolf Čejka <cejkar@fit.vutbr.cz> http://www.fit.vutbr.cz/~cejkar

Změny


webmaster@FreeBSD.cz
© 2001-2003 FreeBSD CZ