Braze email in several languages and markets.

Short answer

Braze sends one email in several languages through locales: you wrap copy in translation tags and add each locale's text by CSV, API or a partner such as Lokalise, Smartling or Phrase. Braze writes no translations itself. Footers and legal text can live in Content Blocks, prices in catalogs. Caliber integrates with Braze and Klaviyo.

How do Braze locales and multi-language messages work?

One Braze message carries several languages: you define locales for the workspace, mark the copy with translation tags, and add a translation for each locale. Braze's release notes of 2 April 2026 list multi-language translations as generally available for push, email, Banner, in-app message and Content Block [2]. Webhooks followed as generally available on 17 September 2026 [3]. As checked on 1 Nov 2026, the translation API is the only part of the feature labelled early access in Braze's docs cited here [6][7].

Locales live under Settings, Localization Settings. A locale is either a default locale, a language with an optional country, or a custom attribute with a text value, matched exactly. You can add up to 200 locales. When a user matches both kinds, the custom attribute locale wins [4].

In the message, copy goes between {% translation header %} and {% endtranslation %}. Tag IDs must be unique within the message, and tags cannot be nested. The limits are 200 translation tags per message, 2,000 characters of default text per tag, and 409,600 bytes of translations per locale [1]. Translations are stored per campaign, so each message variant needs its own upload [4]. Each locale can also carry its own accessibility language, so screen readers read the right language [1].

What Braze localizes, and where each part of a market's email lives
Part of the emailWhere it lives in BrazeWhat to watch
Body copyTranslation tags, one translation per locale [1]Braze supplies no translations; you or a partner do [1]
Footer and legal textContent Blocks [6]A block missing a locale shows in its original language [1]
Prices and product stringsCatalogs, with fields per locale [12]A locale with no price falls back to another locale's price [12]
Which locale a user getsStandard language and country, or a custom attribute [4][5]Not every user has a value; plan a fallback [5]
Market logic: offer, send time, reportingOne message for all, or one per country [13]A shared message reports across markets [13]

Which language does each Braze user get?

Braze reads the standard language and country attributes, or a custom attribute you build a locale on. Language uses ISO 639-1 codes and country ISO 3166-1 alpha-2 codes. Language is captured from the device or browser locale. Country comes from IP geolocation first, and from the device locale when geolocation is unavailable [5].

Setting either attribute explicitly stops Braze updating it automatically for that user [5]. Braze's advice is to use an explicit preference where you can collect one, with the SDK-collected language as the fallback. It warns against inferring language from a market attribute in multilingual countries such as Belgium, Canada and Switzerland [5].

The text you write between the translation tags is the message's default text [1]. Braze's guide says to plan a fallback language for every message, because not every user has a locale value [5]. Count the users in each market with no language before a send: they will all see the default.

Translation tags or a TMS partner?

Both use the same translation tags; the difference is who moves the text. Braze does not generate translations: you supply them by CSV, by the translation API, or through a partner [1][6]. The CSV route downloads a matrix of tag IDs and locales, which you fill in and upload. Braze advises against opening it in Excel, which can garble non-English characters [1]. The translation endpoints are in early access, through your Braze account manager [7].

Braze's comparison guide names Smartling, Phrase and Lokalise for enterprise translation with approvals [6]. Its localization page also names Transifex and Crowdin [13].

Three translation partners and how they connect to Braze
PartnerHow it connectsCovers
LokaliseTwo-way sync through Braze's Multi-Language Composition API; maintained by Lokalise [8]Campaigns, Canvases, email templates [8]
SmartlingBraze Connector project; locale names must match Braze exactly [9]Campaigns, Canvases, email templates, Content Blocks [9]
PhraseBraze locales and translation tags; needs the Braze integration add-on in Phrase [10]Campaign and Canvas content, including email, in either editor [10]

How do you keep legal lines and footers per market in Braze?

Content Blocks are the place: Braze describes them as reusable, cross-channel content in one central location, and its comparison guide suggests them for headers, footers and legal text [6][11]. A block goes into a message through the Liquid tag shown in its Content Block Details. Updating the block updates every message where it is inserted through Liquid. A block added through the drag-and-drop Content Blocks dropdown is not updated [11].

Blocks nest one level only, hold at most 50 KB, and cannot be archived while a message uses them [11]. A block with saved translations brings them into the message automatically. If it lacks one of the message's locales, it shows in its original language for users in that locale [1].

A legal line follows the market, not the language. A Finnish speaker in Sweden still needs the Swedish line. Keep one block per market for lines that differ by law, chosen with conditional Liquid on country or a market attribute, and translate only the blocks that are the same in every market.

How do you show prices per market in Braze?

Catalogs hold them. Braze's own example of localized catalog content keys each field by locale, with the currency written into the price string, such as "112 EUR" [12]. The comparison guide suggests catalogs for many locales of structured strings, such as product names and promo lines [6].

Three details matter for a CRM lead. Each field falls back on its own, so in Braze's example a locale with a name but no price still gets the English price [12]. If the catalog a message names does not exist, Braze aborts the message [12]. JSON object fields are created through the API or Cloud Data Ingestion, not through a CSV upload [12].

One Braze message or one per market?

Braze describes both. Its localization page sets out one template for every country with aggregated reporting, one template per country with per-country reporting, and the same choice for Canvas journeys [13]. Locales make one message cheap to build; they do not make markets the same.

Nordbite is a fictional demo brand. Its fixture has two markets on Braze, Norway and Finland, with two currencies and two scopes for its price-reduction rule.

Nordbite's two markets, mapped to Braze locales and to editions
MarketLanguage and currencyFixture rule scopeOne message with localesAn edition per market
NO (default)nb, NOKProduct prices shownDefault text in Norwegian; NOK from a catalog fieldIts own campaign, Norwegian legal line and reviewer
FIfi, EURAny reduction claimFinnish locale; EUR from the same catalog; a reduction line in the shared copy triggers Finland's scopeIts own campaign, Finnish legal line and reviewer

The rule scope is where one message gets hard. A line such as "20% off this week" is a reduction claim in Finland's scope even with no product price on show, while Norway's scope applies only when prices appear. One shared message has to meet the stricter scope everywhere, or branch on country. The scopes are fixture data, not legal advice.

Where do reviews happen in Braze?

Inside the message, through Preview as User: choose Multi-Language User to switch between locales [1]. A partner adds its own review step outside Braze. Phrase gives translators a live preview of HTML email, and Braze's comparison guide points to partners for workflows with approvals [6][10].

Two checks belong on every multi-language send. Email link tracking needs a ? or & after the closing translation tag in a URL, and right-to-left languages need the text wrapped in a span with dir='rtl' [1]. Duplicating a campaign, Canvas step or variation copies its translations [1], so a reused message brings last month's translated copy along.

Caliber and Braze

Caliber will build each market's edition from one approved brief and land it in Braze as a draft, with its market's language, legal line and checks, and a named person's sign-off on each one. Caliber also integrates with Klaviyo.

Also on.

Klaviyo · Braze · Salesforce Marketing Cloud Next · Voyado · Customer.io · Iterable

Questions

How does Braze handle multi-language email?

Through locales and translation tags. You add locales in Localization Settings, wrap the copy in translation tags, and add a translation for each locale by CSV, API or a translation partner. Each user gets the locale that matches their language and country, or a custom attribute. Braze's release notes of 2 April 2026 list the feature as generally available for email [1][2][4].

Are Braze multi-language messages still in early access?

No. Braze's release notes of 2 April 2026 list multi-language translations as generally available for push, email, Banner, in-app message and Content Block [2]. As checked on 1 Nov 2026, the translation API is still in early access, and you ask your Braze account manager to join [7].

Does Braze translate emails for you?

No. Braze's docs say it does not generate translations: you provide them yourself, by CSV upload, through the translation API, or through a partner such as Lokalise, Smartling or Phrase [1][6].

Can I use translation tags in the Braze drag-and-drop editor?

Yes. In the drag-and-drop email and Content Block editors, add the tags through the Add personalization button, because the keyboard shortcut works only in the other editors [1]. Smartling's connector notes that it treats Liquid tags as uneditable variables, so text inside a tag needs extra handling on the Smartling side [9].

Should each market get its own email or one email with language variants?

One email with locales fits markets that differ only in language. Markets that differ in price, legal line, offer, send time or price-reduction rules are easier to get right as one edition each, and Braze's per-country template also gives per-country reporting [13]. A mix also works: locales for shared copy, and a separate edition where the market facts differ.

Sources

  1. Braze Docs, "Multi-language messages", undated. https://www.braze.com/docs/user_guide/message_building_by_channel/email/using_locales/ (checked 1 Nov 2026)
  2. Braze Docs, "April 2, 2026 release", 2 Apr 2026. https://www.braze.com/docs/releases/2026/4_2_26 (checked 1 Nov 2026)
  3. Braze Docs, "September 17, 2026 release", 17 Sep 2026. https://www.braze.com/docs/releases/2026/9_17_26 (checked 1 Nov 2026)
  4. Braze Docs, "Localization settings", undated. https://www.braze.com/docs/user_guide/administrative/app_settings/multi_language_settings/ (checked 1 Nov 2026)
  5. Braze Docs, "Set up a source of truth for user language and locale", undated. https://www.braze.com/docs/user_guide/example_library/localization/set_user_language_and_locale (checked 1 Nov 2026)
  6. Braze Docs, "Compare approaches for managing multi-language translations", undated. https://www.braze.com/docs/user_guide/example_library/localization/compare_translation_approaches (checked 1 Nov 2026)
  7. Braze Docs, "Translation endpoints", undated. https://www.braze.com/docs/api/endpoints/translations (checked 1 Nov 2026)
  8. Braze Docs, "Lokalise", undated. https://www.braze.com/docs/partners/message_personalization/localization/lokalise (checked 1 Nov 2026)
  9. Braze Docs, "Smartling", undated. https://www.braze.com/docs/partners/message_personalization/localization/smartling (checked 1 Nov 2026)
  10. Braze Docs, "Phrase", undated. https://www.braze.com/docs/partners/message_personalization/localization/phrase (checked 1 Nov 2026)
  11. Braze Docs, "Content Blocks", undated. https://www.braze.com/docs/user_guide/messaging/design_and_edit/content_blocks (checked 1 Nov 2026)
  12. Braze Docs, "Manage localized content with Braze catalogs", undated. https://www.braze.com/docs/user_guide/example_library/catalogs/manage_localized_content_with_catalogs (checked 1 Nov 2026)
  13. Braze Docs, "Localization", undated. https://www.braze.com/docs/user_guide/messaging/messaging_fundamentals/localization (checked 1 Nov 2026)

See it with your own brief.

Join early access, and bring a real brief to your walkthrough.

Get early access