自定义每个目标的Mainstoryboard.strings

时间:2017-01-12 05:27:31

标签: ios xcode cocoa-touch localization nslocalizedstring

我有2个目标的应用程序。应用程序中的字符串资源分散在代码和故事板文件中。现在我需要为两个目标完全不同的字符串集合(虽然对于两个目标都使用英语)。 我可以在此链接后为每个字符串创建2个不同版本的Localized.strings - Alternative strings for different targets of same App - use NSLocalizedString?

但我找不到任何类似的方法来隔离每个目标的Mainstoryboard.strings文件。我应该制作2份MAinstoryboard.strings文件并为每个目标分配。我没有试过这个,但有些东西告诉我这可能不是最好的方法。

令人惊讶的是,在Apple教程上没有任何内容。有什么建议吗?

2 个答案:

答案 0 :(得分:3)

用于添加可能是解决方案的假语言的代码段:

language = Bundle.main.preferredLocalizations[0]

if target == SOME_TARGET {

    if language == "en" {
        language = "fr" // fake language    
    } else if language == "ar" {
        language = "rs" // another fake language
    } else {
        // default app language
        language = "whatever" // default fake language 
    }

    UserDefaults.standard.set([language], forKey: "AppleLanguages")
    UserDefaults.standard.synchronize()
} else {
    // do nothing
}

另一个提出的解决方案。是为每种语言准备两个故事板本地化文件。在目标之间切换时,使用OS X finder手动替换它们。但是,我想这对故事板本身的字符串没有帮助。

答案 1 :(得分:1)

我确实为本地化问题制作了Github project

使用我的iOS组件,您可以将localizedString直接放在Storyboard文件中。

Xcode Example