如何获取系统设备语言,swift iOS

Bha*_*ara 9 ios swift

如何使用 swift iOS 获取系统设备语言,而不是应用程序语言,我没有遇到任何问题。

我想从设置 -> 常规 ->用户设置语言的语言获取设备语言。

我尝试了下面的代码:

let appLang = Locale.preferredLanguages
print("appLang ======== \(appLang)")

let bungleLang = Bundle.main.preferredLocalizations
print("bungleLang ======== \(bungleLang)")

let code = Locale.autoupdatingCurrent.languageCode
print("code ======== \(code ?? "")")

if let code = Locale.current.languageCode {
    print("Locale.current.languageCode ======== \(code)")
}

print("currentLanguage ======== \(Localize.currentLanguage())")

let local = getPreferredLocale()
print("local ======== \(local)")
print("languageCode = \(local.languageCode ?? "")")
print("regionCode = \(local.regionCode ?? "")")
Run Code Online (Sandbox Code Playgroud)

输出:

appLang ======== ["en"]
bungleLang ======== ["en"]
code ======== en
Locale.current.languageCode ======== en
currentLanguage ======== en
local ======== en (fixed)
languageCode = en
regionCode = 
Run Code Online (Sandbox Code Playgroud)

因此,我没有获得用户在设备设置中设置的设备语言。

问题:

可能还是不可能?我尝试了一切。

所有代码都只获取enEnglish 但是如果用户将语言设置为意大利语呢?我们如何获得意大利语it

注意:我再说一遍,我不是在谈论应用程序语言,而是在谈论设备语言。

编辑: 在模拟器和真实设备中都不起作用

  • 在模拟器 iPhone 11、操作系统 14.4 中检查

  • 在真机 iPhone 7、操作系统 13.3 中检查

  • Xcode 版本 12.4

还尝试过: UserDefaults.standard.stringArray(forKey: "AppleLanguages")

更新和解决 感谢 @Charnpreet Singh 从编辑方案,您需要更改应用程序语言,最重要的是,所有变量打印的结果与您在设备设置中看到的结果相同。 在此输入图像描述

Cha*_*ngh 7

尝试这个

UserDefaults.standard.stringArray(forKey: "AppleLanguages")
Run Code Online (Sandbox Code Playgroud)

输出将类似于 - ["en-US"]

它将返回一个包含语言代码的数组,第一个索引是 iPhone 设置中设置的当前语言(如果设置中的首选语言顺序为空,它将是一个单项数组。)

  • 这对我有用。检查应用程序目标下的应用程序语言和应用程序区域到系统的管理方案。 (2认同)