From faa1ec42c557fca9695a4c5c8912b995bf89637b Mon Sep 17 00:00:00 2001 From: ansuz Date: Fri, 9 Apr 2021 17:33:35 +0530 Subject: [PATCH] update translation validation script to check more languages --- scripts/find-html-translations.js | 94 ++++++++++++++++++++++++++----- 1 file changed, 81 insertions(+), 13 deletions(-) diff --git a/scripts/find-html-translations.js b/scripts/find-html-translations.js index 658fa44c6..6e3999ad9 100644 --- a/scripts/find-html-translations.js +++ b/scripts/find-html-translations.js @@ -4,8 +4,14 @@ var simpleTags = [ '
', '
', '
', - '', // XXX - '', // XXX + '', + '', + + // XXX + "", + '

', + '

', + ]; ['a', 'b', 'em', 'p', 'i'].forEach(function (tag) { @@ -13,18 +19,80 @@ var simpleTags = [ simpleTags.push(''); }); -Object.keys(EN).forEach(function (k) { - var s = EN[k]; - if (typeof(s) !== 'string') { return; } - var usesHTML; +var PENDING_ENGLISH_KEYS = []; + +var KNOWN_ISSUES = [ // XXX + //'newVersion', + 'fm_info_anonymous', + 'register_notes', +]; + +var processLang = function (map, lang, primary) { + var announced = false; + var announce = function () { + if (announced) { return; } + announced = true; + console.log("NEXT LANGUAGE: ", lang); + }; - s.replace(/<.*?>/g, function (html) { - if (simpleTags.indexOf(html) !== -1) { return; } - usesHTML = true; - console.log("{%s}", html); + Object.keys(map).forEach(function (k) { + if (!EN[k]) { return; } + if (KNOWN_ISSUES.indexOf(k) !== -1) { return; } // XXX + + var s = map[k]; + if (typeof(s) !== 'string') { return; } + var usesHTML; + + s.replace(/<.*?>/g, function (html) { + if (simpleTags.indexOf(html) !== -1) { return; } + announce(); + usesHTML = true; + if (!primary) { + console.log("{%s}", html); + } + }); + + if (usesHTML) { + if (primary) { + PENDING_ENGLISH_KEYS.push(k); + } else { + // XXX ignore HTML in translations if they are also present in English + //if (PENDING_ENGLISH_KEYS.indexOf(k) !== -1) { return; } + } + if (true || !primary) { + announce(); + console.log("%s", s); + console.log("[%s]\n", k); + } + } }); +}; + +processLang(EN, 'en', true); - if (usesHTML) { - console.log("[%s] %s\n", k, s); - } +[ + 'ar', + 'bn_BD', + 'ca', + 'de', + 'es', + 'fi', + 'fr', + 'hi', + 'it', + 'ja', + 'nb', + 'nl', + 'pl', + 'pt-br', + 'ro', + 'ru', + 'sv', + 'te', + 'tr', + 'zh', +].forEach(function (lang) { + var map = require("../www/common/translations/messages." + lang + ".json"); + if (!Object.keys(map).length) { return; } + processLang(map, lang); });