Localization

One email. Twenty languages. Zero copy‑paste.

Add languages to a campaign and every version becomes a real email — drafted by AI in your brand voice, reviewed and approved by the local market, exported as its own campaign. And when the master design changes, every language follows without losing a single translated word.

Not locked copies. Not spreadsheets. Real emails, kept in step.

Summer Sale 2026

Language versions

Translate all
🇬🇧

English Master

Source
🇩🇪

German

de-DE

AI draft
🇫🇷

French

fr-FR

AI draft
🇪🇸

Spanish

es-ES

AI draft
🇮🇹

Italian

it-IT

AI draft
🇯🇵

Japanese

ja

AI draft
🇸🇪

Swedish

sv

AI draft
6 languages drafted — each one a full emailReview → Approve → Export
The model

Every language version is a real email

Most tools bolt translation on as a locked copy: layout frozen, one all-or-nothing “update variants” button, and master text changes that silently never reach the translations.

Better Email models each language as a full sibling email in the family — so everything your team already expects from an email just works, per language.

Its own revisions & history

The German reviewer’s edits never touch the French version. Every language has its own version history, so nothing gets stepped on.

Its own review & approvals

Comments, approvers, and pre-flight checks run per language. Your German market approves German — nobody signs off on copy they can’t read.

Its own design freedom

A local hero image, an extra legal module, different segmentation for that market. Overrides are explicit, tracked, and survive every sync.

Its own export identity

German and French land in your ESP as separate campaigns — SFMC, Braze, Emarsys, wherever you send from. No merge step, no renaming ritual.

Try it

The same campaign, fluent everywhere

One design, one send date, twenty inboxes that each read like the email was written for them. Click through the family — this is what your reviewers see in the editor.

Language versions — pick a sibling

🇩🇪 German

Approved

German conventions applied: % gets a space, dates and formality follow de-DE.

  • Jump between siblings without leaving flow. The switcher sits next to the email name in the editor — every version is one click away.

  • Merge tags survive byte-for-byte. Personalization, Liquid, and ESP expressions are preserved exactly — and validated after every translation.

  • Every version has its own status. German is approved while Japanese is still an AI draft — review runs per language, not per campaign.

Same email, same design — different language

Subject

Letzte Chance: Sommerpreise nur bis Sonntag

NL

Hallo {{ first_name }},

Letzte Chance — die Sommerpreise enden am Sonntag

Bis zu 40 % Rabatt auf Sofas, Betten und Gartenmöbel. Nur bis Sonntag um Mitternacht.

Zum Sale
Design, images, and links stay linked to the master — only the words change
AI translation

Translation that read the whole email

This isn’t string-by-string machine translation. The AI sees the entire email — subject, structure, and every block in context — plus your brand’s tone of voice, and writes for the target market’s conventions: formality, dates, currency, punctuation. A de-AT reader gets Austrian German, not “German-ish”.

What the AI is briefed withper language, per run

Whole-email context. Subject line, every module, and the rendered structure — not isolated strings

Your brand tone of voice. The same voice settings Betty uses when writing your emails

Target-market conventions. BCP-47 aware: de-DE vs de-AT, es-ES vs es-MX, formality and formatting

What not to touch. Merge tags, URLs, brand names, product codes — preserved and verified

Runs as a durable server-side job — languages translate in parallel, the run survives a closed tab, and statuses update live on the Translations tab.

  • Merge tags survive byte-for-byte. Personalization tokens, Liquid, and ESP expressions — {{…}}, {%…%}, %%…%% — come back exactly as they went in, verified on every field.

  • HTML structure stays intact. In rich text, only the text nodes are translated. Tags, attributes, and every link URL are checked against the source after translation.

  • Brand names stay untranslated. Product names, URLs, and codes pass through untouched — your loyalty program’s name never becomes something creative in Portuguese.

  • Subject lines stay subject-line length. The AI is held to sensible length bounds and told to be extra concise where inboxes truncate.

  • Failures are flagged, never hidden. Every field is validated; anything that fails validation is retried, and what still fails is marked on the version — you’ll never unknowingly ship a broken field.

Control center

Twenty languages, one glance

The Translations tab is the campaign’s cockpit: every language with its status, design revision, translation freshness, approvals, and last export. Design and copy are deliberately separate columns — “is this version on the latest design?” and “is every word translated and fresh?” are different questions.

Language versions

Every language is a full email with its own review and export.

+ Add languagesTranslate all

Rev 3 has design changes — 1 module added, 2 image swaps. 19 versions are on Rev 2.

Push design update
LanguageStatusDesignCopyApprovalsExport
🇩🇪German
Approved
Rev 3 ✓42/422/2 ✓SFMC · 2h ago
🇫🇷French
In review
Rev 2 · behind40/42 · 2 stale1/2
🇯🇵Japanese
AI draft
Rev 3 ✓42/420/2
🇸🇪Swedish
Needs translation
Rev 3 ✓0/42
…16 more languagesExport all approved (14)…

Grouped in the library too

One campaign is one row. The master carries a roll-up — flags, “14 approved · 5 in review · 1 draft” — and expands to reveal the family.

Statuses that mean something

Needs translation, AI draft, Edited, In review, Approved — derived from the same review machinery as every other email, so no surface ever disagrees.

Families move together

Move the master to a folder and the versions travel along. Deleting a master asks about its family — no orphaned Japanese draft six months later.

Design sync

Change the design once. Lose zero words.

The sync engine understands what kind of change it’s pushing. Structure and design flow to every language; translated copy is sacred. Try it — push the master’s Rev 3 into the German version.

Rev 3 has design changes — German is on Rev 2.

New store-locator module, updated hero image, sharper headline.

🇬🇧 Master · EnglishRev 3
hero-final-days.jpgChanged

Headline

Final days — summer prices end Sunday

Text changed

CTA

Shop the sale

Store locator · module

Find your nearest store

New module
🇩🇪 GermanRev 2 · behind
hero-berlin-store.jpgOverride — kept

Headline

Letzte Chance — die Sommerpreise enden am Sonntag

CTA

Zum Sale

Store locator · module

Find your nearest store

Needs translation

Structure is applied: Modules added, removed, or reordered on the master land in every version. New modules arrive flagged “needs translation” — never silently in English.

Design values follow the master: Colors, images, links, toggles — applied everywhere, unless a version explicitly overrides that exact field. The German market’s own hero image survives every sync.

Translated text is never overwritten: If the master’s source text changed, the field is marked stale with the new source shown alongside — and a one-click retranslate. A translator’s hand-polished sentence is never bulldozed.

Everything is explicit: Pushes happen when you publish and choose to push — with a summary of what applied, what was skipped as an override, and what went stale.

In the editor

The side-by-side translators actually want

Open a language version and every translatable field shows the master’s source text right underneath it. Stale fields say why they’re stale. No second monitor, no exported spreadsheet, no guessing what the English said.

  • Click any stale or untranslated flag to jump straight to the field
  • Compare with the master in a full side-by-side split on the Review tab
  • Ask Betty for touch-ups: “make the German more formal”, “shorten this subject to fit”
Soldes d’été 2026Rev 1
🇫🇷 French

Master: Summer Sale 2026 · Rev 3

Headline

Stale — master text changed

EN master: “Final days — summer prices end Sunday”

Dernière chance — les prix d’été se terminent dimanche

RetranslateMark as reviewed

CTA label

EN master: “Shop the sale”

Découvrir les soldes

Image, colors & link follow the master · Override for French…
Review & ship

Nothing new to learn for review and export

Language versions ride the machinery your team already trusts — the same feedback, approvals, pre-flight checks, and one-click ESP export as every other email.

Approvals per market

Your German market approves German. Comments, approvers, and activity live on each version — the same collaboration you already use.

🇩🇪 German2/2 approved
🇫🇷 French1/2 approved
🇯🇵 Japaneseawaiting review

Translation pre-flight checks

A dedicated check category joins the pre-flight suite on every language version — so “ready to ship” includes “ready in Swedish”.

Translation complete

All 42 fields translated

No stale translations

Nothing out of date with the master

Design in sync

On the master’s latest revision

Each language, its own campaign

Every version exports to your ESP as its own campaign — or ship the whole family at once with “Export all approved”.

🇩🇪 SommerschlussverkaufExported
🇫🇷 Soldes d’étéExported
🇪🇸 Rebajas de veranoExporting…

SFMC · 3 of 14 approved versions

Markets, not just languages

Austria isn’t Germany, and your emails know it

Languages are real BCP-47 locales, so de-AT and de-CH can be separate versions with their own copy, their own store imagery, their own legal footer — each with its own reviewer.

  • 80+ suggested locales — and any valid BCP-47 tag you type is accepted
  • Admins set the organization’s language list once — every campaign picks from it
  • Per-market overrides — a local hero image or legal module — survive every design sync

Settings → Translations — your organization’s markets

🇩🇪 de-DE🇦🇹 de-AT🇨🇭 de-CH🇫🇷 fr-FR🇨🇦 fr-CA🇧🇪 fr-BE🇪🇸 es-ES🇲🇽 es-MX🇦🇷 es-AR🇧🇷 pt-BR🇵🇹 pt-PT🇬🇧 en-GB🇺🇸 en-US🇦🇺 en-AU🇸🇪 sv🇩🇰 da🇳🇴 nb-NO🇫🇮 fi🇯🇵 ja🇰🇷 ko🇨🇳 zh-CN🇹🇼 zh-TW🇸🇦 ar🇵🇱 pl+ Add language

Search common languages or type any tag — “de-AT”, “fr-CH”, “es-419”…

Ship the next campaign in every language

Add your markets, hit Translate all, and review real emails instead of wrangling spreadsheets. We’ll show you on your own campaign.

Request a demo