【发布时间】:2021-05-13 08:56:26
【问题描述】:
如何获取系统设备语言,使用 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 ?? "")")
输出:
appLang ======== ["en"]
bungleLang ======== ["en"]
code ======== en
Locale.current.languageCode ======== en
currentLanguage ======== en
local ======== en (fixed)
languageCode = en
regionCode =
所以我没有得到用户在他的设备设置中设置的设备语言。
问题:
有没有可能?我什么都试过了。
所有代码只获得en 或英语,但如果用户将语言设置为意大利语呢?我们如何才能获得 Italian 或 it?
注意:我再次说我不是在谈论应用语言,我是在谈论设备语言。
编辑: 模拟器和真机都不行
-
已在模拟器 iPhone 11、OS 14.4 中签入
-
已在真机 iPhone 7、OS 13.3 中签入
-
Xcode 12.4 版
也试过了: UserDefaults.standard.stringArray(forKey: "AppleLanguages")
更新和解决 感谢@Charnpreet Singh 从编辑方案中,您需要更改应用程序语言,最重要的是,所有变量都会打印出与您在设备设置中看到的结果相同的结果。
【问题讨论】:
-
这能回答你的问题吗? How to get current language code with Swift?
-
@Raptor 不,我也尝试了该链接中的所有内容。你可以检查我上面的代码并输出,谢谢。