У меня есть приложение, которое имеет несколько разных раскадровки, и использует базовую интернационализацию для локализации на французский язык. Main.storyboard, у которого есть файл .strings с переводом, загружает с французами просто отлично. Однако, когда я создаю новую раскадровку и представляю ее, она остается на английском языке. Я просто делал это, чтобы загрузить раскадровку раньше:Несколько раскадровки, не загружая локализацию
UIStoryboard *upcomingStoryboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
/// Code to present initial view controller.
Это просто загружает английский раскадровки. Затем я попробовал, следуя инструкции from this site, которые изменили мой код:
NSString *language = @"Base";
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *preferred = [[mainBundle preferredLocalizations] objectAtIndex:0];
if ([[mainBundle localizations] containsObject:preferred]) {
language = preferred;
}
NSBundle *bundle = [NSBundle bundleWithPath:[mainBundle pathForResource:language
ofType:@"lproj"]];
UIStoryboard *upcomingStoryboard = [UIStoryboard storyboardWithName:storyboardName bundle:bundle];
Всего это сделало вызвать приложение к сбою при загрузке раскадровки, которая, вероятно, потому, что там нет фактического раскадровка файла в fr.lproj
, просто .strings
файл. Кто-нибудь имел успех в этом?
Почему вы не можете использовать '[UIStoryboard storyboardWithName: storyboardName bundle: [NSBundle mainBundle]];'? Раскадровка, которую я использую в своем приложении, не является основной раскадрой, и она локализована без проблем. Если вы передадите 'nil' в аргумент bundle, то он не будет локализовать что-либо. Вот почему аргумент bundle существует. – Fogmeister
Я тоже пробовал это без везения. Вы используете базовую интернационализацию с файлом .strings для раскадровки? – macandyp
Вы передали главный пучок? то есть не только нуль. – Fogmeister