ich dieses Stück Code bin mit Daten Strings in Swift zu lokalisieren:Sprache genaue Daten Lokalisierung in Swift
if elapsedTime > 3600 {
let hourString = NSLocalizedString("hour ago", tableName: "v1.0.0", bundle: Bundle.main, value: "hour ago", comment: "")
let hoursString = NSLocalizedString("hours ago", tableName: "v1.0.0", bundle: Bundle.main, value: "hours ago", comment: "")
let hours = Int(elapsedTime/3600)
return "\(hours) " + (hours > 1 ? hoursString : hourString)
}
wo der elapsedTime ist ein Wert in Sekunden. Ergebnis für englische Lokalisierung ist
6 hours ago
zum Beispiel. Ich muss dies ändern, um sprachspezifische Lokalisierung hinzuzufügen, zum Beispiel in Französisch sollte es nicht in einem Format von [N] hours ago
aber il ya [N] heurs
sein. Gibt es eine Möglichkeit, es zu automatisieren und zu vermeiden, dass spezifische Präfixe für verschiedene Sprachen hinzugefügt werden? Vielen Dank im Voraus!
Sie "% @" verwenden können, "% d" und andere in "Localizable.string". Verwenden Sie einfach ein 'stringWithFormat:'. Außerdem gibt es eine Pluralverwaltung mit 'Localizable.stringsdict'. Das sollte den 'hours> 1'-Test vermeiden (und für verschiedene Sprachen kann der Text für 0, 1, 2 und mehr unterschiedlich sein. – Larme
Danke, @Larme! Kannst du bitte deinen Kommentar transformieren, um ein wenig zu antworten Weitere Erklärungen zur Benutzung von stringWithFormat(): – Alex
In Objective-C benutzen wir 'stringWithFormat:', in Swift neigen wir dazu, andere Sprachen zu benutzen (JavaScript, C++), mit '+' und '\ (var)' Das Dokument: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html und https://developer.apple.com/library/content/documentation/Cocoa/ Konzeptionelle/Strings/Artikel/formatSpecifiers.html # apple_ref/doc/uid/TP40004265-SW1 für stringDict: https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPInternational/StringsdictFileFormat/StringsdictFileFormat. html – Larme