From 3de03439e23b5f605c43b3667361990cd168ab94 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 11 Dec 2018 19:02:29 -0500 Subject: [PATCH] Use user's locale for fetching wikidata label/description (closes #5563) --- modules/services/wikidata.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/services/wikidata.js b/modules/services/wikidata.js index a1b8a16cc..95fbef3bd 100644 --- a/modules/services/wikidata.js +++ b/modules/services/wikidata.js @@ -1,3 +1,5 @@ +import _uniq from 'lodash-es/uniq'; + import { json as d3_json } from 'd3-request'; import { utilQsString } from '../util'; @@ -24,9 +26,11 @@ export default { } lang = lang || 'en'; + d3_json(endpoint + utilQsString({ action: 'wbgetentities', format: 'json', + formatversion: 2, sites: lang.replace(/-/g, '_') + 'wiki', titles: title, languages: 'en', // shrink response by filtering to one language @@ -40,6 +44,7 @@ export default { }); }, + entityByQID: function(qid, callback) { if (!qid) { callback('', {}); @@ -50,15 +55,20 @@ export default { return; } - var lang = currentLocale.replace(/-/g, '_'); + var langs = _uniq([ + currentLocale.toLowerCase(), + currentLocale.split('-', 2)[0].toLowerCase(), + 'en' + ]); d3_json(endpoint + utilQsString({ action: 'wbgetentities', format: 'json', + formatversion: 2, ids: qid, props: /*sitelinks|*/'labels|descriptions', //sitefilter: lang + 'wiki', - languages: lang, + languages: langs.join('|'), languagefallback: 1, origin: '*' }), function(err, data) {