Lokalizace v Mac OS X PDF Tisk Email
Napsal uživatel Czech X Team   
Pondělí, 20 Červenec 2009 00:00

Pro všechny, kteří by se rádi stali lokalizátory.

Úvod

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.ap­ple.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).

Co budeme potřebovat

K lokalizaci potřebujeme několik věcí:

  1. Velkou dávku odvahy
  2. Důkladně se seznámit s Apple Human Interface Guidelines
  3. Apple Macintosh s MacOS X alespoň 10.2 nebo vyšším
  4. XCode (10.3.x nebo vyšší) - najdete je na instalačním DVD nebo na vývojářském webu Apple
  5. Vlastně už nic, ale pro pohodlnější a rychlejší lokalizaci ještě AppleGlot 3.4 nebo vyšší verzi) ADViewer a základní český slovník

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 Smile.

Lokalizujeme

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.

Na co si dát pozor

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.

Aktualizace pro Mac OS X 10.5 a vyšší

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 Frown 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ářů (10)
  • jerry00  - kompilovaný nib
    „Pakliže se s takovým souborem setkáte vězte, že se nedá nic dělat” s tím bych tak úplně nesouhlasil. Existuje celkem jednoduchý návod, jak opět takový nib „zprpvoznit”,aby se dal lokalizovat!!
  • fe  - kompilovaný nib
    Tak napište jak?
  • jerry00  - compiled
    Sorry ,jen jsem to nemohl najít. http://www.macosxhints.com/article.php?story=20081121083323825 Nevím zda to funguje u všech nibů, na fórech jsou různé informace. Před nějakou dobou jsem to vyzkoušel a šlo mi to. Pouze ten příkaz do terminálu se mi nepodařilo zúspěšnit. Nějak neovládám zápisy v terminálu, pokud nedostanu úplně polopatický návod, způsobem Copy-Paste! Přetažením keyobjects mi to šlo, ale dnes jsem odzkoušel tento způsob na nibu z transmission , ale ten kompilovaný nenabízí možnost Zobrazit obsah balíku. Tak to asi nebude 100pro funkční metoda. Jestli způsob přes terminál je funkční, tak dejte prosím polopatický návod!! jerry
  • fe  - compiled nib
    Právě, že jsem tento způsob několikrát zkoušel a zdá se mi, že to zcela správně nefunguje nikdy. Bohužel.
  • jerry00  - compnib
    Tak například nib z poslední vere Amadeus Pro1.4.2 mi jde!!!!Originální jsou zabalené ale funguje Zobrazit obsah balíku, a uvedeným postupem docílím otevření.
  • fe  - compiled nib
    Aha tak to máte pravdu - článek jsem upravil. Starý kompilovaný nib je vlastně package a ten lze obejít a možná proto se moc nerizšířil. Naproti tomu nový kompilovaný nib (kompatibilní pouze s Mac OS X 10.5) je pouze a jen jeden soubor.
  • jerry00  - compiled
    Jak říká klasik: "V tom případě mám vzkaz číslo 2"..Nastane-li takovýto případ, pak (alespoň já to tak dělám) mi nezbude, než otevřít nib jako textový soubor (používám TextWrangler). Lokalizovat i upravovat takto krkolomně nib lze také ale je to hrůza.Programátor by s tím asi neměl mít větší potíže, co kde upravit pro pole textů, aby se tam vešel český text.Mě to potíže dělá, ale nepřišel jsem na jiný způsob.
  • fe  - compiled nib
    Například u již zmiňovaného Transmission si můžete zkopírovat zdrojové kódy, které obsahují nezkompilované .nib soubory. Aplikace totiž bude normálně fungovat, když en.lproj obsahuje kompilované a cs.lproj nezkompilované nib soubory.
  • Marek Blaha  - Jak lokalizovat na MacOS X Leopard?
    Dobrý den, 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
  • fe  - Re: Jak lokalizovat na MacOS X Leopard?
    ADViewer de-facto nepotřebujete. Já už jej vlastně nepoužívám. ADViewer je jen takový vylepšený textový (XML) editor. Vy můžete použít jakýkoliv textový editor (TextWrangler, Smultron...). 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.
Přidat komentář
Your Contact Details:
Komentářů:
:D:):(:0:shock::confused:8):lol::x:P
:oops::cry::evil::twisted::roll::wink::!::?::idea::arrow:
Aktualizováno Pátek, 05 Březen 2010 13:14
 

Anketa

Je nový vzhled stránek přínosem?