От последната актуализация не мога да преведа кода на езика (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);