Rychlá navigace: skočit na hlavní obsah stránky, skočit na menu.






Lokalizace teoreticky

V tomto dokumentu jsou soustředěny obecné a teoretické informace o procesu lokalizování.

GNU GetText

Celé GNOME, jako mnoho jiných (nejen) svobodných projektů, je překládáno pomocí technologie GNU GetText. Ta umožňuje jednoduše překládat texty v uživatelském rozhraní v původním znění do jiných jazyků.

Původní texty jsou často označovány jako originální.

Katalog zpráv a jeho šablona

Základem GNU GetTextu je takzvaný katalog zpráv. Ten obsahuje páry originálního textu a přeloženého textu. Kromě dvojic originální text–přeložený text může katalog zpráv obsahovat také informace o překladatelích, autorských právech a mnoho dalšího.

Původní (originální) texty jsou zapsány ve zdrojových kódech aplikací. Ze zdrojových kódů lze tyto originální texty pomocí patřičného nástroje vygenerovat do souboru, kterému se říká šablona katalogu zpráv. Ta mívá příponu .pot a jedná se o obyčejný textový soubor.

Šablona katalogu zpráv obsahuje originální texty a k nim prázdné (neexistující) hodnoty překladových textů.

Šablona katalogu zpráv vlastně neobsahuje vůbec žádné informace o překladu. Jedná se jen o výtah originálních textů.

Právě ze šablony se vytvářejí vlastní katalogy zpráv pro jednotlivé překlady (pro jednotlivé jazyky). Katalogy zpráv již informace o překladu obsahovat musí. Šablona neobsahuje informace o překladech kvůli tomu, aby z ní mohl vzniknout libovolný počet katalogů zpráv. Je to znázorněno na následujícím diagramu:

diagram tvorby katalogu zpráv (náhled)

Katalog zpráv již je určen ke „konzumaci“ a jsou do něj tedy psány překlady.

Katalog zpráv má ale dvě podoby. V té první se jedná o textový soubor a v této podobě se upravuje. Druhá podoba katalogu zpráv je binární. Binární podoba katalogu zpráv vzniká z té textové (procesu přeměny se říká kompilace) a katalog v binární podobě používají aplikace, které mají být přeložené.

Katalog v textové podobě má příponu .po, katalog v binární podobě .mo.

Obsah katalogu zpráv

Katalog zpráv ve všech podobách obsahuje dvojice originální texty–přeložené texty (dále je budeme nazývat položky katalogu). Také obsahuje různé meta-informace, což jsou informace, které katalog zpráv různě popisují.

Textová podoba katalogu obsahuje také informace, které se při kompilaci z katalogu ztratí. Jedná se o komentáře. V komentářích mohou být jakékoli informace. Obvykle tam ale jsou informace o překladatelích, autorských právech, licenci atd. Každá položka katalogu navíc obsahuje informace o tom, z jakého místa zdrojových kódů aplikace pochází (cesta k souboru a číslo řádku).

Obvyklá struktura katalogu zpráv je takováto:

  • komentáře týkající se překladatelů, licence a autorských práv
  • meta-informace (hlavička katalogu zpráv)
  • položky katalogu

A obvyklá struktura položky katalogu takováto:

  • komentář o původu originálního textu (název souboru se zdrojovým kódem a číslo řádku)
  • komentář o stavu překladu
  • originální text
  • přeložený text

Meta-informace v hlavičce mohou být následující:

  • informace o projektu a jeho verzi (obvykle název překládané aplikace)
  • čas vytvoření šablony katalogu zpráv
  • čas poslední úpravy katalogu zpráv
  • verze tzv. MIME typu
  • typ obsahu souboru a jeho kódování
  • kódování souboru
  • jméno a adresa elektronické pošty posledního překladatele
  • jméno a adresa elektronické pošty týmu překladatelů
  • informace o práci s množnými čísly překladů
  • jakékoli další informace

Katalog lze z binární podoby převést zpět do textové podoby, ale již nebude obsahovat informace „ztracené“ při kompilaci – tedy komentáře.

Proměnné v položce katalogu

V době, kdy autoři aplikace vytvářejí texty, které se objeví v uživatelském rozhraní aplikace, nemusejí být známy všechny informace. Když se například v dialogovém okně uživateli objeví text „Opravdu chcete smazat soubor ‚Návrh projektu.odt’?“, samozřejmě to neznamená, že by v aplikaci byl zapsán název souboru – ten se do uživatelského rozhraní doplňuje podle potřeby automaticky.

V textu ale musí být nějak naznačeno, že se do něj při běhu aplikace doplní nějaký další text. To je realizováno pomocí tzv. proměnných.

Vezmeme-li v potaz příklad výše, text by měl asi tento obsah: „Opravdu chcete smazat soubor ‚%s’?“. Řetězec %s je proměnná.

Proměnných existuje několik typů: například textová (%s) a celočíselná (%d).

V přeloženém textu musí být stejný počet proměnných jako v originálním. Také musí odpovídat typ proměnných – pokud se v originálním textu objeví například tři textové proměnné, musí jich být stejný počet v přeloženém textu.

Práce s množnými čísly

Díky tomu, že lze používat proměnné, lze na základě těch celočíselných určit, o jakém číslu se bude v textu mluvit. Není tedy nutné, aby pro každou hodnotu proměnné existovala jedna položka katalogu. Stačí několik verzí jedné položky.

Například: „Máte %d novou zprávu.“, „Máte %d nové zprávy.“ a „Máte %d nových zpráv.“. V aplikaci se použije verze dle nastavení množných čísel v hlavičce. V našem případě se první verze použije pro hodnotu proměnné 1, druhá verze se použije pro hodnotu 2 a třetí verze pro hodnotu 3 nebo vyšší.

Každý katalog (a tedy i každý jazyk, do kterého se překládá) může mít jiné nastavení množných čísel než jiný katalog. To je nutné proto, že každý jazyk pracuje s množnými čísly jinak. V některých jazycích je například potřeba více verzí překladu a jinde méně.

Jak aplikace používají katalog zpráv

Katalog zpráv (v binární podobě) se umístí do adresáře, který má konkrétní systém pro tento účel nastavený. V tomto adresáři přeložená aplikace hledá „svůj“ katalog.

Pokud katalog nenajde, aplikace bude celá nepřeložená. Pokud katalog najde, ale některé položky v něm budou chybět nebo nebudou mít překlad, aplikace bude přeložená jen částečně.

Další studium

Technologie GNU GetText je značně rozsáhlá problematika. Zde byly pouze nastíněny základní body. V manuálu jsou ale veškeré další potřebné informace.

Není třeba manuál přečíst celý či ho vůbec číst. Překladatelům bohatě postačí, když pochopí tento dokument a budou se řídit praktickými radami a českými zvyklostmi. Nicméně, jakýkoli rozvoj znalostí samozřejmě není na škodu…