IOs7 проблем с локализацията на множество сценарии

Използвам няколко сториборда и току-що реших да ги локализирам (.strings файловете са генерирани от Xcode).

Забелязвам, че във Фази на изграждане > Копиране на ресурси за пакет всички ресурси, свързани с локализацията, се показват в червено.

екранна снимка на Xcode

По време на изпълнение локализацията работи само на основния сценарий. Локализацията с Localizable.strings също работи. Но го няма в другите сценарии.

Опитах се да рестартирам Xcode, но това не промени нищо. (вж. Базова интернационализация и множество разкадровки не работят правилно)

Моите локализирани сторибордове бяха компилирани преди това. Ако добавя друга сценария, локализирам я и стартирам компилацията, тя се проваля с тази грешка:

*** Приложението се прекратява поради неуловено изключение „NSInvalidArgumentException“, причина: „Не може да се намери сценарий с име „Поддръжка“ в пакета NSBundle (...)

Имате ли идея за решаване на този проблем?


person Sylva1n    schedule 28.09.2013    source източник


Отговори (3)


Тази грешка вероятно се дължи на факта, че не сте внедрили един от повече езици, които сте избрали да локализирате в настройките на приложението си.

За да внедрите език в разкадровка:

  1. Изберете сценария
  2. В десния панел отидете на раздела Инспектор на файлове (първият отляво)
  3. В Локализация отметнете всички езици

Вече имате два начина да локализирате своя сценарийборд:

  • Или изберете да създадете .strings файл за вашия език, като изберете Локализируеми низове, това ще генерира списък с низове xcode, намерени във вашия сценарий.
  • Или можете да изберете да създадете „под“-сториборд, като изберете Interface Builder Cocoa Touch Storyboard, който създава различна версия на вашия сториборд за определен език.

Досега намерих само един начин да опреснявам файла .strings в xcode, ако добавите нови низове: просто махнете отметката и проверете отново езика и изберете „Замяна на файл“, когато бъдете попитани. Apple предоставя също инструмент, който можете да използвате в терминала. Най-накрая има скрипт, който прави то автоматично.

person Alexandre G.    schedule 07.10.2013

  • Отворете файла с сценария
  • Вижте десния панел, в първия раздел (идентификация) в секцията за локализация, махнете отметката от "База"
  • Трябва да получите подкана за диалогов прозорец, независимо от отговора, проблемът трябва да бъде отстранен.

Сега виждате, че фазите на изграждане са правилни и трябва да можете да стартирате проекта си.

person jdtogni    schedule 03.10.2013

Една от причините за червените Localizable.strings или други файлове за локализация, които не могат да бъдат копирани в „Ресурси за пакет за копиране“, може да бъде настройката за „Регион на локализиране за локализиране“ във вашите целеви настройки.

Този регион трябва да се добави към „Локализацията“ на вашия проект.

т.е. ако „Localization native development region“ е „en“, тогава „English“ трябва да се добави като Localization в настройките на вашия проект.

person Kaskraker    schedule 12.01.2014