如何获取维基数据所有允许的语言
How to get all allowed languages for Wikidata
我正在编写一个与维基数据交互的工具,其中标签和描述被添加到项目中。但我想在尝试添加之前验证该语言是否受支持。
所以我的问题是如何获得允许的语言代码列表。文档将此描述为 UserLanguageCode
但未提供有关检索允许值的信息。
我知道我可以通过对数据库执行以下 SQL 操作来获取所有使用的语言的列表,但这既缓慢又低效:SELECT DISTINCT term_language FROM wb_terms
.
顺便说一句,MonolingualText 语句的允许语言列表是否相同?
IRC 频道 #wikidata 上的用户 hoo 找到了这个解决方案:
在此地址获取 JSON 负载:
https://www.wikidata.org/w/api.php?action=paraminfo&modules=wbsetlabel
并提取
modules[0].parameters[8].type
此列表中的语言确实少于 MediaWiki 的所有 UI 语言。
现在有一个 API 用于获取支持的内容语言 (API sandbox):
默认情况下它只是 returns 语言 code
,但您可以通过wbclprop
参数。 (要控制返回 name
的语言,请设置全局 uselang
参数。)
要获得允许的单语文本语言,请将 wbclcontext
设置为 monolingualtext
而不是 term
;在 Wikidata 上,您还可以将其设置为 term-lexicographical
用于词典数据支持的所有语言代码(与 term
语言几乎但不完全相同)。
我正在编写一个与维基数据交互的工具,其中标签和描述被添加到项目中。但我想在尝试添加之前验证该语言是否受支持。
所以我的问题是如何获得允许的语言代码列表。文档将此描述为 UserLanguageCode
但未提供有关检索允许值的信息。
我知道我可以通过对数据库执行以下 SQL 操作来获取所有使用的语言的列表,但这既缓慢又低效:SELECT DISTINCT term_language FROM wb_terms
.
顺便说一句,MonolingualText 语句的允许语言列表是否相同?
IRC 频道 #wikidata 上的用户 hoo 找到了这个解决方案:
在此地址获取 JSON 负载:
https://www.wikidata.org/w/api.php?action=paraminfo&modules=wbsetlabel
并提取
modules[0].parameters[8].type
此列表中的语言确实少于 MediaWiki 的所有 UI 语言。
现在有一个 API 用于获取支持的内容语言 (API sandbox):
默认情况下它只是 returns 语言 code
,但您可以通过wbclprop
参数。 (要控制返回 name
的语言,请设置全局 uselang
参数。)
要获得允许的单语文本语言,请将 wbclcontext
设置为 monolingualtext
而不是 term
;在 Wikidata 上,您还可以将其设置为 term-lexicographical
用于词典数据支持的所有语言代码(与 term
语言几乎但不完全相同)。