Robotics and Intelligent Systems
Creating a Multi-language Support System with Localization in Ios
Table of Contents
Lokalisierung und Internationalisierung verstehen
Der Aufbau eines mehrsprachigen Supportsystems in iOS beginnt mit dem Verständnis der Unterscheidung zwischen Internationalisierung und Lokalisierung. Internationalisierung (i18n) ist der Prozess, bei dem Ihre App so gestaltet wird, dass sie ohne technische Änderungen an verschiedene Sprachen und Regionen angepasst werden kann. Lokalisierung (l10n) ist die eigentliche Übersetzung und kulturelle Anpassung des Inhalts und der Benutzeroberfläche der App für ein bestimmtes Gebiet. Apples Frameworks bewältigen einen Großteil des schweren Hebens, aber eine durchdachte Strategie zu Beginn spart später erheblichen Aufwand.
Apple bietet umfassende Tools in Xcode, Foundation und UIKit, um die Lokalisierung zu unterstützen. Das Ziel ist es, dass sich Ihre App in jeder Sprache nativ anfühlt, wobei Leserichtung, Datumsformate, Zahlenformatierung und kulturelle Konventionen respektiert werden. Dieser Artikel führt durch die praktischen Schritte zur Implementierung einer robusten mehrsprachigen Unterstützung, von der Projekteinrichtung bis hin zu fortschrittlichen Techniken.
Lokalisierung in Ihrem Xcode-Projekt ermöglichen
Der erste Schritt besteht darin, Xcode mitzuteilen, welche Sprachen Ihre App unterstützen wird. Öffnen Sie Ihre Projekteinstellungen, wählen Sie Ihr Projekt im Projektnavigator aus und finden Sie unter der Registerkarte Info den Abschnitt Lokalisierungen. Klicken Sie auf die Schaltfläche "+", um Sprachen hinzuzufügen. Für jede Sprache erstellt Xcode automatisch Ressourcendateien (Storyboards, XIBs, Strings-Dateien), die Sie separat bearbeiten können.
Basis-Internationalisierung
Apple empfiehlt die Verwendung von Base Internationalization. In der Registerkarte „Basis Internationalisierung verwenden. Diese speichert das ursprüngliche UI-Layout in einer Basislokalisierung (normalerweise Englisch) und jede zusätzliche Sprache überschreibt nur die Zeichenfolgen, nicht das Layout. Dies reduziert die Duplizierung und gewährleistet die Konsistenz des Layouts. Wenn Sie es deaktivieren, müssen Sie das gesamte Storyboard für jede Sprache duplizieren, was fehleranfällig ist.
Hinzufügen von Lokalisierungen zu vorhandenen Dateien
Wählen Sie für vorhandene Storyboards oder XIBs die Datei im File Inspector aus, dann unter Lokalisierung die Sprachen, die Sie lokalisieren möchten. Xcode generiert sprachspezifische .strings-Dateien für Storyboards. Für codebasierte Schnittstellen verlassen Sie sich auf und separate .strings-Dateien.
Erstellen und Verwalten von lokalisierbaren Strings-Dateien
Der primäre Weg, Text aus Code zu übersetzen, ist über Dateien. Erstellen Sie eine, indem Sie zu Datei > Neu > Datei > Strings Datei (unter Ressource) gehen. Benennen Sie sie . Dann lokalisieren Sie sie im Dateiinspektor: Klicken Sie auf Lokalisieren, und wählen Sie dann Ihre Basissprache aus. Danach erscheint für jede weitere Sprache eine neue Datei in einem Unterordner.
Das Format ist key = Wertepaare:
Für die deutsche Lokalisierung:
Wenn Sie die englische Zeichenfolge als Schlüssel verwenden, wird die Umbenennung später problematisch, wenn Sie die englische Zeichenfolge als Schlüssel verwenden, um zufällige Änderungen zu vermeiden.
Strings mit Kommentaren organisieren
Kommentare hinzufügen, um den Kontext für Übersetzer zu erklären. Sie werden nicht in der App kompiliert. Beispiel:
]
NSLocalizedString im Code verwenden
Das -Makro liest den String aus der entsprechenden -Datei, basierend auf der Gerätesprache des Benutzers.
Die meisten Anrufe verwenden nur den Schlüssel und Kommentar:
Wenn keine Übersetzung gefunden wird, wird der Schlüssel selbst zurückgegeben (oder der Wertparameter, falls vorhanden).
Umgang mit Format Strings mit Parametern
Für dynamische Inhalte verwenden Sie Format-Spezifikatoren wie , , .
In Code:
Dies ermöglicht es Übersetzern, Wörter entsprechend neu zu ordnen (z. B. kann die Satzstruktur die Zahl nach dem Substantiv platzieren).
Verwendung von .stringsdict für Plural Rules
Verschiedene Sprachen haben komplexe Pluralregeln. Zum Beispiel hat Englisch Singular/Plural, aber Arabisch hat sechs Formen und Polnisch hat drei. Apple stellt Dateien zur Verfügung, um Pluralisierung und anderen variablen Text zu verarbeiten. Erstellen Sie eine Datei namens in denselben Lokalisierungsordnern wie .
Verwenden Sie dann im Code den gleichen Schlüssel: . iOS wählt automatisch die richtige Pluralform basierend auf den Regeln des Gebietsschemas aus.
Lokalisieren von Storyboards und XIBs
Wenn Sie ein Storyboard lokalisieren, erhält jedes Label, Button und Textfeld ein Gegenstück in der sprachspezifischen Strings-Datei. Sie können diese Strings direkt bearbeiten oder den Interface Builder verwenden, um Vorschau zu erstellen und die Layouts pro Sprache zu ändern. Für eine dynamischere Benutzeroberfläche können Sie es jedoch vorziehen, Text programmgesteuert mit festzulegen und dann das Layout mit Auto Layout zu handhaben.
Lokalisierungen in Xcode anzeigen
In Xcode können Sie eine Vorschau eines Storyboards in verschiedenen Sprachen anzeigen, ohne es zu erstellen: Öffnen Sie das Storyboard, dann im Editor-Menü wählen Sie Vorschau. Fügen Sie ein Vorschaugerät hinzu, ändern Sie dann die Sprache mit der Dropdown-Datei unten. Dies zeigt, wie Strings erweitert oder kontrahiert werden.
Anpassen des Layouts für Texterweiterung
Deutscher Text ist oft 30 % länger als Englisch. Verwenden Sie Auto Layout mit Einschränkungen, die Etiketten vertikal oder horizontal wachsen lassen. Setzen Sie die Zeilenzahl des Etiketts auf 0. Vermeiden Sie Einschränkungen mit fester Breite. Verwenden Sie die Prioritäten für Inhaltsumarmung und Kompressionswiderstand entsprechend.
Verwenden Sie für Schaltflächen oder erlauben Sie dynamische Breite. Testen Sie mit den längsten möglichen Ãbersetzungen.
Umgang mit Rechts-zu-Links (RTL) Sprachen
Arabisch, Hebräisch, Persisch, Urdu und andere fließen von rechts nach links. iOS unterstützt RTL über die -Eigenschaft für Ansichten und das automatische Umblättern von Bildern und Layout des Systems basierend auf der Layoutrichtung der Benutzeroberfläche (von der Gerätesprache).
Einrichtung für RTL
Stellen Sie sicher, dass Ihre Storyboard-Ansichten Leading/Trailing-Beschränkungen anstelle von links/rechts verwenden. Xcodes Auto-Layout unterstützt automatisch das korrekte Leading/Trailing. Verwenden Sie für programmatische Layouts und . Wenn Sie benutzerdefinierte Zeichnungen oder Transformationen haben, respektieren Sie die Layoutrichtung der Benutzeroberfläche von oder überprüfen Sie .
Bilder und RTL
Bilder mit Richtungsbedeutung (z. B. ein nach vorne zeigender Pfeil) sollten im RTL-Modus umgedreht werden. In Asset Catalog können Sie Bilder als "Spiegel" für RTL einstellen. Alternativ können Sie separate Bildsätze für jede Richtung bereitstellen. Bei Vorlagenbildern kann iOS automatisch gespiegelt werden, wenn Sie auf dem Bild einstellen.
Textanpassung
Verwenden Sie für Beschriftungen und Textansichten , die automatisch links für LTR und rechts für RTL ausgerichtet sind.
Lokalisierung von Daten, Zahlen und Währungen
Endbenutzer erwarten Daten und Zahlen, die nach ihrem Gebietsschema formatiert sind. Verwenden Sie und mit dem Gebietsschema des Benutzers. Setzen Sie (was die Standardeinstellung ist) und verwenden Sie vordefinierte Stile wie , oder benutzerdefinierte Muster.
Für Zahlen verwenden Sie mit Stil oder , wobei Sie automatisch Gruppierungen von Trennzeichen, Dezimaltrennzeichen und Währungssymbolen durchführen.
Verwenden von Locale mit Format Strings
Wenn Sie mit numerischen Spezifikatoren verwenden, kann das Gebietsschema die Gruppierung beeinflussen.
Lokalisierung testen
Gründliche Tests sind wichtig. Simulieren Sie verschiedene Sprachen auf dem Simulator, indem Sie die Einstellungen für Anwendungssprache und Region des Schemas bearbeiten. Gehen Sie zu Produkt > Schema > Schema bearbeiten, dann unter Ausführen > Optionen, wählen Sie eine andere Anwendungssprache (z. B. Deutsch) und Region (z. B. Deutschland). Erstellen und Ausführen, um alle lokalisierten Zeichenfolgen anzuzeigen.
Verwenden des Sprachumschalters des Simulators
Sie können auch die Sprache des Simulators wechseln: Einstellungen > Allgemein > Sprache & Region. Die Schemamethode ist jedoch schneller, um eine einzelne Sprache zu testen.
Prüfung der RTL
Stellen Sie die Anwendungssprache des Schemas auf Arabisch. Überprüfen Sie, ob alle Ansichten korrekt umgedreht werden. Achten Sie genau auf benutzerdefinierte Ansichten, Scrollansichten und Webansichten. Verwenden Sie die Debug> Debugging-Tools anzeigen, um das Layout zu überprüfen.
Testen mit Pseudolokalisierung
Xcode bietet Pseudolokalisierung, um lange Strings oder RTL ohne tatsächliche Übersetzungen zu simulieren. In den Optionen des Schemas aktivieren Sie "Doppellange Pseudosprache" oder "Rechts-nach-Links-Pseudosprache".
Lokalisierung von dynamischen Inhalten und servergesteuerter Benutzeroberfläche
Wenn Ihre App Inhalte von einem Server herunterlädt, können Sie sich nicht allein auf verlassen. Sie müssen die lokale Präferenz des Benutzers an den Server senden und ihn übersetzten Inhalt zurückgeben lassen. Verwenden Sie den -Header oder einen benutzerdefinierten Parameter. Auf der iOS-Seite können Sie die bevorzugten Sprachen von oder erhalten.
Für servergesteuerte Benutzeroberflächen, die in nativen Komponenten gerendert werden, können Sie Server-versendete String-Schlüssel mit einem ähnlichen -Muster, aber mit einer anderen Tabelle oder einem anderen Bundle abbilden. Erwägen Sie, Lokalisierungen in einer JSON-Datei zu speichern, die nach dem Start der App abgerufen wurde, um Over-the-Air-Updates ohne App-Einreichung zu ermöglichen.
Best Practices für die Lokalisierung
- Behalte die Schlüssel beschreibend und konsistent – Benutze die Punkt-Notation wie , um die Schlüssel zu benennen.
- Verwenden Sie eine einzelne Quelle der Wahrheit – Vermeiden Sie es, Übersetzungen über Dateien hinweg zu duplizieren.
- Export/Import automatisieren – Xcode kann alle Lokalisierungen als XLIFF-Dateien für Übersetzer exportieren und dann die übersetzten Dateien zurück importieren.
- Version steuert Ihre Strings – Halten Sie und Dateien in Git. Verwenden Sie diff-Tools, um Änderungen zu verfolgen.
- Niemals lokalisierbaren Text in den Code einschließen – Verwenden Sie oder immer zur Trennung.
- Betrachten Sie die String-Interpolation sorgfältig – Übersetzer müssen verstehen, was jeder Platzhalter repräsentiert.
Arbeiten mit SwiftUI Lokalisierung
SwiftUI vereinfacht die Lokalisierung. Standardmäßig sucht die Zeichenfolge in mit dem Schlüssel “Hallo” nach. Wenn kein Schlüssel existiert, verwendet er das Zeichenfolgen-Literal selbst. Sie können Schlüssel mit explizit anzeigen und Übersetzungen bereitstellen.
Für formatierte Strings verwenden Sie – SwiftUI verwendet automatisch , wenn Sie den Schlüssel “Sie haben %d Elemente” in einer Datei haben.
funktioniert nicht direkt.
Oder verwenden Sie SwiftUIs mit Interpolation: , aber dies erfordert, dass der Schlüssel genau “items count %d” in der Strings-Datei ist.
Lokalisieren von Bildern in SwiftUI
Verwenden Sie und stellen Sie die Lokalisierung von Asset-Katalogen für jede Sprache bereit, oder verwenden Sie mit Barrierefreiheits-Etiketten, die über lokalisiert sind.
Häufige Fallstricke und wie man sie vermeidet
- Missing translations – Use with a parameter to provide an English fallback.
- Hart codiertes Layout – Vermeiden Sie feste Breiten. Testen Sie mit längsten deutschen Übersetzungen.
- Das Ignorieren von Pluralregeln – Verwenden Sie immer .stringsdict für pluralisierbare Strings.
- Vergessen des Gebietsschemas für das Parsen von Datum/Zahlen – Verwenden Sie beim Parsen der Benutzereingabe ein festes Gebietsschema wie en US POSIX für den internen Speicher.
- Nicht auf realen Geräten testen – Simulator-Sprachumschaltung ist zuverlässig, aber Gerätetests zeigen regionenspezifische Verhaltensweisen wie Kalender, Zeitzone und Tastatur.
- Überblicken der Zugänglichkeit – VoiceOver spricht lokalisierte Strings. Stellen Sie sicher, dass auch die Barrierefreiheitsetiketten lokalisiert sind und entsprechend verwendet werden.
Externe Ressourcen für tieferes Verständnis
- Apples Internationalisierungs- und Lokalisierungshandbuch – Offizielle Dokumentation, die alles abdeckt, von Strings-Dateien bis hin zur Rechts-Links-Unterstützung. Apple Internationalization
- NSHipsters NSLocalizedString Artikel – Praktische Tipps und weniger bekannte API-Funktionen. NSHipster auf NSLocalizedString
- Objc.io’s Internationalization – Tauche tief in .stringsdict und Pluralisierung ein. Objc.io Internationalization
Schlussfolgerung
Die Implementierung von mehrsprachiger Unterstützung in iOS ist mehr als Übersetzung: Sie beinhaltet eine sorgfältige Planung von Strings, Layouts, Formaten und kulturellen Konventionen. Durch die Nutzung der integrierten Lokalisierungstools von Apple – Base Internationalization, , und Auto Layout – können Sie eine App erstellen, die sich in jeder Sprache zu Hause fühlt. Regelmäßige Tests mit Pseudolokalisierung und echten Geräten fangen Probleme frühzeitig auf. Der Aufwand erspart Zukunftskopfschmerzen und öffnet Ihre App für Millionen von Benutzern weltweit. Beginnen Sie mit einer soliden Internationalisierungsgrundlage und erweitern Sie dann Sprachen, wenn Ihre Benutzerbasis wächst.