[jbossws-commits] JBossWS SVN: r3715 - in projects/wiki: extensions and 1 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Mon Jun 25 14:20:45 EDT 2007


Author: heiko.braun at jboss.com
Date: 2007-06-25 14:20:45 -0400 (Mon, 25 Jun 2007)
New Revision: 3715

Added:
   projects/wiki/extensions/recaptcha/
   projects/wiki/extensions/recaptcha/AUTHORS
   projects/wiki/extensions/recaptcha/ConfirmEdit.i18n.php
   projects/wiki/extensions/recaptcha/ConfirmEdit.php
   projects/wiki/extensions/recaptcha/README
   projects/wiki/extensions/recaptcha/ReCaptcha.i18n.php
   projects/wiki/extensions/recaptcha/ReCaptcha.php
   projects/wiki/extensions/recaptcha/recaptchalib.php
Modified:
   projects/wiki/LocalSettings.php
Log:
Added recaptcha, secure registration

Modified: projects/wiki/LocalSettings.php
===================================================================
--- projects/wiki/LocalSettings.php	2007-06-25 18:07:00 UTC (rev 3714)
+++ projects/wiki/LocalSettings.php	2007-06-25 18:20:45 UTC (rev 3715)
@@ -140,4 +140,11 @@
 include("extensions/Abbr.php");
 include("extensions/Object.php");
 include("extensions/Kbd.php");
+
+# Secure registration
+require_once( "extensions/recaptcha/ReCaptcha.php" );
+// Sign up for these at http://recaptcha.net/api/getkey
+$recaptcha_public_key = '6LeaFQAAAAAAANdJOabOzJZc2XIPMX9GaTUeu6zu';
+$recaptcha_private_key = '6LeaFQAAAAAAADf35ShIh9BuBytm8o_Vs58VaDQr';    
+
 ?>

Added: projects/wiki/extensions/recaptcha/AUTHORS
===================================================================
--- projects/wiki/extensions/recaptcha/AUTHORS	                        (rev 0)
+++ projects/wiki/extensions/recaptcha/AUTHORS	2007-06-25 18:20:45 UTC (rev 3715)
@@ -0,0 +1,6 @@
+Mike Crawford <mike.crawford at gmail.com>
+     Research Programmer, Carnegie Mellon University
+Ben Maurer <http://bmaurer.blogspot.com/>
+     Chief Software Architect, reCAPTCHA
+Brion Vibber <brion at pobox.com>
+     Author of ConfirmEdit, which this extension is built on.

Added: projects/wiki/extensions/recaptcha/ConfirmEdit.i18n.php
===================================================================
--- projects/wiki/extensions/recaptcha/ConfirmEdit.i18n.php	                        (rev 0)
+++ projects/wiki/extensions/recaptcha/ConfirmEdit.i18n.php	2007-06-25 18:20:45 UTC (rev 3715)
@@ -0,0 +1,669 @@
+<?php
+/**
+ * Internationalisation file for ConfirmEdit extension.
+ *
+ * @addtogroup Extensions
+*/
+
+$wgConfirmEditMessages = array();
+
+$wgConfirmEditMessages['en'] = array(
+	'captcha-edit' => 'To edit this article, please solve the simple sum below and enter the answer in 
+the box ([[Special:Captcha/help|more info]]):',
+	'captcha-addurl' => 'Your edit includes new external links. To help protect against automated
+spam, please solve the simple sum below and enter the answer in the box ([[Special:Captcha/help|more info]]):',
+	'captcha-badpass' => 'To help protect against automated password cracking, please solve the simple sum
+below and enter the answer in the box ([[Special:Captcha/help|more info]]):',
+	'captcha-createaccount' => 'To help protect against automated account creation, please solve the simple sum
+	below and enter the answer in the box ([[Special:Captcha/help|more info]]):',
+	'captcha-createaccount-fail' => "Incorrect or missing confirmation code.",
+	'captcha-create' => 'To create the page, please solve the simple sum below and enter 
+the answer in the box ([[Special:Captcha/help|more info]]):',
+	'captchahelp-title'          => 'Captcha help',
+	'captchahelp-cookies-needed' => "You will need to have cookies enabled in your browser for this to work.",
+	'captchahelp-text'           => "Web sites that accept postings from the public, like this wiki, are often abused by spammers who use automated tools to post their links to many sites. While these spam links can be removed, they are a significant nuisance.
+
+Sometimes, especially when adding new web links to a page, the wiki may show you an image of colored or distorted text and ask you to type the words shown. Since this is a task that's hard to automate, it will allow most real humans to make their posts while stopping most spammers and other robotic attackers.
+
+Unfortunately this may inconvenience users with limited vision or using text-based or speech-based browsers. At the moment we do not have an audio alternative available. Please contact the site administrators for assistance if this is unexpectedly preventing you from making legitimate posts.
+
+Hit the 'back' button in your browser to return to the page editor.",
+);
+
+$wgConfirmEditMessages['af'] = array(
+	'captcha-edit'               => "U wysiging bevat nuwe webskakels. Neem kennis dat blote reklame van u werf, produk of besigheid as vandalisme beskou kan word. As beskerming teen outomatiese gemorsbydraes, sal u die woorde wat onder verskyn in die prentjie moet intik: <br />([[Spesiaal:Captcha/help|Wat is hierdie?]])",
+	'captcha-addurl'               => "U wysiging bevat nuwe webskakels. Neem kennis dat blote reklame van u werf, produk of besigheid as vandalisme beskou kan word. As beskerming teen outomatiese gemorsbydraes, sal u die woorde wat onder verskyn in die prentjie moet intik: <br />([[Spesiaal:Captcha/help|Wat is hierdie?]])",
+	'captcha-create'               => "U wysiging bevat nuwe webskakels. Neem kennis dat blote reklame van u werf, produk of besigheid as vandalisme beskou kan word. As beskerming teen outomatiese gemorsbydraes, sal u die woorde wat onder verskyn in die prentjie moet intik: <br />([[Spesiaal:Captcha/help|Wat is hierdie?]])",
+	'captchahelp-title'          => 'Captcha-hulp',
+	'captchahelp-text'           => "Webwerwe wat bydraes van die publiek aanvaar (soos hierdie wiki) word soms lastig geval deur kwaaddoeners met programme wat outomaties klomp skakels plak in die werf. Alhoewel hierdie gemors verwyder kan word, is dit lastig. In party gevalle, veral as u webskakels by 'n blad voeg, sal die wiki dalk 'n beeld met verwronge teks vertoon en vra dat u die woorde daarin intik. Omdat hierdie taak moeilik geoutomatiseer word, laat dit meeste regte mense toe om bydraes te maak terwyl dit meeste kwaaddoeners stop. Hierdie kan ongelukkig lastig wees vir mense met beperkte sig, of diegene wat teks- of spraakgebaseerde blaaiers gebruik. Tans is daar nog nie 'n klankalternatief beskikbaar nie. Kontak asseblief die werfadministrateurs vir hulp as hierdie u onverwags belemmer om legitieme bydraes te maak. Gebruik die \"terug\"-knoppie van u blaaier om na die vorige blad terug te keer.",
+	'captcha-createaccount'      => "As 'n beskerming teen geoutomatiseerde gemors, tik asseblief die woorde wat in die beeld verskyn in om 'n rekening te skep: <br />([[Special:Captcha/help|Wat is hierdie?]])",
+	'captcha-createaccount-fail' => "Verkeerde of geen bevestigingkode.",
+);
+$wgConfirmEditMessages['ar'] = array(
+	'captcha-edit'                => 'يحتوي تعديلك هذا على وصلات خارجية. للحماية من السخام الأوتوماتيكي، قم من فضلك بحل المسألة الرياضية البسيطة أدناه وأدخل الحل في الصندوق ([[Special:Captcha/help|مزيد من المعلومات]]):',
+	'captcha-createaccount'       => 'كحماية ضد العمليات التخريبية، يجب أن تدخل ناتج العملية الحسابية التالية لكي تنشأ حسابا: <br />([[Special:Captcha/help|ما هذا؟]])',
+	'captcha-createaccount-fail'  => 'كود غير مطابق أو لم تقم بإدخاله.',
+	'captcha-create'              => 'من فضلك قم بحل المسألة الرياضية التالية لإنشاء هذه الصفحة وأدخل
+الجواب في الصندوق ([[Special:Captcha/help|ما هذا؟]]):',
+	'captchahelp-title'           => 'مساعدة الكابتشا',
+	'captchahelp-text'            => 'عادة ما يتم في المواقع التي تقبل الردود والرسائل من العامة، كهذا الويكي، تخريب الموقع عن طريق الأشخاص الذين يستعملون آليات معينة لإرسال وصلاتهم لمواقع متعددة بصورة آلية. وعلى الرغم من أن هذا يمكن إزالته ولكنه مزعج للغاية.
+
+في بعض الأحيان، خصوصا عند إضافة وصلات لصفحة، ربما يعرض الويكي صورة ملونة أو مشوشة ويطلب منك إدخال كلمات موجودة بالصورة أو يعرض عليك مسألة رياضية عشوائية ويطلب منك حلها. ولأن هذه المهمة صعبة للغاية لأن يقوم بها برنامج، سيسمح هذا للأشخاص الآدميين بإضافة تحريراتهم بينما ستوقف البرامج التخريبية والهجمات الآلية الأخرى.
+
+للأسف سيكون هذا صعبا بالنسبة لمستخدمي المتصفحات المحدودة أو التي تعتمد على النصوص فقط أو قراءة النصوص. في الوقت الحالي لا يوجد لدينا بديل سمعي. من فضلك راسل مديري الموقع للمساعدة إذا كان هذا الأمر يمنعك من التعديل ووضع وصلات قانونية.
+
+إذا كنت تحرر صفحة معينة: اضغط زر \'العودة\' في متصفحك للعودة إلى التحرير.',
+);
+$wgConfirmEditMessages['br'] = array(
+	'captcha-edit'                => 'Liammoù diavaez nevez zo bet ouzhpennet ganeoc\'h. A-benn en em wareziñ diouzh ar spam emgefre skrivit disoc\'h ar jedadennig eeun-mañ er stern : <br />([[Special:Captcha/help|Petra eo se?]])',
+	'captcha-addurl'                => 'Liammoù diavaez nevez zo bet ouzhpennet ganeoc\'h. A-benn en em wareziñ diouzh ar spam emgefre skrivit disoc\'h ar jedadennig eeun-mañ er stern : <br />([[Special:Captcha/help|Petra eo se?]])',
+	'captcha-create'                => 'Liammoù diavaez nevez zo bet ouzhpennet ganeoc\'h. A-benn en em wareziñ diouzh ar spam emgefre skrivit disoc\'h ar jedadennig eeun-mañ er stern : <br />([[Special:Captcha/help|Petra eo se?]])',
+	'captcha-createaccount'       => 'A-benn hor skoazellañ d\'en em wareziñ diouzh ar c\'hrouiñ kontoù emgefre, skrivit ar gerioù a zeu war wel er stern-mañ evit enrollañ ho kont : <br />([[Special:Captcha/help|Petra eo se?]])',
+	'captcha-createaccount-fail'  => 'Mankout a ra ar c\'hod kadarnaat pe fall eo.',
+	'captchahelp-title'           => 'Skoazell Capcha',
+	'captchahelp-text'            => 'Alies e vez taget al lec\'hiennoù a zegemer kemennadennoù a-berzh an holl, evel ar wiki-mañ, gant ar spamerien a implij ostilhoù emgefre evit postañ o liammoù war lec\'hiennoù a bep seurt. Diverket e c\'hallont bezañ, gwir eo, kazus-mat ez int memes tra. A-wechoù, dreist-holl pa vez ouzhpennet liammoù Web nevez war ur bajenn, e c\'hallo ar wiki-mañ diskouez deoc\'h ur skeudenn warni un tamm testenn liv pe a-dreuz. Goulennet e vo diganeoc\'h skrivañ ar gerioù deuet war wel. Un trevell start da emgefrekaat eo hemañ. Gant se e c\'hallo an implijerien wirion postañ ar pezh a fel ldezho tra ma vo lakaet un harz d\'an darn vrasañ eus ar spamerien pe d\'an dagerien robotek all. Koulskoude e c\'hallo an implijerien berr o gweled pe ar re a implij merdeerioù diazezet war ar skrid pe war ar vouezh bezañ strafuilhet gant se. N\'omp ket evit kinnig un diskoulm dre glevet evit c\'hoazh. Kit e darempred gant merourien al lec\'hienn m\'!
 hoc\'h eus diaesterioù evit kemer perzh abalamour d\'an teknik-se. Pouezit war bouton \'kent\' ho merdeer evit distreiñ d\'ar bajenn gemmañ.',
+);
+$wgConfirmEditMessages['bs'] = array(
+	'captcha-edit'  => 'Vaša izmjena uključuje nove URL poveznice; kao zaštita od automatizovanog vandalizma, moraćete da ukucate riječi koje su prikazane u slici:
+<br />([[{{ns:special}}:Captcha/help|Šta je ovo?]])',
+	'captcha-addurl'  => 'Vaša izmjena uključuje nove URL poveznice; kao zaštita od automatizovanog vandalizma, moraćete da ukucate riječi koje su prikazane u slici:
+<br />([[{{ns:special}}:Captcha/help|Šta je ovo?]])',
+	'captcha-create'  => 'Vaša izmjena uključuje nove URL poveznice; kao zaštita od automatizovanog vandalizma, moraćete da ukucate riječi koje su prikazane u slici:
+<br />([[{{ns:special}}:Captcha/help|Šta je ovo?]])',
+	'captchahelp-text' => 'Vebsajtovi koji podržavaju slanje sadržaja iz javnosti, kao što je ovaj viki, često zloupotrebljavaju vandali koji koriste automatizovane alate da šalju svoje poveznice ka mnogim sajtovima.  Iako se ove neželjene poveznice mogu ukloniti, one ipak zadaju veliku muku.
+
+Ponekad, pogotovo kad se dodaju nove internet poveznice na stranicu, viki softver Vam može pokazati sliku obojenog i izvrnutog teksta i tražiti da ukucate traženu riječ.  Pošto je teško automatizovati ovakav zadatak, on omogućuje svim pravim ljudima da vrše svoje izmjene, ali će zato spriječiti vandale i ostale robotske napadače.
+
+Nažalost, ovo može da bude nepovoljno za korisnike sa ograničenim vidom i za one koji koriste brauzere bazirane na tekstu ili govoru.  U ovom trenutku, audio alternativa nije dostupna.  Molimo Vas da kontaktirate administratore sajta radi pomoći ako Vas ovo neočekivano ometa u pravljenju dobrih izmjena.
+
+Kliknite \'nazad\' (\'back\') dugme vašeg brauzera da se vratite na polje za unos teksta.',
+	'captcha-createaccount' => 'Kao zaštita od automatizovanog vandalizma, moraćete da ukucate riječi koje se nalaze na slici da biste registrovali nalog:
+<br />([[{{ns:special}}:Captcha/help|Šta je ovo?]])',
+	'captcha-createaccount-fail' => 'Netačan unos ili nedostatak šifre za potvrđivanje.',
+);
+$wgConfirmEditMessages['ca'] = array(
+	'captcha-edit'                => 'La vostra edició conté enllaços externs nous. Com a protecció contra la brossa de propaganda automàtica, cal que resolgueu aquesta simple suma i introduïu el resultat en el quadre a continuació ([[Special:Captcha/help|més informació]]):',
+	'captcha-addurl'                => 'La vostra edició conté enllaços externs nous. Com a protecció contra la brossa de propaganda automàtica, cal que resolgueu aquesta simple suma i introduïu el resultat en el quadre a continuació ([[Special:Captcha/help|més informació]]):',
+	'captcha-create'                => 'La vostra edició conté enllaços externs nous. Com a protecció contra la brossa de propaganda automàtica, cal que resolgueu aquesta simple suma i introduïu el resultat en el quadre a continuació ([[Special:Captcha/help|més informació]]):',
+	'captcha-createaccount'       => 'Com a protecció contra la creació automàtica de comptes d\'usuari necessitem que resolgueu aquesta simple suma i introduïu el resultat en el quadre a continuació ([[Special:Captcha/help|més informació]]):',
+	'captcha-createaccount-fail'  => 'Manca el codi de confirmació, o bé és incorrecte.',
+	'captchahelp-title'           => 'Ajuda amb el sistema captcha',
+	'captchahelp-text'            => 'Els webs que accepten la publicació de missatges per part del seu públic, com aquesta wiki, són sovint víctimes de spam per part de robots automàtics que hi posen enllaços cap als seus webs. Aquests enllaços poden anar essent esborrats, però són un important destorb.
+
+Quan creeu nous comptes d\'usuari o voleu afegir enllaços a una pàgina se us pot demanar que respongueu una pregunta fàcil, una suma o que digueu quina paraula apareix en una imatge distorsionada. Aquestes tasques són molt difícils de fer per a un programa automàtic i per tant permet que la majoria d\'usuaris humans puguin introduir la informació que creguin i alhora atura la majoria d\'atacants robots.
+
+Malauradament, aquest sistema pot suposar un inconvenient per a usuaris amb problemes de visió o que utilitzin navegadors de text simple o de veu. Actualment no disposem de cap alternativa auditiva disponible. Contacteu els administradors del web si aquests sistema us impedeix de fer edicions legítimes.
+
+Necessitareu tenir les galetes activades en el vostre navegador per a que funcioni.
+
+Cliqueu el botó de retrocedir del vostre navegador per a tornar al formulari.',
+);
+$wgConfirmEditMessages['cs'] = array(
+	'captcha-edit'               => 'Vaše editace obsahuje nové odkazy formou URL; v zájmu ochrany před automatickým spamováním musíte opsat text z následujícího obrázku:<br />([[Special:Captcha/help|Co tohle znamená?]])',
+	'captcha-addurl'               => 'Vaše editace obsahuje nové odkazy formou URL; v zájmu ochrany před automatickým spamováním musíte opsat text z následujícího obrázku:<br />([[Special:Captcha/help|Co tohle znamená?]])',
+	'captcha-create'               => 'Vaše editace obsahuje nové odkazy formou URL; v zájmu ochrany před automatickým spamováním musíte opsat text z následujícího obrázku:<br />([[Special:Captcha/help|Co tohle znamená?]])',
+	'captchahelp-title'          => 'Nápověda ke captcha',
+	'captchahelp-text'           => "Webové stránky, do kterých mohou přispívat jejich návštěvníci (jako například tato wiki), jsou často terčem spammerů, kteří pomocí automatických nástrojů vkládají své odkazy na velké množství stránek. Přestože lze tento spam odstranit, představuje nepříjemné obtěžování.
+
+Někdy, zvláště při přidávání nových webových odkazů, vám může wiki ukázat obrázek barevného či pokrouceného textu a požádat vás o opsání zobrazených znaků. Jelikož takovou úlohu lze jen těžko automatizovat, skuteční lidé mohou dále přispívat, zatímco většina spammerů a jiných robotických útočníků to zastaví.
+
+Bohužel to však může představovat nepříjemný problém pro uživatele se zrakovým postižením či uživatele používající textové prohlížeče či hlasové čtečky. V současné době nemáme alternativní zvukovou verzi. Kontaktujte laskavě správce serveru, pokud vám to brání v užitečných příspěvcích a potřebujete pomoc.
+
+Pro návrat na předchozí stránku stiskněte ve svém prohlížeči tlačítko „zpět“.",
+	'captcha-createaccount'      => 'V rámci ochrany před automatickým spamováním musíte pro provedení registrace opsat text z následujícího obrázku:<br />([[Special:Captcha/help|Co tohle znamená?]])',
+	'captcha-createaccount-fail' => 'Chybějící či neplatný potvrzovací kód.',
+);
+$wgConfirmEditMessages['cy'] = array(
+	'captcha-edit'               => "Mae eich golygiad yn cynnwys cysylltiadau URL newydd. Er mwyn profi nad ydych yn beiriant sbam, teipiwch y geiriau canlynol yn y blwch isod os gwelwch yn dda. <br />([[Arbennig:Captcha/help|Mwy o wybodaeth]])",
+	'captcha-addurl'               => "Mae eich golygiad yn cynnwys cysylltiadau URL newydd. Er mwyn profi nad ydych yn beiriant sbam, teipiwch y geiriau canlynol yn y blwch isod os gwelwch yn dda. <br />([[Arbennig:Captcha/help|Mwy o wybodaeth]])",
+	'captcha-create'               => "Mae eich golygiad yn cynnwys cysylltiadau URL newydd. Er mwyn profi nad ydych yn beiriant sbam, teipiwch y geiriau canlynol yn y blwch isod os gwelwch yn dda. <br />([[Arbennig:Captcha/help|Mwy o wybodaeth]])",
+	'captchahelp-title'          => 'Cymorth "captcha"',
+	'captchahelp-text'           => "Yn anffodus, mae safleoedd gwe fel Wicipedia, sy'n caniatau i'r cyhoedd ysgrifennu iddi, yn darged beunyddiol i sbamwyr sy'n defnyddio rhaglenni arbennig i bostio eu cysylltiadau. Gellir dileu'r dolenni o'r dudalen, ond mae hyn yn drafferth mawr. O dro i dro, fe fydd y safle hon yn dangos delwedd o destun, ac fe fydd yn rhaid i chi deipio'r geiriau a ddangosir. Mae hyn yn dasg anodd iawn i ragenni cyfrifiadurol, felly dylai golygwyr go iawn gyflawni'r dasg yn di-drafferth, yn wahanol i'r rhaglenni sbam. Mae hyn yn amlwg yn creu trafferthion i'r sawl sydd yn defnyddio porwyr testun neu sydd yn colli eu golwg. Ar hyn o bryd nid oes fersiwn sain ar gael. Cysylltwch â gweinyddwyr y safle os ydi'r nodwedd hon yn eich rhwystro rhag ychwanegu golygiadau dilys. Gwasgwch botwm 'nôl' eich porwr er mwyn dychwelyd.",
+	'captcha-createaccount'      => "Teipiwch y geiriau sy'n ymddangos yn y ddelwedd isod os gwelwch yn dda. Mae'r nodwedd hon yn rhwystro rhaglenni sbam rhag creu cyfrifon i'w hunain. <br />([[Arbennig:Captcha/help|Mwy o wybodaeth]])",
+	'captcha-createaccount-fail' => "Côd cadarnhau ar goll neu'n anghywir.",
+);
+$wgConfirmEditMessages['de'] = array(
+	'captcha-edit'		     => "Zur Bearbeitung der Seite ist es nötig, dass Sie die nachfolgende Rechenaufgabe lösen und das Ergebnis eintragen [[{{ns:special}}:Captcha/help|(Fragen oder Probleme?)]].",
+	'captcha-addurl'	     => "Ihre Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spamming ist es nötig, dass Sie die nachfolgende Rechenaufgabe lösen und das Ergebnis eintragen. Klicken Sie dann erneut auf „Seite speichern“ [[{{ns:special}}:Captcha/help|(Fragen oder Probleme?)]].",
+	'captcha-badpass'            => 'Zum Schutz vor einer Kompromittierung Ihres Benutzerkontos Sie die Summe der nachfolgende Zahlen in das darunter erscheinende Feld ein [[{{ns:special}}:Captcha/help|(Fragen oder Probleme?)]]:',
+	'captcha-createaccount'      => "Zum Schutz vor automatisierter Anlage von Benutzerkonten müssen Sie einmalig die nebenstehende Rechenaufgabe lösen [[{{ns:special}}:Captcha/help|(Fragen oder Probleme?)]].",
+	'captcha-createaccount-fail' => "Falscher oder fehlender Bestätigungscode.",
+	'captcha-create'	     => "Zur Erstellung der Seite ist es nötig, dass Sie die nachfolgende Rechenaufgabe lösen und das Ergebnis eintragen [[{{ns:special}}:Captcha/help|(Fragen oder Probleme?)]].",
+	'captchahelp-title'          => 'Captcha-Hilfe',
+	'captchahelp-cookies-needed' => "'''Wichtiger Hinweis:''' Es müssen Cookies im Browser erlaubt sein.",
+	'captchahelp-text'           => "Internetangebote, die für Beiträge von praktisch jedem offen sind — so wie das {{SITENAME}}-Wiki — werden oft von Spammern missbraucht, die ihre Links automatisch auf vielen Webseiten platzieren. Diese Spam-Links können wieder entfernt werden, sie sind aber ein erhebliches Ärgernis. In manchen Fällen, insbesondere beim Hinzufügen von neuen Weblinks zu einer Seite, kann es vorkommen, dass dieses Wiki ein Bild mit einem farbigen und verzerrten Text anzeigt und dazu auffordert, die angezeigten Wörter einzutippen. Da eine solche Aufgabe nur schwer automatisch erledigt werden kann, werden dadurch die meisten Spammer, die mit automatischen Werkzeugen arbeiten, gestoppt, wogegen menschliche Benutzer ihren Beitrag absenden können. Leider kann dies zu Schwierigkeiten für Personen führen, die über eine eingeschränkte Sehfähigkeit verfügen oder text- oder sprachbasierte Browser verwenden. Eine Lösung ist die reguläre Anmeldung als !
 Benutzer. Der „Zurück“-Knopf des Browsers führt zurück in das Bearbeitungsfenster.",
+);
+
+$wgConfirmEditMessages['es'] = array(
+	'captcha-edit'		         => "La edición incluye nuevos enlaces. Como protección contra spam automatizado, es necesario que resuelva la suma e indique la solución en la casilla ([[Special:Captcha/help|más info]]):",
+	'captchahelp-title'          => 'Información sobre el captcha',
+	'captchahelp-cookies-needed' => "Debe tener las cookies activadas en el navegador para que el sistema funcione.",
+	'captchahelp-text'           => "Los webs que aceptan mensajes del público, como esta wiki, son abusados a menudo por spammers que utilizan programas para incluir automáticamente sus enlaces. Si bien estos enlaces pueden retirarse, son una gran molestia.\n\nEn ocasiones, especialmente cuando añada nuevos enlaces a una página, la wiki le mostrará una imagen de texto coloreado o distorsionado y le pedirá que escriba las palabras que muestra. Dado que esta es una tarea difícil de automatizar, permite a la mayoría de las personas enviar sus textos, a la vez que detiene spammers y otros atacantes automáticos.\n\nDesgraciadamente, esto puede ser un inconveniente para usuarios con visibilidad limitada o que usen navegadores de texto / de voz. No tenemos por el momento una alternativa sonora disponible. Por favor, solicite asistencia de los administradores si esto le impide realizar ediciones legítimas. Presione el botón atrás de su navegador para volver a la edición.!
 ",
+	'captcha-createaccount'      => "Como protección contra creaciones automatizadas de cuentas, es necesario que resuelva la suma y de la solución en la casilla ([[Special:Captcha/help|más info]]):",
+	'captcha-createaccount-fail' => "C&oacute;digo de confirmación incorrecto.",
+);
+
+$wgConfirmEditMessages['et'] = array(
+	'captcha-edit'               => "Teie muudatuses on uusi linke; kaitseks spämmi vastu peate sisestama järgneval pildil olevad sõnad:<br /> ([[Special:Captcha/help|Mis see on?]])",
+	'captcha-addurl'               => "Teie muudatuses on uusi linke; kaitseks spämmi vastu peate sisestama järgneval pildil olevad sõnad:<br /> ([[Special:Captcha/help|Mis see on?]])",
+	'captcha-create'               => "Teie muudatuses on uusi linke; kaitseks spämmi vastu peate sisestama järgneval pildil olevad sõnad:<br /> ([[Special:Captcha/help|Mis see on?]])",
+	'captchahelp-title'          => 'Mis on Captcha?',
+	'captchahelp-text'           => "Internetisaite, mis lubavad külastajatel sisu muuta (nagu ka see Viki), kasutavad sageli spämmerid ära, postitades reklaamlinke - spämmi. Kuigi neid linke saab alati ära võtta, on nad ikkagi üpris tülikad. Omale kasutajakontot registreerides või mõnele lehele uusi internetiaadresse postitades näidatakse teile moonutatud tekstiga pilti ning palutakse teil sisestada seal näidatud sõnad. Kuna selliselt pildilt on arvutil raske teksti välja lugeda, on see efektiivseks kaitseks spämmirobotite vastu, samas lubades tavainimestel oma muudatusi rahus teha. Kahjuks võib see tekitada ebamugavusi nägemisraskustega inimestele või neile, kes kasutavad kõnesüntesaatorit või tekstipõhist brauserit. Hetkel pole meil helipõhist alternatiivi. Kui teil tekib ootamatult raskusi oma muudatuste tegemisel, siis kirjutage sellest [[Vikipeedia:Üldine arutelu|üldise arutelu]] lehele. Konto registreerimise lehele või lehe redigeerimisele taga!
 si jõudmiseks vajutage oma brauseri tagasi-nuppu.",
+	'captcha-createaccount'      => "Kaitsena spämmi vastu peate konto registreerimiseks lahtrisse kirjutama järgneva tehte tulemuse.<br /> ([[Special:Captcha/help|Mis see on?]])",
+	'captcha-createaccount-fail' => "Puuduv või valesti sisestatud kinnituskood.",
+);
+$wgConfirmEditMessages['eu'] = array(
+	'captcha-edit'               => "Zure aldaketan URL lotura berriak daude; spam-a saihesteko, jarraian dagoen irudiko hitzak idaztea beharrezkoa da:<br /> ([[Special:Captcha/help|Zer da hau?]])",
+	'captcha-addurl'               => "Zure aldaketan URL lotura berriak daude; spam-a saihesteko, jarraian dagoen irudiko hitzak idaztea beharrezkoa da:<br /> ([[Special:Captcha/help|Zer da hau?]])",
+	'captcha-create'               => "Zure aldaketan URL lotura berriak daude; spam-a saihesteko, jarraian dagoen irudiko hitzak idaztea beharrezkoa da:<br /> ([[Special:Captcha/help|Zer da hau?]])",
+	'captchahelp-title'          => 'Captcha laguntza',
+	'captchahelp-text'           => "Publikoki aldaketak egiteko aukerak dituzten webguneetan, wiki honetan bezalaxe, spam testuak gehitzen dira sarritan tresna automatikoak erabiliz. Lotura horiek ezabatu egin daitezkeen arren, traba dira. Batzutan, eta bereziki webgune berri bateko loturak gehitzen dituzunean, hitz batzuk dituen irudi bat agertuko zaizu, eta bertan ageri den testua idazteko eskatuko zaizu. Lan hori automatizatzeko zaila da, eta pertsonei ezer kostatzen ez zaigunez, spam testuak saihesteko lagungarria da. Zoritxarrez, ikusmen mugatua edo testu bidezko nabigatzaileak erabiltzen dituzten erabiltzeek arazoak izan ditzakete. Horrelako zerbait gertatzen bazaizu, mesedez, jarri administratzaileekin harremanetan. Zure nabigatzaileko 'atzera' lotura erabili aldaketen orrialdera itzultzeko.",
+	'captcha-createaccount'      => "Spam-a saihesteko, mesedez, irudian agertzen den hizki edo zenbaki kodea, beheko laukian idatzi zure kontua sortzeko:<br /> ([[Special:Captcha/help|Zer da hau?]])",
+	'captcha-createaccount-fail' => "Baieztatze kode ezegokia.",
+);
+
+$wgConfirmEditMessages['fi'] = array(
+	'captcha-edit'               => 'Muokkauksesi sisältää uusia linkkejä muille sivuille. Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):',
+	'captcha-addurl'               => 'Muokkauksesi sisältää uusia linkkejä muille sivuille. Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):',
+	'captcha-create'               => 'Muokkauksesi sisältää uusia linkkejä muille sivuille. Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):',
+	'captcha-createaccount'      => 'Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):',
+	'captcha-createaccount-fail' => 'Väärä tai puuttuva varmistuskoodi.',
+	'captchahelp-title'          => 'Captcha-ohje',
+	'captchahelp-text'           => "Verkkosivut, jotka sallivat ulkopuolisten lisätä sisältöä, joutuvat usein spam-hyökkäysten kohteeksi. Spam-hyökkäyksessä spammerit käyttävät työkaluja, jotka automaattisesti lisäävät linkkejä monille sivuille. Vaikka nämä linkit voidaan poistaa, aiheutuu niistä silti merkittävä haitta.
+
+Joskus, erityisesti kun lisäät uusia linkkejä, saatat nähdä kuvan, jossa on värillistä ja vääristynyttä tekstiä, ja sinua pyydetään kirjoittamaan sen sisältämät sanat. Koska tätä tehtävää on vaikea automatisoida, se sallii melkein kaikkien oikeiden ihmisten tehdä muutoksensa, mutta estää automaattiset lisäykset.
+
+Valitettavasti tämä saattaa estää käyttäjiä, joilla on rajoittunut näkökyky tai käyttäjiä, jotka käyttävät teksti- tai puhepohjaisia selaimia. Ota yhteyttä sivuston ylläpitäjään, jos et pysty tekemään kunnollisia muutoksia.
+
+Varmistus ei toimi, jos evästeet eivät ole käytössä.
+
+Voit palata muokkaustilaan selaimen paluutoiminnolla.",
+);
+$wgConfirmEditMessages['fr'] = array(
+	'captcha-edit' => 'Votre édition inclut de nouveaux liens externes. Comme protection contre le spam automatique,
+	veuillez entrer le résultat de l’addition ci-dessous dans la boîte ([[Special:Captcha/help|plus d’informations]]) :',
+	'captcha-addurl' => 'Votre édition inclut de nouveaux liens externes. Comme protection contre le spam automatique,
+	veuillez entrer le résultat de l’addition ci-dessous dans la boîte ([[Special:Captcha/help|plus d’informations]]) :',
+	'captcha-create' => 'Votre édition inclut de nouveaux liens externes. Comme protection contre le spam automatique,
+	veuillez entrer le résultat de l’addition ci-dessous dans la boîte ([[Special:Captcha/help|plus d’informations]]) :',
+	'captcha-createaccount' => 'Comme protection contre les créations de compte abusives, veuillez entrer le résultat de
+	l’addition dans la boîte ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
+	'captcha-createaccount-fail' => "Code de confirmation erroné ou manquant.",
+	'captchahelp-title'          => 'Aide sur les captcha',
+	'captchahelp-cookies-needed' => "Vous devez avoir les cookies activés dans votre navigateur pour que cela fonctionne.",
+	'captchahelp-text'           => "Les site Web acceptant des contributions du public, comme ce wiki, sont souvent utilisés par des spammeurs qui utilisent des outils automatiques pour placer de nombreux liens vers leurs sites. Même si ces liens de « spam » peuvent être enlevés, ils représentent une nuisance.
+
+Parfois, en particulier lors de l’ajout de nouveaux liens externes à une page, le wiki peut vous montrer une image représentant un texte coloré ou tordu et vous demander de taper les mots montrés. Cette tâche est difficile à automatiser, et permet aux humains de faire leurs contributions tout en stoppant la plupart des spammeurs.
+
+Malheureusement, cette solution peut gêner les utilisateurs malvoyants ou utilisant un navigateur en texte seul. Nous ne disposons pas d’alternative audio pour l'instant. Veuillez contacter un administrateur du site si vous n’arrivez pas à faire vos contributions.
+
+Cliquez sur le bouton « Précédent » de votre navigateur pour revenir à la page d’édition.",
+);
+$wgConfirmEditMessages['ga'] = array(
+	'captcha-edit'               => "Tá naisc URL nua san athrú seo atá tú ar tí a dhéanamh; mar chosaint in éadan turscair uathoibrithe, caithfidh tú na focail san íomhá seo a ionchur: <br />([[Speisialta:Captcha/help|Céard é seo?]])",
+	'captcha-addurl'               => "Tá naisc URL nua san athrú seo atá tú ar tí a dhéanamh; mar chosaint in éadan turscair uathoibrithe, caithfidh tú na focail san íomhá seo a ionchur: <br />([[Speisialta:Captcha/help|Céard é seo?]])",
+	'captcha-create'               => "Tá naisc URL nua san athrú seo atá tú ar tí a dhéanamh; mar chosaint in éadan turscair uathoibrithe, caithfidh tú na focail san íomhá seo a ionchur: <br />([[Speisialta:Captcha/help|Céard é seo?]])",
+	'captchahelp-title'          => 'Captcha help',
+	'captchahelp-text'           => "Web sites that accept postings from the public, like this wiki, are often abused by spammers who use automated tools to post their links to many sites. While these spam links can be removed, they are a significant nuisance.
+
+Sometimes, especially when adding new web links to a page, the wiki may show you an image of colored or distorted text and ask you to type the words shown. Since this is a task that's hard to automate, it will allow most real humans to make their posts while stopping most spammers and other robotic attackers.
+
+Unfortunately this may inconvenience users with limited vision or using text-based or speech-based browsers. At the moment we do not have an audio alternative available. Please contact the site administrators for assistance if this is unexpectedly preventing you from making legitimate posts.
+
+Hit the 'back' button in your browser to return to the page editor.",
+	'captcha-createaccount'      => "Mar chosaint in éadan turscair uathoibrithe, caithfidh tú na focail san íomhá seo a ionchur chun cuntas a chlárú: <br />([[Speisialta:Captcha/help|Céard é seo?]])",
+	'captcha-createaccount-fail' => "Ní raibh an cód deimhnithe ceart sa bhosca, nó ní raibh aon chód ann ar chor ar bith.",
+);
+$wgConfirmEditMessages['gl'] = array(
+	'captcha-edit'               => "A súa edición inclúe novos enderezos URL; como protección contra as ferramentas de publicación automática de enlaces publicitarios necesita teclear as palabras que aparecen nesta imaxe:<br /> ([[Special:Captcha/help|Qué é isto?]])",
+	'captcha-addurl'               => "A súa edición inclúe novos enderezos URL; como protección contra as ferramentas de publicación automática de enlaces publicitarios necesita teclear as palabras que aparecen nesta imaxe:<br /> ([[Special:Captcha/help|Qué é isto?]])",
+	'captcha-create'               => "A súa edición inclúe novos enderezos URL; como protección contra as ferramentas de publicación automática de enlaces publicitarios necesita teclear as palabras que aparecen nesta imaxe:<br /> ([[Special:Captcha/help|Qué é isto?]])",
+	'captchahelp-title'          => 'Captcha axuda',
+	'captchahelp-text'           => "'''CAPTCHA''' (acrónimo de \"'''C'''ompletely '''A'''utomated '''P'''ublic '''T'''uring test to tell '''C'''omputers and '''H'''umans '''A'''part\") é un test de autentificación do tipo desafío-resposta usado nos contornos informáticos para distinguir usuarios humanos de máquinas. Os sitios web que aceptan publicar as contribucións dos usuarios coma este wiki sofren, con frecuencia, o abuso por parte de ''spammers'' que usan ferramentas que automatizan a inclusión de lixo en forma de enlaces publicitarios nunha chea páxinas en pouco tempo. Mentres ditas ligazóns non son eliminadas supoñen unha molestia e unha perda de tempo. En ocasións, en particular cando engada algún novo vínculo externo, o wiki pode mostrar unha imaxe dun texto coloreado e distorsionado e pedíralle que teclee as palabras mostradas. Como esta tarefa é difícil de automatizar permite distinguir entre persoas e robots, e dificulta os ataques automatizados d!
 os ''spammers''. Por desgraza pode causar problemas a aqueles usuarios con dificultades de visión, ou os que utilicen navegadores de texto ou navegadores baseados en sistemas de voz. Polo de agora non dispoñemos dunha alternativa de audio. Por favor contacte cun [[Special:Listusers/sysop|administrador]] do wiki para solicitar axuda se o sistema lle impide rexistrase para facer contribucións lexítimas. Prema no botón 'atrás' ou equivalente do seu navegador para volver á páxina na que estaba.",
+	'captcha-createaccount'      => "Como protección fronte a sistemas de creación automática de contas de usuario usados polos ''spamers'', ten que teclear as palabras que aparecen na imaxe para rexistrar unha conta:<br /> ([[Special:Captcha/help|Qué é isto?]])",
+	'captcha-createaccount-fail' => "Falta o código de confirmación ou é incorrecto.",
+);
+$wgConfirmEditMessages['he'] = array(
+	'captcha-edit'               => 'כדי לערוך את הדף, אנא פיתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[{{ns:special}}:Captcha/help|מידע נוסף]]):',
+	'captcha-addurl'             => 'עריכתכם כוללת קישורים חיצוניים חדשים. כהגנה מפני ספאם אוטומטי, אנא פיתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[{{ns:special}}:Captcha/help|מידע נוסף]]):',
+	'captcha-badpass'            => 'כהגנה מפני פריצת סיסמאות אוטומטית, אנא פיתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[{{ns:special}}:Captcha/help|מידע נוסף]]):',
+	'captcha-createaccount'      => 'כהגנה מפני יצירת חשבונות אוטומטית, אנא פיתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[{{ns:special}}:Captcha/help|מידע נוסף]]):',
+	'captcha-createaccount-fail' => 'לא הקלדתם קוד אישור, או שהוא שגוי.',
+	'captcha-create'             => 'כדי ליצור את הדף, אנא פיתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[{{ns:special}}:Captcha/help|מידע נוסף]]):',
+	'captchahelp-cookies-needed' => "עליכם להפעיל את תכונת העוגיות (Cookies) בדפדפן שלכם כדי שזה יעבוד.",
+	'captchahelp-title'          => 'עזרה במערכת הגנת הספאם',
+	'captchahelp-text'           => "פעמים רבות מנצלים ספאמרים אתרים שמקבלים תוכן מהציבור, כמו הוויקי הזה, כדי לפרסם את הקישורים שלהם לאתרים רבים באינטרנט, באמצעות כלים אוטומטיים. אמנם ניתן להסיר את קישורי הספאם הללו, אך זהו מטרד משמעותי.
+
+לעיתים, בעיקר כשאתם מכניסים קישורי אינטרנט חדשים לתוך עמוד, הוויקי עשוי להראות תמונה של טקסט צבעוני או מעוקם ויבקש מכם להקליד את המילים המוצגות. כיוון שזו משימה שקשה לבצעה בצורה אוטומטית, הדבר יאפשר לבני־אדם אמיתיים לשלוח את הדפים, אך יעצור את רוב הספאמרים והמתקיפים הרובוטיים.
+
+לרוע המזל, הדבר עשוי לגרום לאי נוחות למשתמשים עם דפדפן בגרסה מוגבלת, או שמשתמשים בדפדפנים מבוססי טקסט או דיבור. כרגע, אין לנו חלופה קולית זמינה. אנא צרו קשר עם מנהלי האתר לעזרה אם המערכת מונעת מכם באופן בלתי צפוי לבצע עריכות לגיטימיות.
+
+אנא לחצו על הכפתור 'Back' בדפדפן שלכם כדי לחזור לדף העריכה.",
+);
+$wgConfirmEditMessages['hr'] = array(
+	'captcha-edit'               => "Vaše uređivanje sadrži nove vanjske poveznice. Kao zaštitu od automatskog spama, trebate unijeti slova koja vidite na slici: <br />([[Posebno:Captcha/help|Pomoć?]])",
+	'captcha-addurl'               => "Vaše uređivanje sadrži nove vanjske poveznice. Kao zaštitu od automatskog spama, trebate unijeti slova koja vidite na slici: <br />([[Posebno:Captcha/help|Pomoć?]])",
+	'captcha-create'               => "Vaše uređivanje sadrži nove vanjske poveznice. Kao zaštitu od automatskog spama, trebate unijeti slova koja vidite na slici: <br />([[Posebno:Captcha/help|Pomoć?]])",
+	'captchahelp-title'          => 'Antispam pomoć',
+	'captchahelp-text'           => "Web poslužitelje koji rade na temelju javnih doprinosa, poput wiki, često zloupotrebljavaju spameri. Oni koriste automatske alate pomoću kojih generiraju poveznice od vlastitog interesa. Iako se te poveznice najčešće uklanjaju, mogu predstavljati neugodnost pri radu. Ponekad se dogodi da wiki prikaže sliku čudnog tekstualnog sadržaja uz koju morate unijeti prikazana slova. Budući da je takvu radnju teško automatizirati, većina se napadača obeshrabri, a pravi suradnici bez većih smetnji nastavljaju pridonositi. Ukoliko ste suradnik koji koristi tekstualni klijent te vas česte ovakve provjere ometaju pri dodavanju važećih sadržaja, molimo da se obratite [[Special:Listusers/sysop|administratorima]].",
+	'captcha-createaccount'      => "Kao zaštitu od automatskog spama, pri otvaranju računa trebate unijeti slova koja vidite na slici: <br />([[Posebno:Captcha/help|Pomoć]])",
+	'captcha-createaccount-fail' => "Potvrdni kod je nepotpun ili netočan.",
+);
+$wgConfirmEditMessages['hsb'] = array(
+	'captcha-edit'                => 'W twojej změnje su nowe eksterne wotkazy. Jako škitna naprawa přećiwo spamej dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować. Klikń potom znowa na „Składować”.<br /> [[{{ns:special}}:Captcha/help|(Čehodla?)]]',
+	'captcha-addurl'                => 'W twojej změnje su nowe eksterne wotkazy. Jako škitna naprawa přećiwo spamej dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować. Klikń potom znowa na „Składować”.<br /> [[{{ns:special}}:Captcha/help|(Čehodla?)]]',
+	'captcha-create'                => 'W twojej změnje su nowe eksterne wotkazy. Jako škitna naprawa přećiwo spamej dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować. Klikń potom znowa na „Składować”.<br /> [[{{ns:special}}:Captcha/help|(Čehodla?)]]',
+	'captcha-createaccount'       => 'Jako škitna naprawa přećiwo awtomatiskemu wutworjenju wužiwarskich kontow dyrbiš slědowacy nadawk wuličeć. [[{{ns:special}}:Captcha/help|(Prašenja abo problemy?)]]',
+	'captcha-createaccount-fail'  => 'Wopačny abo pobrachowacy wuslědk.',
+	'captchahelp-title'           => 'Pomoc z captcha',
+	'captchahelp-text'            => 'Sydła kaž {{SITENAME}}, kotrež móža so swobodnje wot kóždeho wobdźěłować su často z woporom spamarjow, kotřiž swoje wotkazy awtomatisce we wjele sydłach broja. Tute spam-wotkazy móža so zaso wotstronjeć, wubudźa pak njesnadne mjerzanje. W někotrych padach, wosebje při přidawanju nowych eksternych wotkazow, móže so stać, zo pokazuje tutón wiki wobraz z pisanym abo skomolenym tekstom abo kaza jednory ličenski nadawk wuličeć, kotrehož wuslědk dyrbi so potom do zapodawanskeho kašćika zapisować. Dokelž hodźi so tajki nadawk jenož ćežko z awtomatiskimi srědkami spamarjow spjelnić, móža so tajcy wotdźeržować, druzy wužiwarjo pak móža swoje změny składować. Bohužel móže to k wobćežnosćam za tutych wužiwarjow dowjesć, kotrychž kmanosć widźenja je wobmjezowana abo kotřiž dźěłaja z wobhladowakami kiž su na tekstowe abo rěčne wudawanje wusměrjene. Móžne rozrisanje tutoho problem!
 a je přizjewjenje jako wužiwar. Tłóčatko „Wróćo” swojeho wobhladowaka dowjedźe tebje zaso do wobdźěłowanskeho pola.',
+);
+$wgConfirmEditMessages['id'] = array(
+	'captcha-edit'               => "Suntingan Anda menyertakan pralana luar baru. Sebagai perlindungan terhadap ''spam'' otomatis, Anda harus mengetikkan kata atau hasil perhitungan yang tertera berikut ini:<br />
+([[Special:Captcha/help|Apa ini?]])",
+	'captcha-addurl'               => "Suntingan Anda menyertakan pralana luar baru. Sebagai perlindungan terhadap ''spam'' otomatis, Anda harus mengetikkan kata atau hasil perhitungan yang tertera berikut ini:<br />
+([[Special:Captcha/help|Apa ini?]])",
+	'captcha-create'               => "Suntingan Anda menyertakan pralana luar baru. Sebagai perlindungan terhadap ''spam'' otomatis, Anda harus mengetikkan kata atau hasil perhitungan yang tertera berikut ini:<br />
+([[Special:Captcha/help|Apa ini?]])",
+	'captchahelp-title'          => 'Mengenai Captcha',
+	'captchahelp-cookies-needed' => "Anda perlu mengaktifkan cookie pada penjelajah web Anda untuk menggunakan fitur ini.",
+	'captchahelp-text'           => "Situs-situs web yang menerima masukan data dari publik, seperti {{ns:project}} ini, kerapkali disalahgunakan oleh pengguna-pengguna yang tidak bertanggungjawab untuk mengirimkan spam dengan menggunakan program-program otomatis. Walaupun spam-spam tersebut dapat dibuang, tetapi tetap saja menimbulkan gangguan berarti.
+
+Ketika menambahkan pranala web baru ke suatu halaman, {{ns:project}} akan menampilkan sebuah gambar tulisan yang terdistorsi atau suatu perhitungan sederhana dan meminta Anda untuk mengetikkan kata atau hasil dimaksud. Karena ini merupakan suatu pekerjaan yang sulit diotomatisasi, pembatasan ini akan mengizinkan hampir semua manusia untuk melakukannya, tapi di sisi lain akan menghentikan kebanyakan aksi spam dan penyerangan yang dilakukan oleh bot otomatis.
+
+Sayangnya, hal ini dapat menimbulkan kesulitan bagi pengguna dengan keterbatasan penglihatan atau pengguna yang menggunakan penjelajah basis teks atau suara. Saat ini, kami tidak memiliki suatu alternatif suara untuk hal ini. Silakan minta bantuan dari pengurus situs jika hal ini menghambat Anda untuk mengirimkan suntingan yang layak.
+
+Tekan tombol 'back' di penjelajah web Anda untuk kembali ke halaman penyuntingan.",
+	'captcha-createaccount'      => "Sebagai perlindungan melawan spam, Anda diharuskan untuk mengetikkan kata atau hasil perhitungan di bawah ini di kotak yang tersedia untuk dapat mendaftarkan pengguna baru:<br />
+([[Special:Captcha/help|Apa ini?]])",
+	'captcha-createaccount-fail' => "Kode konfirmasi salah atau belum diisi.",
+);
+$wgConfirmEditMessages['is'] = array(
+	'captcha-edit'               => "Breyting þín fól í sér nýja tengla á aðrar vefsíður. Til þess að verjast sjálfvirku auglýsingarusli verðum við að biðja þig um að skrifa inn orðin sem sjást á þessari mynd: <br />([[Special:Captcha/help|Hvað er þetta?]])",
+	'captcha-addurl'               => "Breyting þín fól í sér nýja tengla á aðrar vefsíður. Til þess að verjast sjálfvirku auglýsingarusli verðum við að biðja þig um að skrifa inn orðin sem sjást á þessari mynd: <br />([[Special:Captcha/help|Hvað er þetta?]])",
+	'captcha-create'               => "Breyting þín fól í sér nýja tengla á aðrar vefsíður. Til þess að verjast sjálfvirku auglýsingarusli verðum við að biðja þig um að skrifa inn orðin sem sjást á þessari mynd: <br />([[Special:Captcha/help|Hvað er þetta?]])",
+	'captchahelp-title'          => 'Captcha-hjálp',
+	'captchahelp-text'           => "Vefsíður sem að leyfa framlög frá frá almenningi, líkt og þessi wiki-vefur, eru oft misnotaðar af svokölluðum „spömmurum“ sem nota sjálfvirk tól til þess að setja inn tengla á aðrar vefsíður. Aðrir notendur geta fjarlægt þessa tengla en töluverð truflun er af þeim.
+
+Stundum þegar þú breytir síðum, sérstaklega ef breytingin felur í sér nýja tengla á aðra vefi, getur gerst að þú sért beðin(n) um að skrifa inn orð sem birtast á lituðum eða óskýrum myndum. Fyrir flesta notendur af holdi og blóði er þetta lítið mál en sjálfvirk tól ráða ekki við þetta.
+
+Því miður kann þetta að valda notendum óþægindum sem hafa skerta sjón eða notast við talmálsvafra. Enn sem komið er eru ekki til aðrir valkostir fyrir þau tilvik. Ef þetta kemur í veg fyrir lögmætar breytingar af þinni hálfu getur þú leitað aðstoðar hjá stjórnendum vefsins.
+
+Notaðu „back“-hnapp vafrans til að halda áfram.",
+	'captcha-createaccount'      => "Til þess að verjast sjálfvirku auglýsingarusli verðum við að biðja þig um að skrifa inn orðin sem sjást á þessari mynd áður en þú skráir notandanafn: <br />([[Special:Captcha/help|Hvað er þetta?]])",
+	'captcha-createaccount-fail' => "Staðfestingarkóðinn var rangur eða ekki til staðar.",
+);
+$wgConfirmEditMessages['it'] = array(
+	'captcha-edit'               => "La modifica richiesta aggiunge dei nuovi collegamenti (URL) alla pagina; come misura precauzionale contro l'inserimento automatico di spam, per confermarla è necessario inserire le parole che appaiono nell'immagine:<br />
+([[Special:Captcha/help|Cosa vuol dire?]])",
+	'captcha-addurl'               => "La modifica richiesta aggiunge dei nuovi collegamenti (URL) alla pagina; come misura precauzionale contro l'inserimento automatico di spam, per confermarla è necessario inserire le parole che appaiono nell'immagine:<br />
+([[Special:Captcha/help|Cosa vuol dire?]])",
+	'captcha-create'               => "La modifica richiesta aggiunge dei nuovi collegamenti (URL) alla pagina; come misura precauzionale contro l'inserimento automatico di spam, per confermarla è necessario inserire le parole che appaiono nell'immagine:<br />
+([[Special:Captcha/help|Cosa vuol dire?]])",
+	'captchahelp-title'          => "Cos'è il captcha?",
+	'captchahelp-text'           => "Capita spesso che i siti Web che accettano messaggi pubblici, come questo wiki, siano presi di mira da spammer che usano strumenti automatici per inserire collegamenti pubblicitari verso un gran numero di siti. Per quanto i collegamenti indesiderati si possano rimuovere, si tratta comunque di una seccatura non indifferente.
+
+In alcuni casi, ad esempio quando si tenta di aggiungere nuovi collegamenti Web in una pagina, il software wiki può mostrare una immagine con un breve testo colorato e/o distorto chiedendo di riscriverlo in un'apposita finestrella. Poiché si tratta di un'azione difficile da replicare da parte di un computer, questo meccanismo consente a (quasi tutti) gli utenti reali di completare l'inserimento desiderato, impedendo l'accesso alla maggior parte degli spammer e degli altri attacchi automatizzati.
+
+Sfortunatamente, queste misure di sicurezza possono mettere in difficoltà gli utenti con problemi visivi o coloro che utilizzano browser testuali o basati sulla sintesi vocale. Purtroppo al momento non è disponibile un meccanismo alternativo basato su messaggi audio; se queste procedure impediscono l'inserimento informazioni che si ritengono legittime, si prega di contattare gli amministratori del sito e chiedere loro assistenza.
+
+Fare clic sul pulsante 'back' del browser per tornare alla pagina di modifica.",
+	'captcha-createaccount'      => "Come misura di sicurezza nei confronti dei messaggi di spam automatici, per registrarsi è necessario inserire le parole che appaiono nell'immagine:<br />
+([[Speciale:Captcha/help|Cosa vuol dire?]])",
+	'captcha-createaccount-fail' => "Codice di verifica errato o mancante.",
+);
+
+$wgConfirmEditMessages['ja'] = array(
+	'captcha-edit'                => 'このページを編集するには下記に現れる数式の答えを入力してください。<br />
+([[Special:Captcha/help|詳細]])',
+	'captcha-addurl'              => 'あなたの編集には新たに外部リンクが追加されています。スパム防止のため、下記の数式の答えを入力してください<br />
+([[Special:Captcha/help|詳細]])',
+	'captcha-createaccount'       => 'スパム防止のため、アカウントを登録するには、下記に現れる数式の答えを入力してください<br />
+([[Special:Captcha/help|詳細]])',
+	'captcha-createaccount-fail'  => '確認コードの入力がないか、間違っています。',
+	'captcha-create'              => 'あなたの編集は新たに外部リンクが追加されています。スパム防止のため、下記に現れる数式の答えを入力してください<br />
+([[Special:Captcha/help|詳細]])',
+	'captchahelp-title'           => 'Captcha ヘルプ',
+	'captchahelp-text'            => '当Wikiのような、投稿が公開されているウェブサイトは、多くのサイトに自分たちへのリンクを自動投稿するツールを用いるスパマーにより荒らされます。これらのスパムは除去できるものの、その作業大変うっとうしいものです。
+
+時々、特に新しいリンクをページに追加したとき、Wikiは色の付いた、もしくは、ゆがめられた文字を提示し、その入力をお願いすることがあります。この作業は自動化が難しいため、本当の人間の投稿を可能にしつつ、多くのスパマーやロボットの攻撃を防ぐことが出来ます。
+
+しかし、残念なことに、テキストベースやスピーチベースのブラウザを使っている、視覚障害者に不便をおかけする場合があります。現時点では、音声版の代替物がありません。正当な投稿をするにあたって、これが障害となっている場合、サイト管理者に連絡し、協力を求めてください。
+
+編集ページに戻るには、ブラウザの戻るボタンを押してください。',
+);
+
+$wgConfirmEditMessages['kk-kz'] = array(
+	'captcha-edit'              => "Бұл бетті өңдеу үшін, 
+төмендегі қосындылауды шешіңіз де, нәтижесін аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):",
+	'captcha-addurl'              => "Түзетуіңізде жаңа сыртқы сілтемелер бар екен. Өздік түрде «спам» жасалуынан қорғану үшін,
+төмендегі қосындылауды шешіңіз де, нәтижесін аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):",
+	'captcha-create'              => "Жаңа бетті бастау үшін,
+төмендегі қосындылауды шешіңіз де, нәтижесін аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):",
+	'captcha-createaccount'      => "Жаңа тіркелгі өздік түрде жасалуынан қорғану үшін, төмендегі қосындылауды 
+шешіңіз де, нәтижесін аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):",
+	'captcha-createaccount-fail' => "Куәландыру коды дұрыс емес немесе жоқ.",
+	'captchahelp-cookies-needed' => "Бұл жұмысты істеу үшін, шолғышыңызда  «cookies»  дегенді ендіріңіз.",
+	'captchahelp-title'          => 'CAPTCHA анықтамасы',
+	'captchahelp-text'           => "Өздік құралдары бар «спаммерлер», баршадан жіберілген хабарды қабылдайтын, бұл уики сияқты, веб-тораптарға сілтемелерімен жиі жаудырады. Осындай «спам» сілтемелерін аластау болғанда да, бұл мәнді ыза келтіреді.
+
+Кейде, әсіресе бетке жаңа веб сілтемесін қосқанда, уики өңі өзгерген не қисайған мәтінді көрсетіп және сол сөздерді енгізу сұрауы мүмкін. Бұл тапсырыс өздік түрде атқару өте қиын, сондықтан бұл иманды адам көпшілігіне кедергі болмайды, бірақ «спаммерлерді» және бұзақы ботпен басқа шабуыл жасағандарды тоқтатады.
+
+Өкінішке орай, бұл көруі төмендеген, немесе мәтін не дауыс негізіндегі шолғышты қолданатын пайдаланушыға ыңғайсыздық келтіруге мүмкін. Осы қазір бізде дыбысты балама жоқ. Егер бұл адал жазуыңызға кедергілесе, торап бақылаушыларына қатынасыңыз.
+
+Бұл жұмысты істеу үшін шолғышыңызда «cookies» дегенді ендіру қажет.
+
+Бет өңдеуіне қайту бару үшін «Артқа» деген түймесін басыңыз.",
+);
+$wgConfirmEditMessages['kk-tr'] = array(
+	'captcha-edit'              => "Bul betti öñdew üşin, 
+tömendegi qosındılawdı şeşiñiz de, nätïjesin awmaqqa engiziñiz ([[{{ns:special}}:Captcha/help|köbirek aqparat]]):",
+	'captcha-addurl'              => "Tüzetwiñizde jaña sırtqı siltemeler bar eken. Özdik türde «spam» jasalwınan qorğanw üşin,
+tömendegi qosındılawdı şeşiñiz de, nätïjesin awmaqqa engiziñiz ([[{{ns:special}}:Captcha/help|köbirek aqparat]]):",
+	'captcha-create'              => "Jaña betti bastaw üşin,
+tömendegi qosındılawdı şeşiñiz de, nätïjesin awmaqqa engiziñiz ([[{{ns:special}}:Captcha/help|köbirek aqparat]]):",
+	'captcha-createaccount'      => "Jaña tirkelgi özdik türde jasalwınan qorğanw üşin, tömendegi qosındılawdı 
+şeşiñiz de, nätïjesin awmaqqa engiziñiz ([[{{ns:special}}:Captcha/help|köbirek aqparat]]):",
+	'captcha-createaccount-fail' => "Kwälandırw kodı durıs emes nemese joq.",
+	'captchahelp-cookies-needed' => "Bul jumıstı istew üşin, şolğışıñızda  «cookies»  degendi endiriñiz.",
+	'captchahelp-title'          => 'CAPTCHA anıqtaması',
+	'captchahelp-text'           => "Özdik quraldarı bar «spammerler», barşadan jiberilgen xabardı qabıldaýtın, bul wïkï sïyaqtı, veb-toraptarğa siltemelerimen jïi jawdıradı. Osındaý «spam» siltemelerin alastaw bolğanda da, bul mändi ıza keltiredi.
+
+Keýde, äsirese betke jaña veb siltemesin qosqanda, wïkï öñi özgergen ne qïsaýğan mätindi körsetip jäne sol sözderdi engizw surawı mümkin. Bul tapsırıs özdik türde atqarw öte qïın, sondıqtan bul ïmandı adam köpşiligine kedergi bolmaýdı, biraq «spammerlerdi» jäne buzaqı botpen basqa şabwıl jasağandardı toqtatadı.
+
+Ökinişke oraý, bul körwi tömendegen, nemese mätin ne dawıs negizindegi şolğıştı qoldanatın paýdalanwşığa ıñğaýsızdıq keltirwge mümkin. Osı qazir bizde dıbıstı balama joq. Eger bul adal jazwıñızğa kedergilese, torap baqılawşılarına qatınasıñız.
+
+Bul jumıstı istew üşin şolğışıñızda «cookies» degendi endirw qajet.
+
+Bet öñdewine qaýtw barw üşin «Artqa» degen tüýmesin basıñız.",
+);
+$wgConfirmEditMessages['kk-cn'] = array(
+	'captcha-edit'              => "بۇل بەتتٴى ٴوڭدەۋ ٴۇشٴىن, 
+تٴومەندەگٴى قوسىندىلاۋدى شەشٴىڭٴىز دە, نٴاتيجەسٴىن اۋماققا ەنگٴىزٴىڭٴىز ([[{{ns:special}}:Captcha/help|كٴوبٴىرەك اقپارات]]):",
+	'captcha-addurl'              => "تٴۇزەتۋٴىڭٴىزدە جاڭا سىرتقى سٴىلتەمەلەر بار ەكەن. ٴوزدٴىك تٴۇردە «سپام» جاسالۋىنان قورعانۋ ٴۇشٴىن,
+تٴومەندەگٴى قوسىندىلاۋدى شەشٴىڭٴىز دە, نٴاتيجەسٴىن اۋماققا ەنگٴىزٴىڭٴىز ([[{{ns:special}}:Captcha/help|كٴوبٴىرەك اقپارات]]):",
+	'captcha-create'              => "جاڭا بەتتٴى باستاۋ ٴۇشٴىن,
+تٴومەندەگٴى قوسىندىلاۋدى شەشٴىڭٴىز دە, نٴاتيجەسٴىن اۋماققا ەنگٴىزٴىڭٴىز ([[{{ns:special}}:Captcha/help|كٴوبٴىرەك اقپارات]]):",
+	'captcha-createaccount'      => "جاڭا تٴىركەلگٴى ٴوزدٴىك تٴۇردە جاسالۋىنان قورعانۋ ٴۇشٴىن, تٴومەندەگٴى قوسىندىلاۋدى 
+شەشٴىڭٴىز دە, نٴاتيجەسٴىن اۋماققا ەنگٴىزٴىڭٴىز ([[{{ns:special}}:Captcha/help|كٴوبٴىرەك اقپارات]]):",
+	'captcha-createaccount-fail' => "كۋٴالاندىرۋ كودى دۇرىس ەمەس نەمەسە جوق.",
+	'captchahelp-cookies-needed' => "بۇل جۇمىستى ٴىستەۋ ٴۇشٴىن, شولعىشىڭىزدا  «cookies»  دەگەندٴى ەندٴىرٴىڭٴىز.",
+	'captchahelp-title'          => 'CAPTCHA انىقتاماسى',
+	'captchahelp-text'           => "ٴوزدٴىك قۇرالدارى بار «سپاممەرلەر», بارشادان جٴىبەرٴىلگەن حاباردى قابىلدايتىن, بۇل ۋيكي سيياقتى, ۆەب-توراپتارعا سٴىلتەمەلەرٴىمەن جيٴى جاۋدىرادى. وسىنداي «سپام» سٴىلتەمەلەرٴىن الاستاۋ بولعاندا دا, بۇل مٴاندٴى ىزا كەلتٴىرەدٴى.
+
+كەيدە, ٴاسٴىرەسە بەتكە جاڭا ۆەب سٴىلتەمەسٴىن قوسقاندا, ۋيكي ٴوڭٴى ٴوزگەرگەن نە قيسايعان مٴاتٴىندٴى كٴورسەتٴىپ جٴانە سول سٴوزدەردٴى ەنگٴىزۋ سۇراۋى مٴۇمكٴىن. بۇل تاپسىرىس ٴوزدٴىك تٴۇردە اتقارۋ ٴوتە قيىن, سوندىقتان بۇل يماندى ادام كٴوپشٴىلٴىگٴىنە كەدەرگٴى بولمايدى, بٴىراق «سپاممەرلەردٴى» جٴانە بۇزاقى بوتپەن باسقا شابۋىل جاساعانداردى توقتاتادى.
+
+ٴوكٴىنٴىشكە وراي, بۇل كٴورۋٴى تٴومەندەگەن, نەمەسە مٴاتٴىن نە داۋىس نەگٴىزٴىندەگٴى شولعىشتى قولداناتىن پايدالانۋشىعا ىڭعايسىزدىق كەلتٴىرۋگە مٴۇمكٴىن. وسى قازٴىر بٴىزدە دىبىستى بالاما جوق. ەگەر بۇل ادال جازۋىڭىزعا كەدەرگٴىلەسە, توراپ باقىلاۋشىلارىنا قاتىناسىڭىز.
+
+بۇل جۇمىستى ٴىستەۋ ٴۇشٴىن شولعىشىڭىزدا «cookies» دەگەندٴى ەندٴىرۋ قاجەت.
+
+بەت ٴوڭدەۋٴىنە قايتۋ بارۋ ٴۇشٴىن «ارتقا» دەگەن تٴۇيمەسٴىن باسىڭىز.",
+);
+$wgConfirmEditMessages['kk'] = $wgConfirmEditMessages['kk-kz'];
+$wgConfirmEditMessages['la'] = array(
+	'captcha-edit'               => "Emendatione tua insunt nexus URL; ut spam automaticum vitemus, necesse est tibi inscribere verba, quae in hac imagine videntur. <br /> ([[Specialis:Captcha/Auxilium|Quidst illud?]])",
+	'captcha-addurl'               => "Emendatione tua insunt nexus URL; ut spam automaticum vitemus, necesse est tibi inscribere verba, quae in hac imagine videntur. <br /> ([[Specialis:Captcha/Auxilium|Quidst illud?]])",
+	'captcha-create'               => "Emendatione tua insunt nexus URL; ut spam automaticum vitemus, necesse est tibi inscribere verba, quae in hac imagine videntur. <br /> ([[Specialis:Captcha/Auxilium|Quidst illud?]])",
+	'captchahelp-title'          => 'Captcha auxilium',
+	'captchahelp-text'           => "Web sites that accept postings from the public, like this wiki, are often abused by spammers who use automated tools to post their links to many sites. While these spam links can be removed, they are a significant nuisance.
+
+Sometimes, especially when adding new web links to a page, the wiki may show you an image of colored or distorted text and ask you to type the words shown. Since this is a task that's hard to automate, it will allow most real humans to make their posts while stopping most spammers and other robotic attackers.
+
+Unfortunately this may inconvenience users with limited vision or using text-based or speech-based browsers. At the moment we do not have an audio alternative available. Please contact the site administrators for assistance if this is unexpectedly preventing you from making legitimate posts.
+
+Hit the 'back' button in your browser to return to the page editor.",
+	'captcha-createaccount'      => "Ut spam automaticum vitemus, necesse est tibi inscribere verba, quae in hac imagine videntur, priusquam rationem possis creare. <br /> ([[Specialis:Captcha/Auxilium|Quidst illud?]])",
+	'captcha-createaccount-fail' => "Codex affirmationis aut non scriptus est aut male.",
+);
+$wgConfirmEditMessages['lv'] = array(
+	'captcha-edit'               => "Tavas izmaiņas ietver jaunu URL saiti. Lai pasargātos no automātiskas mēstuļošanas, Tev ir jāieraksta vārds, kas redzams šajā attēlā: <br />([[Special:Captcha/help|Kāpēc tā?]])",
+	'captcha-addurl'               => "Tavas izmaiņas ietver jaunu URL saiti. Lai pasargātos no automātiskas mēstuļošanas, Tev ir jāieraksta vārds, kas redzams šajā attēlā: <br />([[Special:Captcha/help|Kāpēc tā?]])",
+	'captcha-create'               => "Tavas izmaiņas ietver jaunu URL saiti. Lai pasargātos no automātiskas mēstuļošanas, Tev ir jāieraksta vārds, kas redzams šajā attēlā: <br />([[Special:Captcha/help|Kāpēc tā?]])",
+	'captchahelp-title'          => 'Captcha help',
+	'captchahelp-text'           => "Interneta lapas, kurās iespējams pievienot tekstu, kā šajā wiki, bieži cieš no mēstuļotājiem, kuri izmanto automatizētus līdzekļus, lai pievienotu savus saites daudzās jo daudzās interneta lapās. Kaut arī šīs saites var viegli dzēst, tomēr tās ir nozīmīgs traucēklis. Reizēm, jo īpaši pievienojot jaunas interneta saites, wiki programmatūra var parādīt Tev attēlu, kurā ir krāsains vai sagrozīts teksts. Šis teksts ir jāpārraksta un to ir ļoti grūti izdarīt automātiski, tā apgrūtinot lielāko daļu mēstuļotāju, savukārt gandrīz visi parastie lietotāji to var izdarīt bez grūtībām. Diemžēl tas var apgrūtināt lietotājus, kuriem ir redzes traucējumi vai kuri izmanto teksta pārlūkus vai dzirdes pārlūkus. Šobrīd nav pieejama audio alternatīva, bet sazinies ar wiki administratoriem, ja tas liedz Tev veikt labi domātus papildinājumus. Spied pārlūka pogu \"Atpakaļ\" (''Back''), lai !
 atgrieztos iepriekšējā lapā.",
+	'captcha-createaccount'      => "Lai pasargātos no automātiskas mēstuļošanas, Tev reģistrējoties ir jāieraksta vārds, kas redzams šajā attēlā: <br />([[Special:Captcha/help|Kāpēc tā?]])",
+	'captcha-createaccount-fail' => "Nepareizs apstiprinājuma kods vai arī tas nav ievadīts.",
+);
+$wgConfirmEditMessages['nl'] = array(
+	'captcha-edit'               => "Uw bewerking bevat nieuwe externe links (URL's). Voer ter bescherming tegen geautomatiseerde spam de woorden in die in de volgende afbeelding te zien zijn:<br />
+([[Special:Captcha/help|Wat is dit?]])",
+	'captcha-addurl'               => "Uw bewerking bevat nieuwe externe links (URL's). Voer ter bescherming tegen geautomatiseerde spam de woorden in die in de volgende afbeelding te zien zijn:<br />
+([[Special:Captcha/help|Wat is dit?]])",
+	'captcha-create'               => "Uw bewerking bevat nieuwe externe links (URL's). Voer ter bescherming tegen geautomatiseerde spam de woorden in die in de volgende afbeelding te zien zijn:<br />
+([[Special:Captcha/help|Wat is dit?]])",
+	'captchahelp-title'          => 'Captcha help',
+	'captchahelp-text'           => "Websites die vrij te bewerken zijn, zoals deze wiki, worden vaak misbruikt door spammers die er met hun programma's automatisch links op zetten naar vele websites. Hoewel deze externe links weer verwijderd kunnen worden, leveren ze wel veel hinder en administratief werk op.
+
+Soms, en in het bijzonder bij het toevoegen van externe links op pagina's, toont de wiki u een afbeelding met gekleurde of vervormde tekst en wordt u gevraagd de getoonde tekst in te voeren. Omdat dit proces lastig te automatiseren is, zijn vrijwel alleen mensen in staat dit proces succesvol te doorlopen en worden hiermee spammers en andere geautomatiseerde aanvallen geweerd.
+
+Helaas levert deze bevestiging voor gebruikers met een visuele handicap of een tekst- of spraakgebaseerde browser problemen op. Op het moment is er geen alternatief met geluid beschikbaar. Vraag alstublieft assistentie van de sitebeheerders als dit proces u verhindert een nuttige bijdrage te leveren.
+
+Klik op de knop 'terug' in uw browser om terug te gaan naar het tekstbewerkingsscherm.",
+	'captcha-createaccount'      => "Voer ter bescherming tegen geautomatiseerde spam de woorden in die in de volgende afbeelding te zien zijn om uw gebruiker aan te maken:<br />
+([[Special:Captcha/help|Wat is dit?]])",
+	'captcha-createaccount-fail' => "Onjuiste bevestigingscode of niet ingevuld.",
+);
+$wgConfirmEditMessages['no'] = array(
+	'captcha-edit'               => "Din redigering inkluderer nye lenker; som en beskyttelse mot automatisert spam er du nødt til skrive inn ordene i dette bildet:
+<br />([[Special:Captcha/help|Hva er dette?]])",
+	'captcha-addurl'               => "Din redigering inkluderer nye lenker; som en beskyttelse mot automatisert spam er du nødt til skrive inn ordene i dette bildet:
+<br />([[Special:Captcha/help|Hva er dette?]])",
+	'captcha-create'               => "Din redigering inkluderer nye lenker; som en beskyttelse mot automatisert spam er du nødt til skrive inn ordene i dette bildet:
+<br />([[Special:Captcha/help|Hva er dette?]])",
+	'captchahelp-title'          => 'Captcha help',
+	'captchahelp-text'           => "Internettsider som kan redigeres av alle, som denne wikien, blir ofte misbrukt av spammere som bruker roboter for å poste massive antall lenker. Selv om slike spamlenker kan fjernes er de til betydelig irritasjon.
+
+Noen ganger, særlig hvis du vil legge til nye internettlenker til en side, kan wikien vise deg et bilde av en farvet eller ujevn tekst og be deg skrive inn ordene som vises. Siden det er vanskelig å automatisere denne oppgaven, vil funksjonen slippe de fleste virkelige mennesker igjennom, men stoppe spammere.
+
+Dessverre finnes det i øyeblikket ikke noe audioalternativ for brukere med begrenset syn som som bruker tekst- eller talebaserte nettlesere. Vennlig kontakt administratorene hvis denne funksjonen forhindrer deg i å foreta legitime endringer.
+
+Trykk på «tilbake»-knappen for å komme tilbake til redigeringssiden.",
+	'captcha-createaccount'      => "For å beskytte Wikipedia mot spam må du skrive inn ordene i bildet for å registrere en konto.
+<br />([[Special:Captcha/help|Hva er dette?]])
+",
+	'captcha-createaccount-fail' => "Feil eller manglende bekreftelseskode.",
+);
+$wgConfirmEditMessages['nn'] = array(
+	'captcha-edit'               => "Endringa di inkluderer nye lenkjer; som eit vern mot automatisert reklame (spam) er du nøydd til skrive inn orda i dette bildet: <br />([[Special:Captcha/help|Kva er dette?]])",
+	'captcha-addurl'               => "Endringa di inkluderer nye lenkjer; som eit vern mot automatisert reklame (spam) er du nøydd til skrive inn orda i dette bildet: <br />([[Special:Captcha/help|Kva er dette?]])",
+	'captcha-create'               => "Endringa di inkluderer nye lenkjer; som eit vern mot automatisert reklame (spam) er du nøydd til skrive inn orda i dette bildet: <br />([[Special:Captcha/help|Kva er dette?]])",
+	'captchahelp-title'          => 'Captcha help',
+	'captchahelp-text'           => "Internettsider som kan bli endra av alle, som denne wikien, blir ofte misbruka av reklameinnleggjarar (spammarar) som nyttar robotar til å poste store tal lenkjer. Sjølv om slike reklamelenkjer kan bli fjerna er dei til betydelig irritasjon. Nokon gonger, særleg viss du vil leggje til nye internettlenker til ei side, kan wikien vise deg eit bilete av ein farga eller ujamn tekst og be deg skrive inn orda som blir visa. Sidan det er vanskeleg å automatisere denne oppgåva, vil funksjonen slippe dei fleste verkelege menneska gjennom, men stoppe reklamerobotar. Diverre finst det i augeblikket ikkje noko lydalternativ for brukarar med nedsett syn som brukar tekst- eller talebaserte nettlesarar. Ver venleg å kontakte administratorane viss denne funksjonen hindrar deg i å foreta legitime endringar. Trykk på «tilbake»-knappen for å komma tilbake til redigeringssida.",
+	'captcha-createaccount'      => "For å verne Wikipedia mot reklame (spam) må du skrive inn orda i biletet for å registrere ein konto. <br />([[Special:Captcha/help|Kva er dette?]])",
+	'captcha-createaccount-fail' => "Feil eller manglande godkjenningskode.",
+);
+$wgConfirmEditMessages['oc'] = array(
+	'captcha-edit'                => 'Vòstra modificacion inclutz de ligams URL novèla ; per empachar las connexions automatizadas, devètz picar los mots que s’afichan dins l’imatge que seguís : <br />([[Special:Captcha/help|Qu\'es aquò?]])',
+	'captcha-addurl'                => 'Vòstra modificacion inclutz de ligams URL novèla ; per empachar las connexions automatizadas, devètz picar los mots que s’afichan dins l’imatge que seguís : <br />([[Special:Captcha/help|Qu\'es aquò?]])',
+	'captcha-create'                => 'Vòstra modificacion inclutz de ligams URL novèla ; per empachar las connexions automatizadas, devètz picar los mots que s’afichan dins l’imatge que seguís : <br />([[Special:Captcha/help|Qu\'es aquò?]])',
+	'captcha-createaccount'       => 'Coma proteccion contra las creacions de compte abusivas, entratz lo resultat de l’addicion dins la boita çai jos:<br />
+([[Special:Captcha/help|mai d’informacions]])',
+	'captcha-createaccount-fail'  => 'Còde de confirmacion mancant o erronèu.',
+	'captchahelp-title'           => 'Ajuda suls Captcha',
+	'captchahelp-text'            => 'Los sites webs que permeton al mai grand nombre de participar, coma aqueste wiki, son sovent atacats per de spammers qu\'utilizan d\'espleches automatizas per mandar lor ligams sus de fòrça sites sulcòp. Son fòrt aisits de suprimir mas avèm francament de causas mai risolièras de far. De còps quand ajustatz de ligams novèls vèrs lo web, lo wiki pòt vos mostrar un imatge amb un tèxt coloriat o torçut e vos demandar de lo picar. Es una tasca relativament complicada d\'automatizar, çò que permet de diferenciar un uman real d\'un logicial automatic malvolent. Malaürosament, aqueste sistèma es pas adaptat a d\'utilizaires mal-vesents o utilizant de navigaires textuals o audiò. Actualament, prepausem pas d\'alternativas adaptadas. Se avètz besonh d\'ajuda esitetz pas a contactar los administrators del sit. Clicatz sul boton \'precedent\' de vòstre navegaire per tornar a l\'editor.',
+);
+$wgConfirmEditMessages['pt'] = array(
+	'captcha-edit'               => "Para editar esta página será necessário que você digite as palavras exibidas na seguinte imagem no box apropriado ([[Special:Captcha/help|o que é isto?]])",
+	'captcha-addurl'             => "Sua edição inclui novas ligações externas; como prevenção contra sistemas automatizados que inserem spam, será necessário que você digite as palavras exibidas na seguinte imagem no box apropriado ([[Special:Captcha/help|o que é isto?]])",
+	'captcha-badpass'            => 'Como prevenção contra formas automatizadas de pesquisa e descoberta de senhas, será necessário que você digite as palavras exibidas na seguinte imagem no box apropriado ([[Special:Captcha/help|o que é isto?]]',
+	'captcha-create'             => "Como prevenção contra sistemas automatizados que inserem spam, será necessário que você digite as palavras exibidas na seguinte imagem no box apropriado ([[Special:Captcha/help|o que é isto?]])",
+	'captchahelp-title'          => 'Ajuda com o Captcha',
+	'captchahelp-cookies-needed' => "Você precisará ter cookies habilitados em seu navegador para que possa funcionar",
+	'captchahelp-text'           => "Sítios abertos a inserções públicas, como é o caso deste wiki, são vulneráveis a spammers que utilizem ferramentas automatizadas para inserir seus links em diversos locais. Remover tais links posteriormente poderá ser um significativo incômodo.
+
+Algumas vezes, especialmente ao adicionar novos links externos em uma página, o sistema exibirá uma imagem com um texto colorido ou distorcido e pedirá que você digite as palavras exibidas. Uma vez que essa é uma tarefa um tanto difícil de ser automatizada, ela possibilita que vários humanos façam as suas inserções ao mesmo tempo que inibe as que forem feitas por spammers e mecanismos automatizados.
+
+Infelizmente, isso pode ser dificultoso a utilizadores com limitações visuais ou que naveguem através de  mecanismos baseados em texto ou baseados em voz. No momento não há uma alternativa em áudio. Por gentileza, contacte os administradores do sítio em casos que seja necessária a assistência de alguém para que você possa fazer as suas inserções legítimas.
+
+Pressione o botão 'voltar' de seu navegador para retornar à página de edição.",
+	'captcha-createaccount'      => "Como prevenção contra sistemas automatizados que inserem spam, será necessário que você digite as palavras exibidas na seguinte imagem para que possa se cadastrar:<br />
+([[Special:Captcha/help|O que é isto?]])",
+	'captcha-createaccount-fail' => "Código incorreto ou não preenchido.",
+);
+$wgConfirmEditMessages['pt-br'] = $wgConfirmEditMessages['pt'];
+$wgConfirmEditMessages['ro'] = array(
+	'captcha-edit'                => 'Editarea include legături externe noi. Pentru a evita spam-ul automat, vă rugăm să rezolvaţi adunarea de mai jos şi introduceţi rezultatul în căsuţă ([[Special:Captcha/help|detalii]]):',
+	'captcha-addurl'                => 'Editarea include legături externe noi. Pentru a evita spam-ul automat, vă rugăm să rezolvaţi adunarea de mai jos şi introduceţi rezultatul în căsuţă ([[Special:Captcha/help|detalii]]):',
+	'captcha-create'                => 'Editarea include legături externe noi. Pentru a evita spam-ul automat, vă rugăm să rezolvaţi adunarea de mai jos şi introduceţi rezultatul în căsuţă ([[Special:Captcha/help|detalii]]):',
+	'captcha-createaccount'       => 'Pentru a evita crearea automată de conturi, vă rugăm să rezolvaţi adunarea de mai jos şi introduceţi rezultatul în căsuţă ([[Special:Captcha/help|detalii]]):',
+	'captcha-createaccount-fail'  => 'Cod de confirmare incorect sau lipsă.',
+	'captchahelp-title'           => 'Despre „Captcha”',
+	'captchahelp-text'            => 'Siturile Web care acceptă postări din partea publicului, precum acest wiki, sunt de obicei abuzate de persoane care folosesc unelte automate pentru a introduce legături către multe situri. Deşi aceste legături de spam pot fi scoase, acest lucru reprezintă o muncă inconvenientă.
+
+Uneori, mai ales la adăugarea de legături web noi într-o pagină, situl wiki vă poate arăta o imagine cu un text colorat sau distorsionat şi ruga să introduceţi cuvintele arătate. Deoarece aceasta este o sarcină greu de automatizat, va permite majorităţii persoanelor reale să posteze şi va opri majoritatea atacatorilor.
+
+Din nefericire, această metodă îi poate deranja pe utilizatorii cu vedere limitată sau care folosesc browsere bazate pe text sau sunet. În acest moment nu avem o alternativă audio disponibilă. Vă rugăm, contactaţi administratorii sitului pentru asistenţă dacă metoda vă opreşte de la a face postări legitime.
+
+Va fi nevoie ca browserul folosit să suporte module cookie.',
+);
+$wgConfirmEditMessages['ru'] = array(
+	'captcha-edit'               => "Вы добавили ссылку на внешний сайт; в целях защиты от автоматического спама, введите буквы изображённые на картинке:<br />
+([[{{ns:special}}:Captcha/help|Что это такое?]])",
+	'captcha-addurl'               => "Вы добавили ссылку на внешний сайт; в целях защиты от автоматического спама, введите буквы изображённые на картинке:<br />
+([[{{ns:special}}:Captcha/help|Что это такое?]])",
+	'captcha-create'               => "Вы добавили ссылку на внешний сайт; в целях защиты от автоматического спама, введите буквы изображённые на картинке:<br />
+([[{{ns:special}}:Captcha/help|Что это такое?]])",
+	'captchahelp-title'          => 'Справка о CAPTCHA',
+	'captchahelp-text'           => "Вебсайты позволяющие добавлять и изменять своё содержимое, в том числе вики, часто становятся целью спамеров, использующих программы для автоматического добавления ссылок. Хотя такие ссылки могут быть удалены, они являются существенной помехой.
+
+Иногда, например при добавлении на страницу новой веб-ссылки, вики может показать вам картинку с цветным или искажённым текстом и предложить ввести текст, который вы видите. Так как подобная задача трудноавтоматизируема, это даёт возможность большинству людей разместить свои изменения, в то время как большинство спамерских и вандальных программ не могут это сделать.
+
+К сожалению, подобная защита может причинить неудобства людям с ограничениями по зрению или тем, кто использует читающие браузеры. В настоящее время у нас нет звуковой альтернативы данной проверке. Пожалуйста, обратитесь за помощью к администраторам, если подобная проверка мешает вам добросовестно работать с сайтом.
+
+Нажмите кнопку «Назад» в ваше браузере, чтобы вернуться к редактированию.",
+	'captcha-createaccount'      => "В качестве меры против автоматического спама, вы должны ввести буквы, изображённые на картинке, чтобы зарегистрироваться в системе:<br />
+([[{{ns:special}}:Captcha/help|Что это такое?]])",
+	'captcha-createaccount-fail' => "Код подтверждения отсутствует или неверен.",
+);
+$wgConfirmEditMessages['sk'] = array(
+	'captcha-edit'                => 'Vaša úprava obsahuje nové externé odkazy. Ako pomoc pri ochrane pred automatickým spamom vyriešte prosím tento jednoduchý súčet a zadajte výsledok do poľa ([[Special:Captcha/help|viac informácií]]):',
+	'captcha-addurl'                => 'Vaša úprava obsahuje nové externé odkazy. Ako pomoc pri ochrane pred automatickým spamom vyriešte prosím tento jednoduchý súčet a zadajte výsledok do poľa ([[Special:Captcha/help|viac informácií]]):',
+	'captcha-create'                => 'Vaša úprava obsahuje nové externé odkazy. Ako pomoc pri ochrane pred automatickým spamom vyriešte prosím tento jednoduchý súčet a zadajte výsledok do poľa ([[Special:Captcha/help|viac informácií]]):',
+	'captcha-createaccount'       => 'Kvôli ochrane proti automatizovanému spamu je potrebné napísať slová zobrazené na tomto obrázku, až potom bude vytvorený nový účet:
+<br />([[Special:Captcha/help|Čo je toto?]])',
+	'captcha-createaccount-fail'  => 'Nesprávny alebo chýbajúci potvrdzovací kód.',
+	'captchahelp-title'           => 'Pomocník ku captcha',
+	'captchahelp-text'            => 'Webstránky prijímajúce príspevky od verejnosti ako táto wiki sú často cieľom zneužitia spammemi, ktorí používajú automatizované nástroje na to, aby svoje odkazy umiestnili na množstvo stránok. Hoci je možné tieto odkazy odstrániť, zbytočne to zaťažuje používateľov.
+
+Niekedy, obzvlášť keď pridávate webové odkazy k článkom, wiki Vám môže zobraziť obrázok so zafarbeným alebo pokriveným textom a požiadať Vás o prepísanie zobrazených slov. Keďže takúto úlohu je ťažké zautomatizovať a umožní skutočným ľuďom poslať svoje príspevky, zastaví to väčšinu spammerov a iných robotických útočníkov.
+
+Naneštastie, môže to byť prekážkou pre používateľov so zrakovým postihnutím alebo tých, ktorí používajú textové alebo hovoriace prehliadače. Momentálne nemáme dostupnú audio zvukovú alternatívu. Kontaktujte prosím administratorov stránok, ak Vám to neočakávane komplikuje umiestňovanie oprávnených príspevkov.
+
+Stlačením tlačidla "späť" vo Vašom prehliadači sa vrátite do editora stránky.',
+);
+$wgConfirmEditMessages['sl'] = array(
+	'captcha-edit'               => "Vaše urejanje vključuje nove URL-povezave; zaradi zaščite pred avtomatizirano navlako boste morali vpisati besede, ki se pojavijo v okencu: <br />([[{{ns:Special}}:Captcha/help|Kaj je to?]])",
+	'captcha-addurl'               => "Vaše urejanje vključuje nove URL-povezave; zaradi zaščite pred avtomatizirano navlako boste morali vpisati besede, ki se pojavijo v okencu: <br />([[{{ns:Special}}:Captcha/help|Kaj je to?]])",
+	'captcha-create'               => "Vaše urejanje vključuje nove URL-povezave; zaradi zaščite pred avtomatizirano navlako boste morali vpisati besede, ki se pojavijo v okencu: <br />([[{{ns:Special}}:Captcha/help|Kaj je to?]])",
+	'captchahelp-title'          => 'Pomoč za captcha',
+	'captchahelp-text'           => "Spletne strani, ki omogočajo objavljanje širši javnosti, kot na primer ta wiki, pogosto zlorabljajo spamerji, ki za objavo svojih povezav na mnogih straneh uporabljajo avtomatizirana orodja. Čeprav se te neželene povezave da odstraniti, so precejšnja nadloga.
+
+Včasih, zlasti pri dodajanju novih spletnih povezav na stran, vam bo morda wiki prikazal sliko obarvanega ali popačenega besedila in zahteval vpis prikazanih besed. Ker je to opravilo težko avtomatizirati, bo s tem večini ljudi objavljanje dovoljeno, spamerji in druge robotski napadalci pa bodo ustavljeni.
+
+Žal lahko to povzroči nevšečnosti uporabnikom s slabim vidom in tistim, ki uporabljajo besedilne ali govorne brskalnike. Glasovna možnost trenutno še ni na razpolago. Če vam to nepričakovano preprečuje legitimno objavo, se, prosimo, obrnite na administratorje spletišča.
+
+Za vrnitev v urejevalnik izberite gumb 'nazaj' vašega brskalnika.",
+	'captcha-createaccount'      => "Za registracijo je zaradi zaščite pred neželenimi reklamnimi sporočili treba vpisati prikazane besede: <br />([[{{ns:special}}:Captcha|Kaj je to?]])",
+	'captcha-createaccount-fail' => "Nepravilna ali manjkajoča potrditvena koda.",
+);
+$wgConfirmEditMessages['sq'] = array(
+	'captcha-edit'               => "Redaktimi juaj ka lidhje URL të reja dhe si mbrojtje kundër abuzimeve automatike duhet të shtypni çfarë shfaqet tek figura e mëposhtme:<br /> ([[Special:Captcha|Çfarë është kjo?]])",
+	'captcha-addurl'               => "Redaktimi juaj ka lidhje URL të reja dhe si mbrojtje kundër abuzimeve automatike duhet të shtypni çfarë shfaqet tek figura e mëposhtme:<br /> ([[Special:Captcha|Çfarë është kjo?]])",
+	'captcha-create'               => "Redaktimi juaj ka lidhje URL të reja dhe si mbrojtje kundër abuzimeve automatike duhet të shtypni çfarë shfaqet tek figura e mëposhtme:<br /> ([[Special:Captcha|Çfarë është kjo?]])",
+	'captchahelp-title'          => 'Captcha help',
+	'captchahelp-text'           => "Faqet e rrjetit që pranojnë shkrime nga publiku, siç është edhe kjo wiki, shpesh abuzohen nga njerëz që duan të përfitojnë duke reklamuar ose promovuar lidhjet e tyre. Këto lloj abuzimesh mund të hiqen kollaj por janë një bezdi dhe shpenzim kohe i papranueshëm.
+
+Ndonjëherë, sidomos kur po hapni një llogari të re apo kur po shtoni lidhje të reja nëpërmjet redaktimit tuaj, sistemi mund t'ju shfaqi një figurë që përmban fjalë me gërma ose numra të shtrembruara ose me ngjyra të ndryshme të cilat ju duhet të shtypni para se të mund të kryeni veprimin në fjalë. Kjo bëhet pasi është shumë e vështirë për një robot ose mjet automatik të kryejë të njëjtën punë. Kështu mund të dallohet nëse jeni me të vërtetë një njeri apo një robot. Ky lloj sistemi s'mund të ndalojë tërë abuzimet por ndalon një pjesë të mirë të tyre, sidomos ato që janë automatike dhe të shumta në numër.
+
+Fatkeqësisht ky lloj sistemi mund të bezdisi përdoruesit me pamje të kufizuar ose ata që përdorin mjete teksti ose shfletues leximi me zë. Tani për tani nuk kemi mundësi për të ofruar një sistem me zë në vend të figurave. Ju lutem lidhuni me administruesit nëse ky sistem po ju ndalon të jepni kontribute të vlefshme.
+
+Shtypni butonin \"prapa\" (\"back\") të shfletuesit tuaj për tu kthyer tek faqja e mëparshme.",
+	'captcha-createaccount'      => "Për mbrojtje kundër regjistrimeve automatike duhet të shtypni çfarë shfaqet tek figura e mëposhtme para se të hapni llogarinë:<br /> ([[Special:Captcha|Çfarë është kjo?]])",
+	'captcha-createaccount-fail' => "Mesazhi që duhej shtypur mungon ose nuk është shtypur siç duhet.",
+);
+$wgConfirmEditMessages['uk'] = array(
+	'captchahelp-text'           => "Вікіпедія застосовує техніку розрізнення людей від комп'ютерів, яка використовує розпізнавання образів, для захисту від  комп'ютерних  шкідливих програм, які автоматично реєструються  (найчастіше спамлять у статтях).
+
+Для реєстрації у Вікіпедії та іноді й при редагуванні статей користувачеві потрібно ввести вказану контрольну послідовність символів, і яку вони, будучи людьми, а не комп'ютерними програмами, можуть легко розпізнати.
+
+You will need to have cookies enabled in your browser for this to work.
+
+Hit the 'back' button in your browser to return to the page editor.",
+	'captcha-createaccount-fail' => 'Невірний або відсутній код підтвердження.',
+);
+$wgConfirmEditMessages['wa'] = array(
+	'captcha-edit'  => 'Dins vos candjmints i gn a des novelès hårdêyes (URL); po s\' mete a houte des robots di spam, nos vs dimandans d\' acertiner ki vos estoz bén ene djin, po çoula, tapez les mots k\' aparexhèt dins l\' imådje chal pa dzo:<br />([[{{ns:special}}:Captcha/help|Pocwè fjhans ns çoula?]])',
+	'captcha-addurl'  => 'Dins vos candjmints i gn a des novelès hårdêyes (URL); po s\' mete a houte des robots di spam, nos vs dimandans d\' acertiner ki vos estoz bén ene djin, po çoula, tapez les mots k\' aparexhèt dins l\' imådje chal pa dzo:<br />([[{{ns:special}}:Captcha/help|Pocwè fjhans ns çoula?]])',
+	'captcha-create'  => 'Dins vos candjmints i gn a des novelès hårdêyes (URL); po s\' mete a houte des robots di spam, nos vs dimandans d\' acertiner ki vos estoz bén ene djin, po çoula, tapez les mots k\' aparexhèt dins l\' imådje chal pa dzo:<br />([[{{ns:special}}:Captcha/help|Pocwè fjhans ns çoula?]])',
+	'captchahelp-title' => 'Aidance passete d\' acertinaedje',
+	'captchahelp-text' => 'Les waibes k\' acceptèt des messaedjes do publik, come ci wiki chal, sont sovint eployîs pa des må-fjhants spameus, po pleur mete, avou des usteyes otomatikes, des loyéns di rclame viè les sites da zels.
+Bén seur, on pout todi les disfacer al mwin, mins c\' est on soyant ovraedje.
+
+Adon, pa côps, copurade cwand vos radjoutez des hårdêyes a ene pådje, ou å moumint d\' ahiver on novea conte sol wiki, on eployrè ene passete d\' acertinaedje, dj\' ô bén k\' on vos mostere ene imådje avou on tecse kitoirdou eyet vs dimander di taper les mots so l\' imådje. Come li ricnoxhance di ç\' tecse la est målåjheye a fé otomaticmint pa on robot, çoula permete di leyî les vraiyès djins fé leus candjmints tot arestant l\' plupårt des spameus et des sfwaitès atakes pa robot.
+
+Målureuzmint çoula apoite eto des målåjhminces po les cis k\' ont des problinmes po vey, ou k\' eployèt des betchteus e môde tecse ou båzés sol vwès. Pol moumint, nos n\' avans nén ene alternative odio. S\' i vs plait contactez les manaedjeus do site po d\' l\' aidance si çoula vos espaitche di fé vos candjmints ledjitimes.
+
+Clitchîz sol boton «En erî» di vosse betchteu waibe po rivni al pådje di dvant.',
+	'captcha-createaccount' => 'Po s\' mete a houte des robots di spam, nos vs dimandans d\' acertiner ki vos estoz bén ene djin po-z ahiver vosse conte, po çoula, tapez les mots k\' aparexhèt dins l\' imådje chal pa dzo:<br />([[{{ns:special}}:Captcha/help|Pocwè fjhans ns çoula?]])',
+	'captcha-createaccount-fail' => 'Li côde d\' acertinaedje est incorek ou mancant.',
+);
+$wgConfirmEditMessages['zh-cn'] = array(
+	'captcha-edit'               => "你编辑的内容中含有一个新的URL链接;为了免受自动垃圾程序的侵扰,你需要输入显示在下面图片中的文字:<br />
+([[Special:Captcha/help|这是什么?]])",
+	'captcha-addurl'               => "你编辑的内容中含有一个新的URL链接;为了免受自动垃圾程序的侵扰,你需要输入显示在下面图片中的文字:<br />
+([[Special:Captcha/help|这是什么?]])",
+	'captcha-create'               => "你编辑的内容中含有一个新的URL链接;为了免受自动垃圾程序的侵扰,你需要输入显示在下面图片中的文字:<br />
+([[Special:Captcha/help|这是什么?]])",
+	'captchahelp-title'          => 'Captcha 帮助',
+	'captchahelp-text'           => "象本站一样,对公众开放编辑的站点经常被垃圾链接骚扰。那些人使用自动化垃圾程序将他们的链接张贴到很多站点。虽然这些链接可以被清除,但是这些东西确实令人十分讨厌。
+
+有时,特别是当给一个页面添加新的网页链接时,本站会让你看一幅有颜色的或者有变形文字的图像,并且要你输入所显示的文字。因为这是难以自动完成的一项任务,它将允许人保存他们的编辑,同时阻止大多数发送垃圾邮件者和其他机器人的攻击。
+
+令人遗憾是,这会使得视力不好的人,或者使用基于文本或者基于声音的浏览器的用户感到不便。而目前我们还没有提供的音频的选择。如果这正好阻止你进行正常的编辑,请和管理员联系获得帮助。
+
+单击你浏览器中的“后退”按钮返回你所编辑的页面。",
+	'captcha-createaccount'      => "为了防止程序自动注册,你需要输入以下图片中显示的文字才能注册帐户:<br />
+([[Special:Captcha/help|这是什么?]])",
+	'captcha-createaccount-fail' => "验证码错误或丢失。",
+);
+$wgConfirmEditMessages['zh-tw'] = array(
+	'captcha-edit'               => "你編輯的內容中含有一個新的URL連結;為了免受自動垃圾程式的侵擾,你需要輸入顯示在下面圖片中的文字:<br />
+([[Special:Captcha/help|這是什麼?]])",
+	'captcha-addurl'               => "你編輯的內容中含有一個新的URL連結;為了免受自動垃圾程式的侵擾,你需要輸入顯示在下面圖片中的文字:<br />
+([[Special:Captcha/help|這是什麼?]])",
+	'captcha-create'               => "你編輯的內容中含有一個新的URL連結;為了免受自動垃圾程式的侵擾,你需要輸入顯示在下面圖片中的文字:<br />
+([[Special:Captcha/help|這是什麼?]])",
+	'captchahelp-title'          => 'Captcha 說明',
+	'captchahelp-text'           => "像本站一樣,對公眾開放編輯的網站經常被垃圾連結騷擾。那些人使用自動化垃圾程序將他們的連結張貼到很多網站。雖然這些連結可以被清除,但是這些東西確實令人十分討厭。
+
+有時,特別是當給一個頁面添加新的網頁連結時,本站會讓你看一幅有顏色的或者有變形文字的圖像,並且要你輸入所顯示的文字。因為這是難以自動完成的一項任務,它將允許人保存他們的編輯,同時阻止大多數發送垃圾郵件者和其他機器人的攻擊。
+
+令人遺憾是,這會使得視力不好的人,或者使用基於文本或者基於聲音的瀏覽器的用戶感到不便。而目前我們還沒有提供的音頻的選擇。如果這正好阻止你進行正常的編輯,請和管理員聯繫獲得幫助。
+
+點擊瀏覽器中的「後退」按鈕返回你所編輯的頁面。",
+	'captcha-createaccount'      => "為了防止程式自動註冊,你需要輸入以下圖片中顯示的文字才能註冊帳戶:<br />
+([[Special:Captcha/help|這是什麼?]])",
+	'captcha-createaccount-fail' => "驗證碼錯誤或丟失。",
+);
+$wgConfirmEditMessages['zh-yue'] = array(
+	'captcha-edit'               => "你編輯的內容中含有新的URL連結;為咗避免受到自動垃圾程式的侵擾,你需要輸入顯示喺下面圖片度嘅文字:<br />
+([[Special:Captcha/help|呢個係乜嘢嚟?]])",
+	'captcha-addurl'               => "你編輯的內容中含有新的URL連結;為咗避免受到自動垃圾程式的侵擾,你需要輸入顯示喺下面圖片度嘅文字:<br />
+([[Special:Captcha/help|呢個係乜嘢嚟?]])",
+	'captcha-create'               => "你編輯的內容中含有新的URL連結;為咗避免受到自動垃圾程式的侵擾,你需要輸入顯示喺下面圖片度嘅文字:<br />
+([[Special:Captcha/help|呢個係乜嘢嚟?]])",
+	'captchahelp-title'          => 'Captcha 幫助',
+	'captchahelp-text'           => "就好似呢個wiki咁,對公眾開放編輯嘅網站係會經常受到垃圾連結騷擾。嗰啲人利用自動化垃圾程序將佢哋嘅連結張貼到好多網站。雖然呢啲連結可以被清除,但係呢啲嘢確實令人十分之討厭。
+
+有時,特別係當響一頁添加新嘅網頁連結嗰陣,呢個網站會畀你睇一幅有顏色的或者有變形文字嘅圖像,跟住要你輸入所顯示嘅文字。因為咁係難以自動完成嘅一項任務,它將允許人保存佢哋嘅編輯,同時亦阻止大多數發送垃圾郵件者同其它機械人嘅攻擊。
+
+令人遺憾嘅係,咁會令到視力唔好嘅人,或者利用基於文本或者基於聲音嘅瀏覽器用戶感到不便。而目前我哋仲未能夠提供音頻嘅選擇。如果咁樣咁啱阻止到你進行正常嘅編輯,請同管理員聯繫以獲得幫助。
+
+撳一下響瀏覽器度嘅「後退」掣返去你之前所編輯緊嘅頁面。",
+	'captcha-createaccount'      => "為咗防止程式自動註冊,你需要輸入以下圖片中顯示的文字先至能夠註冊得到個戶口:<br />
+([[Special:Captcha/help|呢個係乜嘢嚟?]])",
+	'captcha-createaccount-fail' => "驗證碼錯誤或者唔見咗。",
+);
+$wgConfirmEditMessages['zh-hk'] = $wgConfirmEditMessages['zh-tw'];
+$wgConfirmEditMessages['zh-sg'] = $wgConfirmEditMessages['zh-cn'];
+?>

Added: projects/wiki/extensions/recaptcha/ConfirmEdit.php
===================================================================
--- projects/wiki/extensions/recaptcha/ConfirmEdit.php	                        (rev 0)
+++ projects/wiki/extensions/recaptcha/ConfirmEdit.php	2007-06-25 18:20:45 UTC (rev 3715)
@@ -0,0 +1,708 @@
+<?php
+
+/**
+ * Experimental captcha plugin framework.
+ * Not intended as a real production captcha system; derived classes
+ * can extend the base to produce their fancy images in place of the
+ * text-based test output here.
+ *
+ * Copyright (C) 2005, 2006 Brion Vibber <brion at pobox.com>
+ * http://www.mediawiki.org/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @addtogroup Extensions
+ */
+
+if ( defined( 'MEDIAWIKI' ) ) {
+
+global $wgExtensionFunctions, $wgGroupPermissions;
+
+$wgExtensionFunctions[] = 'ceSetup';
+$wgExtensionCredits['other'][] = array(
+	'name' => 'ConfirmEdit',
+	'author' => 'Brion Vibber',
+	'url' => 'http://www.mediawiki.org/wiki/Extension:ConfirmEdit',
+	'description' => 'Simple captcha implementation',
+);
+
+# Internationalisation file
+require_once( 'ConfirmEdit.i18n.php' );
+
+/**
+ * The 'skipcaptcha' permission key can be given out to
+ * let known-good users perform triggering actions without
+ * having to go through the captcha.
+ *
+ * By default, sysops and registered bot accounts will be
+ * able to skip, while others have to go through it.
+ */
+$wgGroupPermissions['*'            ]['skipcaptcha'] = false;
+$wgGroupPermissions['user'         ]['skipcaptcha'] = false;
+$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = false;
+$wgGroupPermissions['bot'          ]['skipcaptcha'] = true; // registered bots
+$wgGroupPermissions['sysop'        ]['skipcaptcha'] = true;
+
+global $wgCaptcha, $wgCaptchaClass, $wgCaptchaTriggers;
+$wgCaptcha = null;
+$wgCaptchaClass = 'SimpleCaptcha';
+
+/**
+ * Actions which can trigger a captcha
+ *
+ * If the 'edit' trigger is on, *every* edit will trigger the captcha.
+ * This may be useful for protecting against vandalbot attacks.
+ *
+ * If using the default 'addurl' trigger, the captcha will trigger on
+ * edits that include URLs that aren't in the current version of the page.
+ * This should catch automated linkspammers without annoying people when
+ * they make more typical edits.
+ *
+ * The captcha code should not use $wgCaptchaTriggers, but CaptchaTriggers()
+ * which also takes into account per namespace triggering.
+ */
+$wgCaptchaTriggers = array();
+$wgCaptchaTriggers['edit']          = false; // Would check on every edit
+$wgCaptchaTriggers['create']		= false; // Check on page creation.
+$wgCaptchaTriggers['addurl']        = true;  // Check on edits that add URLs
+$wgCaptchaTriggers['createaccount'] = true;  // Special:Userlogin&type=signup
+$wgCaptchaTriggers['badlogin']      = true;  // Special:Userlogin after failure
+
+/**
+ * You may wish to apply special rules for captcha triggering on some namespaces.
+ * $wgCaptchaTriggersOnNamespace[<namespace id>][<trigger>] forces an always on / 
+ * always off configuration with that trigger for the given namespace.
+ * Leave unset to use the global options ($wgCaptchaTriggers).
+ *
+ * Shall not be used with 'createaccount' (it is not checked).
+ */
+$wgCaptchaTriggersOnNamespace = array();
+
+#Example:
+#$wgCaptchaTriggersOnNamespace[NS_TALK]['create'] = false; //Allow creation of talk pages without captchas.
+#$wgCaptchaTriggersOnNamespace[NS_PROJECT]['edit'] = true; //Show captcha whenever editing Project pages.
+
+/**
+ * Indicate how to store per-session data required to match up the
+ * internal captcha data with the editor.
+ *
+ * 'CaptchaSessionStore' uses PHP's session storage, which is cookie-based
+ * and may fail for anons with cookies disabled.
+ *
+ * 'CaptchaCacheStore' uses $wgMemc, which avoids the cookie dependency
+ * but may be fragile depending on cache configuration.
+ */
+global $wgCaptchaStorageClass;
+$wgCaptchaStorageClass = 'CaptchaSessionStore';
+
+/**
+ * Number of seconds a captcha session should last in the data cache
+ * before expiring when managing through CaptchaCacheStore class.
+ *
+ * Default is a half hour.
+ */
+global $wgCaptchaSessionExpiration;
+$wgCaptchaSessionExpiration = 30 * 60;
+
+/**
+ * Number of seconds after a bad login that a captcha will be shown to
+ * that client on the login form to slow down password-guessing bots.
+ *
+ * Has no effect if 'badlogin' is disabled in $wgCaptchaTriggers or
+ * if there is not a caching engine enabled.
+ *
+ * Default is five minutes.
+ */
+global $wgCaptchaBadLoginExpiration;
+$wgCaptchaBadLoginExpiration = 5 * 60;
+
+/**
+ * Allow users who have confirmed their e-mail addresses to post
+ * URL links without being harassed by the captcha.
+ */
+global $ceAllowConfirmedEmail;
+$ceAllowConfirmedEmail = false;
+
+/**
+ * Regex to whitelist URLs to known-good sites...
+ * For instance:
+ * $wgCaptchaWhitelist = '#^https?://([a-z0-9-]+\\.)?(wikimedia|wikipedia)\.org/#i';
+ * @fixme Use the 'spam-whitelist' thingy instead?
+ */
+$wgCaptchaWhitelist = false;
+
+/**
+ * Additional regexes to check for. Use full regexes; can match things
+ * other than URLs such as junk edits.
+ *
+ * If the new version matches one and the old version doesn't,
+ * toss up the captcha screen.
+ *
+ * @fixme Add a message for local admins to add items as well.
+ */
+$wgCaptchaRegexes = array();
+
+/** Register special page */
+global $wgSpecialPages;
+$wgSpecialPages['Captcha'] = array( /*class*/ 'SpecialPage', /*name*/'Captcha', /*restriction*/ '',
+	/*listed*/ false, /*function*/ false, /*file*/ false );
+
+/**
+ * Set up message strings for captcha utilities.
+ */
+function ceSetup() {
+	# Add messages
+	global $wgMessageCache, $wgConfirmEditMessages;
+	foreach( $wgConfirmEditMessages as $lang => $messages )
+		$wgMessageCache->addMessages( $messages, $lang );
+
+	global $wgHooks, $wgCaptcha, $wgCaptchaClass, $wgSpecialPages;
+	$wgCaptcha = new $wgCaptchaClass();
+	$wgHooks['EditFilter'][] = array( &$wgCaptcha, 'confirmEdit' );
+
+	$wgHooks['UserCreateForm'][] = array( &$wgCaptcha, 'injectUserCreate' );
+	$wgHooks['AbortNewAccount'][] = array( &$wgCaptcha, 'confirmUserCreate' );
+	
+	$wgHooks['LoginAuthenticateAudit'][] = array( &$wgCaptcha, 'triggerUserLogin' );
+	$wgHooks['UserLoginForm'][] = array( &$wgCaptcha, 'injectUserLogin' );
+	$wgHooks['AbortLogin'][] = array( &$wgCaptcha, 'confirmUserLogin' );
+}
+
+/**
+ * Entry point for Special:Captcha
+ */
+function wfSpecialCaptcha( $par = null ) {
+	global $wgCaptcha;
+	switch( $par ) {
+	case "image":
+		return $wgCaptcha->showImage();
+	case "help":
+	default:
+		return $wgCaptcha->showHelp();
+	}
+}
+
+class SimpleCaptcha {
+	function SimpleCaptcha() {
+		global $wgCaptchaStorageClass;
+		$this->storage = new $wgCaptchaStorageClass;
+	}
+	
+	/**
+	 * Insert a captcha prompt into the edit form.
+	 * This sample implementation generates a simple arithmetic operation;
+	 * it would be easy to defeat by machine.
+	 *
+	 * Override this!
+	 *
+	 * @return string HTML
+	 */
+	function getForm() {
+		$a = mt_rand(0, 100);
+		$b = mt_rand(0, 10);
+		$op = mt_rand(0, 1) ? '+' : '-';
+
+		$test = "$a $op $b";
+		$answer = ($op == '+') ? ($a + $b) : ($a - $b);
+
+		$index = $this->storeCaptcha( array( 'answer' => $answer ) );
+
+		return "<p><label for=\"wpCaptchaWord\">$test</label> = " .
+			wfElement( 'input', array(
+				'name' => 'wpCaptchaWord',
+				'id'   => 'wpCaptchaWord',
+				'tabindex' => 1 ) ) . // tab in before the edit textarea
+			"</p>\n" .
+			wfElement( 'input', array(
+				'type'  => 'hidden',
+				'name'  => 'wpCaptchaId',
+				'id'    => 'wpCaptchaId',
+				'value' => $index ) );
+	}
+
+	/**
+	 * Insert the captcha prompt into an edit form.
+	 * @param OutputPage $out
+	 */
+	function editCallback( &$out ) {
+		$out->addWikiText( $this->getMessage( $this->action ) );
+		$out->addHTML( $this->getForm() );
+	}
+
+	/**
+	 * Show a message asking the user to enter a captcha on edit
+	 * The result will be treated as wiki text
+	 *
+	 * @param $action Action being performed
+	 * @return string
+	 */
+	function getMessage( $action ) {
+		$name = 'captcha-' . $action;
+		$text = wfMsg( $name );
+		# Obtain a more tailored message, if possible, otherwise, fall back to
+		# the default for edits
+		return wfEmptyMsg( $name, $text ) ? wfMsg( 'captcha-edit' ) : $text;
+	}
+
+	/**
+	 * Inject whazawhoo
+	 * @fixme if multiple thingies insert a header, could break
+	 * @param SimpleTemplate $template
+	 * @return bool true to keep running callbacks
+	 */
+	function injectUserCreate( &$template ) {
+		global $wgCaptchaTriggers, $wgOut;
+		if( $wgCaptchaTriggers['createaccount'] ) {
+			$template->set( 'header',
+				"<div class='captcha'>" .
+				$wgOut->parse( $this->getMessage( 'createaccount' ) ) .
+				$this->getForm() .
+				"</div>\n" );
+		}
+		return true;
+	}
+
+	/**
+	 * Inject a captcha into the user login form after a failed
+	 * password attempt as a speedbump for mass attacks.
+	 * @fixme if multiple thingies insert a header, could break
+	 * @param SimpleTemplate $template
+	 * @return bool true to keep running callbacks
+	 */
+	function injectUserLogin( &$template ) {
+		if( $this->isBadLoginTriggered() ) {
+			global $wgOut;
+			$template->set( 'header',
+				"<div class='captcha'>" .
+				$wgOut->parse( $this->getMessage( 'badlogin' ) ) .
+				$this->getForm() .
+				"</div>\n" );
+		}
+		return true;
+	}
+	
+	/**
+	 * When a bad login attempt is made, increment an expiring counter
+	 * in the memcache cloud. Later checks for this may trigger a
+	 * captcha display to prevent too many hits from the same place.
+	 * @param User $user
+	 * @param string $password
+	 * @param int $retval authentication return value
+	 * @return bool true to keep running callbacks
+	 */
+	function triggerUserLogin( $user, $password, $retval ) {
+		global $wgCaptchaTriggers, $wgCaptchaBadLoginExpiration, $wgMemc;
+		if( $retval == LoginForm::WRONG_PASS && $wgCaptchaTriggers['badlogin'] ) {
+			$key = $this->badLoginKey();
+			$count = $wgMemc->get( $key );
+			if( !$count ) {
+				$wgMemc->add( $key, 0, $wgCaptchaBadLoginExpiration );
+			}
+			$count = $wgMemc->incr( $key );
+		}
+		return true;
+	}
+	
+	/**
+	 * Check if a bad login has already been registered for this
+	 * IP address. If so, require a captcha.
+	 * @return bool
+	 * @access private
+	 */
+	function isBadLoginTriggered() {
+		global $wgMemc;
+		return intval( $wgMemc->get( $this->badLoginKey() ) ) > 0;
+	}
+	
+	/**
+	 * Internal cache key for badlogin checks.
+	 * @return string
+	 * @access private
+	 */
+	function badLoginKey() {
+		return wfMemcKey( 'captcha', 'badlogin', 'ip', wfGetIP() );
+	}
+	
+	/**
+	 * Check if the submitted form matches the captcha session data provided
+	 * by the plugin when the form was generated.
+	 *
+	 * Override this!
+	 *
+	 * @param WebRequest $request
+	 * @param array $info
+	 * @return bool
+	 */
+	function keyMatch( $request, $info ) {
+		return $request->getVal( 'wpCaptchaWord' ) == $info['answer'];
+	}
+
+	// ----------------------------------
+
+	/**
+	 * @param EditPage $editPage
+	 * @param string $action (edit/create/addurl...)
+	 * @return bool true if action triggers captcha on editPage's namespace
+	 */
+	function captchaTriggers( &$editPage, $action) {
+		global $wgCaptchaTriggers, $wgCaptchaTriggersOnNamespace;	
+		//Special config for this NS?
+		if (isset( $wgCaptchaTriggersOnNamespace[$editPage->mTitle->getNamespace()][$action] ) )
+			return $wgCaptchaTriggersOnNamespace[$editPage->mTitle->getNamespace()][$action];
+
+		return ( !empty( $wgCaptchaTriggers[$action] ) ); //Default
+	}
+
+
+	/**
+	 * @param EditPage $editPage
+	 * @param string $newtext
+	 * @param string $section
+	 * @return bool true if the captcha should run
+	 */
+	function shouldCheck( &$editPage, $newtext, $section ) {
+		$this->trigger = '';
+
+		global $wgUser;
+		if( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+			wfDebug( "ConfirmEdit: user group allows skipping captcha\n" );
+			return false;
+		}
+
+		global $wgEmailAuthentication, $ceAllowConfirmedEmail;
+		if( $wgEmailAuthentication && $ceAllowConfirmedEmail &&
+			$wgUser->isEmailConfirmed() ) {
+			wfDebug( "ConfirmEdit: user has confirmed mail, skipping captcha\n" );
+			return false;
+		}
+
+		if( $this->captchaTriggers( $editPage, 'edit' ) ) {
+			// Check on all edits
+			global $wgUser, $wgTitle;
+			$this->trigger = sprintf( "edit trigger by '%s' at [[%s]]",
+				$wgUser->getName(),
+				$wgTitle->getPrefixedText() );
+			$this->action = 'edit';
+			wfDebug( "ConfirmEdit: checking all edits...\n" );
+			return true;
+		}
+
+		if( $this->captchaTriggers( $editPage, 'create' )  && !$editPage->mTitle->exists() ) {
+			//Check if creating a page
+			global $wgUser, $wgTitle;
+			$this->trigger = sprintf( "Create trigger by '%s' at [[%s]]",
+				$wgUser->getName(),
+				$wgTitle->getPrefixedText() );
+			$this->action = 'create';
+			wfDebug( "ConfirmEdit: checking on page creation...\n" );
+			return true;
+		}
+
+		if( $this->captchaTriggers( $editPage, 'addurl' ) ) {
+			// Only check edits that add URLs
+			$oldtext = $this->loadText( $editPage, $section );
+
+			$oldLinks = $this->findLinks( $oldtext );
+			$newLinks = $this->findLinks( $newtext );
+			$unknownLinks = array_filter( $newLinks, array( &$this, 'filterLink' ) );
+
+			$addedLinks = array_diff( $unknownLinks, $oldLinks );
+			$numLinks = count( $addedLinks );
+
+			if( $numLinks > 0 ) {
+				global $wgUser, $wgTitle;
+				$this->trigger = sprintf( "%dx url trigger by '%s' at [[%s]]: %s",
+					$numLinks,
+					$wgUser->getName(),
+					$wgTitle->getPrefixedText(),
+					implode( ", ", $addedLinks ) );
+				$this->action = 'addurl';
+				return true;
+			}
+		}
+
+		global $wgCaptchaRegexes;
+		if( !empty( $wgCaptchaRegexes ) ) {
+			// Custom regex checks
+			$oldtext = $this->loadText( $editPage, $section );
+
+			foreach( $wgCaptchaRegexes as $regex ) {
+				$newMatches = array();
+				if( preg_match_all( $regex, $newtext, $newMatches ) ) {
+					$oldMatches = array();
+					preg_match_all( $regex, $oldtext, $oldMatches );
+
+					$addedMatches = array_diff( $newMatches[0], $oldMatches[0] );
+
+					$numHits = count( $addedMatches );
+					if( $numHits > 0 ) {
+						global $wgUser, $wgTitle;
+						$this->trigger = sprintf( "%dx %s at [[%s]]: %s",
+							$numHits,
+							$regex,
+							$wgUser->getName(),
+							$wgTitle->getPrefixedText(),
+							implode( ", ", $addedMatches ) );
+						$this->action = 'edit';
+						return true;
+					}
+				}
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Filter callback function for URL whitelisting
+	 * @return bool true if unknown, false if whitelisted
+	 * @access private
+	 */
+	function filterLink( $url ) {
+		global $wgCaptchaWhitelist;
+		return !( $wgCaptchaWhitelist && preg_match( $wgCaptchaWhitelist, $url ) );
+	}
+
+	/**
+	 * The main callback run on edit attempts.
+	 * @param EditPage $editPage
+	 * @param string $newtext
+	 * @param string $section
+	 * @param bool true to continue saving, false to abort and show a captcha form
+	 */
+	function confirmEdit( &$editPage, $newtext, $section ) {
+		if( $this->shouldCheck( $editPage, $newtext, $section ) ) {
+			if( $this->passCaptcha() ) {
+				return true;
+			} else {
+				$editPage->showEditForm( array( &$this, 'editCallback' ) );
+				return false;
+			}
+		} else {
+			wfDebug( "ConfirmEdit: no need to show captcha.\n" );
+			return true;
+		}
+	}
+
+	/**
+	 * Hook for user creation form submissions.
+	 * @param User $u
+	 * @param string $message
+	 * @return bool true to continue, false to abort user creation
+	 */
+	function confirmUserCreate( $u, &$message ) {
+		global $wgCaptchaTriggers;
+		if( $wgCaptchaTriggers['createaccount'] ) {
+			$this->trigger = "new account '" . $u->getName() . "'";
+			if( !$this->passCaptcha() ) {
+				$message = wfMsg( 'captcha-createaccount-fail' );
+				return false;
+			}
+		}
+		return true;
+	}
+	
+	/**
+	 * Hook for user login form submissions.
+	 * @param User $u
+	 * @param string $message
+	 * @return bool true to continue, false to abort user creation
+	 */
+	function confirmUserLogin( $u, $pass, &$retval ) {
+		if( $this->isBadLoginTriggered() ) {
+			$this->trigger = "post-badlogin login '" . $u->getName() . "'";
+			if( !$this->passCaptcha() ) {
+				$message = wfMsg( 'captcha-badlogin-fail' );
+				// Emulate a bad-password return to confuse the shit out of attackers
+				$retval = LoginForm::WRONG_PASS;
+				return false;
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * Given a required captcha run, test form input for correct
+	 * input on the open session.
+	 * @return bool if passed, false if failed or new session
+	 */
+	function passCaptcha() {
+		$info = $this->retrieveCaptcha();
+		if( $info ) {
+			global $wgRequest;
+			if( $this->keyMatch( $wgRequest, $info ) ) {
+				$this->log( "passed" );
+				$this->clearCaptcha( $info );
+				return true;
+			} else {
+				$this->clearCaptcha( $info );
+				$this->log( "bad form input" );
+				return false;
+			}
+		} else {
+			$this->log( "new captcha session" );
+			return false;
+		}
+	}
+
+	/**
+	 * Log the status and any triggering info for debugging or statistics
+	 * @param string $message
+	 */
+	function log( $message ) {
+		wfDebugLog( 'captcha', 'ConfirmEdit: ' . $message . '; ' .  $this->trigger );
+	}
+
+	/**
+	 * Generate a captcha session ID and save the info in PHP's session storage.
+	 * (Requires the user to have cookies enabled to get through the captcha.)
+	 *
+	 * A random ID is used so legit users can make edits in multiple tabs or
+	 * windows without being unnecessarily hobbled by a serial order requirement.
+	 * Pass the returned id value into the edit form as wpCaptchaId.
+	 *
+	 * @param array $info data to store
+	 * @return string captcha ID key
+	 */
+	function storeCaptcha( $info ) {
+		if( !isset( $info['index'] ) ) {
+			// Assign random index if we're not udpating
+			$info['index'] = strval( mt_rand() );
+		}
+		$this->storage->store( $info['index'], $info );
+		return $info['index'];
+	}
+
+	/**
+	 * Fetch this session's captcha info.
+	 * @return mixed array of info, or false if missing
+	 */
+	function retrieveCaptcha() {
+		global $wgRequest;
+		$index = $wgRequest->getVal( 'wpCaptchaId' );
+		return $this->storage->retrieve( $index );
+	}
+
+	/**
+	 * Clear out existing captcha info from the session, to ensure
+	 * it can't be reused.
+	 */
+	function clearCaptcha( $info ) {
+		$this->storage->clear( $info['index'] );
+	}
+
+	/**
+	 * Retrieve the current version of the page or section being edited...
+	 * @param EditPage $editPage
+	 * @param string $section
+	 * @return string
+	 * @access private
+	 */
+	function loadText( $editPage, $section ) {
+		$rev = Revision::newFromTitle( $editPage->mTitle );
+		if( is_null( $rev ) ) {
+			return "";
+		} else {
+			$text = $rev->getText();
+			if( $section != '' ) {
+				return Article::getSection( $text, $section );
+			} else {
+				return $text;
+			}
+		}
+	}
+
+	/**
+	 * Extract a list of all recognized HTTP links in the text.
+	 * @param string $text
+	 * @return array of strings
+	 */
+	function findLinks( $text ) {
+		global $wgParser, $wgTitle, $wgUser;
+
+		$options = new ParserOptions();
+		$text = $wgParser->preSaveTransform( $text, $wgTitle, $wgUser, $options );
+		$out = $wgParser->parse( $text, $wgTitle, $options );
+
+		return array_keys( $out->getExternalLinks() );
+	}
+
+	/**
+	 * Show a page explaining what this wacky thing is.
+	 */
+	function showHelp() {
+		global $wgOut, $ceAllowConfirmedEmail;
+		$wgOut->setPageTitle( wfMsg( 'captchahelp-title' ) );
+		$wgOut->addWikiText( wfMsg( 'captchahelp-text' ) );
+		if ( $this->storage->cookiesNeeded() ) {
+			$wgOut->addWikiText( wfMsg( 'captchahelp-cookies-needed' ) );
+		}
+	}
+
+}
+
+class CaptchaSessionStore {
+	function store( $index, $info ) {
+		$_SESSION['captcha' . $info['index']] = $info;
+	}
+	
+	function retrieve( $index ) {
+		if( isset( $_SESSION['captcha' . $index] ) ) {
+			return $_SESSION['captcha' . $index];
+		} else {
+			return false;
+		}
+	}
+	
+	function clear( $index ) {
+		unset( $_SESSION['captcha' . $index] );
+	}
+
+	function cookiesNeeded() {
+		return true;
+	}
+}
+
+class CaptchaCacheStore {
+	function store( $index, $info ) {
+		global $wgMemc, $wgCaptchaSessionExpiration;
+		$wgMemc->set( wfMemcKey( 'captcha', $index ), $info,
+			$wgCaptchaSessionExpiration );
+	}
+
+	function retrieve( $index ) {
+		global $wgMemc;
+		$info = $wgMemc->get( wfMemcKey( 'captcha', $index ) );
+		if( $info ) {
+			return $info;
+		} else {
+			return false;
+		}
+	}
+	
+	function clear( $index ) {
+		global $wgMemc;
+		$wgMemc->delete( wfMemcKey( 'captcha', $index ) );
+	}
+
+	function cookiesNeeded() {
+		return false;
+	}
+}
+
+} # End invocation guard
+
+?>

Added: projects/wiki/extensions/recaptcha/README
===================================================================
--- projects/wiki/extensions/recaptcha/README	                        (rev 0)
+++ projects/wiki/extensions/recaptcha/README	2007-06-25 18:20:45 UTC (rev 3715)
@@ -0,0 +1,4 @@
+The reCAPTCH MediaWiki plugin stops spam and password cracking
+attempts. For instructions on installing the plugin, see:
+
+	  http://recaptcha.net/plugins/mediawiki

Added: projects/wiki/extensions/recaptcha/ReCaptcha.i18n.php
===================================================================
--- projects/wiki/extensions/recaptcha/ReCaptcha.i18n.php	                        (rev 0)
+++ projects/wiki/extensions/recaptcha/ReCaptcha.i18n.php	2007-06-25 18:20:45 UTC (rev 3715)
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Internationalisation file for the reCAPTCHA extension.
+ *
+ * @addtogroup Extensions
+*/
+
+function efReCaptchaMessages() {
+	return array(
+
+/* English */
+'en' => 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:', 
+
+),
+
+/* TODO - more languages */
+
+	);
+
+}
+?>

Added: projects/wiki/extensions/recaptcha/ReCaptcha.php
===================================================================
--- projects/wiki/extensions/recaptcha/ReCaptcha.php	                        (rev 0)
+++ projects/wiki/extensions/recaptcha/ReCaptcha.php	2007-06-25 18:20:45 UTC (rev 3715)
@@ -0,0 +1,147 @@
+<?php
+
+/**
+ * Captcha class using the reCAPTCHA widget. 
+ * Stop Spam. Read Books.  
+ *
+ * @addtogroup Extensions
+ * @author Mike Crawford <mike.crawford at gmail.com>
+ * @copyright Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
+ * @licence MIT/X11
+ */
+
+if( defined( 'MEDIAWIKI' ) ) {
+require_once( 'recaptchalib.php' );
+
+// make sure we have the confirm edit plugin 
+require_once( 'ConfirmEdit.php' );
+
+// Set the default CAPTCHA to be reCAPTCHA.
+$wgCaptchaClass = 'ReCaptcha';
+
+
+global $recaptcha_public_key, $recaptcha_private_key;
+
+// Set these in LocalSettings.php
+$recaptcha_public_key = '';
+$recaptcha_private_key = '';
+
+
+$wgExtensionFunctions[] = 'efReCaptcha';
+
+/**
+ * Add the reCAPTCHA messages
+ * 
+ */
+function efReCaptcha() {
+	global $wgMessageCache;
+	global $recaptcha_public_key, $recaptcha_private_key;
+	global $wgServerName;
+	
+	
+	require_once( dirname( __FILE__ ) . '/ReCaptcha.i18n.php' );
+	foreach( efReCaptchaMessages() as $lang => $messages )
+		$wgMessageCache->addMessages( $messages, $lang );
+
+	if ($recaptcha_private_key == '' || $recaptcha_public_key == '') {
+		die ('You need to set $recaptcha_private_key and $recaptcha_public_key in LocalSettings.php to ' .
+		     "use the reCAPTCHA plugin. You can sign up for a key <a href='" .
+		     htmlentities(recaptcha_get_signup_url ($wgServerName, "mediawiki")) . "'>here</a>.");
+	}	
+}
+
+
+class ReCaptcha extends SimpleCaptcha {
+		
+	//reCAPTHCA error code returned from recaptcha_check_answer
+	private $recaptcha_error = null;
+
+		
+	/** 
+	 * Displays the reCAPTCHA widget.  
+         * If $this->recaptcha_error is set, it will display an error in the widget.
+	 *
+         */
+	function getForm() {
+		global $recaptcha_public_key;
+		return "<script>var RecaptchaOptions = { tabindex : 1 }; </script> " .
+		recaptcha_get_html($recaptcha_public_key, $this->recaptcha_error);
+	}
+
+
+		
+	/**
+	 * Calls the library function recaptcha_check_answer to verify the users input.
+	 * Sets $this->recaptcha_error if the user is incorrect.
+         * @return boolean 
+         *
+         */
+	function passCaptcha() {
+		global $recaptcha_private_key;
+		$recaptcha_response = recaptcha_check_answer ($recaptcha_private_key,
+							      wfGetIP (),
+							      $_POST['recaptcha_challenge_field'],
+							      $_POST['recaptcha_response_field']);
+                if (!$recaptcha_response->is_valid) {
+			$this->recaptcha_error = $recaptcha_response->error;
+			return false;
+                }
+		$recaptcha_error = null;
+                return true;
+
+	}
+
+
+
+        /**
+         * Called on all edit page saves. (EditFilter events)
+         * @return boolean - true if page save should continue, false if should display Captcha widget.
+         */
+        function confirmEdit( &$editPage, $newtext, $section ) {
+                if( $this->shouldCheck( $editPage, $newtext, $section ) ) {
+
+                        if (!isset($_POST['recaptcha_response_field'])) {
+                                //User has not yet been presented with Captcha, show the widget.
+                                $editPage->showEditForm( array( &$this, 'editCallback' ) );
+                                return false;
+                        }
+
+                        if( $this->passCaptcha() ) {
+                                return true;
+                        } else {
+                                //Try again - show the widget
+                                $editPage->showEditForm( array( &$this, 'editCallback' ) );
+                                return false;
+                        }
+
+                } else {
+                        wfDebug( "ConfirmEdit: no need to show captcha.\n" );
+                        return true;
+                }
+        }
+
+	
+
+	/**
+	 * Show a message asking the user to enter a captcha on edit
+	 * The result will be treated as wiki text
+	 *
+	 * @param $action Action being performed
+	 * @return string
+	 */
+	function getMessage( $action ) {
+		$name = 'recaptcha-' . $action;
+		$text = wfMsg( $name );
+		# Obtain a more tailored message, if possible, otherwise, fall back to
+		# the default for edits
+		return wfEmptyMsg( $name, $text ) ? wfMsg( 'recaptcha-edit' ) : $text;
+	}
+
+}
+	
+} else {
+	echo( "This file is an extension to the MediaWiki software and cannot be used standalone.\n" );
+	die( 1 );
+}
+
+?>

Added: projects/wiki/extensions/recaptcha/recaptchalib.php
===================================================================
--- projects/wiki/extensions/recaptcha/recaptchalib.php	                        (rev 0)
+++ projects/wiki/extensions/recaptcha/recaptchalib.php	2007-06-25 18:20:45 UTC (rev 3715)
@@ -0,0 +1,275 @@
+<?php
+/*
+ * This is a PHP library that handles calling reCAPTCHA.
+ *    - Documentation and latest version
+ *          http://recaptcha.net/plugins/php/
+ *    - Get a reCAPTCHA API Key
+ *          http://recaptcha.net/api/getkey
+ *    - Discussion group
+ *          http://groups.google.com/group/recaptcha
+ *
+ * Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
+ * AUTHORS:
+ *   Mike Crawford
+ *   Ben Maurer
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+/**
+ * The reCAPTCHA server URL's
+ */
+$recaptcha_api_server = 'http://api.recaptcha.net';
+$recaptcha_api_secure_server = 'https://api-secure.recaptcha.net';
+$recaptcha_verify_server = 'api-verify.recaptcha.net';
+
+
+/**
+ * Encodes the given data into a query string format
+ * @param $data - array of string elements to be encoded
+ * @return string - encoded request
+ */
+function _recaptcha_qsencode ($data) {
+        $req = "";
+        foreach ( $data as $key => $value )
+                $req .= $key . '=' . urlencode( stripslashes($value) ) . '&';
+
+        // Cut the last '&'
+        $req=substr($req,0,strlen($req)-1);
+        return $req;
+}
+
+
+
+/**
+ * Submits an HTTP POST to a reCAPTCHA server
+ * @param string $host
+ * @param string $path
+ * @param array $data
+ * @param int port
+ * @return array response
+ */
+function _recaptcha_http_post($host, $path, $data, $port = 80) {
+
+        $req = _recaptcha_qsencode ($data);
+
+        $http_request  = "POST $path HTTP/1.0\r\n";
+        $http_request .= "Host: $host\r\n";
+        $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
+        $http_request .= "Content-Length: " . strlen($req) . "\r\n";
+        $http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
+        $http_request .= "\r\n";
+        $http_request .= $req;
+
+        $response = '';
+        if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
+                die ('Could not open socket');
+        }
+
+        fwrite($fs, $http_request);
+
+        while ( !feof($fs) )
+                $response .= fgets($fs, 1160); // One TCP-IP packet
+        fclose($fs);
+        $response = explode("\r\n\r\n", $response, 2);
+
+        return $response;
+}
+
+
+
+/**
+ * Gets the challenge HTML (javascript and non-javascript version).
+ * This is called from the browser, and the resulting reCAPTCHA HTML widget
+ * is embedded within the HTML form it was called from.
+ * @param string $pubkey A public key for reCAPTCHA
+ * @param string $error The error given by reCAPTCHA (optional, default is null)
+ * @param boolean $use_ssl Should the request be made over ssl? (optional, default is false)
+
+ * @return string - The HTML to be embedded in the user's form.
+ */
+function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false)
+{
+        global $recaptcha_api_server, $recaptcha_api_ssl_server;
+
+	if ($pubkey == null || $pubkey == '') {
+		die ("To use reCAPTCHA you must get an API key from <a href='http://recaptcha.net/api/getkey'>http://recaptcha.net/api/getkey</a>");
+	}
+	
+	if ($use_ssl) {
+           $server = $recaptcha_api_ssl_server;
+        } else {
+           $server = $recaptcha_api_server;
+        }
+        $errorpart = "";
+        if ($error) {
+           $errorpart = "&amp;error=" . $error;
+        }
+        return '<script type="text/javascript" src="'. $server . '/challenge?k=' . $pubkey . $errorpart . '"></script>
+
+	<noscript>
+  		<iframe src="'. $server . '/noscript?k=' . $pubkey . $errorpart . '" 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>';
+}
+
+
+
+
+/**
+ * A ReCaptchaResponse is returned from recaptcha_check_answer()
+ */
+class ReCaptchaResponse {
+        var $is_valid;
+        var $error;
+}
+
+
+/**
+  * Calls an HTTP POST function to verify if the user's guess was correct
+  * @param string $privkey
+  * @param string $remoteip
+  * @param string $challenge
+  * @param string $response
+  * @return ReCaptchaResponse
+  */
+function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response)
+{
+	if ($privkey == null || $privkey == '') {
+		die ("To use reCAPTCHA you must get an API key from <a href='http://recaptcha.net/api/getkey'>http://recaptcha.net/api/getkey</a>");
+	}
+
+	if ($remoteip == null || $remoteip == '') {
+		die ("For security reasons, you must pass the remote ip to reCAPTCHA");
+	}
+
+	
+	
+        //discard spam submissions
+        if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) {
+                $recaptcha_response = new ReCaptchaResponse();
+                $recaptcha_response->is_valid = false;
+                $recaptcha_response->error = 'incorrect-captcha-sol';
+                return $recaptcha_response;
+        }
+
+        global $recaptcha_verify_server;
+        $response = _recaptcha_http_post ($recaptcha_verify_server, "/verify",
+                                          array (
+                                                 'privatekey' => $privkey,
+                                                 'remoteip' => $remoteip,
+                                                 'challenge' => $challenge,
+                                                 'response' => $response
+                                                 )
+                                          );
+
+        $answers = explode ("\n", $response [1]);
+        $recaptcha_response = new ReCaptchaResponse();
+
+        if (trim ($answers [0]) == 'true') {
+                $recaptcha_response->is_valid = true;
+        }
+        else {
+                $recaptcha_response->is_valid = false;
+                $recaptcha_response->error = $answers [1];
+        }
+        return $recaptcha_response;
+
+}
+
+/**
+ * gets a URL where the user can sign up for reCAPTCHA. If your application
+ * has a configuration page where you enter a key, you should provide a link
+ * using this function.
+ * @param string $domain The domain where the page is hosted
+ * @param string $appname The name of your application
+ */
+function recaptcha_get_signup_url ($domain = null, $appname = null) {
+	return "http://recaptcha.net/api/getkey?" .  _recaptcha_qsencode (array ('domain' => $domain, 'app' => $appname));
+}
+
+
+
+/* Mailhide related code */
+
+function _recaptcha_aes_encrypt($val,$ky) {
+	if (! function_exists ("mcrypt_encrypt")) {
+		die ("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed.");
+	}
+	$mode=MCRYPT_MODE_CBC;   
+	$enc=MCRYPT_RIJNDAEL_128;
+	$val=str_pad($val, (16*(floor(strlen($val) / 16)+(strlen($val) % 16==0?2:1))), chr(16-(strlen($val) % 16)));
+	return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
+}
+
+
+function _recaptcha_mailhide_urlbase64 ($x) {
+	return strtr(base64_encode ($x), '+/', '-_');
+}
+
+/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */
+function recaptcha_mailhide_url($pubkey, $privkey, $email) {
+	if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) {
+		die ("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " .
+		     "you can do so at <a href='http://mailhide.recaptcha.net/apikey'>http://mailhide.recaptcha.net/apikey</a>");
+	}
+	
+
+	$ky = pack('H*', $privkey);
+	$cryptmail = _recaptcha_aes_encrypt ($email, $ky);
+	
+	return "http://mailhide.recaptcha.net/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail);
+}
+
+/**
+ * gets the parts of the email to expose to the user.
+ * eg, given johndoe at example,com return ["john", "example.com"].
+ * the email is then displayed as john... at example.com
+ */
+function _recaptcha_mailhide_email_parts ($email) {
+	$arr = preg_split("/@/", $email );
+
+	if (strlen ($arr[0]) <= 4) {
+		$arr[0] = substr ($arr[0], 0, 1);
+	} else if (strlen ($arr[0]) <= 6) {
+		$arr[0] = substr ($arr[0], 0, 3);
+	} else {
+		$arr[0] = substr ($arr[0], 0, 4);
+	}
+	return $arr;
+}
+
+/**
+ * Gets html to display an email address given a public an private key.
+ * to get a key, go to:
+ *
+ * http://mailhide.recaptcha.net/apikey
+ */
+function recaptcha_mailhide_html($pubkey, $privkey, $email) {
+	$emailparts = _recaptcha_mailhide_email_parts ($email);
+	$url = recaptcha_mailhide_url ($pubkey, $privkey, $email);
+	
+	return htmlentities($emailparts[0]) . "<a href='" . htmlentities ($url) .
+		"' onclick=\"window.open('" . htmlentities ($url) . "', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;\" title=\"Reveal this e-mail address\">...</a>@" . htmlentities ($emailparts [1]);
+
+}
+
+
+?>




More information about the jbossws-commits mailing list