繁体   English   中英

Xcode 6不会本地化Interface Builder

[英]Xcode 6 does not localize Interface Builder

使用Swift的Xcode 6 Beta 4

我在我的项目中使用本地化,并且我在Xcode 5中具有本地化经验。

使用NSLocalizedString()在程序代码中进行本地化工作正常。 Info.plist字符串的本地化也可以正常工作。

从Interface Builder本地化字符串时,它只能在Interface Builder预览中使用,但不能在模拟器中使用,而不能在我的设备上运行(iPhone 5S)。

我是否遗漏了某些东西,或者有人可以证实这是Xcode 6 Beta 4中的错误吗?

似乎问题在于大小等级。

如果为故事板启用了“使用大小类”复选框,则Xcode实际上会生成3个版本( "<Name>.storyboard", "<Name>~ipad.storyboard" and "<Name>~iphone.storyboard" )。

所以iOS只是尝试加载.strings文件,其名称与活动故事板的名称相匹配(如果应用程序在iPhone上运行, <Name>~iphone.strings )。 由于无法找到该文件,因此它回退到Base本地化。

有几种方法可以解决此错误:

  1. 最明显的一个。 只需禁用故事板的大小类。
  2. 如果您需要大小类,可以<Name>~iphone.strings将本地化的<Name>~iphone.strings<Name>~ipad.strings文件添加到项目中并复制您的翻译。

Apple的XCode 6 GM发行说明包括:

本地化:如果满足以下所有三个条件,则故事板或XIB将无法正确本地化:故事板或XIB使用大小类。 基本本地化和构建目标设置为Universal。 该构建目标是iOS 7.0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM