ChatGPT解决这个技术问题 Extra ChatGPT

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

如果我将 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 Ver 10.9.5 时存在此模拟器错误。上面的正确代码在语言设置为中文(简体)的模拟器上返回 en,而实际的 iPad 按预期返回“zh-Hans”。将尝试升级到 OS-X X。
将我的开发机器升级到 Yosemite 后,继续让 7.1 模拟器正常工作,8.1 继续失败。
在 8.1 模拟器中,这对我来说绝对是失败的。

a
adjwilli

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

https://i.stack.imgur.com/74xw0.png


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

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

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


B
Blazej SLEBODA

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


M
MillaresRoo

使用 [[NSLocale 可用的LocaleIdentifiers]


k
kazuwombat

就我而言,编辑模式适用于地区,但不适用于语言。它看起来被开发语言覆盖。像这样更改 developmentRegion 可以很好地与 project.pbxproj 一起使用。

developmentRegion = ja;

https://i.stack.imgur.com/3H8fF.png

Xcode 版本 11.3.1 (11C504)

iPhoneX iOS 13.3.1