如何在iOS模拟器中设置特定语言?

7

到目前为止,我已经这样做了:

Imgur

但是,语言仍然设置为英语:

enter image description here

有人知道我是否漏掉了什么吗?


编辑:

如果我这样做:

- (void)logAllLocales
{
   NSLocale *curentLocale = [NSLocale currentLocale];
   NSArray *locales = [[NSLocale availableLocaleIdentifiers] sortedArrayUsingSelector:@selector(compare:)];
   for (NSString *locale in locales)
   NSLog(@"locale '%@' is: %@'", locale, [curentLocale displayNameForKey:NSLocaleIdentifier value:locale]);
}

结果:

'sv'代表瑞典语

'sv_FI'代表瑞典语(芬兰)

'sv_SE'代表瑞典语(瑞典)

理论上来说,我会得到三个瑞典语的选项,因此“sv”应该是可行的。但我也测试了其他选项,没有成功。

但如果模拟器需要重置才能改变语言,那么我认为我的问题已经得到解答。无法通过启动时传递参数来实现。=)


2
你好,在模拟器(第二张图片)中,你看到的是“英语”,应该将模拟器设置为瑞典语。(同时:也可以在你的 iPhone 上尝试一下。) - Fattie
你面前有一个选项(第二个截图),可以根据你的喜好进行更改。 - Basheer_CAD
1
事实是我经常在模拟器上部署。每次部署之前,我通常都想用一个热键清除整个模拟器: 我将“重置内容和设置…”连接到cmd+K。即使我通过下面指出的非常明显的方式显式地设置了它,这也会使模拟器重置回英语。 (设置>常规>国际)我真的希望它是在启动时传递的参数。手动每次都这样做非常繁琐,尤其是当我目前只使用瑞典语、挪威语和丹麦语时。=) - Gustav Engvall
假设您本地化为“瑞典(瑞典)”,则需要使用sv-SE(Swedish (Sweden))作为键,否则它将无法匹配,因为您的本地化设置为sv-SE而不是简单的sv - Anya Shenanigans
此外,在这种情况下,不要期望运营商文本会发生变化 - 这需要模拟器重新启动。当您传递参数进行启动时,它仅更改应用程序的区域设置和语言,而不是整个系统的设置。有其他(可搜索的)方法可以更改模拟器的整体语言。 - Anya Shenanigans
我通过在语言周围添加双引号来使其工作。即 -AppleLanguages "(fr)"。但显然如上所述,这仅适用于应用程序,操作系统不受影响。 - Clafou
4个回答

5
这是在物理设备中使用的相同步骤。进入“设置>通用>语言”,将“语言”从“英语”更改为“瑞典语”。

根据问题中的第三条评论进行编辑

问题在于我经常部署到模拟器上。每次部署之前,我通常都想用一个快捷键清除整个模拟器:我将“重置内容和设置...”连接到cmd+K。即使通过下面指出的非常明显的方式明确设置了语言(设置>通用>国际),这也会使模拟器重置回英语。我真的希望它是在启动时传递的参数。手动每次执行这个非常繁琐,特别是当我目前只使用瑞典语、挪威语和丹麦语时。=)

尝试在Localizable.string(En)中用瑞典语/挪威语和丹麦语内容替换整个内容。这样,模拟器就是用英语字符串文件读取,但显示其他语言的内容。


好的,谢谢,但我已经知道了。=)我真的想在启动时将其作为参数传递,以免每次都手动执行。 - Gustav Engvall
显然,您需要将英文临时保存到另一个文件中。这是开发的解决方案,而不是发布的解决方案。当您发布应用程序时,请将英语放在英语,瑞典语放在瑞典语等等。 - Fry
我猜我得出结论了,即在启动模拟器时传递参数是不可能的。应用程序中使用的语言实际上是正确的语言,这才是重要的事情。=) - Gustav Engvall

1

0
如果我理解正确,要更改模拟器的语言,您只需要从您附加的模拟器屏幕截图的“语言”选项中更改。轻敲它并选择您想要的语言。

2
是的,这正是我想要做的,但希望在部署时自动完成。如果我每天需要做超过500次,那将会相当烦人。=) - Gustav Engvall

0
根据我最后的编辑,我认为这是不可能的,因为模拟器必须重置才能真正更改系统语言。

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