在iOS 8.1模拟器上更改语言不起作用


76

如果我将iOS 8.1模拟器上的语言更改为任何语言,并尝试使用

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

我回来了。我试过重置导航器等。我试过使用iOS 7.1运行时(在Xcode 5.1.1中),并且工作正常。是否有人设法找到解决此问题的方法?


您应该提交有关此问题的错误。
dasdom

检查发行说明中的​​“已知错误”部分。
凯文

1
当前使用Xcode版本6.1(6A1052d)并运行OSX版本10.9.5时遇到此模拟器错误。上面的正确代码会在模拟器上返回en并将语言设置为中文(简体),而实际的iPad会按预期返回“ zh-Hans”。将尝试升级到OS-X X.
哈里

1
将我的开发机升级到优胜美地后,继续使7.1仿真器正常工作,而8.1继续失败。
哈利2014年

1
在8.1模拟器中,对于我来说,这绝对仍然是失败的。
Estel

Answers:


167

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

在此处输入图片说明


3
适用于应用程序,但显然不适用于扩展程序。
Koraktor 2014年

3
这必须作为答案。尽管它没有提供iOS模拟器错误的修复程序,但这是Apple要做的,但此答案提供了最佳的解决方法,以在本地运行您的应用程序。恕我直言,如果您只需要在本地运行应用程序,而不用担心在模拟器中更改系统语言,那么这种方法会更好。
i4niac 2014年

这比在模拟器中更改语言设置要快-太好了!
自定义糖果,2015年

2
这项工作对我来说只是一部分。故事板的本地化有效,但本地化的字符串
无效

代替设置具体的语言,而使用“系统语言”。这是这里的另一个选择。这将使模拟器语言有效。
snoersnoer




0

就我而言,编辑架构适用于区域,但不适用于语言。它看起来被开发语言覆盖。像这样,更改developmentRegion可以与project.pbxproj正常工作。

developmentRegion = ja;

在此处输入图片说明

Xcode版本11.3.1(11C504)

iPhoneX iOS 13.3.1

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.