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 } }