Start » Tutorials » Anleitung zur Lokalisierung von iPhone-Programmen

Anleitung zur Lokalisierung von iPhone-Programmen

Anleitung zur Lokalisierung von iPhone-Programmen

Diese Anleitung wird Ihnen zeigen, wie Sie ein einsprachiges, mit Xcode erstelltes iPhone-Programm in eine mehrsprachige Anwendung verwandeln.

Brauchen Sie eine Übersetzung für Ihre iPhone-App?

ICanLocalize bietet professionelle Übersetzungen für iPhone-Apps.

Laden Sie Ihre Ressourcedatei hoch und erhalten Sie sofort einen endgültigen Kostenvoranschlag.

iPhone-Ressourcendatei:

Dateiformat:

Aus der Sprache:


Wenn Sie bereit sind, loszulegen, müssen Sie bloß noch einen Account erstellen.

Richten Sie dann ein Software-Lokalisierungs-Projekt an und folgen Sie den Schritten, die Ihnen der Einrichtungsassistent anzeigt.

Account erstellen

Einleitung

Die Lokalisierung eines iPhone-Programms erfordert diese Schritte:

  1. Vorbereiten Ihrer Ressourcedateien zur Lokalisierung.
  2. Extrahieren aller im Programm verwendeten Texte in Ressourcedateien.
  3. Übersetzen der Ressourcedateien.
  4. Wiedereinfügen der Ressourcedateien ins Programm.

Da iPhones für eine mehrsprachige Verwendung ausgelegt sind, weiß das Telefon schon, was es zu tun hat, sobald Ihr Programm in mehreren Sprachen verfügbar ist. Es wird die Texte auf der grafischen Benutzeroberfläche in der richtigen Sprache anzeigen, gemäß der Spracheinstellungen des Telefons.

Alle iPhone-Programme werden unter Verwendung von Unicode-Texten erstellt, die als UTF-16 kodiert sind. Der iPhone-Simulator unterstützt dieses Format und wird Ihnen eine Vorschau auf das übersetzte Programm ermöglichen.

1. Die Ressourcen in Xcode lokalisierbar machen

Xcode muss wissen, dass Ihr Projekt mehrsprachige Ressourcedateien enthält.

Die einfachste Möglichkeit, eine Datei mit Xcode lokalisierbar zu machen, ist die Datei einfach aus dem Projekt zu entfernen und sie in Finder in das lokalisierte Verzeichnis zu verschieben. Achten Sie darauf, auf „Verweise löschen“ zu klicken und nicht auf „In den Papierkorb verschieben“, wenn Sie die Datei aus dem Projekt entfernen, sodass die Datei selbst nicht gelöscht wird, sondern nur der Verweis auf sie im Projekt entfernt wird.

Wenn Ihre Quell-Ressourcedateien auf Englisch sind, erstellen Sie einen neuen Ordner namens en.lproj in Ihrem Projektordner. Wenn Ihre Quelldateien in einer anderen Sprache sind, ersetzen Sie das en mit dem zweibuchstabigen Ländercode.

Verschieben Sie die Ressourcedatei in das neue Lokalisierungsverzeichnis und ziehen Sie die Ressource in das Xcode-Projekt. Xcode wird die Ressource jetzt als in diese Sprache lokalisiert anerkennen. Wiederholen Sie dies für alle anderen Ressourcedateien, die Sie lokalisieren lassen möchten.

2. Ihre Interface Builder-Dateien lokalisieren

Extrahieren der Strings

Um die Strings aus den Ressourcedateien von Interface Builder zu extrahieren, müssen Sie ein Tool wie ibtool benutzen, das in der Standardinstallation des Entwicklerpakets enthalten ist.

Zum Extrahieren der Dateien, öffnen Sie Terminal im Projektverzeichnis und führen Sie folgenden Befehl aus:
ibtool --generate-strings-file Example.strings en.lpoj/Example.xib
So wird die Datei Example.strings erstellt. Wenn Sie sie öffnen, sehen Sie einige Objekt-String-Wertepaare.

Gehen Sie das Dokument sorgfältig durch und überprüfen Sie seine Inhalte. Sie können überflüssige Strings entfernen, die nicht übersetzt werden müssen.

Umgang mit doppelt vorhandenen Strings

Die Ressourcedatei enthält eventuell doppelte Strings, wie beispielsweise die Bezeichnungen für Buttons in unterschiedlichen Zuständen.

Einige doppelt vorhandenen Strings müssen nur einmal übersetzt werden, aber andere doppelte Strings haben verschiedene Übersetzungen. Dieselbe Buttonbezeichnung in verschiedenen Zuständen sollte eindeutig dieselbe Übersetzung haben. Strings können jedoch an einer Stelle ein Nomen sein und an anderer Stelle ein Verb.

Sie können überflüssige doppelte Strings aus der Ressourcedatei entfernen (solche, die dieselbe Übersetzung haben sollten) oder sie dort lassen und dem Übersetzer sagen, dass er sie wie doppelte Strings behandeln soll.

Das iPhone-Übersetzungssystem von ICanLocalize kann doppelt vorhandene Strings automatisch aus den Ressourcedateien entfernen, wodurch diese Aufgabe vereinfacht wird.

3. Die in die Ressourcedateien eingebetteten Texte extrahieren

Für gewöhnlich enthalten iPhone-Programme zwei Arten von Text. Zum einen die Benutzeroberfläche des Programms (die von Interface Builder verwaltet wird) und zum anderen eingebettete Strings, die in den Codezeilen selbst erscheinen.

Die Strings in der Benutzeroberfläche sind bereits in einer Ressourcedatei zusammengestellt und wir müssen sicherstellen, dass der Code selbst nur Strings benutzt, die ebenfalls von einer Ressourcedatei gelesen werden.

Ein in einer Codezeile enthaltener String würde so aussehen:

@"Hello World!"

Wir müssen die Quelldateien editieren und alle in den Codezeilen enthaltenen Strings ändern, damit sie so aussehen:

NSLocalizedString(@"Hello World", @"hello message")

Jetzt ist „Hello World“ eigentlich ein Kürzel. Die Funktion NSLocalizedString wird den String, der ausgegeben wird, erstellen. Sie wird den lokalisierten String gemäß der Sprache des Programms ausgeben. NSLocalizedString wird die Localizable.strings-Datei aus dem Lokalisierungsverzeichnis lesen.

Gehen Sie Ihren gesamten Code durch und entscheiden Sie, welche Strings die Benutzer sehen und darum übersetzt werden sollten. Lokalisieren Sie keine Strings, die die Benutzer nie zu Gesicht bekommen, wie zum Beispiel die Schlüssel im NSDictionary (es sei denn natürlich, Sie zeigen diese Schlüssel im Programm an).

Hinzufügen von Kommentaren

Haben Sie dieses „hello message“ (das zweite Argument) bemerkt?

Das ist ein Kommentar, der in die Ressourcedatei eingefügt wird und den auch der Übersetzer sehen kann. Es ist sehr wichtig an den Stellen, an denen der Text nicht selbsterklärend ist, Kommentare einzufügen. So weiß der Übersetzer, der Ihr Programm übersetzt, wofür der Text benutzt wird und wie er richtig übersetzt wird.

Erstellen einer Localizable.strings-Datei

genstrings wird alle zu übersetzenden Strings aus der Ressourcedatei einholen und die Localizable.strings-Datei erstellen. Um es auszuführen, öffnen Sie Terminal, rufen Sie das Projektverzeichnis auf und starten Sie folgenden Befehl:

genstrings -o en.lproj *.m

Dies wird alle Schlüssel aus den NSLocalizedString-Befehlen ziehen und sie in einer Localizable.string-Datei im en.lproj-Lokalisierungsverzeichnis zusammen stellen. Wenn sich Ihre Klassendatei in einem anderen Verzeichnis befindet, achten Sie darauf, sie am Ende dieses Befehls zu integrieren (z. B. Klassen/*.m).

4. Die Ressourcedateien übersetzen

Jetzt sollten Sie zwei Ressourcedateien haben. Die Interface Builder-Ressourcedatei (erstellt von ibtool) und die Ressourcedatei mit den eingebetteten Strings (erstellt von genstrings).

Sie können beide Dateien zur Übersetzung durch ICanLocalize einsenden.

Wir haben ein spezielles Tool zum Lokalisieren von iPhone-Ressourcedateien, mit dem iPhone-Programme übersetzt werden können, ohne sich mit technischen Aufgaben aufzuhalten. Dieses Tool wird Ihre Ressourcedateien lesen, die zu übersetzenden Texte extrahieren und die übersetzten Ressourcedateien erstellen.

Sie können die Ressourcedateien in ihrer ursprünglichen UTF-16-Kodierung hochladen. Das Tool wird Label- und String-Paare extrahieren (sowie Kommentare, falls vorhanden). Die Übersetzer übersetzen dann nur die Strings.

Professionelle (menschliche) ÜbersetzerInnen, die weit reichende Erfahrung bei der Lokalisierung von iPhone-Programmen haben, werden die Strings übersetzen. Sie werden direkt mit Ihren ÜbersetzerInnen kommunizieren, um sicherzustellen, dass die Übersetzungen nicht nur präzise sind, sondern auch an die Kultur und Bräuche anderer Länder angepasst werden.

Sie müssen einen (kostenlosen) Account erstellen. Anschließend erstellen Sie ein iPhone-Übersetzungsprojekt, laden Ihre Ressourcedateien hoch, wählen aus, in welche Sprachen übersetzt werden soll, und zahlen für die Übersetzung. Sobald die Übersetzungen fertig sind, werden Sie die lokalisierten Ressourcedateien herunterladen und wieder in Ihr Programm importieren können.

Und selbst nachdem die Übersetzung schon lange fertig ist, werden unsere ÜbersetzerInnen Ihnen gern helfen, falls Sie das Programm irgendwann aktualisieren oder verändern.

5. Die Übersetzung ins iPhone-Programm importieren

Erstellung der lokalisierten xib

Sobald Sie Ihre übersetzten Strings zurück erhalten haben, werfen Sie Terminal noch mal an und benutzen Sie es, um die lokalisierte Kopie der xib zu erstellen.

Vergewissern Sie sich zunächst, dass Sie ein Verzeichnis für die Lokalisierung, die Sie gerade erhalten haben, erstellt haben, zum Beispiel „fr.lproj“. Verschieben Sie die Datei der übersetzten Strings in dieses Lokalisierungsverzeichnis.

Wenn Ihre Quellsprache beispielsweise Englisch ist, rufen Sie Ihr Projektverzeichnis auf, öffnen Terminal und starten folgenden Befehl:

ibtool --strings-file fr.lproj/Example.strings en.lproj/Example.xib –write fr.lproj/Example.xib

So wird die englisch-lokalisierte Interface Builder-Datei in das andere Lokalisierungsverzeichnis kopiert und ersetzt die Werte aller Objekte durch die in den übersetzten Stringdateien.

Jetzt haben Sie eine lokalisierte .xib, doch die Datei ist noch nicht startklar.

Hinzufügen der lokalisierten Datei zu Xcode

Ziehen Sie die frisch lokalisierte .xib-Datei in Ihr Projekt in Xcode. Stellen Sie sicher, dass Sie die Datei nicht in die bestehende Lokalisierung ziehen.

Richtiger Platz zum Ablegen der .xib-Datei (Zum Vergrößern klicken) Falscher Platz zum Ablegen der .xib-Datei (zum Vergrößern klicken)
Richtiger Platz zum Ablegen der .xib-Datei Falscher Platz zum Ablegen der .xib-Datei

Überprüfen der übersetzten Interface Builder-Datei

Öffnen Sie die übersetzte Datei im Interface Builder und gehen Sie alles durch. Oft hat sich die Länge der einzelnen Strings stark verändert. Die Übersetzung aus dem Englischen ins Deutsche und Französische ist häufig 50% länger als der Ausgangstext. Sie müssen das Layout eventuell etwas angleichen, um sicherzustellen, dass alles sichtbar ist.

Wenn Sie manuell Duplikate entfernt haben, müssen diese nun wieder eingefügt werden, indem sie die übersetzten Strings duplizieren. Wenn beispielsweise zwei Buttons dieselbe Bezeichnung haben, und Sie einen der Buttons aus der .strings-Datei entfernt haben, die Sie zuvor erstellt haben, müssen Sie nun die Bezeichnung dieses Buttons, die Sie übersetzen lassen haben, kopieren.

Dies müssen Sie nur dann tun, wenn Sie die .strings-Datei editiert haben, bevor Sie sie zum Übersetzen eingeschickt haben. Das ICanLocalize-System kann Duplikate im Vorfeld aus dem zu übersetzenden Text entfernen und sie in die übersetzte Ressourcedatei wieder einfügen.

Ihr i-Phone-Programm sollte jetzt mehrsprachig laufen! Aber warten Sie, einen Schritt gibt es noch.

6. Die Übersetzung auf einem i-Phone testen.

Nachdem alles erledigt wurde, haben Sie ein mehrsprachiges Programm.

Um es mit einem richtigen Handy zu testen, müssen Sie die Sprache des Geräts ändern. Dazu können Sie das Tutorial von Apple zum Umschalten der iPhone-Sprachen benutzen.

Nun sind Sie fast bereit, es zu veröffentlichen. Denken Sie nur daran, es zu testen.

Hier sind einige Tipps, worauf Sie achten sollten:

Problem Was passieren kann Wie Sie es beheben können
Die übersetzten Strings haben Überlänge Deutsch, Französisch, Spanisch und andere europäische Sprachen sind normalerweise 120% bis 150% so lang wie der englische Text. Asiatische Sprachen sind für gewöhnlich 50%-70% so lang. Sie sollten die grafische Benutzeroberfläche an Strings in anderen Größen anpassen. Das iPhone-Lokalisierungssystem von ICanLocalize überprüft die Stringlänge und warnt Sie bei Strings, die entweder zu lang oder zu kurz sind.
Formatierungszeichen fehlen Viele Strings enthalten Platzhalter für Daten, wie beispielsweise %s für Text und %d für Zahlen. Andere Strings enthalten HTML-Code. Wenn die Übersetzung nicht dieselbe Formatierung enthält, tritt ein Fehler im Programm auf. In unserem Übersetzungssystem können Sie ‚Pflicht‘-Sequenzen eingeben. So wird sichergestellt, dass die Übersetzungen dieselben Sequenzen wie die Originale enthalten. Ansonsten sollten Sie alle Strings manuell überprüfen und sicherstellen, dass die Formatierungszeichen übereinstimmen.
Übersetzung im falschen Zusammenhang Es kann immer sein, dass der Übersetzer nicht genau verstanden hat, was ein String bedeutet. Bei Programmen, die kurze, nicht anschauliche Strings enthalten, tritt dies häufiger auf als sonst. Senden Sie dem Übersetzer, bevor er mit der Übersetzungsarbeit beginnt, eine vollständige Beschreibung des Programms. Durch Hinzufügen von Kommentaren zu Strings stellen Sie sicher, dass Sie eine ausgezeichnete Übersetzung erhalten.

Fehlerbehebung

Wenn Strings aus Ihrer Localizable.strings-Datei in der übersetzten Datei vorhanden sind, aber nicht auf dem iPhone lokalisiert werden, überprüfen Sie die Zeichencodierung der Datei.

Im Gegensatz zum iPhone-Simulator erkennt das iPhone nur String-Dateien, die das UTF-16-Format haben. Testen Sie Ihre Lokalisierung immer auf dem Gerät, da der Simulator und das iPhone nicht immer gleich reagieren.

Die übersetzten Ressourcedateien, die Sie von ICanLocalize herunterladen, sind in UTF-16 kodiert. Sie sind in gzip-Archiven enthalten, um sicherzustellen, dass Ihr Browser sie während des Downloads nicht verändert.

Aktualisierung der Übersetzung, wenn das iPhone-Programm weiterentwickelt wird

ICanLocalize macht es Ihnen einfach, Ihre Übersetzungen auf dem neuesten Stand zu halten. Wenn das iPhone-Programm weiterentwickelt wird, werden neue Strings erstellt und bereits bestehende Strings verändern sich eventuell.

Um die Übersetzungen zu aktualisieren, lassen Sie genstrings erneut durchlaufen, damit eine neue Localizable.strings-Datei erstellt werden kann. Lassen Sie dann ibtool erneut laufen, um neue Stringdateien zu erzeugen.

Laden Sie schließlich die neue Ressourcedatei in Ihr bestehendes Projekt bei ICanLocalize hoch. Das System wird neue oder veränderte Strings erkennen und nur diese übersetzen lassen. Sie müssen nur für die Aktualisierung der Übersetzung zahlen und nicht für die Übersetzung von Null an.

Achtung: Wenn sich ein String verändert, muss er ganz und gar noch mal übersetzt werden. Um die Kosten für die Aktualisierung von Übersetzungen zu verringern, empfehlen wir Ihnen, große Strings in mehrere kleinere aufzuteilen. So ist der Teil, der erneut übersetzt werden muss, wenn Sie Änderungen vornehmen, kleiner und kostet weniger. Die Strings sollten groß genug sein, damit die Bedeutung einzelner Strings eindeutig ist, jedoch nicht zu groß, damit es nicht teuer ist, sie aktualisieren zu lassen.

Brauchen Sie eine Übersetzung für Ihr iPhone-Programm?

ICanLocalize bietet professionelle Übersetzungen, die für iPhone-Programme optimiert sind. Wir können Ihnen helfen, Ihr iPhone-Programm schnell, einfach und zu Tiefstpreisen mehrsprachig zu machen.

Erfahrene ÜbersetzerInnen, die in ihrer Muttersprache schreiben, werden Ihr Programm übersetzen und Ihnen helfen, weltweit mehr Umsätze zu erzielen.

Erstellen Sie einen Account und legen Sie los oder Holen Sie sich ein kostenloses Sofortangebot