Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Začínáme s
Lokalizace I: Začínáme
4. srpna 2004, 00.00 | Máte rádi, když s vámi počítač mluví vaším jazykem? Na Mac OS X to není problém. Operační systém a prostředky, které dává Apple vývojářům k dispozici totiž nejen mimořádně usnaďnují vývoj lehce lokalizovatelných aplikací, ale dokonce autory k vytváření takových aplikací podporují.
Máte rádi, když s vámi počítač mluví vaším jazykem? Na Mac OS X to není problém. Operační systém a prostředky, které dává Apple vývojářům k dispozici totiž nejen mimořádně usnadňují vývoj lehce lokalizovatelných aplikací, ale dokonce autory k vytváření takových aplikací podporují.
Co je to internacionalizace a lokalizace
V prostředích, které k lokalizacím tak vstřícná nejsou, se u každé jazykové verze často dělají změny i v samotném kódu aplikací a pro každou lokalitu pak vznikají odlišně verze softwaru. Nevýhody jsou zřejmé:
- práce navíc pro programátory;
- složitější práce pro lokalizátory;
- nebezpečí vzniku chyb;
- aplikace se musí zvlášť vydávat v několika objemných jazykových verzích;
- totéž se opakuje při každém větším upgradu.
Co tedy s tím? První nutný krok je oddělení obecného kódu od lokálně závislých dat. To umožňoval i starý Mac OS, prostřednictvím resources (prostředků), které byly ukládány v oddělené části souboru, měly standardizovaný formát (a při komunikaci s ostatními platformami nám nadělaly tolik potíží). Stačilo tedy v ideálním případě přeložit tyto prostředky, zdrojový kód nebyl třeba. Protože prostředky se v některých aplikacích vyskytují i dnes, dostaneme se k nim později také.
Další problém, jehož zbytky stále přetrvávají, jsou kódování textu, která podporují určitou skupinu jazyků: západní (tedy západoevropské a americké, na Macu „Roman“), středoevropské (CE), používající azbuku a mnohé dalších. Tento problém dnes na všech platformách, včetně Mac OS X, řeší kódování Unicode, které podporuje většinu jazyků a písem. V tomtéž textu můžeme psát francouzsky, slovensky i čínsky a programátor si nemusí lámat hlavu s tím, jaké kódování použije.
Teď když už máme data oddělená od kódu a máme možnost v nich standardním způsobem používat téměř libovolné znaky. Stačí jen uspořádat lokalizovatelná data do balíčků, kterých by šlo s aplikací distribuovat víc nebo bychom je naopak mohli distribuovat odděleně (tedy SMBL – Single Binary Multiple Language).
Tomuto systému, podhoubí pro lokalizaci se říká internacionalizace. Podívejme se tedy jak vypadá struktura takové internacionalizované aplikace v Mac OS X.
Internacionalizované balíky (bundles)
Už víme, co je to internacionalizace, teď co je to balík: Bundle je složka s přesně definovanou strukturou, která se z hlediska uživatele chová jako soubor. Ve Finderu se tedy implicitně nezobrazuje její obsah, je třeba zvolit z kontextové nabídky Show Package Contents. (Package je nadřazený pojem, znamená pouze složku, která se chová jako soubor. V češtině nelze odlišit, dále české „balík“ používám pro bundle.)
Současné karbonové i kakaové (používající API Cocoa a Carbon) aplikace jsou právě balíky. Balíky jsou i služby, frameworks a jiné typy softwaru, i je tedy lze stejným způsobem lokalizovat. My se ale budeme věnovat především aplikacím. Jejich struktura vypadá následovně:
Veškerý obsah balíku je v jeho podsložce Contents. V její nejvyšší úrovni jsou to informační soubory Info.plist, PkgInfo a version.plist; dále jsou tu složky pojmenované podle platformy (v našem případě obvykle „MacOS“), jež obsahují vlastní spustitelné soubory, ty nás ovšem také nezajímají, jsou totiž na lokalizaci nezávislé; a konečně je tu složka Resources.
Složka Resources obsahuje, jak název napovídá, prostředky, a nemusí to nutně být karbonové prostředky známé ze starého Mac OS (ty, které bývaly v oddělené části souboru). Soubory umístěné přímo v Resources (např. MyApp.rsrc) jsou prostředky nezávislé na lokalizaci, například ikony. Lokalizované soubory jsou v podsložkách s příponou .lproj, které jsou pojmenované buď anglickým jménem jazyka (např. English, French nebo German, lze to obvykle jen u západoevropských jazyků a japonštiny) nebo dvojpísmenné kódy ISO 639 ve formátu jazyk nebo jazyk_země. V případě češtiny je to cs (nikoli cz!), kód země se používat nemusí, obdobně je to u slovenštiny jednoduché sk. Soubory, které budeme lokalizovat jsou obvykle jednoho z následujících typů:
.nib – archivy pro Interface Builder
Tyto soubory (resp. packages) obsahují nabídky, okna a další prvky grafického rozhraní. Lze z nich získat řetězce (strings, tj. řetězce znaků, kusy textu) a ty pak přeložit, pak je ještě třeba pomocí Interface Builderu upravit velikosti prvků, aby odpovídali překladům.
.strings – slovníky řetězců
Obyčejné textové soubory s příponou .strings mají obvykle jednoduchý formát: řádky mohou obsahovat buď komentář ohraničený znaky /* a */ (/* takhle */) nebo přiřazení ve formátu "původní řetězec" = "přeložený řetězec";. Tyto soubory jsou v kódování Unicode.
.rsrc – karbonové prostředky
A nakonec resources jako zastara, které najdeme v karbonových aplikacích, prostředky by ale dnes měly být jen v datové části (nehrozí poškození na jiných systémech). Tyto soubory obsahují podobně jako niby prvky grafického rozhraní, ale i data, která v nových kakaových aplikacích bývají v samostatných souborech, například zvuky nebo obrázky (i ty je často potřeba lokalizovat). Lze z nich také vyfiltrovat většinu řetězců a pak pomocí ResEditu a dalších nástrojů doladit zbytek.
.tiff, .rtf a další
Mezi lokalizovatelnými prostředky můžeme najít i jakékoli jiné soubory: například obrázky, textové soubory nebo zvuky. Lze je upravovat nástroji na jaké jsme zvyklí, jen musíme mít na paměti, že je třeba zachovat formát i příponu souboru.
Nástroje pro lokalizaci
Než se do lokalizace pustíme, budeme potřebovat ještě několik nástrojů. Naštěstí jsou všechny zdarma na internetu:
- Interface Builder a nibtool jsou součástí Xcode Tools (dříve Developer Tools). Ti šťastnější dostali vývojářské nástroje od Apple spolu se systémem, ostatní si celé vývojářské nástroje mohou stáhnout poté, co se registrují jako vývojáři. Ač jsou tyto nástroje zdarma, nejsou volně šiřitelné a nejdou distribuovat odděleně.
- AppleGlot nám pomůže s celkovou správou a extrakcí řetězců z nibů i karbonových prostředků.
- AD Viewer se hodí pro úpravy textových souborů. Zpočátku se ale obejdeme i s jiným textovým editorem, který podporuje Unicode (stačí TextEdit).
- ResEdit a resdump budeme potřebovat pro dodatečné úpravy karbonových prostředků.
Teď máte kompletní výbavu i základní znalosti a příště se můžeme vrhnout na vlastní lokalizování!
Obsah seriálu (více o seriálu):
- Lokalizace I: Začínáme
- Lokalizace II: Správa a překlad
- Lokalizace III: Dokončení a soubory .nib
- Lokalizace IV: Karbonové prostředky