|
文档
预约演示平台
平台MCPCLIAPI工作流
指南
更新日志

本地化

  • 概览
  • 翻译 API
  • Web 应用本地化
  • 移动应用本地化
  • iOS 与 String Catalogs
  • Android 与 strings.xml
  • 邮件本地化
  • 静态内容(如 .md、.json)
  • Next.js + Markdoc
  • Rails + i18n

工作流

  • 通过 MCP 配置引擎
  • Jira 智能分诊
  • CI/CD

邮件本地化

Lingo.dev 的 CLI 和 本地化 API 支持两种邮件本地化方式:一种是在构建阶段翻译模板文件,产出按语言区域区分的模板;另一种是在发送前于运行时翻译内容。两种方式都会经过已配置的 本地化引擎,并自动套用术语表规则、品牌语气和模型选择。

选择适合你的方案#

方案适用场景工作方式
构建阶段(CLI)模板文件:react-email、MJML、HTML翻译仓库中的文件,并部署按语言区域区分的模板
运行时(API)动态内容、由 ESP 渲染的模板发送前调用 本地化 API,再将翻译后的内容传给你的邮件服务提供商

该怎么选?

如果你的邮件模板以文件形式保存在代码仓库中(HTML、MJML 或 React 组件),请选择构建阶段方案。如果邮件内容是动态生成的,或存放在邮件服务提供商中,则请选择运行时方案。

前置条件#

每一次翻译都会经过一个 本地化引擎——也就是决定使用哪种 LLM 模型、术语表、品牌语气和指令的配置。先在 Lingo.dev 控制台中创建一个引擎,并生成一个 API 密钥。

构建阶段本地化#

CLI 可直接翻译邮件模板文件。配置一个与你模板格式匹配的 bucket,运行 CLI 后,即可在源模板旁生成按语言区域区分的模板文件。

react-email 模板本质上是可渲染为 HTML 的 React 组件。你可以借助 react-i18next 等 i18n 库,将可翻译字符串提取到 JSON 资源文件中,再用 CLI 翻译这些 JSON 文件。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["emails/locales/[locale].json"]
    }
  }
}

渲染时,将语言区域传入邮件组件并加载对应的 JSON 文件。react-email 的 render() 函数会生成可直接发送的对应语言区域 HTML。

使用以下命令运行翻译:

bash
npx lingo.dev@latest run

运行时本地化#

当邮件内容是动态的——例如个性化通知、用户生成内容摘要,或存储在 CMS 中的营销文案——应在发送前于运行时完成翻译。这一方案建立在 Translation API 指南 所介绍的模式之上。

javascript
async function sendLocalizedEmail(userId, templateId, content) {
  const user = await db.users.findById(userId);

  const response = await fetch("https://api.lingo.dev/process/localize", {
    method: "POST",
    headers: {
      "X-API-Key": process.env.LINGODOTDEV_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      engineId: "eng_abc123",
      sourceLocale: "en",
      targetLocale: user.locale,
      data: {
        subject: content.subject,
        preheader: content.preheader,
        body: content.body,
      },
    }),
  });

  const { data } = await response.json();

  await emailProvider.send({
    to: user.email,
    subject: data.subject,
    html: renderTemplate(templateId, data),
  });
}

最佳实践#

场景建议
邮件主题尽量控制在 50 个字符以内。使用 术语表 锁定品牌名称,避免被翻译。
预览文案应与正文分开翻译——邮件客户端会单独展示这部分内容。
品牌语气在本地化引擎中为 不同语言区域分别配置语气。例如,日语营销邮件所需的语域就与德语不同。
RTL 语言针对阿拉伯语、希伯来语和波斯语,请在邮件客户端中测试渲染结果。不同客户端对 HTML dir="rtl" 的处理方式并不一致。
键锁定对于不应翻译的 URL、产品名称和法律标识符,请使用 锁定键。

下一步#

Translation API
通过 API 实现运行时本地化的完整指南
品牌语气
按目标语言区域设置语气与正式程度
术语表
控制哪些术语需要翻译,哪些保持不变
CI/CD 工作流
在每次推送时自动完成邮件模板翻译

这个页面对你有帮助吗?

Max PrilutskiyMax Prilutskiy·已更新 4 个月前·2 分钟阅读