gpt4 book ai didi

javascript - 在浏览器中获取支持的语言环境

转载 作者:行者123 更新时间:2023-12-01 15:29:04 25 4
gpt4 key购买 nike

我正在使用 date.toLocaleDateString(locale)方法来获取用户的日期格式。我在服务器端获取用户的区域设置,其中包含 Accept-Language header 和地理编码的 IP 地址(即使您在美国境外,浏览器似乎默认为 en-US)。但是 toLocaleDateString() 似乎不能识别所有语言环境,即如果你这样做 date.toLocaleDateString('en-IE')您将获得美国日期格式而不是欧洲日期。 Intl.Collator.supportedLocalesOf('en-IE', {localeMatcher: 'lookup'})没有帮助。是否有浏览器支持的语言环境列表?

顺便说一句,我已经在 OSX 上的 Chrome 和 Firefox 上尝试过上述方法。

最佳答案

我认为您遇到的问题是 supportedLocalesOf() 仅检查语言,而不是语言环境(换句话说,“语言标签”的开头)。如果您指定了另一种不支持的英语语言环境,则日期格式化函数将默默地退回到“en-us”(而不是在您指定其他语言时抛出异常)。 API 的这两个奇怪之处(用 imo 说得温和一点)使得在不知不觉中向用户提供看起来正确但错误的日期成为可能。

这个问题被问到现在已经有好几年了(我在注意到之前就开始回答了 - 哎呀)并且浏览器中对语言环境数据的支持现在已经相当不错了,但是语言环境数据的变化可能总是会发生。

不过,对于 Node 来说,支持仍然很差——这让我最近有点吃不消,我认为它会咬其他人。在 v13 之前,Node 的官方版本仅包含对“en-US”的支持(参见 v13 changelog 中的“构建”要点)。

重要的是要注意,语言环境支持的包含依赖于构建,因此虽然它从 v13 开始包含在官方 Node 构建中,但语言环境数据实际上非常大,因此其他(例如 Lambda 或 Firebase 函数等 FaaS 产品) ) 可能会做出不同的权衡决定。因此,像往常一样,最好使用此功能进行测试,而不是检查您的 Node 版本。

关于javascript - 在浏览器中获取支持的语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22661681/

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