2014-10-10 122 views
-2

我有一個選項,如阿拉伯語和英語在homepage.if用戶選擇一個阿比奇,那麼整個應用程序將顯示阿比奇language.i已聽到關於nslocalizedstring我也找到了解決方案在here。 我不清楚如何顯示一個enitre app.i可能有十個視圖控制器那麼我將如何從家裏改變視圖控制器。如何爲此創建全局文件。如何在iOS中更改應用程序語言阿拉伯語或英語?

在此先感謝。

+0

http://stackoverflow.com/questions/34130853/how-to-force-an-app-to-change-language-in-ios-objective-c/34131794#34131794 – user3182143 2015-12-09 08:36:47

回答

1

NSLocalizedString通過遵循OS語言設置工作。所以你爲每種語言創建一個字符串文件,而不是硬編碼你的字符串。然後,應用程序將根據用戶設備設置自動顯示正確的語言。我不認爲(儘管我可能是錯的),這種方法適用於一個按鈕。您可以在按鈕按下時手動加載字符串文件。另一種解決方案是充滿if語句的應用程序來加載正確的語言。

+0

感謝您的建議! !我已經完成了這個,不需要檢查條件。 – karthikeyan 2014-10-13 09:27:24

+0

如果這解決了您的問題,請將其標記爲幫助他人的正確答案。 – 2014-10-21 08:44:37

2

試試這個tutorial它貫穿您需要創建的整個配置和文件。你不需要在ViewController中更改10個ViewController語言,只需要將用戶選擇的語言設置爲NSUserDefault值,稍後在ViewController中檢查它是否需要根據語言執行特定的操作。

這以後設置語言爲阿拉伯語

NSUserDefaults*userDefaults=[NSUserDefaults standardUserDefaults]; 
[userDefaults setObject:[NSArray arrayWithObjects:@"ar", @"en", nil]; 

這對於英語

[userDefaults setObject:[NSArray arrayWithObjects:@"en", @"ar", nil]; 

然後在你的ViewControllers你可以檢查使用此

- (NSString*) getLanguage{ 

    NSArray* languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]; 

    NSString *preferredLang = [languages objectAtIndex:0]; 

    return preferredLang; 
} 

,故事情節和NSLocalizedString知道它應該從其預期的字符串文件自動加載哪種語言使用您爲AppleLanguages鍵值的位置。

+0

感謝您的建議!!!我已經做到了這一點。 – karthikeyan 2014-10-13 09:27:55

+0

那麼這是否解決了您的問題,或者您仍然有問題? – 2014-10-17 15:14:47

相關問題