ios – 具有本地化应用程序名称的多个目标的本地化项目

我最近将5个独立项目合并成一个项目,以建立一个共同的代码基础。所以现在我有一个项目,而不是5个目标。

每个目标具有相同的文件集,除了一些不同于每个目标的文件(如Default.png和图标文件等)之外。
我的应用程式已翻译成7种语言,英文为默认语言。其他语言有:瑞典语,荷兰语,德语,法语,波兰语和西班牙语。现在我还要根据所使用的语言翻译应用程序的名称。
例如,对于我的瑞典航空应用程序,该应用程序应在瑞典语中称为“Flyget ARN”,但对于英文来说,应该称为“航空ARN”。
所有这一切都不是问题,因为这是在InfoPlist.string中完成的,但是将它与应用程序的本地化组合是一个问题。

我最近写了这个问题:Several localizations yet still showing English only,发现我不能组合几个.strings文件。 (见我写的答案)。

所以我的问题如下:
如何从包含多个目标的项目中获得本地化应用程序,并且本地化我的应用程序名称而不会产生DRY(重复的代码)。

更新
这仍然是一个问题,答案不解决我的问题。

我在XCode项目中破解了这个坚果,我相信它会解决同样的问题,希望这将有助于你。该解决方案包含由相同代码库(具有不同的应用程序名称)构建的两个目标,并且完全本地化,包括应用程序的名称。 (它建立我的免费增值应用程序增长(法语:Croissance,西班牙语:Crecer)和付费版本称为增长(法语:Croissance,西班牙语:Crecer)。

我也偶然发现了InfoPlist.string文件(仅包含应用程序的名称)。我通过在我的解决方案中使用子文件夹来解决问题,并将目标更改为将相关子文件夹中的本地化的InfoPlist.strings集合。具体来说,我有这个结构:


    Root
    +-- en.lproj
    ¦   +-- Localizable.strings
    ¦   +-- SomeXib.xib
    +-- es.lproj
    ¦   +-- Localizable.strings
    ¦   +-- SomeXib.xib
    +-- fr.lproj
    ¦   +-- Localizable.strings
    ¦   +-- SomeXib.xib
    +-- OnlyInAppA
    ¦   +-- en.lproj
    ¦   ¦   +-- InfoPlist.strings
    ¦   +-- es.lproj
    ¦   ¦   +-- InfoPlist.strings
    ¦   +-- fr.lproj
    ¦       +-- InfoPlist.strings
    +-- OnlyInAppB
    ¦   +-- en.lproj
    ¦   ¦   +-- InfoPlist.strings
    ¦   +-- es.lproj
    ¦   ¦   +-- InfoPlist.strings
    ¦   +-- fr.lproj
    ¦       +-- InfoPlist.strings
    +-- AppA.plist
    +-- AppB.plist

而我的目标(除了不同的预处理器符号和不同的.plist文件之外)之间的唯一区别是,AppA的构建设置包括OnlyInAppA下的Info.Plist.strings文件,而AppB的构建设置包括OnlyInAppB下的Info.Plist.strings文件。

我使用的命名约定(OnlyInAppA / OnlyInAppB文件夹,AppB / AppB plist文件)是显而易见的,使我认为这是一个令人满意的方法。

编辑:

请参阅这两个XCode 4屏幕截图,以查看哪里可以找到在目标中更改的设置。

>在目标构建设置中,指定了一个不同的plist文件(注意:添加新目标时,XCode会为您自动执行此操作)

>在目标构建阶段,在复制捆绑资源部分中,从相关的OnlyInAppX子文件夹中选择InfoPlist.strings的版本(请注意此屏幕截图上的InfoPlist.strings旁边的灰色文本 – 这将显示另一个目标的不同位置)。您可以通过使用/ – 按钮来实现此目的,并将文件替换为预期的文件。

http://stackoverflow.com/questions/10523792/localized-project-with-several-targets-with-localized-app-names

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ios – 具有本地化应用程序名称的多个目标的本地化项目