Локализация объектов раскадровки и базовых объектов. Как использовать одинаковые файлы?

Я хочу реализовать локализацию в Xcode 6, и, кажется, все работает хорошо.

После того, как я нажал кнопку локализации в раскадровке, Xcode создал два разных файла для каждого языка, который я использую.

Это файл локализации:

/* Class = "IBUIButton"; normalTitle = "More\nApps"; ObjectID = "F2X-dg-Vvg"; */
"F2X-dg-Vvg.normalTitle" = "More\nApps";

/* Class = "IBUIButton"; normalTitle = "Parents"; ObjectID = "kwk-af-Aei"; */
"kwk-af-Aei.normalTitle" = "Parents";

/* Class = "IBUIButton"; normalTitle = "Unlock all puzzles"; ObjectID = "tFb-hm-HC6"; */
"tFb-hm-HC6.normalTitle" = "Unlock all";

Мой вопрос в том, как я могу использовать этот код ниже, чтобы получить локализованную строку:

NSString *str = NSLocalizedString(@"kwk-af-Aei", nil);

Прямо сейчас он возвращает строку kwk-af-Aei, но я ожидаю получить Parents.

Означает ли это, что я должен дублировать локализованные строки для раскадровки и для написания своего кода? Я имею в виду использовать разные файлы?


person Matrosov Alexander    schedule 26.01.2015    source источник
comment
Что происходит, когда вы пытаетесь NSLocalizedString(@"kwk-af-Aei.normalTitle", nil); ?   -  person cjwirth    schedule 27.01.2015


Ответы (1)


NSLocalizedString для файла Localizable.strings. Вам нужно использовать NSLocalizedStringFromTable с определенной таблицей, подобной этой.

// Main.strings is localized table for Main.storyboard.
NSString *str = NSLocalizedStringFromTable(@"SEt-7V-WkD.text", @"Main", @"");

введите здесь описание изображения

person bluedome    schedule 27.01.2015