Incremental localization workflows keep locale/{es,fr,de,pt} in sync when English documentation (.rst / .md) changes on dev-9.1.
| Workflow | Language | Source |
|---|---|---|
localize-es.md |
Spanish | English docs |
localize-fr.md |
French | English docs |
localize-de.md |
German | English docs |
localize-pt.md |
Portuguese | English docs |
These are GitHub Agentic Workflows using GitHub Copilot as the translation engine. Each push to dev-9.1 that changes English docs runs all four workflows in parallel (one per language).
- Push to
dev-9.1that modifies**/*.rstor**/*.md - Manual run via Actions → localize-<lang> → Run workflow
- Path filter — commits that only touch
locale/**(.pofiles) never match the push trigger. - Bulk localization markers in the commit message:
[bulk-i18n][skip-localize]chore(i18n): bulk
- Auto-localization commits from these workflows (
chore(localize/<lang>): ...or[localize/<lang>] ...prefix). - No pending strings — after
sphinx-intl update, if no empty/fuzzy entries need work, the agent no-ops.
Use bulk markers when committing large manual translation batches so automated runs do not fight your work.
- Enable GitHub Actions on the repository.
- Enable GitHub Copilot for the org and turn on Copilot CLI + Allow use of Copilot CLI billed to the organization in Copilot policy settings.
- Each workflow declares
copilot-requests: writeso the ActionsGITHUB_TOKENcan bill Copilot to the org (no personal PAT required when org billing is configured).
Agentic workflow sources (.md) must be compiled to .lock.yml before GitHub can run them:
gh extension install github/gh-aw # once
gh aw compile localize-es
gh aw compile localize-fr
gh aw compile localize-de
gh aw compile localize-pt
git add .github/workflows/*.lock.ymlRecompile after editing any .md workflow source.
# Dry-run manifest generation for Spanish
python3 tools/translate/prepare_diff_localize.py --lang es --manifest /tmp/manifest.json
# Simulate bulk-i18n skip
python3 tools/translate/prepare_diff_localize.py --lang es --check-skip-commit \
--commit-message "chore(i18n): bulk translate administration" && echo OK || echo SKIPEach workflow opens a draft PR labeled localization for human review. Merge when translations look correct; the commit message format prevents re-trigger loops.