2015-03-22 11 views
6

Aufgabe ist: Ich habe zwei UIImageViews, und ich möchte ImageView1 präsentieren, wenn Systemsprache ist Ukrainisch, und wenn es nicht Ukrainisch (Englisch/Polnisch etc) Ich möchte präsentieren ImageView2.Sprache in iOS-App überprüfen

Ich habe versucht:

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

aber dieser Code gibt nur Liste der verfügbaren Sprachen. Ich versuchte auch

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

aber wie kann ich diese Variable mit Englisch oder Ukrainisch Sprache vergleichen?

+0

Haben Sie sich das Ergebnis von 'NSLocale.preferredLanguages ​​() first'? Was hat es dir gegeben? – Wain

+0

es gibt mir Optional (en) –

Antwort

18

Swift 3 Sie können den Sprachcode nehmen wie diese

let preferredLanguage = NSLocale.preferredLanguages[0] 

Und dann müssen Sie es mit dem Code-String

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

Sie Codes finden here

kann vergleichen Ein Beispiel, um zu überprüfen, ob Französisch ...

/// 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 
} 
+0

perfekt, ich habe vergessen, meine Variable zu werfen, danke –

+0

Seien Sie sich bewusst, dass Sie eine optionale Verwendung der 'as String' auspacken, und es könnte möglicherweise klug sein, das innerhalb eines' if zu verwenden Let' Konstruktion. Nur meine zwei Cent. Und willst du wirklich nur die erste/[0] der bevorzugten Sprachen sehen und nicht das gesamte Array? – holroy

+0

Ich denke, die Frage war in Bezug auf eine Sprache gefragt. Sie benötigen wahrscheinlich nicht mehrere Sprachen. Wenn Sie dies tun, können Sie einfach alle Array und arbeiten mit jedem der Werte. Außerdem würde ich gerne glauben, dass es immer eine Sprache im Array gibt, aber weil es eine Annahme wäre, habe ich meine Antwort aktualisiert. – Jonauz

1

können Sie den Code unten verwenden Sie es mit schnellen 3

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

Swift 4 Wenn Sie mehr Sprachen in der Warteschlange haben gut funktioniert (preferredLanguage wird zurückkehrt: "uk-US" zum Beispiel) aber du willst zuerst davon.
Sie können es tun, wie folgt:.

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