Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Lokalizace otevřeného a svobodného software

V prvním článku ze série věnované problematice lokalizace otevřeného a svobodného softwaru si vysvětlíme význam a obsah základních pojmů a naznačíme východiska lokalizace založené na technologii gettext. Lokalizace a s ní související procesy jsou nedílnou součástí vývoje převážné části softwaru.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Lokalizace a internacionalizace

Tyto skutečnosti nepříliš překvapivě platí i pro vývoj otevřeného a svobodného softwaru. Tvůrce programu by tak měl – pokud chce svým produktem potenciální uživatele skutečně zaujmout a pokud se tito uživatelé nerekrutují z řad specifické předem vymezené skupiny – s možností lokalizace počítat už od samého počátku vývoje. Takto danou možnost coby vývojový proces nazýváme internacionalizací (anglicky „internationa­lization“, kvůli délce tohoto slova se často můžeme setkat se zkratkou i18n, kde první a počáteční písmeno je zachováno a číslo uprostřed značí počet vynechaných písmen; pokud bychom při překladu trvali na použití českého slova, použili bychom asi „zmezinárodnění“).

Internacionalizace zaručuje, že bude možné daný software přizpůsobit uživateli bez použití dalších technických prostředků, že bude program používat jednotný a/nebo v lokalizaci srozumitelný přirozený jazyk apod. Samotný proces přizpůsobování místním podmínkám a nárokům uživatele pak obstarává loka­lizace (anglicky „localisation“, zkracuje se obdobnou formou jako „internationa­lization“, tedy l10n, či kvůli většímu grafickému odlišení jako L10n).

Anketa

Jak přistupujete k software v češtině?

       

Pokusme se nyní vyjmenovat alespoň některé kategorie a příklady onoho přizpůso­bování. Z hlediska spotřeby na lokalizaci vydávaných zdrojů nejdůležitější a nejrozsáhlejší, ale jistě ne jedinou, kategorií je překlad z výchozího jazyka, kterým je obvykle (americká) angličtina, do místního jazyka či jazykové varianty. V případě jazyků používajících jinou abecedu se samozřejmě počítá i s umožněním používat program se znaky mimo latinku (byť byl dříve tento proces v případě nutnosti porůznu obcházen) či znaky mimo anglickou abecedu (případ češtiny či slovenštiny), dále směr psaní (zápis zleva doprava či zprava doleva např. u arabštiny, značení čísel (číslice, např. v perštině) a další. V případě jazyků s více psanými variantami (kupř. americká, anglická či australská angličtina, evropská či brazilská portugalština atd.) pak internacionalizace umožňuje rozlišení a lokalizace provádí přizpůsobení těmto specifikům.

Jako další kategorie můžeme zmínit odlišné měny, váhy a míry (metrický vs. imperiální systém), formát čísel (otázka desetinného vyznačování), kalendáře, zápisy data (které jsou v transatlantických vztazích častým zdrojem nedorozumění, jelikož se např. ve Spojených státech, oproti běžnému standardu v Evropě, v datu zapisuje měsíc před dnem, tedy 12. 24. 2007), času (často je nutné se vymezit vůči anglosaskému úzu 12hodinového cyklu), volba časového pásma (s rozlišením podle měst či jiných geografických míst na Zemi), formát poštovní adresy, telefonního čísla; popřípadě nikoliv pouze přizpůsobení formy, ale i obsahu uvedených kategorií, vyžaduje-li to povaha softwaru. Obecněji řečeno internacionalizace a lokalizace znamenají změnu grafické úpravy textu jako takové, ale i úpravy související s růzností sociálního a kulturního zázemí uživatelů.

Co je možné uvést ve sdělení počítače uživateli v našem západním kulturním okruhu, nemusí být přijatelné či srozumitelné lidem v muslimských, afrických zemích, či v zemích Dálného východu. Taková lokalizace pak může obnášet velmi náročný a komplexní proces, který se však našeho českého (či slovenského) prostředí netýká nebo týká jen okrajově. Úkolem českého překladatele bude nejčastěji pouze volba vhodného stylu a formy jazyka ve vztahu k tomu, zda uživatelem lokalizovaného softwaru bude dejme tomu středoškolský student nebo spíše emeritní profesor. V otázce, co lze ze softwarové výbavy lokalizovat, lze stručně odpovědět samotným uživatelským rozhraním programu, dokumentací nebo webovými stránkami. Nás bude nejdříve zajímat lokalizace programu jako takového.

Zastavme se ale ještě na chvíli u teoretičtější otázky, a sice potřebnosti uživatele mít lokalizovaný software jako takové. V tomto smyslu existují zcela zásadní rozdíly mezi jednotlivými cílovými uživatelskými skupinami, které lze definovat v rámci několika úrovní. Jednou z nich je sociální či ekonomický rozdíl mezi různými zeměmi a národnostmi světa. Jako dva do jisté míry extrémní příklady poslouží prakticky libovolná rozvojová země subsaharské Afriky na jedné straně (kde úroveň vzdělání obyvatelstva jednoduše neumožňuje používat software v jiném než mateřském jazyce, popř. jazyce někdejší koloniální říše; to se často týká i samotných počítačových odborníků zabývajících se lokalizací, ti mnohdy nepřekládají rovnou z angličtiny, protože ji ani oni neznají, alespoň tedy ne na dostatečné úrovni, ale jako podkladový jazyk používají např. francouzštinu), pří­kladem na druhé straně pak může být některá z vysoce rozvinutých západoevropských zemí, např. Nizozemsko, kde je u počítačových uživatelů znalost angličtiny velmi často dostatečná na to, aby mohli bez větších problémů používat i nelokalizovaný software.

Samozřejmostí je pak znalost angličtiny u drtivé většiny počítačových odborníků. Jinou úrovní je otázka sociální skupiny, do které uživatel patří, což jsme již vlastně zmínili v bodě předchozím. Potřeba plně lokalizovaného softwaru obvykle klesá se zvyšujícím se obecným vzděláním či počítačovou odborností uživatele. Programátor bude mít menší potřebu používat lokalizovaný software než učitel tělocviku a skladník ve šroubárně zase větší než lékař. Přesto má však lokalizace pro všechny příslušníky dané jazykové skupiny nepochybnou výhodu v tom, že přináší mimo samotného překladu i přizpůsobení v jiných výše zmíněných kategoriích lokalizace, o které by byli při používání anglického prostředí (s výchozím nastavením) ochuzeni.

Gnome

Příklad internacionali­zovaného a lokalizovaného grafického uživatelského rozhraní: pracovní prostředí GNOME 2.22

gettext a národní prostředí

Velká část otevřeného a svobodného softwaru využívá k zajištění internacionalizace a lokalizace samotných programů technologii gettext, která je součástí projektu GNU. Některé známé – obvykle větší – projekty (produkty Mozilla nebo třeba OpenOffice.org) mohou používat jiný systém lokalizace, který je však často s nástroji tvo­řícími gettext schopen datové výměny pomocí volně dostupných konvertorů. Zprávy (hlášení) programu jsou ve dvojici tvořené originálním (anglickým) řetězcem a přeloženým (lokalizovaným) řetězcem programu dostupné v tzv. katalogu zpráv (též katalog hlášení) s příponou .po, resp. jeho binární podobě s příponou .mo, a ten je načten – za předpokladu systému se správně nastaveným národním prostředím (anglicky „locale“) – spolu se spuštěním příslušného programu. 

Zmíněný termín národní prostředí můžeme chápat jako soubor nastavení či voleb, které úzce souvisí s (pokračujícím nebo dokončeným) procesem lokalizace a určuje tedy jazyk, zemi a další parametry. Korektní podpora národního prostředí není jen věcí přítomnosti katalogů zpráv určitého jazyka či jeho varianty s parametry, ale také schopnosti systému přizpůsobit uživatelské rozhraní uživatele všem potřebám, které mohly být v rámci internacionalizace a lokalizace vzneseny a které jsme si uvedli výše.

V dřívějším období vývoje linuxových distribucí či některých otev­řených systémů jsme se mnohdy střetávali s nepříliš velkou přívětivostí, která i po běžném uživateli vyžadovala mimo jiné dodatečné přidávání katalogů zpráv, instalaci písem obsahujících české znaky, zprovoznění českého rozložení klávesnice, zajištění načítání tohoto nastavení při spuštění apod. Dnešním standardem použitelnosti se rozumí samozřejmá podpora národního prostředí už v okamžiku instalace systému, kdy si uživatel může na jedné z prvních obrazovek vybrat takové prostředí, kterému opravdu rozumí.

Katalog zpráv

Vraťme se však nyní k tomu, co je obvykle jádrem lokalizace otevřeného a svobodného softwaru, totiž ke katalogu zpráv. Zdrojová podoba katalogu je prostým textovým souborem, v dnešní době téměř výhradně s kódováním znaků UTF-8, dříve jsme se u českých (resp. slovenských) katalogů setkávali také s 8bitovým kódováním ISO 8859–2. Jeho úložištěm je v typickém „tarballu“ (popřípadě jiné formě distribuce zdrojového kódu) podadresář po v kořenovém adresáři zdrojového kódu. Název sestává z již zmíněné přípony .po a kódu příslušného jazyka podle normy ISO 639. Český katalog má tedy název cs.po (nikoliv cz.po, jak se někteří často domnívají), slovenský sk.po a tak dále. V případě nutnosti odlišit jazykovou variantu podle země se navíc přistupuje k vyznačování podle normy ISO 3166, oddělené od kódu jazyka podtržítkem. Katalog s australskou angličtinou tedy najdeme v souboru nazvaném en_AU.po. Jak si lze povšimnout, název před příponou kopíruje název národního prostředí jako takového, u kterého je v některých případech zapotřebí uvést také použité kódování znaků (oddělené tečkou) či užívanou měnu nebo jinou vlastnost (oddělenou zavináčem), např. de_DE.UTF-8@euro by znamenalo německé národní prostředí s kódováním UTF-8 a měnou euro. Forma katalogu se skládá z (volitelných) počátečních řádků komentáře, záhlaví, vlastních řetězců a (volitelně) ze závěrečných komentářů. Nejzajímavější část s řetězci má přibližně následující strukturu:

#: ../gdk-pixbuf/io-tiff.c:670
msgid "Failed to save TIFF image"
msgstr "Ukládání obrázku TIFF selhalo"

V prvním komentovaném řádku vidíme odkaz na soubor zdrojového kódu a řádek, kde se originální řetězec, předem označený vývojářem v rámci internacionalizace k překladu, nachází. Druhý řádek je pak přirozeně překládaný a třetí přeložený řetězec. V případě jednoduché lokalizace programu (resp. její aktualizace) tedy stačí doplnit nepřeložené řetězce, katalog zpráv uložit a zkompilovat do binární podoby. To provedeme například pomocí nástroje msgfmt příkazem:

davame_internetu_obsah
       
msgfmt -cv cs.po

Výsledkem bude český binární katalog zpráv s názvem messages.mo, který po přejmenování na název odpovídající příslušnému programu, kupř. gtk20.mo, umístíme do úložiště používaného českým národním prostředím. V typické linuxové distribuci se bude jednat o adresář /usr/share/locale/cs/LC_MESSAGES/, nicméně distributor či výrobce může zvolit (vedle této) i jinou cestu.

Příští díl

Že je ovšem lokalizace mnohem obsáhlejším procese, si spolu s podrobnějším nahlédnutím na to, jak, co, čím, s kým a pro koho překládat (aneb koho před překládáním kontaktovat, kde všude získat překládaný materiál, s kým konzultovat překlad či kam překlad odeslat) ukážeme v dalším české lokalizaci věnovaném díle.

Školení: Linux – Firemní server

Na třídenním školení se naučíte nainstalovat a spravovat kompletní linuxový server do Vaší firmy se všemi základními službami, které potřebujete pro provoz Vaší sítě, firemních emailů a webových stránek.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,88

Přehled názorů

m17n
Peter Kovář 10. 4. 2008 00:40
Nový
upresneni k ankete
Michael Hrabanek 10. 4. 2008 06:27
Nový
└ 
Re: upresneni k ankete
Yokotashi 10. 4. 2008 11:18
Nový
Drobná nepřesnost
David Šmíd 10. 4. 2008 07:35
Nový
└ 
Re: Drobná nepřesnost
Jiří Tušla 10. 4. 2008 11:20
Nový
 
├ 
Re: Drobná nepřesnost
David Šmíd 10. 4. 2008 13:16
Nový
 
└ 
Re: Drobná nepřesnost
David Šmíd 10. 4. 2008 13:18
Nový
nie je efektiovnejsie to v X-och to riesit cez Xaw app defualts
anonymní uživatel 10. 4. 2008 10:51
Nový
proboha...
insider 10. 4. 2008 12:26
Nový
├ 
Re: proboha...
Drom 10. 4. 2008 12:41
Nový
├ 
Re: proboha...
JS 10. 4. 2008 12:50
Nový
│
└ 
Re: proboha...
Jackie Chan 11. 4. 2008 10:49
Nový
├ 
Re: proboha...
Rejpal 10. 4. 2008 12:50
Nový
│
├ 
Re: proboha...
Tomas 10. 4. 2008 13:06
Nový
│
│
└ 
Re: proboha...
Rejpal 10. 4. 2008 13:09
Nový
│
└ 
Re: proboha...
insider 10. 4. 2008 13:13
Nový
│
 
├ 
Re: proboha...
Rejpal 10. 4. 2008 13:55
Nový
│
 
└ 
Re: proboha...
Rejpal 10. 4. 2008 13:57
Nový
│
 
 
└ 
Re: proboha...
insider 10. 4. 2008 15:11
Nový
│
 
 
 
├ 
Re: proboha...
Rejpal 10. 4. 2008 15:22
Nový
│
 
 
 
│
└ 
Re: proboha...
insider 10. 4. 2008 15:45
Nový
│
 
 
 
│
 
└ 
Re: proboha...
Rejpal 10. 4. 2008 15:56
Nový
│
 
 
 
│
 
 
└ 
Re: proboha...
insider 10. 4. 2008 16:25
Nový
│
 
 
 
│
 
 
 
└ 
Re: proboha...
Rejpal 10. 4. 2008 16:28
Nový
│
 
 
 
│
 
 
 
 
└ 
Re: proboha...
pan anonym 10. 4. 2008 16:49
Nový
│
 
 
 
│
 
 
 
 
 
└ 
Re: proboha...
Rejpal 11. 4. 2008 03:42
Nový
│
 
 
 
│
 
 
 
 
 
 
└ 
Re: proboha...
pan anonym 11. 4. 2008 11:27
Nový
│
 
 
 
│
 
 
 
 
 
 
 
└ 
Re: proboha...
Rejpal 11. 4. 2008 14:02
Nový
│
 
 
 
│
 
 
 
 
 
 
 
 
└ 
Re: proboha...
pan anonym 11. 4. 2008 14:38
Nový
│
 
 
 
└ 
Re: proboha...
rvt 11. 4. 2008 13:10
Nový
├ 
Re: proboha...
anonymní uživatel 10. 4. 2008 23:27
Nový
│
├ 
Re: proboha...
Rejpal 11. 4. 2008 03:52
Nový
│
└ 
Re: proboha...
insider 11. 4. 2008 10:21
Nový
└ 
Re: proboha...
Jackie Chan 11. 4. 2008 10:48
Nový
Jak se vyhnout UTF8?
Kaminar 10. 4. 2008 13:17
Nový
├ 
Re: Jak se vyhnout UTF8?
insider 10. 4. 2008 13:28
Nový
│
└ 
Re: Jak se vyhnout UTF8?
Kaminar 10. 4. 2008 13:34
Nový
│
 
└ 
Re: Jak se vyhnout UTF8?
Ondrej 'SanTiago' Zajicek 10. 4. 2008 18:12
Nový
├ 
Re: Jak se vyhnout UTF8?
Petr Krčmář 10. 4. 2008 13:30
Nový
│
├ 
Re: Jak se vyhnout UTF8?
Kaminar 10. 4. 2008 13:43
Nový
│
│
├ 
Re: Jak se vyhnout UTF8?
Kaminar 10. 4. 2008 13:45
Nový
│
│
│
└ 
Re: Jak se vyhnout UTF8?
Rejpal 10. 4. 2008 14:00
Nový
│
│
│
 
├ 
Re: Jak se vyhnout UTF8?
Kaminar 10. 4. 2008 16:20
Nový
│
│
│
 
│
└ 
Re: Jak se vyhnout UTF8?
ads 10. 4. 2008 16:36
Nový
│
│
│
 
│
 
└ 
Re: Jak se vyhnout UTF8?
cgrim 10. 4. 2008 17:58
Nový
│
│
│
 
│
 
 
└ 
Re: Jak se vyhnout UTF8?
Ondrej \'SanTiago\' Zajicek 10. 4. 2008 18:32
Nový
│
│
│
 
│
 
 
 
└ 
Re: Jak se vyhnout UTF8?
asd 10. 4. 2008 22:12
Nový
│
│
│
 
├ 
Re: Jak se vyhnout UTF8?
marx 10. 4. 2008 16:25
Nový
│
│
│
 
└ 
Re: Jak se vyhnout UTF8?
Ondrej \'SanTiago\' Zajicek 10. 4. 2008 18:23
Nový
│
│
│
 
 
├ 
Re: Jak se vyhnout UTF8?
Kaminar 10. 4. 2008 21:36
Nový
│
│
│
 
 
└ 
Re: Jak se vyhnout UTF8?
Rejpal 11. 4. 2008 04:01
Nový
│
│
│
 
 
 
└ 
Re: Jak se vyhnout UTF8?
Ondrej 'SanTiago' Zajicek 11. 4. 2008 14:21
Nový
│
│
├ 
Re: Jak se vyhnout UTF8?
alblaho 10. 4. 2008 16:23
Nový
│
│
└ 
Re: Jak se vyhnout UTF8?
venca 10. 4. 2008 17:44
Nový
│
└ 
Re: Jak se vyhnout UTF8?
anonymní uživatel 10. 4. 2008 17:12
Nový
│
 
└ 
Re: Jak se vyhnout UTF8?
sid 10. 4. 2008 17:35
Nový
└ 
Re: Jak se vyhnout UTF8?
Ondrej 'SanTiago' Zajicek 10. 4. 2008 18:28
Nový
 
└ 
Re: Jak se vyhnout UTF8?
Kaminar 10. 4. 2008 21:33
Nový
Lokalizace
Jirka 10. 4. 2008 15:27
Nový
├ 
Re: Lokalizace
Rejpal 10. 4. 2008 15:55
Nový
│
└ 
Re: Lokalizace
~ 10. 4. 2008 16:52
Nový
├ 
Re: Lokalizace
Ondrej \\\'SanTiago\\\' Zajicek 10. 4. 2008 18:36
Nový
│
└ 
Re: Lokalizace
Rejpal 11. 4. 2008 04:06
Nový
└ 
Re: Lokalizace
Jirka 11. 4. 2008 18:40
Nový
srozumitelnost prekladu
jirkaqwe 10. 4. 2008 20:22
Nový
Ukládání obrázku TIFF selhalo...
O Simaban Lidan 10. 4. 2008 21:34
Nový
Lokalizovany SW je cool...
Jackie Chan 11. 4. 2008 11:03
Nový
Je lokalizace upgrade software povinná?
Libor Štolc 20. 4. 2008 12:10
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem