Pro všechny, kteří by se rádi stali lokalizátory.
Ještě než budete číst dále, upozorňuji Vás, že následující texty nejsou určeny pro běžné začínající uživatele. Jsou určeny pro skupinu tzv. „Power User”, kteří již o vnitřních principech Mac OS X něco vědí, ale nemají praxi v uvedených programech. undefinedundefined Pokud Vám v souvislosti s Mac OS X pojmy jako „bundle”, „package”, „GUI”, „Apple Human Interface Guidelines”, „XCode” nic neříkají nemá smysl, abyste pokračovali. Samozřejmě pokud bude zájem ze strany běžných uživatelů bude možno například přeložit manuál k programu AppleGlot či nějaké texty přímo z developer.apple.com, které popisují lokalizaci velmi podrobně (i když pochybuji, že by se někdo chtěl pustit do lokalizování aplikací bez znalosti angličtiny – ale i když je angličtina hlavní jazyk nic nebrání lokalizování např. z němčiny či francouzštiny). Mac OS X obsahuje mnoho vyspělých technologií mezi které patří důsledné oddělení výkoného kódu aplikace a grafického uživatelského rozhraní (GUI) v nativních aplikacích (Carbon nebo Cocoa).
Správně by každá aplikace (bundle či package) měla obsahovat složku Resource a v ní složky s jazykovými mutacemi tzv .lproj složky (language project). Jednotlivé složky .lproj obsahují .nib soubory, které jazykem XML popisují celé grafické rozhraní aplikace.
Apple se vydal „kompatibilnější“ cestou a tuto vlastnost systému programátoři mohou, ale nemusí využít. Tento úkrok stranou byl vynucen programátory neboť při přepisováních starých klasických aplikací na nové Carbonové, by nebylo možné v tak krátkém čase všechny, zejména rozsáhlé, aplikace přepracovat do nového schématu kde je GUI odděleno od aplikace.
Bohužel i dnes se ještě vyskytují nekorektně napsané aplikace, které obsahují pouze část GUI v lokalizovatelné podobě a část je v samotné aplikaci. Tyto aplikace bohužel nelze korektně lokalizovat – musela by se vytvořit nová aplikace která bude pouze např. španělská a druhá by byla anglická.
Někteří výrobci komerčního softwaru implementovali svoji metodu oddělení GUI a aplikace, kdy aplikace obsahuje různé jazykové mutace. Např. Quark Xpress Passport obsahuje tuto funkci již od verze 4, kdy stačí do příslušné složky zkopírovat jazykový soubor a v předvolbách aplikace změnit jazyk. Bohužel z důvodu kompatibility a jednotného vývoje stejných produktů pro Windows a Mac na toto obejití systémové funkce Mac OS X přistoupily i jiné firmy a implementovali ji po svém (někdy až příliš krkolomě jako třeba Adobe).
K lokalizaci potřebujeme několik věcí:
Doporučuji ještě navštívit web Apple, který se lokalizací podrobně zabývá a slovník příslušného jazyka Pro Vás, kteří stále pochybují o snadnosti lokalizovat aplikace se pokusím zhruba nastínit jak se s aplikací AppleGlot pracuje (prosím, nezaměňujte to za manuál k AppleGlot, ten si stejně pečlivě prostudujte
.
Lokalizace vlastně probíhá v několika etapách. Nejdříve si v AppleGlotu vytvoříte pracovní složku (Empty Enviroment) a do vytvořeného prostředí umístíme aplikace zpravidla pokud se bude jednat o první lokalizaci umístíme ji do složky „NewBase” (celkem intuitivní práce). Nezapomeneme na to, že pro nás pánové lokalizátoři systému připravili malý dárek v podobě základního slovníku (viz bod 5.) a zkopírujeme si soubor Glossary.lg do složky „LanguageGlos saries”. Otevřete si vytvořenénou složku v AppleGlotu, zvolíte Initial Pass (⌘+1). AppleGlot Vám vytvoří novou aplikaci (NewLoc) a příslušné slovníky Application Glossary (.ad) a Work Glossary (.wg). Slovníky jsou vlastně databáze překladových frází a textů. nyní začne ona mravenčí práce: otevřete si Work Glossary nejlépe v ADVieweru a překládáme a překládáme… Až se budete cítit na dně svých psychických sil a budete uléhat s vědomím, to snad nikdy nezvládnete, tak můžete si dodat sebevědomí tím, že provedete Incremental pass (⌘+2) a AppleGlot provede lokalizaci již přeložených frází a vytvoří nám pracovní verzi aplikace (ve složce „NewLoc”). Aplikaci můžebe bez obav spustit a zjistit jak se vaše práce ubírá ke zdárnému konci. AppleGlot ukazuje v procentech stav vaší lokalizace ale ten se aktualizuje pouze při spuštění aplikace.
Až Vám ukazatel bude ukazovat 100 % (slastný to pocit) tak musíte ještě přemoci sami sebe a otestovat celou lokalizovanou aplikaci. Pokud se Vám stane, že v některých oknech jaksi nevidíte to co jste před tím lokalizovali, tak musíte otevřít příslušný .nib soubor a upravit buď rozměry rámečku nebo najít lepší textovou formulaci. Doporučuji stejně otevřít všechny. Může se Vám totiž lehce stát, že některou funkci v aplikaci nevyužíváte nebo o ni ani nevíte a tudíž neznáte její dialogové okno. Dále si musíte dávat pozor např. na to abyste pojmenovávali funkce aplikace stejným jménem v celé aplikaci. V nabídkách aplikací se vyskytuje znak „…” nebo laicky trojtečka – klávesová kombinace alt+shift+ů) mezi lokalizátory není jednoznačný názor, zda-li používat tři znaky „.” za sebou nebo jeden znak „…”. Já však doporučuji používat jeden znak „…” – když už ho ve písmech máme. Pokud bude ale tvůrce programu vyžadovat tři znaky „.” tak má k tomu asi nějaký důvod a v tom případě se s ním nebudeme přít.
V textech se vyskytují tzv. zástupné symboly které se začínají znakem „%” a několika písmeny. Na ty pozor. Můžete je umístit do textu kamkoliv podle toho, jak nám to přikazuje český slovosled. Musíte je však zadat ve formátu tak jak jsou! Lehce se stane, že na některý zapomenete nebo uděláte překlep a neštěstí je hotovo. Chyba se projeví tak, že aplikace bude mít sice správně lokalizované prostředí ale např. chybové hlášky nebo nějaké proměnné texty se budou zobrazovat v angličtině nebo vůbec ne. Nalézt pak takovou chybu je, téměř nemožné.
Ještě Vás upozorním jednu „záludnosti”. Spočívá v tom, že nesmíte složku s lokalizační strukturou ani jinou nadřazenou složku pojmenovat česky (jméno složky nesmí obsahovat znaky s háčky a čárkami) jinak Vám AppleGlot bude hlásit nesmyslnou chybu, že nemáte komponentu nibtool nainstalovanou.
V novějších verzích Mac OS X dal Apple do rukou programátorů nástroj na ochranu jejich aplikací. Každá aplikace je autorsky chráněným dílem a její pozměňování je v rozporu se zákony všech zemí. Apple do XCode 3 zavedl nový kompilovaný druh souborů .nib (konkrétně od Mac OS X 10.4, ale ochranu tohoto staršího kompilového .nib souboru [vlastně se jednalo o .nib package] bylo možno jednoduchým trikem obejít). Starý druh souboru .nib je vlastně balík, který obsahuje několik souborů s popisem GUI. Nyní v Mac OS X 10.5 Apple zavedl soubor .xib (již jen jeden XML soubor), který sice můžet autor volně upravovat pomocí aplikace Interface Builder, ale zároveň může programátor při kompilaci v XCode zadat, že tyto soubory se budou do výsledné aplikace „kompilovat”. V aplikaci se tak vytvoří tento zvláštní druh .nib souboru. Tím programátor zajistí, že ve výsledné aplikaci si nikdo nebude moci volně upravovat lokalizace. Pakliže se s takovým souborem setkáte vězte, že se nedá nic dělat
jedině kontaktovat autora nebo získat zdrojové kódy aplikace. Například aplikace Transmission 1.73 šířená pod GNU/GPL takovéto neupravitelné nib soubory obsahuje a když ji budete chtít lokalizovat musíte si zkopírovat zdrojový kód.
Aplikace ADViewer je zatím s Mac OS X nekompatibilní můžete na místo ni používat jakýkoliv textový editor - TextWrangler, Smultron, VIM…
Komentáře
jerry
měl jsem chuť vyzkoušt si něco zlokalizovat, ale narazil jsem na problém, že aplikace ADViewer je spustitelná jen pod Tigerem. Jak mohu tento problém obejít nebo nějak vyřešit v MacOS X Leopard?
Díky za info.
Marek Blaha
ADViewer má tu úžasnou vlastnost, že dovoluje změnit pouze texty uzavřené do tagů takže se vám nestane, že lokalizační soubory nějak poškodíte.
RSS informační kanál komentářů k tomuto článku.