【问题标题】:Changing language on iOS 8.1 simulator does not work在 iOS 8.1 模拟器上更改语言不起作用
【发布时间】:2014-08-26 14:35:43
【问题描述】:

如果我将 iOS 8.1 模拟器上的语言更改为任何语言并尝试从代码中检测到这一点

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSLog(@"Language: %@", language);

我得到“en”。我已经尝试过重置导航器等。我已经使用 iOS 7.1 运行时(在 Xcode 5.1.1 中)进行了尝试,并且效果很好。有没有人设法找到解决此问题的方法?

【问题讨论】:

  • 你应该提交一个关于它的错误。
  • 查看发行说明的“已知错误”部分。
  • 目前使用 Xcode 版本 6.1 (6A1052d) 并运行 OSX 版本 10.9.5 时存在此模拟器错误。上面的正确代码在语言设置为中文(简体)的模拟器上返回 en,而实际的 iPad 按预期返回“zh-Hans”。将尝试升级到 OS-X X。
  • 将我的开发机器升级到 Yosemite 后,继续让 7.1 模拟器正常工作,8.1 继续失败。
  • 在 8.1 模拟器中这对我来说肯定仍然失败。

标签: ios localization ios-simulator xcode6.1 ios8.1


【解决方案1】:

就我而言,编辑架构适用于地区,但不适用于语言。 它看起来被开发语言覆盖。 像这样更改 developmentRegion 与 project.pbxproj 效果很好。

developmentRegion = ja;

Xcode 版本 11.3.1 (11C504)

iPhoneX iOS 13.3.1

【讨论】:

    【解决方案2】:

    根据发行说明,这是一个已知问题。有一个解决方法。 如果你去“编辑方案...”然后“选项”选项卡有一个“应用程序语言”选项。这只会影响当前的运行设置,而不影响应用,就像更改设备的语言一样。

    【讨论】:

    • 适用于应用程序,但显然不适用于扩展程序。
    • 这必须被接受为答案。虽然它没有为 iOS 模拟器错误提供修复,但这是 Apple 必须做的,这个答案提供了运行本地化应用程序的最佳解决方法。恕我直言,如果您只需要本地化运行您的应用程序并且不关心在模拟器中更改系统语言,这种方法会更好。
    • 这比在模拟器中更改语言设置更快 - 不错!
    • 这对我来说只是部分工作。故事板本地化有效,但不是本地化字符串 =\
    • 不要设置具体的语言,而是使用“系统语言”。这是这里的另一个选择。这将使模拟器语言有效。
    【解决方案3】:

    我的模拟器是法语的。当我想检查英文界面时,更改 iphone 语言是不够的。我必须至少切换两次区域设置。

    【讨论】:

      【解决方案4】:

      iOS8.1 Simulator always uses US keyboard layout despite german hardware keyboard 的另一个骗子

      Xcode 6.1 发行说明中提到的已知和记录的错误。如果您想通过http://bugreport.apple.com将您的 +1 添加到投诉列表中,请提交雷达

      【讨论】:

        【解决方案5】:

        使用 [[NSLocale availableLocaleIdentifiers]

        【讨论】:

          猜你喜欢
          • 2016-08-14
          • 2023-04-02
          • 2013-01-21
          • 1970-01-01
          • 2016-05-22
          • 1970-01-01
          • 2014-12-26
          • 1970-01-01
          • 2013-10-09
          相关资源
          最近更新 更多