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

时间:2009-11-27 08:16:31

标签: iphone xcode sdk internationalization

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

对于单个目标而言,它可以正常工作,但我无法使其适用于多个目标。

我想为主要目标提供多个已翻译的InfoPlistMyApp.strings文件,并为lite版本提供多个InfoPlistMyAppLite.strings个文件。但我无法弄清楚如何设置它。 InfoPlist.strings名称似乎是一成不变的,所以我无法动态替换它。

有什么想法吗?

1 个答案:

答案 0 :(得分:37)

事实证明,如果费力的话,这很容易。您可以拥有多个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

右键单击“Groups&amp; Files”(Xcode的左上角)并确保“目标成员资格”可见,然后浏览目标,检查每个字符串的正确字符串集。