【问题标题】:Xcode 6 does not localize Interface BuilderXcode 6 没有本地化 Interface Builder
【发布时间】:2014-09-19 06:49:29
【问题描述】:

Xcode 6 Beta 4 使用 Swift。

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

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

当从 Interface Builder 本地化字符串时,它仅适用于 Interface Builder 预览,但不适用于模拟器,也不适用于我的设备 (iPhone 5S)。

我是否遗漏了什么或者任何人都可以确认这是 Xcode 6 Beta 4 中的错误?

【问题讨论】:

  • 你试过升级到 beta 5,可能是模拟器的问题。

标签: objective-c localization swift interface-builder xcode6


【解决方案1】:

似乎问题出在尺寸等级上。

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

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

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

  1. 最明显的一个。只需禁用情节提要的大小类即可。
  2. 如果您需要尺寸等级,您可以手动将本地化的<Name>~iphone.strings<Name>~ipad.strings 文件添加到项目中并复制您的翻译。

【讨论】:

    【解决方案2】:

    XCode 6 GM 的 Apple 发行说明涵盖了这一点:

    本地化: 如果满足以下三个条件,情节提要或 XIB 将无法正确定位: 故事板或 XIB 使用大小类。 基本本地化和构建目标设置为通用。 该构建面向 iOS 7.0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      相关资源
      最近更新 更多