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

Я не могу понять, как я могу локализовать сегодняшние расширения, я хочу создать файл Localize.strings как обычный проект xcode, который, например, имеет эту строку:

.en
    "Apple" = "Apple"

.it
    "Apple" = "Mela"

и я также хочу знать, как я могу локализовать имя виджета iOS 8 Today Extensions.

Я попытался создать Strings File в Xcode и попытался вставить это:

"CFBundleDisplayName" = "App Name";

а название не меняется...


person Piero    schedule 28.09.2014    source источник


Ответы (2)


Добавьте LSHasLocalizedDisplayName = YES в файл Info.plist и добавьте свои локализации в InfoPlist.strings, которые вы должны поместить в папку language.proj для каждого языка, например de.lproj для немецких версий.

Перед тестированием: - Очистите проект - Удалите приложение из симулятора. - Добавьте ссылки на папки language.proj в часть Supporting files расширения, чтобы включить их в раздел Copy bundle resources в Build Phases цели вашего расширения.

person frankish    schedule 29.09.2014
comment
спасибо за ваш ответ, и где я должен вставить локализованное имя? - person Piero; 29.09.2014
comment
спасибо, а файл InfoPlist.strings где находится? я должен его создать? - person Piero; 29.09.2014
comment
папки jp.lproj, fr.lproj, it.lproj... - person frankish; 29.09.2014
comment
Удалите приложение из симулятора и очистите проект перед попыткой. - person frankish; 29.09.2014
comment
я сделал все, теперь имя виджета меняется, но NSLocalizedString(@Apple, @), например, не меняется, в InfoPlist.strings я добавляю это: Apple = Apple в .en и это, например Apple = Mela в .it, но работает только CFBundleDisplayName... есть предложения? - person Piero; 29.09.2014
comment
InfoPlist.strings предназначен только для значений в Info.plist. Попробуйте Localizable.strings для других - person frankish; 29.09.2014

Для строк в вашем содержащем приложении и Today Widget могут использоваться одни и те же файлы локализации. Вы можете просто выбрать Localizable.string и в File inspector проверить цель виджета «Сегодня» в Target Membership. Затем все ваши NSLocalizedString в виджете «Сегодня» используют один и тот же виджет с содержащимися строками локализации.

Для имени приложения виджета «Сегодня» просто добавьте файл InfoPlist.strings и

"CFBundleDisplayName" = "Translated Name";
"CFBundleName" = "Translated Name";

Просто запустите содержащее приложение для тестирования.

person William Hu    schedule 22.10.2019