Details
I present a standards-based linguistic framework that feeds LLMs the right context to translate Plone (gettext/i18ndude, domains) and Volto (React-Intl/FormatJS) consistently—even where msgid vs “Default:” usage has drifted. In Volto, the project’s i18n script (for example, pnpm i18n) extracts messages, synchronizes a .pot template and .po files, then generates the JSON catalogs used at runtime.
The approach combines:
- Controlled glossaries and semantic buckets for roles, workflow states, and components to disambiguate intent.
- Lightweight context packaging in prompts (purpose, audience, part of speech, UI region). • Alignment with gettext/ICU and ISO locale data, plus cross-language checks against existing strings.
- Automated QA to flag ambiguous English terms (“File”, “Menu”, “Link”, “Tree”, “Cookies”, “Key”, “Root”).
I will demo two practical workflows teams can adopt today: (1) extracting .pot from both Plone (i18ndude) and Volto (pnpm i18n), and (2) transforming a single English .pot into vetted .po files in multiple languages using the framework, with reproducible prompts, guard-rail rules, and verification gates. I will show how to keep JSON in Volto and PO files in Plone in sync, how to avoid domain drift, and how to prevent accidental “label-as-msgid” regressions.
Attendees leave with checklists, sample prompts, and a repeatable path from English .pot to accurate, culturally appropriate .po translations—ready for both Plone and Volto.

