44 lines
No EOL
1.8 KiB
TypeScript
44 lines
No EOL
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(""))
|
|
} |