Swift-如何获取iOS设备当前语言

时间:2019-09-29 08:58:54

标签: ios swift locale

我的设备运行iOS 12,并且英语为主要语言,希伯来语为辅助语言。

现在,我将使用英语作为基础本地化版本来打开我的应用程序。

在应用程序中,我列出了三种语言:英语,希伯来语和法语。

首先,属性catch的结果是:[“ en-IL”,“ he-IL”,“ fr-IL”]

如果我想在不更改操作系统语言的情况下本地化整个应用程序,则只更改Locale.preferredLanguages上的AppleLanguages数组,如下所示:

UserDefaults

做出更改后,我将重新启动应用程序,并且更改语言。

问题是,在我将func currentAppleLanguage() -> String { return (UserDefaults.standard.object(forKey: "AppleLanguages") as? NSArray)? .firstObject as? String ?? "" } func setAppleLanguageTo(lang: String) { UserDefaults.standard.set([lang], forKey: "AppleLanguages") } 处的AppleLanguages更改为UserDefaults之后,"he"属性变成了:Locale.preferredLanguages

因此,现在我没有在设置应用程序的操作系统上设置的["he"]后备本地化版本。

此外,我想现在如何像在Facebook上那样用preferredLanguages更改应用程序语言后,如何在操作系统上获得当前正在运行的设备语言

Facebook localization screen

我想提一提,我注意到当我将应用程序语言的运行方案编辑为另一种语言时,它也会同时更改AppleLanguages。

1 个答案:

答案 0 :(得分:0)

不是仅用单个值替换“ AppleLanguages”数组,而是更新现有列表,以便将指定的语言移至顶部。

http://blah.example.com:8080/info/getips/

这将保留完整列表。只是重新排列值,以便所需的语言排在第一位。