gpt4 book ai didi

c# - RegionInfo.CurrentRegion 基于设备语言 - c#

转载 作者:行者123 更新时间:2023-11-28 23:32:59 30 4
gpt4 key购买 nike

我可以使用 System.Globalization 的 RegionInfo.CurrentRegion 来检测设备中基于 xamarin 表单的项目的用户区域吗?当我使用它时,检测到的区域是基于我在设备设置中设置的设备语言。如果我不应该使用它,请引导我朝着正确的方向在地理上实现用户区域检测。笔记:1. 我还有一个需求,就是要根据设备语言来设置应用语言。 (我在某处看到 regioninfo 根据 cultureinfo 中的文化集检测区域)2. 我基本上想检测用户是否在欧洲的地理位置

如果哪位有经验的人指点一下就好了。

最佳答案

你应该没问题...

iOS 和 macOS 在框架内是特殊情况,因为它通过 native 调用获取 CurrentRegion

NSLocale.CurrentLocale.CountryCode

回复:https://developer.apple.com/documentation/foundation/nslocale?language=objc

所以不可能不获得 iOS 中定义的 ISO 国家代码,因为它是操作系统本身设置的一部分并且不可跳过(我不相信 iOS | macOS 甚至支持定义不变的方法本地操作系统级别的文化)

在 Android 上,执行默认的 Mono/.Net 代码并提取国家/地区:

Thread.CurrentThread.CurrentCulture

注意:Mono 运行时本身正在确定线程文化的初始设置(这当然可以通过您的代码以编程方式更改)

因此,假设设备的区域设置设置为已知国家/地区,您可以使用 RegionInfo.CurrentRegion

但您应该知道 CultureInfo.InvariantCultureId 是一种有效的文化,因此可能会返回 ISO 国家 IV:

iso2Name = "IV";
iso3Name = "ivc";
win3Name = "IVC";
nativeName = englishName = "Invariant Country";

就我个人而言,我不知道哪个欧洲国家不受直接 ISO 代码覆盖,Android 设备也未覆盖(但欧洲和亚洲有很多 Android OEM,所以也许(?)你可以获得 IV 返回...)。

关于c# - RegionInfo.CurrentRegion 基于设备语言 - c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55926132/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com