Прежде всего, я не понимаю, почему вы не можете просто использовать NSLocalizedString
при настройке текста метки, он делает именно то, что вам нужно, загружая соответствующую версию текста, в соответствии с языком устройства.
В любом случае, я думаю, вы могли бы найти что-то полезное здесь .
Я действительно сделал что-то подобное, с шестью языками и только одним Nib, но в моем случае я мог бы иметьязык изменился внутри приложения, поэтому мне нужно было принудительно сказать ему, чтобы я загружал локализованную версию строки из определенного пакета.
Вот точный код, который должен помочь вам в случае, если ваша проблемабольше похоже на мой и простой NSLocalizedString недостаточно:
NSString* path= [[NSBundle mainBundle] pathForResource:[[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0] ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
someLabel.text = [languageBundle localizedStringForKey:@"textKey" value:@"" table:nil];
Поскольку у вас, вероятно, будет более одной метки, было бы неплохо сохранить путь в качестве свойства класса и установить его в viewDidLoad,так что вы сможете получить к нему доступ из любого метода / функции внутри этого класса.