IOS SDK Lokalisering med NSLocalizedString

App Store är en global marknad, och genom att lokalisera din app kommer användare i andra länder mer sannolikt att ladda ner och njuta av det. I den här iOS-handledningen går vi över hur du lokaliserar texten i din app för ytterligare språk.


Steg 1: Översättning av din text

Om du inte är flytande på det språk du vill översätta din app till, kan du vara stumped om hur du ska gå om att få detta steg gjort. Det finns några olika alternativ för översättning. Ett alternativ är att helt enkelt använda Google Translate, en gratis översättningssida som tillhandahålls av Google. Tyvärr kan automatiserade datortranslationer vara långt ifrån perfekt, men det kan fortfarande vara bättre än ingenting. Ett annat alternativ är att anställa en översättningstjänst. En snabb Internet-sökning visar att det finns många företag tillgängliga som tar texten från din app och manuellt översätter den till dig på önskat språk. Slutligen kan du försöka hitta en vän eller associate som är flytande i målspråket och be dem att översätta apptexten för dig. Tänk på att en person som också är bekant med målspråks kultur kanske kan ge dig mer exakta översättningar än någon som bara har akademisk kunskap om språket.


Steg 2: Ställa in ditt projekt

Starta Xcode och klicka på Arkiv> Nytt> Projekt. Klicka på "Application" under IOS-panelen till vänster. Klicka på ikonen "Enkel visningsprogram" och klicka sedan på "Nästa".

I fältet "Produktnamn" skriver du "LocalizationDemo" och anger ett namn för ditt företagsidentifierare, till exempel "com.mobiletuts". Välj "iPhone" från menyn "Enhetsfamilj". Avmarkera "Använd Storyboards" och "Include Unit Tests" och markera "Use Automatic Reference Counting". Klicka på "Nästa", välj en plats för att spara ditt projekt och klicka sedan på "Skapa".


Steg 3: Lägga till lokala strängar

Först lägger vi till två nya språk, franska och spanska, till appens info.plist-fil. Detta informerar iTunes om de språk som din app stöder, vilket gör att de ytterligare språken kan visas under appens namn i App Store. Klicka på "localizationDemo-info.plist". Klicka på den sista raden i filen och klicka på den grå plus-knappen i den första cellen. Skriv "Lokaliseringar" i den nya cellen. Klicka på pilen till vänster om cellen för att visa ditt ursprungliga språk, i vårt fall, engelska. Klicka på plusknappen bredvid "Lokaliseringar" och lägg till "Franska" i matrisen. Klicka på plusknappen igen och skriv "spanska".

De .strängar Fil

Därefter lägger vi till en strängfil för att lagra vår lokaliserade text. Klicka på Arkiv> Nytt> Ny fil.

Välj en iOS Resource Strings-fil och klicka på "Nästa". Se till att din fil heter "Lokaliserbar" innan du klickar på "Skapa".

Lägga till en engelsk nyckelvärdespar

Klicka på den nyskapade filen "Localizable.strings" och lägg till följande kod för att skapa en engelsk nyckelvärdespar.

 "HelloKey" = "Hej";

En nyckelvärdespar är precis vad det står, den vänstra sidan av jämliksignalen är nyckeln och den högra sidan är värdet. Vi kommer att använda nyckeln om en minut för att komma åt det associerade värdet och ange det som etikettens text.

Lägger till franska och spanska .strängar filer

Nu ska vi skapa strängfilerna för franska och spanska. Klicka på Visa> Verktyg> Visa filinspektör. Klicka och håll plus-knappen längst ner i rutan "Lokalisering". Välj "Fransk" från rullgardinsmenyn och klicka på plusknappen igen. Den här gången väljer du spanska i rullgardinsmenyn.

Lägga till ett franskt nyckelvärdespar

Observera att "Localizable.strings" har en utökad pil bredvid den; klicka på pilen för att visa de tre språken, engelska, franska och spanska. Klicka på den franska strängfilen och ändra nyckelvärdesparet till koden nedan.

 "HelloKey" = "Bonjour";

Lägga till en spansk nyckelvärdespar

Klicka på den spanska strängfilen och ändra dess nyckelvärdespar till följande kod.

 "HelloKey" = "Hola!";

Steg 4: Ställa in användargränssnittet

Klicka på "ViewController.m" filen och lägg till följande kod till viewDidLoad Metod för att skapa en etikett vars text är inställd från en lokal strängfil.

 // få lokaliserad sträng från lämplig strängfil NSString * localizedHelloString = NSLocalizedString (@ "HelloKey", @ ""); // skapa etikett - sätt textegenskap till lokaliserad sträng CGRect localizedLabel_Frame = CGRectMake (20.0f, 40.0f, 280.0f, 44.0f); UILabel * localizedLabel = [[UILabel alloc] initWithFrame: localizedLabel_Frame]; localizedLabel.text = localizedHelloString; localizedLabel.textAlignment = UITextAlignmentCenter; localizedLabel.font = [UIFont boldSystemFontOfSize: 20.0f]; // lägg till etikett för att visa [self.view addSubview: localizedLabel];

Observera att vi använde makro NSLocalizedString () för att få det lokaliserade värdet från strängfilen på lämpligt språk. Det här är sättet att ställa in texten baserat på användarens språkinställning. Som standard, NSLocalizedString () letar efter en fil med namnet "Localizable.strings". Om du namngav dina strängar, filar något annorlunda, kommer makro inte att kunna hitta strängfilen som innehåller det lokaliserade värdet.


Steg 5: Testa lokaliseringarna

Klicka på Produkt> Kör, eller klicka på pilen Kör längst upp till vänster i Xcode-fönstret. Projektet bygger med vår ursprungliga engelska text, "Hej".

Klicka på knappen Hem för att lämna appen. Klicka på Inställningar> Allmänt> Internationellt> Språk för att komma åt språkinställningarna.

Välj franska eller spanska från menyn och gå tillbaka till appen LocalizationDemo.

Se till att texten har ändrats till det nya språket.


Slutsats

Om din app är text tung och du planerar att lokalisera på många språk, är det viktigt att hålla dina nyckelvärdespar organiserat. För att se hur jag organiserar min text, ladda ner källkoden och titta på strängfilerna. Frågor eller kommentarer? Gärna lämna dem i kommentarfältet eller skicka dem direkt via Twitter.