如何获得当前的语言代码与斯威夫特?
我想在我的应用程序中使用Swift编写设备的语言代码(en,es …)。 怎么能得到这个?
我正在尝试这个:
var preferredLanguages : NSLocale! let pre = preferredLanguages.displayNameForKey(NSLocaleIdentifier, value: preferredLanguages)
但是这返回零。
谢谢!
我想你想要这个:
let pre = NSLocale.preferredLanguages()[0]
Swift 3
let pre = Locale.preferredLanguages[0]
你的方法是返回零,因为你发送消息到一个零对象:
var preferredLanguages : NSLocale! // <- Here you never initialize it to anything let pre = preferredLanguages.displayNameForKey(NSLocaleIdentifier, value: preferredLanguages) // ^^^ ... and so you send something to nil, which returns nil
在Swift 3
let langStr = Locale.current.languageCode
要获取您的应用中使用的当前语言(不同于首选语言)
NSLocale.currentLocale().objectForKey(NSLocaleLanguageCode)!
在Swift 3:
NSLocale.current.languageCode
区分应用程序语言和设备语言环境语言是很重要的(下面的代码在Swift 3中 )
将返回设备语言:
let locale = NSLocale.current.languageCode
将返回应用程序的语言:
let pre = Locale.preferredLanguages[0]
迅速3
let prefferedLanguage = Locale.preferredLanguages[0] as String print (prefferedLanguage) //en-US let arr = prefferedLanguage.components(separatedBy: "-") let deviceLanguage = arr.first print (deviceLanguage) //en
你可以使用下面的代码,它工作正常与SWIFT 3
var preferredLanguage : String = Bundle.main.preferredLocalizations.first!