J'utilise ce morceau de code pour localiser les dates Strings à Swift:Langue localisation de dates à 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)
}
où le elapsedTime est une valeur en secondes. Résultat pour la localisation en anglais est
6 hours ago
par exemple. J'ai besoin de modifier ceci pour ajouter la localisation spécifique à la langue, par exemple en français il ne devrait pas être dans un format de [N] hours ago
mais il ya [N] heurs
. Y a-t-il un moyen de l'automatiser en évitant d'ajouter un préfixe spécifique pour les différentes langues utilisées? Merci d'avance!
Vous pouvez utiliser "% @", "% d" et autres dans 'Localizable.string'. Utilisez simplement un 'stringWithFormat:'. En outre, il existe une gestion plurielle avec 'Localizable.stringsdict'. Cela devrait vous éviter le test 'hours> 1' (et pour différentes langues, le texte peut être différent pour 0, 1, 2, et plus.) – Larme
Merci, @Larme! Pouvez-vous s'il vous plaît transformer votre commentaire pour répondre, avec un peu Plus d'explications sur l'utilisation de stringWithFormat() – Alex
En Objective-C, nous utilisons 'stringWithFormat:', dans Swift, nous avons tendance à faire comme les autres langages (JavaScript, C++), avec le '+' et le '\ (var)' Le document: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html et https://developer.apple.com/library/content/documentation/Cocoa/ Conceptuel/Strings/Articles/formatSpecifiers.html # // apple_ref/doc/uid/TP40004265-SW1 pour stringDict: https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPInternational/StringsdictFileFormat/StringsdictFileFormat. html – Larme