NSLocale.preferredLanguages 更改 NSUserDefaults 时不会更改
NSLocale.preferredLanguages doesn't change when changing NSUserDefaults
我已经研究了好几天了。
我有一个 swift 就绪的应用程序,最近我们决定引入本地化,当我将系统语言设置为所需的语言时,它可以工作,但是当我尝试手动更改语言时,它没有工作。
我尝试过的:
NSUserDefaults.standardUserDefaults().setObject(["ar"], forKey: "AppleLanguage")
NSUserDefaults.standardUserDefaults().synchronize()
重启应用后
let lang = NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguage")
return ["ar"]
但是
NSLocale.preferredLanguages()[0]
仍然 returns ["en"]
并且应用程序出现在英文版本和语言环境中
密钥名为 AppleLanguages
(注意末尾的 s)。
我相信您知道,但本地化应用不需要执行自定义语言选择。最好将其留给 iOS,让用户定义他们的全局国际设置。
我已经研究了好几天了。
我有一个 swift 就绪的应用程序,最近我们决定引入本地化,当我将系统语言设置为所需的语言时,它可以工作,但是当我尝试手动更改语言时,它没有工作。
我尝试过的:
NSUserDefaults.standardUserDefaults().setObject(["ar"], forKey: "AppleLanguage")
NSUserDefaults.standardUserDefaults().synchronize()
重启应用后
let lang = NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguage")
return ["ar"]
但是
NSLocale.preferredLanguages()[0]
仍然 returns ["en"]
并且应用程序出现在英文版本和语言环境中
密钥名为 AppleLanguages
(注意末尾的 s)。
我相信您知道,但本地化应用不需要执行自定义语言选择。最好将其留给 iOS,让用户定义他们的全局国际设置。