How to Translate Shopify Email Notifications (Step by Step)

Two ways to send Shopify order, shipping and refund emails in your customer's language: Shopify's Localize button, or a Liquid case block that reads the lang attribute ConveyThis saves on the order. Includes code to copy and steps for testing.
No card details No commitment

· Updated · Alex B · Blog

Summarize this post with: 9 min read

To translate Shopify email notifications, you add each language’s text to the notification template in Settings > Notifications, and Shopify (or a Liquid condition) picks the right version for every order. The method depends on how your storefront is translated. With Shopify’s own languages, you use the Localize button and the Translate & Adapt app. With ConveyThis, you wrap each language in a Liquid case block that reads the order’s lang attribute.

Both methods are below, with code you can copy, the mistakes that break templates, and how to test before any customer sees the result.

Key takeaways

  • Shopify sends a notification in the language the customer ordered in, but only if a translation for that notification exists (Shopify Help Center).
  • If your store uses Shopify’s languages, translate notifications in Settings > Notifications > [notification] > Localize.
  • If your store is translated with ConveyThis, the language switcher saves the visitor’s language on the cart as the attributes lang and Invoice Language, so your template can branch on attributes.lang.
  • Translate the sentences and leave everything inside {% %} or {{ }} exactly as it is.
  • Start with the emails customers actually open: order confirmation, shipping confirmation and refund.

Which method fits your store?

Your storefront is translated withWhere translations liveHow the language is chosen
Shopify languages (Translate & Adapt or a Shopify-native app)The Translate & Adapt app, via LocalizeShopify uses the language the order was placed in
ConveyThisInside the notification template, as a Liquid case blockThe lang attribute ConveyThis saves on the cart

Either way, you need a translation of each email you care about in each language you sell in.

Method 1: Shopify’s built-in notification translation

If you added languages under Settings > Languages and translate your store with Shopify’s Translate & Adapt app:

  1. Go to Settings > Notifications.
  2. Open the notification you want to translate, for example Order confirmation.
  3. Click Localize.
  4. Add or edit the translation for each language in the Translate & Adapt editor, then save.

Shopify’s help center explains that “if translations are available for an email notification, then a customer is automatically sent email notifications in the language that they placed their order in.” If a translation is missing, the customer gets the email in your store’s default language. For a comparison of Shopify’s native tools with a dedicated app, see Shopify Translate & Adapt vs ConveyThis.

Method 2: translating notifications when you use ConveyThis

ConveyThis for Shopify translates your storefront. Shopify generates email notifications outside your website, though, so ConveyThis cannot translate them automatically. What it does instead: when a visitor chooses a language in the ConveyThis switcher, ConveyThis saves that language code on the cart as the attribute lang (and as Invoice Language). The attribute stays on the order, so the notification template can read it and show the right text.

Step 1: write the Liquid skeleton

In a plain text editor (not a word processor), start with this structure. Replace the language codes with the languages you actually sell in:

{% case attributes.lang %}
{% when 'fr' %}
FRENCH EMAIL HERE
{% when 'es' %}
SPANISH EMAIL HERE
{% else %}
ORIGINAL-LANGUAGE EMAIL HERE
{% endcase %}

The else branch is the fallback. Any order without a lang attribute, or with a language you have not added yet, gets the original email.

If you only sell in one extra language, the block is shorter:

{% case attributes.lang %}
{% when 'de' %}
GERMAN EMAIL HERE
{% else %}
ORIGINAL-LANGUAGE EMAIL HERE
{% endcase %}

Step 2: copy the current email body

  1. In Shopify admin, go to Settings > Notifications and open the notification, for example Order confirmation.
  2. Click Edit code.
  3. Copy everything in Email body (HTML).

Order confirmation notification in the Shopify admin

Edit code view of a Shopify notification

Before you change anything, save a copy of the original code in a separate file. If something goes wrong, you can also use Revert to > Default in the notification editor.

Step 3: paste the original into the else branch

Replace ORIGINAL-LANGUAGE EMAIL HERE with the code you copied.

Original email code placed in the else branch

Step 4: paste it again for each language and translate the sentences

Paste the same code into each when branch, then translate only the text a person reads. For French, “Thank you for your purchase!” becomes “Merci pour votre achat !”.

French branch with only the sentences translated

One rule prevents almost every broken template: do not translate or edit anything between {% %} or {{ }}. Those are Liquid tags and variables. {{ order_name }} has to stay {{ order_name }} in every language. If you change it, the email shows a blank or fails to render.

Step 5: paste the whole block into Shopify and save

Copy the full case block from your text editor, replace the contents of Email body (HTML) with it, and click Save.

Complete multilingual template pasted into the order confirmation

Step 6: translate the subject line the same way

The subject is a separate field and needs its own case block:

{% case attributes.lang %}{% when 'fr' %}Commande {{ name }} confirmée{% when 'es' %}Pedido {{ name }} confirmado{% else %}Order {{ name }} confirmed{% endcase %}

{{ name }} stays in English in every branch. Keep the subject on one line so stray line breaks do not show up in the inbox preview.

Which notifications to translate first

You do not have to translate every Shopify notification on day one. Start with the ones every customer receives:

  1. Order confirmation
  2. Shipping confirmation and Shipping update
  3. Out for delivery and Delivered (if you use them)
  4. Order canceled and Refund
  5. Abandoned checkout. This one is a sales email, and an untranslated version wastes your chance to recover the order.

The ConveyThis help article on translating Shopify email notifications notes that this method works for order notifications but not for the gift card creation email, and it describes a separate approach for customer account emails.

Mistakes that break multilingual templates

  • Translating Liquid. {{ nombre }} in place of {{ name }} renders nothing, so translate only the text between tags.
  • A missing endcase. Every case needs exactly one {% endcase %}, and without it the template will not save or render.
  • Wrong language codes. The code in when has to match the code ConveyThis uses for that language (fr, es, de, pt and so on). Check the codes of the languages enabled in your ConveyThis dashboard.
  • Editing in a word processor. Word and Google Docs swap straight quotes for curly ones, which breaks Liquid. Use a plain text or code editor.
  • Forgetting the subject. A French body under an English subject line looks like an error.
  • Missing template updates. When Shopify updates a default template, your customized version stays as it was. Keep your master file so you can rebuild it.

Test before customers see it

  1. Preview in the editor. Shopify’s Preview and Send test email buttons (Shopify Help Center) confirm the template renders. The sample order has no lang attribute, so you will see the else branch, which at least proves the fallback works.
  2. Place a real test order in each language. Visit your store, switch to French with the ConveyThis switcher, add a product, and complete checkout with Shopify’s test payment mode or a discount code that makes the order free. Check that the confirmation arrives in French and that prices, order number and links are filled in.
  3. Check the order’s attributes. In the Shopify admin, open the test order. The additional details should show lang with the code you expect. If it is missing, the visitor did not use the switcher before checkout, and the email falls back to the original language.
  4. Read the email on a phone. Longer languages such as German can push buttons and tables out of shape.

Keeping translations up to date

Notification text needs the same upkeep as any other translated content:

  • When you change the original email, update every language branch the same day.
  • When you add a language in ConveyThis, add a new when branch to every translated notification.
  • Once or twice a year, send yourself test orders in each language and read them from start to finish.

Use the same product and policy terms in the emails that customers see on your translated pages. A translation glossary keeps the two in line.

How ConveyThis fits into a multilingual Shopify store

ConveyThis translates your Shopify storefront into any of 210 languages, with a visual editor for reviewing text in context, a glossary and translation memory for consistent wording, automatic hreflang tags, and translated meta titles, descriptions and JSON-LD for search. The lang cart attribute it records is how your notification templates know which language the customer used, from the product page through to the inbox. The Shopify app installs from the Shopify App Store, and you can compare plans on the pricing page.

Frequently asked questions

Does Shopify translate email notifications automatically? No. Shopify sends a notification in the customer’s order language only when you have added a translation for that notification. Without one, customers get your default language.

Why did my customer get the email in English even though they browsed in French? With Shopify’s native method, the notification has no French translation yet. With ConveyThis, the order has no lang attribute (the customer did not use the language switcher before checkout) or the template has no when branch for that language code.

Can I use the same method for the email subject? Yes. The subject line is a separate field, so wrap it in its own case block on one line.

Will editing a notification break future Shopify updates? Customized templates are not updated automatically. Keep a copy of your master template, and use Revert to > Default if you ever need a clean start.

To get both the storefront and the emails into your customers’ language, create a ConveyThis account and connect your Shopify store.

Share:
G2 High Performer Spring 2023
G2 Easiest Setup Fall 2024
G2 Best Support Spring 2025