【发布时间】:2016-07-18 15:04:46
【问题描述】:
我在 Xcode 中的一个项目下的目标很少。在项目设置中,我看到这样的本地化:
但我想做的是让一个目标本地化为德语和波兰语,第二个目标本地化为德语。这些目标产品是单独的 ipa 文件,但我想知道我是否将第二个目标的波兰语留空,波兰的用户是否看到德语文本或空字符串?此外,如果有语言,它会在此处显示 appore 中可用的所有语言吗?
【问题讨论】:
我在 Xcode 中的一个项目下的目标很少。在项目设置中,我看到这样的本地化:
但我想做的是让一个目标本地化为德语和波兰语,第二个目标本地化为德语。这些目标产品是单独的 ipa 文件,但我想知道我是否将第二个目标的波兰语留空,波兰的用户是否看到德语文本或空字符串?此外,如果有语言,它会在此处显示 appore 中可用的所有语言吗?
【问题讨论】:
但我想做的是让其中一个目标本地化为德语和波兰语,第二个目标本地化为德语。
不幸的是,由于本地化是基于文件和项目的,如果不对代码库进行重大更改,这是不可能的。根据您的代码和资源文件(故事板、.strings 文件等),可能有两个具有不同本地化的项目,它们使用通用共享框架,框架中的大部分应用程序代码。但是,我想这对您的项目来说太大了。
此外,在生成 IPA 后删除本地化可能更合理。通过删除波兰语本地化的资源和文件夹,您基本上可以获得所需的结果,而无需更改项目配置。
这个目标产品是单独的 ipa 文件,但我想知道我是否将波兰语留空作为第二个目标,波兰的用户会看到德语文本或空字符串吗?
如果您将波兰语本地化文件留空,您会在应用中看到两个结果:
NSLocalizedString("key", "comment") 引用的字符串,
你会看到comment。如果您完全删除波兰语本地化文件,则应用将显示您的基本本地化版本。
另外,如果有语言,它会在此处显示 appore 中可用的所有语言?
App Store 根据生成的构建中的内容而不是项目配置来选择本地化。如果您在构建中有波兰语本地化文件,那么 App Store 将看到这些文件并显示您的应用程序支持该本地化。
【讨论】:
您可以使用定义作为解决方法,例如:
#ifdef ONLY_GERMAN
#define kTitle @"title"
#else
#define kTitle NSLocalizedString(@"kButtonTitle",@"")
#endif
NSString *title = kTitle;
之后,您需要将 ONLY_GERMAN 宏添加到所需的目标。目标 > 构建设置 > 预处理器宏。该解决方案的缺点 - 重复德语本地化。
【讨论】: