Localizarea unei aplicații iOS în Xcode 6

Ce veți crea

Traducerea unei aplicații iOS în limbi diferite este un proces în două etape. În primul rând, trebuie să vă pregătiți aplicația prin separarea textului, a imaginilor și a altor resurse care trebuie să fie traduse din restul codului și storyboard-urilor. Acest proces se numește internaționalizare (I18N).

După ce ați terminat internaționalizarea aplicației dvs., sunteți gata să o localizați. Aici exportați resursele și trimiteți-le la traducătorul dvs. Când primiți resursele traduse înapoi, pur și simplu le importați înapoi în Xcode, iar aplicația dvs. este gata să sprijine o altă limbă.

1. Configurare

Vom utiliza o aplicație simplă pentru a experimenta localizările. Creați un nou proiect Xcode, utilizați Vizualizare individuală pentru șablon și apelați proiectul LocalizationExample.

Apoi, trebuie să creați o interfață de utilizator simplă pentru a vedea localizările noastre în acțiune. În Main.storyboard, adăugați o etichetă și o imagine. Schimbați textul etichetei în "Salut Lume!". Descărcați aceste resurse imagine, adăugați en / logo.png la proiectul dvs. Xcode (asigurați-vă Copiați articolele dacă este necesar este bifată) și afișați-o în vizualizarea imaginilor schimbând-o Imagine domeniu la logo.png. De asemenea, asigurați-vă că adăugați a Centrul orizontal în container aspectul constrângerii la ambele elemente ale interfeței utilizator.

De asemenea, trebuie să știți cum să localizați șiruri de caractere hard codate, deci mergeți mai departe și adăugați un mesaj de consolă AppDelegate.m. Adăugați următoarea instrucțiune de jurnal la applicationDidFinishLaunching:.

- (BOOL): aplicație (UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions NSLog (@ "Bună ziua, lumea!"); reveniți DA;  

Acest lucru ne oferă trei resurse pentru a localiza, o imagine, o etichetă și un șir greu codificat. Rețineți că dezvoltarea unei aplicații localizate este în mare măsură aceeași cu crearea unei aplicații non-localizate. Aveți posibilitatea să configurați vizualizările și să definiți comportamentul personalizat fără a vă îngrijora cu adevărat localizarea. Majoritatea se întâmplă după ce ai funcționalitatea de bază.

2. Internaționalizarea

Acum, când avem o aplicație de bază cu care să lucrăm, suntem gata să internaționalizăm aplicația noastră. Aici ne pregătim pentru localizarea resurselor, izolându-le de restul codului nostru. Xcode oferă capabilități extensive I18N, ceea ce face mult mai ușor localizarea unei aplicații.

Pasul 1: Pregătirea tablourilor de povești

În primul rând, să examinăm internaționalizarea interfeței de utilizare a aplicației noastre. Primul pas este de a spune Xcode care regiuni sau localuri doriți să le sprijiniți. Apasă pe LocalizationsExample proiect în Project Navigator și selectați pictograma proiect albastru din lista de tip pop-up spre partea stângă sus.

 localizări secțiunea este locul unde puteți adăuga localizări la aplicația dvs. Vom traduce proiectul nostru de exemplu în limba spaniolă, faceți clic pe semnul plus și selectați Spaniolă (e). Aceasta va deschide o fereastră de dialog care vă va întreba ce doriți să faceți cu resursele existente. Asigura-te Lanțuri localizabile este selectat pentru ambele Main.storyboard și LaunchScreen.xib după cum se arată în următoarea imagine. Clic finalizarea a continua.

Veți găsi acum două subiecte Main.storyboard, A baza storyboard și a Main.strings fişier. Primul este fișierul tău scenariu real, iar acesta din urmă este un fișier de șiruri care conține tot textul orientat spre utilizator în storyboard. Acest fișier de șiruri este ceea ce va fi în cele din urmă tradus.

 Main.storyboard fișierul este acum internațional și este gata să fie localizat.

Pasul 2: Pregătirea șirurilor codate greu

String-urile orientate spre utilizator care sunt codificate greu în clasele Objective-C / Swift necesită o prelucrare specială. Acesta este un pas necesar, de exemplu, dacă stabiliți în mod programabil textul pentru elementele interfeței utilizator din panourile dvs. storyboard.

Din fericire, internaționalizarea șirurilor codate greu este un proces simplu. Tot ce trebuie să faceți este să le înfășurați într-un NSLocalizedString macro, cum ar fi:

- (BOOL): aplicație (UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions NSString * greeting = NSLocalizedString (@ "Bună ziua, lume!"; NSLog (@ "% @", salut); reveniți DA;  

Primul argument este o cheie care indică șirul pe care îl căutați, iar al doilea (opțional) este un comentariu care va fi inclus în fișierul de fișiere exportat. Puteți utiliza chei abstracte, în stil dictionar (de ex., @"Salut"), dar consider că acest cod este mai ușor de citit dacă utilizați șirul real care urmează să fie tradus ca cheie.

În secțiunea următoare, orice NSLocalizedString apelurile vor fi scoase automat din codul nostru și adăugate la lista de șiruri care trebuie traduse.

3. Localizarea

Odată ce aplicația dvs. este internaționalizată, sunteți gata să începeți să localizați resursele. Localizarea este un proces destul de simplu în care exportați toate șirurile care trebuie traduse, transferați-le către traducătorul dvs. și le importați înapoi în proiectul dvs. Acest ciclu de export / traducere / import poate continua pe măsură ce vă dezvoltați aplicația, însă este de obicei o idee bună să finalizați majoritatea interfeței cu utilizatorul înainte de a începe procesul de localizare.

Pasul 1: Exportarea șirurilor

Xcode ușurează exportul tuturor șirurilor dvs. internaționalizate la un singur Fișier de interogare de localizare XML Format (.xliff), care este formatul standard al industriei de localizare.

Pentru a genera acest fișier, selectați LocalizationExample în Project Navigator, alege Editor> Export pentru localizare ... din meniul Xcode și selectați o cale de fișier în afara proiectului dvs. Xcode pentru a preveni orice confuzie potențială.

Făcând clic Salvați va crea un folder nou care conține un es.xliff fişier. Dacă îl deschideți, veți găsi o mulțime de informații XML care conțin informații despre fiecare șir din aplicația dvs. care trebuie localizat.

Acesta este fișierul pe care trebuie să-l trimiteți traducătorului. Vor avea instrumente speciale pentru editarea XML-ului, dar pentru exemplul nostru, să mergem și să îl editați direct. Deschis es.xliff și căutați textul "Salut Lume!". Ar trebui să găsiți două separate  elemente prezentate mai jos.

 Salut Lume! Hola, Mundo! Clasă = "IBUILabel"; text = "Bună ziua, lumea!"; ObjectID = "Cns-Fc-27j";    Salut Lume! Hola, Mundo!