WPML

开始之前

安装并激活以下插件:

使用网站的源语言在 Gravity Forms 中构建表单。在发送表单进行翻译之前,添加您需要的所有字段(定价字段、分页结构、条件逻辑、通知和确认)。您以后随时可以更改表单并重新翻译差异部分。

自动翻译所有内容功能可为您处理此操作

如果您的网站开启了自动翻译所有内容,则无需手动发送表单进行翻译。WPML 会在后台提取并翻译新表单和更新的表单以及其余内容。下面的页面插入步骤仍然适用,但发送表单进行翻译的步骤是自动的。本页面的其余部分介绍了处于翻译部分内容:由您选择要翻译的内容模式的网站的手动操作路径(或适用于您希望在自动队列之前翻译的表单)。

发送表单进行翻译

  1. 打开 WPML > 翻译 > 仪表板
  2. 展开 Gravity Forms 部分。
  3. 勾选您要翻译的表单。
  4. 选择一种翻译方式:PTC(推荐)、您的译者或自己翻译
  5. 单击翻译

表单及其字段、选项、通知、确认和每个字段的验证消息都会进入同一个翻译任务中。译者会在高级翻译编辑器中看到它们显示为带标签的行。

将表单插入翻译后的页面

Gravity Forms 位于页面或文章中,通常通过 Gravity Forms 区块[gravityform id="X" title="false"] 简码插入。处理多语言插入的方式最容易让客户感到惊讶,因此规则如下:

在页面的每个语言版本上使用相同的区块或简码。不要为每种语言创建单独的表单。

流程如下:

  1. 使用源语言构建一次表单。
  2. 发送表单进行翻译(或让自动翻译所有内容提取它)。
  3. 使用 Gravity Forms 区块或 [gravityform] 简码将表单插入源语言页面。
  4. 通过 WPML > 翻译 > 仪表板翻译页面,就像翻译任何其他页面一样。表单嵌入内容会保留在翻译后的页面中。
  5. 当访客访问翻译后的页面时,GFML 会自动以访客的语言提供表单 – 相同的表单 ID,相同的简码,翻译后的内容。

您不需要为每种语言使用不同的表单 ID。您不需要为每种语言交换简码。翻译与源表单相关联;桥接插件会在渲染时根据页面的语言解析正确语言版本。

例外情况 – 当您确实需要为每种语言使用不同的表单时。某些网站需要为每种语言提供结构上不同的表单(不同的字段、不同的逻辑,而不仅仅是不同的文案)。在这种情况下,请构建单独的 Gravity Forms(每种语言一个),并使用该翻译的 WordPress 编辑器将每个表单的简码插入页面的匹配语言版本中。这是简码在不同语言之间产生差异的唯一情况。

页面构建器注意事项

如果您的页面是使用 Divi、Elementor 或其他页面构建器构建的,并且这些构建器将简码包装在自己的文本模块中,那么简码在翻译后可能无法始终完好无损。如果翻译后的页面显示源语言表单,请在页面构建器中打开翻译后的页面,并在其中重新插入表单的区块或简码。原生 WordPress 区块编辑器和经典编辑器没有这个问题。

字段标签和选项与定价和产品字段一起翻译

每个字段标签、占位符、下拉选项、单选选项、复选框标签和 HTML 字段内容都会出现在翻译任务中。对于 Gravity Forms 独特的定价字段(产品、数量、总计、运费),标签也会被翻译(例如将“Quantity”翻译为“Quantité”),而底层的数字处理保持不变。列表字段(List fields)、数字签名(Digital Signatures)和文件上传(File Uploads)的翻译方式相同。多项选择(Multiple Choice)和图像选择(Image Choice)(Gravity Forms 2.9 字段类型)从 GFML 1.8.3 开始支持翻译。

分页表单和对话式表单

对于分页表单,每个页面标题和分页符标题都会包含在翻译任务中。跨页分支的条件逻辑在翻译后依然有效。选项值在不同语言之间保持一致,因此显示/隐藏规则会继续在相同的数据上触发。对话式表单(一次回答一个问题的模式)会翻译每个提示和每个过渡。选择一个语言版本,走一遍对话流程,并在发布前确认每个步骤读起来都很自然。

每个字段的验证消息

Gravity Forms 中的每个字段在其高级(Advanced)选项卡中都有自己的验证消息(Validation Message)设置 – 即验证失败时显示的文本。每一条消息都会作为一行显示在高级翻译编辑器中。

如果您在翻译任务中没有看到每个字段的验证消息,则该字段可能使用的是 Gravity Forms 的默认消息(在 Forms > Settings > Form Settings 中设置),而不是单字段覆盖。您可以设置自定义的单字段消息并重新发送表单进行翻译,或者通过 WPML 字符串翻译来翻译全局默认消息。

确认 – 文本、重定向和页面

Gravity Forms 支持三种确认(Confirmation)类型,且这三种类型均支持多语言:

  • 文本(Text)确认进行内联翻译。在 Gravity Forms 中编辑源语言确认 > 重新发送表单进行翻译 > 翻译后的文本将显示在每种语言中。
  • 页面(Page)确认指向一个 WordPress 页面。通过 WPML 的正常页面翻译工作流程翻译该页面;访客会看到与其上下文匹配的语言版本。
  • 重定向(Redirect)确认会在提交后将访客发送到一个 URL。该 URL 本身可以按语言进行翻译。在高级翻译编辑器中为每种语言设置不同的感谢页面 URL。

通知和通知路由

每个 Gravity Forms 通知(Notification)都可以按语言进行翻译:收件人邮箱(To Email)、发件人名称(From Name)、主题(Subject)、正文模板和合并标签。通知正文使用 Gravity Forms 合并标签({Name}{Email}{All Fields}),这些标签在翻译后会正确解析。通知路由(Notification routing)规则会根据字段值将不同的提交内容发送给不同的收件人。它们在翻译后依然有效,因为底层的选项值在不同语言之间保持一致。

翻译后,请使用每种语言发送一次测试提交,并确认通知以访客的语言送达,且合并标签替换正确。

翻译后选项值的条件逻辑

基于文本的选项(单选按钮、复选框、下拉菜单)的条件逻辑在翻译后继续起作用,因为 GFML 维护了源标签和翻译标签之间的值映射。访客在法语中看到的是“Pas encore”;底层值保持为“Not yet”;条件规则继续在“Not yet”上触发。

有一件事会破坏条件逻辑:在翻译后更改源语言选项标签,而没有重新发送表单进行翻译。此时映射会失效。通过重新发送表单即可修复此问题 – GFML 会更新值映射。

集成附加组件 – Mailchimp、ActiveCampaign、HubSpot、Zapier、Slack、Webhooks

将提交内容推送到第三方服务(Mailchimp、ActiveCampaign、HubSpot、Zapier、Slack、Webhooks 等)的 Gravity Forms 附加组件会接收访客翻译后的输入内容。法国访客的姓名和消息会以法语到达目标系统。如果映射的列表标签、管道阶段和频道名称作为表单级字符串存在,它们也会被翻译。

如果您的集成使用字段值而不是标签(例如,将下拉菜单值映射到 Mailchimp 列表),该值在不同语言中保持规范一致,因此映射不会中断。

常见陷阱

  • 通知电子邮件中的选项标签未翻译。更改源语言标签后,请重新发送表单进行翻译。如果问题仍然存在,请检查 GFML 是否为最新版本。这是旧版本中反复出现的问题,在论坛帖子中进行了追踪。
  • 翻译后的页面上表单区块样式显示错误。这是已知的样式退化问题 – 请参阅勘误页面。临时解决方法:在等待修复期间,使用标准的 [gravityform] 简码嵌入,而不是表单区块。
  • 表单明明有内容却显示“没有需要翻译的内容”这通常是仪表板缓存问题。刷新页面,或从嵌入表单的文章中重新发送表单进行翻译。
  • 条件逻辑在翻译后的表单中停止触发。翻译后在源语言中编辑了选项标签。重新发送表单进行翻译以刷新值映射。

作者:Amir · 最后更新于 2026年7月2日

作者:Amir · 最后更新时间:2026年7月2日