2015-03-22 16 views
6

L'attività è: Ho due UIImageViews e desidero presentare ImageView1 se la lingua del sistema è ucraino e, se non è ucraino (inglese/polacco, ecc.), Desidero presentare ImageView2.Controllare la lingua nell'app per iOS

ho provato:

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

ma questo codice dà solo l'elenco delle lingue disponibili. Ho anche provato

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

ma come posso confrontare questa variabile con l'inglese o la lingua ucraina?

+0

Did Registro È il risultato di 'NSLocale.preferredLanguages ​​() FIRST'? Cosa ti ha dato. – Wain

+0

mi dà Opzionale (it) –

risposta

18

Swift 3 Si può prendere il codice della lingua come questo

let preferredLanguage = NSLocale.preferredLanguages[0] 

E allora avete bisogno di confrontarlo con la stringa di codice

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

È possibile trovare i codici here

Un esempio per verificare se il francese ...

/// 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

perfetto, ho dimenticato di trasmettere la mia variabile, grazie –

+0

Tieni presente che stai scartando un opzionale usando 'as String', e potrebbe essere saggio usarlo entro un' se Let' costruzione. Solo i miei due centesimi. E vuoi veramente vedere il primo/[0] delle lingue preferite, e non l'intero array? – holroy

+0

Penso che la domanda sia stata posta in merito a una lingua. Molto probabilmente non hai bisogno di più lingue. Se lo fai, puoi semplicemente prendere tutto l'array e lavorare con ciascuno dei valori. Inoltre, mi piacerebbe credere che ci sia sempre una lingua nella matrice, ma poiché sarebbe un'ipotesi, ho aggiornato la mia risposta. – Jonauz

1

è possibile utilizzare il codice qui sotto funziona bene con rapidi 3

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

Swift 4 Se si dispone di più lingue in coda (PreferredLanguage Will ritorna: "UK-USA", per esempio) ma tu vuoi prima di tutto.
Si può fare in questo modo:.

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