在我们的项目中,我们有多个构建目标,每个目标都使用英语、法语和基础(英语)本地化文件。其中一些是字符串文件,而另一些是已构建为包含这两种语言的本地化 Storyboard文件。
在单个构建目标上限制本地化的最佳方法是什么,以便它仅使用英语而不是不使用法语,同时保留它以便所有其他构建目标仍然具有英语和法语本地化都有效吗?我尝试不包括该特定构建的法语本地化,但删除了整个本地化文件,因为这似乎是在项目级别完成的。
我在这里找到了一些帖子,但没有任何帖子可以从特定的构建目标中禁用一种本地化语言,而让其他人保持独立。
我们目前正在使用 Xcode 6。
最佳答案
我不确定这是否正是您要查找的内容,但如果您想强制以特定语言显示您的应用程序,您可以在不从项目中删除其他本地化版本的情况下执行此操作。您可以将 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]));
}
}
我知道这与您问的不完全一样,但我认为它可能会从稍微不同的方向解决您的问题,所以我希望这对您有所帮助。祝你好运!
关于ios - 在 Xcode 中禁用目标本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32213872/