【发布时间】:2014-12-21 14:33:22
【问题描述】:
自上次更新以来,我无法将语言代码(en、fr 等...)翻译成各自的名称(英语、法语等...)。
它适用于真实设备,但不适用于模拟器。它使用以前版本的 Xcode 工作。我知道在发行说明中写到[NSLocale currentLocale] 在某些情况下可能会返回en_US,但这并不能解释为什么它们不再被“翻译”。我使用此代码:
NSString* lang = @"en";
NSLog(@"%@",
[[NSLocale currentLocale]
displayNameForKey:NSLocaleIdentifier
value:lang]
);
显示(null),而不是English。
问题是我的应用程序因此在某些地方崩溃,所以我想知道是否有解决方法。
奇怪的是,Apple 给出的以下示例运行良好。
NSLocale *frLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"];
NSString *displayNameString = [frLocale displayNameForKey:NSLocaleIdentifier value:@"fr_FR"];
NSLog(@"displayNameString fr_FR: %@", displayNameString);
displayNameString = [frLocale displayNameForKey:NSLocaleIdentifier value:@"en_US"];
NSLog(@"displayNameString en_US: %@", displayNameString);
【问题讨论】:
标签: ios objective-c xcode nslocale xcode6.1