1

我想以多种语言(如 6 或 7 种语言)本地化我的应用程序,但我不想添加与故事板副本一样多的内容。所以,对于 6 种不同的语言,我想要:

  • 一个故事板
  • 6 Localizable.strings

在我的故事板中,所有组件都是插座,因此我可以以编程方式对它们进行本地化。

我的问题是我无法使用没有情节提要本地化(但有 localizable.strings)的语言加载应用程序,我收到一个错误:

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

有没有办法只使用一个带有多个可本地化文件的故事板?

4

1 回答 1

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

于 2013-04-25T00:32:26.080 回答