【问题标题】:How to add missing locale to Intl.DateTimeFormat (ES2020) if browser doesn't support required locale?如果浏览器不支持所需的语言环境,如何将缺少的语言环境添加到 Intl.DateTimeFormat (ES2020)?
【发布时间】:2020-10-03 19:38:12
【问题描述】:

很遗憾,有些浏览器不支持使用 Intl.DateTimeFormat 的某些语言环境。在我的情况下,Chrome 中的“kk”语言环境(https://source.chromium.org/chromium/chromium/src/+/master:third_party/icu/scripts/chrome_ui_languages.list)。您可以在控制台中测试您的语言环境:

Intl.DateTimeFormat.supportedLocalesOf('kk')

如果返回空数组[]表示不支持。

我的问题是如何添加缺少的语言环境?我的意思是可能有一个 Polyfill 吗?我正在使用 Vuejs 2

【问题讨论】:

  • 问:您的问题是什么?如何在您的工作站上安装“kk”(哈萨克语)语言环境,以便 Chrome 可以将其与您的 VueJS 应用程序一起使用?
  • 已编辑问题。

标签: vuejs2 polyfills ecmascript-2020


【解决方案1】:

终于找到了使用Polyfill的解决方案:

npm i @formatjs/intl-datetimeformat

然后在你的代码中:

import '@formatjs/intl-datetimeformat/polyfill-force’ // Using force to use our polyfill
import '@formatjs/intl-datetimeformat/locale-data/kk’ // Add locales you want
import '@formatjs/intl-datetimeformat/locale-data/ru’ // Add locales you want
import '@formatjs/intl-datetimeformat/add-all-tz' // Add ALL tz data

【讨论】:

  • 我不喜欢这个库的地方在于,如果没有polyfill-force,它就无法工作,如果你决定实际使用polyfill-force,你必须导入所有你想使用的语言环境,而不是使用浏览器中已经存在的语言环境,它会膨胀编译的包。有没有其他人找到解决这个问题的其他方法?
猜你喜欢
  • 2019-12-31
  • 1970-01-01
  • 2013-01-10
  • 2020-04-05
  • 2020-01-24
  • 1970-01-01
  • 2020-03-06
相关资源
最近更新 更多