У меня есть интернационализировавший проект iPhone. В различном ${lang}.lproj/InfoPlist.strings
файлы у меня есть единственный ключ, CFBundleName = "My App Name"
.
Это хорошо работает для единой цели, но я не могу заставить ее работать на несколько целей.
Я хотел бы иметь несколько переведенные InfoPlistMyApp.strings
файлы для основной цели, плюс несколько InfoPlistMyAppLite.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, чтобы они выглядели так:
Щелкните правой кнопкой мыши «Группы и файлы» (вверху слева от Xcode) и убедитесь, что «Целевое членство» "отображается, затем перейдите к вашим целям, проверяя, что для каждой включен правильный набор строк.