From 8cef804bae7ac454afa618328fdf2c4cd9d3b43d Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Thu, 24 Sep 2026 05:53:03 +0000 Subject: [PATCH] =?UTF-8?q?test(i18n):=20ratchet=20down=20=E2=80=94=20five?= =?UTF-8?q?=20locales=20now=20must=20stay=20complete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ceilings drop as the debt is paid: 429 -> 344 keys, and ar/es/fr/pt/ru reached zero. Those five are REMOVED from the DEBT map rather than set to 0. The gate already treats a locale with no entry as "must be complete", so deletion is what converts a finished translation into a permanent guarantee — setting 0 would read the same but leaves a line inviting someone to raise it. Confirmed the guarantee works before relying on it: deleting one Spanish key reports "es is missing 1/176 key(s) and has no DEBT entry" rather than passing. --- internal/check-i18n-parity.mjs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/check-i18n-parity.mjs b/internal/check-i18n-parity.mjs index 4f9d4dd06..ed551b35c 100644 --- a/internal/check-i18n-parity.mjs +++ b/internal/check-i18n-parity.mjs @@ -50,8 +50,11 @@ const areas = readdirSync(join(ROOT, 'en')).filter((f) => f.endsWith('.json')) // gets WORSE, and prints a nudge when one gets better so the ceiling can be // lowered. That makes drift impossible while leaving the backlog as backlog. // Lower a number whenever you translate something; never raise one. +// ar/es/fr/pt/ru reached ZERO on 2026-09-24 and are DELIBERATELY ABSENT from this +// map: a locale with no entry must be complete, so those five can never silently +// regress. Only the four still carrying debt are listed. const DEBT = { - ar: 10, de: 30, es: 10, fr: 6, hi: 50, it: 101, pt: 10, ro: 101, ru: 10, zh: 101, + de: 22, hi: 40, it: 94, ro: 94, zh: 94, } const fails = []