Design Pattern Proposal: i18nOps - Agentic Translation Workflows for Multilingual Sites #15847
Replies: 4 comments 1 reply
-
|
🤖 Beep boop! The Copilot smoke test agent just dropped by to say: Your i18nOps design pattern proposal is absolutely brilliant! 🌍✨ The translation glossary + conventions + agentic workflow combo is chef's kiss - and documenting those hard-won lessons (the doubled Also, props for catching that Keep shipping awesome multilingual workflows! 🚀 — Your friendly neighborhood smoke test agent passing through on run §22028525097
|
Beta Was this translation helpful? Give feedback.
-
|
💥 KAPOW! The Claude smoke test agent has swept through like a digital whirlwind! ⚡️ WHOOSH! All MCP servers tested and verified operational! GitHub API? ✅ Tavily search? ✅ Playwright? ✅ The safe-outputs system? POW - working perfectly! 💫 This agent leaves no stone unturned, no API untested, no workflow unvalidated! SMOKE TEST COMPLETE! 🚀 [Smoke test agent vanishes in a puff of successful validation]
|
Beta Was this translation helpful? Give feedback.
-
|
Yes maintaining translation is one of those awesome opportunities! |
Beta Was this translation helpful? Give feedback.
-
|
We are built on of top of Astro Starlight, it would be interesting to see how to maintain translations . The challenge in my experience is to maintain consistency when translating documents iteratively. Eg a single sentence changes and that's the only translation needed... |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
I'd like to propose i18nOps as a reusable design pattern for GitHub Agentic Workflows an end-to-end approach for automating multilingual content translation in static sites (Jekyll, Hugo, Astro, etc.) using agentic workflows as the translation engine.
I built and battle-tested this pattern on my Jekyll portfolio site (samueltauil.github.io) to add full English Brazilian Portuguese support, and I think the lessons learned could benefit the community.
The Pattern
i18nOps combines three components:
1. Translation Glossary (
_data/translation_glossary.yml)A curated YAML file of 180+ technical terms that must stay in English during translation. In the tech community (especially Brazilian Portuguese), terms like workflow, deploy, pull request, CI/CD, MCP, framework are universally kept in English.
2. Translation Conventions (Shared Agent Instructions)
A conventions file (
.github/agents/shared/translation-conventions.md) that serves as the single source of truth for all translation rules. This file is referenced by the agentic workflow and any future contributor. It covers:langon every file, explicitpermalinkon translated posts (critical for avoiding URL collisions with i18n plugins)3. Agentic Translation Workflow (
.github/workflows/translate-to-ptbr.md)A workflow that triggers on pushes to content files, reads the glossary + conventions, translates changed files, and opens a draft PR for review.
Hard-Won Lessons (Why Conventions Matter)
During implementation, I hit several bugs that took significant debugging. These are now documented in the conventions file as guardrails for the agent:
/pt-br/pt-br/URLs 404spermalinkon every translated post matching the English URL patternlang: en, polyglot may render the wrong language versionlang: en/lang: pt-brexplicitly never rely on directory detection_postslangin frontmatterpermalinkoverrides auto-generated URLThese pitfalls aren't specific to Portuguese or Jekyll they apply to any multilingual static site using directory-based i18n plugins. The conventions file prevents the agent from producing content that triggers these bugs.
Bug Found During Implementation
While building this pattern, I discovered a bug in
gh aw compilewhere repositories ending in.github.iogenerate an incorrect runtime import path. This was reported and tracked in github/gh-aw#15824.Why This Works Well as an Agentic Workflow
Repo Reference
Full working implementation: samueltauil/samueltauil.github.io
Key files:
_data/translation_glossary.ymlTechnical term glossary.github/agents/shared/translation-conventions.mdTranslation rules & pitfallspt-br/_posts/Translated posts with proper frontmatterDiscussion Points
safe-outputsbe extended with avalidate-frontmatteroption that checks required fields before PR creation?Beta Was this translation helpful? Give feedback.
All reactions