forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			No EOL
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			No EOL
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
 | 
						|
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<string, string>): Map<string, Map<string, string>>{ 
 | 
						|
        console.log("Got "+data.length+" entries")
 | 
						|
        const perId = new Map<string, Map<string, string>>();
 | 
						|
        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<string, string>())
 | 
						|
            }
 | 
						|
            perId.get(id).set(labelLang, value)
 | 
						|
        }
 | 
						|
 | 
						|
        console.log("Got "+perId.size+" languages")
 | 
						|
        return perId
 | 
						|
    }
 | 
						|
    
 | 
						|
} |