Ich versuche, meine App mit NSLocalizedString zu lokalisieren. Wenn ich die XLIFF-Datei importiere, funktioniert das meiste wie ein Zauber, aber etwas nicht und einige Zeichenfolgen sind nicht lokalisiert. Ich habe festgestellt, dass das Problem von NSLocalizedString herrührt, das etwas Variables enthält, wie:
NSLocalizedString(" - \(count) Notifica", comment: "sottotitolo prescrizione per le notifiche al singolare")
oder
NSLocalizedString("Notifica per \(medicina!) della prescrizione \(prescription!)\nMemo: \(memoTextView.text)", comment: "Messaggio della Local Notification")
Vielleicht ist dies nicht die richtige Syntax für solche Sachen. Kann mir jemand erklären, wie man das schnell macht? Vielen Dank.
ios
swift
localization
nslocalizedstring
xliff
Andorath
quelle
quelle
Antworten:
Sie können die
sprintf
Formatparameter in verwendenNSLocalizedString
, sodass Ihr Beispiel folgendermaßen aussehen kann:quelle
" - %d Notifica"=" - %d Notifica";
%s
Modifikator zu verwenden, der nicht funktioniert hat = \%@
Zum Ersetzen eines Strings.In Sitzung Nr. 412 des WWDC2014 "Lokalisieren mit Xcode 6" ist der richtige Weg in Swift der folgende:
quelle
Ich habe den Ansatz verfolgt, eine Erweiterung für String zu erstellen, da ich viele Strings lokalisieren muss.
Um es für die Lokalisierung im Code zu verwenden, gehen Sie wie folgt vor:
Für Zeichenfolgen mit dynamischen Variablen folgen Sie:
Deklarieren Sie die Zeichenfolgen in Zeichenfolgendateien für verschiedene Sprachen (Beispiel: Arabisch und Englisch).
Hoffnung wird helfen!
quelle
The doors open at %@ o'clock
. Würde Ihre Lösung noch funktionieren?Localizable.strings
. Ich denke jedoch, dass @Houman ein berechtigtes Anliegen hat.Ich habe die oben genannten Lösungen ausprobiert, aber der folgende Code hat für mich funktioniert
SWIFT 4
quelle
Hier ist eine Erweiterung, die ich in String verwende. Sie fügt eine localizeWithFormat-Funktion mit variablen Argumenten hinzu.
Verwendung:
Achten Sie nur darauf, nicht dieselben Funktions- und Eigenschaftsnamen wie String zu verwenden. Normalerweise verwende ich für alle meine Framework-Funktionen ein Präfix mit 3 Buchstaben.
quelle
Ich habe ein
extension
zu geschaffen ,String
da ich vielestrings
zu haben hattelocalized
.Beispielsweise:
quelle
Editor > Export for Localization...
sie nicht erfasst werden.