A language folder falls back per field all the way down, or is refused - #609
Merged
Merged
Conversation
…efused The overlay merged one level deep, so a folder translating a lesson's cards or a help entry's steps replaced the whole list rather than falling back per item: three English steps became one Polish step, silently, and a lesson with three of nine cards translated lost six cards of teaching. The fallback now reaches every depth, and the cases that would replace English text rather than fall back to it are refused the way ADR-0018 refuses broken content — a list shorter than the master's, a field the master has no slot for (a misspelt key leaves the real one untranslated), and an id the folder translates twice, which silently kept whichever came last. A record broken by the folder now names the folder, not only the English master it never came from. English ships alone, so none of this is reachable today; it is reachable the day a folder lands, and the tool meant to guarantee completeness (#603) does not exist yet.
The 1.2.0+5 release landed on main after this branch was cut, so merging main carried the bullet into the released section. It is a fix, not an addition, so it sits under Fixed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Found auditing #605. The overlay merged one level deep, so the per-field
fallback it promises stopped at the top of an entry — and most of the course's
prose sits below that. No ticket; the audit is in the conversation that
produced this.
Watch for
help entry's
stepsreplaced the whole list: three English steps became onePolish step, with no error. A lesson with three of nine cards translated lost
six cards of teaching. Every bank carries nested prose —
lessons.cards,card_kind_help.steps,mini_games.steps,mini_game_content.rounds,visual_guides.notes.owner: a list shorter than the master's, a field the master has no slot for
(a misspelt key left the real one in English), and one id translated twice
(whichever came last won). Each names the entry and the field to redraft.
since ADR-0026 marks a piece of text wherever it sits.
loadBankreported everyparse failure against the English master, which is not where the bad field
came from once an overlay is in play.
this. It becomes reachable the day one lands — and Draft a language folder from the English master #603, the tool meant to
guarantee a folder is complete, is not built.
Not here
Mark granularity still mismatches ADR-0026. Marks are keyed by top-level
field, so a lesson's only key is
cardsand one fingerprint covers all ofthem — fix a typo in card three and every card re-opens for retranslation,
which is what the ADR's "per piece of text, not per entry" exists to prevent.
That is the drafting tool's shape to settle (#603), not the loader's.
Checks
The gates, all green locally: format, analyze, the metrics gate, the comment
cap on the touched files,
check_changelog.sh, and the full suite at 3236passing. Seven new overlay tests and two loader tests; the nine existing
overlay tests pass unchanged. Both defects were reproduced against the real
card_kind_helpcontent before the fix.