Ich möchte Enumeration mit lokalisierten Zeichenfolge, so dass ich das mag, funktioniert es, aber das Problem dieser Lösung ist: Ich kann nicht leicht enum Wert von lokalisierten Zeichenfolge, ich muss haben den Schlüssel, es zu tun:Enum mit lokalisierten String in Swift
let option = DietWithoutResidueOption(rawValue: "NoDiet")
Wenn nicht muss ich dietWithoutResidueOptionWith Methode aufrufen enum-Wert zu erhalten ...:/
es gibt eine bessere Lösung zu speichern direkt LocalizedString und keine Schlüssel in enum?
Dank
Enumeration
enum DietWithoutResidueOption: String {
case NoDiet = "NoDiet"
case ThreeDays = "ThreeDays"
case FiveDays = "FiveDays"
private func localizedString() -> String {
return NSLocalizedString(self.rawValue, comment: "")
}
static func dietWithoutResidueOptionWith(#localizedString: String) -> DietWithoutResidueOption {
switch localizedString {
case DietWithoutResidueOption.ThreeDays.localizedString():
return DietWithoutResidueOption.ThreeDays
case DietWithoutResidueOption.FiveDays.localizedString():
return DietWithoutResidueOption.FiveDays
default:
return DietWithoutResidueOption.NoDiet
}
}
}
Localizable.strings
"NoDiet" = "NON, JE N'AI PAS DE RÉGIME";
"ThreeDays" = "OUI, SUR 3 JOURS";
"FiveDays" = "OUI, SUR 5 JOURS";
Anruf
println(DietWithoutResidueOption.FiveDays.localizedString())
Sie dürfen nicht vergessen, die lokalisierten Versionen der Zeichenfolge zu "Localizable.strings" hinzufügen, sonst gäbe es keine übersetzte Version. – NerdyTherapist