如何获得维基数据所有允许的语言

时间:2017-09-30 21:06:34

标签: mediawiki wikidata wikidata-api

我正在编写一个与维基数据交互的工具,其中标签和描述被添加到项目中。但我想在尝试添加之前验证语言是否受支持。

所以我的问题是如何获得允许的语言代码列表。文档将其描述为UserLanguageCode,但未提供有关检索允许值的信息。

我知道我可以通过对数据库执行以下SQL操作来获取所有已使用语言的列表,但这既慢又低效:SELECT DISTINCT term_language FROM wb_terms

另外,对于MonolingualText语句,允许的语言列表是相同的吗?

2 个答案:

答案 0 :(得分:3)

IRC频道#wikidata上的用户hoo找到了这个解决方案:

在此地址获取JSON有效负载:

https://www.wikidata.org/w/api.php?action=paraminfo&modules=wbsetlabel

并提取

 modules[0].parameters[8].type

此列表中的语言确实少于MediaWiki的所有UI语言。

答案 1 :(得分:3)

现在有一个API,用于获取受支持的内容语言(API sandbox):

  

https://www.wikidata.org/w/api.php?action=query&meta=wbcontentlanguages&wbclcontext=term&format=json&formatversion=2

默认情况下,它仅返回语言code,但是您可以通过name参数添加autonym和/或wbclprop(该语言的名称)。 (要控制返回name的语言,请设置全局uselang参数。)

要获取允许的单语文本语言,请将wbclcontext设置为monolingualtext而不是term;在Wikidata上,您还可以为词典数据支持的所有语言代码(几乎但与term-lexicographical语言完全不同)将其设置为term