XCode - несколько целей, несколько * интернационализированных * имен? - PullRequest
20 голосов
/ 27 ноября 2009

У меня есть международный проект iPhone. В различных файлах ${lang}.lproj/InfoPlist.strings у меня есть один ключ, CFBundleName = "My App Name".

Это нормально работает для одной цели, но я не могу заставить ее работать для нескольких целей.

Мне бы хотелось иметь несколько переведенных InfoPlistMyApp.strings файлов для основной цели, а также несколько InfoPlistMyApp<em>Lite</em>.strings файлов для облегченной версии. Но я не могу понять, как это настроить. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * InfoPlist.strings Имя, кажется, задано в камне, поэтому я не могу заменить его динамически.

Есть идеи?

1 Ответ

37 голосов
/ 24 апреля 2010

Оказывается, это довольно легко, хотя и кропотливо. Вы можете иметь несколько строк InfoPlist.strings, по одному на цель, и каждый из них может быть интернационализирован, , если каждый набор находится в отдельной группе Xcode .

.

Настройте структуру каталогов следующим образом:

.../AppName/
            en.lproj/InfoPlist.strings  <-- Contains CFBundleDisplayName
            it.lproj/InfoPlist.strings  <-- ...
            ...
.../AppNameLite/
            en.lproj/InfoPlist.strings  <-- ...
            it.lproj/InfoPlist.strings  <-- ...
            ...

Импортируйте эти файлы в группы Xcode, чтобы они выглядели так:

alt text

Щелкните правой кнопкой мыши «Группы и файлы» (в левом верхнем углу XCode) и убедитесь, что «Целевое членство» видно, затем просмотрите цели, проверив, включен ли правильный набор строк для каждого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...