我使用了几个故事板,我刚刚决定将它们本地化(.strings文件是由Xcode生成的。)
我注意到在Build Phases>复制捆绑资源,与本地化相关的所有资源都显示为红色。
在运行时,本地化仅适用于主故事板。使用Localizable.strings进行本地化也很有效。但它不在其他故事板上。
我试图重新启动Xcode,但它没有改变任何东西。 (cf Base internationalization and multiple storyboard not working right)
我之前编译过本地化的故事板。如果我添加另一个故事板,将其本地化并编译,则会因此错误而失败:
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'无法在捆绑NSBundle(...)中找到名为'维护'的故事板
你有什么想法解决这个问题吗?
答案 0 :(得分:1)
此错误可能是由于未实施您选择在应用程序设置中进行本地化的其他语言。
为了在故事板中实现语言:
您现在有两种方法可以本地化您的故事板:
.strings
文件,这将生成在故事板中找到的字符串xcode列表。到目前为止,我只找到一种方法来刷新xcode中的.strings文件,如果添加新字符串:只需取消选中并重新检查语言,然后在询问时选择“替换文件”。您可以在终端中使用Apple also provides a tool。最后there's a script自动完成。
答案 1 :(得分:0)
现在您看到Build Phases是正确的,您应该能够运行您的项目。
答案 2 :(得分:0)
无法在“复制包资源”中复制的红色Localizable.strings或其他本地化文件的原因之一可能是目标设置中“本地化本机开发区域”的设置。
此区域应添加到项目的“本地化”中。
即。如果“本地化本地开发区域”为“en”,则应在项目设置中将“英语”添加为“本地化”。