Found while clearing the cognate debt on #2634. Separate from that work and outliving it, so recording it here.
The defect
scripts/l10n/locales/is.json documents an explicit owner decision: Register becomes gagnaskrá, precisely because skrá collides with File. Plus Slug → Stuttheiti and Refresh → Endurnýja. 33 corrections in total.
The bundle ships none of them. Verified on feature/l10n-fixes at a821ac0c7:
Register: Skrá
File: Skrá <- byte-identical
Slug: Auðkenni (recorded decision: Stuttheiti)
Refresh: Uppfæra (recorded decision: Endurnýja)
Gagnaskrá appears in no commit in the branch history. So an Icelandic user sees one word for two different concepts — Register and File — throughout the UI.
Why it is worth a ticket rather than a quick edit
The cognate pass on is wrote its new values using gagnaskrá, per the recorded decision. So the bundle now names the concept two ways until the remaining 33 land — consistent with the decision where it was touched, inconsistent where it was not. Finishing it means applying all 33 and re-reading the surrounding strings for agreement, which is a deliberate pass rather than a find-and-replace.
Worth noting about the class
sq had the same shape — ten rejected-cognate decisions recorded in its lexicon note while the bundle still shipped bare English. Those were applied during the cognate pass. A recorded decision that was never applied is invisible to every gate: parity checks that a value exists and is not the English source, never that it matches what the config says it should be.
That suggests a cheap check worth adding: assert that every correction recorded in scripts/l10n/locales/<loc>.json is actually present in l10n/<loc>.json. It would have caught both.
Found while clearing the cognate debt on #2634. Separate from that work and outliving it, so recording it here.
The defect
scripts/l10n/locales/is.jsondocuments an explicit owner decision: Register becomesgagnaskrá, precisely becauseskrácollides with File. Plus Slug →Stuttheitiand Refresh →Endurnýja. 33 corrections in total.The bundle ships none of them. Verified on
feature/l10n-fixesata821ac0c7:Gagnaskráappears in no commit in the branch history. So an Icelandic user sees one word for two different concepts — Register and File — throughout the UI.Why it is worth a ticket rather than a quick edit
The cognate pass on
iswrote its new values usinggagnaskrá, per the recorded decision. So the bundle now names the concept two ways until the remaining 33 land — consistent with the decision where it was touched, inconsistent where it was not. Finishing it means applying all 33 and re-reading the surrounding strings for agreement, which is a deliberate pass rather than a find-and-replace.Worth noting about the class
sqhad the same shape — ten rejected-cognate decisions recorded in its lexicon note while the bundle still shipped bare English. Those were applied during the cognate pass. A recorded decision that was never applied is invisible to every gate: parity checks that a value exists and is not the English source, never that it matches what the config says it should be.That suggests a cheap check worth adding: assert that every correction recorded in
scripts/l10n/locales/<loc>.jsonis actually present inl10n/<loc>.json. It would have caught both.