0
我正在運行在2種語言英語和阿拉伯語的應用程序。所以用戶可以選擇他想要的語言,應用程序以該語言顯示。如何在NSUserDefaults Swift中保存應用程序語言?
我使用localization
顯示靜態文本。我用英語和阿拉伯語創建了本地化字符串文件。
所以,現在,我要保存用戶所選擇的語言中NSUserDefaults
,並以此來實現localization
。我怎樣才能做到這一點?
我正在運行在2種語言英語和阿拉伯語的應用程序。所以用戶可以選擇他想要的語言,應用程序以該語言顯示。如何在NSUserDefaults Swift中保存應用程序語言?
我使用localization
顯示靜態文本。我用英語和阿拉伯語創建了本地化字符串文件。
所以,現在,我要保存用戶所選擇的語言中NSUserDefaults
,並以此來實現localization
。我怎樣才能做到這一點?
不喜歡
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
}
}
其實我有兩個按鈕。一個用於英語,另一個用於阿拉伯語。所以假設用戶選擇英文,我想將它保存在UserDefaults中。在保存到UserDefaults時是否有任何特定的語言鍵?我其實對Swift來說是新手,所以我對基礎知識並不瞭解。這將是巨大的,如果你能幫助我 – Jas
@Jas - 雅,我們可以做只是等待,我將修改我的答案 –
@Jas - 你用一個按鈕或兩個按鈕yiour概念 –