重要: reCAPTCHA API のバージョン 1.0 のサポートは終了しました。バージョン 2.0 にアップグレードしてください。詳細
reCAPTCHA をサイトにインストールした後、表示形式を変更できます。このページでは、(1)標準の reCAPTCHA テーマのいずれかを選択する方法、(2)reCAPTCHA の外観を完全にカスタマイズする方法、(3)ウィジェットの言語を変更して reCAPTCHA を多言語化する方法について説明します。
標準テーマ
reCAPTCHA ウィジェットに別のテーマを表示するには、まず、メインの HTML ページの、reCAPTCHA が表示される <form> 要素の前に次のコードを追加する必要があります(reCAPTCHA が最初に呼び出されるメイン スクリプトの後に配置すると機能しません)。
<script type="text/javascript"> var RecaptchaOptions = { theme : 'theme_name' }; </script>
標準のテーマを使用するには、'theme_name'
を次の 4 つのテーマ名のいずれかに置き換える必要があります。
「red」(デフォルトのテーマ) | 「白」 |
---|---|
「ブラックグラス」 | 「クリーン」 |
カスタムテーマ設定
カスタムテーマ設定により、reCAPTCHA 画像の表示方法を正確に制御できます。(こちらはカスタムテーマ設定のデモです)。カスタムテーマ設定を使用するには、まず RecaptchaOptions
のテーマ プロパティを「custom」に設定する必要があります。これにより、独自のユーザー インターフェースを作成しないように reCAPTCHA に指示できます。reCAPTCHA は、次の ID を持つ HTML 要素の存在に基づいて、CAPTCHA をユーザーに表示します。
-
ID
recaptcha_image
の空の div。ここに実際の画像が配置されます。div は 300x57 ピクセルになります。 -
ID と名前の両方が
recaptcha_response_field
に設定されたテキスト入力。ここにユーザーは回答を入力できます。 -
reCAPTCHA ウィジェット全体を含む div(省略可)。この ID の div を
custom_theme_widget
に配置し、div のスタイルをdisplay:none
に設定する必要があります。reCAPTCHA テーマ設定コードが完全に読み込まれると、div が表示されるようになります。この要素を使用すると、読み込み時にページのちらつきが発生しないようにできます。
このすべてを実装するには、まずメインの HTML ページの、reCAPTCHA が表示される <form> 要素の前に次のコードを配置します。
<script type="text/javascript"> var RecaptchaOptions = { theme : 'custom', custom_theme_widget: 'recaptcha_widget' };
次に、reCAPTCHA を表示する <form> 要素内に次の要素を配置します。
<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=your_public_key"> </script> <noscript> <iframe src="http://www.google.com/recaptcha/api/noscript?k=your_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>
最後の数行は、このガイドの最初に説明した reCAPTCHA を表示する標準的な方法です。
上記のコードで何が起きているかをご説明します。Recaptcha JavaScript オブジェクトには、CAPTCHA の状態を変更できるメソッドが用意されています。reload メソッドで、新しい CAPTCHA チャレンジを表示し、switch_type メソッドで、画像と音声の CAPTCHA を切り替えます。reCAPTCHA の完全な UI を作成するには、CAPTCHA の状態によって異なる情報が表示されます。たとえば、ユーザーが画像のキャプチャを表示している場合は、「音声キャプチャを取得」へのリンクが表示されます。ステートフル UI の作成に使用できる 4 つの CSS クラスがあります。
CSS クラス | 次の場合に表示... |
---|---|
recaptcha_only_if_image | キャプチャ画像が表示されている |
recaptcha_only_if_audio | 音声によるキャプチャが表示されている |
recaptcha_only_if_incorrect_sol | 前の解答は不正解 |
recaptcha_only_if_no_incorrect_sol | 前の解答は不正確でなかった |
テーマ設定には多くのオプションがありますが、ユーザー インターフェースの一貫性ルールに従う必要があります。
- CAPTCHA ウィジェットの近くで reCAPTCHA を使用していることを伝えてください。
- 再読み込み関数を呼び出すボタンを表示する必要があります。
- 目の不自由なユーザーが音声キャプチャにアクセスできるようにする必要があります。
- reCAPTCHA ウィジェットでボタンとして使用する画像には、代替テキストを提供する必要があります。
国際化: ウィジェットの言語の変更
reCAPTCHA ウィジェットを国際化する方法は 2 つあります。
組み込みの翻訳機能
reCAPTCHA にはさまざまな翻訳機能が組み込まれています。これらを使用するには、RecaptchaOptions
の lang パラメータを設定します。
<script type="text/javascript"> var RecaptchaOptions = { lang : 'fr', }; </script>
カスタム翻訳
お使いの言語の翻訳がない場合は、独自に作成できます。reCAPTCHA JavaScript のすべての文字列を翻訳し、recaptchaOptions の「custom_translations」変数を設定する必要があります。設定していない文字列は、ご使用の言語のデフォルトの翻訳から取得されます。これを使用して、デフォルトの翻訳の一部のみをオーバーライドできます(選択した翻訳が地域に合わない場合など)。例:
<script type= "text/javascript"> var RecaptchaOptions = { custom_translations : { instructions_visual : "This is my text:" } }; </script>
カスタム イタリア語翻訳の有効な例を次に示します(reCAPTCHA を呼び出す前に次のコードを配置してください)。
<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 : 'red' // Make sure there is no trailing ',' at the end of the RecaptchaOptions dictionary }; </script>
recaptchaOptions リファレンス
RecaptchaOptions ディクショナリには、次のフィールドを設定できます。
キー |
有効な値 |
デフォルト値 |
意味 |
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
テーマ |
'赤' | '白' | 'ブラックグラス' | 'クリーン' | 'カスタム' |
「red」 |
reCAPTCHA に使用するテーマを定義します。赤、白、ブラックグラス、クリーンのテーマは、reCAPTCHA のユーザー インターフェースに用意されている事前定義のテーマです。カスタムテーマでは、reCAPTCHA の外観を完全に制御できます。 |
||||||||||||||||||
lang |
サポートされている任意の言語コード。 |
「en」 |
事前定義のテーマのインターフェースで使用される言語。次の言語がサポートされています。
|
||||||||||||||||||
custom_translations | 翻訳辞書 | null | reCAPTCHA 文字列のカスタム翻訳を指定する場合に使用します。 | ||||||||||||||||||
custom_theme_widget | DOM 要素の ID を示す文字列 | null | カスタムテーマ設定を使用する場合、これはウィジェットを含む div 要素です。使用方法については、カスタムテーマ設定のセクションをご覧ください。 | ||||||||||||||||||
tabindex |
任意の整数 |
0 |
reCAPTCHA テキスト ボックスの tabindex を設定します。フォームの他の要素で tabindex を使用する場合は、ユーザーが移動しやすくなるように値を設定する必要があります。 |
たとえば、次の script タグは、reCAPTCHA のテーマをホワイトにし、tabindex 2 を持たせています。
<script> var RecaptchaOptions = { theme : 'white', tabindex : 2 }; </script>