XCode - несколько целей, несколько * интернационализированных * имен?
-
05-07-2019 - |
Вопрос
У меня есть интернационализированный проект iPhone. В различных файлах $ {lang} .lproj / InfoPlist.strings
у меня есть один ключ, CFBundleName = " Имя моего приложения "
.
Это хорошо работает для одной цели, но я не могу заставить ее работать для нескольких целей.
Мне бы хотелось иметь несколько переведенных InfoPlistMyApp.strings
для основной цели, а также несколько файлов InfoPlistMyApp Lite .strings
для облегченная версия. Но я не могу понять, как это настроить. Кажется, имя InfoPlist.strings
задано в камне, поэтому я не могу заменить его динамически.
Есть идеи?
Решение
Оказывается, это довольно легко, хотя и кропотливо. У вас может быть несколько строк InfoPlist.strings, по одному на цель, и каждый из них может быть интернационализирован, , если каждый набор находится в отдельной группе XCode .
Настройте структуру каталогов следующим образом:
.../AppName/
en.lproj/InfoPlist.strings <-- Contains CFBundleDisplayName
it.lproj/InfoPlist.strings <-- ...
...
.../AppNameLite/
en.lproj/InfoPlist.strings <-- ...
it.lproj/InfoPlist.strings <-- ...
...
Импортируйте эти файлы в группы Xcode, чтобы они выглядели так: