2015-03-22 17 views
6

Nhiệm vụ là: Tôi có hai UIImageViews và tôi muốn ImageView1 hiện tại nếu ngôn ngữ hệ thống là tiếng Ukraina và nếu đó không phải là tiếng Ukraina (tiếng Anh/tiếng Ba Lan, v.v.), tôi muốn có ImageView2 hiện tại.Kiểm tra ngôn ngữ trong ứng dụng iOS

tôi đã cố gắng:

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

nhưng mã này chỉ cung cấp cho danh sách các ngôn ngữ có sẵn. Tôi cũng đã thử

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

nhưng làm cách nào tôi có thể so sánh biến này với tiếng Anh hoặc tiếng Ukraina?

+0

Bạn đã đăng nhập kết quả của 'NSLocale.preferredLanguages ​​(). Đầu tiên'? Nó đã cho bạn cái gì. – Wain

+0

nó mang lại cho tôi tùy chọn (en) –

Trả lời

18

Swift 3 Bạn có thể lấy mã ngôn ngữ như thế này

let preferredLanguage = NSLocale.preferredLanguages[0] 

Và sau đó bạn cần phải so sánh nó với chuỗi đang

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

Bạn có thể tìm mã here

Ví dụ để kiểm tra xem tiếng Pháp ...

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

hoàn hảo, tôi quên bỏ biến của mình, cảm ơn bạn –

+0

Hãy lưu ý rằng bạn đang mở một tùy chọn bằng cách sử dụng 'làm String' và có thể sử dụng nó trong' if let' xây dựng. Chỉ cần hai xu của tôi. Và bạn có thực sự chỉ muốn nhìn vào/[0] đầu tiên của các ngôn ngữ ưa thích, chứ không phải toàn bộ mảng? – holroy

+0

Tôi nghĩ câu hỏi được đặt ra liên quan đến một ngôn ngữ. Bạn rất có thể không cần nhiều ngôn ngữ. Nếu bạn làm thế, bạn có thể lấy tất cả mảng và làm việc với từng giá trị. Ngoài ra, tôi muốn tin rằng luôn luôn có một ngôn ngữ trong mảng, nhưng vì nó sẽ là một giả định, tôi đã cập nhật câu trả lời của mình. – Jonauz

1

bạn có thể sử dụng mã dưới đây nó hoạt động tốt với nhanh chóng 3

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

Swift 4 Nếu bạn có nhiều ngôn ngữ trên hàng đợi (preferredLanguage sẽ trở lại: "uk-Mỹ" chẳng hạn) nhưng bạn muốn đầu tiên của nó.
Bạn có thể làm như sau:

let preferredLanguage = NSLocale.preferredLanguages[0] 
if preferredLanguage.starts(with: "uk"){ 
print("this is Ukrainian") 
} else{ 
print("this is not Ukrainian") 
} 
Các vấn đề liên quan