在我们的项目中,我们有多个构建目标,每个目标使用英语,法语和基础(英语)本地化文件。其中一些是字符串文件,而另一些是已构建为包含这两种语言的本地化故事板文件。
在单个构建目标上,最好的方法是限制本地化,以便它只使用英语和而不是法语,同时保持它,以便所有其他构建目标仍然具有英语和法语本地化工作?我尝试不为该特定版本包含法语本地化,但删除了整个本地化文件,因为这似乎是在项目级别完成的。
我在这里发现了一些帖子,但没有任何条款可以用于从特定的构建目标中禁用单个本地化语言,而只留下其他人。
我们目前正在使用Xcode 6。
答案 0 :(得分:1)
我不确定这正是您正在寻找的内容,但如果您想强制您的应用以特定语言显示,则可以在不从项目中删除其他本地化的情况下执行此操作。您可以将main.m实现更改为:
int main(int argc, char *argv[])
{
@autoreleasepool
{
if (/*Some condition for this build*/)
{
NSString *newLanguage = [[NSUserDefaults standardUserDefaults] objectForKey:kNewLanguageCode];
[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:newLanguage, nil] forKey:@"AppleLanguages"];
}
else // If you want other conditions, or just do nothing if you want to support the device's current localization settings
{
[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
}
[[NSUserDefaults standardUserDefaults] synchronize];
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
我知道这不完全是你提出的问题,但我认为它可以从一个稍微不同的方向解决你的问题,所以我希望这会有所帮助。祝你好运!