使用一个多语言的故事板

时间:2013-04-24 12:15:58

标签: iphone ios xcode localization uistoryboard

我希望以多种语言(例如6或7)本地化我的应用,但我不想添加尽可能多的storyboard副本。因此,对于6种不同的语言,我想要:

  • 一个故事板
  • 6 Localizable.strings

在我的故事板中,所有组件都是出口,所以我可以通过编程方式对它们进行本地化。

我的问题是我无法在没有故事板本地化的语言中加载应用程序(但是有localizable.strings),我收到错误:

Could not find a storyboard named 'XXXX' in bundle NSBundle.

有没有办法只使用一个包含多个Localizable文件的故事板?

1 个答案:

答案 0 :(得分:1)

听起来你的故事板仍然在en.lproj文件夹中。当您在配置为使用其他语言的系统上启动时,将使用该语言的lproj中的资源而不是en.lproj中的资源。您需要将您的故事板标记为未在Xcode中本地化,以便它不会部署到您构建的应用程序中的en.lproj文件夹中。还要确保它仍然作为资源包含在项目的相应目标中。您应该可以从文件检查器中选择故事板来完成所有这些操作。

如果您的目标是iOS 6.0及更高版本,则可以使用Base.lproj功能。使用该功能,您的应用程序只发布一个故事板,并在运行时使用相应语言的字符串文件中的字符串替换多个字符串文件和故事板的字符串。

您可以在此处阅读有关base.lproj的更多信息: https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/chapters/InternationalizeYourApp/InternationalizeYourApp/InternationalizeYourApp.html