Add French translation sync workflow (sync-translations-fr.yml)#573
Conversation
Clone of sync-translations-fa.yml with target-repo QuantEcon/lecture-python-programming.fr, target-language fr, pinned at action-translation@v0.15.0. Do not merge until the fr bulk bootstrap (translate init) has landed in the target repo. Part of the fr rollout tracked in QuantEcon/project-translation#3 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This PR predated the v0.16.0 release, so it pinned v0.15.0 (default model claude-sonnet-4-6). v0.16.0 defaults to claude-sonnet-5, which is the point of pointing French at it. Diverges deliberately from the fa and zh-cn sync workflows, which stay on v0.15.0/Sonnet 4.6: French is the edition evaluated on Sonnet 5, and silently changing the model for two established editions is not this PR's business.
|
Bumped the pin to This PR predated today's v0.16.0 release, so it pinned Deliberate divergence from the siblings
Merge order
Two things to know about what this turns onFrench sync will not apply typography. v0.16.0 ships a deterministic pass for the non-breaking space French needs before Severity, honestly: the defect is invisible. Both Sonnet 5 and Opus 4.8 already write Sonnet 5 has not been measured against Sonnet 4.6 on this corpus. The v0.16.0 upgrade was justified by a general capability claim, not a measurement on MyST lecture translation — tracked in QuantEcon/action-translation#82. Model upgrades are very likely the right direction; we just do not have the evidence yet, and French will be the first edition on Sonnet 5. If it turns out 4.6 was better, the fix is a constant and a pin, not a re-seed. |
There was a problem hiding this comment.
Pull request overview
Adds a new GitHub Actions workflow to automatically sync changed lecture content into the French translation repository (QuantEcon/lecture-python-programming.fr) as part of the multi-language rollout.
Changes:
- Introduces
sync-translations-fr.ymlto run on merged PRs touching lecture sources. - Adds an
issue_commenttrigger intended to allow manual re-sync via\translate-resync. - Configures the translation sync action to target the French repo/language.
Wires automated French translation sync for the new
QuantEcon/lecture-python-programming.fredition — step 3 of the fr rollout tracked in QuantEcon/project-translation#3.The workflow is a clone of
sync-translations-fa.ymlwith three substitutions:target-repo: QuantEcon/lecture-python-programming.fr,target-language: fr, andtarget-language-appropriate naming. On each merged PR touchinglectures/**/*.mdorlectures/_toc.ymlit opens a translation PR in the target repo; commenting\translate-resyncon a merged PR re-triggers it.Pin:
@v0.16.0, unlike its siblingsThis PR originally pinned
@v0.15.0, matchingfaandzh-cn. It now pins@v0.16.0, released 2026-07-15 (bumped in 07b2b6b), whose default model isclaude-sonnet-5rather thanclaude-sonnet-4-6.That divergence is deliberate. French is the edition we've looked at on Sonnet 5;
faandzh-cnhaven't been, and silently changing the model for two live editions isn't this PR's business. The estate therefore runs two action versions until that's decided on purpose — tracked in QuantEcon/project-translation#5.Merge order
QuantEcon/lecture-python-programming.fr#1(the seed) must merge first. It adds the 26 bulk-translated lectures (step 2 of the rollout). Merging this before then would fire syncs into a content-less repo.The first sync after merge also live-verifies that
QUANTECON_SERVICES_PATcan push to the new.frrepo — the one gate that can't be checked ahead of time.Two caveats about what this turns on
French sync will not apply typography. v0.16.0 ships a deterministic pass for the non-breaking space French needs before
; : ! ?, but it's wired into the CLI seed path only, not sync — verified:applyTypographyappears zero times in the action bundle. The seeded corpus is typography-correct; synced sections won't be, so it drifts toward mixed until QuantEcon/action-translation#81 is settled.scripts/typography/apply.mjsis the stopgap.Severity, honestly: the defect is invisible. Both Sonnet 5 and Opus 4.8 already write
Bonjour !— they just emit an ordinary space where French wants U+00A0, which renders identically and only matters when a line wraps. Synced French will read correctly.Sonnet 5 has not been measured against Sonnet 4.6 on this corpus. The v0.16.0 default change was justified by a general capability claim, not a measurement on MyST lecture translation — tracked in QuantEcon/action-translation#82. Model upgrades are very likely the right direction; we just don't have the evidence yet, and French will be the first edition on Sonnet 5. If 4.6 turns out better, the fix is a constant and a pin, not a re-seed.
🤖 Generated with Claude Code