DF-827: translation engine evaluation and recommendation - #207
Open
Conversation
Recommends starting with Mintlify's built-in AI translations, keeping General Translation as the documented fallback, and not adopting Lingo.dev. The disqualifying criterion is the 710 internal links carrying a #fragment (DF-826): an engine that cannot pin English heading anchors breaks them silently. General Translation solves it in configuration (experimentalAddHeaderAnchorIds), Lingo.dev has no published equivalent, and Mintlify-native is silent on it — which is what the bake-off measures. Strongest evidence for the fallback: mintlify/docs, Mintlify's own documentation repo, runs on General Translation — gt.config.json, gt-lock.json, es/fr/zh trees, and per-locale nav files $ref'd from docs.json. Includes a 12-page bake-off covering every structural pattern in the corpus, scored by validate-mdx-parity.mjs so the answer is a number rather than a preference. One afternoon to settle it against 295 pages of guessing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Aug 29, 2026
Contributor
Confidence Score: 4/5The documented bake-off command should be corrected before merging because it cannot produce the stated 12-page evaluation. The validator recursively processes all MDX beneath Files Needing Attention: i18n/03-tooling-evaluation.md
|
| Filename | Overview |
|---|---|
| i18n/03-tooling-evaluation.md | Adds the tooling recommendation and bake-off procedure, but the validator command does not select the stated cross-directory sample. |
Reviews (1): Last reviewed commit: "DF-827: translation engine evaluation an..." | Re-trigger Greptile
Comment on lines
+154
to
+157
| ```bash | ||
| node i18n/scripts/validate-mdx-parity.mjs \ | ||
| --source docs --target <engine-output>/docs \ | ||
| --locale ko --link-prefix --require-anchors --json > bakeoff-<engine>.json |
Contributor
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.
Documents in
i18n/cross-reference each other, so relative links to files added later in the stackresolve once the stack has landed. The final state is link-checked; every relative link resolves.
Operational sequencing — none of this happens on merge
Merging this stack changes nothing a reader sees.
docs.jsonis untouched, no workflow is installed, andno
ko/tree exists at the repo root. Turning Korean on is a separate, deliberate sequence:docs.jsonlanguagesarray;cp i18n/nav/ko.json ./ko.jsondocs/+guides/intoko/gt.config.jsonto root,translate.ymlto.github/workflows/, setGT_API_KEY+GT_PROJECT_ID/koSteps 3 and 6 are the only ones that change live behaviour. Both are reversible by reverting one file.
Adds one file:
i18n/03-tooling-evaluation.mdRecommendation
Start with Mintlify's built-in AI translations. Keep General Translation as the documented fallback. Do not adopt Lingo.dev.
The disqualifying criterion
The 710 internal links carrying a
#fragment(see the DF-826 PR earlier in this stack). An engine that cannot pin English heading anchors breaks them silently.experimentalAddHeaderAnchorIds: "mintlify"Strongest evidence for the fallback
mintlify/docs— Mintlify's own documentation repo — runs on General Translation. At HEAD it hasgt.config.json,gt-lock.json,es/fr/zh/content trees, and per-locale nav files$ref'd fromdocs.json. The people who wrote the MDX renderer chose this tool to localize their own docs.How to settle it in an afternoon
A 12-page bake-off covering every structural pattern in the corpus, scored by
validate-mdx-parity.mjsso the answer is a number rather than a preference:Then four human checks on those twelve only: glossary adherence, the
리텐션/데이터 보관split, particles after Latin words, and register.Twelve pages to find out beats guessing across 295.
This decision has downstream consequences in this stack
If Mintlify-native wins, the DF-830 and DF-831 PRs later in this stack should be closed rather than merged — Mintlify opens the translation PR itself, so there is no config to write and no workflow to install. Only the three validation steps survive. That is flagged in both of those PRs.