There are multiple ways to internationalize your notifications with Courier. The best option for your use case depends on the number of languages you support and the complexity of your notification templates.

Multi-language Internationalization models for notifications:

Go deeper:

  • internationalize your brands (one brand per language) using custom brands.

  • Follow the progress of our upcoming multi-language support feature here.

Multiple channels, one template (one channel per language)

In this model, the logic defining which notification to fire lives in Courier under the channel settings as send conditions.

This model works well for single-channel notifications or multi-channel notifications when you support just a few languages. Notifications templates can get large and complex when you have multiple channel types (email, SMS, DM, push) and support many languages. If this is true for your use case, consider using the multiple templates (one per language) model for internationalization.

To use this internationalization model, you'll need to use

Here are the steps:

  1. Store a "locale" property on each user profile inside of Courier, with ISO 639-1 language code values like "en-us", "en", "fr", "fr-be", "fr-ca", etc. (or include it as part of the send command data payload).

  2. Add a channel for each language to your template (see screenshot below)

  3. Set up a conditional to match the corresponding language (see second screenshot below)

multi-language channel configuration in Courier
channel send conditions for en-US locale data property

Multiple templates (one template per language).

In this internationalization model, the logic defining which notification to fire lives in your system rather than within Courier. This model is best for multi-channel notifications when you support many languages.

To implement this internationalization model:

  1. Create a notification template for each language you support (i.e., five supported languages = five versions of the same notification).

  2. Map a unique language-based event to each template.

  3. Trigger the language-specific event to send the notification to users with that

multiple templates with one per language in the Courier notification list
Mapping the departure_update-es event to the Departure update: es template in the Courier event settings.

Pull translated content from the send command data payload using variables (one template)

To use this method, you will need to Send the translated content as part of the data payload and pull it into the content block(s) in the notification template with Variables or handlebars code.

  1. Translate the content and store it in your backend

  2. Include the translated content in the JSON data object of the Send event

  3. Pull the translated content into the notification template from the Send event data payload using variables.

Template using variables

template with variables to pull in translated copy into the subject, greeting body, button CTA, closing and footer.

Test event with the variable values

Preview of the template with language-specific content values pulled into the variables.

Did this answer your question?