У меня есть приложение iOS, локализованное на нескольких языках. У меня есть файлы Localizable.strings для английского, голландского и голландского (Бельгия). Проблема в том, что, когда голландский язык установлен как язык устройства, а Бельгия - страна, используются голландские строки, а не нидерландско-бельгийские строки.iOS неправильная локализация
Я добавил некоторые протоколирование, чтобы убедиться, что правильный язык установлен на устройстве, и это, кажется правильным:
NSLocale *locale = [NSLocale currentLocale];
NSString *language = [locale displayNameForKey:NSLocaleIdentifier
value:[locale localeIdentifier]];
NSLog(@"language %@", language);
Это печатает
2015-04-09 11:49:26.227 MyTestApp[222:7459] language Nederlands (België)
Но если я попробуйте получить строку, используя NSLocalizedString. Я получаю голландский ресурс, а не голландскую Бельгию.
Я тестировал это на iPhone 5s под управлением 8.1 и на нескольких 7.1/8.1 симуляторах, и я не могу заставить его работать. Интересно, что если я решительно установил язык на голландский (Бельгия) в XCode в разделе «Редактировать схему» -> «Язык приложения», используется правильный язык.