翻译来自 Braze 和 Mailchimp 的邮件模板
各邮件平台对于翻译内容的存放位置各不相同,正是这种差异——而非文件格式——让营销活动的本地化变得十分棘手。Transept 支持所有这三种布局,因此您直接上传现有的模板即可,无需预先调整格式。
本页内容
不同平台的工作方式有何不同?
每个邮件平台都采用三种本地化方式之一。在下表中找到您使用的平台,即可了解需要上传的内容以及导出的结果。
| 平台工作方式 | 平台 | 上传内容 |
|---|---|---|
| 一个独立的带键值翻译表,与模板配套。 | Braze (CSV 或 API)、Klaviyo (CSV) | 翻译文件 — 参见 字符串文件 |
| 每种语言一个完整模板 | Iterable、Customer.io、Brevo | 每种语言一个模板——纯 HTML |
| 所有语言包含在单个模板内,通过条件语句切换 | Mailchimp、Braze 翻译标签、各类手动编写的 Liquid 模板 | 模板本身——下文将详细介绍 |
- 如果您的平台已经为您生成了译文,而您只想进行审核,那是另一种应用场景——请将完成的文本作为现有译文导入,以便您的记忆库和术语库能从中学习。
如何翻译 Braze 模板?
上传模板 HTML。Braze 中所有带有 {% translation %} 标签的片段都会被识别为一个字符串,并以该标签的 ID 作为键值。标签之外的内容则保持原样:未标记的文案是您告知 Braze 无需本地化的文本,因此翻译这些内容会导致在 Braze 那些永不变更的文件部分填入文字。
您导出的是翻译表,而非重写后的模板。这是有意为之的,也是关键所在:标签内的文本是 Braze 的默认内容,即发送给那些没有对应语言译文的用户的文本。它必须保留为源语言。译文则应包含在您与模板一同上传至 Braze 的 CSV 文件中。
因此,完整的流程是:上传模板、进行翻译、导出字符串文件(带键值)或 CSV,然后将其上传到 Braze。您的模板本身无需做任何更改。
- Braze 自身的限制会在导入时强制执行,这样您在运行前就能发现问题,而不是等到运行后:每条消息最多 200 个翻译标签,每个标签的默认文本最多 2,000 个字符,不支持嵌套,且 ID 在消息内必须唯一。
- HTML 属性中的标签——例如本地化的链接目标——会像其他内容一样被读取。
- Braze 建议不要在 Excel 中打开其翻译 CSV 文件,因为这会导致非拉丁字符出现乱码。无论文件是由谁生成的,在将其上传回 Braze 时,该警告均适用。
如何翻译同时包含所有语言的模板?
Mailchimp 没有多语言营销活动功能,因此其模板会在内部包含所有语言,并通过条件语句进行切换——例如 *|IF:MC_LANGUAGE=es|* … *|ELSE:|* … *|END:IF|*。手动编写的 Liquid 模板也使用 `{% if lang ==
每个分支都会被视为独立的句子进行翻译,而非默认文本的变体。这比听起来更重要:因为回访客户阅读的分支和新客户阅读的分支通常是意图不同的文案,将整个条件语句作为一个整体进行翻译会适得其反。
模板中从未包含过的语言在导出时会在文件中写入一个新的分支,并置于默认内容之前,以确保默认内容仍作为回退项。您上传一个模板,拿回的也是一个模板,但现在它已涵盖更多语言。
- 与语言无关的条件语句——如
{% if vip %}、*|IF:PURCHASES>0|*——及其文本都会被完全保留。只有针对 Mailchimp 的MC_LANGUAGE或指定语言的 Liquid 变量的判断才会被识别。 - 嵌套在其中的语言条件语句仍会被识别并翻译。
- 新分支会使用 Transept 所用的语言代码进行标记。如果您的平台要求的语言拼写方式不同,请在导出的文件中自行重命名。
如果我的平台完全没有本地化功能怎么办?
这种情况下,模板就是一个普通的 HTML 文件,处理起来也最简单。直接上传文件,翻译全部内容,然后每种语言导出一个文件——邮件 HTML 所依赖的布局、内联样式和表格框架都会原封不动地保留,因为导出过程是将译文直接写回您的原始文件,而非重新构建。
使用 多种语言 功能,只需一次上传,即可一次性生成所有语言版本。
个性化标签在翻译过程中是如何保留的?
它们在 AI 处理文本之前会被隐藏,处理完后再恢复,且每一处返回的内容都会与源文本进行比对校验,确保万无一失。这涵盖了 Liquid ({{first_name}}, {% if %})、Braze 的属性语法 ({{${first_name}}})、Mailchimp 合并标签 (*|FNAME|*) 以及 printf 占位符,且无需任何配置。
标签内部有一项内容是特意需要翻译的:即回退文本。在 {{ first_name | default:"friend" }} 中,单词 friend 是所有档案中没有名字的收件人会看到的内容,而这通常占发送量的绝大部分。因此,它属于文案,会被翻译,而周围的标签则保持原样。
有哪些内容不能通过这种方式翻译?
在策划营销活动之前,有两处限制值得了解,因为在预览中都无法察觉到它们:
- Mailchimp 的主题行无法随语言而变化。主题属于营销活动的元数据,而非模板内容,因此条件语句无法触及。这是 Mailchimp 本身的限制,Transept 无法绕过。如果您需要针对不同语言设置不同的主题,则需要为每种语言单独创建营销活动。
- Braze 模板中未标记的文本将保持不翻译状态,因为 Braze 本身不会对其进行本地化。如果某个段落需要随语言变化,请先在 Braze 中将其包裹在翻译标签内,然后重新导入。
- 预览只能显示一种语言,这正是这两类问题容易被忽视的原因。在发送之前,请务必检查导出的文件,而不仅仅是预览。
Transept 是否直接连接到 Braze 或 Mailchimp?
不,这是我们有意为之。各平台的 API 会根据其自身的节奏进行变更、弃用或限流,而一个悄无声息地失效的集成比完全没有集成更糟糕。文件的往返流程同样能完成任务,且始终稳定有效,还能让您在内容发布给受众之前,亲自对文件进行检查。
我在翻译后导出了 Braze 模板,但内容看起来没有任何变化。这是 Bug 吗?
不,这完全正常。Braze 模板仅包含默认文本,而默认文本必须保持源语言,因为当 Braze 找不到对应的译文时,就会向用户发送这部分内容。您的译文包含在导出的字符串文件中:请从导出菜单中选择字符串文件(带键名)或 CSV,然后将其与未做改动的模板一起上传到 Braze。
如果条件语句与语言无关(例如 VIP 区块),会发生什么?
它会完全保持原样——无论是结构还是文本。只有针对 Mailchimp 的
MC_LANGUAGE合并标签的测试,或者名称涉及语言且与实际语言代码进行比对的 Liquid 变量,才会被视为语言条件语句。嵌套在 VIP 区块内部的语言区块仍会被正常识别并翻译。我可以添加模板中从未有过分支的语言吗?
可以。像对待其他语言一样进行翻译即可,导出时程序会在条件语句中写入一个新的分支,并将其置于默认分支之前,以便默认分支继续作为回退选项发挥作用。最终您将得到一个比上传时包含更多语言版本的模板。
我该上传哪个文件——模板还是翻译 CSV?
平台提供哪种文件就上传哪种,两者都行。如果您的平台将译文存储在独立的带键名表格中(如 Braze、Klaviyo),请上传 CSV;如果平台将多语言内容直接内联,或者完全没有本地化功能,则上传模板。如果您两者都有,CSV 是更直接的选择——请参阅字符串文件。
仍有疑问?在应用内询问 Literess,或发送邮件至 support@transept.ai。