Translate
HTML & email translation with the links intact
Paste in a full HTML email — the kind with inline styles, tracking pixels, three nested tables, and twelve links. Transept translates the copy and leaves the structure exactly where it was. Same for landing pages, transactional templates, and anything else that lives as HTML.
Free to begin · No card required
HTML translation is one of the most common asks in real-world localization — and one of the worst-served by generic AI tools. A transactional email has nested tables, inline styles, conditional comments for Outlook, tracking pixels, and dropped links. A landing page export has classes you can’t change, IDs that have to stay stable, and scripts that need to be left alone. Most translators paste the HTML into ChatGPT, get back something that looks right, and discover an hour later that the tracking pixel is gone and the unsubscribe link points at the wrong URL. Transept parses the HTML into a structured tree, translates only the text nodes, and reassembles the markup byte-for-byte. The email you ship renders identically — in the new language.
Translate the copy, leave the markup
HTML translation that respects the markup is rare. Most tools either flatten the whole thing into plain text or break the styling. Transept parses the HTML, translates only the text nodes, and reassembles it so the email renders identically — in the new language.
Paste or upload the HTML
Drop in a transactional email, a marketing template, a landing page export, or any HTML fragment. Inline styles, `<img>` alt text, `<a>` link text, dropped links — all of it is preserved.
Translate, with span and link styling kept
Text inside a `<span>` keeps its color. A bolded sentence stays bolded. A link reads the localized anchor text but points at the same URL. Hard-won fixes for the formatting drift other tools introduce.
Preview in-app
See the rendered email or page next to the source. Catch a tone slip or a CTA that needs polishing before it ships to the audience.
Copy back out, or export
Copy the translated HTML straight into your ESP — Customer.io, Klaviyo, Mailchimp, SendGrid — or your CMS. The markup is unchanged.

For everyone who ships HTML for a living
Lifecycle & transactional emails
Welcome series, password resets, receipts. Localize the copy without rebuilding the template.
Marketing campaigns
Newsletter blasts, drip sequences, launch announcements. Same template, twelve languages, sent on time.
Landing pages
Localize the page that runs the campaign, keeping CTA copy, hero structure, and embedded scripts where they were.
Questions, answered without the fluff
- No. The parser treats `style` attributes, `data-*` attributes, hidden tracking pixels, and conditional comments as opaque — they pass through unchanged. Only the human-readable text gets translated.
- Link text is translated; the `href` is not. So a "Read more →" becomes "Lire la suite →" but the URL it points at stays exactly the same.
- Yes. Any HTML fragment works — emails, landing pages, support article exports, embed snippets. The same markup-preserving translation runs on all of them.
- You control it. Pin CTA text in your glossary so it gets a single deliberate translation, or steer regenerations with a direction like "shorter" or "more urgent".
- Yes — for any ESP that lets you paste HTML into a template. Copy your source template, paste it into Transept, translate, then paste the translated HTML back into the ESP. We’re working on direct integrations for the top ESPs; for now the paste workflow is reliable.
- Liquid `{% %}` blocks, Handlebars `{{ }}` variables, and similar templating syntax pass through as opaque tokens — the translator never sees them, the output preserves them exactly. Pin any visible variable names in your glossary if you want a deterministic translation when they appear in fallback text.
- Yes — any HTML export works. Inline styles, classes, IDs, data attributes — all preserved. Test once with a sample page; once you trust the round-trip, scale to whole campaigns.
- Static text inside dynamic blocks translates normally; the logic itself passes through. For complex conditional content, translate each branch separately and reassemble in the ESP — or paste the full template at once and the conditional structure is preserved, just translated where text exists.
- The structure is preserved exactly, so Outlook-specific quirks (conditional comments, table-based layouts, inline styles) survive. Always send a test through Litmus or your own Outlook account before a campaign goes live — that’s a general email QA step, not specific to translation.
Keep reading around this capability
- FeatureBatch translation without the spreadsheet→A 30-file launch kit into 12 languages used to mean a spreadsheet, a project manager, and a week. With batch translation, it’s a queue you…
- FeatureVision Proofread sees what readers see→Some translation problems only show up when the page is rendered — a CTA that ran long and broke the layout, a label that wrapped onto two…
- FeatureA glossary the AI actually follows→Character names, product terms, branded phrases, client-specific vocabulary. Build a glossary once — manually, by upload, or seeded from a…
- Use caseLocalize a landing page, CTA and all→Import the page or paste the HTML. Translate with CTA copy pinned, product terms enforced, and a marketing styleguide steering the tone.…
- Use caseLocalize the launch kit, all of it→Email, landing page, FAQ, release notes, social posts — the assets that make a launch. Run them through Transept as one bundle with a…
Localize the next campaign without rebuilding the template
Start translating→Free to begin · No card required