构造Intl.Displaynames()
函数可以翻译 Javascript 中的语言、区域和脚本显示名称。
不幸的是,Safari 版本不支持此功能 < 14.1.
(请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility)。
如何在较旧的 Safari 版本中进行这项工作?
构造Intl.Displaynames()
函数可以翻译 Javascript 中的语言、区域和脚本显示名称。
不幸的是,Safari 版本不支持此功能 < 14.1.
(请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility)。
如何在较旧的 Safari 版本中进行这项工作?
我们可以使用 polyfills(参见https://formatjs.io/docs/polyfills/intl-displaynames/)在较旧的 Safari 版本中使其工作。
将以下 polyfill 添加到您的代码中,以使Intl.DisplayNames()
构造函数按预期工作:
// the actual polyfills:
require('@formatjs/intl-locale/polyfill');
require('@formatjs/intl-displaynames/polyfill');
// the locale data of the languages that you need to support:
require('@formatjs/intl-displaynames/locale-data/de');
require('@formatjs/intl-displaynames/locale-data/en');
这需要以下依赖项:
"@formatjs/intl-displaynames"
"@formatjs/intl-getcanonicallocales"
"@formatjs/intl-locale"
之后,构造函数应该被填充并准备好使用。例如:
const translatedRegionNames = new Intl.DisplayNames(['en'], {type: 'region'});
...
const translatedCountryName = translatedRegionNames.of('US')