Skip to content

Classify context-specific translation adaptations - #744

Draft
jeprecated wants to merge 32 commits into
anki-geo:masterfrom
jeprecated:translation-intent-audit
Draft

Classify context-specific translation adaptations#744
jeprecated wants to merge 32 commits into
anki-geo:masterfrom
jeprecated:translation-intent-audit

Conversation

@jeprecated

@jeprecated jeprecated commented Jul 22, 2026

Copy link
Copy Markdown
Member

Note

This PR is stacked on top of #743. Until that migration PR is merged, GitHub will also show its commits in this PR.

See only the last two commits for the real changes. https://github.com/anki-geo/ultimate-geography/pull/744/changes/5e96018f74834bd751cfb67b9f1ece9fb3abdbd8..8bbeb7344ad6fc799f60f75fb98012f000a59590 (maaan I'm looking forward to Github getting Stacked diff support already!)

I wanted to separate the question of what kind of translation entry something is from the much riskier question of whether a translation is actually correct.

This PR therefore makes no learner-visible translation changes. It has two commits, both of which preserve the parsed CrowdAnki output for all 100 targets.

Commit 1: one simple context-specific adaptation

Taiwan is the small example that demonstrates the principle.

The existing Simplified Chinese description is not a reusable translation of the English sentence in every context. It is wording owned by that specific target-language field, with a geopolitical reason for being different.

The first commit moves it from the broad direct dictionary into a path-owned target_adaptations entry. That makes the difference, its expected English source, and its ownership explicit without changing the exported value.

Commit 2: apply the same principle across the deck

I then used AI to audit all 6,985 remaining translations.direct entries and apply the same distinction consistently across the language overlays.

The result moves:

  • 116 direct source keys into 120 path-specific typed adaptations;
  • one Hebrew field-specific value into a contextual translation.

Some source keys were used at more than one note path, which is why 116 keys become 120 explicit adaptations.

I was deliberately conservative about this. The audit retained 6,727 entries as direct translations, left 51 entries requiring native-language judgment alone, and left 17 possible canonical-source decisions alone. The 73 possible content errors found during that work are also excluded from this PR and handled separately in a draft follow-up.

The point here is not that AI has proven every translation semantically correct. The point is that it applied one explicit authoring rule across the existing data, and I can prove that this reclassification does not change what learners receive.

Verification

  • Translation-profile consistency passes.
  • Strict verification passes for all 74 main and 26 companion targets.
  • All 100 targets were exported and compared as parsed CrowdAnki JSON.
  • The aggregate output before and after both commits is identical.
  • No note fields, GUIDs, deck/model identities, templates, tags, configuration, or media change.

This gives us a cleaner distinction between reusable translations, context-specific translations, and target-owned adaptations without combining that structural cleanup with editorial translation changes.

@jeprecated
jeprecated force-pushed the translation-intent-audit branch from 8bbeb73 to 5ac0630 Compare July 30, 2026 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant