设置reCAPTCHA版本2的语言为英语以外的其他语言

52

enter image description here

我该如何将它设置为其他语言,例如:法语?

我已经尝试过:

var RecaptchaOptions = {
     lang : 'fr',
  };

以上未起作用。

我在Google reCAPTCHA文档的API参考 ->版本2下未找到相关信息。

附加信息:

我正在使用rails,并使用gem "recaptcha"这里可以找到。

5个回答

145

这似乎是可用语言代码列表。链接 - Uwe Keim
@ Syed - 你从哪里得到语言代码?来自数据库?查询语句?你使用的是什么编程语言……PHP,ASP,…… - LuBre

15
如果您正在使用reCAPTCHA gem,您需要在recaptcha_tags中提供参数。
示例:
<%= recaptcha_tags ssl: true, hl: 'it', display: { theme: 'white' } %>

2
谢谢!这个 gem 没有很好的文档记录。 - Jorge

5

简单解决方案

你可以像这样做:

HTML代码

<div id="captcha_container"></div>
<select id="ddllanguageListsGoogleCaptcha"></select>

JS

// Update language captcha 
function updateGoogleCaptchaLanguage(selectedLanguage) {

    // Get GoogleCaptcha iframe
    var iframeGoogleCaptcha = $('#captcha_container').find('iframe');

    // Get language code from iframe
    var language = iframeGoogleCaptcha.attr("src").match(/hl=(.*?)&/).pop();

    // Get selected language code from drop down
    var selectedLanguage = $('#ddllanguageListsGoogleCaptcha').val();

    // Check if language code of element is not equal by selected language, we need to set new language code
    if (language !== selectedLanguage) {
        // For setting new language 
        iframeGoogleCaptcha.attr("src", iframeGoogleCaptcha.attr("src").replace(/hl=(.*?)&/, 'hl=' + selectedLanguage + '&'));
    }
}

在线演示(jsFiddle)


3

是的,“hl=语言代码”方法很有效。当然,要在页面上的每个<script src='https://www.google.com/recaptcha/api.js'></script>实例中执行此操作 - 包括页面头部和正文中的内容。仅在正文中放置 hl=... 会导致结果不一致。


1

感谢 @ali-soltani 的代码片段!我成功地完成了这个任务! :)

我提供了我的“原始”版本,适用于不使用jQuery的人,以避免一些问题。

    function setCaptchaLang(lang) {

      const container = document.getElementById('captcha_container');

      // Get GoogleCaptcha iframe
      const iframeGoogleCaptcha = container.querySelector('iframe');

      // Get language code from iframe
      const actualLang = iframeGoogleCaptcha.getAttribute("src").match(/hl=(.*?)&/).pop();

      // For setting new language
      if (actualLang !== lang) {
        iframeGoogleCaptcha.setAttribute("src", iframeGoogleCaptcha.getAttribute("src").replace(/hl=(.*?)&/, 'hl=' + lang + '&'));
      }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接