我现在正在本地化Xamarin Forms应用程序。
在iOS中,用户可以在不更改设备语言的情况下更改区域设置,对吗?我们如何在 Xamarin 窗体中检测此区域设置?我尝试使用以下代码来获取当前区域性,但除非我们更改语言设置,否则区域设置不会对CurrentCulture
执行任何操作。
var culture = CultureInfo.CurrentCulture
我需要在应用程序中显示一个十进制值,该值应该在美国地区显示为 123.456,123,456 是法国地区。只有当我更改语言设置时,我才会得到 123,456。
我可以使用NSLocale
获取当前语言环境,这给了我en_FR。但是,如果我使用它来创建一个新CultureInfo
它会引发System.Globalization.CultureNotFoundException
异常。
var culture = new CultureInfo("en_FR");
您可能想尝试 NSLocale.CurrentLocale。
也
通过使用NSLocale.CurrentLocaleDidChangeNotification 作为使用 NSNotificationCenter 进行监视的通知,可以通知应用程序本地系统中的更改。
我参加聚会有点晚了,但在 .NET 中,您必须替换区域性字符串中的下划线。
var culture = new CultureInfo("en-FR");