Есть ли официальный способ установить резервный локализованный язык в приложении iOS?

При разработке приложений для iOS я не мог найти официального способа установить запасной локализованный язык. Я хочу использовать английский, если язык пользователя не включен в локализацию моего приложения. Я пробовал использовать базовую интернационализацию, однако не все работает для всех языков. Теперь замените base.lproj на en.lproj, только языки, добавленные в мое приложение, работают хорошо, а другие языки не работают. (Английский не используется, вместо этого при выборе русского используется корейский ...)

Некоторые сайты говорят об этом, устанавливают резервный язык со значением «Локализационная собственная область разработки», однако это не сработало. Есть ли у вас какие-либо идеи? Спасибо.


person Yumenosuke Koukata    schedule 04.07.2014    source источник
comment
В OS X это выбор пользователя, а не разработчика. Если iOS когда-нибудь получит это, я полагаю, что это будет сделано так же.   -  person hamstergene    schedule 04.07.2014
comment
Спасибо, но вы понимаете, что я хочу сказать? Извините, это может быть из-за моего плохого английского.   -  person Yumenosuke Koukata    schedule 04.07.2014


Ответы (1)


Ваша проблема очень похожа на мою. Потратил много времени на поиски решения, пока, наконец, не придумал этот подход (ссылка на мою проблему и текст ниже).

iOS Localizable.strings не извлекаются из файла BASE


Нашел способ определить, есть ли у меня файл локализации для текущего выбранного языка, и если нет, я могу извлечь из файла локализации Base.

NSString *path = [[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"];
if (path == nil)
{
    path = [[NSBundle mainBundle] pathForResource:@"Base" ofType:@"lproj"];
}

NSLocalizedStringFromTableInBundle(@"TAB_TITLE_Camera", @"Localizable", [NSBundle bundleWithPath:path], @"");

Простое решение, которое делает все, что мне нужно.

Работает как на iOS 6.1, так и на iOS 7.1.


Если у вас нет файла локализации для текущего выбранного языка или вы хотите указать конкретный язык, просто установите значение для pathForResource, и вы должны получить нужный язык.

person GRW    schedule 19.09.2014
comment
Лучший ответ о локализации для iOS. Спасибо - person Siamaster; 27.07.2016