Improvements to translation checking in createLayouts, small translation fixes

This commit is contained in:
Pieter Vander Vennet 2020-09-25 23:59:19 +02:00
parent 60c835fdac
commit 1eddabd8c9
5 changed files with 30 additions and 12 deletions

View file

@ -104,6 +104,10 @@ export class FromJSON {
if (typeof (json) === "string") {
return new Translation({"*": json});
}
if(json.render !== undefined){
console.error("Using a 'render' where a translation is expected. Content is", json.render);
throw "ERROR: using a 'render' where none is expected"
}
const tr = {};
let keyCount = 0;
for (let key in json) {

View file

@ -45,7 +45,8 @@
"nl": "Is deze drinkwaterkraan nog steeds werkende?"
},
"render": {
"en": "The operational status is <i>{operational_status</i>"
"en": "The operational status is <i>{operational_status</i>",
"nl": "Deze waterkraan-status is <i>{operational_status}</i>"
},
"freeform": {
"key": "operational_status"

View file

@ -18,8 +18,8 @@
}
},
"description": {
"en": "",
"nl": ""
"en": "A map, meant for tourists which is permanently installed in the public space",
"nl": "Een permantent geinstalleerde kaart"
},
"tagRenderings": [
{

View file

@ -23,10 +23,8 @@
{
"id": "Toilet",
"name": {
"render": {
"en": "Toilets",
"de": "Toiletten"
}
},
"overpassTags": "amenity=toilets",
"title": {
@ -59,11 +57,9 @@
"amenity=toilets"
],
"description": {
"render": {
"en": "A publicly accessible toilet or restroom",
"de": "Eine öffentlich zugängliche Toilette"
}
}
},
{
"title": {

View file

@ -45,9 +45,13 @@ function validate(layout: Layout) {
missing[ln] = 0;
present[ln] = 0;
for (const translation of translations) {
if (translation.translations["*"] !== undefined) {
continue;
}
const txt = translation.translations[ln];
const isMissing = txt === undefined || txt === "" || txt.toLowerCase().indexOf("todo") >= 0;
if (isMissing) {
console.log(` ${layout.id}: No translation for`, ln, "in", translation.translations, "got:", txt)
missing[ln]++
} else {
present[ln]++;
@ -55,12 +59,21 @@ function validate(layout: Layout) {
}
}
console.log("Translation completenes for theme", layout.id);
let message = `Translation completenes for theme ${layout.id}`
let isComplete = true;
for (const ln of layout.supportedLanguages) {
const amiss = missing[ln];
const ok = present[ln];
const total = amiss + ok;
console.log(`${ln}: ${ok}/${total}`)
message += `\n${ln}: ${ok}/${total}`
if (ok !== total) {
isComplete = false;
}
}
if (isComplete) {
console.log(`${layout.id} is fully translated!`)
} else {
console.log(message)
}
}
@ -242,7 +255,11 @@ for (const layoutName in all) {
wikiPage += "\n\n"+generateWikiEntry(layout);
}
writeFile("wikiIndex", wikiPage, (err) => {err ?? console.log("Could not save wikiindex", err)});
writeFile("wikiIndex", wikiPage, (err) => {
if (err !== null) {
console.log("Could not save wikiindex", err);
}
});
console.log("Counting all translations")
Translations.CountTranslations();
console.log("All done!");