基于每个目标的 iOS 本地化?

Posted

技术标签:

【中文标题】基于每个目标的 iOS 本地化?【英文标题】:iOS Localization on a per target basis? 【发布时间】:2013-11-20 10:24:29 【问题描述】:

我有一个项目,它基于每个目标构建多个应用程序,为了本地化应用程序,我可以将本地化语言添加到项目中,但不能基于每个目标。这意味着我们构建的任何目标都将支持该项目的所有本地化。即目标 A 必须支持英语和法语,但目标 B 必须只支持英语。

有没有办法为每个目标添加本地化语言?或者是正确的方法,将项目分支并维护代码库的不同分支,为不同的目标提供不同的本地化?

【问题讨论】:

您如何使用本地化?使用 ios 设置更改语言选项或在应用启动时选择语言选项等。 要求是使用 iOS 设置的“更改语言”选项,因此内置支持本地化。我想实现自定义本地化框架将允许基于每个目标的本地化。你确实失去了在 xcode 中很好地本地化 NIB 文件和图像的能力。 看看这个answer。 【参考方案1】:

让我们试试吧:

+ NSString* NSCustomLocalizedString( NSString *key , NSString *comment)

NSString *rs = nil;

#ifdef A //target A
    //you define English-French
    rs = NSLocalizedString(key,@"");
#else  //target B
    rs = NSLocalizedStringFromTable(key,@"Localizable.strings-en",nil);
return rs;

【讨论】:

【参考方案2】:

    为您需要从目标中删除的语言选择 localizable.strings 文件。

    然后删除所选文件的目标成员资格。

【讨论】:

以上是关于基于每个目标的 iOS 本地化?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode / iOS:单元测试、方案和配置

Xcode - 目标特定的本地化

如何在 iOS 上本地缓存 JSON Web 响应 - 目标 c

管理一系列相关 iOS 应用程序的最佳实践

在 Xcode 中为目标添加通用和特定的可本地化文件

如何读取基于 iOS 文档的应用程序的保存位置(iCloud 或本地)的用户偏好?