如何指定本地化属性列表?

时间:2012-11-13 06:16:04

标签: ios

我有一个ios应用程序正在调用其他Web服务。我在我的应用程序中创建了一个属性列表文件,其中包含将由服务器返回的错误代码字典以及要显示的相应消息。

我正在考虑为不同语言提供多个属性列表文件。

如何让应用根据区域设置选择特定的属性列表?

1 个答案:

答案 0 :(得分: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,@"");

我认为这将是一个很好的解决方案