如何获得当前的语言代码与斯威夫特?

我想在我的应用程序中使用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!