自上次更新以来,我无法将语言代码(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);