как локализовать виджет сегодня расширений?

Наше приложение поддерживает несколько регионов и языков. Когда я сегодня разрабатываю виджет расширений и читаю Руководство по программированию расширений приложений, я все еще не могу найти решение для локализации. Даже если я создал файл Localize.strings как обычный проект Xcode, определите файл Localize.strings, например:

"scene_people_liked"="%d people like";

использовать :

#define NSLocalizedString(key, comment) \
            [[NSBundle bundleWithPath:moLocalizedPath] localizedStringForKey:(key) value:@"" table:@"Localizable"]

и назовите его:

NSLocalizedString(@"scene_people_liked", nil)

, это все еще не работает. У кого-нибудь есть представление об этой проблеме?


person kai chen    schedule 03.03.2015    source источник
comment
Включен ли строковый файл в комплект расширений или только в приложение?   -  person Tom Harrington    schedule 04.03.2015
comment
просто оставайтесь в приложении, нужно ли включить его в виджет сегодня?   -  person kai chen    schedule 05.03.2015
comment
@TomHarrington включен в расширение   -  person kai chen    schedule 06.05.2015


Ответы (2)


Убедитесь, что ваша цель TodayWidget имеет файлы Localizable.strings в целевом членстве.

person rockdaswift    schedule 22.02.2017
comment
Это должен быть правильный ответ, спасибо @rockdaswift - person Tai Le; 11.07.2020

займет некоторое время, я решил эту проблему. Если вы хотите локализовать свой виджет сегодня расширений, на самом деле у него нет другого шага, чтобы сделать это в обычном проекте.

но у него есть проблема с мусором, связанная с именем файла "Localize.strings", вы должны использовать "Localize" для именованного файла "Localize.strings" в обычном проекте。localize должна работать, но если вы используете то же имя, что и основное приложение или используйте ключевое слово "InfoPlist.String",

даже если протестировать все нормально, когда вы отлаживаете свой проект, но когда вы упаковываете его и устанавливаете устройство, вы обнаружите, что localize не может получить значение, поэтому вы должны определить имя клиента без "Localize.strings" или некоторых ключевых слов .

:)

person Community    schedule 13.03.2015
comment
Это не должно быть утвержденным ответом по ряду очевидных причин. - person albertodebortoli; 06.03.2020