Smartling's Shopify Connector supports Email templates as a distinct content type for translation, alongside Articles, Collections, Products, and the connector's other supported types.
Email templates in Shopify are written in Liquid, mixing translatable text (subject lines, greetings, body copy) with Liquid logic and markup. To translate these templates, Smartling pulls out only the translatable text and leaves the surrounding Liquid code untouched.
How it works
When you request an email template for translation, the connector extracts text from three Liquid constructs only:
-
assigntags with a quoted text value (for example,{% assign greeting = "Thanks for your order" %}) -
captureblocks -
defaultfilter values
Everything else in the template (including loops, conditionals, other filters, and plain variable output) is left exactly as it appears in the source: not translated, not modified.
This applies to every field on the email template (subject, body, and so on), not just specific ones.
What to know before translating email templates
Don't nest capture blocks
Do not place one capture tag inside another. If a capture block is nested inside another capture block, only the innermost block is sent for translation. The outer capture is left as plain, unprocessed text.
Liquid tag structure must match between source and translation
The translated template needs to keep the same Liquid tag structure as the source: the same tags, in the same order. If tags are added, removed, or reordered, or an output expression is changed, the connector rejects the translated version and delivers the original, untranslated text instead.
Class names are usually skipped, but not always
Class-name-style values (such as CSS classes) are typically recognized and excluded from translation automatically. Recognition is reliable when the value contains an underscore, a double hyphen, or three or more hyphenated words. Short, single-hyphen values (for example, out-for) may not be recognized as class names and could be sent for translation by mistake. Review these if they show up unexpectedly in a translation job.
Empty capture blocks are skipped
A capture block that contains only Liquid tags or markup, with no actual text, is skipped entirely and never sent for translation.
Missing translations fall back to source text
If a translated string is ever missing, the connector delivers the original source text in its place. This keeps the delivered template valid, though that specific piece of text will appear in the source language rather than the translation.