【问题标题】:How can we detect the region settings from iPhone in Xamarin Forms?我们如何在 Xamarin Forms 中检测 iPhone 的区域设置?
【发布时间】:2017-11-16 08:27:19
【问题描述】:

我现在正在本地化 Xamarin Forms 应用程序。

在 iOS 中,用户可以在不更改设备语言的情况下更改区域设置,对吧?我们如何在 Xamarin Forms 中检测此区域设置?我尝试了以下代码来获取当前的文化,但是除非我们更改语言设置,否则区域设置不会对 CurrentCulture 做任何事情。

var culture = CultureInfo.CurrentCulture

我需要在应用程序中显示一个十进制值,在美国地区应该显示为 123.456,而在法国地区应该显示为 123,456。仅当我更改语言设置时,我才会得到 123,456。

我可以使用NSLocale 获取当前语言环境,这给了我en_FR。但是如果我用它来创建一个新的CultureInfo 它会抛出System.Globalization.CultureNotFoundException 异常。

            var culture = new CultureInfo("en_FR");

【问题讨论】:

    标签: c# xamarin xamarin.forms


    【解决方案1】:

    你可能想试试NSLocale.CurrentLocale

    还有,

    您的应用程序可以通过使用 NSLocale.CurrentLocaleDidChangeNotification 作为通知来通知本地系统的更改,以使用 NSNotificationCenter 进行监控。

    【讨论】:

    • 我正在使用 Xamarin 表单。我不确定如何在表单中使用这个 NSLocale。
    • @RamarajT 你需要编写一个依赖服务来访问它。
    • 我已经写好了依赖服务来读取NSLocale。但问题是我得到 en_FR 作为语言环境标识符,我不能用它来创建表单 CultureInfo。
    猜你喜欢
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    相关资源
    最近更新 更多