0

我正在尝试使用以下测试 URL 从 GeoNames.org 检索一些数据:

http://api.geonames.org/countryInfoJSON?username=username&lang=en&country=DE,NL

数据是这样的:

{
  "geonames" : [
    {
      ...
      "languages" : "de",
      ...
      "countryName" : "Germany",
      ...
    },
    {
      ...
      "languages" : "nl-NL,fy-NL",
      ...
      "countryName" : "Netherlands",
      ...
    }
  ]
}

一切看起来都很正常,但我也需要每个国家的语言。在列表中有一个字段显示我认为可以使用的“语言”,但实际数据不可靠。有时对于德国来说它是正常的,比如“de”,但对于荷兰来说,它是“nl-NL,fy-NL”。

我正在寻找语言“nl”,但我如何知道每个国家/地区需要哪种语言?我在哪里可以得到像“德语”和“荷兰语”这样的语言的名称?我正在使用 PHP,所以也许有办法获取正确的信息?

4

1 回答 1

0

Languages 字段是一个以逗号分隔的语言定义列表,每个定义由一个 2 个字母的 ISO 639 语言代码和一个可选的 2 个字母的 ISO 3166 国家代码组成。

您可以直接从 geonames 网站找到所有 ISO 语言的列表;此列表包含其他语言代码(例如 3 个字母代码)和您要查找的语言名称。

语言列表是有序的,因此首先出现的语言是官方/最常用的语言,因此您可以过滤第一种语言。这当然不是最理想的,因为有些国家有多种官方语言,比如瑞士;对于这个国家,您可以找到第一语言,以及所有具有明确国家专业化的语言(即 fr-CH、it-CH、de-CH)

于 2015-04-09T08:44:42.147 回答