ios - NSLocale.current.language 返回错误值

标签 ios swift translation nslocale

当我在 iPhone 设置中更改语言时,它不会反射(reflect)在 NSLocale.current.language 中。

这是因为我的应用不支持西类牙语吗?无论如何,我希望它能够得到反射(reflect)。最终,我试图获取用户首选语言的 ISO 639-1(2 位数字)区域代码。

代码:

guard var preferredLanguage = NSLocale.preferredLanguages.first else { return }

for language in NSLocale.preferredLanguages {
    print("preferredLanguage: \(language)")
}

print("languageCode: \(NSLocale.current.languageCode)")
print("regionCode: \(NSLocale.current.regionCode)")

输出:

preferredLanguage: es-US
preferredLanguage: haw-US
preferredLanguage: en-US
languageCode: Optional("en")
regionCode: Optional("US")

最佳答案

自 iOS 11 起,NSLocale.current 只能返回您的应用支持的语言。

更多信息可以在这里找到:

https://stackoverflow.com/a/47678964/173623

https://jaanus.com/ios-11-changes-localized-date-handling/

关于ios - NSLocale.current.language 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50004658/

相关文章:

iPhone 多 View 旋转 hell

ios - -stdlib=libc++ 的无效部署目标

objective-c - 如何从 Objective-C 调用 Swift 可变参数方法?

c++ - 为什么我的 C++ Qt UI 被翻译了,但程序中的 QString 却没有被翻译?

Django 翻译 : add custom translation

ios - 当委托(delegate)不是 UIViewController 时不调用 UIImagePickerControllerDelegate 方法

Swift 可选运算符的使用

xcode - Swift distance() 方法抛出 fatal error : can not increment endIndex

java - 桌面应用程序中的自动翻译

ios - 最后听到的歌曲( swift )