forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { Utils } from "../Utils"
 | 
						|
import { AllKnownLayouts } from "../Customizations/AllKnownLayouts"
 | 
						|
import TranslatorsPanel from "../UI/BigComponents/TranslatorsPanel"
 | 
						|
import * as languages from "../assets/generated/used_languages.json"
 | 
						|
{
 | 
						|
    const usedLanguages = languages.languages
 | 
						|
 | 
						|
    // Some statistics
 | 
						|
    console.log(
 | 
						|
        Utils.FixedLength("", 12) + " " + usedLanguages.map((l) => Utils.FixedLength(l, 6)).join("")
 | 
						|
    )
 | 
						|
    const all = new Map<string, number[]>()
 | 
						|
 | 
						|
    usedLanguages.forEach((ln) => all.set(ln, []))
 | 
						|
 | 
						|
    for (const layoutId of Array.from(AllKnownLayouts.allKnownLayouts.keys())) {
 | 
						|
        const layout = AllKnownLayouts.allKnownLayouts.get(layoutId)
 | 
						|
        if (layout.hideFromOverview) {
 | 
						|
            continue
 | 
						|
        }
 | 
						|
        const { completeness, total } = TranslatorsPanel.MissingTranslationsFor(layout)
 | 
						|
        process.stdout.write(Utils.FixedLength(layout.id, 12) + " ")
 | 
						|
        for (const language of usedLanguages) {
 | 
						|
            const compl = completeness.get(language)
 | 
						|
            all.get(language).push((compl ?? 0) / total)
 | 
						|
            if (compl === undefined) {
 | 
						|
                process.stdout.write("      ")
 | 
						|
                continue
 | 
						|
            }
 | 
						|
            const percentage = Math.round((100 * compl) / total)
 | 
						|
            process.stdout.write(Utils.FixedLength(percentage + "%", 6))
 | 
						|
        }
 | 
						|
        process.stdout.write("\n")
 | 
						|
    }
 | 
						|
 | 
						|
    process.stdout.write(Utils.FixedLength("average", 12) + " ")
 | 
						|
    for (const language of usedLanguages) {
 | 
						|
        const ratios = all.get(language)
 | 
						|
        let sum = 0
 | 
						|
        ratios.forEach((x) => (sum += x))
 | 
						|
        const percentage = Math.round(100 * (sum / ratios.length))
 | 
						|
        process.stdout.write(Utils.FixedLength(percentage + "%", 6))
 | 
						|
    }
 | 
						|
    process.stdout.write("\n")
 | 
						|
    console.log(
 | 
						|
        Utils.FixedLength("", 12) + " " + usedLanguages.map((l) => Utils.FixedLength(l, 6)).join("")
 | 
						|
    )
 | 
						|
}
 |