Lokalizace aplikací

Z Wiki@FreeBSD.cz
Přejít na: navigace, hledání

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.

OpenOffice.org nyni podporuje i FreeBSD, viz. http://porting.openoffice.org/freebsd/

OpenOffice.org MiniHowto

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):

   dos charset = cp852
   unix charset = iso8859-2
   display charset = iso8859-2

Ve starší Sambě 2 se používá následující nastavení:

   client code page = 852
   character set = iso8859-2

MySQL

Pro podporu češtiny s kódováním ISO8859-2 je nutné při překladu portu použít WITH_CHARSET=latin2, aby přeložené MySQL umělo i české třídění latin2_czech_cs. Možností správného spuštění databázového serveru je několik, mně se ale nejlépe osvědčilo vytvořit soubor /var/db/mysql/my.cnf:

   [mysqld]
   character-set-server=latin2
   collation-server=latin2_czech_cs
   init-connect='set character set latin2'

Pak je při spouštění databázového serveru automaticky nastaveno správné kódování na straně serveru. Poslední řádek s init-connect navíc zajišťuje pro klienty s uživatelským účtem i předpokládané kódování na straně klienta (jinak si musí každý klient kódování nastavovat sám, jelikož implicitní kódování latin1 s tříděním latin1_swedish_ci bývá nevyhovující). Pro klienta se superuživatelským přístupem toto nastavení ovšem nefunguje a v případě potřeby si musí správné kódování nastavit sám.

Pokud požadujete kódování databáze v UTF-8, stačí standardně přeložený port MySQL s mírně upraveným souborem /var/db/mysql/my.cnf:

   [mysqld]
   character-set-server=utf8
   collation-server=utf8_czech_ci
   init-connect='set character set utf8'

MySQL starší než 4.1.3 místo character-set-server používá default-character-set a místo collation-server používá default-collation.

U MySQL 3 je nutné podporu národního prostředí definovat při překladu uvedením WITH_CHARSET=czech, kde takto 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é národní prostředí se pak nastavuje až při spouštění 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 iconv (port libiconv). Dalšími možnostmi mohou být 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 všech programů ale lze pro označení znakové sady ISO8859-2 používané v unixových systémech použít krátký název l2 (zkratka z Latin2), pro sadu CP1250 používanou ve Windows 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).

--Cejkar 16:09, 26. 4. 2007 (CEST)