Das Übersetzen einer iOS-Anwendung in verschiedene Sprachen umfasst zwei Schritte. Zunächst müssen Sie Ihre App vorbereiten, indem Sie alle für den Benutzer relevanten Texte, Bilder und andere Ressourcen, die übersetzt werden müssen, vom restlichen Code und den Storyboards trennen. Dieser Prozess wird als Internationalisierung (I18N) bezeichnet..
Nachdem Sie Ihre App internationalisiert haben, können Sie sie lokalisieren. Hier exportieren Sie Ihre Ressourcen und senden sie an Ihren Übersetzer. Wenn Sie die übersetzten Ressourcen zurückerhalten, importieren Sie sie einfach wieder in Xcode und Ihre App ist bereit, eine andere Sprache zu unterstützen.
Wir werden eine einfache Beispiel-App verwenden, um mit Lokalisierungen zu experimentieren. Erstellen Sie ein neues Xcode-Projekt, verwenden Sie Einzelansicht-Anwendung für die Vorlage und rufen Sie das Projekt auf LocalizationExample.
Als Nächstes müssen wir eine einfache Benutzeroberfläche erstellen, damit wir unsere Lokalisierungen in Aktion sehen können. Im Hauptplatine, Fügen Sie eine Beschriftung und eine Bildansicht hinzu. Ändern Sie den Text der Beschriftung in "Hallo Welt!". Laden Sie diese Bildressourcen herunter, fügen Sie hinzu de / logo.png zu Ihrem Xcode-Projekt (stellen Sie sicher, dass Elemente kopieren, falls erforderlich aktiviert ist), und zeigen Sie es in der Bildansicht an, indem Sie dessen ändern Bild Feld zu logo.png. Stellen Sie außerdem sicher, dass Sie eine hinzufügen Horizontal im Container zentrieren Layouteinschränkung für beide Elemente der Benutzeroberfläche.
Sie müssen auch wissen, wie Sie hartcodierte Zeichenfolgen lokalisieren, fügen Sie also eine Konsolennachricht hinzu AppDelegate.m. Fügen Sie die folgende Protokollanweisung zu hinzu applicationDidFinishLaunching:
.
- (BOOL) Anwendung: (UIApplication *) Anwendung didFinishLaunchingWithOptions: (NSDictionary *) launchOptions NSLog (@ "Hello, World!"); JA zurückgeben;
Dies gibt uns drei Ressourcen zum Lokalisieren, ein Bild, eine Beschriftung und eine hart codierte Zeichenfolge. Beachten Sie, dass das Entwickeln einer lokalisierten App im Wesentlichen mit dem Erstellen einer nicht lokalisierten App identisch ist. Sie können Ansichten konfigurieren und benutzerdefiniertes Verhalten definieren, ohne sich wirklich um die Lokalisierung zu kümmern. Das meiste passiert, nachdem Sie Ihre grundlegenden Funktionen zum Laufen gebracht haben.
Jetzt, da wir eine Basisanwendung haben, mit der wir arbeiten können, können wir unsere App internationalisieren. Hier bereiten wir uns auf die Lokalisierung von Ressourcen vor, indem wir sie vom Rest unseres Codes isolieren. Xcode bietet umfangreiche I18N-Funktionen, die das Lokalisieren einer App erheblich erleichtern.
Lassen Sie uns zunächst einen Blick auf die Internationalisierung der Benutzeroberfläche unserer App werfen. Der erste Schritt besteht darin, Xcode mitzuteilen, welche Regionen oder Gebietsschemas Sie unterstützen möchten. Drücke den LocalizationsExample Projekt in der Projektnavigator und wählen Sie das blaue Projektsymbol in der Popup-Liste oben links.
Das Lokalisierungen In diesem Abschnitt können Sie Ihrer App Gebietsschemas hinzufügen. Wir übersetzen unser Beispielprojekt ins Spanische. Klicken Sie auf das Pluszeichen und wählen Sie Spanisch (es). Daraufhin wird ein Dialogfenster geöffnet, in dem Sie gefragt werden, was Sie mit Ihren vorhandenen Ressourcen tun möchten. Stelle sicher Lokalisierbare Zeichenfolgen ist für beide ausgewählt Hauptplatine und LaunchScreen.xib wie im folgenden Screenshot gezeigt. Klicken Fertig weitermachen.
Sie finden jetzt zwei Elemente unter Hauptplatine, ein Base Storyboard und a Hauptstränge Datei. Ersteres ist Ihre eigentliche Storyboard-Datei, und letzteres ist eine Zeichenfolge-Datei, die den gesamten Text enthält, der für den Benutzer im Storyboard angezeigt wird. Diese String-Datei wird schließlich übersetzt.
Das Hauptplatine Die Datei ist jetzt internationalisiert und kann lokalisiert werden.
Benutzerorientierte Zeichenfolgen, die in Ihren Objective-C / Swift-Klassen hartcodiert sind, erfordern eine besondere Verarbeitung. Dies ist zum Beispiel ein notwendiger Schritt, wenn Sie den Text für Elemente der Benutzeroberfläche in Ihren Storyboards programmgesteuert festlegen.
Glücklicherweise ist die Internationalisierung von hart codierten Strings ein unkomplizierter Prozess. Alles, was Sie tun müssen, ist, sie in eine NSLocalizedString
Makro wie folgt:
- (BOOL) Anwendung: (UIApplication *) Anwendung didFinishLaunchingWithOptions: (NSDictionary *) launchOptions NSString * greeting = NSLocalizedString (@ "Hallo, Welt!", @ "Eine freundliche Begrüßung"); NSLog (@ "% @", Begrüßung); JA zurückgeben;
Das erste Argument ist ein Schlüssel, der auf die Zeichenfolge verweist, nach der Sie suchen, und das zweite (optionale) Argument ist ein Kommentar, der in die exportierte String-Datei eingefügt wird. Sie können abstrakte Schlüsselwörter im Wörterbuchstil verwenden (z., @"Gruß"
), aber ich finde diesen Code besser lesbar, wenn Sie die eigentliche zu übersetzende Zeichenfolge als Schlüssel verwenden.
Im nächsten Abschnitt NSLocalizedString
Anrufe werden automatisch aus unserem Code gezogen und der Liste der zu übersetzenden Zeichenfolgen hinzugefügt.
Sobald Ihre App internationalisiert ist, können Sie mit der Lokalisierung Ihrer Ressourcen beginnen. Die Lokalisierung ist ein ziemlich einfacher Prozess, bei dem Sie alle zu übersetzenden Zeichenfolgen exportieren, an Ihren Übersetzer übergeben und sie wieder in Ihr Projekt importieren. Dieser Export-, Übersetzungs- und Importzyklus kann während der Entwicklung Ihrer App fortgesetzt werden. In der Regel ist es jedoch ratsam, den Großteil Ihrer Benutzeroberfläche abzuschließen, bevor Sie mit der Lokalisierung beginnen.
Xcode macht es einfach, alle Ihre internationalisierten Zeichenfolgen in eine einzige zu exportieren XML-Lokalisierungsaustauschdatei Format (.xliff) Dokument, das das Standardformat für die Lokalisierungsbranche ist.
Um diese Datei zu erstellen, wählen Sie LocalizationExample in dem Projektnavigator, wählen Editor> Export für Lokalisierung… Wählen Sie im Xcode-Menü einen Dateipfad außerhalb Ihres Xcode-Projekts, um mögliche Verwechslungen zu vermeiden.
Klicken Sie auf sparen erstellt einen neuen Ordner mit einem es.xliff Datei. Wenn Sie es öffnen, finden Sie eine ganze Menge XML mit Informationen zu jedem String in Ihrer App, der lokalisiert werden muss.
Dies ist die Datei, die Sie an Ihren Übersetzer schicken müssen. Sie verfügen über spezielle Werkzeuge zum Bearbeiten von XML. In unserem Beispiel wollen wir sie jedoch direkt bearbeiten. Öffnen es.xliff und suchen Sie nach dem Text "Hallo Welt!". Sie sollten zwei getrennt finden
Elemente wie unten gezeigt.
Hola, Mundo! Klasse = "IBUILabel"; text = "Hallo, Welt!"; ObjectID = "Cns-Fc-27j"; Hola, Mundo!