Sprievodca lokalizáciou systému iOS pre viacjazyčné aplikácie pre iPhone a iPad. Sprievodca lokalizáciou systému iOS pre viacjazyčné aplikácie pre iPhone a iPad na spracovanie duplicitných reťazcov

Prekladáme do cudzie jazyky počítačové programy, hry a online aplikácie.

Okrem zdrojov reťazcov rozhrania vykonáme preklad systém pomoci, marketingové texty, webové stránky. V prípade potreby videoklip kvalitatívne prehlasujeme alebo pretáčame, prekreslíme grafiku, prepíšeme texty v požadovanom jazyku.

Všetky preklady sú vykonávané profesionálnymi rodenými prekladateľmi. Prekladáme do 68 jazykov, ako aj do ďalších jazykových párov.

Lokalizácia hier pre počítače, prehliadače a mobilné zariadenia

Spolupracujeme s vydavateľmi a vývojármi mobilných a herných projektov a pomáhame sprístupniť aplikácie pre iOS, Android, HTML5 vo viac ako 60 jazykoch. Okrem prekladu zdrojov reťazcov samotných aplikácií píšeme a prekladáme aj popisy pre Obchod s aplikaciami a Google Play.

Lingvistické testovanie

Po vytvorení lokalizovanej verzie aplikácie je potrebné, aby ju prekladateľ-lokalizátor otestoval na národnej verzii OS. Počas takéhoto lingvistického testovania lokalizátor urobí snímky obrazovky problémových oblastí (nepreložené, príliš dlhé riadky, nesprávne kódovanie alebo smer textu, nesprávny kontext) a spolu s vývojárom vykoná potrebné zmeny v zdrojových súboroch.

Ak ste si aplikáciu preložili sami alebo prostredníctvom dodávateľa tretej strany, môžete si u nás objednať testovanie jazykovej lokalizácie.

Kalkulácia nákladov

Náklady na lokalizáciu a preklad sa vypočítavajú na základe objemu textu (počet znakov s medzerami). Pozrite si ceny prekladov. Výpočet neberie do úvahy značky, kľúče, značky.

Tento príspevok je pokusom o systematizáciu všetkých informácií, ktoré v súčasnosti mám o lokalizácii aplikácií.

Keď píšeme programy „pre seba“, nejako nemyslíme na lokalizáciu, internacionalizáciu a iné problémy. Za čo? Je nepravdepodobné, že by niekto so zdravým rozumom prišiel s myšlienkou: „Nemal by som svoj nástroj preložiť do hebrejčiny, aby som s takýmto programom mohol neskôr pracovať? Je to úplne iné, keď program „vyrastie z krátkych nohavíc“ a je po ňom dopyt v iných krajinách. Potom, ak je dopyt dostatočne veľký, môžete (a mali by ste) prevziať lokalizáciu – nájsť vhodný nástroj, najať prekladateľov (alebo si preložiť sami) a pracovať, pracovať, pracovať. Riešenie ako „Vytvoriť súbor INI“ môže byť vhodné pre malé programy, ale nie pre seriózne projekty s rozvinutým rozhraním, veľkým počtom formulárov, zdrojov atď. - v tomto prípade stojí za to nájsť vhodné hotové riešenie. V skutočnosti hlavné ciele hľadania riešenia pre lokalizáciu, ktoré mi boli stanovené, sú nájsť riešenie, ktoré umožní:

  1. vykonávať lokalizáciu neprogramátormi
  2. pracovať s vlastnými prekladovými slovníkmi
  3. podpora XE2

a ako obvykle, riešenie by malo byť ľahko použiteľné, lacné, ak je to možné, ľahko sa učí atď. atď. A keďže som sa stále rozhodol ísť hľadať všetkých možnosti(presnejšie podľa maximálneho možného počtu možností) som sa rozhodol všetok nájdený materiál systematizovať a usporiadať práve v tomto príspevku. Tu sa môžete dozvedieť o existujúcich komponentoch Delphi ao knižniciach a programoch – vo všeobecnosti o všetkom, po čom vaše srdce túži. Vo všeobecnosti, ak sa aj vy rozhodnete nájsť v celej sade návrhov lokalizácie ten, ktorý vás osloví, tak čítajte ďalej :)

Sada komponentov TSILang

  • Vývojár: SiComponents
  • Oficiálna stránka:
  • Cena od 259 až 399 dolárov. Balík 259 $ neobsahuje zdrojový kód (iba DCU a OBJ)
  • k dispozícii .
  • Dátum posledného vydania: 5. mája 2012
  • Podpora Delphi XE2: k dispozícii

Súprava komponentov TsiLang® umožňuje pridať podpora neobmedzených jazykov, ako aj vytvárať plne lokalizované verzie produktov na základe základná verzia projektu. Všetky potrebné prvky používateľského rozhrania sú automaticky nájdené a pridané do zoznamu na preklad pohodlnými spôsobmi ukladanie a správa prekladov a samozrejme sa vykonáva prepínanie jazyka rozhrania „za behu“ počas behu aplikácie aj v režime návrhára, ktorý umožňuje testovať rozhranie aj bez kompilácie a spustenia aplikácie.

Môj test.

Na testovanie som si stiahol a nainštaloval Najnovšia verzia komponenty (6.5.4.7) a vytvoril som jednoduchú aplikáciu, na ktorú som umiestnil Button, Label, OpenDialog, pridal zdrojové reťazce a konštanty. Špeciálne pre OnClick tlačidla bol vytvorený takýto „krivý“ handler:

postup TForm19. Button1Click (Sender: TObject ) ; begin ShowMessage("Ahoj svet!" ); koniec ;

Lokalizácia pomocou TsiLang sa vykonáva takto:

1. Spustite TsiLang expert z ponuky Delphi: Nástroje ->TsiExpert

Zobrazujú sa tu všetky formuláre projektu, ako aj komponenty umiestnené na týchto formulároch. Teraz si vyberte z ponuky Súbor->Jazyky a upravte zoznam jazykov pre našu aplikáciu. V predvolenom nastavení majú všetky jazyky názvy ako Jazyk1, Jazyk2 atď. Premenoval som ich takto:

Po stlačení tlačidla „Ok“ sa v hlavnom (a jedinom) formulári aplikácie objavil komponent TsiLang:

Teraz v Expert Advisor nájdeme tlačidlo „Uložiť projekt“ a uložíme náš projekt. TsiLang používa dva typy projektových súborov:

  1. *.sib- binárny súbor s prekladmi. Vývojári odporúčajú používať tento typ súboru, pretože. načítanie takýchto súborov je oveľa rýchlejšie ako pri použití druhého typu súborov
  2. *.sil- textové súbory. Výhodou tohto typu súboru je, že tento súbor môžeme preniesť pomocou pomôcky “ Editor SIL“ na inú osobu na prevod.

Uložil som svoj projekt do súboru test.sil.

Teraz, keď ste v expertovi, dvakrát kliknite na názov formulára v zozname - otvorí sa okno editora prekladu:

V ľavej časti okna (v strome) editora sú skupiny preložiteľných vlastností komponentov a reťazcov, a teda vpravo - tabuľka na preklad. TsiLang dokáže lokalizovať nielen vlastnosti typových komponentov Popis, Nápoveda, Text atď., ale napríklad aj reťazce z dialógov, na obrázku nižšie sú zobrazené všetky reťazce na preklad z rôznych dialógov, ktoré je možné v aplikácii použiť:

Začneme prekladať všetky riadky z ruštiny do angličtiny. Pri preklade každého riadku nám editor v samostatnom okne zobrazí dĺžku pôvodného riadku (v pixeloch) a dĺžku preloženého riadku:

Účel tohto informačného okna je v zásade jasný – môžete ovládať situácie, kedy sa preložený text nezmestí do hraníc komponentu. Aj keď pre mňa by bolo vhodné do tohto okna pridať aj šírku samotného komponentu - aby bolo s čím porovnávať šírky čiar.

Po preložení všetkých riadkov náš projekt opäť uložíme. Teraz sil súbor by mal obsahovať takýto text:

postupnosť znakov #$ je oddeľovač, ktorý môžeme sami určiť pri ukladaní súboru. V procese prekladu reťazcov v editore môžete vidieť, že TsiLang v žiadnom prípade nezohľadnil, že pas-súbor formulára obsahuje sekcie resourcestring a const a dokonca aj textový reťazec v obslužnom programe OnClick. Ak chcete do prekladu pridať tieto reťazce, vyberte z ponuky odborníka na TsiLang:

  • Súbor -> Zdroj -> S Formulár - na výber liniek z implementačnej časti modulu,
  • Súbor -> Zdroj -> S Formulár- vyberte všetky reťazcové konštanty a reťazce zdrojov

V dôsledku toho sa otvorí okno s výsledkami vyhľadávania, v ktorom môžete pridať riadok do zoznamu vylúčení alebo ho nahradiť volaním funkcie TsiLang:

Kliknite na tlačidlo „Upraviť zdroj“ v tomto okne a zobrazí sa nasledujúca správa:

Otvoríme súbor pas a uvidíme nasledujúci zvláštny obrázok:

Zdalo sa mi zvláštne, že TsiLang dokonale definuje reťazcové konštanty v súbore pas a dokonca mení samotný zdroj, ale z nejakého dôvodu je „lenivé“ definovať samotnú var - no, urobili by ďalšiu možnosť v nastaveniach súboru prekladový projekt ako „Definovať VAR pre konštanty s reťazcami“ a „Zmeniť nastavenia kompilátora“. Ale to je v poriadku – je tam okienko so správou a to je chlieb. Čomu naozaj nerozumiem je, kde TsiLang našiel v mojom projekte nezrozumiteľné hieroglyfy? Myslel som, že to môže byť spôsobené tým, že súbor pas je uložený v ANSI, ale nie - zmenil som ho na UTF8, ale problém s hieroglyfmi zostal ... Vo všeobecnosti je to zvláštne.

Po umiestnení reťazcov do prekladu môžete znova otvoriť editor prekladu a preložiť skupinu Struny(našťastie sa riadky dostanú do editora bez skreslenia):

Po preložení všetkých reťazcov a uložení súboru sil môžete vo svojom programe prepínať jazyky. V TsiLang má každý jazyk svoj vlastný celočíselný identifikátor. Napríklad v mojom prípade boli ID takéto:

  • Ruština = 1
  • Angličtina = 2

Teraz, aby sa rozhranie môjho programu prepnulo anglický jazyk stačí niekde prilepiť nasledujúci kód:

siLang_Form19. Aktívny jazyk := 2

To spôsobí, že TsiLang načíta reťazce v požadovanom jazyku zo súboru sil.
Čo sa týka práce s prekladovým slovníkom, ten dokáže preniesť do slovníka (predtým vytvoreného) len už preložené reťazce. Ak to chcete urobiť, môžete použiť rovnaký editor prekladov - kliknite na tlačidlo „Pridať všetko“ v editore, ktorý je určený na prenos všetkých prekladov do slovníka a zobrazí sa nasledujúce okno na výber potrebných možností prenosu:

tu vyberte súbor slovníka, kliknite na „Ok“ a získajte všetky preložené reťazce do svojho slovníka, ktorý mimochodom vyzerá takto:

Následne je možné tento slovník použiť na automatické prevody riadkov vo svojich programoch. No, ako som povedal vyššie, pre prácu so súbormi SIL existuje samostatná pomôcka s názvom SIL Editor, ktorý je určený pre prekladateľov. Kvôli čistote experimentu som skopíroval priečinok s editorom SIL na flash disk a spustil som program z virtuálneho počítača „Windows XP Mode“:

Editor SIL umožňuje prekladať zo slovníkov a ručne, ako aj v prípade potreby pridávať do prekladu nové jazyky.

Ďalšie funkcie TsiLang:

  1. Import slovníkov zo súborov doc-, html-, xls-, csv-, po
  2. Importovanie zdrojových reťazcov zo spustiteľných súborov
  3. Prítomnosť vlastných komponentov – dialógy na otváranie súborov, štítkov, zoznamov atď.
  4. Vedenie štatistiky prekladov

Recenzia sa ukázala byť pomerne veľká, ale nástroj stojí za to. Poďme si to trochu zhrnúť:

Výhody:

  1. Stačí sa pripojiť k projektu - hodiť komponent na formulár, zavolať metódu 1 a rozhranie je preložené
  2. Pohodlný prekladový editor - všetky riadky sú rozložené, čo sa nazýva "na policiach", môžete rýchlo prechádzať stromom vo vyhľadávaní požadované línie na preklad
  3. Podporuje binárne aj textové súbory s prekladmi. Vytvorili sme súbor sil, dali ho prekladateľovi, potom sme ho uložili do sib a všetko je pripravené - a program bude pracovať rýchlejšie a nikto sa do prekladu nedostane.
  4. Dostupnosť nástrojov pre prekladateľov (SIL Editor, slovníky)

Nedostatky:

  1. „Poškodzuje“ ruské reťazce v súbore pas. Nech sú v komentároch, ale napriek tomu skutočnosť na tvári.
  2. V procese práce sa pri práci so slovníkmi našli nepochopiteľné chyby. Napríklad pri prenose preložených reťazcov do slovníka sa zakaždým vyskytla chyba mimo rozsahu.
  3. Menšie problémy s oknami. Samozrejme, nezasahujú do života, ale napriek tomu nie je dobré, keď vyvoláte slovník a v ovládacom paneli je minimalizovaný pre nejakého škriatka.

V zásade vyššie uvedené nedostatky (s výnimkou druhého) nie sú také kritické.

Lokalizačný balík DKLang

  • Vývojár: DCSoftvér
  • Oficiálna stránka: www.dk-soft.org
  • Cena: je zadarmo
  • Dátum posledného vydania: 25.12.2008
  • Podpora Delphi XE2: Nie

O tomto lokalizačnom riešení nemôžem povedať nič okrem toho, že jednoducho existuje, pretože. ani nezačal sťahovať archív, napriek tomu, že komponenty sú zadarmo.

Po prvé, dátum posledného vydania je alarmujúci - 2008- nie skutočnosť, že komponenty budú fungovať v XE2 bez problémov.

Po druhé, balík vyžaduje dodatočná inštalácia komponentov Ovládacie prvky TNT Unicode 2.3.0, ktoré sú v roku 2012 už nadbytočné – Unicode je už podporovaný.

Preto, ak máte čo povedať k tomuto rozhodnutiu - dobrému alebo zlému - napíšte do komentárov a ja pridám spätnú väzbu k recenzii.

AKTUALIZOVAŤ: o lokalizačnom balíku DKLang. Stručne a jasne.

AKTUALIZÁCIA 2: DKL Pripojte sa XE2

Pokročilý lokalizátor EMS

  • Vývojár: EMS
  • Oficiálna stránka: www.sqlmanager.net
  • Cena: 2 900,00 RUB
  • Dostupnosť skúšobnej verzie: k dispozícii
  • Dátum posledného vydania: 13. januára 2012
  • Podpora Delphi XE2: k dispozícii

Čo hovoria vývojári o svojom produkte:

Advanced Localizer™ je nevyhnutný balík komponentov pre Borland® Delphi®, ktorý vám umožňuje pridať jazykovú podporu do vašich aplikácií Delphi®. Rozsiahle možnosti balíkov Pokročilý lokalizátor umožňujú rýchlo a jednoducho lokalizovať vlastnosti komponentov každého formulára, vytvárať jazykové súbory s aktuálnymi hodnotami vlastností komponentov, spravovať lokalizačné súbory a priraďovať komponenty a ich vlastnosti na lokalizáciu. Jazyk používaných aplikácií Pokročilý lokalizátor, je možné prepnúť na iný priamo počas prevádzky bez následného reštartu aplikácie. Advanced Localizer tiež poskytuje možnosť písať aplikácie potomkov, ktoré používajú užívateľom špecifikované jazykové súbory.

Keďže nemáme „nepostrádateľné“, vykonal som svoj malý test týchto komponentov na tom istom malá aplikácia v 1 forme.
Môj test
Stiahol a nainštaloval balík komponentov v Delphi XE2, otvoril projekt. V palete komponentov Delphi sa objavila Nová karta- Pokročilý lokalizátor EMS. Z tejto karty vypustíme komponenty do formulára:

  1. TQLanguageSource
  2. TQFormLocalizer

O TQFormLocalizer vo vlastnosti Zdroj špecifikujeme TQLanguageSource a poďme do práce.

V prvom rade si vytvoríme súbory pre lokalizované reťazce – urobíme dva prázdne súbory s príponami *.lng (predvolená prípona pre EMS Localizer) a nazveme ich jednoducho – rus a eng.

Tieto súbory nemusíte vytvárať – vytvoria sa automaticky počas prekladu

Teraz dvakrát kliknite na komponent TQLanguageSource a zavolajte správcu jazykových súborov:

Stlačíme jediné aktívne tlačidlo a pridáme súbory:

Teraz by sa podľa nápadu vývojárov mala v zozname manažéra objaviť nová položka ... ale nie je. Tu sú hodnoty obsiahnuté vo vlastnosti Languages ​​komponentu:

Avšak, zoznam vizuálny editor panenský čistý. Boh mu žehnaj zoznamom - snažíme sa preložiť našu aplikáciu. Dvojitým kliknutím na druhý komponent (TQFormLocalizer) zavoláte editor prekladu:

V editore môžeme okrem prekladu reťazcov pridať aj nový jazykový súbor, upraviť existujúci jazyk alebo vybrať predvolený jazyk. Ako vidíte na obrázku, do editora sa dostanú len riadky obsiahnuté vo vlastnostiach komponentov a zdrojové riadky a konštanty zostávajú nepovšimnuté, čo možno zapísať ako nevýhody týchto komponentov.

Po preložení všetkých reťazcov môžete do programu pridať možnosť prepínania jazyka rozhrania. Robí sa to takmer rovnakým spôsobom ako v TsiLang - uvedením indexu aktívneho jazyka:

QLanguageSource1. ActiveLanguage := 1 ;

V tomto prípade, ak sa použije predvolený jazyk (označený ako „Pôvodný“), jeho index sa rovná -1 a vo zvyšku začína od nuly a zvyšuje sa v poradí v zozname Jazyky.

Ďalšie funkcie pokročilého lokalizátora EMS:

Zhrnúť.

Výhody:

  1. Komponenty sa používajú jednoducho – trvalo asi 5 minút, kým ste prišli na to, čo a ako to funguje.
  2. Pomerne lacné
  3. V databáze je možné ukladať preklady

nedostatky:

  1. Žiadna podpora pre slovníky a teda automatické preklady
  2. Problémy v jednoduchom správcovi jazykov
  3. Preklad konštánt a zdrojových reťazcov nie je podporovaný
  4. Žiadne nástroje pre prekladateľov tretích strán

Vo všeobecnosti môj názor na Pokročilý lokalizátor EMS- celkom pohodlné komponenty pre prácu s malými projektmi, ale pre viac či menej veľké projekty, kde je potrebná podpora mnohých jazykov, práca niekoľkých ľudí na preklade atď. táto sada komponentov je, žiaľ, dosť slabá.

Lokalizátor Korzh

  • Vývojár: Vývojárske nástroje KORZH
  • Oficiálna stránka: devtools.korzh.com
  • Cena od 149,0 EUR až 649,0 EUR
  • Dostupnosť skúšobnej verzie: k dispozícii
  • Dátum posledného vydania: 23. júla 2012
  • Podpora Delphi XE2: k dispozícii .

Čo hovoria vývojári o svojom produkte:

Jeden EXE súbor môže podporovať viacero jazykov. Ďalšie jazyky je možné pridať bez rekompilácie. Nie je potrebné vytvárať veľa exe súborov
Reťazcové dáta môžu byť uložené ako v štandardných zdrojových DLL, tak aj v špeciálnych jazykových súboroch
Počas lokalizácie sa kód programu zmení buď veľmi málo (doslova pár riadkov), alebo sa nezmení vôbec. Localizer nemení projekt aplikácie, pretože nie sú použité žiadne ďalšie komponenty
Lokalizovaný projekt je možné spustiť na kompiláciu bez nainštalovaného lokalizátora
Lokalizátor prekladá zdroje z VCL aj akékoľvek iné zdroje
Podporuje ukladanie prekladov v štandarde Úložisko prekladov a ich opätovné použitie v budúcnosti
Podporuje všetky komponenty a balíky tretích strán (napr. DevExpress, TurboPower, ElPack, RX atď.)
Proces prekladu je možné vykonať pomocou vstavaného nástroja Jazykový manažér, voľne dostupný na stiahnutie prekladateľmi
Jednoduchá migrácia z Borland ITE (Integrated Translation Environment)

Môj test

Stiahol som si skúšobnú verziu, ktorá sa líši od plná verzia je, že lokalizátor preloží iba prvých 30 riadkov z každého formulára/súboru. Nainštalované Potom sa v hlavnom menu Delphi XE2 objavila nová položka:

V ponuke som vybral „Spustiť lokalizáciu projektu“, v dôsledku čoho som bol požiadaný, aby som si vybral hlavný jazyk projektu a určil priečinok na uloženie jazykového súboru:

Po kliknutí na „Localize mu project!“ bola spustená rekompilácia projektu a do súboru dpr projektu boli pridané potrebné moduly a volanie metód Korzh Localizer:

používa (....) , LocOnFly, (Form18) ; ($R Project16.KLR) ($R *.res) začať LocalizerOnFly. InitReg; (...) koniec .

Okamžite po informačnej správe, že môj projekt bol lokalizovaný, bol spustený aj Language Manager:

V dialógovom okne na výber nového jazyka pre lokalizáciu je skvelá možnosť - „Skúsiť automaticky preložiť cez Google“. Táto možnosť však momentálne nefunguje:

Nie je to spôsobené tým, že by tam vývojári niečo pokazili. Dôvod spočíva v tom, že Google preniesol Translate API na komerčné koľajnice a ak sa nemýlim, sprístupnil iba cez OAuth 2.0. Takže v ďalších vydaniach Korzh Localizer táto možnosť zrejme zmizne alebo sa použije pre dostupnejšie API, napríklad pre Bing Translator API.

Po pridaní jazyka na lokalizáciu sa v Language Managere zobrazí tabuľka na preklad reťazcov nájdených v projekte. Okrem toho, čo je priamo v projekte, vám Korzh Localizer umožňuje lokalizovať aj reťazce obsiahnuté v iných moduloch Delphi:

Po preklade vám Localizer môže zobraziť štatistiku – koľko riadkov je preložených, percento prekladu atď., no aj tu sa našla chyba pri prepnutí na záložku „Externé položky“:

Asistent (nazvime to tak) ponúka výber modulov na skenovanie reťazcov a ponúka aj dve možnosti ukladania reťazcov - v zdrojovom súbore alebo v súbore pas:

Všetky nastavenia som nechal ako predvolené. V module boli tri riadky – jeden v sekcii resourcestring, druhý v const a tretí v obslužnom programe tlačidla OnClick. V dôsledku toho Korzh Localizer určil nasledovné:

Po kliknutí na „Ďalej“ IDE zobrazilo správu:

Po kliknutí na tlačidlo "Áno" bolo pridané použitie nový modul, obsahujúci sekciu resourcestring, ktorá obsahovala jeden nájdený reťazec. Zmenila sa aj obsluha OnClick tlačidla a vyzerá takto:

postup TForm19. Button1Click (Sender: TObject ) ; begin ShowMessage(SIgeaaoIeg) ; koniec ;

V Správcovi jazykov sa riadok neobjavil - dá sa predpokladať, že takéto riadky budú preložené bez manažéra, prípadne sú do manažéra nejako prefíkane pridané - do detailov som tomu nerozumel. Potrebujem len skontrolovať, ako prebieha lokalizácia. Aby projekt „hovoril“ v ​​inom jazyku, stačí vybrať požadovaný jazyk v hlavnom menu:

Potom IDE znova oznámilo, že súbor bol zmenený a požiadalo ho o opätovné načítanie. Reštartoval, postavil projekt a dostal aplikáciu v angličtine:

Ďalšie funkcie Korzh Localizer:

  1. Vytváranie/import/export úložísk. Import a export sa vykonáva vo formáte XML alebo TMX.
  2. Podporuje viac jazykov pre lokalizáciu - pre každý jazyk je vytvorený samostatný súbor
  3. Schopný pracovať so súbormi EXE a DLL.

Výhody:

  1. Nevyžaduje prítomnosť žiadnych komponentov vo formulári - všetko, čo je potrebné Lokalizátor Korzh pripája sa k dpr .
  2. Existuje nástroj pre prekladateľov
  3. Je možné vytvárať / importovať / exportovať úložiská

nedostatky:

  1. Počas práce s nástrojmi som našiel rôzne druhy nedostatkov, ako sú chyby (pozri snímky obrazovky vyššie), chyby v rozhraní, prítomnosť nefunkčných možností (zatiaľ čo spoločnosť Google zatvorila prístup k API už dávno a vydanie lokalizátor bol relatívne nedávny). To všetko vytvára pocit akéhosi opustenia projektu.
  2. Reťazce zdrojov sa do Správcu jazykov nedostanú alebo nejako tak prefíkane, že nemôžete okamžite zistiť, kam kliknúť alebo čo kam pridať.

Vo všeobecnosti by som odišiel Lokalizátor Korzh ako rezervu v prípade, že sa nenájde nič lepšie . Okrem vyššie opísaných nevýhod , o jedným z dôvodov tohto záveru bol čas potrebný na zvyknutie si na prácu s nástrojom – zo všetkých vyššie diskutovaných nástrojov zabral Korzh Localizer najviac času.

GNU gettext pre nástroje Delphi a C++ Builder

  • Vývojár: dxgettext.po.dk
  • Oficiálna stránka: dxgettext.po.dk
  • Cena: je zadarmo
  • Dátum posledného vydania: neznámy
  • Podpora Delphi XE2: Nie

Napriek tomu, že neexistuje podpora pre Delphi XE2, rozhodol som sa túto knižnicu stiahnuť a vyskúšať. Žiaľ, po pripojení dxgettext.pas k projektu sa začali objavovať chyby - niekde namiesto ansiString špecifikovali reťazec, použili metódy označené ako depricated, použili nesprávne parametre metódy (možno takýto kód bol zostavený v Delphi 2009, ale nie v XE2). Vo všeobecnosti sa veľa vecí dostalo von ... Je to škoda. V Lazarus som túto knižnicu párkrát použil a musím povedať, že sa mi páčila. Samozrejme, pre existujúce projekty bude dosť problematické implementovať DXGetText do práce, ale pre nové je to celkom znesiteľná a pohodlná knižnica. Existuje niekoľko nástrojov pre prekladateľov, prekladové pamäte atď. Vo všeobecnosti, ak sa rozhodnete spustiť projekt na verziách Delphi pred rokom 2009 a potrebujete knižnicu na lokalizáciu a internacionalizáciu projektu - skúste DXGetText.

balík i18n

  • Vývojár: Kambiz R. Khojasteh
  • Oficiálna webová stránka: www.delphiarea.com
  • Cena: je zadarmo
  • Dátum posledného vydania: 19. august 2012
  • Podpora Delphi XE2: Nie (podľa informácií na oficiálnej stránke)

i18n Package v1.10 pre Delph i je celá knižnica komponentov určená na lokalizáciu a internacionalizáciu projektov. Napriek tomu, že Delphi XE2 nie je oficiálne podporované, táto knižnica bola v Delphi XE2 nainštalovaná bez problémov a tak som sa ju rozhodol trochu otestovať.

Balík obsahuje viac ako 30 rôznych komponentov, ktoré podporujú lokalizáciu, ale ako ste pochopili, zaujíma ma ešte jeden bod - dá sa táto knižnica použiť na lokalizáciu existujúceho projektu s množstvom formulárov, dialógov, zdrojových riadkov atď.

Práca s lokalizáciou pomocou balíka i18n je teda nasledovná:

  1. Vyhoďte komponent TLocalizer na hlavný formulár
  2. Na všetky ostatné formuláre (vrátane hlavného) hodíme komponent na preklad – TTranslator
  3. Pre lokalizáciu dialógov je potrebné na hlavný formulár umiestniť aj komponent TMessageBox a špecifikovať v ňom potrebné nadpisy, ikony a pod.

Teraz musíme vytvoriť súbor s novými riadkami. Ak to chcete urobiť, dvakrát kliknite na komponent TTranslator - otvorí sa editor, v ktorom musíte vybrať vlastnosti a reťazce, ktoré budeme prekladať:

Ak potrebujete projekt internacionalizovať, nedotýkajte sa ničoho v poli „Hodnota majetku“, pretože pridávanie nových jazykov a preklad reťazcov sa vykonáva v samostatnom nástroji

Po výbere potrebných prvkov prejdite na kartu Export, zadajte jazyk, v ktorom sú naše riadky napísané (t. j. ruština) a exportujte riadky do súboru * .i18n:

Súbor bol vytvorený - môžete začať prekladať. V priečinku Bin knižnice je špeciálna užitočnosť s názvom i18n Editor, ktorý je určený na preklady.

Program je pomerne jednoduchý na používanie a myslím, že si naň veľmi rýchlo zvyknete. Poviem len toľko Editor i18n sa dokáže „učiť“ - na to musí program určiť priečinok, v ktorom sa nachádzajú hotové súbory *.i18n a program ich automaticky naskenuje a extrahuje z nich nové frázy.

Po preložení všetkých potrebných reťazcov sa vrátime do Delphi a špecifikujeme náš súbor s lokalizáciami vo vlastnosti URI komponentu TLocalizer. Teraz do formulára pridáme komponent TCultureBox a špecifikujeme Localiwer1 v jeho vlastnosti Localizaer (ak komponent nebol premenovaný).

Teraz môžete spustiť program a uistiť sa, že preklad rozhrania je úspešný:

Výhody:

  1. Za svoju cenu - 0,0 $ je pomerne vysoká kvalita (funguje dobre v Delphi XE2)

nedostatky:

  1. Syntaktický analyzátor nezistil resourcestring a reťazcové konštanty a zistené a preložené reťazce z programového kódu stále nie sú lokalizované.
  2. Pre každý formulár/modul je potrebné použiť vlastný TTranslator, čo nie je príliš pohodlné. Logickejšie by bolo urobiť malý skener celého projektu na prítomnosť čiar, ako sa to robí napríklad v DXGetText

Všeobecný záver o knižnici možno urobiť nasledovne - pre pomer „cena / kvalita“ je to skvelá knižnica, ktorá vám umožňuje prakticky bez problémov poskytovať viacjazyčnú podporu v malých projektoch. Dojem trochu kazí práca knižnice so strunami nie z vlastností komponentov, myslím si, že ak je projekt živý (a súdiac podľa vydania je projekt celkom živý), tak sa tento nepríjemný problém vyrieši.

Kryvichov lokalizátor Delphi

  • Vývojár: Kryvich
  • Oficiálna stránka: sites.google.com/site/kryvich/localizer
  • Cena: je zadarmo
  • Dátum posledného vydania: 7. januára 2012
  • Podpora Delphi XE2: k dispozícii

Ďalší bezplatná knižnica pre lokalizáciu a internacionalizáciu aplikácií Delphi. Podľa autorov projektu by s touto knižnicou mala ísť lokalizácia našich aplikácií bez problémov. Pozrime sa, či je to skutočne tak.

V prvom rade musíme zmeniť možnosti projektu. Poďme k IDE: Projekt->Možnosti->Prepojenie a nainštalovať Súbor mapy = podrobný

Teraz zostavíme projekt a získame tri súbory - *.exe, *.drc a *.map. Teraz spustíme pomôcku konzoly kdlscan.exe, ktorá sa nachádza v priečinku knižnice. Pomôcka sa spustí s parametrom:

kdlscan


kde je názov nášho exe súboru.

Skener prechádza projektom a vytiahne zdrojové reťazce a reťazce z vlastností komponentov a vloží ich do súboru s príponou *.lng. Tento súbor je bežný ini súbor, takže ho môžete otvoriť v akomkoľvek editore a preložiť všetky riadky, ako potrebujeme.

Po preklade si výsledný súbor uložíme napríklad aj s názvom anglicky.lng.

Teraz poďme pracovať na projekte. Na podporu lokalizácie pridajte modul uFreeLocalizer.pas do použitia hlavného formulára, tiež hoďte modul uStringUtils.pas do priečinka projektu a napíšte na akékoľvek vhodné miesto v programe:

FreeLocalizer. AutoTranslate := True ; FreeLocalizer. LanguageDir := ExtractFilePath(Application.ExeName) ; FreeLocalizer. LanguageFile := "english.lng" ;

Prvé dva riadky je možné zapísať do súboru dpr a tam pripojiť modul lokalizátora. Všetky. Môžete spustiť program a skontrolovať prácu.

Výhody:

  1. Veľmi ľahko použiteľná knižnica
  2. kompaktný

nedostatky:

  1. Žiadne slovníky
  2. Skener nezisťuje pevne zakódované reťazce a konštanty

Vo všeobecnosti je knižnica celkom vhodná pre projekty s malým počtom reťazcov na lokalizáciu. Napriek tomu sa práca cez ini-súbor prejaví pri veľkom množstve údajov.

JVCL (JEDI Visual Component Library)

  • Vývojár: Projekt JEDI
  • Oficiálna stránka: jvcl.delphi-jedi.org
  • Cena: je zadarmo
  • Dátum posledného vydania: 11. apríla 2011
  • Podpora Delphi XE2: k dispozícii

Kto by nepoznal projekt JEDI? Túto obriu knižnicu pozná snáď každý, kto aspoň trochu pracoval v Delphi. Táto knižnica obsahuje komponent TjvTranslator, ktorý vám umožňuje lokalizovať aplikácie Delphi. Podľa recenzií na rôznych fórach a blogoch je komponent celkom pohodlný a populárny, ale nejako som sa neusmial pri inštalácii celej súpravy JCL + JVCL, aby som sa pozrel na prácu jedného úžasného komponentu. Výhody a nevýhody si teda budete musieť hľadať sami. A prejdem k ďalším komponentom.

Balík komponentov C&Pack (CnVCL)

  • Vývojár: C&Pack
  • Oficiálna webová stránka: www.cnpack.org
  • Cena: je zadarmo
  • Dátum posledného vydania: 5. novembra 2011
  • Podpora Delphi XE2: k dispozícii

Ďalší pomerne populárny vývojár, ktorý si získal zaslúženú obľubu svojim produktom s názvom cnWizards, nám poskytol sadu komponentov na lokalizáciu aplikácií. Tieto komponenty sú zahrnuté v samostatnom balíku - cnVCL a sú distribuované bezplatne.

Hneď si všimnem, že v súčasnosti je najnovšia verzia komponentov dostupných na stiahnutie označená ako Alpha, takže od tejto sady komponentov nemôžete očakávať bezchybnú prácu. Napriek tomu však urobím malý prehľad komponentov lokalizácie.

Takže po nainštalovaní balíka cnVCL sa v palete komponentov objaví niekoľko nových kariet naraz:

na karte cnMultiLang sú 4 komponenty na lokalizáciu. Tri z nich: TCnLangManager, TCnLangTranslator a TChHashLangFileStorage alebo TChIniLangFileStorage musí byť uvedený v prihláške.

Musím povedať, že verzia Alpha je o sebe cítiť. Aby som rýchlo porozumel fungovaniu týchto komponentov, rozhodol som sa spustiť malé demo, ktoré sa dodáva so zdrojmi komponentov ... samozrejme sa otvorilo v Delphi XE2, ale niečo je dosť zvláštne:

Áno, toto je v zásade tolerovateľné - zdrojový kód, zdá sa, nie je príliš „pokorezhin“ a bolo viac-menej možné zistiť, čo a ako to funguje. Podstatou práce je:

1. Vyššie uvedené tri komponenty umiestnime na formulár žiadosti (vybral som TCnLangManager, TCnLangTranslator a TChIniLangFileStorage)

2. Teraz si vyberte TChIniLangFileStorage a pridať do zbierky Jazyky nové jazyky. Malo by to vyzerať asi takto:

3. Urobte TCnLangManager vo vlastnosti LanguageStorage špecifikujeme náš komponent CnIniLangFileStorage1

4. Dvakrát kliknite na TCnLangTranslator- otvorí sa editor na preklad reťazcov:

5. Vyberte požadovaný jazyk v strome a kliknite na „Gen All“ – mala by sa zostaviť tabuľka s reťazcami na preklad. U mňa to dopadlo takto:

6. Preložíme potrebné riadky, vymažeme nepotrebné riadky, výslednú tabuľku uložíme do súboru. Výsledkom je, že dostaneme ini súbor, ktorý sa musí hodiť vedľa exe súboru nášho projektu.

7. Napíšeme jeden riadok na akékoľvek vhodné miesto v programe:

CnLangManager1. CurrentLanguageIndex := 0 ;

Vo výsledku táto akcia povedie k tomu, že program bude “preložený” do jazyka, ktorý má v LangugeStorage index 0, t.j. v mojom prípade - v angličtine. Neposkytnem snímku obrazovky, len poviem, že komponent fungoval.

Čo možno povedať o výhodách a nevýhodách týchto komponentov? Myslím si, že zatiaľ nemá cenu robiť žiadne závery - koniec koncov, verzia Alpha a všetky druhy chýb, podivné správanie atď. atď. Ak budú práce na komponentoch pokračovať, s najväčšou pravdepodobnosťou by sme mali mať k dispozícii jednoduché a ľahko použiteľné komponenty na lokalizáciu a internacionalizáciu projektov. Medzitým je veľmi, veľmi skoro používať tieto komponenty v serióznych aplikáciách.

TLang pre FireMonkey

  • Vývojár: Embarcadero
  • Oficiálna webová stránka: embarcadero.com
  • Cena: zahrnuté v cene Delphi
  • Dátum posledného vydania: 3. septembra 2012
  • Podpora Delphi XE2: k dispozícii

O tomto komponente a práci s ním nebudem podrobne hovoriť, pretože. v blogu je už článok o práci s TLang vo FireMonkey. Článok sa volá "" - v ňom nájdete výhody a nevýhody tohto komponentu. V Delphi XE3 som nekontroloval chod komponentu.

Multilizér

  • Vývojár: Fínska technologická spoločnosť
  • Oficiálna webová stránka: www2.multilizer.com
  • Cena: 299 - 2900 EUR
  • Dátum posledného vydania: neznámy
  • Podpora Delphi XE2: k dispozícii

Napriek pomerne nízkej cene produktu som sa rozhodol pozrieť, aký je tento produkt. Multilizer je špecializovaný produkt, ktorý umožňuje lokalizáciu odlišné typy aplikácie, súbory, dll atď. Súčasťou balenia je aj sada komponentov pre Delphi 5 - XE2. Komponenty som neinštaloval, ale rozhodol som sa na svojej aplikácii vyskúšať samotnú aplikáciu Multilizer.

Všetko to začína tým, čo vytvoríme nový projekt pre lokalizáciu:

Vyberáme prvú možnosť. Ďalším krokom je výber analyzátora:

V treťom kroku nás Multilizer požiada o zadanie súboru na analýzu (špecifikované exe), vykoná analýzu a zobrazí výsledok kontroly:

Ďalším krokom je určiť rodný jazyk aplikácie a pridať nové jazyky na lokalizáciu:

Multilizer vám tiež umožňuje automaticky určiť jazyk, ale z nejakého dôvodu vyžaduje používateľské meno a heslo účet Google 0_O (aspoň nie kľúče od bytu, kde sú peniaze). Túto funkciu programu som nekontroloval.

Po vytvorení projektu sa otvorí okno editora prekladu, ktoré vyzerá takto:

Proces lokalizácie často znamená viac než len nastavenie jazyka vašej aplikácie pre rôzne regióny. To zahŕňa aj správny čas, dátum a formát zobrazenia pre rôzne regióny. Ak očakávate, že vaša aplikácia bude mať šancu dostať sa k širokému medzinárodnému publiku, musíte okamžite premýšľať o kompetentnej lokalizácii aplikácie, aby ste sa neskôr nehrabali v kóde celého programu a nestrávili veľa času nastavenie pre rôzne oblasti planéty.

Použitím Android SDK, jazyk použitých zdrojov lokalizovaných reťazcov a formát/hodnota času a dátumu sa automaticky prispôsobia oblasti a jazykovému prostrediu, v ktorom zariadenie pracuje. Jazyk definuje ISO 639-1, krajinu ISO 3166-1. To znamená, že môžeme pokojne povedať, že Android je kompatibilný s väčšinou krajín sveta (no, možno sa niektoré africké kmene nepočítajú :)) a jazykov.

Jazyková lokalizácia

Stojí za zmienku, že jediný jazyk, ktorý bude 100% zastúpený v akomkoľvek zariadenie so systémom Android je americká angličtina, označená kódom sk_SK. Ak chcete vytvoriť jazykovú lokalizáciu vašej aplikácie, musíte do jej priečinka res/ investujte ďalšie zdroje, ktoré uznáte za vhodné pridať.

Ak chcete do svojej aplikácie pridať alternatívne jazyky, musíte vytvoriť priečinky v priečinku res/ root a dať im názvy ako: res/values-<языковой код> alebo res/values-<языковой код>-r<код страны> . Stojí za zmienku, že ak ste definovali jazykové nastavenia pre určitý región, potom pri použití v aplikáciách v tomto regióne budú prioritou, to znamená, že budú pre aplikáciu predvolene „dôležitejšie“ a použijú sa najprv. Nad ich prednosťou môže byť len tzv mobilný kód krajiny MCC. Mobilný kód krajiny (určený pomocou mobilný kód MNC siete z SIM karty) definuje preferované zdroje pre danú krajinu.

Poďme sa teda naučiť, ako vytvoriť jazykovú lokalizáciu. Vytvorte novú aplikáciu alebo otvorte existujúcu aplikáciu, ktorá nie je príliš zložitá. Dali sme si za úlohu lokalizovať našu aplikáciu pre rusky hovoriace regióny a anglicky hovoriace regióny. Pre nastavenia ruský jazyk používame len existujúci priečinok res/values/strings.xml a vytvorte reťazcové zdroje, ktoré tak veľmi potrebujeme. Pre Angličtina v rovnakom jazyku, vytvorte podpriečinok /values-sk v priečinku res/ zdrojov a vytvorte nasledujúci súbor s adresou: res/values-en/strings.xml. Do tohto súboru, ktorý sme vytvorili, pridáme zdroje anglického reťazca. Ako by mal kód vyzerať:

Pre súbor s ruskými jazykovými zdrojmi res/values/strings.xml:

< resources> < string name= "app_name" >Moja aplikácia< / string> < string name= "hello_world" >Ahoj svet!< / string> < string name= "action_settings" >nastavenie< / string> < string name= "word" >Slovo< / string> < / resources>

Pre anglický lokalizačný súborres/values-en/strings.xmlzdroje budú nasledovné:

< resources> < string name= "app_name" >Moja aplikácia < string name= "hello_world" >ahoj svet!< / string> < string name= "action_settings" >nastavenie < string name= "word" >Slovo < / resources>

Všetko je pripravené, teraz po spustení v anglicky hovoriacej krajine program automaticky použije zdroje z priečinka res/values-en/strings.xml a zobraziť anglický text.

Stojí za zmienku, že na to, aby tento mechanizmus jazykovej lokalizácie správne fungoval vo vašich aplikáciách, potrebujete prvky programu, ktoré používajú text, napríklad pri nastavovaní android:text="" pre predmety , priradiť k nim text nielen napísaním slova, ako android:text="Ahoj svet!", ale s odkazom na vytvorený zodpovedajúci reťazec: android:text="@string/hello_world".

Ak chcete lokalizovať reťazce v samotnom programovom kóde, ak to nebolo vykonané v súbore layout.xml alebo iné podobné súbory značiek rozhrania, potom na lokalizáciu takýchto reťazcov musíte zavolať objekt v kóde android.content.res.Resources, ktorý obsahuje všetky prostriedky v balíku aplikácie, a odtiaľ pomocou metódy pristupujte k požadovanému zdroju dostať.String. Tu je návod, ako lokalizovať náš "Hellow world!" týmto spôsobom:

// Pripojte požadovaný zdroj: android.content.res . zdrojov res = kontext. getResources(); Reťazec helloWorld = res. getString(R . string. ahoj_svet); // Naviažte lokalizovaný reťazec na prvok TextView helloTextView; helloTextView = (TextView )findViewById(R . id. hello_world_textview); helloTextView. setText(helloWorld);

Existuje ďalší spôsob, ako lokalizovať zdroje reťazcov vašej aplikácie. Je to celkom jednoduché, najjednoduchšie zo všetkých, ako sa tu diskutuje a bude sa tu diskutovať, ale funguje to rovnako. Takže keď pracujete na svojej aplikácii v súboroch značiek, ako je activity_main.xml, môžete priamo tu, bez úpravy zdrojových súborov, konfigurovať lokalizáciu jazyka. Nezáleží na tom, v akom režime sa nachádzate, text alebo dizajn, na paneli nájdeme nasledujúce tlačidlo:

Kliknite naň, vyberte prvú položku - Pridať preklad a pred nami sa zobrazí okno, v ktorom sa navrhuje vybrať jazyk, ktorý potrebujete na lokalizáciu. V zozname nájdeme požadovaný jazyk, klikneme naň a zobrazí sa nové okno:

Ako vidíte, v zobrazenej tabuľke sú 3 stĺpce: kľúč, Defwalt, ruština (ru) (pretože som si na lokalizáciu vybral ruštinu). Prvý zobrazuje zdroje reťazcov, ktoré máme v súbore res/values/strings.xml, v druhom - ich hodnota v tom istom súbore res/values/strings.xml a 3. okno nám tu umožní zadať preklad všetkých existujúcich zdrojov reťazcov. Zadajte požadovaný preklad a kliknite na tlačidlo OK. Vidíme, že súbor sa otvoril sk\string.xml, čo znamená, že samotný program vytvoril potrebný priečinok na lokalizáciu v ruskom jazyku. Všetko je pripravené!

Lokalizácia času a dátumu

V mnohých aplikáciách je potrebné pracovať s hodnotou aktuálneho času a dátumu. Predstavte si sklamanie vašich používateľov, ktorí boli spočiatku tak nadšení z prítomnosti jazykovej lokalizácie, že už boli pripravení na nákup plná verzia program, a tu na vás - váš program blahoželá obyvateľovi Kamčatky k Novému roku o pol dňa neskôr, ako mal byť. To je všetko, zbohom užívateľ! Dôležitou záležitosťou je teda aj lokalizácia času a dátumu, ako vidíte, a Android SDK má nástroje na nastavenie dátumu a času tak, aby zodpovedal polohe zariadenia.

Lokalizácia dátumu

Nastavenie dátumovej lokalizácie je možné vykonať pomocou triedy Formát dátumu v mennom priestore android.text.format. Nasledujúci útržok kódu ukazuje, ako získať reťazec s hodnotou dátumu vo formáte pre miestne nastavenie zariadenia:

// Získajte aktuálny čas a dátum: Dátum aktuálnyDátum = Kalendár . getInstance(). getTime(); // Získajte štandardný pohľad dátumy aktuálnej lokalizácie zariadenia: java.text . Formát dátumu formát dátumu; dateFormat = android.text.format . Formát dátumu. getDateFormat(this); // Formátovať aktuálny dátum podľa umiestnenia zariadenia: String formattedCurrentDate = dateFormat. format(aktualny datum);

Ak je aktuálna poloha zariadenia napríklad Spojené štáty, potom sa miestny formát dátumu zobrazí ako 11/29/2014 . trieda Formát dátumu je možné nakonfigurovať aj iné formáty dátumu. Ak namiesto príkazu getDateFormat vykonávať napr. getLongDateFormat, potom dostaneme dátum v tomto tvare: Pondelok 29. decembra 2014.

Časová lokalizácia

Keďže čas je zastúpený v Android SDK as Dátum objektov, je tiež nakonfigurovaný triedou Formát dátumu v mennom priestore android.text.format. Tu sa všetko robí približne rovnakým spôsobom ako pri nastavovaní dátumu pomocou rovnakej metódy. Pozrime sa na kód:

// Nastavenie aktuálneho času a dátumu java.util . Dátum currentDate = Kalendár . getInstance(). getTime(); // Nastaviť správne zobrazeniečas pre aktuálnu lokalizáciu zariadenia java.text . Formát dátumu formát času; timeFormat = android.text.format . Formát dátumu. getTimeFormat(this); // Nastavte formát času podľa lokalizácie zariadenia String formattedTime = timeFormat. format(aktualny datum);

Ak chcete, aby bola vaša žiadosť úspešná používatelia Google Hrajte z celého sveta, mali by ste ho lokalizovať.

značky

  • Publikácia
  • svetový trh
  • rozvoj
  • Testovanie

Poznámka. Detailné informácie Informácie o tom, ako uviesť svoje aplikácie na nové trhy, nájdete v príručke Going Global Playbook.

Keďže lokalizácia ovplyvňuje celý vývojový cyklus aplikácie, je potrebné správne plánovanie procesu. Kontrolný zoznam obsahuje hlavné kroky na prípravu vašej žiadosti na úspešné zverejnenie v rôznych krajinách.

Kontrolný zoznam

  • Identifikujte krajiny s priaznivými podmienkami vstupu na trh.
  • Použite údaje Google Hrajte, aby ste našli nové funkcie. Ak je vaša aplikácia zverejnená, môžete ju zobraziť v Konzole pre vývojárov. Nájdete v ňom krajiny, ktorých obyvatelia aktívne navštevujú stránku vašej aplikácie v službe Google Play. Lokalizáciou aplikácie určite zvýšite počet inštalácií v týchto krajinách.
  • Použite všestrannú súpravu rozloženia s malými obmenami. Zahrňte do svojej aplikácie celú sadu predvolených zdrojov, poskytnite podporu pre písanie textu sprava doľava, použite systémový formát pre dátumy, časy, čísla a meny.
  • Zvážte charakteristiky rozvíjajúcich sa trhov. Pozrite si optimalizáciu aplikácie pre Android pre lacné zariadenia a siete s minimálnou šírkou pásma.
  • Zahrňte všetky reťazce do súboru strings.xml, poskytnite úplné a presné informácie, dodržujte pravidlá Material Design pre štýl a špecifikujte obsah, ktorý nie je potrebné prekladať.
  • Preložte aplikáciu, údaje služby Google Play a ďalšie zdroje. Na tento účel môžete kontaktovať používateľov svojej aplikácie, prekladateľské agentúry alebo použiť službu prekladu aplikácií v Konzole pre vývojárov Google Play alebo Android Studio.
  • Nezabudnite otestovať aplikáciu na štandardných zariadeniach pre vaše cieľové trhy. Skontrolujte chyby v rozhraní a v prípade potreby požiadajte o pomoc rodených hovorcov.
  • Uvoľnite beta verziu vo veľkých krajinách, aby ste získali spätnú väzbu od skutočných používateľov.
  • Pripravte sa na pokrok v celosvetovom meradle. Naplánujte kampane na inštaláciu aplikácie a ďalšie podobné udalosti pre rôzne krajiny. Pomocou generátora ikon Google Play vytvorte lokalizované ikony, ktoré možno zobraziť na webových stránkach a v marketingových materiáloch. Pridajte snímky obrazovky lokalizovanej aplikácie do propagačných materiálov pomocou súboru .
  • Využite tipy na optimalizáciu. Skontrolujte úplnosť služby Google Play a získajte ďalšie užitočné pripomenutia v Konzole pre vývojárov, ktoré vám pomôžu úspešne zverejniť vašu aplikáciu.
  • Spustite záverečnú kontrolu a aplikáciu zverejnite. Dokončili ste všetky kroky v tomto zozname? Potom je všetko pripravené na zverejnenie a propagáciu aplikácie v cieľovej krajine.
  • Poskytnite používateľom podporu po zverejnení aplikácie. Nezabudnite sledovať hodnotenia a recenzie, sťahovať štatistiky, aby ste sa včas dozvedeli o vznikajúcich problémoch. Ak je to možné, vytvorte samostatné komunity alebo fóra pre rôzne jazyky.

Táto príručka vám ukáže, ako previesť jednojazyčný jazyk iOS aplikácia, vytvorený pomocou Xcode, na viacjazyčný.

Nahrajte svoj zdrojový súbor a získajte svoju konečnú cenu teraz.

Zdrojový súbor iOS:

Formát súboru:
UTF-16 Unicode UTF-8 Unicode

Z jazyka:

Do jazyka:
— čínština (zjednodušená) čínština (tradičná) dánčina holandčina angličtina francúzština nemčina taliančina japončina portugalčina ruština španielčina — arabčina baskičtina katalánčina čeština fínčina gréčtina hebrejčina hindčina maďarčina latinčina macedónčina nórčina pandžábčina perzština poľština portugalčina (portugalsko) rumunčina švédčina tamilčina thajčina turečtina ukrajinčina vietnamčina

Máte už prekladateľov?

Ponúkame bezplatné používanie nášho prekladateľského systému a znižujeme čas potrebný na správu a koordináciu prekladu vašej aplikácie.

Úvod

Proces lokalizácie aplikácie pre iOS zahŕňa nasledovné:

  1. Príprava zdrojových súborov na lokalizáciu.
  2. Zhromažďovanie všetkých textov použitých v aplikácii do zdrojových súborov.
  3. Preklad zdrojových súborov.
  4. Integrácia zdrojových súborov späť do aplikácie.

Vzhľadom na to, že aplikácie pre iOS sú dizajnovo viacjazyčné, zariadenie už vie, čo má robiť, ak je vaša aplikácia dostupná vo viacerých jazykoch. Zobrazí texty GUI v požadovanom jazyku podľa jazykových nastavení zariadenia.

Všetky aplikácie pre iOS sú vytvorené pomocou textov Unicode kódovaných ako UTF-16. Simulátory iPhone a iPad podporujú tento formát a umožňujú vám zobraziť ukážku preloženej aplikácie.

1. Vytvorte zdroje lokalizované v Xcode

Presuňte súbor prostriedkov do nového lokalizačného adresára a potom presuňte prostriedok do projektu Xcode. Xcode teraz rozpoznáva zdroj ako lokalizovaný daný jazyk. Zopakujte tieto kroky pre všetky ostatné súbory prostriedkov, ktoré je potrebné lokalizovať.

2. Lokalizácia súborov Interface Builder

Extrakcia reťazcov

Na extrahovanie reťazcov zo zdrojových súborov Tvorca rozhrania, musíte spustiť nástroj ako ibtool, ktorá je súčasťou štandardná inštalácia vývojová súprava.

Ak chcete extrahovať súbory, otvorte Terminál v adresári projektu a spustite príkaz:
ibtool --generate-strings-file Example.strings en.lpoj/Example.xib
Tým sa vytvorí súbor Example.strings. Otvorte ho a uvidíte veľa párov hodnôt objektov riadkov.

Pozorne si prečítajte tento dokument a skontrolujte jeho obsah. Môžete odstrániť nepotrebné riadky, ktoré nevyžadujú preklad.

Spracovanie duplicitných riadkov

Zdrojový súbor môže obsahovať duplicitné riadky, ako napríklad niektoré názvy tlačidiel v rôznych stavoch.

Niektoré duplicitné reťazce je potrebné preložiť iba raz, zatiaľ čo iné duplicitné reťazce majú iný preklad. Rovnaký názov tlačidla v rôznych stavoch musí mať rovnaký preklad. Reťazec však môže byť podstatné meno alebo sloveso.

Môžete odstrániť nadbytočné duplicitné reťazce (s rovnakým prekladom) zo zdrojového súboru alebo ich v ňom ponechať a povedať prekladateľovi, aby s nimi zaobchádzal ako s duplicitnými reťazcami.

Už ste takmer pripravení na vydanie, len si to nezabudnite skontrolovať.

Tu je niekoľko vecí, na ktoré si treba dať pozor:

Nesprávna kalkulácia Čo sa môže stať Ako opraviť
Preložené reťazce sú mimo hraníc Nemčina, francúzština, španielčina a ďalšie európske jazyky zvyčajne tvoria 120 % až 150 % veľkosti anglického textu. Ázijské jazyky zvyčajne tvoria 50% - 70%. Odporúčame prispôsobiť GUI na struny rôznych veľkostí. Lokalizačný systém iOS ICanLocalize kontroluje dĺžku reťazcov a upozorňuje na príliš dlhé alebo príliš krátke reťazce.
Chýbajú znaky formátu Mnoho riadkov obsahuje zástupné symboly pre údaje, ako napríklad %s pre text a %d pre čísla. Ďalšie riadky obsahujú HTML kód. Ak preklad neobsahuje rovnaké formátovanie, aplikácia nebude fungovať. Náš prekladateľský systém vám umožňuje zadávať „povinné“ sekvencie. Tým sa zabezpečí, že preklady budú obsahovať rovnaké sekvencie ako originály. V opačnom prípade by ste mali ručne prejsť všetky reťazce a uistiť sa, že formátovacie znaky sa zhodujú.
Preklad vytrhnutý z kontextu Vždy existuje možnosť, že prekladateľ celkom nepochopil význam reťazca. Stáva sa to vtedy, keď prílohy obsahujú krátke a nepopisné riadky. Pred spustením odošlite Celý popis prekladateľské aplikácie. Potom urobte snímky obrazovky aplikácie a pošlite ich prekladateľovi na konečnú kontrolu. Pridanie komentárov k reťazcom vám pomôže získať skvelý preklad.

Riešenie problémov

Ak sa Localizable.strings nachádza v preloženom súbore, ale nie je lokalizovaný v zariadení, skontrolujte kódovanie znakov súboru.

Na rozdiel od simulátora iPhone skutočné zariadenie rozpoznáva iba reťazcové súbory vo formáte UTF-16. Vždy testujte lokalizácie na zariadení, pretože simulátor a zariadenie sa nie vždy správajú rovnako.

Preložené zdrojové súbory stiahnuté z ICanLocalize, sú kódované UTF-16. Sú v archívoch. gzip aby ich váš prehliadač po načítaní nezmenil.

Aktualizácia prekladu pri vývoji aplikácie pre iOS

ICanLocalize uľahčuje aktualizáciu vašich prekladov. Ako sa aplikácia vyvíja, vytvárajú sa nové reťazce a existujúce reťazce sa môžu meniť.

Ak chcete aktualizovať preklady, spustite znova Genstrings, na vytvorenie nového súboru lokalizovateľné.stringy. Potom reštartujte ibtool na generovanie nových súborov reťazcov.

Nakoniec nahrajte nové zdrojové súbory do existujúceho projektu ICanLocalize. Systém zistí nové alebo zmenené reťazce a iba ich preloží. Budete musieť platiť iba za aktualizáciu prekladu, nie za celý preklad od začiatku.

Poznámka: keď sa v reťazci vykonajú zmeny, musí sa znova úplne preložiť. V záujme zníženia nákladov na aktualizáciu prekladov odporúčame rozdeliť veľké reťazce na niekoľko menších. Takže keď vykonáte zmeny, časť, ktorú treba preložiť, sa zmenší a stojí menej. Riadky by mali byť dostatočne veľké, aby sa dali vyčistiť samostatne, ale nie príliš veľké, aby ich aktualizácia nebola drahá.

Potrebujete preklad pre svoju aplikáciu pre iOS?

ICanLocalize ponúka

„ICanLocalize používame od roku 2012 a skutočne nám to zjednodušilo pracovný tok, pokiaľ ide o preklad nášho obsahu pre rôzne trhy. Už žiadne hľadanie prekladateľov pre rôzne jazyky, učenie ich, ako používať prekladateľské nástroje, vlastnú fakturáciu atď., pretože ICanLocalize to všetko robí za nás! Služby ICanLocalize používame na preklad našich webových stránok, aplikácií, bulletinov a iných marketingových materiálov a vždy sa môžete spoľahnúť rýchla práca. Uvedomujem si, že celé toto vyhlásenie znie ako platená reklama alebo čo, ale naozaj som nenapísal nič, čo by nebolo pravdivé alebo by to nebol môj skutočný názor! ICanLocalize by som odporučil kedykoľvek!"

„ICanLocalize je najlepšie riešenie pre rýchle a kvalitné preklady vašej aplikácie. Ich služby využívame pre všetky naše aplikácie s dobrými výsledkami a pozitívnou spätnou väzbou od našich používateľov. Na lokalizáciu aplikácií odporúčam použiť ICanLocalize."

„Používanie ICanLocalize bolo neuveriteľne jednoduché. Prekladatelia nám veľmi pomohli a proces prekladu sa ukázal byť úplne jednoduchý. ICanLocalize je k dispozícii pre vývojárov všetkých kategórií a pomohla nám osloviť oveľa viac klientov ako kedykoľvek predtým.“

„ICanLocalize mi pomohol ušetriť veľa času, pretože poskytuje prekladateľov pre akýkoľvek jazyk a môžete tiež požiadať iných prekladateľov, aby skontrolovali preklady, aby ste sa uistili, že sú presné. Najväčšou pomocou, ktorú ICanLocalize poskytuje, je možnosť nahrať súbory reťazcov z xcode priamo na stránku, takže keď sú preklady pripravené, môžem jednoducho nahradiť súbory reťazcov v mojom projekte a hotovo.“

Ak by ste chceli túto príručku preložiť a znova publikovať, povedzte nám najprv, kde by ste ju chceli uverejniť, a pár slov o sebe.