タスクは次のとおりです。2つのUIImageViewがあり、システム言語がウクライナ語の場合は現在のImageView1が必要であり、ウクライナ語(英語/ポーランド語など)でない場合は現在のImageView2が必要です。
私は試した :
println(NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguages"))
しかし、このコードは利用可能な言語のリストのみを提供します。私も試しました
var language: AnyObject? = NSLocale.preferredLanguages().first
しかし、どうすればこの変数を英語またはウクライナ語と比較できますか?
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
}
スウィフト4 キューにさらに多くの言語がある場合(preferredLanguageは「uk-US」などを返します)、最初にキューに入れたい場合。
次のように実行できます。
let preferredLanguage = NSLocale.preferredLanguages[0]
if preferredLanguage.starts(with: "uk"){
print("this is Ukrainian")
} else{
print("this is not Ukrainian")
}
以下のコードを使用できますSwift 3
if Bundle.main.preferredLocalizations.first == "en" {
print("this is english")
}else{
print("this not english")
}
スウィフト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