我该如何将它设置为其他语言,例如:法语?
我已经尝试过:
var RecaptchaOptions = {
lang : 'fr',
};
以上未起作用。
我在Google reCAPTCHA文档的API参考 ->版本2下未找到相关信息。
附加信息:
我正在使用rails,并使用gem "recaptcha"
,这里可以找到。
我该如何将它设置为其他语言,例如:法语?
我已经尝试过:
var RecaptchaOptions = {
lang : 'fr',
};
以上未起作用。
我在Google reCAPTCHA文档的API参考 ->版本2下未找到相关信息。
附加信息:
我正在使用rails,并使用gem "recaptcha"
,这里可以找到。
您只需在脚本的URL中指定参数"?hl=":
<script src='https://www.google.com/recaptcha/api.js?hl=fr'></script>
的确没有很好的文档记录!
在此处查找您的语言代码:https://developers.google.com/recaptcha/docs/language
<%= recaptcha_tags ssl: true, hl: 'it', display: { theme: 'white' } %>
简单解决方案
你可以像这样做:
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 + '&'));
}
}
是的,“hl=语言代码”方法很有效。当然,要在页面上的每个<script src='https://www.google.com/recaptcha/api.js'></script>
实例中执行此操作 - 包括页面头部和正文中的内容。仅在正文中放置 hl=... 会导致结果不一致。
感谢 @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 + '&'));
}
}