web-dev-qa-db-ja.com

iOSアプリで言語を確認する

タスクは次のとおりです。2つのUIImageViewがあり、システム言語がウクライナ語の場合は現在のImageView1が必要であり、ウクライナ語(英語/ポーランド語など)でない場合は現在のImageView2が必要です。

私は試した :

println(NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguages"))

しかし、このコードは利用可能な言語のリストのみを提供します。私も試しました

var language: AnyObject? = NSLocale.preferredLanguages().first

しかし、どうすればこの変数を英語またはウクライナ語と比較できますか?

14
Pavel Zagorskyy

Swift 3このような言語コードを取ることができます

let preferredLanguage = NSLocale.preferredLanguages[0]

そして、それをコード文字列と比較する必要があります

if preferredLanguage == "en" {
    print("this is English")
} else if preferredLanguage == "uk" {
    print("this is Ukrainian")
}

あなたはコードを見つけることができます ここ

フランス語かどうかを確認する例...

/// 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
}
33
Jonauz

スウィフト4 キューにさらに多くの言語がある場合(preferredLanguageは「uk-US」などを返します)、最初にキューに入れたい場合。
次のように実行できます。

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

以下のコードを使用できますSwift 3

    if Bundle.main.preferredLocalizations.first == "en" {
        print("this is english")
    }else{
       print("this not english")
    }
1
Amr Angry

スウィフト5

Locale.current.regionCode // Optional("US")
Locale.current.languageCode // Optional("en")
Locale.current.identifier // en_US

extensionを使用

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

Locale.current.isKorean => false
0
susemi99