web-dev-qa-db-ja.com

reCAPTCHAバージョン2を設定すると、英語以外の別の言語が設定されます

enter image description here

これを別の言語で設定するにはどうすればいいですか?フランス語

私はもう試した:

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

上記にあります

何もしません。

APIリファレンス->バージョン2の reCAPTCHAのGoogleドキュメント で関連情報が見つかりませんでした

追加情報:

Railsでgem "recaptcha"でこれを使用しています ここにあります

44
neo

スクリプトのURLでパラメーター「?hl =」を指定するだけです。

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

あまりよく文書化されていません、確かに!

ここで言語コードを見つけます: https://developers.google.com/recaptcha/docs/language

125
LuBre

Recaptcha gemを使用している場合は、-hl paramをrecaptcha_tagsで指定する必要があります。

例:

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

簡単な解決策

次のようにできます:

[〜#〜] 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)

5
Ali Soltani

はい、「hl =language code」アプローチはうまく機能します。もちろん、キャッチは<script src='https://www.google.com/recaptcha/api.js'></script>ページ上-ページの先頭と本文の両方。ボディにhl = ...を入れるだけでは、一貫性のない結果になります。

3
Rudy Lopes

@ 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 + '&'));
      }
    }
0
Luckylooke