如何在 WordPress 中翻译 Contact Form 7 – 表单标签、消息、邮件模板
了解如何将 WordPress 网站上 Contact Form 7 表单的各个部分翻译成访客使用的各种语言。本指南涵盖所有表单标签、整个“消息”选项卡、两个邮件模板、接受文本、测验标签、管道符分隔的可选值,以及 Contact Form 7 对接的提交集成。本文将带您走完使用 WPML 和 WPML Multilingual for CF7 附加组件翻译 Contact Form 7 的完整流程。
开始之前
安装并激活以下插件:
- Contact Form 7。
- WPML 和 WPML 字符串翻译。
- WPML Multilingual for CF7(本页介绍的附加组件)。
在将表单发送进行翻译之前,请使用网站的源语言在 Contact Form 7 中构建表单(包括每个表单标签、Mail 和 Mail (2) 模板、“消息”选项卡上的每个条目以及任何其他设置)。如果发生任何更改,您可以稍后编辑表单并重新发送以进行翻译。
自动翻译所有内容功能会为您完成这一步
如果您的网站开启了自动翻译所有内容,则无需手动发送表单进行翻译。WPML 会像处理其他内容一样自动获取新增和更新的表单,并在后台完成翻译。下面的页面插入步骤仍然适用,但发送表单进行翻译的步骤是自动完成的。本页的其余部分介绍手动操作流程,适用于使用翻译部分内容:由您选择要翻译的内容模式的网站(或您希望抢在自动队列之前翻译的表单)。
发送表单进行翻译
- 打开 WPML > 翻译 > 仪表板。
- 展开 Contact Forms 部分。
- 勾选您要翻译的表单。
- 选择一种翻译方式:PTC(推荐)、您的译员或自己翻译。
- 单击翻译。
表单模板、Mail 和 Mail (2) 以及“消息”选项卡都会进入同一个翻译作业中。译者会在高级翻译编辑器中看到它们显示为带标签的行。
将表单插入到已翻译的页面中
Contact Form 7 通过 [contact-form-7] 简码嵌入到页面或文章中,通常由联系管理屏幕生成为 [contact-form-7 id="123" title="My Form"]。多语言插入规则:
在页面的每个语言版本上使用相同的简码。不要为每种语言创建单独的表单。
工作流程:
- 使用您的源语言构建一次表单。
- 发送表单进行翻译(或让自动翻译所有内容抓取它)。
- 在源语言页面上插入简码。
- 通过 WPML > 翻译 > 仪表板翻译页面,方法与翻译任何其他页面相同。简码会保留在已翻译的页面上。
- 当访客打开已翻译的页面时,WPML Multilingual for CF7 会自动以访客的语言提供表单 – 相同的简码,已翻译的内容。
您不需要为每种语言设置不同的表单 ID。翻译会链接到源表单;粘合插件会在渲染时根据页面的语言解析出正确语言的版本。
基于 ID 和基于标题的简码均可使用。[contact-form-7 id="123" title="Contact form 1"] 无需额外配置即可在多语言环境下工作。[contact-form-7 title="Contact form 1"](仅有标题,无 ID)也能解析为正确的语言。仅标题解析功能于 1.1.0 版本(2021年6月)发布。这两种形式都是安全的。
例外情况 – 当您确实希望每种语言使用不同的表单时。如果您需要每种语言在结构上有所不同的表单(不同的表单标签、不同的 Mail 模板、不同的“消息”选项卡内容),请构建单独的 Contact Form 7 表单,并在该翻译的 WordPress 编辑器中,将各表单的简码插入到对应语言版本的页面上。这是简码在不同语言之间存在差异的唯一情况。
页面构建器注意事项
如果您的页面是使用 Divi、Elementor 或其他页面构建器构建的,并且其文本模块包裹了简码,那么简码在翻译后可能无法始终保持完好。如果已翻译的页面显示的是源语言表单,请在页面构建器中打开已翻译的页面,并在那里重新插入 [contact-form-7] 简码。原生的 WordPress 区块编辑器和经典编辑器没有这个问题。
表单标签文本和面向访客的字符串
每个表单标签中面向访客的内容都会被翻译:标签文本(括号标签外的文本)、按钮标签([submit "Send"] 中的值)、通过 placeholder 选项设置的占位符,以及 [checkbox]、[radio] 和 [select] 标签内的选项值。
表单标签的类型(type)和名称(name)不会被翻译。它们是标识符。表单标签的值(values)(面向访客的选项)会被翻译。示例:
[select your-country "China" "India" "San Marino"]
在法语翻译中,"China" 会变为 "Chine",而 your-country(表单标签名称)和 select(类型)保持不变。邮件标签替换仍然有效,因为翻译保留了每个值的位置。
管道符分隔的值 – 翻译标签,保持值稳定
管道语法允许您将面向访客的标签与电子邮件中发送的值分离开来:
[select your-country
"Chinese|CN"
"Indian|IN"
"Sammarinese|SM"]
当您翻译此表单时,只有标签(Chinese、Indian、Sammarinese)会被翻译。值(CN、IN、SM)保持规范不变。法语访客会看到 Chinois、Indien、Saint-Marinais;而电子邮件正文和任何后台处理程序仍然会收到 CN、IN、SM。在任何需要提交的值跨语言保持稳定的地方使用管道语法:CRM 映射、支付 SKU、地理代码。
接受和测验标签
Acceptance(接受)复选框包含同意文本,通常还有一个或多个指向隐私和条款页面的嵌入链接。在翻译作业中将该文本作为单行进行翻译;对于链接目标,请编辑翻译后的行以指向对应语言的隐私和条款页面。
Quiz(测验)标签会同时翻译问题和答案。对测验答案使用管道语法,以便接受答案的逻辑在不同语言中保持可预测:
[quiz captcha
"1+1=?|2"
"2+3=?|5"]
“消息”选项卡
Contact Form 7 的消息选项卡包含大约 16 个可编辑的验证字符串 – 即访客在提交和出错时看到的字符串。每一个都在同一个作业中进行翻译:
- Thank you for your message. It has been sent.(感谢您的留言。发送成功。)
- One or more fields have an error. Please check and try again.(一个或多个字段有误。请检查并重试。)
- There was an error trying to send your message. Please try again later.(尝试发送您的留言时出错。请稍后再试。)
- This field is required.(此字段是必填项。)
- This e-mail address is invalid.(此电子邮件地址无效。)
- The telephone number is invalid.(电话号码无效。)
- The URL is invalid.(URL 无效。)
- The number is smaller than the minimum allowed.(数字小于允许的最小值。)
- The number is larger than the maximum allowed.(数字大于允许的最大值。)
- The date format is incorrect.(日期格式不正确。)
- The file is too big.(文件太大。)
- The file is not supported.(不支持该文件。)
- The Acceptance checkbox is required.(必须勾选接受复选框。)
- The answer to the quiz is incorrect.(测验答案不正确。)
- (以及 CF7 附带的其余默认消息)。
如果您的“消息”选项卡使用邮件标签来插入输入内容(Thanks [your-name], your message has been sent!(感谢某某,您的留言已发送!)),邮件标签在翻译后仍然能正确解析。
Mail 和 Mail (2)
Contact Form 7 的两个外发电子邮件模板,即 Mail(管理员通知)和 Mail (2)(对访客的可选回复或自动回复),是独立翻译的。To(收件人)、From(发件人)、Subject(主题)、Additional headers(附加标头)、Message body(消息正文)以及 File attachments(文件附件)说明都位于翻译作业中。翻译后正文中的邮件标签([your-name]、[your-message]、[your-email])会正确解析。
对于 Mail (2),面向访客的自动回复正文是翻译最重要的地方。这正是送达访客收件箱的邮件。请从已翻译的页面发送测试提交,并确认自动回复以访客的语言送达。
提交集成
Contact Form 7 的集成数量不多,但都很重要。配置翻译后,每一个集成都会保留访客的语言:
- Flamingo。Contact Form 7 作者的提交管理附加组件。提交的内容会进入联系 > 入站消息,并且翻译后的主题和正文保持完好。
- Constant Contact。CF7 官方的电子邮件营销集成。访客输入的内容会以访客的语言传送到您的 Constant Contact 列表中。
- Stripe。Contact Form 7 的
[stripe]表单标签字段和收据消息文本都会显示在翻译作业中。 - Akismet。垃圾邮件保护消息通过WPML 字符串翻译(而不是表单翻译作业)进行翻译。
- reCAPTCHA。面向访客的错误消息通过WPML 字符串翻译进行翻译。
常见陷阱
- 带有嵌入链接的 Acceptance(接受)指向了错误语言的隐私页面。在高级翻译编辑器中编辑 Acceptance 翻译,并设置对应语言的链接目标。
- CF7 6.0+ 上的简码哈希不匹配。已在 WPML Multilingual for CF7 1.3.2(2024年11月)中解决。如果您遇到此问题,请升级。
- “消息”选项卡的翻译未显示。请确认 WPML 字符串翻译处于激活状态,并且在编辑“消息”选项卡后已重新发送表单进行翻译。
- 翻译中的邮件标签解析为空字符串。请检查邮件标签中的表单标签名称(例如
[your-name])是否与表单中的表单标签匹配。翻译绝不会破坏邮件标签的解析,但在翻译后重命名表单标签则会导致此问题。
作者:Amir · 最后更新于 2026年7月2日
作者:Amir · 最后更新时间:2026年7月2日