iphone - 使用多种语言的 Storyboard

标签 iphone ios xcode localization uistoryboard

我想用多种语言(例如 6 种或 7 种)本地化我的应用程序,但我不想添加尽可能多的 Storyboard副本。所以,对于 6 种不同的语言,我想要:

  • 一个 Storyboard
  • 6 Localizable.strings

在我的 Storyboard中,所有组件都是 socket ,因此我可以通过编程方式将它们本地化。

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

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

有没有办法只使用一个 Storyboard和多个本地化文件?

最佳答案

听起来您的 Storyboard仍在 en.lproj 文件夹中。当您在配置为使用另一种语言的系统上启动时,将使用来自该语言的 lproj 的资源,而不是来自 en.lproj 的资源。您需要将 Storyboard标记为未在 Xcode 中本地化,这样它就不会部署到您构建的应用程序中的 en.lproj 文件夹中。还要确保它仍然作为资源包含在项目的适当目标中。您应该能够在选择 Storyboard的情况下从文件检查器执行所有这些操作。

如果您的目标是 iOS 6.0 及更高版本,则可以使用 Base.lproj 功能。有了这一功能,您的应用程序只需发送一个 Storyboard,多个字符串文件和 Storyboard的字符串在运行时被替换为来自适当语言的字符串文件的字符串。

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

关于iphone - 使用多种语言的 Storyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16191817/

相关文章:

iphone - MBProgress HUD 在 tableView 上的 reloadData 上崩溃应用程序

javascript - Node.Js 是否与应用程序的 iPhone Objective C 开发兼容?

ios - textViewDidBeginEditing 在 IOS 9 中不起作用

iphone - UITableViewCell 中的 UIView 动画

ios - EXC_BAD_ACCESS code=1 UIScrollView 捏合手势崩溃

ios - 从 iPhone 本地文件获取配置文件

ios - ios中如何实现基于加速度计的摆动动画

ios - 声明在同一文件中时枚举中未声明的类型

iphone - 比较使用相机拍摄的图像与我的应用程序中的图像

xcode - Xcode 是用什么语言编写的?