iOS 8.1模拟器无法更改语言

76

如果我在 iOS 8.1 模拟器上更改语言并尝试通过以下代码检测:

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

我得到了"en"的返回值。我已经尝试重置导航器等操作。我使用iOS 7.1运行时(在Xcode 5.1.1中),这个方法可以正常工作。有没有人成功地找到了解决这个问题的方法?


iOS 8 Beta 3修复了这个问题。 - Janos
1
目前在使用Xcode版本6.1(6A1052d)和运行OSX版本10.9.5的模拟器中存在此问题。上面的正确代码在将语言设置为简体中文的模拟器上返回en,而实际的iPad返回了预期的"zh-Hans"。将尝试升级到OS-X X。 - harry
1
在我把开发机升级到Yosemite之后,7.1模拟器继续能正常工作,8.1则仍然存在问题。 - harry
1
这在8.1模拟器中对我来说肯定还是失败的。 - Estel
适用于新的xCode 6.2版本! - Fabio Berger
显示剩余4条评论
5个回答

170

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

输入图像说明


3
适用于应用程序,但显然不适用于扩展。 - Koraktor
3
必须接受这个答案。虽然它并没有解决iOS模拟器的错误,但这就是苹果需要做的,这个答案提供了最佳解决方法来运行你的应用程序本地化。我认为,如果你只需要运行本地化的应用程序而不关心在模拟器中更改系统语言,这种方法要好得多。 - i4niac
这比在模拟器中更改语言设置要快 - 不错! - Custom Bonbons
2
这对我只有部分起作用。Storyboard 本地化可以工作,但本地化字符串不行 =\ - CTiPKA
不要设置具体的语言,使用“系统语言”。这是另一个选项。这将使模拟器语言有效。 - snoersnoer

1

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


1

0
在我的情况下,编辑模式适用于区域但不适用于语言。 它似乎被开发语言覆盖了。 像这样更改developmentRegion与project.pbxproj一起运作得很好。
developmentRegion = ja;

enter image description here

Xcode版本11.3.1(11C504)

iPhoneX iOS 13.3.1


0

使用 [[NSLocale availableLocaleIdentifiers]。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接