<@U0A9RLDPQU8> Picking up #1218. Root cause: the p...
# questions
g
@modern-fireman-99755 Picking up #1218. Root cause: the pre-commit check only confirms each key has all 15 language slots filled, it never looks at whether the values are actually translated, so you can copy the English string into the other 14 slots and it still passes clean, which is how the untranslated text shipped. I hardened
check-translation-completeness.cjs
with a third check on top of the presence one: it flags any key where a non-English value is byte-identical to English (English copied verbatim), with a per-language
ENGLISH_BY_DESIGN
allowlist for the legit cases like loanwords so you can exempt a single language on a key (e.g. German "Remote") without switching the check off for that key's other languages. I also added a guard that errors out if zero languages parse from
index.ts
, since without it a reformat there could quietly turn the whole check into a no-op, the same silent-pass problem that let this through in the first place. Running it flags ~200 keys with English copied into at least one non-English slot, some fully untranslated and some only partial, so it's a fair bit more than the issue lists.
m
Hey @gentle-terabyte-38941, I don't think we should do that. Some languages don't have direct translations for every tech term. For example, in Italian, there isn't a native word for "Cloud"—we just use the English one. Because of this, keeping certain English words in other translations is actually preferred. The original issue was simply about going through
translation.json
and translating terms only where it makes sense to do so.