2017-09-30 3 views
3

J'écris un outil pour interagir avec Wikidata où les étiquettes et les descriptions sont ajoutées aux éléments. Mais je voudrais valider que la langue est supportée avant d'essayer de l'ajouter. Donc, ma question est comment puis-je obtenir une liste des codes de langue autorisés. La documentation décrit cela comme UserLanguageCode mais ne donne aucune information sur la récupération des valeurs autorisées.Comment obtenir toutes les langues autorisées pour Wikidata

Je sais que je peux obtenir une liste de toutes les langues utilisées en effectuant l'opération SQL suivante sur la base de données, mais à la fois lente et inefficace: SELECT DISTINCT term_language FROM wb_terms. En outre, la liste des langues autorisées est-elle la même pour les instructions MonolingualText?

+1

Sont-ils identiques à ['action = requête & méta = siteinfo & siprop = languages'] (https://www.wikidata.org/w/api.php?action=help&modules=query%2Bsiteinfo)? – Bergi

+1

Par https://www.mediawiki.org/wiki/API:Siteinfo ce sont les langues de l'interface utilisateur pour MediaWiki. Il n'est pas clair s'il s'agit de la même liste que celle des langages d'étiquettes autorisés. Ce n'est pas la même chose que les langues MonolingualText autorisées. Par exemple. 'nl-informal' apparaît ici et est autorisé pour les labels mais pas pour MonolingualText. –

Répondre

3

hoo utilisateur sur le canal IRC #wikidata trouvé cette solution:

Obtenez la charge utile JSON à l'adresse suivante:

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

et l'extrait

modules[0].parameters[8].type 

Il y a en effet moins langues cette liste que toutes les langues de l'interface utilisateur pour MediaWiki.

+1

Merci. Cela a fonctionné pour obtenir les langues autorisées pour 'label' et' alias'. Il semble que la liste des langues autorisées pour 'MonolingualText' soit différente et non accessible aujourd'hui. Petite note. Dans le cas où l'ordre des paramètres changerait, j'oscillerais probablement dessus, puis sélectionnerais le 'type' correspondant à' 'name' == 'language'' –