У меня есть несколько целей для моего приложения. Я пытаюсь локализовать их по-разному. Я обнаружил, что это довольно легко при работе с файлом Localizable.strings и макросом NSLocalizedString. Чтобы заставить это работать, я просто настраиваю целевое членство файла Localizable.strings для цели, с которой я работаю. Так что моя файловая структура проекта выглядит примерно так:Локализация приложения iOS для нескольких целей
- проекта
- Target1
- en.lproj
- Localizable.strings
- it.lproj
- Localizable. строки
- en.lproj
- target2
- en.lproj
- Localizable.strings
- it.lproj
- Localizable.strings
- en.lproj
- Target1
Теперь мой проект имеет 2 цели строится с совершенно разными английскими переводами. Совершенно, это то, что я хочу.
Мое затруднение входит в игру, когда я пытаюсь сделать то же самое для файлов * .strings, которые генерируются при локализации представления. Моя цель развертывания - 6.0, и я использую раскадровки с базовой интернационализацией. Поэтому, когда я добавить представление в моей структуре проекта будет выглядеть следующим образом:
- проекта
- Target1
- Base.lproj
- SomeStoryboard.storyboard
- en.lproj
- Localizable.strings
- SomeStoryboard.strings
- it.lproj
- Localizable.strings
- SomeStoryboard.струнные
- Base.lproj
- TARGET2
- en.lproj
- Localizable.strings
- SomeStoryboard.strings
- it.lproj
- Localizable.strings
- SomeStoryboard.strings
- en.lproj
- Target1
Моя цель состояла в том, чтобы каждая цели иметь различную локализацию для каждой цели, но сохранить ту же базовую раскадровку. Я также хотел избежать чего-то вроде: назвав строку string2 storyboard string-like что-то вроде REPLACEMENT_SomeStoryboard.string, а затем написал сценарий, который для каждого файла с именем такой в заданном целевом удалите SomeStoryboard.string и переименует REPLACEMENT_SomeStoryboard.string в SomeStoryboard.string.
Попытка # 1
Так что я пытался сделать, это удалить target1 en.lproj/SomeStoryboard.strings & it.lproj/SomeStoryboard.strings из членов target2. Но это также удалило базу Base.lproj/SomeStoryboard.storyboard из членства target2. Таким образом, в основном членство управлялось, как если бы это был один файл, что имеет смысл.
Попытка # 2
Вторая вещь, которую я попытался было добавить Target1 SomeStoryboard.storyboard в члены TARGET2, а также создать файл SomeStoryboard.strings и добавить, что членство TARGET2. Я попытался добавить этот дополнительный файл строк в фазу ресурсов копирования Bundle. Я также попытался добавить фазу «Копировать файлы» (после этапа «Ресурсы копирования»). В любом случае, похоже, только изредка заменяли SomeStoryboard.strings из target1. Таким образом, конечный результат заключался в том, что иногда target2 выбирал локализацию из target1 и иногда локализовался из target2.
Вы когда-нибудь находили подходящий ответ для этого? Я в том же месте. – edelaney05