检查iOS应用中的语言

Pav*_*kyy 12 localization ios nslocale swift

任务是:我有两个UIImageViews,如果系统语言是乌克兰语,我想要现在的ImageView1,如果它不是乌克兰语(英语/波兰语等),我想要现在的ImageView2.

我试过了 :

println(NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguages"))
Run Code Online (Sandbox Code Playgroud)

但此代码仅提供可用语言列表.我也试过了

var language: AnyObject? = NSLocale.preferredLanguages().first
Run Code Online (Sandbox Code Playgroud)

但是如何将这个变量与英语或乌克兰语进行比较呢?

Jon*_*auz 30

Swift 3 您可以使用这样的语言代码

let preferredLanguage = NSLocale.preferredLanguages[0]
Run Code Online (Sandbox Code Playgroud)

然后你需要将它与代码字符串进行比较

if preferredLanguage == "en" {
    print("this is English")
} else if preferredLanguage == "uk" {
    print("this is Ukrainian")
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到代码

检查法语的一个例子......

/// Is Device use french language 
/// Consider, "fr-CA", "fr-FR", "fr-CH" et cetera
///
/// - Returns: Bool
static func isFrench() -> Bool {
    return NSLocale.preferredLanguages[0].range(of:"fr") != nil
}
Run Code Online (Sandbox Code Playgroud)


sus*_*i99 8

斯威夫特 5

Locale.current.regionCode // Optional("US")
Locale.current.languageCode // Optional("en")
Locale.current.identifier // en_US
Run Code Online (Sandbox Code Playgroud)

extension

extension Locale {
  var isKorean: Bool {
    return languageCode == "ko"
  }
}

Locale.current.isKorean => false
Run Code Online (Sandbox Code Playgroud)


Grz*_*sza 5

Swift 4如果队列中有更多语言(preferredLanguage 将返回:例如“uk-US”),但您希望排在第一个。
你可以这样做:

let preferredLanguage = NSLocale.preferredLanguages[0]
if preferredLanguage.starts(with: "uk"){
 print("this is Ukrainian")
 } else{
 print("this is not Ukrainian")
 }
Run Code Online (Sandbox Code Playgroud)