Portál AbcLinuxu, 3. května 2025 14:13
Následující blábol mi téměř rok ležel "v šuplíku". Jenže na přetrženou nit se mi navazuje opravdu velmi ztuha. Teprve seriálek co tady začal vycházet, mne nakopnul k tomu abych to nějak dotáhnul. Předem upozorňuji, že to nemá zastoupit dokumentaci na téma lokalizace a cílem je seznámit čtenáře s užitečnými nástroji, které lze při překladech použít. V kontextu s uváděným seriálem jej také doplnit. Chci, stejně jako jeho autor především pomoci těm co by sami rádi přeložili některé GUI či dokumentaci, ale zatím nevěděli jak se to dělá.
Protože se ukázalo že to psaní je poněkud delší než se zdálo, tak jsem ho rozdělil do několika logických celků, které hodlám ještě průběžně doplnit resp. opravit:
Je realizována dvěma procesy. První - lokalizace (zkr. l10n vychází z "localization") - zajišťuje to, že s vámi váš systém kecá v jazyce který si zvolíte. Druhý - internacionalizace (zkr. i18n vychází z "internationalization"), že při tom používá zvyklostí země kterou si zvolíte. Proto se u LOCALES používají kódy jako en_US, en_UK atp. a nikoliv pouze en, i když pak vedou obvykle symbolickými linky na jeden a týž adresář. Tyto "lokály" se nastavují se pomocí systémových proměnných začínajících řetězcem LOCALE_* a to buď globálně pro celý systém, a nebo pro každou konzoli zvlášť. Myslím že není nutné se více u tohoto zdržovat.
Je to už docela dlouho co jsem se více věnoval MS Windows, takže co píšu už nemusí platit, ale tehdy byla pro každý národní jazyk prodávaná samostatná lokalizovaná verze tohoto OS. Nebylo sice problém nainstalovat aplikaci vytvořenou pro jinou jazykovou verzi (např. aplikace pro můj první skener na mne plivala taková sprostá slova jako - überträgen, abbrechen, apod.), ale občas přeci jen některé aplikace nebylo možno spustit, protože vyžadovaly jinou verzi systémové knihovny, než byla ta lokalizovaná, navzdory shodnému číslu verze.
Obzvlášť žertovná pak byla situace, kdy se na německé verzi MS Windows nedalo vůbec dostat na CD, jen proto, že blbec který ho pálil na české verzi dal do názvu adresáře diakritiku.
Linux se tenkrát vymotával z plenek a některé věci teprve čekaly na svůj čas, takže lokalizaci bylo nutno řešit pro každou aplikaci extra. To bylo poněkud nepraktické a při tak dynamickém vývoji neúnosné. Takže se postupně zavedly různé systémy, které řeši lokalizaci přes externí soubory s překlady. Funguje to zhruba tak že systém, předtím než zobrazí nějaký text na monitoru, ověří zda pro něj neexistuje překlad. Pokud ano, zobrazí ten. Pokud ne, vypíše originální text. Díky tomu se zcela běžně setkáváte ve svých aplikacích s česko-anglickými menu. Vývoj je prostě rychlý a lokalizátor - tj. ten kdo řetězce překládá je vždy o krok pozadu za programátorem.
Trochu jiná situace je v případě manuálů a dokumentace k aplikacím. Tam systém neprovádí průbežný překlad textových řetězců, ale rovnou vybere, je-li k dispozici, již přeložený dokument. Opět se přitom využívá kódů uvedených v LOCALE.
Je v tom však skryt kámen úrazu. Je přeložená dokumentace vskutku aktuální? Obvykle ne, proto řada uživatelů raději upřednostnuje dokumentaci v původní jazykové verzi.
Jak jsem už uvedl v předchozím odstavci - není jen jedna metoda lokalizace. Nejčastěji se používá lokalizace přes gettext, ale aplikace které používají Qt knihovny využívají svůj vlastní systém lokalizace. Ten je však podobný. Na počátku jsou textové soubory s překlady, které mohou být zkompilovány do binární formy. V následujícím vyprávění se budu odpichovat od přípon, které používají soubory s překladem - ty lze totiž editovat i běžným textovým editorem.
Tiskni
Sdílej:
I tak se dá získat 10 minut slávy.
Kolik z nás se dává/dívalo na South park?
Tak to Keny asi přežije i takovouhle "békárnu" ...
cal -y
vypise misto Janur Jäner za pouziti de_DE.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.