Localize Email Messages and the Referral Page in Multiple Languages
If you're running separate websites for each language
If you're running separate websites for each language (e.g. for the French version you're using a different domain yourcompany.fr
, a different subdomain fr.yourcompany.com
, or a different directory yourcompany.com/fr/home
), your best option would be to run separate campaigns for each language. This lets you localize other components besides the emails, like the signup form and referral page.
Additionally, this works well if you already have different landing pages in place for your audiences that speak different languages. For example, if someone visits yourcompany.com
and gets redirected to either yourcompany.com/en/home
or yourcompany.com/fr/home
depending on the language, this would be a good case for using multiple projects.
The only downside is that the audience (users) and analytics are separate. Meaning, you can't see aggregated analytics across both projects in one dashboard, but you can always export data from both projects or automatically send data from both projects into one spreadsheet.
Since only one Prefinery project/campaign can run on a page at a time, it's not possible to install multiple forms from different projects into one page.
If you're running just one website to support different languages
If you are using our embedded signup form then we automatically capture the user's locale (the language preference of their web browser) and associate that with the user in their profile at the time they sign up.
Given this, you can place various localized versions of the copy in your email messages and the referral page, but use some code to determine which version is received by each user.
Prefinery uses the Liquid language ( docs here) for content on email messages, the referral page, and even the HTML block on the signup form (but not on other signup form elements like fields inputs & labels), and you can use conditional statements like if/then based on the recipient's locale to determine which copy embedded in the content they will receive.
To do this, you simply edit the message you want to localize. This method can be used in the Subject, Preheader and Email Body/Content.
You can then add your conditional statement like the following where if the user's locale is es
(Spanish) the content will display Hola
, fr
(French) the content will display Bonjour
, else the content will default to Hello
.
{% case user.locale_language %} {% when 'es' %} Hola {% when 'fr' %} Bonjour {% else %} Hello {% endcase %}
Alternatively, for email messages you can just create multiple versions of the same email, each in its own language, with "Language" as the delivery condition to determine which is sent depending on the user's language.
To do that, you'll have to create multiple emails, each in its own language, with a delivery condition to determine which is sent depending on the user's language. For example, create the English version of your Welcome email first with a delivery condition of "Language is English". Then, clone the email, edit it to the other Language (e.g. Spanish) and set the delivery condition to "Language is Spanish" like what's shown below.
Now, there are two Welcome emails, but only the one that matches the user's language gets sent to them.
The same approach can be used if you'd rather set the delivery condition depending on the user's country which is captured automatically during signup with geolocation enabled.
Another option would be to provide your users a way to tell you their preferred language for communication by including a custom question in your form. You can then use this as delivery condition in the email.
You can also ask them to specify their country instead which you can then use as delivery condition as previously described.