Internationalisierung (i18n) in Swift für iOS und macOS

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Internationalisierung (i18n) in Swift: Vollständiger Leitfaden für iOS und macOS



Internationalisierung (abgekürzt i18n) ist der Prozess, eine Anwendung so zu gestalten, dass sie an verschiedene Sprachen und Regionen angepasst werden kann, ohne den Quellcode zu ändern. Für Entwickler der Apple-Plattformen (iOS, macOS, watchOS, tvOS) bietet Swift einen leistungsstarken und dennoch eleganten Werkzeugsatz. In diesem Artikel werden wir im Detail besprechen, wie Sie i18n in Ihrem Swift-Projekt mit den integrierten Apple-Mechanismen einrichten.



Warum ist i18n entscheidend wichtig?

Auch wenn Ihre Anwendung zunächst nur in einer Sprache erstellt wird, sollte die Internationalisierung bereits in der Architekturphase berücksichtigt werden. Dies ermöglicht:

  • Erweiterung der Zielgruppe: Benutzer aus verschiedenen Ländern bevorzugen Anwendungen in ihrer Muttersprache.
  • Vereinfachung der Lokalisierung: Korrekte i18n macht das Hinzufügen einer neuen Sprache zu einer einfachen Dateioperation.
  • Vermeidung von Hardcodierung: Alle Zeichenfolgen werden in separate Ressourcen ausgelagert, was die Lesbarkeit und Wartbarkeit des Codes verbessert.


Das wichtigste Werkzeug: NSLocalizedString

Das Herzstück der Internationalisierung in Swift ist das Makro NSLocalizedString. Es sucht nach einer Zeichenfolge in den Lokalisierungsdateien (.strings) und gibt die übersetzte Version zurück. Wenn keine Übersetzung gefunden wird, wird der Schlüssel (normalerweise die englische Zeichenfolge) verwendet.



// Beispielverwendung in Swiftlet welcomeMessage = NSLocalizedString("welcome_message", comment: "Begrüßung auf dem Hauptbildschirm")label.text = welcomeMessage


Es wird empfohlen, immer einen comment anzugeben – er hilft Übersetzern, den Kontext zu verstehen.



Struktur der Lokalisierungsdateien

In Xcode werden Sprachen über Project Settings > Info > Localizations hinzugefügt. Danach werden Ordner xx.lproj (z. B. en.lproj, ru.lproj) erstellt. In diesen werden gespeichert:

  • Localizable.strings – die Hauptdatei mit Paaren "Schlüssel" = "Wert";
  • InfoPlist.strings – für die Lokalisierung des App-Namens und systembezogener Zeichenfolgen;
  • Storyboard.strings – eine automatisch generierte Datei für Oberflächen, die in Storyboards erstellt wurden.


Format von Localizable.strings

Die Datei hat eine einfache Syntax:

// Englisch (en.lproj/Localizable.strings)"welcome_message" = "Welcome to our app!";"login_button" = "Log In";

// Russisch (ru.lproj/Localizable.strings)"welcome_message" = "Добро пожаловать в наше приложение!";"login_button" = "Войти";


Wichtig: Zeichenfolgen enden mit einem Semikolon. Die Dateikodierung muss UTF-8 oder UTF-16 sein.



Formatierung von Zeichenfolgen mit Parametern

Oft müssen dynamische Daten (Benutzername, Anzahl der Elemente) in eine Zeichenfolge eingefügt werden. Dazu wird String(format:) verwendet:



// In Localizable.strings:"items_count" = "You have %d items.";"user_greeting" = "Hello, %@!";

// Im Swift-Code:let count = 5let itemsText = String(format: NSLocalizedString("items_count", comment: "Anzahl der Gegenstände"), count)

let userName = "Alexej"let greeting = String(format: NSLocalizedString("user_greeting", comment: "Benutzerbegrüßung"), userName)


Zur Unterstützung von Pluralformen (1 Apfel, 2 Äpfel, 5 Äpfel) verwenden Sie StringDict (Dateien .stringsdict).



Arbeiten mit XLIFF für Übersetzer

Apple unterstützt das XLIFF-Format (XML Localisation Interchange File). Dies ist ein Industriestandard für den Austausch von Übersetzungen. In Xcode können Sie alle Zeichenfolgen in eine XLIFF-Datei exportieren, diese an einen Übersetzer geben und dann wieder importieren.



// Befehl im Terminal zum Exportieren:xcodebuild -exportLocalizations -localizationPath ./translations -project YourProject.xcodeproj

// Import fertiger Übersetzungen:

Empfehlungen