2012-11-13 26 views
2

我有一個調用休息Web服務的ios應用程序。我在我的應用程序中創建了一個屬性列表文件,其中包含將由服務器返回的錯誤代碼字典以及要顯示的相應消息。如何指定本地化屬性列表?

我想爲不同的語言有多個屬性列表文件。

我該如何讓應用程序根據語言環境提取特定的屬性列表?

回答

0

您說服務器正在生成錯誤代碼和消息。

所以我認爲有更多的方法來做到這一點。

首先,您可以在您的請求中向服務器發送區域標頭,以便服務器爲您執行所有本地化(在我看來,它不如解決方案2)。

所以我寧願讓服務器只返回錯誤代碼和處理客戶端消息的方式。 你可以在Xcode中創建一個語言項目,爲每種語言要支持: http://www.ibabbleon.com/iphone_app_localization.html#extract

在localizable.strings文件我會做到以下幾點:

"RestServiceXYErrorTitle_1" = "Authentication failed"; 
"RestServiceXYErrorMessage_1" = "Your credentials were wrong"; 
"RestServiceXYErrorTitle_2" = "Resource not available"; 
"RestServiceXYErrorMessage_2" = "The resource you requested is no longer available"; 
.... 

然後我會採取錯誤代碼由服務器返回,例如1,把它連同我的本地化字符串:

NSString *localizedTitleKey = [NSString stringWithFormat:@"RestServiceXYErrorTitle_%@", errorCode]; 
NSString *localizedMessageKey = [NSString stringWithFormat:@"RestServiceXYErrorMessage_%@", errorCode]; 
NSString *errorTitle = NSLocalizedString(localizedTitleKey,@""); 
NSString *errorMessage = NSLocalizedString(localizedMessageKey,@""); 

我認爲這將是一個很好的解決方案

+0

是的,我會實現的解決方案2,但有一種可能性,即從服務器發送的錯誤代碼是不在這裏處理,這將導致問題,這就是爲什麼我去財產清單.... – orak