0

我正在尝试使用 reCAPTCHA.net 的验证码服务,但是我想使用自定义翻译(https://developers.google.com/recaptcha/docs/customization#i18n),因为内置的不涵盖所有语言. 此外,我不想使用他们的标准主题之一,而是完全自定义以匹配验证码的外观到我的网站。

下面是我正在尝试的一个片段,但是由于一些有趣的原因它不起作用(文本保留为英文而不是翻译)。我想知道“获取另一个验证码”、“获取音频验证码”、“帮助”等文本链接是否会翻译。如果我理解正确,这些应该翻译,具体取决于我在 custom_translations 属性中设置的字符串。另外,如果我用图标而不是文本替换文本链接的内容,这些图标会自动获取具有适当内容的 ALT 标记吗?

所以,例如,如果我改变这个:

<div class="recaptcha_only_if_image"><a href="javascript:Recaptcha.switch_type('audio')">Get an audio CAPTCHA</a></div>

为此,是否会自动预填充图像的 alt 标签,以便将鼠标悬停在图标上时显示“获取音频验证码”?

<div class="recaptcha_only_if_image"><a href="javascript:Recaptcha.switch_type('audio')"><img height="16" width="16" src="audio.gif" alt="" /></a></div>

当我尝试选择标准主题之一时,我问这个问题,例如“主题:“红色”,alt 标签会根据语言自动翻译。

这是我的代码片段。我从下面删除了我的公钥。

JS

<script type="text/javascript">
    var RecaptchaOptions = {
            custom_translations : {
                    instructions_visual : "Scrivi le due parole:",
                    instructions_audio : "Trascrivi ci\u00f2 che senti:",
                    play_again : "Riascolta la traccia audio",
                    cant_hear_this : "Scarica la traccia in formato MP3",
                    visual_challenge : "Modalit\u00e0 visiva",
                    audio_challenge : "Modalit\u00e0 auditiva",
                    refresh_btn : "Chiedi due nuove parole",
                    help_btn : "Aiuto",
                    incorrect_try_again : "Scorretto. Riprova.",
            },
            lang : 'it', // Unavailable while writing this code (just for audio challenge)
            theme : 'custom', // Make sure there is no trailing ',' at the end of the RecaptchaOptions dictionary
      custom_theme_widget: 'recaptcha_widget'
    };
</script>

HTML

<div id="recaptcha_widget" style="display:none">

<div id="recaptcha_image"></div>
<div class="recaptcha_only_if_incorrect_sol" style="color:red">Incorrect please try again</div>

<span class="recaptcha_only_if_image">Enter the words above:</span>
<span class="recaptcha_only_if_audio">Enter the numbers you hear:</span>

<input type="text" id="recaptcha_response_field" name="recaptcha_response_field" />

<div><a href="javascript:Recaptcha.reload()">Get another CAPTCHA</a></div>
<div class="recaptcha_only_if_image"><a href="javascript:Recaptcha.switch_type('audio')">Get an audio CAPTCHA</a></div>
<div class="recaptcha_only_if_audio"><a href="javascript:Recaptcha.switch_type('image')">Get an image CAPTCHA</a></div>

<div><a href="javascript:Recaptcha.showhelp()">Help</a></div>

</div>

 <script type="text/javascript"
src="http://www.google.com/recaptcha/api/challenge?k=MY_PUBLIC_KEY">
 </script>
 <noscript>
 <iframe src="http://www.google.com/recaptcha/api/noscript?k=MY_PUBLIC_KEY"
    height="300" width="500" frameborder="0"></iframe><br>
 <textarea name="recaptcha_challenge_field" rows="3" cols="40">
 </textarea>
 <input type="hidden" name="recaptcha_response_field"
    value="manual_challenge">
 </noscript>

我还附上了结果的截图。
在此处输入图像描述

4

1 回答 1

0

据我了解,custom_translations如果您使用自己的 HTML 模板,则不会使用 JavaScript 对象。在这种情况下,您将不得不使用与应用程序其他部分相同的本地化进行手动翻译。custom_translations如果您自己不提供 HTML,而是使用预定义的主题之一,则使用此选项。

于 2013-07-29T15:07:01.380 回答