Conversation
The overlay refused any translated list whose length differed from the master's. That rule landed to stop translated prose lists replacing English silently, and caught aliases as collateral: ADR-0025 makes a term's aliases its inflected forms — ten in Polish where English needs three — so a correct Polish folder threw at startup. Aliases are search keys rather than prose, which is the distinction ADR-0025 already draws, so they set their own length and every other list still has to match the master's.
…d complete The tool ADR-0026 asks for: plan queues every piece of prose that is absent or stale, apply writes the folder with a fingerprint per field, and check refuses to call a language complete while anything is missing. The words themselves are agent-drafted, so plan writes the queue and apply reads it back — no translation engine is wired in. A register says which strings are words and which are keys; anything it does not name is prose, and a test fails when a string that reads like a key is heading for translation. Two couplings it has to respect: an answer held as one of its options' words follows that option into the language, and a term's aliases set their own length. card_kind_help gained an id. A folder lands on a bank entry by entry by id, so the one bank without one could not be translated at all.
3 tasks
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
The drafting half of the translation step — ADR-0026's three jobs: draft a
language folder, mark it complete, queue what has gone stale. Closes #603.
The words are agent-drafted, so the tool does the bookkeeping around them:
planwrites a queue of every piece of prose that is absent or stale, an agentfills each
text,applywrites the folder with a fingerprint per field, andcheckrefuses to call a language complete while anything is missing.Watch for
whose aliases held kawa, kawy, kawie, kawę was refused at startup — the
overlay wanted every translated list to match English's length, which
contradicts ADR-0025's "ten forms where English needs three". And
card_kind_helpwas the one bank whose entries had noid, so no foldercould ever land on it, which made ADR-0026's complete unreachable. Its
idis additive, so no schema bump.anything it does not name is prose. That default is the safe one for words
and the wrong one for a key, so
translatable_fields_test.dartfails when astring that reads like a key is heading for translation — checked by
deleting an entry and watching it go red, not by assuming.
fill[].aand bagpick'sanswerare values, not indices, so translating theoptions alone would leave every one of those cards unanswerable, silently.
choices[]needs nothing: it carriescorrecton the choice itself.latinis leftEnglish on the grounds that a Latin name is the same in every language, and
moduleLabelis translated as prose even though the extractor derives itfrom a module's own words — so a language that translates one and not the
other could disagree with itself. Neither is ruled anywhere.
estimate is ~4,700, which is the closest thing to an independent check that
the register draws the line in the right place.
Not here
No language folder ships: this is the tool, not Polish.
assets/content/l10n/stays empty, and the completeness test passes over whatever is there.
Checks
A full round trip against the real banks, outside the suite: 4,654 queued,
filled with marker text, applied,
checkgreen — then every written bankoverlaid onto its master through the app's own
overlayTranslationswithout arefusal. The synthetic folder was deleted afterwards.