2009-11-27 98 views
18

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

这对单个目标来说工作正常,但我无法使其适用于多个目标。

我想要为主要目标有几个翻译的InfoPlistMyApp.strings文件,以及精简版的几个InfoPlistMyAppLite.strings文件。但我无法弄清楚如何设置它。 InfoPlist.strings这个名字似乎是成立的,所以我不能动态替换它。

任何想法?

回答

34

原来,这很容易,如果费力。只要每个集合位于不同的Xcode组中,您可以拥有多个InfoPlist.strings,每个目标支持一个,并且每个都可以国际化,

设置的目录结构是这样的:

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

导入这些文件到Xcode的群体,所以它看起来是这样的:

alt text

右键单击 “组&文件”( Xcode的左上角),并确保“目标成员身份”可见,然后遍历目标,检查是否为每个目标启用了正确的字符串集。

+0

完美地工作! – 2013-08-07 18:21:00

+0

可以确认这在xcode 9上有效。很棒的工作! – 2017-11-16 15:23:02