2016-08-25 61 views
0

我正在運行在2種語言英語阿拉伯語的應用程序。所以用戶可以選擇他想要的語言,應用程序以該語言顯示。如何在NSUserDefaults Swift中保存應用程序語言?

我使用localization顯示靜態文本。我用英語和阿拉伯語創建了本地化字符串文件。

所以,現在,我要保存用戶所選擇的語言中NSUserDefaults,並以此來實現localization。我怎樣才能做到這一點?

回答

1

不喜歡

func isDeviceLanguageRTL() -> Bool { 
return (NSLocale.characterDirectionForLanguage(NSLocale.preferredLanguages()[0]) == .RightToLeft) 
} 

最初檢查可能是您的應用程序的語言是阿拉伯語或英語

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

if self.isDeviceLanguageRTL() 
{ 
// it is Arabic 

} 
} 

次在您的按鈕操作保存

一套標記爲您的按鈕例如eng = 0和arabic = 1;

確定這個假設不喜歡

func buttonTapped(sender: UIButton) 
{ 
    let userDefaults = NSUserDefaults.standardUserDefaults() 
    if sender.tag == 1 
{ 
    // english 
    userDefaults.setObject("En", forKey: "AppleLanguages") 
} else 
{ 
    //arbaic 
    userDefaults.setObject("AR", forKey: "AppleLanguages") 
} 
} 

檢索

if let getlan = NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguages") as? String { 
     if getlan == "En" { 
       //English 
     } 
     else { 
       //Arabic 
     } 
    } 
+0

其實我有兩個按鈕。一個用於英語,另一個用於阿拉伯語。所以假設用戶選擇英文,我想將它保存在UserDefaults中。在保存到UserDefaults時是否有任何特定的語言鍵?我其實對Swift來說是新手,所以我對基礎知識並不瞭解。這將是巨大的,如果你能幫助我 – Jas

+0

@Jas - 雅,我們可以做只是等待,我將修改我的答案 –

+0

@Jas - 你用一個按鈕或兩個按鈕yiour概念 –

相關問題