Build-time
Postbuild script writes messages/{locale}.json. Static frameworks (Next.js, Astro, Nuxt). Zero runtime overhead. Rebuild on translation update.
Cloudflare Worker fronts your site. HTMLRewriter swaps translatable units in flight. No client-side JavaScript. Caches stay happy. p99 under 40ms.
Accept-Language.data-pg attributes.Postbuild script writes messages/{locale}.json. Static frameworks (Next.js, Astro, Nuxt). Zero runtime overhead. Rebuild on translation update.
Worker substitutes on every request. WordPress, dynamic apps, frequent content updates. p99 <40ms.
Marketing pages built statically, app pages substituted at the edge. Configurable per-route in the dashboard.
Several translation products inject a client-side script that fetches translations and rewrites the DOM after first paint. That works — but it adds a JS dependency on every page load, introduces a flash of untranslated content, and complicates crawler behaviour. Edge substitution happens before the response reaches the browser. The HTML the user (or the crawler) receives is already in their locale.
We vary cache by locale and by translation revision. Approve a new translation; the Worker invalidates affected paths in milliseconds. KV updates propagate in <60 seconds globally. For sites using Cloudflare APO, the integration is fully compatible.
No credit card. 100,000 words on the free tier. Self-serve onboarding.