【发布时间】:2020-09-13 15:37:06
【问题描述】:
我正在构建一个天气网站,我想显示给定位置的国家名称,但我对 openweathermap 的 API 请求只返回国家代码。那么有没有一种方法可以将国家代码从 javascript 本身转换为国家名称,或者我需要对其他 url 再进行一次 API 调用,这会将代码转换为名称。
【问题讨论】:
我正在构建一个天气网站,我想显示给定位置的国家名称,但我对 openweathermap 的 API 请求只返回国家代码。那么有没有一种方法可以将国家代码从 javascript 本身转换为国家名称,或者我需要对其他 url 再进行一次 API 调用,这会将代码转换为名称。
【问题讨论】:
您可以为此目的使用 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
【讨论】:
我认为 Javascript 标准库中没有类似的内容,但一如既往,有一个 NPM 库:https://www.npmjs.com/package/i18n-iso-countries
【讨论】:
如果您在互联网上搜索得足够仔细,您可能会找到一个 GitHub 项目或其他执行此操作的代码。但老实说,您最好的选择就是找到缩写和国家名称列表并构建您自己的对象。真的不应该超过半小时,最多
var atoc = {};
atoc.us = "United States";
atoc.uk = "United Kingdom";
...
【讨论】: