Extension:ReCAPTCHA

What can this extension do?
reCAPTCHA places a strong CAPTCHA on your wiki. The CAPTCHA helps to read books that are scanned by projects such as archive.org. The CAPTCHA also includes an accessible audio version. Researchers at Carnegie Mellon University believe that this CAPTCHA is not readable by current OCR technology.

Requires MediaWiki 1.8 or above.

Usage
See http://recaptcha.net/plugins/mediawiki/ for instructions.

Configuration
The following set rules strikes the right balance between keeping spam down and allowing unrestrictive access to users:
 * 1) Any user can edit the wiki, because registration puts people off.
 * 2) Unregistered users are always presented with a captcha.
 * 3) Registration requires a captcha.
 * 4) Registered users are never presented with a captcha.

In the MediaWiki config those rules looks like this:

// Fix the default captcha behaviour $wgGroupPermissions['*'           ]['skipcaptcha'] = false; $wgGroupPermissions['user'        ]['skipcaptcha'] = true; $wgGroupPermissions['autoconfirmed']['skipcaptcha'] = true; $wgGroupPermissions['bot'         ]['skipcaptcha'] = true; // registered bots $wgGroupPermissions['sysop'       ]['skipcaptcha'] = true;

$wgCaptchaTriggers['edit']         = true; $wgCaptchaTriggers['create']       = true; $wgCaptchaTriggers['createaccount'] = true;

(all other permissions having their default values)

Troubleshooting
If after defining in your LocalSettings.php your $recaptcha_public_key and $recaptcha_private_key you get the following error code,

You need to set $recaptcha_private_key and $recaptcha_public_key in LocalSettings.php to use the reCAPTCHA plugin.

then you must put your $recaptcha_public_key and $recaptcha_private_key definition after

require_once( "$IP/extensions/recaptcha/ReCaptcha.php" );

ReCaptcha.i18n.php
 array(    'recaptcha-edit' => 'To help protect against automated edit spam, please type the two words you see in the box below:',      'recaptcha-addurl' => 'Your edit includes new external links. To help protect against automated spam, please type the two words you see in the box below:',     'recaptcha-badpass' => 'To help protect against automated password cracking, please type the two words you see in the box below:',	'recaptcha-createaccount' => 'To help protect against automated account creation, please type the two words you see in the box below:',	'recaptcha-createaccount-fail' => "Incorrect or missing reCAPTCHA answer.",	'recaptcha-create' => 'To help protect against automated page creation, please type the two words you see in the box below:', ),

/* French */ 'fr' => array(    'recaptcha-edit' => "Pour nous protéger des robots, merci d'écrire les deux mots visibles dans le cadre qui suit:",      'recaptcha-addurl' => "Votre contribution contient des liens vers un site externe. Pour nous protéger des robots, merci d'écrire les deux mots visibles dans le cadre qui suit:",     'recaptcha-badpass' => "Pour nous protéger des essais automatiques de cassage de mot de passe, merci d'écrire les deux mots visibles dans le cadre qui suit:",	'recaptcha-createaccount' => "Pour nous protéger des créations automatiques de compte, merci d'écrire les deux mots visibles dans le cadre qui suit:",	'recaptcha-createaccount-fail' => "Réponse de reCAPTCHA fausse ou manquante.",	'recaptcha-create' => "Pour nous protéger des créations automatiques de pages, merci d'écrire les deux mots visibles dans le cadre qui suit:", ),

/* Spanish */ 'es' => array(    'recaptcha-edit' => 'Para protegernos de los robots, escribid por favor las dos palabras visibles en el cuadro abajo:',      'recaptcha-addurl' => 'Su aportación contiene enlaces externos. Para protegernos de los robots, escribid por favor las dos palabras visibles en el cuadro abajo:',     'recaptcha-badpass' => 'Para protegernos de los robots que intentan adivinar contraseñas, escribid por favor las dos palabras visibles en el cuadro abajo:',	'recaptcha-createaccount' => 'Para protegernos de la creación automática de cuentas, escribid por favor las dos palabras visibles en el cuadro abajo:',	'recaptcha-createaccount-fail' => "La respuesta al reCAPTCHA esta falsa o faltante.",	'recaptcha-create' => 'Para protegernos de la creación automática de páginas, escribid por favor las dos palabras visibles en el cuadro abajo:', ),

/* Polish */ 'pl' => array(    'recaptcha-edit' => 'Aby uchronić nas przed robotami, proszę wpisać dwa widoczne słowa w poniższym polu:',      'recaptcha-addurl' => 'Twoja edycja zawiera linki zewnętrzne. Aby uchronić nas przed robotami, proszę wpisać dwa widoczne słowa w poniższym polu:',     'recaptcha-badpass' => 'Aby uchronić nas przed złamaniem automatycznym haseł, proszę wpisać dwa widoczne słowa w poniższym polu:',	'recaptcha-createaccount' => 'Aby uchronić nas przed automatycznym stworzeniem użytkowników, proszę wpisać dwa widoczne słowa w poniższym polu:',	'recaptcha-createaccount-fail' => "Odpowiedź na reCAPTCHA jest fałszywa lub brakująca.",	'recaptcha-create' => 'Aby uchronić nas przed tworzeniem stron przez robotów, proszę wpisać dwa widoczne słowa w poniższym polu:', ),

/* German */ 'de' => array(    'recaptcha-edit' => 'Zum Schutz vor automatisiertem Spam gebe bitte die beiden folgenden Wörter in das untenstehende Feld ein:',      'recaptcha-addurl' => 'Deine Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spam gebe bitte die beiden folgenden Wörter in das untenstehende Feld ein:',     'recaptcha-badpass' => 'Zum Schutz gegen automatisiertes Knacken von Passwörtern, gebe bitte die beiden folgenden Wörter in das untenstehende Feld ein:',	'recaptcha-createaccount' => 'Zum Schutz gegen automatisierte Erstellung von Benutzerkonten gebe bitte die beiden folgenden Wörter in das untenstehende Feld ein:',	'recaptcha-createaccount-fail' => "Fehlerhafte oder fehlende reCAPTCHA Antwort.",	'recaptcha-create' => 'Zum Schutz gegen automatisierte Erstellung von Seiten gebe bitte die beiden folgenden Wörter in das untenstehende Feld ein:', ),

/* Brazilian Portuguese */ 'pt_br' => array(       'recaptcha-edit' => 'Para ajudar a prevenir contra vandalismos, por favor digite as duas palavras que voc&ecirc; v&ecirc; na caixa abaixo:',         'recaptcha-addurl' => 'A sua edi&ccedil;&atilde;o inclui liga&ccedil;&otilde;es externas. Para ajudar a prevenir contra vandalismos, por favor digite as duas palavras que voc&ecirc; v&ecirc; na caixa abaixo:',    'recaptcha-badpass' => 'Para ajudar a prevenir contra tentativas de desbloquear senhas, por favor digite as duas palavras que voc&ecirc; v&ecirc; na caixa abaixo:',	'recaptcha-createaccount' => 'Para ajudar a prevenir contra cria&ccedil;&atilde;o automatizada de usu&aacute;rios, por favor digite as duas palavras que voc&ecirc; v&ecirc; na caixa abaixo:',	'recaptcha-createaccount-fail' => "Resposta incorreta ao reCAPTCHA.",	'recaptcha-create' => 'Para ajudar a prevenir contra cria&ccedil;&atilde;o automatizada de p&aacute;ginas, por favor digite as duas palavras que voc&ecirc; v&ecirc; na caixa abaixo:',

),

/* Swedish */ 'sv' => array(    'recaptcha-edit' => 'Den här sidan skyddas mot spam-robotar, bevisa att du är en människa genom att skriva de två orden du ser i boxen nedan:',      'recaptcha-addurl' => 'Din förändring av sidan innehåller nya externa länkar, vilket är typiskt för spam. Bevisa att du är en människa genom att skriva de två orden du ser i boxen nedan:',     'recaptcha-badpass' => 'För att skydda wikin mot robotar som gissar användares lösenord behöver användare bevisa att de är människor. Skriv ner de två orden som du ser i boxen nedan:',	'recaptcha-createaccount' => 'För att skydda wikin mot robotar som skapar konton behöver användare bevisa att de är människor. Var vänlig och skriv ner de två orden du ser i boxen nedan:',	'recaptcha-createaccount-fail' => "Du har angivit ett felaktig svar för reCAPTCHA.",	'recaptcha-create' => 'För att skydda wikin mot robotar som skapar nya artiklar. Var vänlig och skriv ner de två orden som finns i boxen nedan:', ),

/* TODO - more languages */ );

} ?>