forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			44 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			44 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("")) | ||
|  | } |