MonoTouch:当“语言”设置时的CurrentCulture

4

当用户将iPhone的语言设置为法语,将地区格式设置为美国时,CurrentCulture表示en-US

只有当用户将地区格式设置为法国时,才会得到fr-FR

如果用户设置了语言,但没有设置地区格式,该如何确定语言呢?

enter image description here

2个回答

5
你需要查看 NSLocale,例如 NSLocale.CurrentLocale.Identifier,以获取类似于 en-US 的字符串。这将给你 iOS 正在使用的 确切 值。
.NET 和 iOS 都有类似但微妙不同的 API 来获取这些值。仅使用 iOS 数据就完全兼容 .NET 是困难的(它们并不完全匹配)。在某些情况下,例如 RegionInfo,我们已经能够使用 iOS 提供的数据来 引导 .NET 类。随着更多功能的可用性,我们可能会在未来能够为其他类型做到同样的事情。

我使用了你的解决方案,但是它一直给我返回 "en_US",即使我已经将语言设置为西班牙语,但区域格式设置为美国,我该如何获取语言?我正在使用 Xamarin。 - Guillermo Oramas R.
这个代码可以很好地给我提供三个字母的语言代码,我后来发现。例如,将设置应用程序中的区域格式设置为韩语即可获得“KOR”:iSOLanguage = System.Globalization.CultureInfo.CurrentCulture.ThreeLetterISOLanguageName.ToUpper()。 - Ian Vink

0

NSLocale.CurrentLocale 可以获取地区格式,但不能获取语言。

要获取语言,请使用 NSLocale.PreferredLanguages[0]。结果将是一个字符串,例如选择的语言为 fren-US

更多信息请参见 在iOS中获取当前设备语言?


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