用客户的语言发送电子邮件
在某个邮件模板中添加多种语言的翻译,让Shopify Flow自动向每位客户发送对应语言的邮件,并对其他语言提供备用方案。
慕尼黑的一位客户不应该收到英文版的订单确认邮件,而您也不应该需要准备三种邮件模板和三种工作流程来避免这种情况。一种邮件模板即可支持您销售的所有语言。您的Shopify Flow步骤会确定客户使用的语言,应用程序会自动发送对应的版本。其他客户则会收到其主要语言的邮件模板。
本指南将带您从单语言布局逐步过渡到使用客户语言发送电子邮件,并涵盖了各种特殊情况的处理方法:未知语言、地区变体、后续编辑、测试和故障排除。
工作原理
- 一个版式只有一种主要语言。那就是版式本身,也就是您今天看到的这个版本。
- 您可以在其中添加翻译:德语、法语,每个版面最多可达30种。每种翻译都有各自的主题、预览文本和内容。
- 在 Shopify Flow 中**,“发送事务性电子邮件**”操作有一个**“语言**”字段。请将其设置为客户的语言,例如
{{order.customerLocale}}。 - 发送电子邮件时,应用会选择匹配的翻译。如果没有匹配的翻译,则发送主语言版本。电子邮件绝不会因语言原因而被拦截。
一种版式,一种工作流程,支持所有语言。
步骤 1:添加语言
- 在**“电子邮件布局**”下打开该布局。
- 点击页面顶部的**“添加语言**”。
- 在**“语言**”下选择要添加的语言,然后点击**“添加语言”**。
新语言版本会以您已保存的布局为模板,并立即在编辑器中打开。请翻译主题、预览文本和正文内容,然后点击“保存”。
连接 AI 服务提供商后,您可以选择**“使用 AI 翻译**”而非复制内容。所有文本都会被翻译;而 Liquid 标签(如 {{ variables.order_name }})、链接和版式设计则完全保持原样。在您审核并保存之前,任何内容都不会被发送出去。请参阅 使用人工智能创建、编辑和翻译版式。

在语言出现之前你所设计的版式
在此功能推出之前创建的布局尚未指定主语言。我们从未询问过该布局使用何种语言编写,也不会进行猜测。当您首次向此类布局添加语言时,对话框会额外显示一个问题:“此布局的主语言”。
- 没有任何选项是预先选定的。请选择该布局所使用的语言:若需德语布局,请选择“德语”。
- 在您做出选择之前**,“添加语言”选项和“添加语言**”按钮将保持禁用状态。
- 每个布局只会提示您一次。从现在起,您创建的布局将在创建页面上选择语言。
这一点至关重要:对于语言未提供翻译的客户,系统将默认使用主语言,并以此为基准进行翻译匹配。

第 2 步:在同一编辑器中进行翻译
翻译内容将在您熟悉的编辑器中打开:对于构建器布局,是可视化构建器;对于其他内容,则是富文本或 HTML 编辑器。切换语言不会改变界面,仅会更改内容。
- 使用语言选择器进行切换:在可视化构建器中画布上方的工具栏中,或在富文本/HTML 布局中的“电子邮件内容”卡片顶部。
- 标有**(布局)**的条目是主要语言。


每种语言的附件
一份德语发票的PDF文件、一份法语条款清单:附件可能因语言而异。
视觉布局。附件在设计中以“附件块”的形式存在,每种语言都有各自的设计。新建语言时会以现有语言为模板进行复制,因此会继承相同的附件块;若在德语版本中替换该文件,则仅德语邮件会使用该附件。
富文本/HTML 布局。翻译页面上的“附件”卡片开头提供了一个选项:“此语言的附件”:
| 选择 | 发送的内容 |
|---|---|
| 与主要语言相同 | 主语言的附件。请在那里进行修改。这是所有语言的默认设置。 |
| 该语言的不同附件 | 只有使用该语言发送的电子邮件才会包含这些文件。 |
为该语言选择不同的附件需从主语言的列表开始,因此替换一个 PDF 文件即为一次更改。若删除所有文件,该语言发送的邮件将不带附件,而主语言仍保留其附件。切换回“与主语言相同”后,该语言将再次遵循主语言的设置。
将某语言设为主语言后,所有语言发送的内容都将与之前完全一致,因此提升某语言的优先级不会改变任何人的附件。
大小限制和“附加/链接”模式与主语言相同,请参阅 附件和图片。
各语言版本的营销页脚
营销版面的结尾包含“取消订阅”语句和贵公司的详细信息。 翻译版本可以使用自定义的措辞:翻译页面上的**“营销页脚**”卡片提供了**“与布局相同**”或**“为此语言自定义文本**”两个选项。若该字段留空,则默认使用布局中的文本。关于页脚的工作原理,以及各语言的全站通用文本的存储位置,请参阅 营销邮件与退订。
步骤 3:告诉 Shopify Flow 发送哪种语言
在**“发送交易邮件**”操作中,将**“语言”**设置为存储客户语言的Shopify Flow变量:
| 触发器 | 语言 |
|---|---|
| 订单已创建,订单已支付 | {{order.customerLocale}} |
| 由客户创建 | {{customer.locale}} |
| 已创建订单发货 | {{fulfillment.order.customerLocale}} |
对于仅服务于一个市场的工作流程,请输入固定代码,例如 de。
该字段为可选字段。您之前构建的工作流程将继续照常运行:如果没有指定语言,它们将发送主语言,与以往完全一样。

客户将获得哪个版本
该应用会按以下顺序寻找最匹配的结果:
- 确切的措辞。
fr-CA会发送您在fr-ca上的翻译内容。 - 基础语言。
de-CH和de-AT会发送您的de翻译。一份德语翻译同时适用于德国、奥地利和瑞士。 - 一个区域变体。
pt发送了您对pt-br的翻译。 - **否则使用主语言。**布局本身会被发送过去。
大小写和分隔符不影响结果:de-DE、de-de 和 de_DE 表示的是同一个网址。
如果这种语言根本不存在呢?
不会出现任何问题。在以下情况下,邮件将以主要语言发送:
- 该客户的语言没有对应翻译(客户是日本人,而您将其翻译成了德语和法语),
- “语言”字段为空,或者该客户对应的“Shopify Flow”变量没有值,
- 这个值根本不是一种语言。
由于“语言”字段的原因,发送操作绝不会被拒绝,也绝不会失败。唯一的检查发生在构建工作流程时:如果你输入了一个不是语言代码的固定值(例如 english),Shopify Flow 会显示一条提示,建议使用类似 de、fr 或 pt-BR 这样的代码。流程变量总是能通过验证。
每种语言一种版式
有时完整的翻译超出了你的需求:这封邮件对所有人来说都是一样的,只有一句话例外。为此,每个布局都支持 {{ language }}。
{{ language }} 即您的 Shopify Flow 步骤发送的语言,采用小写形式(de、fr、de-at)。当该步骤未发送任何语言时,则采用布局的主语言。该功能适用于主题、预览文本和正文,在可视化构建器以及富文本/HTML 布局中均有效,在翻译中同样适用。
{% if language == "de" %}
<p>Retouren aus Deutschland gehen an unser Lager in Hamburg.</p>
{% else %}
<p>International returns are refunded within 10 working days.</p>
{% endif %}
在可视化编辑器中,将此内容放入 HTML/代码块中。在富文本/HTML 布局中,将正文切换为 HTML。
Shopify 通常会随语言一并发送地区信息,例如 de-AT 或 en-GB。{{ language }} 会保留地区信息(de-at),因此当你指“任何德语”时,只需比较前两个字母:
{% assign lang = language | slice: 0, 2 %}
{% if lang == "de" %}Hallo{% elsif lang == "fr" %}Bonjour{% else %}Hello{% endif %}
{{ language }} 这是该步骤所要求的,而非找到的翻译。对于日本客户,即使已发送主语言,系统仍会显示ja,因此一个没有任何翻译的布局仍可对此做出响应。编辑器中的**“系统变量**”卡片会列出该变量的当前值,并可通过单击将其复制。 在尚未设置主语言的布局中,该字段将保持空值,直到Shopify Flow发送语言信息为止。

上线前请先进行测试
- 一旦布局支持多语言,"发送测试邮件"功能就会出现语言选择器。请将每种语言的邮件各发送给自己一次。
- 该测试使用的是您的测试变量,而非实际数据。真正的工作流程运行才是最终的验证;请参阅 测试您的电子邮件设置。
- 要测试整个流程,请针对一位客户语言与您翻译目标语言一致的订单运行该工作流程。
查看已发送的内容
系统会记录每封电子邮件的语言。打开某项活动:在**“活动详情**”下的**“语言”一栏中,会显示已发送的翻译内容,或布局的主要语言**。**点击“重新发送”**将再次发送相同语言的内容。

更改主语言
您的网店最初使用英语,但现在大多数客户都是德国人吗?请打开德语翻译,然后点击**“设为主语言**”。此时,德语将成为主界面,英语则变为翻译版本:两者位置互换,且不会丢失任何内容。此后,对于没有对应翻译的客户以及未指定语言的邮件,系统将显示德语内容。您可通过版本历史记录撤销此操作。

删除一种语言
打开该翻译,点击**“删除**”,然后点击其名称,例如“删除德语”。使用该语言的客户将从下一封邮件开始收到主语言版本的内容。该翻译仍保留在布局的版本历史记录中,可以恢复。请参阅 版式版本历史。
如果某件事与预期不符
某位客户收到的邮件显示的是主语言,而非其本国语言。请在“历史记录”中打开该邮件并查看“语言”字段。“布局的主语言”意味着未找到匹配的翻译:Shopify Flow步骤中的“语言”字段为空,该变量的值对该客户而言不存在,或者您未提供该语言的翻译。 请先检查该步骤;步骤 3 中的表格中应根据每个触发器列出了正确的变量。
“添加语言”选项呈灰色。该布局尚未设置主语言。请先在对话框顶部选择“此布局的主语言”。
**我需要的语言不在列表中。**该列表包含最常见的语言。任何有效的语言代码均可通过 API 添加。
**我已经修改了版面布局,但德语版的邮件中仍显示着旧的文本。**翻译内容只是复制而来的。请在德语版本中也进行相应修改。
我已经修改了附件,但其中一种语言仍会发送旧文件。在富文本/HTML布局中,该语言被设置为“此语言使用不同的附件”,因此它会保留自己的附件列表。请打开该语言的翻译文件并在其中修改文件,或者将其切换为**“与主语言相同**”。 在可视化布局中,请在该语言的“附件”区块中替换文件。
我在Shopify Flow操作中没有看到“语言”字段。该步骤是在此次更新之前添加的,而Shopify Flow会保留步骤创建时设置的字段。请删除“发送事务性电子邮件”步骤,然后重新添加:此时,“语言”字段会出现在**“发件人姓名**”和**“变量(JSON)**”之间。
通过 API
可通过 GET 和 PUT /api/v1/email-templates/:id/translations/:locale 读取和编写翻译内容,使用 POST /api/v1/email-templates/:id/translations/:locale/promote 可将某项翻译设为主语言,MCP 工具包括 list_template_translations、set_template_translation 和 promote_template_translation。对于富文本/HTML 布局,翻译的 attachments 字段是一个独立的列表,主语言的列表则为 null;marketingTexts 存储该语言营销布局的页脚文本。 接受任何有效的语言代码,每个布局最多支持 30 种语言。请参阅 REST API 参考指南 和 连接人工智能助手(MCP)。
