iOS SDK lokalisatie met NSLocalizedString

De App Store is een wereldwijde markt en door uw app te lokaliseren, zullen gebruikers in andere landen waarschijnlijk sneller downloaden en ervan genieten. In deze iOS-zelfstudie bespreken we hoe u de tekst in uw app kunt lokaliseren voor extra talen.


Stap 1: Uw tekst vertalen

Tenzij u de taal waarin u uw app wilt vertalen, vloeiend spreekt, is het mogelijk dat u niet weet hoe u deze stap kunt doen. Er zijn een paar verschillende opties voor vertaling. Een optie is om Google Translate te gebruiken, een gratis vertaalsite die wordt aangeboden door Google. Helaas kunnen geautomatiseerde computervertalingen verre van perfect zijn, maar dit kan nog steeds beter zijn dan niets. Een andere optie is om een ​​vertaalservice te huren. Een snelle zoekopdracht op internet zal aantonen dat er veel bedrijven beschikbaar zijn die de tekst uit uw app zullen gebruiken en deze handmatig voor u in de gewenste taal zullen vertalen. Ten slotte kunt u proberen een vriend of kennis te vinden die de doeltaal vloeiend spreekt en hen vraagt ​​de app-tekst voor u te vertalen. Houd er rekening mee dat een persoon die ook bekend is met de cultuur van de doeltaal, u wellicht nauwkeuriger vertalingen kan leveren dan iemand die alleen academische kennis van de taal heeft..


Stap 2: uw project opzetten

Start Xcode en klik op Bestand> Nieuw> Project. Klik op "Toepassing" onder het iOS-paneel aan de linkerkant. Klik op het pictogram "Single View Application" en klik vervolgens op "Volgende".

Typ 'LocalizationDemo' in het veld 'Productnaam' en voer een naam in voor uw bedrijfsidentificatie, zoals 'com.mobiletuts'. Kies 'iPhone' in het menu 'Apparaatfamilie'. Verwijder het vinkje bij "Storyboards gebruiken" en "Inclusief eenheidstests" en vink "Gebruik automatische referentietelling" aan. Klik op "Volgende", kies een locatie om uw project op te slaan en klik vervolgens op "Maken".


Stap 3: Gelokaliseerde strings toevoegen

Eerst voegen we twee nieuwe talen, Frans en Spaans, toe aan het info.plist-bestand van de app. Dit informeert iTunes over de talen die uw app ondersteunt, waardoor de extra talen onder de naam van uw app in de App Store kunnen worden weergegeven. Klik op "localizationDemo-info.plist". Klik op de laatste rij van het bestand en klik op de grijze plusknop in de eerste cel. Typ 'Localizations' in de nieuwe cel. Klik op de pijl links van de cel om uw oorspronkelijke taal weer te geven, in ons geval Engels. Klik op de plusknop naast 'Lokalisaties' en voeg 'Frans' toe aan de array. Klik nogmaals op de plusknop en typ 'Spaans'.

De .strings het dossier

Vervolgens voegen we een tekenreeksbestand toe om onze gelokaliseerde tekst op te slaan. Klik op Bestand> Nieuw> Nieuw bestand.

Kies een iOS Resource Strings-bestand en klik op "Volgende". Zorg ervoor dat uw bestand de naam "Localizable" heeft voordat u op "Maken" klikt.

Een Engels sleutel / waarde-paar toevoegen

Klik op het nieuw gemaakte bestand "Localizable.strings" en voeg de volgende code toe om een ​​Engels sleutel / waarde-paar te maken.

 "HelloKey" = "Hallo";

Een sleutel / waarde-paar is precies wat het zegt, de linkerkant van het gelijkteken is de sleutel en de rechterkant is de waarde. We zullen de sleutel in een minuut gebruiken om toegang te krijgen tot de bijbehorende waarde en deze instellen als de tekst van het label.

Frans en Spaans toevoegen .strings bestanden

Nu maken we de stringsbestanden voor Frans en Spaans. Klik op Beeld> Hulpprogramma's> Show File Inspector. Houd de plus-knop onder aan het venster "Lokalisatie" ingedrukt. Selecteer "Frans" in het vervolgkeuzemenu en klik nogmaals op de plusknop. Selecteer deze keer "Spaans" in het vervolgkeuzemenu.

Een Frans sleutel / waarde-paar toevoegen

Merk op dat "Localizable.strings" een expandeerpijl ernaast heeft; klik op de pijl om de drie talen te bekijken, Engels, Frans en Spaans. Klik op het Franse tekenreeksbestand en wijzig het sleutel / waarde-paar in de onderstaande code.

 "HelloKey" = "Bonjour";

Een Spaans sleutel / waarde-paar toevoegen

Klik op het Spaanse tekenreeksbestand en wijzig het sleutel / waarde-paar in de volgende code.

 "HelloKey" = "Hola!";

Stap 4: De gebruikersinterface instellen

Klik op het bestand "ViewController.m" en voeg de volgende code toe aan de viewDidLoad methode om een ​​label te maken waarvan de tekst is ingesteld op basis van een gelokaliseerd stringsbestand.

 // plaats gelokaliseerde tekenreeks uit het juiste tekenreeksbestand NSString * localizedHelloString = NSLocalizedString (@ "HelloKey", @ ""); // create label - stel teksteigenschap in op gelokaliseerde string 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]; // label toevoegen om te bekijken [self.view addSubview: localizedLabel];

Merk op dat we de macro NSLocalizedString () hebben gebruikt om de gelokaliseerde waarde uit het stringsbestand van de juiste taal te halen. Dit is het middel voor het instellen van de tekst op basis van de taalinstelling van de gebruiker. Standaard, NSLocalizedString () zoekt naar een bestand met de naam "Localizable.strings". Als u het stringsbestand iets anders hebt genoemd, kan de macro het stringsbestand met de gelokaliseerde waarde niet vinden.


Stap 5: De lokalisaties testen

Klik op Product> Uitvoeren of klik op de pijl Uitvoeren in de linkerbovenhoek van het Xcode-venster. Het project is opgebouwd met onze originele Engelse tekst, "Hallo".

Klik op de startknop om de app te verlaten. Klik op Instellingen> Algemeen> Internationaal> Taal om de taalinstellingen te openen.

Kies Frans of Spaans in het menu en ga terug naar de LocalizationDemo-app.

Zorg dat de tekst is gewijzigd in de nieuwe taal.


Conclusie

Als uw app tekst zwaar is en u van plan bent om voor vele talen te lokaliseren, is het belangrijk om uw sleutel / waarde-paren te organiseren. Om te zien hoe ik mijn tekst orden, download ik de broncode en bekijk ik de stringsbestanden. Vragen of opmerkingen? Je kunt ze gerust achterlaten in het gedeelte Reacties of ze rechtstreeks via Twitter verzenden.