设置reCAPTCHA版本2设置除英语之外的其他语言

时间:2015-02-27 16:35:28

标签: javascript recaptcha

enter image description here

如何用另一种语言设置它,即:法国

我试过了:

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

Found above here

哪个什么都没做。

我无法在API参考下找到相关信息 - > Google Docs for reCAPTCHA

上的第2版

其他信息:

我在轨道上使用此功能,gem "recaptcha" Found here

5 个答案:

答案 0 :(得分:124)

您只需指定参数" ?hl = "在脚本的网址中:

<script src='https://www.google.com/recaptcha/api.js?hl=fr'></script>

确实没有很好的记录!

在此处找到您的语言代码:https://developers.google.com/recaptcha/docs/language

答案 1 :(得分:14)

如果您使用的是recaptcha gem,则需要在 recaptcha_tags 中提供 hl 参数。

示例:

<%= recaptcha_tags ssl: true, hl: 'it', display: { theme: 'white' } %>

答案 2 :(得分:3)

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

答案 3 :(得分:3)

简单解决方案

你可以这样做:

<强> 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 + '&'));
    }
}

Online demo (jsFiddle)

答案 4 :(得分: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 + '&'));
      }
    }