如何在NSUserDefaults Swift中保存应用程序语言?

时间:2016-08-25 05:34:08

标签: ios swift nsuserdefaults

我正在开发一款以2种语言运行的应用英语阿拉伯语。因此,用户可以选择他想要的语言,并以该语言显示应用程序。

我正在使用localization来显示静态文本。我用英语和阿拉伯语创建了本地化字符串文件。

现在,我想保存用户在NSUserDefaults中选择的语言,并使用它来实现localization。我怎么能这样做?

1 个答案:

答案 0 :(得分: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
         }
   }