2015-03-22 37 views
6

Görev: İki UIImageView var ve sistem dili Ukraynaca ise ImageView1 istiyorum ve Ukraynaca değilse (İngilizce/Lehçe vb) mevcut ImageView2 istiyorum. iOS uygulamasında dili kontrol edin

Denedim:

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

ama bu kod mevcut dillerin tek listesini verir. Ayrıca, bu değişkeni İngilizce veya Ukraynaca diliyle nasıl karşılaştırabilirim?

+0

Eğer 'NSLocale.preferredLanguages ​​sonucunu log mı() first'? Sana ne verdi? – Wain

+0

bana Optional (en) –

cevap

18

Swift 3 Bu

let preferredLanguage = NSLocale.preferredLanguages[0] 

gibi dil kodu alabilir Ve sonra

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

Sen kodları here

bulabilirsiniz kod dizesi ile karşılaştırmak gerekir Fransızca ...

olup olmadığını kontrol etmek için bir örnek (: "Uk-ABD" örneğin preferredlanguage olacak getiri)
/// 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

mükemmel verir, değişkemi yazmayı unuttum, teşekkürler –

+0

İsteğe bağlı olarak 'String' kullanarak bir isteğe bağlıyor olduğunuzu unutmayın ve bunu bir "eğer" içinde kullanmak akıllıca olabilir yapalım. Sadece iki sentim. Ve gerçekten sadece tüm diziyi değil, tercih edilen dillerin ilkini/[0] göz atmak ister misiniz? – holroy

+0

Sanırım soru tek bir dil için soruyordu. Büyük olasılıkla birden çok dile ihtiyacınız yoktur. Bunu yaparsanız, tüm diziyi alabilir ve her bir değerle çalışabilirsiniz. Ayrıca, dizide her zaman bir dil olduğuna inanıyorum ama bir varsayım olacağı için cevabımı güncelledim. – Jonauz

1

bunu hızlı 3

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

Swift 4 sıranın üzerinde daha fazla dil varsa ile çalışıyor aşağıdaki kodu kullanabilir ama önce sen istiyorsun.
Böyle yapabilirsiniz:.

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