更改NSUserDefaults时,NSLocale.preferredLanguages不会更改

时间:2015-04-27 14:32:13

标签: swift ios8 localization internationalization

我已经研究了好几天了。

我有一个快速准备好的应用程序,最近我们决定引入本地化,当我将系统语言设置为所需语言时,它可以工作,但是当我尝试手动更改语言时它不起作用。

我的尝试:

    NSUserDefaults.standardUserDefaults().setObject(["ar"], forKey: "AppleLanguage")
    NSUserDefaults.standardUserDefaults().synchronize()

重新启动应用后

let lang = NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguage")确实返回[“ar”]

但是

NSLocale.preferredLanguages()[0]

仍然会返回[“en”]

,应用程序出现在英文版和区域设置

1 个答案:

答案 0 :(得分:1)

密钥名为AppleLanguages(注意结尾处的s)。

我确定您知道,但本地化的应用不需要执行自定义语言选择。最好将它留给iOS,让用户定义他们的全球国际设置。