XCode - 多个目标,多个*国际化*名称?

Kri*_*ins 20 iphone sdk xcode internationalization

我有一个国际化的iPhone项目.在各种${lang}.lproj/InfoPlist.strings文件中,我只有一把钥匙,CFBundleName = "My App Name".

这适用于单个目标,但我无法使其适用于多个目标.

我想InfoPlistMyApp.strings为主目标提供几个翻译文件,以及精简版的几个文件.但我无法弄清楚如何设置它.该名字似乎在石头被设置,所以我不能动态地更换.InfoPlistMyAppLite.stringsInfoPlist.strings

有任何想法吗?

Kri*_*ins 38

事实证明,如果费力的话,这很容易.您可以拥有多个InfoPlist.strings,每个目标一个启用,并且每个都可以国际化,只要每个集合位于不同的Xcode组中.

设置这样的目录结构:

.../AppName/
            en.lproj/InfoPlist.strings  <-- Contains CFBundleDisplayName
            it.lproj/InfoPlist.strings  <-- ...
            ...
.../AppNameLite/
            en.lproj/InfoPlist.strings  <-- ...
            it.lproj/InfoPlist.strings  <-- ...
            ...
Run Code Online (Sandbox Code Playgroud)

将这些文件导入Xcode组,如下所示:

替代文字

右键单击"Groups&Files"(Xcode的左上角)并确保"Target Membership"可见,然后浏览目标,检查每个字符串是否启用了正确的字符串集.