如何在 Angular 6 中使用 i18n-iso-countries

mfa*_*abi 3 angular

在我的 Angualr 6 应用程序中,我尝试使用 i18n-iso-countries 库 (JavaScript) 将国家/地区代码转换为国家/地区名称。我是用 npm 安装的

npm -i i18n-iso-countries

然后在我的组件中,我像这样导入它:

import * as i18IsoCountries from 'i18n-iso-countries';

我是这样使用它的:

  let valueName = '';
  tmpArr = tmpArr.map((e) => {
      const tmp = e.split('_')[1];
      console.log('tmp: ' + tmp);
      // console.log(i18IsoCountries);
      valueName = i18IsoCountries.getName(tmp, 'en');
      return tmp;
    }
Run Code Online (Sandbox Code Playgroud)

但是 valueName 是未定义的。

我还在Stackblitz 中创建了类似的设置 您可以看到 getName 的输出未定义,但 getAlpha2Codes() 的输出返回值。

mfa*_*abi 7

我刚刚发现语言需要注册。文档有点混乱

如果您将 i18n-iso-countries 与 Node.js 结合使用,您就大功告成了。

但是您确实需要注册要使用的语言。

所以在 Angular 6 中你需要:

npm install i18n-iso-countries --save

然后在您的组件中:

import * as i18nIsoCountries from 'i18n-iso-countries';

然后在 ngOnInit()

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


Sur*_*iya 5

缺少导入区域设置文件。i18nIsoCountries.registerLocale(require("i18n-iso-countries/langs/en.json"));

Stackblitz https://stackblitz.com/edit/angular-qbmbwq