我正在嘗試根據用戶的決定更改應用程式中的語言。我嘗試了以下但沒有運氣,想知道是否有人可以幫助我指出正確的方向?
UserDefaults.standard.set(["fr"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
然后最后我嘗試了以下操作,但也沒有運氣:
enum Language: String, CaseIterable {
case japanese, russian, spanish, english
var code: String {
switch self {
case .japanese: return "ja"
case .russian: return "ru"
case .spanish: return "es"
case .english: return "en"
}
}
static var selected: Language {
set {
UserDefaults.standard.set([newValue.code], forKey: "AppleLanguages")
UserDefaults.standard.set(newValue.rawValue, forKey: "language")
}
get {
return Language(rawValue: UserDefaults.standard.string(forKey: "language") ?? "") ?? .english
}
}
}
呼叫它:
Language.selected = .russian
任何幫助將非常感激。干杯。
uj5u.com熱心網友回復:
您必須使用可本地化的字串,請查看以下鏈接:Swift App localization
uj5u.com熱心網友回復:
我能夠通過在設定之前先洗掉物件值來弄清楚它。這使我能夠在應用程式中更改語言。謝謝大家。解決方案:
NSUserDefaults.standardUserDefaults().removeObjectForKey("AppleLanguages")
NSUserDefaults.standardUserDefaults().setObject(["de"], forKey: "AppleLanguages"
NSUserDefaults.standardUserDefaults().synchronize()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/360593.html
上一篇:用于查找數字的正則運算式在Swift中以特殊字符結尾
下一篇:如何在快速運行功能時禁用按鈕?
