export default class WikidataUtils { /** * Mapping from wikidata-codes to weblate-codes. The wikidata-code is the key, mapcomplete/weblate is the value */ public static readonly languageRemapping = { "nb":"nb_NO", "zh-hant":"zh_Hant", "zh-hans":"zh_Hans", "pt-br":"pt_BR" } /** * Extract languages and their language in every language from the data source. * The returned mapping will be {languageCode --> {languageCode0 --> language as written in languageCode0 } } * @param data * @param remapLanguages */ public static extractLanguageData(data: {lang: {value:string}, code: {value: string}, label: {value: string}} [], remapLanguages: Record): Map>{ console.log("Got "+data.length+" entries") const perId = new Map>(); for (const element of data) { let id = element.code.value id = remapLanguages[id] ?? id let labelLang = element.label["xml:lang"] labelLang = remapLanguages[labelLang] ?? labelLang const value = element.label.value if(!perId.has(id)){ perId.set(id, new Map()) } perId.get(id).set(labelLang, value) } console.log("Got "+perId.size+" languages") return perId } }