【问题标题】:How to get country name from country code in javascript如何从javascript中的国家代码获取国家名称
【发布时间】:2020-09-13 15:37:06
【问题描述】:

我正在构建一个天气网站,我想显示给定位置的国家名称,但我对 openweathermap 的 API 请求只返回国家代码。那么有没有一种方法可以将国家代码从 javascript 本身转换为国家名称,或者我需要对其他 url 再进行一次 API 调用,这会将代码转换为名称。

【问题讨论】:

    标签: javascript openweathermap


    【解决方案1】:

    您可以为此目的使用 Intl.DisplayNames,标准 JS api,但尚未完全支持浏览器(截至 2021 年 1 月,Firefox 和 Safari 需要 polyfill)。

    用法:

    let regionNames = new Intl.DisplayNames(['en'], {type: 'region'});
    regionNames.of('US');  // "United States"
    

    详情: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames

    【讨论】:

    • 似乎 Firefox 从 FF86 开始添加了支持,但仍然不支持 Safari。截至 2021 年 4 月
    • 如何扭转这种局面? “美国”到“美国”?
    • 现在除了IE之外的所有浏览器的最新版本都支持,全球88%的用户应该可以访问这个:caniuse.com/?search=Intl.DisplayNames
    【解决方案2】:

    我认为 Javascript 标准库中没有类似的内容,但一如既往,有一个 NPM 库:https://www.npmjs.com/package/i18n-iso-countries

    【讨论】:

      【解决方案3】:

      如果您在互联网上搜索得足够仔细,您可能会找到一个 GitHub 项目或其他执行此操作的代码。但老实说,您最好的选择就是找到缩写和国家名称列表并构建您自己的对象。真的不应该超过半小时,最多

      var atoc = {};
      atoc.us = "United States";
      atoc.uk = "United Kingdom";
      ...
      

      【讨论】:

        猜你喜欢
        • 2016-06-11
        • 1970-01-01
        • 1970-01-01
        • 2016-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多