NodeJS 如何在React中使用i18 n-iso-countries?

kcugc4gi  于 2023-06-22  发布在  Node.js
关注(0)|答案(3)|浏览(138)

我正在开发一个React应用程序,并试图使用i18 n-iso-countries包来获取一个英语的国家对象,该对象的键作为ISO代码,值作为国家名称。这在node中很容易,因为我已经用一个简单的脚本验证了i18 n-iso-countries npm文档显示的方式,如下所示:

const countries = require("i18n-iso-countries");
console.log(countries.getNames('en'));

但是当我在我的react应用程序(用create-react-app制作)中这样做时...

import countries from "i18n-iso-countries";
console.log(countries.getNames('en'));

我得到一个空对象。当我在React中只记录国家(console.log(countries))时,我看到函数“getNames”和文档中提到的其他函数,所以我不确定是什么。

0dxa2lsx

0dxa2lsx1#

只需要添加这一行!

countries.registerLocale(require("i18n-iso-countries/langs/en.json"));

不知道为什么需要在React(和Angular --我在那里找到了答案How to use i18n-iso-countries in Angular 6--可能还有其他的ui库/框架)中添加这个,所以如果有人能解释一下,那就太酷了,但是嘿,至少它在工作!

qyuhtwio

qyuhtwio2#

有点太晚了。但是为了回答jupiterjelly,这一行对于浏览器环境是需要的,这样你的bundler就知道它需要把这个文件放到bundle中

yzxexxkh

yzxexxkh3#

如果不使用require,它看起来像这样:

import frLocale from 'i18n-iso-countries/langs/fr.json'

countries.registerLocale(frLocale)
const countryObj = countries.getNames('fr', 'official')

frLocalefr替换为您喜欢的任何本地/语言。

相关问题