Localizing en iOS-applikasjon i Xcode 6
21
Del
4
Del
Dette Cyber mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
Hva du skal lage
Sette en iOS søknad til ulike språk er en to-trinns prosesser. Først må du forberede din app ved å skille alle brukerne, tekst, bilder og andre ressurser som må oversettes fra resten av koden din og storyboards. Denne prosessen kalles internasjonalisering (i18n).
Når du er ferdig internasjonalisering din app, er du klar for å kopiere den. Det er der du eksportere dine ressurser og sende dem til din oversetter. Når du får de oversatte ressurser tilbake, du bare importere dem tilbake i Xcode, og appen er klar til å støtte et annet språk.
1. Oppsett
Vi kommer til å bruke et enkelt eksempel app til å eksperimentere med lokaliseringer. Opprett en ny Xcode prosjekt, bruker Enkel visning Søknad om malen, og kaller prosjektet LocalizationExample.
Deretter må vi lage et enkelt brukergrensesnitt, slik at vi kan se våre lokaliseringer i aksjon. I Main.storyboard, legge til en etikett og en bildevisning. Endre etikettens teksten til "Hello, World!". Last ned disse bilderessurser, legger no /logo.png til Xcode prosjekt (sørg Kopiere elementer hvis nødvendig er merket), og vise det i bildevisningen ved å endre sitt image felt til logo.png. Sørg også for å legge til et senter horisontalt i Container layout begrensningen til begge elementene i brukergrensesnittet.
Du må også vite hvordan du skal lokalisere hardkodede strenger så gå videre og legge en konsoll melding til AppDelegate.m. Legg til følgende logg uttalelse til applicationDidFinishLaunching :. Anmeldelser - (BOOL) program: (UIApplication *) applikasjons didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {NSLog (@ "! Hello, World"); returnere JA;}
Dette gir oss tre ressurser til å lokalisere, et bilde, en etikett, og en hardkodet streng. Legg merke til at det å utvikle en lokalisert app er i stor grad det samme som å skape en ikke-lokaliserte app. Du kan konfigurere visninger og definere tilpassede atferd uten egentlig å bry deg om lokalisering. Det meste av det som skjer etter at du har fått din grunnleggende funksjonalitet arbeids.
2. Internasjonalisering
Nå som vi har et grunnleggende program for å arbeide med, er vi klare til å internasjonalisere vår app. Det er der vi forbereder for lokalisering av ressurser ved å isolere dem fra resten av koden vår. Xcode gir omfattende i18n evner, som gjør det mye enklere å lokalisere en app
Trinn 1:. Forbereder Storyboards
Først, la oss ta en titt på internasjonalisering vår app brukergrensesnitt. Det første trinnet er å fortelle Xcode hvilke områder eller steder du ønsker å støtte. Klikk på LocalizationsExample prosjektet i prosjekt Navigator og velg blå prosjektet ikonet i hurtigmenyen til øverste venstre.
lokaliseringer delen er der du kan legge til steder til programmet ditt. Vi vil være å oversette vårt eksempel prosjektet til spansk, så klikk på plusstegnet og velger spansk (es). Dette vil åpne et dialogvindu som spør deg hva du vil gjøre med eksisterende ressurser. Sørg for localizable Strings er valgt for både Main.storyboard og LaunchScreen.xib som vist i følgende skjermbilde. Klikk Fullfør for å fortsette.
Du vil nå finne to elementer under Main.storyboard, en basen Main.storyboard filen er nå internasjonalisert og klar til å være lokalisert Bruker vendte strenger som er hardkodet inn i Objective-C /Swift klasser trenger noen spesiell behandling. Dette er et nødvendig skritt, for eksempel hvis du programma sette teksten for elementer i brukergrensesnittet i dine storyboards. Heldigvis internasjonalisering hardkodede strenger er en grei prosess. Alt du trenger å gjøre er å pakke dem i en NSLocalizedString makro, som så: Anmeldelser - (BOOL) søknad: (UIApplication *) applikasjons didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {NSString * hilsen = NSLocalizedString (@ "Hello, World! "@" En vennlig hilsen "); NSLog (@ "% @", hilsen); returnere JA;} Det første argumentet er en nøkkel som peker til strengen du leter etter, og den andre (valgfritt) argument er en kommentar som vil bli inkludert i den eksporterte strenger filen. Du kan bruke abstrakte, nøkler ordbok-stil (f.eks @ "hilsen"), men jeg synes at koden er mer lesbar hvis du bruker selve strengen som skal oversettes som nøkkelen. I neste avsnitt, noen NSLocalizedString samtaler vil automatisk bli trukket ut av koden vår og lagt til listen over strenger som må oversettes. Når appen er internasjonalisert, er du klar til å begynne å lokalisere dine ressurser. Lokalisering er en ganske enkel prosess hvor du eksportere alle strengene som må oversettes, sende dem ut til oversetter, og importere dem tilbake inn i prosjektet. Dette eksport /oversette /import syklusen kan fortsette som du utvikler din app, men det er vanligvis en god idé å sluttføre mesteparten av brukergrensesnittet før du starter lokaliseringsprosessen Xcode gjør det enkelt å eksportere alle dine internasjonaliserte strenger til et enkelt XML Lokalisering Interchange File Format (.xliff) dokumentet, som er standardformatet for lokalisering industrien. For å generere denne filen, velge LocalizationExample i prosjekt Navigator, velger Editor > Eksport For lokalisering ... fra Xcode meny, og velg en fil bane utenfor ditt Xcode prosjekt for å forhindre en eventuell forvirring. Hvis du klikker Lagre vil opprette en ny mappe som inneholder en es.xliff fil. Hvis du åpner den, vil du finne en hel masse XML som inneholder informasjon om hver streng i din app som må lokaliseres. Dette er filen som du må sende ut til oversetteren. De vil ha spesialverktøy for å redigere XML, men for vårt eksempel, la oss gå inn og redigere det direkte. Åpne es.xliff og søk etter teksten "Hello, World!". Du bør finne to separate < trans-unit > elementer som vist nedenfor Som du kan se fra < note > element, er den første teksten fra vår label element, og den andre er den hardkodet streng at vi innpakket i NSLocalizedString Endre. < target > element til «Hola, Mundo!" for begge disse. Du må kanskje legge til en < target > element til den andre. Våre oversatte strenger er nå klar til å lastes inn igjen i Xcode Når overs avslutter sitt arbeidsforhold på en .xliff fil, må du laste den tilbake i din Xcode prosjekt. Med LocalizationExample valgt i prosjektet Navigator, velger Editor > Import lokaliseringer ... fra Xcode meny. Naviger til es.xliff filen som vi oppdatert i forrige avsnitt og traff Import knappen. Vi har lagt til en spansk oversettelse til vår app. Hvis du åpner opp Main.strings, vil du se den oversatte etiketten teksten. Du vil også finne en ny Localizable.strings fil i støttefiler gruppen som inneholder inneholder oversettelse av vår NSLocalizedString meldingen. Vi skal teste disse oversettelsene i et øyeblikk, men først må vi ta en titt ved lokalisere ressurser som ikke er strenger Lokalbilde ressurser er litt annerledes enn lokalisere strenger. Velg logo.png og traff Lokaliser ... i Fil Inspector. Dette vil få opp en dialogboks som spør hvilken locale dette bildet representerer. Velg engelsk og traff Lokaliser-knappen. Den Lokalisering delen vil slå inn i en liste over boksene. Velg både engelsk og spansk boksene. Bildet er nå lokalisert, men vi trenger fortsatt å gå inn i vårt Xcode prosjekt og manuelt erstatte den spanske versjonen av bildet. Ved hjelp av Finder, gå til mappen som inneholder Xcode prosjekt og åpne LocalizationExample mappen. Du finner en en.lproj og en es.lproj mappe. Dette er hvordan en iOS-app internt representerer sine lokaliserte ressurser. Norsk ressurser er i en.lproj mappen, spanske seg i es.lproj mappen, og delte ressurser i Base.lproj mappe. Bytt es.lproj /logo.png med es /logo.png bilde som du lastet ned i begynnelsen av denne opplæringen. Kan lokaliseres andre ressurser, for eksempel data, lyd og videofiler på samme måte. Du bør alltid teste lokaliseringer på en faktisk enhet, men det er også mulig å teste dem i iOS simulator ved hjelp av ordninger. Naviger til Product > Ordningen > Edit Scheme ... menyvalget i Xcode for å få opp ordningen editor. Med Run valgt i listen til venstre, åpner du kategorien Alternativer og endre Application Language til spansk. Det er alt som skal til. Neste gang du kjører programmet i iOS simulator, vil du se den spanske versjonen av etiketten, bildevisningen, og konsollen meldingen. Lokal en iOS-applikasjonen krever ekstra arbeid , men Xcode gjør prosessen enkel og grei. I denne opplæringen, har du lært forskjellen mellom internasjonalisering og lokalisering, og du har også lært om trinnene involvert for å lokalisere strenger og ressurser på en iOS program som bruker Xcode innebygde verktøy.
storyboard og en Main.strings fil. Førstnevnte er den faktiske storyboardet fil og sistnevnte er en strenger fil som inneholder all den brukervendt tekst i dreieboken. Dette strenger filen er hva som til slutt vil bli oversatt
Trinn 2:.. Forbereder hardkodet Strings
3. Lokalisering
Trinn 1:. Eksportere Strings
. < trans-enhet id = "Cns-Fc-27j.text" > < kilden > Hei, World < /kilde > < target > Hola, Mundo <! /target > < note > Class = "IBUILabel"; text = "Hello, World!"; ObjectID = "Cns-Fc-27J"; < /note > < /trans-unit > <! - ... - ≫ < trans-enhet id = "Hello, World!" ≫ < kilden > Hei, World < /kilde > < target > Hola, Mundo <! /target > <! - Legg et < target > element - > < note > En vennlig hilsen < /note > < /trans-unit >
Trinn 2:. Importere Strings
Trinn 3:. Lokalisering Images
4. Testing lokaliseringer
Konklusjon