iOS Internationalisierungs- und Lokalisierungsleitfaden + Demo-App

Erfahren Sie, wie Sie Ihre iOS-App für die Lokalisierung vorbereiten, sie mit KI übersetzen und Übersetzungen wieder in Xcode einfügen – alles mithilfe einer SwiftUI-Demo-App.

Die iOS-Lokalisierung ist der Prozess der Anpassung des Textes, der Formatierung und der Assets Ihrer App, um mehrere Sprachen und Regionen zu unterstützen.

Dieser Leitfaden verwendet eine Demo-App, um Sie durch den gesamten Prozess zu führen, von den Vorbereitungen in Xcode bis zur Erstellung und Integration von Übersetzungen in Ihr Projekt. Unsere Demo-App, Bookshelf, ist eine einfache Buchverfolgungs-App, die die Lokalisierungsszenarien abdeckt, auf die Sie am ehesten stoßen werden: UI-Strings, Pluralisierung und Test-Locales.

Wir werden mit SwiftUI und Xcode 15+ arbeiten und String Catalogs als primäres Lokalisierungsformat verwenden.

Teil 1: iOS-Lokalisierung verstehen

Bevor Sie in Xcode eintauchen, lohnt es sich zu verstehen, was Lokalisierung tatsächlich beinhaltet und was sie von Internationalisierung unterscheidet.

Internationalisierung vs. Lokalisierung in iOS – Was ist der Unterschied?

Internationalisierung (i18n) und Lokalisierung (l10n) sind zwei getrennte Phasen, die in dieser Reihenfolge ablaufen müssen.

Internationalisierung ist die technische Grundlage. Sie bedeutet, Ihren Code so zu strukturieren, dass Text, Bilder und Formatierungen je nach Locale variieren können, ohne Codeänderungen zu erfordern. Dies tun Sie einmal, idealerweise vor Ihrer ersten Veröffentlichung.

Lokalisierung ist die fortlaufende Arbeit, die folgt: Übersetzungen schreiben, Layouts anpassen und Locale-spezifische Assets für jede Sprache bereitstellen, die Sie unterstützen möchten.

Internationalisierung (i18n)Lokalisierung (l10n)
Was es istVorbereitung Ihres Codes für die LokalisierungAnpassung Ihrer App für eine bestimmte Locale
WannVor Ihrer ersten VeröffentlichungLaufend, pro Sprache
WerEntwicklerEntwickler und Übersetzer
BeispieleExtrahieren von Strings, Verwendung von Locale-sensitiven FormatierernÜbersetzen von Strings, Lokalisieren von Screenshots

Der häufigste Fehler besteht darin, die Lokalisierung als eine Aufgabe nach dem Start zu behandeln, nur um dann festzustellen, dass die Codebasis nicht dafür bereit ist. Das Beheben von festcodierten Strings, Layouts mit fester Richtung und nicht-Locale-sensitiven Formatierern in einer bestehenden App dauert viel länger, als von Anfang an mit Blick auf die Lokalisierung zu entwickeln.

Teil 2: Einrichten Ihres Xcode-Projekts

Wir werden mit Bookshelf arbeiten, einer einfachen Demo-App, die es Benutzern ermöglicht, zu verfolgen, wie viele Bücher sie gelesen haben. Sie ist mit SwiftUI erstellt und bewusst minimalistisch gehalten.

Demo-iOS-App

Am Ende dieses Leitfadens wird BookShelf in Englisch, Spanisch und Arabisch laufen, Plural-Strings in allen drei Sprachen korrekt behandeln und sein Layout für arabische Leser automatisch spiegeln.

Schritt 1

Lokalisierung aktivieren

Öffnen Sie BookShelf in Xcode und wählen Sie die Projektdatei im Navigator aus. Scrollen Sie unter dem Tab Info zum Abschnitt Localizations. Englisch ist bereits als Basissprache aufgeführt. Klicken Sie auf die Schaltfläche +, um Ihre erste Sprache hinzuzufügen. Für diese Demo fügen wir Spanisch und Arabisch hinzu.

Sprachen in Xcode hinzufügen

Schritt 2

String Catalog erstellen

Fügen Sie als Nächstes einen String Catalog hinzu.

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie New File from Template.
  2. Suchen Sie nach String Catalog und fügen Sie es hinzu. Der Standardname ist Localizable.xcstrings. Sie müssen ihn nicht ändern.
  3. Erstellen Sie das Projekt einmal mit Cmd+B. Xcode scannt Ihren Code, findet jeden lokalisierbaren String und füllt den Katalog automatisch aus.

Schritt 3

Strings zur Lokalisierung markieren

Nachdem Sie das Projekt erstellt haben, öffnen Sie Localizable.xcstrings und Sie werden sehen, dass Xcode bereits jedes String-Literal aus Ihren SwiftUI-Ansichten extrahiert und mit ihren englischen Werten in den Katalog aufgenommen hat. Für die meisten Strings ist das alles, was Sie tun müssen.

Projekt erstellen

Es gibt ein paar Muster, bei denen Xcode dies nicht automatisch tun kann, und beide schlagen stillschweigend fehl, wobei die App einfach den unübersetzten String ohne Warnung anzeigt.

Tipp 1: Vermeiden Sie die Übergabe von Variablen an Text

Wenn Sie eine Variable an eine Textansicht anstelle eines String-Literals übergeben, behandelt SwiftUI sie als einfachen String und überspringt die Katalogsuche vollständig.

// NOT localized
let title = "welcome_title"
Text(title)

// Localized correctly
Text(LocalizedStringKey(title))

Tipp 2: Verwenden Sie String(localized:) außerhalb von Ansichten

Für Strings, die Sie in einem View Model, einer Hilfsfunktion oder an einem beliebigen Ort außerhalb einer SwiftUI-Ansicht lokalisieren müssen, verwenden Sie String(localized:) anstelle eines einfachen Strings.

let errorMessage = String(localized: "error_generic")

Schritt 4

Plural- und Gerätevarianten hinzufügen

Strings benötigen manchmal unterschiedliche Versionen je nach Kontext. Dazu gehören Pluralformen, die sich mit einer Zahl ändern, oder Text, der sich je nach Gerät unterscheidet. Sie können beides direkt im String Catalog verwalten.

Pluralisierung

BookShelf, unsere Demo-App, zeigt die Anzahl der Bücher im Regal des Benutzers an. Im Englischen ist das einfach: „1 book“ vs. „3 books“. Aber Pluralregeln variieren in verschiedenen Sprachen, und ein Fehler hierbei führt zu unnatürlichem Text in anderen Locales.

Beginnen Sie mit dem String in Ihrer SwiftUI-Ansicht:

Text("\(bookCount) books on your shelf")

Öffnen Sie den String Catalog, klicken Sie mit der rechten Maustaste auf den Schlüssel und wählen Sie Vary by Plural. Xcode generiert die Pluralkategorien automatisch und füllt sie mit dem Quellstring vorab aus.

Für Englisch sehen Sie One und Other. Korrigieren Sie einfach das Feld One in die Singularform: „%lld book on your shelf“. Die Form Other ist bereits korrekt.

Xcode markiert beide als Needs Review, bis Sie sie bestätigen. Sobald Sie die Form One korrigiert haben, können Sie sie als überprüft markieren.

Sie werden auch Arabisch und Spanisch in der Seitenleiste mit 0 % sehen. Sie müssen für diese Sprachen jetzt nichts tun. Später, wenn Sie für die Übersetzung nach PTC exportieren, wird die Pluralstruktur mit der Datei übertragen. Für Arabisch generiert PTC Übersetzungen für alle sechs Pluralkategorien (Null, Eins, Zwei, Wenige, Viele und Andere), da die arabische Grammatik alle sechs erfordert. Für Spanisch sind es zwei, genau wie im Englischen.

Gerätevariationen

Einige Texte sollten je nach Gerät variieren, z. B. „Zum Fortfahren tippen“ auf dem iPhone vs. „Zum Fortfahren klicken“ auf dem Mac. Um dies einzurichten, klicken Sie mit der rechten Maustaste auf den Schlüssel im Katalog und wählen Sie Vary by Device. Fügen Sie die Geräte hinzu, die Sie anpassen möchten, und geben Sie den entsprechenden String für jedes Gerät ein. Zur Laufzeit liefert iOS die Version, die dem aktuellen Gerät entspricht.

Gerätevariationen sind seltener als Pluralvariationen, aber nützlich für Apps, die sowohl auf iOS als auch auf macOS laufen.

Teil 3: Übersetzen Ihrer iOS-Lokalisierungsdateien mit PTC

Ihr String-Katalog ist eingerichtet und Ihre Strings sind bereit. Jetzt ist es Zeit, Übersetzungen hinzuzufügen.

Für ein kleines Projekt könnten Sie dies manuell tun, indem Sie jede Sprachdatei öffnen und Übersetzungen direkt eingeben. Aber wenn Ihre App wächst, wird das bei Hunderten von Schlüsseln und Dutzenden von Sprachen schnell unüberschaubar.

Hier kommt PTC ins Spiel – ein KI-Übersetzungstool, das das Hochladen, Übersetzen und Synchronisieren Ihrer Lokalisierungsdateien übernimmt, mit Optionen zur Integration in Ihr Repository oder Ihre CI/CD-Pipeline.

🔗 Erfahren Sie mehr: KI-gestützte mobile App-Lokalisierung mit PTC – wie PTC Übersetzungen für iOS- und Android-Apps End-to-End handhabt.

Im Folgenden führen wir Sie durch die ersten Schritte.

1

Exportieren Sie Ihren String Catalog aus Xcode

Gehen Sie in der Xcode-Menüleiste zu Product → Export Localizations. Xcode packt Ihren String Catalog in eine .xcloc-Datei für jede Zielsprache.

Für diesen Leitfaden benötigen wir nur die .xcstrings-Datei innerhalb des .xcloc-Pakets. Um dorthin zu gelangen, klicken Sie mit der rechten Maustaste auf die exportierte .xcloc-Datei im Finder und wählen Sie Show Package Contents. Sie finden Localizable.xcstrings darin.

💡Sehen Sie eine Benachrichtigung „Unable to build project for localization string extraction“?

Dies geschieht, wenn Ihr Projekt iOS-spezifische APIs verwendet, die Xcode während der String-Extraktion nicht mit seinem internen macOS SDK kompilieren kann. Um dies zu beheben, wählen Sie das Projektziel unter TARGETS aus, gehen Sie zu Build Settings, suchen Sie nach „Use Compiler to Extract Swift Strings“ und setzen Sie es auf No. Versuchen Sie dann erneut zu exportieren.

2

Für PTC anmelden

Melden Sie sich für eine kostenlose PTC-Testversion an – keine Kreditkarte erforderlich. Die kostenlose Testversion ermöglicht es Ihnen, 20.000 Wörter in zwei Sprachen zu übersetzen, was in den meisten Fällen ausreicht, um eine App zu lokalisieren.

Das Hinzufügen weiterer Sprachen ist später einfach. PTC nutzt ein Zahlung nach Bedarf-Modell ohne monatliche Abonnementgebühren. Sie zahlen nur für das, was Sie übersetzen.

Nach der Anmeldung öffnet sich die Projekteinrichtung automatisch.

3

Projekt einrichten und übersetzen

  1. Ziehen Sie Ihre Localizable.xcstrings-Datei per Drag & Drop in PTC. Nach dem Hinzufügen sehen Sie ein Feld für den Ausgabedateinamen. Lassen Sie es als Localizable.xcstrings. Xcode erwartet diesen genauen Namen beim Auflösen lokalisierter Strings.
Datei hochladen
  1. Wählen Sie Ihre Zielsprachen aus. Die kostenlose Testversion unterstützt zwei Sprachen. Für unsere Demo-App wählen wir Spanisch und Arabisch.
Zielsprachen in PTC hinzufügen
  1. Beschreiben Sie, was Ihre App tut und für wen sie gedacht ist. Dies ermöglicht es PTC, kontextbezogene Übersetzungen zu erstellen, die den richtigen Ton, die richtige Stimme und die richtige Terminologie für Ihr Publikum verwenden.
Projektkontext in PTC hinzufügen
  1. Begriffe zu Ihrem Glossar hinzufügen. PTC fügt Ihren App-Namen automatisch hinzu. Sie können auch markenspezifische Terminologie hinzufügen, die auf eine bestimmte Weise übersetzt werden soll oder gar nicht übersetzt werden soll.

Nachdem Sie auf Start Translation geklickt haben, benötigt PTC einige Minuten, um Ihre Datei zu verarbeiten.

4

iOS-App-Übersetzungen überprüfen und herunterladen

Sobald die Übersetzung abgeschlossen ist, gehen Sie zum Tab Translations. Sie sehen eine Tabelle, die jeden Quellstring zusammen mit seiner Übersetzung auflistet. Sie oder jedes Teammitglied, das Sie dem Projekt hinzufügen, können Übersetzungen direkt in dieser Ansicht manuell bearbeiten.

Wenn etwas nicht stimmt, können Sie ein Problem mit einer bestimmten Übersetzung melden und eine kostenlose KI-Neuübersetzung anfordern. PTC lernt aus dem Feedback, das Sie geben, und wendet es auf zukünftige Strings im selben Projekt an.

Probleme in PTC melden

Wenn ein übersetzter String seine Längenbegrenzung überschreitet, wird er in der Tabelle hervorgehoben. PTC legt diese Begrenzungen automatisch basierend auf den Merkmalen jeder Zielsprache fest. Sie haben drei Optionen:

  • Akzeptieren Sie die längere Übersetzung, wenn Ihre Benutzeroberfläche sie aufnehmen kann
  • Fordern Sie eine Neuübersetzung an, die innerhalb der aktuellen Begrenzung liegt
  • Passen Sie die Begrenzung unter Settings → Translation lengths an
Lange Übersetzungen in PTC markiert

Teil 4: Integration von Übersetzungen in Ihr Xcode-Projekt

Nachdem Ihre Übersetzungen in PTC bereit sind, besteht der letzte Schritt darin, sie in Ihr Xcode-Projekt zu integrieren. Sie haben drei Optionen.

Dateien manuell von PTC herunterladen

Gehen Sie zum Tab Resource Files in PTC und laden Sie die Zip-Datei herunter. Sie enthält eine einzelne Localizable.xcstrings-Datei mit Ihren englischen Quellstrings und allen enthaltenen Übersetzungen.

Um die Datei zu Ihrem Projekt hinzuzufügen:

  1. Stellen Sie sicher, dass Xcode geschlossen ist
  2. Öffnen Sie Ihren Projektordner im Finder
  3. Ersetzen Sie die vorhandene Localizable.xcstrings durch die von PTC
  4. Xcode neu starten

Ihre Übersetzungen werden im String Catalog angezeigt, mit einem Häkchen neben jeder vollständig übersetzten Sprache.

Importierte Übersetzungen

Mit Git integrieren

Wenn Ihr Projekt auf GitHub, GitLab oder Bitbucket liegt, können Sie PTC direkt mit Ihrem Repository für die kontinuierliche Übersetzung verbinden.

Gehen Sie in Ihrem PTC-Dashboard zu Settings → Merge Requests und klicken Sie auf Add Git Integration. Sie müssen Ihre Repository-URL angeben, PTC Zugriff gewähren und Ihren Branch und Ihre Quelldateien auswählen. PTC sendet einen Merge-Request mit den Übersetzungen, den Sie wie jede andere Codeänderung überprüfen und akzeptieren können.

Die API verwenden

Die API von PTC bietet Ihnen eine Möglichkeit, Lokalisierungsdateien automatisch als Teil Ihrer eigenen Build- oder Deployment-Pipeline zu generieren und herunterzuladen. Dies ist eine Überlegung wert, wenn Sie eine komplexere Einrichtung haben oder die volle Kontrolle darüber wünschen, wann und wie Übersetzungen in Ihr Projekt gezogen werden.

Um zu beginnen, gehen Sie zu Settings → Manage API tokens. Klicken Sie auf Add access token, um einen Token zu generieren, und sehen Sie sich dann die API documentation for all endpoints an.

Teil 5: Testen Ihrer lokalisierten iOS-App

Nun ist es an der Zeit zu überprüfen, ob Ihre Übersetzungen wie erwartet aussehen und funktionieren.

Testen mit der Scheme Language Setting

Der schnellste Weg, eine bestimmte Sprache zu testen, ist über Ihr Xcode-Schema. Gehen Sie zu Product → Scheme → Edit Scheme und klicken Sie auf den Tab Options. Ändern Sie App Language und App Region auf die Locale, die Sie testen möchten, und führen Sie dann die App mit Cmd+R aus.

Dies funktioniert gut für die meisten Sprachen. Sie sollten das gleiche Layout und Design wie die englische Version sehen, wobei der gesamte Text auf die ausgewählte Sprache umgestellt ist.

Testen von Arabisch und anderen RTL-Sprachen (Rechts-nach-Links)

Für Arabisch und andere Rechts-nach-Links-Sprachen kann die Spracheinstellung des Schemas im Simulator unzuverlässig sein. Verwenden Sie stattdessen die eigenen Spracheinstellungen des Simulators:

  1. Führen Sie die App mit Cmd+R aus, um den Simulator zu öffnen
  2. Drücken Sie Cmd+Home, um zum Startbildschirm zu gelangen
  3. Öffnen Sie Settings → General → Language & Region
  4. Tippen Sie auf Add Language, wählen Sie Arabisch aus und legen Sie es als primäre Sprache fest
  5. Der Simulator wird neu gestartet. Öffnen Sie Ihre App vom Startbildschirm aus

Überprüfen Sie, ob der Text auf Arabisch erscheint und das Layout korrekt gespiegelt wird, wobei der Navigationstitel und der Inhalt rechtsbündig ausgerichtet sind.

Bewährte Methoden für die iOS-Lokalisierung

Überprüfen Sie Ihre Benutzeroberfläche auf unterschiedliche Textlängen

Claude antwortete: Sprachen unterscheiden sich in der Wortlänge.

Sprachen unterscheiden sich in der Wortlänge. Deutsch zum Beispiel ist tendenziell länger als Englisch und kann eine Benutzeroberfläche, die nur für Englisch konzipiert wurde, leicht sprengen.

Um dies zu vermeiden:

Verwenden Sie das flexible Layoutsystem von SwiftUI und lassen Sie Beschriftungen natürlich wachsen und umbrechen
Vermeiden Sie feste Breitenbeschränkungen für Textelemente
Testen Sie Ihre Benutzeroberfläche während der Entwicklung in verschiedenen Sprachen, nicht nur vor der Veröffentlichung

Pluralisierungsvarianten nicht überspringen

Sprachen drücken Mengen nicht auf die gleiche Weise aus. Englisch benötigt zwei Pluralformen (one und other), aber viele Sprachen benötigen mehr. Russisch hat fünf Pluralkategorien, Arabisch sechs und Japanisch gar keine. Wenn Sie Pluralisierungsvarianten für eine Zielsprache überspringen, zeigt Ihre App unnatürliche oder grammatisch falsche Strings für diese Locale an.

String Catalogs handhaben dies automatisch. Wenn Sie eine Sprache hinzufügen, generiert Xcode die korrekten Pluralfelder für die Grammatikregeln dieser Sprache. Stellen Sie sicher, dass alle generierten Felder ausgefüllt sind, bevor Sie die App veröffentlichen.

Bilder und Assets lokalisieren

Wenn Ihre App Bilder mit Text oder kulturell spezifische Grafiken verwendet, müssen diese ebenfalls lokalisiert werden. Eine übersetzte App, die immer noch englischen Text in Bildern zeigt, beeinträchtigt das Erlebnis für nicht-englische Benutzer.

Um ein Bild in Xcode zu lokalisieren, öffnen Sie Assets.xcassets, wählen Sie das Bild aus und klicken Sie im Attributes Inspector auf Localize. Wählen Sie die Sprachen aus, für die Sie Varianten bereitstellen möchten, und ersetzen Sie jede durch die entsprechende Version. Xcode liefert das korrekte Bild automatisch basierend auf der Locale des Benutzers.

Ihre Basissprache vollständig halten

Ihre Basissprache (normalerweise Englisch) dient als Referenz für alle anderen Lokalisierungen. Wenn ein String für eine bestimmte Sprache keine Übersetzung hat, greift iOS auf die Version der Basissprache zurück. Dies bedeutet, dass eine unvollständige Basissprache unerwartete Rückgriffe verursachen kann, selbst in Sprachen, die ansonsten vollständig übersetzt sind.

Überprüfen Sie vor jeder Veröffentlichung, ob Ihr String Catalog keine fehlenden oder veralteten Strings in der Basissprache anzeigt. Xcode kennzeichnet diese automatisch während des Builds.

Ihre App Store-Eintragung lokalisieren

Die App Store-Eintragung ist genauso wichtig wie die App selbst. Eine lokalisierte App mit einer nur englischen Eintragung verliert Benutzer am Punkt der Entdeckung, noch bevor sie sie heruntergeladen haben.

In App Store Connect können Sie den Namen, den Untertitel, die Beschreibung und das Keyword-Feld Ihrer App für jedes Gebiet lokalisieren. Keywords sind besonders wertvoll. Apple indiziert Keywords aus mehreren Locales pro Gebiet, was Ihr Keyword-Zeichenbudget effektiv über die standardmäßigen 100 Zeichen hinaus vervielfacht.

Um den Inhalt Ihrer App Store-Eintragung zu übersetzen, verwenden Sie die Paste to Translate-Funktion von PTC. Fügen Sie den Namen Ihrer App, den Untertitel, die Beschreibung oder das Keyword-Feld ein, und PTC übersetzt es innerhalb von Minuten in Ihre Zielsprachen.

Häufig gestellte Fragen

Beginnen Sie noch heute mit der Lokalisierung Ihrer iOS-App

Sie haben die technische Arbeit erledigt. PTC erledigt den Rest. Melden Sie sich für eine kostenlose Testversion an und übersetzen Sie bis zu 20.000 Wörter in zwei Sprachen. Keine Kreditkarte erforderlich.

.xcstrings mit PTC übersetzen

Erhalten Sie in wenigen Minuten präzise Übersetzungen

Laden Sie einzelne Dateien hoch oder automatisieren Sie den Vorgang über API- oder Git-Integration


Nach oben scrollen