Gravity Forms表单使用WPML和qTranslate的多语言解决方案

Gravity Forms在国外是一款非常流行的收费表单插件,它的强大之处一两句话是概括不完的,要体会这款插件,可以去他的Demo演示站(demo.gravityforms.com)体会。这个插件帮我不知道省了多少开发时间,所以忍不住再次强力推荐。这样一款优秀插件,本身却并未提供多语言功能。在应用了WPML或qTranslate的多语言网站上,我们可以选择两款“第四方”插件,使多语言插件分别支持Gravity Forms。

首先来说个简单的 – 免费的Qtranslate。原作者停止更新qTranslate后,我们就用qTranslate-X代替。qTranslate是通过这样的语言标签:“<!–en:–><!–:–>”,来实现多语言的。在Gravity Forms表单中使用这样的语言标签,在前台会把这些标签当作文本一起输出。通过插件“qTranslate support for GravityForms”,可以直接让qTranslate-X支持Gravity Forms中填写的语言标签,在前端输出正确的语言文本。
qTranslate支持了Gravity Forms

qTranslate support for GravityForms 本身没有提供任何设置选项,只要简单的安装激活,即可使Gravity Forms被qTranslate-X支持。

接下来说说强大的WPML是如何支持Gravity Forms的。购买WPML后你就能下载它的一款add-on,名叫“Gravity Forms Multilingual”。同样的安装、激活后,WPML就支持Gravity Forms了。接下来在后台的WPML – Translation Management中,你应该可以看到可选的文档类型中多了Gravity form这一项。
WPML支持了Gravity Forms
不过先别忙,尽管我们能在这里搜索到要翻译的Form,但这时候在String Translation中还扫描不到Gravity Forms中需要翻译的字段,翻译还不能正确进行。

要让String Translation扫描到Gravity Forms的字段,首先我们要打开“在管理员登录后自动注册字段”的选项,具体位置在WPML – String Translation页面滚动到下面,按如图设置保存。
WPML在管理员登录后自动注册字段

然后你需要回到前台,把显示表单的页面打开,依次填写一遍表单的各项,提交表单,直到显示出表单的确认页面。也就是把表单的所有字段,包括逻辑字段、确认页面内容等全部“过一遍”,这样WPML就会扫描到这些字段。如果不在前台“过一遍”表单,WPML是找不到你需要翻译的字段的。

然后回到后台,在String Translation中,你就会发现多了好多gravity_form的字段需要翻译,慢慢填吧。
多了好多gravity_form的字段需要翻译

别忘记把刚才开启的自动注册字段功能关闭。根据我的经验,如果这个功能不关闭,多刷新几次前台的表单页面,Gravity Forms的一部分已翻译的信息会丢失,暂时不清楚具体原因,猜测是重复扫描产生的Bug,希望在版本更新中能够修正。保险起见,我们还是关掉这个功能:
关闭自动注册字段的功能

WPML翻译Gravity Forms看似步骤繁琐,但它避免了qTranslate那种语言标签,而且翻译得很彻底,在我测试的表单中没有漏掉任何字段。而用“qTranslate support for GravityForms” + qTranslate方案时,在某些情况下有些字段是翻译不了的,因为没有地方给你填写语言标签,比如在开启了“other”选项的单选域:
开启了other选项的单选域
qTranslate毕竟是免费插件的方案,不能奢求太多。对项目质量有较高标准的朋友,还是选WPML吧。

本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.brain1981.com/1106.html。百度不可信,搜索请谨慎。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以获取本文的最新版本。

关注我们的微信公众号-JennyStudio 本站记录了近几年的工作中遇到的一些技术问题和解决过程,“作品集”还收录了本人的大部分作品展示。除了本博客外,我们的工作室网站 – JennyStudio,内有更多作品回顾和展示。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。

发表评论

电子邮件地址不会被公开。 必填项已用*标注