Skip to content

Locales in messages

After adding locales to your workspace, you can target users in different languages all within a single push, email, banner, or in-app message.

Prerequisites

To edit and manage multi-language support, you must have the “Manage Multi-Language Settings” user permission. To add the locale to a message, you’ll need permissions for editing campaigns.

Using locales

Step 1: Set up locales in your workspace

Before you can use locales and translation tags, you must first add locales to your workspace.

Step 2: Add translation liquid tags to your message

Add translation tags {% translation your_id_here %} and {% endtranslation %} to wrap all text, image, or link URLs that you will be translating.

Each translation should have a unique id. For example, when translating a simple greeting, you may name the ID “greeting”:

{% translation greeting %}Hello!{% endtranslation}

Localizing HTML blocks

A more complicated paragraph may have multiple translation tags (“offer_text” and “offer_amount”):

1
2
{% translation offer_text %}Sign up now to save{% endtranslation %}
<b>{% translation offer_amount %}50% Off{% endtranslation %}</b>

To localize anchor tag links, be sure to wrap only the language-specific parts and not the entire href URL attribute. If you wrap the entire URL, link templating may not function correctly.

Correct usage
1
<a href="https://www.braze.com/{% translation link_href %}en{% endtranslation %}/page"></a>
Incorrect usage
1
<a href="{% translation link_href %}https://www.braze.com/en/page{% endtranslation %}"></a>

Step 3: Choose message locales

After your translation tags are in the message, go to the message’s multi-language settings and select one or more locales to translate for this message.

Multi-language settings with a dropdown field to select locales.

Select Manage Languages when editing your message.

Multi-language settings for push.

Select Manage Languages at the bottom of the Build section.

Multi-language settings for in-app drag-and-drop messages.

Select Manage Languages when editing your message.

Multi-language settings for in-app HTML messages.

Step 4: Download CSV template

After selecting your locales, select Download template to download a CSV template containing a matrix of your selected translation IDs and locales.

Example CSV for en, fr, and es locales.

Step 5: Upload a completed CSV

Here is the format for an example completed CSV:

1
2
3
4
5
6
Variant1,,,,
,Translation tags,en,es,fr
title,We noticed you've left something behind,We noticed you've left something behind,Notamos que has dejado algo atrás,Nous avons remarqué que vous avez oublié quelque chose derrière vous
offer_text,Check out now and receive,Check out now and receive,Paga ahora y recibe,Payez maintenant et recevez
offer_amount,10% Off,10% Off,10% de Descuento,10 % de réduction
cta,CHECK OUT NOW,CHECK OUT NOW,VERIFICAR AHORA,VÉRIFIER MAINTENANT

Step 6: Preview locales

When previewing your message, select the Multi-Language User option from the Preview as User dropdown. This lets you switch between different locale definitions to preview all translations of your message.

Locale previews

Right-to-left messages

When filling in the translation file for languages that are written from right-to-left (like Arabic), wrap the translation with span so that it is properly formatted:

1
{% translation your_id_here %}<span dir='rtl'>default text</span>{% endtranslation %}

Managing translations

Editing translations for launched campaigns and Canvases

After a campaign or Canvas has been launched, you can still modify translations when you’re in draft mode. This applies whether you’re editing translations directly in the composer, by CSV upload, or through the API.

For more details on managing campaigns and Canvases after launch, refer to Editing launched campaigns and Canvas drafts and post-launch editing.

Duplicating Canvas steps or campaigns, and translations

Translations are copied along with a canvas step, campaign, or campaign variation. This is also true when copying across workspaces, so long as the locales are defined in that destination workspace. Be sure to review and update translations accordingly when making modifications to your Canvas or campaign.

Using the Multi-Language API with Canvases

To use the Multi-Language API with Canvases, you must include the workflow_id, step_id, and message_variation_id in the parameter list.

Canvas steps added to post-launch drafts

When using the Multi-Language API with Canvas steps that were created after the Canvas has been launched, the message_variation_id that you pass into the API will be empty or blank.

Frequently asked questions

Can I make a change to the translated copy in one of my locales?

Yes. First, make the edit in the CSV, then upload the file again to make a change to the translated copy.

Can I nest translation tags?

No.

Do translations support HTML for styling?

Yes, but be sure to check that the HTML styling is not translated with the content.

Can I wrap entire HTML messages in a translation tag?

No, your translation tags should be as small as possible to avoid performance or size limitations.

What validations or extra checks does Braze do?

New Stuff!