Shipping a data-heavy tool across 5 locales, English, Dutch, German, French, Spanish, over 168 countries makes a translation platform feel inevitable. But a SaaS translation tool adds a dependency, a monthly bill, and a bottleneck: every content change means exporting strings, waiting on translators, importing segments, and validating five rollbacks.
Invert the model instead. Treat translation as deployment config, not a separate pipeline.
Glossary as config, executor plus gate
Store terminology and translation rules as a JSON glossary in version control. That glossary is the single source of truth for how a concept maps across locales.
Two agents do the work:
- Executor (cheap model). Reads source content, applies the glossary mechanically, outputs all locales in parallel. Fixed rules only: substitute terms, apply locale formatting (date order, number separators), expand locale-aware blocks. No judgment calls.
- Gate (stronger model). Validates every output before it ships. Checks for leaked source language, persona drift, and locale conventions the executor can't judge, catching the silent breakage a literal substitution introduces.
This decouples velocity (a cheap executor running in parallel) from quality (a gate doing deep inspection). Most content clears the gate on the first pass; regressions surface early instead of in production.
The scale that makes it matter
The Travel Safety Map applies this across 168 countries: 23 sections per profile (advisories, scams, emergency numbers, embassies, road safety), sourced from 5 government aggregators plus crime, safety and corruption indices. 152 of the 168 countries also ship in the 4 other locales, roughly 152 Γ 4 Γ 23, near 14,000 translation decisions per release. A glossary-driven executor clears that batch in minutes; the gate's real work is the custom advisory text and scam descriptions that rely on local context, not the 95% that just follows rules.
What breaks when you skip the gate
Three failure modes show up at that volume. Leaked source language: an English phrase slips through untranslated, and manual spot checks miss it in a 14,000-segment batch. Silent persona drift: German du/Sie, Spanish tΓΊ/usted, or French register shifts subtly correct-but-off in a way users notice before you do. Structural breakage: a URL, JSON key, or templated block gets translated when a glossary flag should have excluded it.
Why it transfers
Version control becomes the translation history: glossary changes are auditable commits, a release tag maps to a glossary version, rollback is a git checkout. The same executor-plus-gate split works for product tutorials, error messages, or any compliance copy across locales. i18n becomes a deployment problem you own, not a people problem you outsource, and the tradeoff is that there is no SaaS left to blame when a term is wrong.
See the pattern where the data density makes the case: 168 country safety profiles, 5 locales, 23 sourced sections each.
Top comments (0)