IOs7多故事板本地化问题

时间:2013-09-28 06:18:02

标签: localization ios7 xcode5 xcode-storyboard

我使用了几个故事板,我刚刚决定将它们本地化(.strings文件是由Xcode生成的。)

我注意到在Build Phases>复制捆绑资源,与本地化相关的所有资源都显示为红色。

Xcode screenshot

在运行时,本地化仅适用于主故事板。使用Localizable.strings进行本地化也很有效。但它不在其他故事板上。

我试图重新启动Xcode,但它没有改变任何东西。 (cf Base internationalization and multiple storyboard not working right

我之前编译过本地化的故事板。如果我添加另一个故事板,将其本地化并编译,则会因此错误而失败:

***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'无法在捆绑NSBundle(...)中找到名为'维护'的故事板

你有什么想法解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

此错误可能是由于未实施您选择在应用程序设置中进行本地化的其他语言

为了在故事板中实现语言:

  1. 选择故事板
  2. 在右侧面板上,转到文件检查器标签(左起第一个)
  3. 本地化中,检查所有语言
  4. 您现在有两种方法可以本地化您的故事板:

    • 您选择可本地化字符串选择为您的语言创建.strings文件,这将生成在故事板中找到的字符串xcode列表。
    • 或者您可以选择 Interface Builder Cocoa Touch Storyboard 来创建“sub”-storyboard,为特定语言创建不同版本的故事板。

    到目前为止,我只找到一种方法来刷新xcode中的.strings文件,如果添加新字符串:只需取消选中并重新检查语言,然后在询问时选择“替换文件”。您可以在终端中使用Apple also provides a tool。最后there's a script自动完成。

答案 1 :(得分:0)

  • 打开故事板文件
  • 请参阅右侧面板,在本地化部分的第一个标签(标识)上,取消选中“基本”
  • 无论答案是什么,都应该提示您输入对话框。

现在您看到Build Phases是正确的,您应该能够运行您的项目。

答案 2 :(得分:0)

无法在“复制包资源”中复制的红色Localizable.strings或其他本地化文件的原因之一可能是目标设置中“本地化本机开发区域”的设置。

此区域应添加到项目的“本地化”中。

即。如果“本地化本地开发区域”为“en”,则应在项目设置中将“英语”添加为“本地化”。