将Amcharts的国家/地区名称更改/翻译为其他语言

时间:2019-07-10 14:00:44

标签: javascript amcharts amcharts4

这似乎是一个基本问题,但是,我似乎在文档中或stackoverflow上都找不到答案。

我正在尝试获取使用amcharts4生成的地图的翻译后的国家/地区名称。

我找到了this related question,但这是为amcharts3指定的。当我尝试在amcharts4中设置此类图表系列的language属性时, chart.language = 'nl';,  我收到错误Uncaught TypeError: Cannot read property 'on' of undefined,我认为这是设置不支持的属性时的标准错误。

我还发现了this related question,它说您应该设置chart.language.locale,这适用于amcharts4,但不翻译国家名称。这只会翻译使用的单位和日期等。

所以我的问题是,“如何更改amcharts4中生成的地图的国家/地区名称?”

1 个答案:

答案 0 :(得分:1)

所以,来自amcharts的官方答案是:

  

不,恐怕。我们目前还没有现成的解决方案   国家名称翻译:(

我所做的是从this repository获取翻译json文件。 我进行了查找和替换,以删除属性id的属性和值。 我将属性名称alpha2更改为id,并将其值转换为大写。

例如

{"id":4,"name":"Afghanistan","alpha2":"af","alpha3":"afg"}

将成为

{"name":"Afghanistan","id":"AF","alpha3":"afg"}

这必将成为您的翻译对象。

然后我声明了一个变量translations,并将这个完整的对象作为值给了它。

然后将其作为数据添加到我的polygonSeries中。 polygonSeries.data = translations;

因为现在这会使用转换后的值覆盖name属性,所以悬停效果应该使用转换后的值。