Со времени последнего обновления я не могу перевести код языка (en, fr и т. Д.) В их соответствующие имена (английский, французский и т. Д.).Перевести код языка с Xcode 6.1 с помощью NSLocale
Он работает на реальном устройстве, но не в эмуляторе. Он работал с использованием прежних версий 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);
Возможный дубликат [NSLocale currentLocale всегда возвращает «en \ _US» не текущий язык пользователя] (http://stackoverflow.com/questions/1522210/nslocale-currentlocale-always-returns-en-us-not-users- current-language) – Zorayr