diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2012-04-26 18:23:31 +0200 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2012-04-26 18:23:31 +0200 |
commit | c4372dd38a4d109b4f3881ea63b667e33adbe503 (patch) | |
tree | e8e6dae1229a68c26b7a348c73dc0c8c77da97e5 /extensions/ConfirmEdit | |
parent | cf566324cfb218f0c7323d97d2a103bbb8d60ba4 (diff) |
Update to MediaWiki 1.18.3
Diffstat (limited to 'extensions/ConfirmEdit')
24 files changed, 1256 insertions, 668 deletions
diff --git a/extensions/ConfirmEdit/Asirra.class.php b/extensions/ConfirmEdit/Asirra.class.php new file mode 100644 index 00000000..1f31d089 --- /dev/null +++ b/extensions/ConfirmEdit/Asirra.class.php @@ -0,0 +1,47 @@ +<?php +/** + * @author Bachsau + * @author Niklas Laxström + */ + +class Asirra extends SimpleCaptcha { + public $asirra_clientscript = 'http://challenge.asirra.com/js/AsirraClientSide.js'; + + // As we don't have to store anything but some other things to do, + // we're going to replace that constructor completely. + function __construct() { + global $wgExtensionAssetsPath, $wgAsirraScriptPath; + $this->asirra_localpath = "$wgExtensionAssetsPath/ConfirmEdit"; + } + + function getForm() { + global $wgAsirraEnlargedPosition, $wgAsirraCellsPerRow, $wgOut, $wgLang; + + $wgOut->addModules( 'ext.confirmedit.asirra' ); + $js = Html::linkedScript( $this->asirra_clientscript ); + + $message = Xml::encodeJsVar( wfMessage( 'asirra-createaccount-fail' )->plain() ); + $js .= Html::inlineScript( <<<JAVASCRIPT +var asirra_js_failed = '$message'; +JAVASCRIPT + ); + $js .= '<noscript>' . wfMessage( 'asirra-nojs' )->parse() . '</noscript>'; + return $js; + } + + function passCaptcha() { + global $wgRequest; + + $ticket = $wgRequest->getVal( 'Asirra_Ticket' ); + $api = 'http://challenge.asirra.com/cgi/Asirra?'; + $params = array( + 'action' => 'ValidateTicket', + 'ticket' => $ticket, + ); + + $response = Http::get( $api . wfArrayToCgi( $params ) ); + $xml = simplexml_load_string( $response ); + $result = $xml->xpath( '/AsirraValidation/Result' ); + return strval( $result[0] ) === 'Pass'; + } +} diff --git a/extensions/ConfirmEdit/Asirra.i18n.php b/extensions/ConfirmEdit/Asirra.i18n.php new file mode 100644 index 00000000..98ab918b --- /dev/null +++ b/extensions/ConfirmEdit/Asirra.i18n.php @@ -0,0 +1,228 @@ +<?php +/** + * Internationalisation file for the Asirra module of the ConfirmEdit + * extension. + * + * @file + * @ingroup Extensions + */ + +$messages = array(); + +/* English */ +$messages['en'] = array( + 'asirra-desc' => 'Asirra module for ConfirmEdit', + 'asirra-edit' => 'To help protect against automated edit spam, please select just the cat photos in the box below:', + 'asirra-addurl' => 'Your edit includes new external links. To help protect against automated spam, please select just the cat photos in the box below:', + 'asirra-badpass' => 'To help protect against automated password cracking, please select just the cat photos in the box below:', + 'asirra-createaccount' => 'To help protect against automated account creation, please select just the cat photos in the box below:', + 'asirra-createaccount-fail' => "Please correctly identify the cats.", + 'asirra-create' => 'To help protect against automated page creation, please select just the cat photos in the box below:', + 'asirra-nojs' => '\'\'\'Please enable JavaScript and resubmit the page.\'\'\'', + 'asirra-failed' => 'Please identify all cat images', +); + +/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) + * @author EugeneZelenko + * @author Jim-by + * @author Wizardist + */ +$messages['be-tarask'] = array( + 'asirra-desc' => 'Модуль Asirra для ConfirmEdit', + 'asirra-edit' => 'Для абароны супраць спаму, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', + 'asirra-addurl' => 'Вашае рэдагаваньне ўтрымлівае новыя вонкавыя спасылкі. Для абароны супраць спаму, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', + 'asirra-badpass' => 'Для абароны супраць аўтаматычнага падбору паролю, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', + 'asirra-createaccount' => 'Для абароны супраць аўтаматычнага стварэньня рахункаў, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', + 'asirra-createaccount-fail' => 'Калі ласка, слушна выберыце катоў.', + 'asirra-create' => 'Для абароны супраць аўтаматычнага стварэньня старонак, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', + 'asirra-nojs' => "'''Калі ласка, дазвольце JavaScript і дашліце старонку зноў.'''", + 'asirra-failed' => 'Калі ласка, вызначце ўсе выявы з катамі', +); + +/** German (Deutsch) + * @author Kghbln + */ +$messages['de'] = array( + 'asirra-desc' => 'Ermöglicht die Nutzung des Anti-Spam-Moduls Asirra', + 'asirra-edit' => 'Zum Schutz vor automatisiertem Spam bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', + 'asirra-addurl' => 'Deine Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spam bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', + 'asirra-badpass' => 'Zum Schutz gegen automatisiertes Knacken von Passwörtern bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', + 'asirra-createaccount' => 'Zum Schutz gegen automatisiertes Erstellen von Benutzerkonten bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', + 'asirra-createaccount-fail' => 'Bitte wähle nur die Fotos mit Katzen aus.', + 'asirra-create' => 'Zum Schutz gegen automatisiertes Erstellen von Seiten bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', + 'asirra-nojs' => "'''Bitte JavaScript aktivieren und die Seiten nochmals Speichern.'''", + 'asirra-failed' => 'Bitte wähle nur die Fotos mit Katzen aus.', +); + +/** German (formal address) (Deutsch (Sie-Form)) + * @author Kghbln + */ +$messages['de-formal'] = array( + 'asirra-addurl' => 'Ihre Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spam bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', + 'asirra-badpass' => 'Zum Schutz gegen automatisiertes Knacken von Passwörtern bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', + 'asirra-createaccount' => 'Zum Schutz gegen automatisiertes Erstellen von Benutzerkonten bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', + 'asirra-createaccount-fail' => 'Bitte wählen Sie nur die Fotos mit Katzen aus.', + 'asirra-create' => 'Zum Schutz gegen automatisiertes Erstellen von Seiten bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', + 'asirra-failed' => 'Bitte wählen Sie nur die Fotos mit Katzen aus.', +); + +/** French (Français) + * @author Seb35 + */ +$messages['fr'] = array( + 'asirra-desc' => 'Module Asirra pour ConfirmEdit', + 'asirra-edit' => 'Pour aider à nous protéger contre le spam d’édition automatique, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :', + 'asirra-addurl' => 'Votre édition contient des liens externes. Pour nous aider à nous protéger contre le spam automatique, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :', + 'asirra-badpass' => 'Pour nous aider à nous protéger des essais automatiques de cassage de mot de passe, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :', + 'asirra-createaccount' => 'Pour nous aider à nous protéger contre la création automatique de comptes, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :', + 'asirra-createaccount-fail' => 'Veuillez identifier correctement les chats.', + 'asirra-create' => 'Pour nous aider à nous protéger contre la création automatique de pages, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :', + 'asirra-nojs' => "'''Veuillez activer le JavaScript et re-soumettre la page.'''", +); + +/** Galician (Galego) + * @author Toliño + */ +$messages['gl'] = array( + 'asirra-desc' => 'Módulo Asirra para ConfirmEdit', + 'asirra-edit' => 'Para axudarnos á protección contra o spam, seleccione só as fotos de gatos na caixa:', + 'asirra-addurl' => 'A súa edición inclúe novas ligazóns externas. Para axudar na protección contra o spam automático, seleccione só as fotos de gatos na caixa:', + 'asirra-badpass' => 'Para axudarnos á protección contra o roubo de contrasinais, seleccione só as fotos de gatos na caixa:', + 'asirra-createaccount' => 'Para axudarnos á protección contra a creación automática de contas, seleccione só as fotos de gatos na caixa:', + 'asirra-createaccount-fail' => 'Identifique correctamente os gatos.', + 'asirra-create' => 'Para axudarnos á protección contra a creación automática de páxinas, seleccione só as fotos de gatos na caixa:', + 'asirra-nojs' => "'''Active o JavaScript e volva enviar a páxina.'''", + 'asirra-failed' => 'Identifique todas as fotos de gatos', +); + +/** Upper Sorbian (Hornjoserbsce) + * @author Michawiki + */ +$messages['hsb'] = array( + 'asirra-desc' => 'Modul Asirra za ConfirmEdit', + 'asirra-edit' => 'Za škit přećiwo awtomatizowanemu spamej, prošu wubjer jenož fota kóčkow w slědowacym polu:', + 'asirra-addurl' => 'Twoja změna wobsahuje nowe eksterne wotkazy. Za škit přećiwo awtomatizowanemu spamej, prošu wubjer jenož fota kóčkow w slědowacym polu:', + 'asirra-badpass' => 'Za škit přećiwo awtomatizowanemu złamanju hesłow, prošu wubjer jenož fota kóčkow w slědowacym polu:', + 'asirra-createaccount' => 'Za škit přećiwo awtomatiskemu wutworjenju konta, prošu wubjer jenož fota kóčkow w slědowacym polu:', + 'asirra-createaccount-fail' => 'Prošu identifikuj kóčki.', + 'asirra-create' => 'Za škit přećiwo awtomatiskemu wutworjenju strony, prošu wubjer jenož fota kóčkow w slědowacym polu:', + 'asirra-nojs' => "'''Prošu zmóžń JavaScript a składuj stronu hišće raz.'''", + 'asirra-failed' => 'Prošu identifikuj wšě wobrazy z kóčkami', +); + +/** Interlingua (Interlingua) + * @author McDutchie + */ +$messages['ia'] = array( + 'asirra-desc' => 'Modulo de Asirra pro ConfirmEdit', + 'asirra-edit' => 'Pro adjutar a proteger nos contra le spam automatisate, per favor selige solmente le photos de cattos in le quadro sequente:', + 'asirra-addurl' => 'Iste modification include nove ligamines externe. Pro adjutar a proteger nos contra le spam automatisate, per favor selige solmente le photos de cattos in le quadro sequente:', + 'asirra-badpass' => 'Pro adjutar a proteger nos contra le furto automatisate de contrasignos, per favor selige solmente le photos de catto in le quadro sequente:', + 'asirra-createaccount' => 'Pro adjutar a proteger nos contra le creation automatisate de contos, per favor selige solmente le photos de cattos in le quadro sequente:', + 'asirra-createaccount-fail' => 'Per favor identifica correctemente le cattos.', + 'asirra-create' => 'Pro adjutar a proteger nos contra le creation automatisate de paginas, per favor selige solmente le photos de cattos in le quadro sequente:', + 'asirra-nojs' => "'''Per favor activa JavaScript e resubmitte le pagina.'''", + 'asirra-failed' => 'Per favor identifica tote le imagines de cattos', +); + +/** Luxembourgish (Lëtzebuergesch) + * @author Robby + */ +$messages['lb'] = array( + 'asirra-desc' => 'Asirra-Modul fir ConfirmEdit', + 'asirra-addurl' => "An Ärer Ännerung sinn nei extern Linken. Fir ze hëllefe géint automatiséierte Spam virzegoen, sicht w.e.g. d'Kategorie vun de Fotoen an der Këscht ënnendrënner eraus:", + 'asirra-createaccount-fail' => "Identifizéiert d'Kaze w.e.g. richteg.", + 'asirra-nojs' => "'''Aktivéiert w.e.g. JavaScript a schéckt d'Säit nachemol.'''", + 'asirra-failed' => 'Identifizéiert w.e.g. all Biller wou Kazen drop sinn', +); + +/** Macedonian (Македонски) + * @author Bjankuloski06 + */ +$messages['mk'] = array( + 'asirra-desc' => 'Asirra-модул за ПотврдиУредување', + 'asirra-edit' => 'Како заштитна мерка против автоматизиран спам, изберете ги само сликите со мачка прикажани во полето:', + 'asirra-addurl' => 'Во вашите измени има нови надворешни врски. Како заштитна мерка против автоматизиран спам, изберете ги само сликите со мачка прикажани во полето:', + 'asirra-badpass' => 'Како заштитна мерка против автоматизирано провалување на лозинки, изберете ги само сликите со мачка прикажани во полето:', + 'asirra-createaccount' => 'Како заштитна мерка против автоматизирано создавање на сметки, изберете ги само сликите со мачка прикажани во полето:', + 'asirra-createaccount-fail' => 'Посочете кои од следниве се мачки.', + 'asirra-create' => 'Како заштитна мерка против автоматизирано создавање на страници, изберете ги само сликите со мачка прикажани во полето:', + 'asirra-nojs' => "'''Овозможете JavaScript и поднесете ја страницата повторно.'''", + 'asirra-failed' => 'Изберете ги сликите што имаат мачка', +); + +/** Norwegian (bokmål) (Norsk (bokmål)) + * @author Event + */ +$messages['nb'] = array( + 'asirra-desc' => 'Assirra-modulen for ConfirmEdit', + 'asirra-edit' => 'Som beskyttelse mot automatisk redigert spam, vennligst velg kun kattebildene i boksen under:', + 'asirra-addurl' => 'Din redigering inneholder nye eksterne lenker. Som beskyttelse mot automatisk redigert spam, vennligst velg kun kattebildene i boksen under:', + 'asirra-badpass' => 'Som beskyttelse mot automatisk passordknekking, vennligst velg kun kattebildene i boksen under:', + 'asirra-createaccount' => 'Som beskyttelse mot automatisk opprettelse av brukerkonto, vennligst velg kun kattebildene i boksen under:', + 'asirra-createaccount-fail' => 'Vennligst angi hva som er katter.', + 'asirra-create' => 'Som beskyttelse mot automatisk opprettelse av sider, vennligst velg kun kattebildene i boksen under:', + 'asirra-nojs' => "'''Vennligst åpne for JavaScript og lagre siden en gang til.'''", +); + +/** Dutch (Nederlands) + * @author SPQRobin + * @author Siebrand + */ +$messages['nl'] = array( + 'asirra-desc' => 'Asirra-module voor ConfirmEdit', + 'asirra-edit' => 'Kies ter bescherming tegen geautomatiseerde spam de afbeeldingen met een poes in het onderstaande venster:', + 'asirra-addurl' => "Uw bewerking bevat nieuwe externe verwijzingen. Om te helpen beschermen tegen geautomatiseerde spam, selecteer de foto's van katten in het vak hieronder:", + 'asirra-badpass' => 'Kies ter bescherming tegen het automatisch kraken van wachtwoorden de afbeeldingen met een poes in het onderstaande venster:', + 'asirra-createaccount' => 'Kies om het automatisch aanmaken van gebruikers tegen te gaan de afbeeldingen met een poes in het onderstaande venster:', + 'asirra-createaccount-fail' => 'Identificeer de katten juist.', + 'asirra-create' => "Kies om het automatisch aanmaken van pagina's tegen te gaan de afbeeldingen met een poes in het onderstaande venster:", + 'asirra-nojs' => "'''Schakel JavaScript in en probeer de pagina opnieuw op te slaan.'''", + 'asirra-failed' => 'Identificeer alle afbeeldingen van katten.', +); + +/** Piedmontese (Piemontèis) + * @author Borichèt + * @author Dragonòt + */ +$messages['pms'] = array( + 'asirra-desc' => 'Mòdul Asirra për ConfirmEdit', + 'asirra-edit' => "Për giuté a protege contra la rumenta dle modìfiche automàtiche, për piasì ch'a selession-a mach le fòto ëd gat ant ël quàder sì-sota:", + 'asirra-addurl' => "Soa modìfica a conten dle liure esterne neuve. Për giuté a protege contra la rumenta dle modìfiche automàtiche, për piasì ch'a selession-a mach le fòto ëd gat ant ël quàder sì-sota:", + 'asirra-badpass' => "Për giuté a protege contra la forsadura automatisà ëd le ciav, për piasì ch'a selession-a mach la fòto dël gat ant ël quàder sì-sota:", + 'asirra-createaccount' => "Për giuté a protege contra la creassion automatisà ëd cont, për piasì ch'a selession-a mach la fòto dël gat ant ël quàder sì-sota:", + 'asirra-createaccount-fail' => 'Për piasì identifica coretament ij gat.', + 'asirra-create' => "Për giuté a protege contra la creassion automatisà ëd pàgine, për piasì ch'a selession-a mach le fòto ëd gat ant ël quàder sì-sota:", + 'asirra-nojs' => "'''Për piasì, ch'a abìlita JavaScript e ch'a spedissa torna la pàgina.'''", + 'asirra-failed' => 'Për piasì identìfica tute le figure ëd gat', +); + +/** Portuguese (Português) + * @author Hamilton Abreu + */ +$messages['pt'] = array( + 'asirra-desc' => 'Módulo Asirra para o ConfirmEdit', + 'asirra-edit' => "Como prevenção contra sistemas automatizados de inserção de ''spam'', seleccione só as fotografias de gatos na caixa abaixo:", + 'asirra-addurl' => "A sua edição contém links externos novos. Como prevenção contra sistemas automatizados de inserção de ''spam'', seleccione só as fotografias de gatos na caixa abaixo:", + 'asirra-badpass' => 'Como prevenção com sistemas automatizados de descoberta de palavras-chave, seleccione só as fotografias de gatos na caixa abaixo:', + 'asirra-createaccount' => 'Como prevenção contra sistemas automatizados de criação de contas, seleccione só as fotografias de gatos na caixa abaixo:', + 'asirra-createaccount-fail' => 'Identifique correctamente os gatos, por favor.', + 'asirra-create' => 'Como prevenção contra sistemas automatizados de criação de páginas, seleccione só as fotografias de gatos na caixa abaixo:', + 'asirra-nojs' => "'''Possibilite o uso de JavaScript e reenvie a página, por favor.'''", +); + +/** Simplified Chinese (中文(简体)) + * @author Hzy980512 + */ +$messages['zh-hans'] = array( + 'asirra-desc' => 'ConfirmEdit的Asirra模块', + 'asirra-edit' => '为了防止垃圾编辑攻击,请在下面的方框中选出猫的图片:', + 'asirra-addurl' => '您的编辑包含新的外部链接。为了帮助防止自动垃圾邮件,请在下面的方框中选出猫的图片:', + 'asirra-badpass' => '为防止自动程序破解密码,请在下面的方框中选出猫的图片:', + 'asirra-createaccount' => '为了防止自动程序创建帐户,请在下面的方框中选出猫的图片:', + 'asirra-createaccount-fail' => '请正确辨认出猫的图片。', + 'asirra-create' => '为了防止自动程序创建页面,请在下面的方框中选出猫的图片:', + 'asirra-nojs' => "'''请启动JavaScript后再提交页面。'''", + 'asirra-failed' => '请选出所有猫的图片', +); + diff --git a/extensions/ConfirmEdit/Asirra.php b/extensions/ConfirmEdit/Asirra.php new file mode 100644 index 00000000..21dd37a4 --- /dev/null +++ b/extensions/ConfirmEdit/Asirra.php @@ -0,0 +1,43 @@ +<?php +/** + * Asirra CAPTCHA module for the ConfirmEdit MediaWiki extension. + * @author Bachsau + * @author Niklas Laxström + * + * Makes use of the Asirra (Animal Species Image Recognition for + * Restricting Access) CAPTCHA service, developed by John Douceur, Jeremy + * Elson and Jon Howell at Microsoft Research. + * + * Asirra uses a large set of images from http://petfinder.com. + * + * For more information about Asirra, see: + * http://research.microsoft.com/en-us/um/redmond/projects/asirra/ + * + * This MediaWiki code is released into the public domain, without any + * warranty. YOU CAN DO WITH IT WHATEVER YOU LIKE! + * + * @file + * @ingroup Extensions + */ + +if ( !defined( 'MEDIAWIKI' ) ) { + exit; +} + +$dir = dirname( __FILE__ ) . '/'; +require_once( "$dir/ConfirmEdit.php" ); +$dir = dirname( __FILE__ ) . '/'; + +$wgCaptchaClass = 'Asirra'; +$wgExtensionMessagesFiles['Asirra'] = "$dir/Asirra.i18n.php"; +$wgAutoloadClasses['Asirra'] = "$dir/Asirra.class.php"; + +$wgResourceModules['ext.confirmedit.asirra'] = array( + 'localBasePath' => $dir, + 'remoteExtPath' => 'ConfirmEdit', + 'scripts' => 'ext.confirmedit.asirra.js', + 'messages' => array( + 'asirra-failed', + ), +); + diff --git a/extensions/ConfirmEdit/Captcha.php b/extensions/ConfirmEdit/Captcha.php index 1d781ae8..ef039462 100644 --- a/extensions/ConfirmEdit/Captcha.php +++ b/extensions/ConfirmEdit/Captcha.php @@ -1,221 +1,5 @@ <?php -/** - * Object encapsulating a captcha process. The captcha has two elements: it must be able - * to generate a frontend HTML representation of itself which can be presented to the user, - * which provides inputs for users to provide their interpretation of the captcha; and it - * must be able to retrieve that data from a subsequently-submitted request and validate - * whether the user got the data correct. - */ -abstract class Captcha { - - /** - * @var String - */ - protected $id; - - /** - * Information about the captcha, in array form - * @var $info Array - */ - protected $info; - - /** - * Whether this captcha exists in the storage - * @var Bool - */ - protected $exists; - - /** - * Generate a new empty Captcha. This is guaranteed to return a Captcha object if it - * does not throw an exception - * - * @return Captcha subclass - */ - public final static function factory() { - global $wgCaptchaClass; - $obj = new $wgCaptchaClass; - if ( $obj instanceof Captcha ) { - return $obj; - } else { - throw new MWException( "Invalid Captcha class $wgCaptchaClass, must extend Captcha" ); - } - } - - /** - * Instantiate a new Captcha object for a given Id - * - * @param $id Int - * @return Captcha - */ - public final static function newFromId( $id ){ - $obj = self::factory(); - $obj->setId( $id ); - return $obj->exists() - ? $obj - : null; - } - - /** - * Instantiate a brand new captcha, never seen before. - * - * @return Captcha - */ - public final static function newRandom(){ - $obj = self::factory(); - $obj->generateNew(); - return $obj; - } - - /** - * Protected constructor - use only the factory methods above to instantiate captchas, - * or you may end up with the wrong type of object - */ - protected function __construct(){} - - /** - * Get the captcha Id - * - * @return String - */ - public function getId(){ - return $this->id; - } - - /** - * Set the Id internally. Don't include wierd things like entities or characters that - * need to be HTML-escaped, you'll just be creating more work and pain for yourself... - * - * @param $id String - */ - protected function setId( $id ){ - $this->id = $id; - } - - /** - * Initialise $this->info etc with information needed to make this object a new, - * (ideally) never-seen-before captcha. Implementations should not save the data in - * the store in this function, as the captcha may not ever be used. - * - * @return Array of captcha info - */ - # FIXME: detail - protected abstract function generateNew(); - - /** - * Save a generated captcha in storage somewhere where it won't be lost between - * requests. 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. - */ - protected function store() { - // Assign random index if we're not udpating - if ( !isset( $this->info['index'] ) ) { - if( !$this->getId() ){ - $this->setId( strval( mt_rand() ) ); - } - $this->info['index'] = $this->getId(); - } - CaptchaStore::get()->store( $this->info['index'], $this->info ); - } - - /** - * Fetch the data for this captcha from the CaptchaStore. This requires $this->id - * to be set. - * - * @return Array|Bool: Array of info, or false if missing - */ - protected function retrieve() { - if( $this->getId() === null ){ - return null; - } - if( $this->info === null ){ - $this->info = CaptchaStore::get()->retrieve( $this->getId() ); - $this->exists = $this->info !== false; - } - return $this->info; - } - - /** - * Clear the information about this captcha from the CaptchaStore, so it cannot - * be reused at a later date. - */ - protected function delete() { - if( $this->getId() !== null ){ - CaptchaStore::get()->clear( $this->getId() ); - } - } - - /** - * Whether this captcha exists. $this->setId() must have been called from some context - * - * @return Bool - */ - public function exists(){ - if( $this->exists === null ){ - $this->retrieve(); - } - return $this->exists; - } - - /** - * Load some data from a WebRequest. Implementations must load all data they need - * from the request in this function, they must not use the global $wgRequest, as - * in the post-1.18 environment they may not necessarily be the same. - * - * @param $request WebRequest - * @param $field HTMLCaptchaField will be passed if the captcha is part of an HTMLForm - */ - public abstract function loadFromRequest( WebRequest $request, HTMLCaptchaField $field = null ); - - /** - * Return the data that would be needed to pass the captcha challenge through the API. - * Implementations must return an array with at least the following parameters: - * 'type' - a unique description of the type of challenge. This could be - * the class name - * 'mime' - the MIME type of the challenge - * 'id' - the captcha Id produced by getId() - * Implementations should document how the user should use the provided data to answer - * the captcha. - * - * Implementations may return False to indicate that it is not possible to represent - * the challenge via the API. API actions protected by such a captcha will be disabled. - * - * @return Array|Bool - */ - public abstract function getApiParams(); - - /** - * Return the HTML which will be placed in the 'input' table cell of an HTMLForm. - * Implementations must include input fields which will perpetuate the captcha Id and - * any special data, as well as providing a means for the user to answer the captcha. - * Implementations should not include any help or label text, as these will be set in - * the label-message and help-message attributes of the HTMLCaptchafield. - * Implementations should honour the options set in the HTMLFormField such as - * $field->mName and $field->mReadonly. - * - * @param $field HTMLCaptchaField - * @return String raw HTML - */ - public abstract function getFormHTML( HTMLCaptchaField $field ); - - /** - * Return the HTML which will be used in legacy forms which do not implement HTMLForm - * Implementations must include input fields which will perpetuate the captcha Id and - * any other necessary data, as well as providing a means for the user to answer the - * captcha, and any relevant descriptions and instructions. - * - * @return String raw HTML - */ - public abstract function getFreeflowHTML(); - - /** - * Using the parameters loaded from the web request, check the captcha, maybe delete - * it if that's desirable, do any other necessary cleanup, and return Bool - * @return Bool whether the captcha was successfully answered - */ - public abstract function checkCaptcha(); -} - class SimpleCaptcha { function getCaptcha() { @@ -226,7 +10,9 @@ class SimpleCaptcha { since the api uses text/plain, not text/html */ $op = mt_rand( 0, 1 ) ? '+' : '−'; - $test = "$a $op $b"; + // No space before and after $op, to ensure correct + // directionality. + $test = "$a$op$b"; $answer = ( $op == '+' ) ? ( $a + $b ) : ( $a - $b ); return array( 'question' => $test, 'answer' => $answer ); } @@ -303,7 +89,7 @@ class SimpleCaptcha { wfDebug( "ConfirmEdit: user group allows skipping captcha on email sending\n" ); return true; } - $form->addFooterText( + $form->addFooterText( "<div class='captcha'>" . $wgOut->parse( $this->getMessage( 'sendemail' ) ) . $this->getForm() . @@ -382,8 +168,8 @@ class SimpleCaptcha { * @access private */ function isBadLoginTriggered() { - global $wgMemc, $wgCaptchaBadLoginAttempts; - return intval( $wgMemc->get( $this->badLoginKey() ) ) >= $wgCaptchaBadLoginAttempts; + global $wgMemc, $wgCaptchaTriggers, $wgCaptchaBadLoginAttempts; + return $wgCaptchaTriggers['badlogin'] && intval( $wgMemc->get( $this->badLoginKey() ) ) >= $wgCaptchaBadLoginAttempts; } /** @@ -391,8 +177,12 @@ class SimpleCaptcha { */ function isIPWhitelisted() { global $wgCaptchaWhitelistIP; + if ( $wgCaptchaWhitelistIP ) { - $ip = wfGetIp(); + global $wgRequest; + + $ip = $wgRequest->getIP(); + foreach ( $wgCaptchaWhitelistIP as $range ) { if ( IP::isInRange( $ip, $range ) ) { return true; @@ -408,7 +198,8 @@ class SimpleCaptcha { * @access private */ function badLoginKey() { - return wfMemcKey( 'captcha', 'badlogin', 'ip', wfGetIP() ); + global $wgRequest; + return wfMemcKey( 'captcha', 'badlogin', 'ip', $wgRequest->getIP() ); } /** @@ -642,12 +433,15 @@ class SimpleCaptcha { * @return bool false if the CAPTCHA is rejected, true otherwise */ private function doConfirmEdit( $editPage, $newtext, $section, $merged = false ) { + global $wgRequest; + if ( $wgRequest->getVal( 'captchaid' ) ) { + $wgRequest->setVal( 'wpCaptchaId', $wgRequest->getVal( 'captchaid' ) ); + } + if ( $wgRequest->getVal( 'captchaword' ) ) { + $wgRequest->setVal( 'wpCaptchaWord', $wgRequest->getVal( 'captchaword' ) ); + } if ( $this->shouldCheck( $editPage, $newtext, $section, $merged ) ) { - if ( $this->passCaptcha() ) { - return true; - } else { - return false; - } + return $this->passCaptcha(); } else { wfDebug( "ConfirmEdit: no need to show captcha.\n" ); return true; @@ -684,12 +478,12 @@ class SimpleCaptcha { return $this->confirmEdit( $editPage, $newtext, false, true ); } - function confirmEditAPI( $editPage, $newtext, &$resultArr ) { if ( !$this->doConfirmEdit( $editPage, $newtext, false, false ) ) { $this->addCaptchaAPI( $resultArr ); return false; } + return true; } @@ -740,7 +534,7 @@ class SimpleCaptcha { } /** - * Check the captcha on Special:EmailUser + * Check the captcha on Special:EmailUser * @param $from MailAddress * @param $to MailAddress * @param $subject String @@ -757,7 +551,7 @@ class SimpleCaptcha { } if ( $this->isIPWhitelisted() ) return true; - + if ( defined( 'MW_API' ) ) { # API mode # Asking for captchas in the API is really silly @@ -774,6 +568,36 @@ class SimpleCaptcha { } /** + * @param $module ApiBase + * @param $params array + * @return bool + */ + public function APIGetAllowedParams( &$module, &$params ) { + if ( !$module instanceof ApiEditPage ) { + return true; + } + $params['captchaword'] = null; + $params['captchaid'] = null; + + return true; + } + + /** + * @param $module ApiBae + * @param $desc array + * @return bool + */ + public function APIGetParamDescription( &$module, &$desc ) { + if ( !$module instanceof ApiEditPage ) { + return true; + } + $desc['captchaid'] = 'CAPTCHA ID from previous request'; + $desc['captchaword'] = 'Answer to the CAPTCHA'; + + 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 diff --git a/extensions/ConfirmEdit/CaptchaStore.php b/extensions/ConfirmEdit/CaptchaStore.php index 7b29e448..3ab00b38 100644 --- a/extensions/ConfirmEdit/CaptchaStore.php +++ b/extensions/ConfirmEdit/CaptchaStore.php @@ -40,9 +40,9 @@ abstract class CaptchaStore { * @return CaptchaStore */ public final static function get() { - if( !self::$instance instanceof self ){ + if ( !self::$instance instanceof self ) { global $wgCaptchaStorageClass; - if( in_array( 'CaptchaStore', class_parents( $wgCaptchaStorageClass ) ) ) { + if ( in_array( 'CaptchaStore', class_parents( $wgCaptchaStorageClass ) ) ) { self::$instance = new $wgCaptchaStorageClass; } else { throw new MWException( "Invalid CaptchaStore class $wgCaptchaStorageClass" ); @@ -54,7 +54,7 @@ abstract class CaptchaStore { /** * Protected constructor: no creating instances except through the factory method above */ - protected function __construct(){} + protected function __construct() {} } class CaptchaSessionStore extends CaptchaStore { diff --git a/extensions/ConfirmEdit/ConfirmEdit.alias.php b/extensions/ConfirmEdit/ConfirmEdit.alias.php index debbfeaa..41649e84 100644 --- a/extensions/ConfirmEdit/ConfirmEdit.alias.php +++ b/extensions/ConfirmEdit/ConfirmEdit.alias.php @@ -43,6 +43,11 @@ $specialPageAliases['fi'] = array( 'Captcha' => array( 'Ihmiskäyttäjävarmistus' ), ); +/** Galician (Galego) */ +$specialPageAliases['gl'] = array( + 'Captcha' => array( 'Captcha' ), +); + /** Japanese (日本語) */ $specialPageAliases['ja'] = array( 'Captcha' => array( 'キャプチャ' ), @@ -63,11 +68,16 @@ $specialPageAliases['ml'] = array( 'Captcha' => array( 'ക്യാപ്ച' ), ); -/** Serbian Cyrillic ekavian (Српски (ћирилица)) */ +/** Serbian (Cyrillic script) (Српски (ћирилица)) */ $specialPageAliases['sr-ec'] = array( 'Captcha' => array( 'Потврдни_код' ), ); +/** Cantonese (粵語) */ +$specialPageAliases['yue'] = array( + 'Captcha' => array( '驗證碼' ), +); + /** Simplified Chinese (中文(简体)) */ $specialPageAliases['zh-hans'] = array( 'Captcha' => array( '验证码' ), @@ -76,9 +86,4 @@ $specialPageAliases['zh-hans'] = array( /** Traditional Chinese (中文(繁體)) */ $specialPageAliases['zh-hant'] = array( 'Captcha' => array( '驗證碼' ), -); - -/** - * For backwards compatibility with MediaWiki 1.15 and earlier. - */ -$aliases =& $specialPageAliases;
\ No newline at end of file +);
\ No newline at end of file diff --git a/extensions/ConfirmEdit/ConfirmEdit.i18n.php b/extensions/ConfirmEdit/ConfirmEdit.i18n.php index ada84a43..6188a46d 100644 --- a/extensions/ConfirmEdit/ConfirmEdit.i18n.php +++ b/extensions/ConfirmEdit/ConfirmEdit.i18n.php @@ -52,6 +52,7 @@ Hit the 'back' button in your browser to return to the page editor.", * @author Siebrand * @author The Evil IP address * @author Toliño + * @author Umherirrender */ $messages['qqq'] = array( 'captcha-edit' => 'This message will be shown when editing if the wiki requires solving a captcha for editing. @@ -78,12 +79,13 @@ See also 'captchahelp-title' => 'The page title of [[Special:Captcha/help]]', 'captchahelp-text' => 'This is the help text shown on [[Special:Captcha/help]].', 'captcha-addurl-whitelist' => "See also: [[MediaWiki:Spam-blacklist]] and [[MediaWiki:Spam-whitelist]]. Leave all the wiki markup, including the spaces, as is. You can translate the text, including 'Leave this line exactly as it is'. The first line of this messages has one (1) leading space.", - 'right-skipcaptcha' => '{{doc-right}}', + 'right-skipcaptcha' => '{{doc-right|skipcaptcha}}', ); /** Afrikaans (Afrikaans) * @author BrokenArrow * @author Naudefj + * @author පසිඳු කාවින්ද */ $messages['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 />([[Special:Captcha/help|Wat is hierdie?]])', @@ -94,6 +96,8 @@ As beskerming teen outomatiese gemorsbydraes, sal u die woorde wat onder verskyn '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.', '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 />([[Special:Captcha/help|Wat is hierdie?]])', + 'captcha-sendemail-fail' => 'Verkeerde of ontbrekende bevestigingskode.', + 'captcha-disabledinapi' => "Hierdie aksie vereis dat 'n captcha, so dit kan nie uitgevoer word deur die API nie.", 'captchahelp-title' => 'Captcha-hulp', 'captchahelp-cookies-needed' => 'U moet koekies in u webblaaier aanskakel hê om dit te laat werk.', 'captchahelp-text' => "Webwerwe wat bydraes van die publiek aanvaar (soos hierdie wiki) word soms lastig geval deur kwaaddoeners met programme wat outomaties skakels in 'n klomp werwe plaas. Alhoewel hierdie gemors verwyder kan word, is dit lastig. @@ -152,12 +156,15 @@ $messages['am'] = array( */ $messages['an'] = array( 'captcha-edit' => 'Ta editar ista pachina, faiga por favor a suma simpla que apareixe contino y escriba a solución en a caixa ([[Special:Captcha/help|más información]]):', - 'captcha-desc' => 'Implementación simpla de captcha', + 'captcha-desc' => 'Implementación de CAPTCHA ta protecher contra o spam y dovinación de contrasenyas.', 'captcha-addurl' => "A suya edición encluye vinclos esternos. Ta aduyar-nos en a proteción contra o spam automatizato, por favor, faiga a suma simpla que s'amuestra contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más información]]):", 'captcha-badlogin' => 'Ta aduyar en a protección contra a obtención automatizata de parolas de paso, por favor faiga a suma simpla que amaneixe contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más información]]):', 'captcha-createaccount' => "Ta aduyar-nos en a proteción contra a creyación automatica de cuentas, por favor faiga a suma simpla que s'amuestra contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más información]]):", 'captcha-createaccount-fail' => 'No ha escrito o codigo de confirmación, u iste ye incorreuto.', 'captcha-create' => "Ta creyar a pachina, por favor faiga a suma simpla que s'amuestra contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más información]]):", + 'captcha-sendemail' => 'Ta protecher-nos contra o spam automatizau, resuelva a suma facil que se presienta contino y escriba a respuesta en o quadro de texto ([[Special:Captcha/help|mas información]]):', + 'captcha-sendemail-fail' => 'O codigo de confirmación falta u ye incorrecto.', + 'captcha-disabledinapi' => "Ista acción requiere un captcha, asinas que no puede estar executada a traviés d'un API.", 'captchahelp-title' => 'Aduya sobre o "captcha"', 'captchahelp-cookies-needed' => 'Ta que o sistema funcione le cal tener as cookies activatas en o navegador.', 'captchahelp-text' => "Os sitios web que acceptan mensaches d'o publico, como iste wiki, son a ormino obchecto d'abusos por spammers que fan servir ferramientas automatizatas ta encluyir-ie vinclos ta a-saber-los sitios. Encara que istos vinclos se pueden sacar, son un gran estorbo. @@ -299,7 +306,7 @@ $messages['ast'] = array( 'captcha-sendemail' => "P'aidar a protexese escontra la puxarra automatizada, por favor resuelvi la suma cenciella d'embaxo y pon la rempuesta na caxella ([[Special:Captcha/help|más información]]):", 'captcha-sendemail-fail' => 'Códigu de confirmación incorreutu o ausente.', 'captcha-disabledinapi' => 'Esta aición requier un captcha y, poro, nun pue facese pel API', - 'captchahelp-title' => 'Aida tocante al captcha', + 'captchahelp-title' => 'Ayuda tocante al CAPTCHA', 'captchahelp-cookies-needed' => "Has tener les cookies habilitaes nel to navegador pa que'l sistema funcione.", 'captchahelp-text' => "Los sitios web qu'aceuten mensaxes del publicu, como esta wiki, davezu son oxetu d'abusu por spammers qu'usen programes pa incluyir los sos enllaces automáticamente. Mientres qu'estos enllaces de puxarra puen desaniciase, son enforma cafiantes. @@ -307,7 +314,7 @@ Mientres qu'estos enllaces de puxarra puen desaniciase, son enforma cafiantes. Dacuando, especialmente al amestar nuevos enllaces web nuna páxina, la wiki pue amosate una imaxe de testu coloreáu o distorsionáu y va pidite qu'escribas les pallabres que s'amuesen. Yá qu'esti ye un llabor difícil d'automatizar, permitirá a les más de les persones reales unviar los sos testos, al empar que llenden los más de los spammers y otros atacantes automáticos. -Por desgracia, esto pue ser un inconveniente pa los usuarios con visión llimitada o qu'usen navegadores de testu o voz. De momentu nun tenemos disponible una alternativa de soníu. Por favor, ponte'n contautu colos [[{{MediaWiki:Grouppage-sysop}}|alministradores del sitiu]] pa pidir aida si esto te torgare facer ediciones llexítimes. +Por desgracia, esto pue ser un inconveniente pa los usuarios con visión llimitada o qu'usen navegadores de testu o voz. De momentu nun tenemos disponible una alternativa de soníu. Por favor, ponte'n contautu colos [[{{MediaWiki:Grouppage-sysop}}|alministradores del sitiu]] pa pidir ayuda si esto te torgare facer ediciones llexítimes. Calca nel botón 'atrás' del to navegador pa volver a la páxina d'edición.", 'captcha-addurl-whitelist' => ' #<!-- dexa esta llinia exautamente como ta --> <pre> @@ -463,6 +470,7 @@ $messages['bg'] = array( 'captcha-createaccount-fail' => 'Грешен или липсващ код за потвърждение.', 'captcha-create' => 'За създаване на страницата е необходимо да се реши задачата и да се въведе отговорът в кутията ([[Special:Captcha/help|повече информация]]):', 'captcha-sendemail-fail' => 'Грешен или липсващ код за потвърждение.', + 'captcha-disabledinapi' => 'Това действие изисква капча, следователно не може да бъде извършено през приложния програмен интерфейс.', 'captchahelp-title' => 'Помощ за сaptcha', 'captchahelp-cookies-needed' => 'За да работи това, необходимо е бисквитките на вашия браузър да са включени.', 'captchahelp-text' => "Уеб сайтовете, които позволяват свободно да се редактира и добавя ново съдържание (като това уики), често са обект на атаки от страна на спамъри, които използват средства за автоматизирано редактиране за публикуване на препратки към много сайтове. Въпреки че тези препратки могат да бъдат премахнати, те са особено неприятни за потребителите. @@ -709,10 +717,11 @@ Gwasgwch botwm 'nôl' eich porwr er mwyn dychwelyd at y dudalen golygu.", /** Danish (Dansk) * @author Aputtu * @author Byrial + * @author Peter Alberti */ $messages['da'] = array( - 'captcha-edit' => 'For at redigere denne side, skal du give svaret på regnestyket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):', - 'captcha-desc' => 'Enkel captcha-implementering', + 'captcha-edit' => 'For at redigere denne side, skal du give svaret på regnestykket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):', + 'captcha-desc' => 'Giver CAPTCHA-teknikker til at beskytte mod spam og gætning af adgangskoder', 'captcha-addurl' => 'Din redigering tilføjer nye eksterne henvisninger til artiklen. Som beskyttelse mod automatiseret spam, skal du give svaret på regnestyket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):', 'captcha-badlogin' => 'For at beskytte mod automatiserede gæt på kodeord, skal du give svaret på regnestyket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):', 'captcha-createaccount' => 'For at beskytte mod automatisk oprettelse af brugernavne, skal du give svaret på regnestyket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):', @@ -749,7 +758,7 @@ Tryk på 'tilbage'-knappen i din browser for at returnere til redigeringssiden." */ $messages['de'] = array( 'captcha-edit' => 'Zur Bearbeitung der Seite löse die nachfolgende Rechenaufgabe und trage das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].', - 'captcha-desc' => 'Stellt CAPTCHA-Techniken zum Schutz vor Spam und dem Erraten von Passwörtern bereit', + 'captcha-desc' => 'Ermöglicht verschiedene CAPTCHA-Techniken zum Schutz vor Spam und dem Erraten von Passwörtern', 'captcha-addurl' => 'Deine Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spamming löse die nachfolgende Rechenaufgabe und trage das Ergebnis in das Feld unten ein. Klicke dann erneut auf „Seite speichern“ [[Special:Captcha/help|(Fragen oder Probleme?)]].', 'captcha-badlogin' => 'Zum Schutz vor einer Kompromittierung deines Benutzerkontos löse die nachfolgende Rechenaufgabe und trage das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]]:', @@ -792,6 +801,7 @@ Klicken Sie dann erneut auf „Seite speichern“ [[Special:Captcha/help|(Fragen 'captcha-badlogin' => 'Zum Schutz vor einer Kompromittierung Ihres Benutzerkontos lösen Sie die nachfolgende Rechenaufgabe und tragen Sie das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]]:', 'captcha-createaccount' => 'Zum Schutz vor automatisierter Anlage von Benutzerkonten lösen Sie die nachfolgende Rechenaufgabe und tragen Sie das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].', 'captcha-create' => 'Zur Erstellung der Seite lösen Sie die nachfolgende Rechenaufgabe und tragen Sie das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].', + 'captcha-sendemail' => 'Um gegen automatischen Spam vorzugehen, lösen Sie bitte die einfache Rechenaufgabe und geben Sie die Antwort unten in das Feld ein ([[Special:Captcha/help|mehr Informationen]]):', 'captchahelp-text' => 'Internetangebote, die für Beiträge von praktisch jedem offen sind — so wie dieses 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. @@ -926,6 +936,23 @@ $messages['el'] = array( 'right-skipcaptcha' => 'Πραγματοποίηση ενεργειών που ενεργοποιούν captcha χωρίς να χρειάζεται πέρασμα από το captcha', ); +/** Canadian English (Canadian English) + * @author Techman224 + */ +$messages['en-ca'] = array( + '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 coloured 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 [[{{MediaWiki:Grouppage-sysop}}|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.", +); + /** British English (British English) * @author Lcawte */ @@ -1033,24 +1060,25 @@ $messages['et'] = array( 'captcha-edit' => 'Selle lehekülje muutmiseks lahenda palun lihtne tehe ja sisesta vastus kasti ([[Special:Captcha/help|lisateave]]).', 'captcha-desc' => 'Pakub robotilõksu abil kaitset rämpspostituste ja paroolide äraarvamise vastu.', 'captcha-addurl' => 'Sinu muudatus sisaldab uusi välislinke. -Palun lahenda allpool lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks automaadistatud rämpsmuudatuste vastu ([[Special:Captcha/help|lisateave]]):', - 'captcha-badlogin' => 'Kaitseks automaatsete parooliäraarvajate vastu, palun lahenda see lihtne tehe ja sisesta vastus kasti ([[Special:Captcha/help|täpsem teave]]):', - 'captcha-createaccount' => 'Palun lahenda lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks kontode automaatse loomise vastu ([[Special:Captcha/help|lisateave]]):', +Palun lahenda allpool lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks automaadistatud rämpsmuudatuste eest ([[Special:Captcha/help|lisateave]]):', + 'captcha-badlogin' => 'Palun lahenda allpool lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks automaatsete parooliäraarvajate eest ([[Special:Captcha/help|lisateave]]):', + 'captcha-createaccount' => 'Palun lahenda lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks kontode automaatse loomise eest ([[Special:Captcha/help|lisateave]]):', 'captcha-createaccount-fail' => 'Puuduv või valesti sisestatud kinnituskood.', 'captcha-create' => 'Lehekülje loomiseks lahenda palun lihtne tehe ja sisesta vastus kasti -([[Special:Captcha/help|täpsem teave]]):', +([[Special:Captcha/help|lisateave]]):', 'captcha-sendemail' => 'Palun lahenda allpool lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks automaadistatud rämpsmuudatuste vastu ([[Special:Captcha/help|lisateave]]):', 'captcha-sendemail-fail' => 'Vigane või puuduv kinnituskood.', + 'captcha-disabledinapi' => 'Ühes selle toiminguga tuleb läbida robotilõks ja seetõttu ei saa seda API kaudu sooritada.', 'captchahelp-title' => 'Mis on robotilõks?', 'captchahelp-cookies-needed' => 'Selle toimimiseks peab veebilehitseja lubama küpsiseid.', 'captchahelp-text' => 'Võrgukohti, mis lubavad külastajatel sisu muuta, nagu ka see viki, kasutavad sageli rämpsposti levitajad, lisades näiteks lehekülgedele reklaamilinke. Kuigi neid linke saab eemaldada, on nad siiski tülikad. -Omale kasutajakontot registreerides või mõnele lehele uusi internetiaadresse postitades näidatakse teile moonutatud tekstiga pilti ning palutakse teil sisestada seal kuvatud sõnad. Kuna selliselt pildilt on arvutil raske teksti välja lugeda, on see efektiivseks kaitseks rämpspostirobotite vastu ja lubab samas tavakasutajatel rahus muudatusi teha. +Kasutajakontot registreerides või mõnele lehele uusi internetiaadresse postitades näidatakse moonutatud tekstiga pilti ja palutakse sisestada seal kuvatud sõnad. Kuna selliselt pildilt on arvutil raske teksti välja lugeda, on see efektiivseks kaitseks rämpspostirobotite vastu ja lubab samas tavakasutajatel rahus muudatusi teha. Kahjuks võib see tekitada ebamugavusi nägemisraskustega inimestele või neile, kes kasutavad tehiskõneseadet või tekstipõhist veebilehitsejat. Hetkel pole meil helipõhist alternatiivi. -Kui teil tekib raskusi muudatuste tegemisel, võtke palun ühendust selle võrgukoha [[{{MediaWiki:Grouppage-sysop}}|ülematega]]. +Kui sul tekib raskusi muudatuste tegemisel, võta palun ühendust selle võrgukoha [[{{MediaWiki:Grouppage-sysop}}|administraatoritega]]. -Konto registreerimise lehele või lehe redigeerimisele tagasi jõudmiseks klõpsake oma veebilehitseja tagasi-nuppu.', +Konto registreerimise lehele või redigeerimisaknasse tagasi jõudmiseks klõpsa veebilehitseja tagasi-nuppu.', 'captcha-addurl-whitelist' => ' #<!-- Jäta see rida muutmata kujule. --> <pre> # Süntaks: # * Kõik alates märgist "#" kuni rea lõpuni on kommentaar @@ -1087,6 +1115,7 @@ Zure nabigatzaileko 'atzera' lotura erabili aldaketen orrialdera itzultzeko.", /** Persian (فارسی) * @author Ebraminio * @author Huji + * @author Mjbmr * @author Wayiran */ $messages['fa'] = array( @@ -1097,19 +1126,19 @@ $messages['fa'] = array( 'captcha-createaccount' => 'برای جلوگیری از ایجاد خودکار حساب کاربری، لطفاً حاصل جمع زیر را حساب کنید و نتیجه را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):', 'captcha-createaccount-fail' => 'کد تأییدی وجود ندارد یا نادرست است.', 'captcha-create' => 'برای ایجاد صفحه لطفاً حاصل جمع زیر را حساب کنید و نتیجه را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):', - 'captcha-sendemail' => 'برای کمک به حفاظت در برابر هرزنامههای خودکار، لطفاً جمع سادهٔ زیر را حل کنید و جواب را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):', + 'captcha-sendemail' => 'برای کمک به حفاظت در برابر هرزنامههای خودکار، لطفاً جمع سادهٔ زیر را حل کنید و جواب را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):', 'captcha-sendemail-fail' => 'کد تأییدی وجود ندارد یا نادرست است.', 'captcha-disabledinapi' => 'این اقدام به کپچا نیاز دارد، بنابراین نمیتواند از طریق API انجام شود.', 'captchahelp-title' => 'راهنمای Captcha', 'captchahelp-cookies-needed' => 'برای کار کردن آن، شما باید کوکیهای مرورگرتان را فعال کنید.', - 'captchahelp-text' => 'وبگاههایی مثل این ویکی که به عموم اجازهٔ نوشتن مطلب میدهند، غالباً مورد سوءاستفادهٔ هرزفرستندگانی میشوند که با ابزارهای خودکار پیوندهای بیرونی به وبگاههای موردنظرشان وارد میکنند. + 'captchahelp-text' => 'تارنماهایی مثل این ویکی که به عموم اجازهٔ نوشتن مطلب میدهند، غالباً مورد سوءاستفادهٔ هرزفرستندگانی میشوند که با ابزارهای خودکار پیوندهای بیرونی به تارنماهای موردنظرشان وارد میکنند. اگر چه این پیوندهای هرز و تبلیغاتی را میتوان دستی حذف کرد، ولی به هر حال باعث اعصابخردی زیادی میشوند. گاهی اوقات، خصوصاً هنگامی که پیوندهای بیرونی جدیدی به صفحه اضافه میشود، ویکی ممکن است به شما تصویری رنگی و کجوکوله از متنی نشان بدهد و از شما بخواهد که کلمههای نشاندادهشده را تایپ کنید. از آنجا که خودکارسازی این کار دشوار است، انسانهای واقعی میتوانند پیوندهاشان را وارد کنند ولی برنامههای خودکار تبلیغاتی از خرابکاری باز خواهند ماند. متأسفانه این امر ممکن است باعث مزاحمت برای کاربرانی شود که چشمشان ضعیف است یا از مرورگرهای متنی یا گفتاری استفاده میکنند. -در حال حاضر ما جایگزین صوتیای برای این کار نداریم. لطفاً اگر برای واردساختن پیوندهای مشروع دچار مشکل شدهاید با [[{{MediaWiki:Grouppage-sysop}}|مدیران این وبگاه]] تماس بگیرید. +در حال حاضر ما جایگزین صوتیای برای این کار نداریم. لطفاً اگر برای واردساختن پیوندهای مشروع دچار مشکل شدهاید با [[{{MediaWiki:Grouppage-sysop}}|مدیران این تارنما]] تماس بگیرید. دکمهٔ «بازگشت» را در مرورگر خود فشار دهید تا به صفحهٔ ویرایش بازگردید.', 'captcha-addurl-whitelist' => ' #<!-- این سطر را همانگونه که هست رها کنید --> <pre> @@ -1129,7 +1158,7 @@ $messages['fa'] = array( */ $messages['fi'] = array( 'captcha-edit' => 'Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):', - 'captcha-desc' => 'Yksinkertainen ihmisvarmennustoteutus.', + 'captcha-desc' => 'Tarjoaa CAPTCHA-tekniikoita suojaamaan mainoslinkkejä ja salasana-arvailua vastaan.', 'captcha-addurl' => 'Muokkauksesi sisältää uusia linkkejä muille sivuille. Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):', 'captcha-badlogin' => 'Salasananmurtajasovellusten takia, ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):', 'captcha-createaccount' => 'Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):', @@ -1158,11 +1187,18 @@ Voit palata muokkaustilaan selaimen paluutoiminnolla.', ); /** Faroese (Føroyskt) + * @author EileenSanda * @author Spacebirdy */ $messages['fo'] = array( 'captcha-createaccount' => 'Sum ein vernd ímóti sjálvvirknum spam, er neyðugt hjá tær at skriva inn tey orð, sum koma fyri á myndini fyri at stovna eina kontu: <br />([[Special:Captcha/help|Hvat er hetta?]])', + 'captcha-createaccount-fail' => 'Skeiv ella manglandi váttanar loyniorð.', + 'captcha-create' => 'Fyri at upprætta síðuna, vinarliga loys tað einfalda roknistykki niðanfyri og skriva svarið í teigin ([[Special:Captcha/help|meira kunning]]):', + 'captcha-sendemail' => 'Fyri at hjálpa okkum at sleppa undan sjálvvirkandi upprættan av brúkaranavni (spamm), so verður tú vinarliga biðin um at loysa tað einfalda roknistykki og skriva svarið í teigin ([[Special:Captcha/help|meira kunning]]):', + 'captcha-sendemail-fail' => 'Skeiv ella manglandi váttanar loyniorð.', + 'captcha-disabledinapi' => "Henda handling krevur ein captcha, so tað kann ikki verða framt við API'inum.", 'captchahelp-title' => 'Captcha hjálp', + 'captchahelp-cookies-needed' => 'Tín kagi (brovsari) má góðtaka cookies, fyri at hetta kann virka.', ); /** French (Français) @@ -1189,7 +1225,7 @@ Pour nous aider dans la protection contre le pourriel automatisé, veuillez calc 'captcha-create' => 'Pour créer la page, veuillez calculer l’opération simple ci-dessous et en inscrire le résultat dans le champ ([[Special:Captcha/help|plus d’informations]]) :', 'captcha-sendemail' => 'Afin de nous aider à prévenir le spam automatique, veuillez calculer l’opération simple ci-dessous et en inscrire le résultat dans le champ ([[Special:Captcha/help|plus d’informations]]) :', 'captcha-sendemail-fail' => 'Code de confirmation incorrect ou manquant.', - 'captcha-disabledinapi' => "Cette action requiert un captcha, donc elle ne peut pas être effectuée via l'API.", + 'captcha-disabledinapi' => 'Cette action requiert un captcha, donc elle ne peut pas être effectuée via l’IPA.', 'captchahelp-title' => 'Aide sur le captcha', 'captchahelp-cookies-needed' => "Il vous faudra autoriser les témoins (''cookies'') de votre navigateur pour que cela fonctionne.", 'captchahelp-text' => 'Les sites web qui acceptent des contributions du public, tels que ce wiki, sont souvent victimes de spammeurs qui utilisent des outils automatisés pour placer de nombreux liens vers leurs sites. @@ -1215,13 +1251,16 @@ Cliquez sur le bouton « Précédent » de votre navigateur pour revenir à la p */ $messages['frp'] = array( 'captcha-edit' => 'Por changiér ceta pâge, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :', - 'captcha-desc' => 'Semond des tècniques CAPTCHA por protègiér contre lo spame et la dècuvèrta des mots de pâssa per un mouél de tentatives.', + 'captcha-desc' => 'Semond des tècniques CAPTCHA por protègiér contre lo spame et la dècuvèrta des contresegnos per un mouél de tentatives.', 'captcha-addurl' => 'Voutron changement encllut de lims de defôr novéls. Por nos édiér a combatre contre lo spame ôtomatisâ, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :', - 'captcha-badlogin' => 'Por nos édiér a combatre contre lo piratâjo ôtomatisâ de mots de pâssa, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :', - 'captcha-createaccount' => 'Por nos édiér a combatre contre les crèacions ôtomatisâs de comptos, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :', + 'captcha-badlogin' => 'Por nos édiér a combatre contre lo cassâjo ôtomatisâ de contresegnos, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dedens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :', + 'captcha-createaccount' => 'Por nos édiér a combatre contre les crèacions ôtomatisâs de comptos, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dedens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :', 'captcha-createaccount-fail' => 'Code de confirmacion fôx ou ben manquent.', 'captcha-create' => 'Por fâre ceta pâge, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :', + 'captcha-sendemail' => 'Por nos édiér a combatre contre lo spame ôtomatisâ, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dedens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :', + 'captcha-sendemail-fail' => 'Code de confirmacion fôx ou ben manquent.', + 'captcha-disabledinapi' => 'Ceta accion at fôta d’un captch·a, donc pôt pas étre fêta per l’API.', 'captchahelp-title' => 'Éde sur lo captch·a', 'captchahelp-cookies-needed' => "Vos fôdrat ôtorisar los tèmouens (''cookies'') de voutron navigator por que cen fonccione.", 'captchahelp-text' => 'Los setos vouèbe qu’accèptont des contribucions du publico, coment ceti vouiqui, sont sovent victimos de spamors qu’utilisont des outils ôtomatisâs por betar tot plen de lims de vers lors setos. @@ -1304,19 +1343,17 @@ Para contribuír na protección contra as ferramentas de publicación automátic 'captcha-disabledinapi' => 'Esta acción necesita o captcha, polo que non se pode realizar a través da API.', 'captchahelp-title' => 'Axuda acerca do captcha', 'captchahelp-cookies-needed' => 'Necesita ter as cookies habilitadas no seu navegador para que funcione.', - 'captchahelp-text' => "'''CAPTCHA''' (acrónimo de \"'''C'''ompletely '''A'''utomated '''P'''ublic '''T'''uring test to tell '''C'''omputers and '''H'''umans '''A'''part\") é unha proba de autenticació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 ligazóns publicitarias, nunha chea de páxinas, en pouco tempo. + 'captchahelp-text' => '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 ligazóns publicitarias, nunha chea de páxinas, en pouco tempo. Mentres as devanditas ligazóns non son eliminadas supoñen unha molestia e unha perda de tempo. -En ocasións, en particular cando engada algunha nova ligazón externa, o wiki pode amosar unha imaxe dun texto coloreado e distorsionado e pedirlle que introduza as palabras amosadas. -Como esta tarefa é difícil de automatizar, permite distinguir entre persoas e robots e dificulta os ataques automatizados dos ''spammers''. +En ocasións, en particular cando engada algunha nova ligazón externa, o wiki pode mostrar unha imaxe dun texto coloreado e distorsionado e pedirlle que introduza as palabras que se vexa. +Como esta tarefa é difícil de automatizar, permite distinguir entre persoas e robots e dificulta os ataques automatizados dos spammers. Por desgraza, isto é un inconveniente para aqueles usuarios con dificultades de visión ou que utilicen navegadores de texto ou navegadores baseados en sistemas de voz. Polo de agora non dispoñemos dunha alternativa de son. -Por favor, contacte cun [[{{MediaWiki:Grouppage-sysop}}|administrador do sitio]] para solicitar axuda se o sistema lle impide rexistrarse para facer contribucións lexítimas. +Por favor, póñase en contacto cun [[{{MediaWiki:Grouppage-sysop}}|administrador do sitio]] para solicitar axuda se o sistema lle impide rexistrarse para facer contribucións lexítimas. -Prema no botón \"atrás\" do seu navegador para volver á páxina de edición.", +Prema no botón "Atrás" do seu navegador para volver á páxina de edición.', 'captcha-addurl-whitelist' => ' #<!-- Deixe esta liña tal e como está --> <pre> # A sintaxe é a seguinte: # * Todo o que vaia despois dun carácter "#" ata o final da liña é un comentario @@ -1371,23 +1408,25 @@ Ins Bearbeitigsfänschter chunnt mer derno eifach wider mit em „Zruck“-Chnop /** Gujarati (ગુજરાતી) * @author Ashok modhvadia * @author Dsvyas + * @author KartikMistry */ $messages['gu'] = array( 'captcha-edit' => 'આ લેખમાં ફેરફાર કરવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો ([[Special:Captcha/help|more info]]):', - 'captcha-desc' => 'સાદું કૈપ્ચા અમલીકરણ', + 'captcha-desc' => '', 'captcha-addurl' => 'તમે કરેલા ફેરફારોમાં નવી બાહ્ય કડીઓ સામેલ છે. સ્વચાલિત સ્પેમ/સ્પામ(spam) થી બચવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો ([[Special:Captcha/help|more info]]):', 'captcha-badlogin' => 'આપોઆપ થતી ગુપ્તસંજ્ઞાની ચોરી (password cracking)થી બચાવવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો ([[Special:Captcha/help|more info]]):', 'captcha-createaccount' => 'આપોઆપ નવા ખાતા ખુલતા રોકવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો', - 'captcha-createaccount-fail' => 'ખોટી અથવા ખૂટતી પુષ્ટિ સંજ્ઞા', + 'captcha-createaccount-fail' => 'ખોટી અથવા ખૂટતી ખાતરી સંજ્ઞા.', 'captcha-create' => 'નવું પાનું બનાવવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો ([[Special:Captcha/help|more info]]):', + 'captcha-sendemail-fail' => 'ખોટી અથવા ખૂટતી ખાતરી સંજ્ઞા.', 'captchahelp-title' => 'કેપ્ટ્ચા/કેપ્ચા (Captcha) મદદ', 'captchahelp-cookies-needed' => 'આ વ્યવસ્થિત રીતે જોઇ શકાય તે માટે તમારા બ્રાઉઝરમાં કુકીઝ એનેબલ કરેલી હોવી જોઇશે.', 'captchahelp-text' => "આપણી વિકિ જેવી વૅબ સાઇટો કે જે લોકોને યોગદાન કરવાની પરવાનગી આપે છે, તેમનો સ્પામરો દ્વારા દુરૂપયોગ થતો આવ્યો છે. આવા સ્પામરો તેમની કડીઓ એક સાથે અનેક વૅબ સાઇટો પર મુકવા માટે સ્વચાલિત સાધનો વાપરે છે. આવી કડીઓ ખરેખર એક દૂષણ છે અને તેને દૂર કરવાના ઉપાય કરવા જોઇએ. ક્યારેક, ખાસ કરીને જ્યારે તમે તમારા લેખમાં બાહ્ય કડી ઉમેરતા હોવ ત્યારે, વિકિ તમને એક રંગીન કે તુટેલા-ફુટેલા અક્ષરો કે શબ્દોનું ચિત્ર બતાવે અને તેમા વંચાતા શબ્દો બાજુનાં ખાનામાં લખવા માટે પુછે એવું બને. આનું કારણ એ છે કે આ એક એવી પદ્ધતિ છે જે સ્વચાલિત રીતે કરવી લગભગ અશક્ય છે, અને ફક્ત વ્યક્તિગત રીતે જ થઇ શકે છે, જે સ્પામરો અને અન્ય ઘુસણખોરો ના હુમલાને ખાળે છે. -કમભાગ્યે આ પદ્ધતિ, એવા લોકોને તકલિફ આપે તેમ છે જેઓની દૃષ્ટિ નબળી છે અથવાતો જેઓ વાચા આધારીત કે સાદા બ્રાઉઝરનો ઉપયોગ કરે છે. હાલમા અમારી પાસે આવા ચિત્રોની વાચા આધારિત વ્યવસ્થા નથી. જો આ કારણે આપ કોઇ લેખમાં પ્રદાન ન કરી શકતા હોવ તો વધુ સહાય માટે કૃપા કરી પ્રબંધકનો સંપર્ક સાધો. +કમભાગ્યે આ પદ્ધતિ, એવા લોકોને તકલિફ આપે તેમ છે જેઓની દૃષ્ટિ નબળી છે અથવાતો જેઓ વાચા આધારીત કે સાદા બ્રાઉઝરનો ઉપયોગ કરે છે. હાલમા અમારી પાસે આવા ચિત્રોની વાચા આધારિત વ્યવસ્થા નથી. જો આ કારણે આપ કોઇ લેખમાં પ્રદાન ન કરી શકતા હોવ તો વધુ સહાય માટે કૃપા કરી [[{{MediaWiki:Grouppage-sysop}}|site administrators]] નો સંપર્ક સાધો. લેખમા ફેરફાર કરવાના પાના ઉપર પાછા ફરવા માટે આપના બ્રાઉઝરના 'બેક' બટન ઉપર ક્લિક કરો.", 'captcha-addurl-whitelist' => ' #<!-- આ લીટીને જેમ છે તેમ જ રહેવા દો --> <pre> @@ -1437,6 +1476,7 @@ $messages['he'] = array( ); /** Hindi (हिन्दी) + * @author Ansumang * @author Kaustubh * @author Shyam * @author आलोक @@ -1449,6 +1489,7 @@ $messages['hi'] = array( 'captcha-createaccount' => 'अपने आप होने वाले सदस्य पंजीकरण से बचने के लिये, नीचे दिये हुए आसान राशि का जवाब दिये हुए टेक्स्टबॉक्समें लिखें ([[Special:Captcha/help|अधिक ज़ानकारी]]):', 'captcha-createaccount-fail' => 'गलत या खाली सहमती कोड।', 'captcha-create' => 'यह पन्ना बनाने के लिये, नीचे दिये हुए आसान राशि का जवाब दिये हुए टेक्स्टबॉक्समें लिखें ([[Special:Captcha/help|अधिक ज़ानकारी]]):', + 'captcha-sendemail-fail' => 'गलत या लापता पुष्टिकरण कोड ।', 'captchahelp-title' => 'कॅप्टचा सहायता', 'captchahelp-cookies-needed' => 'यह कार्य करने के लिये आपने कूकीज (cookies) एनेबल किया होना आवश्यक हैं।', 'captchahelp-text' => "इस विकि जैसे जालस्थल, जो जनता जनार्दन से लेख स्वीकार करते हैं, अक्सर रद्दी काम करने वालों के फंदे में आ जाते हैं, जो स्वचालित यंत्रों से कई स्थलों पर अपनी कड़ियाँ छापने की कोशिश करते हैं। @@ -1515,16 +1556,15 @@ Pritisnite u svom pregledniku 'nazad' kako bi se vratili na uređivač stranice. $messages['hsb'] = array( 'captcha-edit' => 'Zo by stronu wobdźěłał, rozrisaj prošu slědowacy ličenski nadawk a zapodaj wuslědk do kašćika ([[Special:Captcha/help|Dalše informacije]]):', 'captcha-desc' => 'Staja CAPTCHA-techniki za škit přećiwo spamej a zhódowanju hesłow k dispoziciji', - '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 /> -[[Special:Captcha/help|(Čehodla?)]]', - 'captcha-badlogin' => 'Zo by so awtomatiskemu zadobywanju do hesłow zadźěwało, dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować. [[Special:Captcha/help|(Prašenja abo problemy?)]]', - 'captcha-createaccount' => 'Jako škitna naprawa přećiwo awtomatiskemu wutworjenju wužiwarskich kontow dyrbiš slědowacy nadawk wuličeć. [[Special:Captcha/help|(Prašenja abo problemy?)]]', - 'captcha-createaccount-fail' => 'Wopačny abo pobrachowacy wuslědk.', + 'captcha-addurl' => 'W twojej změnje su nowe eksterne wotkazy. Jako škitna naprawa přećiwo awtomatizowanemu spamej dyrbiš slědowacy nadawk wuličić a wuslědk do kašćika [[Special:Captcha/help|(dalše informacije)]] zapisować.', + 'captcha-badlogin' => 'Zo by so awtomatiskemu zadobywanju do hesłow zadźěwało, dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować. ([[Special:Captcha/help|dalše informacije]])', + 'captcha-createaccount' => 'Jako škitna naprawa přećiwo awtomatiskemu wutworjenju wužiwarskich kontow dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować ([[Special:Captcha/help|dalše informacije]]):', + 'captcha-createaccount-fail' => 'Wopačny abo pobrachowacy wobkrućenski kod.', 'captcha-create' => 'Zo by stronu wutworił, rozrisaj prošu slědowacy ličenski nadawk a zapodaj wuslědk do kašćika ([[Special:Captcha/help|Dalše informacije]]):', 'captcha-sendemail' => 'Za škit přećiwo awtomatiskemu spamowanju, rozrisaj prošu jednory ličenski nadawk a zapodaj wotmołwu do kašćika ([[Special:Captcha/help|dalše informacije]]):', 'captcha-sendemail-fail' => 'Wopačny abo falowacy wobkrućenski kod.', 'captcha-disabledinapi' => 'Tuta akcija wužaduje sej captcha, tohodla njeda so přez API wuwjesć.', - 'captchahelp-title' => 'Pomoc z captcha', + 'captchahelp-title' => 'Pomoc za CAPTCHA', 'captchahelp-cookies-needed' => 'Dyrbiš placki (cookies) w swojim wobhladowaku zmóžnić.', 'captchahelp-text' => 'Websydła, kotrež powěsće wot kóždeho akceptuja, so často wot spamarjow znjewužiwaja, kotřiž swoje wotkazy awtomatisce na wjele sydłach rozdźěleja. Hačrunjež so tute spamwotkazy hodźa wotstronić, su wone njesnadne mjerzanje. @@ -1537,10 +1577,9 @@ Prošu staj so z [[{{MediaWiki:Grouppage-sysop}}|administratorami sydła]] z pro Klikń na tłócatko "Wróćo" w swojim wobhladowaku, zo by so k editorej wróćił.', 'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre> -# Syntaks je slědowaca: +# Syntaksa je slědowaca: # * Wšo wot znamješka "#" hač do kónca linky je komentar # * Kóžda popisana linka je fragment regex (regularneho wuraza) kotryž so z mjenom hosta wěsteje URL přirunuje - #</pre> <!-- leave this line exactly as it is -->', 'right-skipcaptcha' => 'Captcha přeskočić', ); @@ -1666,6 +1705,42 @@ Tekan tombol 'back' di penjelajah web Anda untuk kembali ke halaman penyuntingan 'right-skipcaptcha' => 'Melakukan tindakan pemicu captcha tanpa melalui Captcha', ); +/** Iloko (Ilokano) + * @author Lam-ang + */ +$messages['ilo'] = array( + 'captcha-edit' => 'Tapno maurnos daytoy a panid, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'captcha-desc' => 'Ikkan na kadagiti CAPTCHA a pamay-ay tapno masalakniban kadagiti spam ken agpugpugto ti kontrasenias', + 'captcha-addurl' => 'Ti inurnos mo ket adda nagyan na a panilpo iti ruar. +Tapno maasalakniban kadagiti automatiko a spam, pangaasim na sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'captcha-badlogin' => 'Tapno makasalaknib kadagiti automatiko a pinagsulbar ti kontrasenias, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'captcha-createaccount' => 'Tapno masalakniban kadagiti automatiko a pinagaramid ti pakabilangan, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'captcha-createaccount-fail' => 'Saan a husto wenno awan ti pasingkedan a kodigo.', + 'captcha-create' => 'Tapno maramid ti panid, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'captcha-sendemail' => 'Tapno makasalaknib kadagiti automatiko a pinagspam, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'captcha-sendemail-fail' => 'Saan a husto wenno awan ti pasingkedan a kodigo.', + 'captcha-disabledinapi' => 'Daytoy nga aramid ket masapul na ti captcha, saan a mabalin a maaramid idiay API.', + 'captchahelp-title' => 'Tulong ti CAPTCHA', + 'captchahelp-cookies-needed' => 'Masapul nga adda galietas ti pagbasabasam tapno mabalin daytoy.', + 'captchahelp-text' => "Dagiti sapot a pagsaadan nga agaw-awat kadagiti maipablaak iti publiko, kasla daytoy a wiki, ket kanayon nga inabuso dagiti spammers nga agus-usar ti automatiko a ramramit ti pinagipablaak da kadagiti kukua da a panilpo ti adu a pagsasaadan. +Maikkat met dagitoy a panilpo, mgen makariri da unay. + +No sagpaminsan pay, nangruna no agikabil kadagiti baro a panilpo ti sapot iti panid, ti wiki ket baka agiparang ti imahen a nakoloran wenno bakkaweng a teksto ken agdamag kenka nga agmakinilya kadagiti balikas a naiparang. +Yantangay daytoy ket obra a narigat a ma-automatiko, agpalubos kadagiti agpayso a tattao ti agipablaak bayat nga agpasardeng ti kaaduan a spammers ken dagiti robot nga agraraut. + +Daksangasat a padaksan na dagiti agar-aramat a marigatan nga agkita wenno agus-usar ti naibasta ti teksto wenno naibasta ti bitla a pagbasabasa. +Awan pay tatta ti mangeg a pagpilian a mabalin a gun-oden. +Pangngaasi a kontaken ti [[{{MediaWiki:Grouppage-sysop}}|administrador ti pagsaadan]] para iti pannulong no daytoy ket saan a napadpadaanan a pawilan na ti agpayso a pinagbaplaak mo. + +Peslen ti 'agsubli' a buton dita pagbasabasam (browser) ti agsubli idiay panid ti pinagurnos.", + 'captcha-addurl-whitelist' => ' #<!-- baybayam nga kasta daytoy nga linia --> <pre> +# Dagiti sumaganad a gramatika: +# * Amin-amin a naggapu iti "#" a kabalinan inggana ti kalpasan ti linia ket komentario +# * Amin a saan a blanko a linia ket regex fragment a mangipada laeng ti naggapuan a nagsangailian iti uneg ti URLs + #</pre> <!-- baybay-am a kasta daytoy a linia -->', + 'right-skipcaptcha' => 'Pakabaelan ti agkalbit ti CAPTCHA kadagiti aramid a saan a mapan ti CAPTCHA.', +); + /** Icelandic (Íslenska) * @author S.Örvarr.S */ @@ -1865,7 +1940,7 @@ $messages['kk-arab'] = array( بەت ٶڭدەۋٸنە قايتۋ بارۋ ٷشٸن «ارتقا» دەگەن تٷيمەسٸن باسىڭىز.', ); -/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */ +/** Kazakh (Cyrillic script) (Қазақша (кирил)) */ $messages['kk-cyrl'] = array( 'captcha-edit' => 'Бұл бетті өңдеу үшін, төмендегі қосындылауды шешіңіз де, нәтижесін аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):', @@ -1891,7 +1966,7 @@ $messages['kk-cyrl'] = array( Бет өңдеуіне қайту бару үшін «Артқа» деген түймесін басыңыз.', ); -/** Kazakh (Latin) (Қазақша (Latin)) */ +/** Kazakh (Latin script) (Qazaqşa (latın)) */ $messages['kk-latn'] = 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]]):', @@ -2069,12 +2144,15 @@ Dréckt op den 'Zréck' Knäppche vun ärem Browser fir an d'Beaarbechtungsfëns */ $messages['li'] = array( 'captcha-edit' => "Geer wil dees pazjena bewerke. Veur estebleef 't antjwaord op de óngerstäönde einvawdife som in 't inveurvenster in ([[Special:Captcha/help|mieë informatie]]):", - 'captcha-desc' => 'Einvawdige implementatie van captcha', + 'captcha-desc' => "Bied CAPTCHA-technieke óm besjörming te beje taenge spam en 't raoje van wachweurd.", 'captcha-addurl' => "Uw bewerking bevat nieuwe externe links (URL's). Voer ter bescherming tegen geautomatiseerde spam alstublieft het antwoord op de onderstaande eenvoudige som in in het invoerveld ([[Special:Captcha/help|meer informatie]]):", 'captcha-badlogin' => 'Los alstublieft de onderstaande eenvoudige som op en voer het antwoord in het invoervenster in ter bescherming tegen het automatisch kraken van wachtwoorden ([[Special:Captcha/help|meer informatie]]):', 'captcha-createaccount' => 'Voer ter bescherming tegen geautomatiseerde spam het antwoord op de onderstaande eenvoudige som in het invoervenster in ([[Special:Captcha/help|meer informatie]]):', 'captcha-createaccount-fail' => 'De bevestigingscode ontbreekt of is onjuist.', 'captcha-create' => 'U wilt een nieuwe pagina aanmaken. Voer alstublieft het antwoord op de onderstaande eenvoudige som in het invoervenster in ([[Special:Captcha/help|meer informatie]]):', + 'captcha-sendemail' => "Veur ter besjerming taege geautomatiseerde spam 't antjwaord op de ongerstaonde einvawdige som in 't inveurvinster in ([[Special:Captcha/help|mier informatie]]):", + 'captcha-sendemail-fail' => 'De bevestigingscode ontbrèk of is ónjuus.', + 'captcha-disabledinapi' => "Veur dees actie is 'n captcha neudig die neet aafgehanjeldj kin waere via de API.", 'captchahelp-title' => 'Captcha-hölp', 'captchahelp-cookies-needed' => 'Ge dient in uw browser cookies ingeschakeld te hebbe om dit te laote werke.', 'captchahelp-text' => "Websites die vrie te bewèrke zeen, wie deze wiki, waere döks misbroek door spammers die d'r 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. @@ -2102,6 +2180,7 @@ $messages['lo'] = array( ); /** Lithuanian (Lietuvių) + * @author Eitvys200 * @author Garas * @author Homo * @author Matasg @@ -2109,6 +2188,8 @@ $messages['lo'] = array( $messages['lt'] = array( 'captcha-edit' => 'Kad redaguotumėte šį straipsnį, apskaičiuokite šią paprastą sumą ir įveskite atsakymą į laukelį ([[Special:Captcha/help|daugiau informacijos]]):', 'captcha-createaccount-fail' => 'Blogas arba nerastas patvirtinimo kodas.', + 'captchahelp-title' => 'CAPTCHA pagalba', + 'captchahelp-cookies-needed' => 'Jums reikia būti įjungus sausainėlius savo naršyklėje kad tai veiktu', ); /** Latvian (Latviešu) @@ -2240,19 +2321,23 @@ $messages['mn'] = array( /** Marathi (मराठी) * @author Kaustubh + * @author Mahitgar + * @author V.narsikar */ $messages['mr'] = array( 'captcha-edit' => 'हे पान संपादित करण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', - 'captcha-desc' => 'सोप्या कॅप्टचाचा वापर', + 'captcha-desc' => 'उत्पात आणि परवलीच्या शब्दांच्या चोरी पासून सूरक्षीत ठेवणाऱ्या ओळखपटवा-पद्धती CAPTCHA techniques पुरवते.', 'captcha-addurl' => 'तुमच्या संपादनात नवीन बाह्यदुवे आहेत. आपोआप होणार्या स्पॅम पासून वाचण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', 'captcha-badlogin' => 'आपोआप होणार्या परवलीच्या शब्दाच्या चोरीपासून वाचण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', 'captcha-createaccount' => 'आपोआप होणार्या सदस्य नोंदणीपासून वाचण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', 'captcha-createaccount-fail' => 'चुकीचा अथवा रिकामा सहमती कोड', 'captcha-create' => 'हे पान तयार करण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', + 'captcha-sendemail' => 'आपोआप होणार्या उत्पातापासून वाचण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', 'captcha-sendemail-fail' => 'चुकीचा अथवा रिकामा सहमती कोड', + 'captcha-disabledinapi' => 'या क्रियेसाठी कॅप्चा हवी.API मार्फत हे शक्य नाही.', 'captchahelp-title' => 'कॅप्टचा साहाय्य', 'captchahelp-cookies-needed' => 'हे काम करण्यासाठी तुम्ही कूकीज (cookies) एनेबल केलेल्या असणे गरजेचे आहे.', - 'captchahelp-text' => "ज्या संकेतस्थळांवर जसे की हा विकि, सर्वसामान्य लोकांकडून संपादने करण्याची परवानगी असते, तिथे आपोआप होणारी स्वत:च्या संकेतस्थळांचे दुवे देणारी संपादने (Spam) कायम होत असतात. + 'captchahelp-text' => "ज्या संकेतस्थळांवर जसे की हा विकि, सर्वसामान्य लोकांकडून संपादने करण्याची परवानगी असते, तिथे आपोआप होणारी स्वत:च्या संकेतस्थळांचे दुवे देणारी उत्पात संपादने (Spam) कायम होत असतात. अशी संपादने जरी काढता आली तरी ती एक डोकेदुखी होऊ शकते. काहीवेळा, जेव्हा एखाद्या पानावर नवीन बाह्यदुवा देताना, विकि तुम्हाला एक चित्र दाखवून त्यांतील शब्द भरण्यास सांगू शकतो. @@ -2260,7 +2345,7 @@ $messages['mr'] = array( पण खेदाची गोष्ट अशी की ह्यामुळे अर्धांध व्यक्ती तसेच ज्या व्यक्ती फक्त मजकूर दाखविणारा न्याहाळक वापरतात, अशांना असुविधा होऊ शकते. सध्या आमच्याकडे आवाज ऐकण्याची सुविधा नाही. -कृपया विकिवरील प्रबंधकांशी या बाबतीत संपर्क करावा. +कृपया [[{{MediaWiki:Grouppage-sysop}}|संस्थळ प्रचालकांशी]] या बाबतीत संपर्क करावा. पृष्ठ संपादनाकडे परत जाण्यासाठी आपल्या ब्राउझरची ’Back' ही कळ दाबा.", 'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre> @@ -2322,6 +2407,40 @@ $messages['nan'] = array( 'captcha-createaccount-fail' => 'Khak-jīn-bé chhò-gō· iah-sī làu-kau.', ); +/** Norwegian (bokmål) (Norsk (bokmål)) + * @author Audun + * @author Jon Harald Søby + * @author Laaknor + * @author Nghtwlkr + */ +$messages['nb'] = array( + 'captcha-edit' => 'Skriv inn summen nedenfor i boksen for å kunne redigere denne siden ([[Special:Captcha/help|mer informasjon]]):', + 'captcha-desc' => 'Gir tilgang til CAPTCHA-teknikker for å beskytte mot søppl og passordgjetting', + 'captcha-addurl' => 'Din redigering inneholder nye eksterne lenker. Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk spam ([[Special:Captcha/help|mer informasjon]]):', + 'captcha-badlogin' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk passordtyveri ([[Special:Captcha/help|mer informasjon]]):', + 'captcha-createaccount' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk kontoopprettelse ([[Special:Captcha/help|mer informasjon]]):', + 'captcha-createaccount-fail' => 'Ukorrekt eller manglende bekreftelseskode.', + 'captcha-create' => 'Løs det enkle regnestykket i boksen nedenfor for å opprette siden ([[Special:Captcha/help|mer informasjon]]):', + 'captcha-sendemail' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk spamming ([[Special:Captcha/help|mer informasjon]]):', + 'captcha-sendemail-fail' => 'Ukorrekt eller manglende bekreftelseskode.', + 'captcha-disabledinapi' => 'Denne handlinger krever en captcha, så den kan ikke bli gjort gjennom APIet.', + 'captchahelp-title' => 'Hjelp med Captcha', + 'captchahelp-cookies-needed' => 'Du må slå på informasjonskapsler for at dette skal fungere.', + '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 stor irritasjon. + +Noen ganger, særlig hvis du vil legge til nye internettlenker til en side, kan wikien vise deg et bilde av en farge 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. Vennligst kontakt [[{{MediaWiki:Grouppage-sysop}}|administratorene]] hvis denne funksjonen forhindrer deg i å foreta legitime endringer. + +Trykk på 'tilbake'-knappen for å komme tilbake til redigeringssiden.", + 'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre> +# Syntaksen er som følger: +# * Alle linjer som begynner med «#» er kommentarer +# * Alle linjer som ikke er blanke er fragmenter av regulære uttrykk som sjekker verter i URL-er + #</pre> <!-- leave this line exactly as it is -->', + 'right-skipcaptcha' => 'Utføre handlinger som normalt krever «captcha»-bekreftelse uten å bruke «captcha»', +); + /** Low German (Plattdüütsch) * @author Slomox */ @@ -2364,29 +2483,29 @@ Mit den „Trüch“-Knopp vun dien Browser kummst du trüch na dat Ännerfinste * @author Servien */ $messages['nds-nl'] = array( - 'captcha-edit' => "Um disse pagina te bewarken, mu-j eers 't antwoord op disse eenvoudige somme invullen ([[Special:Captcha/help|meer infermasie]]):", + 'captcha-edit' => "Um disse pagina te bewarken, mö'j eers t antwoord op disse eenvoudige somme invullen ([[Special:Captcha/help|meer informasie]]):", 'captcha-desc' => 'Eenvoudige invoering van captcha', 'captcha-addurl' => 'Joew bewarking bevat nieje uutgaonde verwiezingen. -Voer ter de bescharming tegen ongewunste reclame de somme in dee hieronder steet:<br /> +Voer ter de bescharming tegen ongewunste reklame de somme in die hieronder steet:<br /> ([[Special:Captcha/help|Hulpe?]])', - 'captcha-badlogin' => "Los disse eenvoudige rekensomme op en voer 't antwoord in bie 't invoervienster in ter bescharming tegen 't autematisch kraken van wachwoorden ([[Special:Captcha/help|meer infermasie]]):", - 'captcha-createaccount' => "Voer ter bescharming tegen autematische ongewunste reclame 't antwoord op disse eenvoudige rekensomme in bie invoervienster ([[Special:Captcha/help|meer informatie]]):", - 'captcha-createaccount-fail' => 'Verkeerde of ontbrekende bevestigingscode.', - 'captcha-create' => "Je bin een nieje pagina an 't maken. -Voer 't antwoord van disse eenvoudige rekensomme in bie 't invoervienster -([[Special:Captcha/help|meer infermasie]]).", + 'captcha-badlogin' => 'Los disse eenvoudige rekensomme op en voer t antwoord in bie t invoervienster in ter bescharming tegen t automaties kraken van wachtwoorden ([[Special:Captcha/help|meer informasie]]):', + 'captcha-createaccount' => 'Voer ter bescharming tegen automatiese ongewunste reklame t antwoord op disse eenvoudige rekensomme in bie invoervienster ([[Special:Captcha/help|meer informatie]]):', + 'captcha-createaccount-fail' => 'Verkeerde of ontbrekende bevestigingskode.', + 'captcha-create' => 'Je bin n nieje pagina an t maken. +Voer t antwoord van disse eenvoudige rekensomme in bie t invoervienster +([[Special:Captcha/help|meer informasie]]).', 'captchahelp-title' => 'Lettertoetshulpe', - 'captchahelp-cookies-needed' => 'Je mutten cookies an hemmen staon um disse functie te gebruken.', - 'captchahelp-text' => "Websteeën waor iederene an kan biedragen, zoas disse {{SITENAME}}-wiki, wonnen vake misbruuk deurdat der ongewunste verwiezingen op ezet wonnen. Op disse wiki kunnen zokken bewarkingen makkelijk weerummezet wonnen, mar 't nimp wel tied in beslag dee aanders gebruuk kan wonnen. + 'captchahelp-cookies-needed' => 'Je mutten scheumbestaanden (cookies) an hebben staon um disse funksie te gebruken.', + 'captchahelp-text' => "Websteeën waor iederene an kan biedragen, zo as disse {{SITENAME}}-wiki, wörden vake misbruukt deurdat der ongewunste verwiezingen op ezet wörden. Op disse wiki kunnen zokken bewarkingen makkelik weerummezet wörden, mer t nimp wel tied in beslag die aanders gebruukt kan wörden. -Soms a-j nieje verwiezingen bie een pagina derop zetten, wo-j evreugen um iets over te typen of in te vullen. Dit zörg derveur dat der gien ongewunste verwiezingen eplaos wonnen, umdat dit allinnig deur meensen edaon kan wonnen en neet deur botgebrukers. +Soms a'j nieje verwiezingen bie n pagina derop zetten, wö'j evreugen um iets over te tikken of in te vullen. Dit zörgt derveur dat der gien ongewunste verwiezingen eplaotst wörden, umdat dit allenig deur meensen edaon kan wörden en niet deur botgebrukers. -(Klik op de knoppe 'terug' in joew webkieker, um weerumme te gaon naor 't teksbewarkingscharm.)", - 'captcha-addurl-whitelist' => ' #<!-- laot disse regel zoas e is --> <pre> -# De syntaxis is as volg: -# * Alle tekse vanof \'t kerakter "#" tot \'t einde van de regels wonnen ezien as opmarking -# * Alle regels dee neet leeg bin, wonnen ezien as een regeliere uutdrokking dee veur delen van de domein staon. - #</pre> <!-- laot disse regel zoas e is -->', +(Klik op de knoppe 'terug' in joew webkieker, um weerumme te gaon naor t tekstbewarkingscharm.)", + 'captcha-addurl-whitelist' => ' #<!-- laot disse regel zo as t is --> <pre> +# De syntaxis is as volgt: +# * Alle tekste vanaof t karakter "#" tot t einde van de regels wörden ezien as opmarking +# * Alle regels die niet leeg bin, wörden ezien as n reguliere uutdrokking die veur delen van de domein staon. + #</pre> <!-- laot disse regel zo as t is -->', ); /** Dutch (Nederlands) @@ -2461,40 +2580,6 @@ Trykk på «attende»-knappen for å kome tilbake til endringssida.', 'right-skipcaptcha' => 'Utføre handlingar som normalt krever «captcha»-stadfesting utan å bruke «captcha»', ); -/** Norwegian (bokmål) (Norsk (bokmål)) - * @author Audun - * @author Jon Harald Søby - * @author Laaknor - * @author Nghtwlkr - */ -$messages['no'] = array( - 'captcha-edit' => 'Skriv inn summen nedenfor i boksen for å kunne redigere denne siden ([[Special:Captcha/help|mer informasjon]]):', - 'captcha-desc' => 'Gir tilgang til CAPTCHA-teknikker for å beskytte mot søppl og passordgjetting', - 'captcha-addurl' => 'Din redigering inneholder nye eksterne lenker. Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk spam ([[Special:Captcha/help|mer informasjon]]):', - 'captcha-badlogin' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk passordtyveri ([[Special:Captcha/help|mer informasjon]]):', - 'captcha-createaccount' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk kontoopprettelse ([[Special:Captcha/help|mer informasjon]]):', - 'captcha-createaccount-fail' => 'Ukorrekt eller manglende bekreftelseskode.', - 'captcha-create' => 'Løs det enkle regnestykket i boksen nedenfor for å opprette siden ([[Special:Captcha/help|mer informasjon]]):', - 'captcha-sendemail' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk spamming ([[Special:Captcha/help|mer informasjon]]):', - 'captcha-sendemail-fail' => 'Ukorrekt eller manglende bekreftelseskode.', - 'captcha-disabledinapi' => 'Denne handlinger krever en captcha, så den kan ikke bli gjort gjennom APIet.', - 'captchahelp-title' => 'Hjelp med Captcha', - 'captchahelp-cookies-needed' => 'Du må slå på informasjonskapsler for at dette skal fungere.', - '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 stor irritasjon. - -Noen ganger, særlig hvis du vil legge til nye internettlenker til en side, kan wikien vise deg et bilde av en farge 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. Vennligst kontakt [[{{MediaWiki:Grouppage-sysop}}|administratorene]] hvis denne funksjonen forhindrer deg i å foreta legitime endringer. - -Trykk på 'tilbake'-knappen for å komme tilbake til redigeringssiden.", - 'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre> -# Syntaksen er som følger: -# * Alle linjer som begynner med «#» er kommentarer -# * Alle linjer som ikke er blanke er fragmenter av regulære uttrykk som sjekker verter i URL-er - #</pre> <!-- leave this line exactly as it is -->', - 'right-skipcaptcha' => 'Utføre handlinger som normalt krever «captcha»-bekreftelse uten å bruke «captcha»', -); - /** Occitan (Occitan) * @author Cedric31 */ @@ -2524,6 +2609,42 @@ Clicatz sul boton « Precedent » de vòstre navigador per tornar a la pagina de 'right-skipcaptcha' => "Acomplís lo desenclavament de las accions de captcha sens dever passar per l'intermediari aqueste darrièr", ); +/** Oriya (ଓଡ଼ିଆ) + * @author Psubhashish + */ +$messages['or'] = array( + 'captcha-edit' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ବଦଳାଇବା ନିମନ୍ତେ, ତଳେ ଥିବା ସହଜ ଅଙ୍କଟିର ସମାଧାନ କରନ୍ତୁ ଓ ଘରଟିରେ ଫଳାଫଳ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ଜାଣନ୍ତୁ]]):', + 'captcha-desc' => 'CAPTCHA କାରିଗରି ଉପାୟରେ ସ୍ପାମ ଓ ପାସବାର୍ଡ଼ ରକ୍ଷା କରିଥାଏ ।', + 'captcha-addurl' => 'ଆପଣଙ୍କ ସମ୍ପାଦନାରେ ନୂଆ ବାହାର ଲିଙ୍କ ରହିଛି । +ଆପେଆପେ ହେଉଥିବା ସ୍ପାମର ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ତଳେ ଥିବା ଗଣିତର ସମାଧାନ କରନ୍ତୁ ଓ ତଳେ ଥିବା ଘରେ ଉତ୍ତର ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ବିବରଣୀ]]):', + 'captcha-badlogin' => 'ଆପେଆପେ ହେଉଥିବା ପାସବାର୍ଡ଼ ଚୋରାଇବାକୁ ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ତଳେ ଥିବା ସରଳ ଗଣିତର ସମାଧାନ କରନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):', + 'captcha-createaccount' => 'ଆପେଆପେ ହେଉଥିବା ଖାତା ଖୋଲିବାକୁ ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ତଳେ ଥିବା ସରଳ ଗଣିତର ସମାଧାନ କରି ଉତ୍ତର ଘରେ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):', + 'captcha-createaccount-fail' => 'ନିଶ୍ଚିତ କରିବା କୋଡ଼ଟି ଭୁଲ ଅଛି ବା ମୂଳରୁ ନାହିଁ ।', + 'captcha-create' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ତିଆରିବା ନିମନ୍ତେ, ତଳେ ଥିବା ସହଜ ଅଙ୍କଟିର ସମାଧାନ କରନ୍ତୁ ଓ ଘରଟିରେ ଫଳାଫଳ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ଜାଣନ୍ତୁ]]):', + 'captcha-sendemail' => 'ଆପେଆପେ ହେଉଥିବା ସ୍ପାମକୁ ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ତଳେ ଥିବା ସରଳ ଗଣିତର ସମାଧାନ କରି ତଳେ ଥିବା ଉତ୍ତର ବାକ୍ସରେ ଉତ୍ତର ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):', + 'captcha-sendemail-fail' => 'ନିଶ୍ଚିତ କରିବା କୋଡ଼ଟି ଭୁଲ ଅଛି ବା ମୂଳରୁ ନାହିଁ ।', + 'captcha-disabledinapi' => 'ଏହି କାମଟି ପାଇଁ ଏକ କ୍ୟାପଚା ଦରକାର, ଏହା API ଦେଇ କେଭେହେଁ ହୋଇପାରିବ ନାହିଁ ।', + 'captchahelp-title' => 'CAPTCHA ସହଯୋଗ', + 'captchahelp-cookies-needed' => 'ଏହି କାମତି କରିବା ପାଇଁ ଆପଣଙ୍କ ବ୍ରାଉଜରରେ କୁକି ସଚଳ କରିବାକୁ ପଡ଼ିବ ।', + 'captchahelp-text' => "ଏହି ଉଇକି ପରି ଜନସାଧାରଣଙ୍କ ଠାରୁ ଲେଖା ଗ୍ରହଣ କରୁଥିବା ସାଇଟ ସବୁରେ ବହୁବାର ସ୍ପାମମାନେ ଆପେଆପେ ନିଜ ନିଜର ଉପକରଣ ମାଧ୍ୟମରେ ଅଦରକାରୀ ଲିଙ୍କମାନ ଦେଇଥାନ୍ତି । +ଯଦିଓ ସ୍ପାମ ଲିଙ୍କ ସବୁ ହଟାଇଦିଆଯାଇ ପାରିବ ସେସବୁ ବହୁ ଅସୁବିଧା ତିଆରି କରିଥାଏ । + +ବେଳେବେଳେ, ବିଶେଷ କରି ଏକ ପୃଷ୍ଠାରେ ନୂଆ ୱେବ ଲିଙ୍କ ଦେଲାବେଳେ ଉଇକିଟି ଆପଣଙ୍କୁ ଏକ ରଙ୍ଗିନ ବା ଭଙ୍ଗାରୁଜା ଲେଖା ଦେଖାଇ ଆପଣଙ୍କୁ ତାହାକୁ ଟାଇପ କରିବାକୁ କହିଥାଏ । +ଯେହେତୁ ଏହି କାମକୁ ମଣିଷ ବିନା ଆପେଆପେ କରିବା ସମ୍ଭବପର ନୁହେଁ, ଏହି ବାସ୍ତବ ମଣିଷମାନଙ୍କୁ ଲେଖିବାରେ ସହଯୋଗ କରିଥାଏ ଓ ସ୍ପାମର ଓ ବାକି ରୋବଟ ଆକ୍ରମଣକୁ ପ୍ରତିହତ କରିପାରେ । + +ଅପରାପକ୍ଷେ ଏହା ସୀମିତ ଦୃଷ୍ଟିଥିବା ବା ଲେଖା କିମ୍ବା କଥା କୁହ ବ୍ରାଉଜର ବ୍ୟବହାର କରୁଥିବା ସଭ୍ୟମାନଙ୍କୁ ଅସୁବିଧାରେ ପକାଇଥାଏ । +ଅଧୁନା ଏଠାରେ ଧ୍ୱନିଚଳିତ ବିକଳ୍ପଟିଏ ଦେଇନାହୁଁ । +ଆପଣଙ୍କୁ ଉପଯୁକ୍ତ ଲେଖା ଦେବାରେ ସହଯୋଗ କରିବା ନିମନ୍ତେ ଦୟାକରି [[{{MediaWiki:Grouppage-sysop}}|ସାଇଟ ପରିଛା]]ମାନଙ୍କୁ ଯୋହଗାଯୋଗ କରନ୍ତୁ । + +ଆପଣଙ୍କ ବ୍ରାଉଜରରେ ଥିବା 'back' ଚିପି ପୃଷ୍ଠା ସମ୍ପାଦକକୁ ଲେଉଟିଯାନ୍ତୁ ।", + 'captcha-addurl-whitelist' => ' #<!—ଏହି ଧାଡ଼ିଟି ଯେମିତି ଅଛି ସେମିତି ଛାଡ଼ି ଦିଅନ୍ତୁ --> <pre> +# ତଳେ ସିଣ୍ଟାକ୍ସଟି ଦିଆଗଲା: +# * ଧାଡ଼ିର ଶେଷରେ "#" ଚିହ୍ନ ଦିଆଥିବା ସବୁକିଛି ଏକ ମତାମତ +# * ପ୍ରତିଟି ଅଣ-ଖାଲି ଧାଡ଼ି ଏକ regex ଖଣ୍ଡ ଯାହା କେବଳ URL ବାହାରେ ଥିବା ହୋଷ୍ଟ ମାନଙ୍କ ସଙ୍ଗେ ମେଲ ଖାଇଥାଏ + #</pre> <!-- ଏହି ଧାଡ଼ିଟି ଯେମିତି ଅଛି ସେମିତି ଛାଡ଼ି ଦିଅନ୍ତୁ -->', + 'right-skipcaptcha' => 'CAPTCHA ଭିତରେ ନଯାଇ CAPTCHA ଦେଇ ସଞ୍ଚାଳିତ କାମ କରିବେ', +); + /** Pampanga (Kapampangan) */ $messages['pam'] = array( 'captcha-createaccount' => 'Bang ala na kabud laltong account, pakipakibatan me ing papacuenta ra king lalam at ibili me ing pakibat ketang cahun ([[Special:Captcha/help|more info]]):', @@ -2619,11 +2740,45 @@ Ch'a-i bata ansima al boton 'andré' ant sò navigator për torné andré a l'ed 'right-skipcaptcha' => "A fà j'assion che a ativo la captcha sensa avèj da passé da la captcha", ); +/** Western Punjabi (پنجابی) + * @author Khalid Mahmood + */ +$messages['pnb'] = array( + 'captcha-edit' => 'اس صفحے نوں تبدیل کرن واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):', + 'captcha-desc' => 'کیپچا ول سپام تے کنجی اندازے توں بچن لئی دیندا اے۔', + 'captcha-addurl' => 'تواڈی تبدیلی چ نویں بارلے جوڑ نیں۔ +اس صفحے نوں تبدیل کرن واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):', + 'captcha-badlogin' => 'اپنے آپ کنجی توڑن دے خلاف مدد واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):', + 'captcha-createaccount' => 'اپنے آپ غلط نویں کھاتے بنان نوں روکن واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):', + 'captcha-createaccount-fail' => 'غلط کنفرمیشن کوڈ۔', + 'captcha-create' => 'اس صفحے نوں بنان واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):', + 'captcha-sendemail' => 'اپنے آپ غلط مال آن نوں روکن واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):', + 'captcha-sendemail-fail' => 'غلط یا چھوٹے کنفرمیشن کوڈ', + 'captcha-disabledinapi' => 'ایس کم لئی کیپچا چائیدا اے، ایس لئی ایہ اے پی آئی نال نئیں چل سکدا۔', + 'captchahelp-title' => 'کیپچا مدد', + 'captchahelp-cookies-needed' => 'توانوں اپنے براؤزر چ ککیاں چلانیاں پین گیاں ایس نوں چلان لئی۔', + 'captchahelp-text' => 'ویب سائیٹاں جیہڑیاں لوکاں کولوں ڈاک لیندیاں نیں جیویں ایہ وکی، ایناں تے خراب ڈاک پیجن والے ہلے بولدے ریندے نیں تے کئی سائیٹاں دے جوڑ جوڑدے ریندے نیں۔ ایہ سپام جوڑ ہٹاۓ جاسکدے نیں پر ایہ اک رپھڑ تے ہے نیں۔ + +کدے کدے، خاص طور تے کسے صفے نال نویں ویب جوڑ جوڑدیاں ہویاں، وکی توانوں اک رنگ والی یا خراب لکھت دسدا اے تے توانوں پچھدا اے جے ٹائپ ہویا بول لکھو۔ +اے کم ایسا اے جیہڑا چلانا اوکھا اے، اے چوکھے سارے لوکاں نوں اپنی ڈاک پیجن دیوے گا تے سپامراں نوں روک دیوے گا، + +بدقسمستی نال اے تھوڑی سوچ رکھن والے ورتنوالیاں یا لکھت ورتن والے یا گل بات والے براؤزر نوں چنگا ناں لگے۔ +ایس ویلے ساڈے کول ایدے تھاں تے ورتیا جان والا آڈیو نئیں۔ مہربانی کرکے [[{{MediaWiki:Grouppage-sysop}}|site administrators]] نال ملو مدد لئی اگ ایہ اچانک تواڈی ٹھیک ڈاک نوں روکدا اے۔ +بیک بٹن نوں دباؤ اپنے براؤزر چ صفہ لکھاری تک اپڑن لئی۔', + 'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre> +# Syntax is as follows: +# * Everything from a "#" character to the end of the line is a comment +# * Every non-blank line is a regex fragment which will only match hosts inside URLs + #</pre> <!-- leave this line exactly as it is -->', + 'right-skipcaptcha' => 'کیپچا ٹورن والے کم کیپچا چوں گۓ بنا کرو۔', +); + /** Pashto (پښتو) * @author Ahmed-Najib-Biabani-Ibrahimkhel */ $messages['ps'] = array( 'captcha-create' => 'ددې لپاره چې نوی ليکنه ترسره کړی، لطفاً د همدغه ساده شمېرو ځواب په ورکړ شوي چوکاټ کې وليکی ([[Special:Captcha/help|نور مالومات]]):', + 'captchahelp-title' => 'CAPTCHA لارښود', 'captchahelp-cookies-needed' => 'ددې کړنې د ترسره کېدلو لپاره تاسو ته پکار ده چې د خپل کتنمل (browser) کوکيز (cookies) چارن کړی.', ); @@ -2725,17 +2880,25 @@ $messages['ro'] = array( '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ă.', '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-sendemail' => 'Pentru a împiedica roboții de spam, vă rugăm să rezolvați operația simplă de mai jos și să introduceți răspunsul în căsuță ([[Special:Captcha/help|mai multe detalii]]):', 'captcha-sendemail-fail' => 'Codul de confirmare lipsește sau este incorect.', + 'captcha-disabledinapi' => 'Această acțiune necesită rezolvarea unui captcha, deci nu poate fi efectuată prin API.', 'captchahelp-title' => 'Despre „Captcha”', 'captchahelp-cookies-needed' => 'Trebuie ca browserul dumneavoastră să accepte cookie-uri pentru ca aceasta să funcționeze.', - '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ă. + '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 alte situri. Deși aceste legături de spam pot fi îndepărtate, 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 veți fi rugat să introduceți cuvintele indicate. Deoarece aceasta este o sarcină greu de automatizat, ea permite majorității persoanelor reale să posteze și va opri majoritatea atacatorilor. Din nefericire, această metodă îi poate deranja pe utilizatorii cu probleme vizuale sau care folosesc browsere bazate pe text sau sunet. În acest moment nu avem o alternativă audio disponibilă. Vă rugăm, contactați [[{{MediaWiki:Grouppage-sysop}}|administratorii sitului]] pentru asistență dacă metoda vă oprește de la a face postări legitime. -Apasă butonul 'Înapoi' al browserului pentru a te reîntoarce la pagina de editare.", +Apasă butonul „Înapoi” al browserului pentru a te reîntoarce la pagina de editare.', + 'captcha-addurl-whitelist' => ' #<!-- lăsați această linie așa cum este --> <pre> +# Sintaxa este așa cum urmează: +# * Toate liniile care încep cu „#” sunt considerate comentarii +# * Toate liniile care nu sunt goale sunt fragmente RegEx care vor găsi doar gazda din interiorul URL-urilor + #</pre> <!-- lăsați această linie așa cum este -->', + 'right-skipcaptcha' => 'Efectuează acțiuni care necesită completarea unui cod CAPTCHA fără a fi nevoie să facă acest lucru', ); /** Tarandíne (Tarandíne) @@ -2807,7 +2970,7 @@ $messages['ru'] = array( */ $messages['rue'] = array( 'captcha-edit' => 'Жебысьте могли едітовати тоту сторінку, мусите вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]])', - 'captcha-desc' => 'Проста імплементація овірёвачого коду (captcha)', + 'captcha-desc' => 'Забезпечує техніку CAPTCHA про охрану перед спамом і гаданём гесел', 'captcha-addurl' => 'Ваше едітованя обсягує новы одказы формов URL; про охорону перед автоматічным спамом мусите вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]])', 'captcha-badlogin' => 'В рамках охороны перед автоматічныма пробами угаднути гесло мусите вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]]):', 'captcha-createaccount' => 'В рамках охороны перед автоматічныма створёванями конт мусите про выконаня реґістрації вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]]):', @@ -2833,7 +2996,7 @@ $messages['rue'] = array( 'right-skipcaptcha' => 'Выконованя дїй споєных з CAPTCHA без потребы їх рїшіня', ); -/** Yakut (Саха тыла) +/** Sakha (Саха тыла) * @author HalanTul */ $messages['sah'] = array( @@ -3048,35 +3211,38 @@ Shtypni butonin "prapa" ("back") të shfletuesit tuaj për tu kthyer tek faqja e 'right-skipcaptcha' => 'Kryen veprime CAPTCHA-triggering pa pasur nevojë të shkojë nëpërmjet CAPTCHA', ); -/** Serbian Cyrillic ekavian (Српски (ћирилица)) +/** Serbian (Cyrillic script) (Српски (ћирилица)) * @author Millosh * @author Rancher */ $messages['sr-ec'] = array( 'captcha-edit' => 'За измену ове стране, реши једноставан збри испод и унеси одговор у кутију ([[Special:Captcha/help|детаљније]]):', 'captcha-desc' => 'Пружа заштиту против непожељних порука у виду потврдног кода', - 'captcha-addurl' => 'Твоја измена укључује нове спољашње везе. У циљу заштите против аутоматског спама, реши једноставан збир испод и упиши одговор у кутију ([[Special:Captcha/help|детаљније]]):', - 'captcha-badlogin' => 'У циљу заштите од аутоматске провале у лозинку, реши једноставан збир испод и унеси одговор у кутију ([[Special:Captcha/help|детаљније]]):', - 'captcha-createaccount' => 'У циљу заштите од аутоматског стварања налога, реши једноставан збир доле и унеси га у кутију ([[Special:Captcha/help|детаљније]]):', + 'captcha-addurl' => 'Ваша измена садржи нове спољашње везе. +У циљу заштите од непожељних порука, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):', + 'captcha-badlogin' => 'У циљу заштите од пробијања лозинки, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):', + 'captcha-createaccount' => 'У циљу заштите од самоотварања налога, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):', 'captcha-createaccount-fail' => 'Неправилан или непостојећи код за потврду.', - 'captcha-create' => 'За стварање стране реши једноставан збир доле и унеси га у кутију ([[Special:Captcha/help|детаљније]]):', + 'captcha-create' => 'Да бисте направили страницу, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):', + 'captcha-sendemail' => 'У циљу заштите од слања непожељних порука, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):', 'captcha-sendemail-fail' => 'Неправилан или непостојећи код за потврду.', 'captchahelp-title' => 'Помоћ око потврдног кôда', 'captchahelp-cookies-needed' => 'Потребно је да омогућите колачиће да би ово радило.', 'right-skipcaptcha' => 'прескакање радњи које захтевају унос потврдног кода', ); -/** Serbian Latin ekavian (Srpski (latinica)) +/** Serbian (Latin script) (Srpski (latinica)) * @author Michaello */ $messages['sr-el'] = array( 'captcha-edit' => 'Za izmenu ove strane, reši jednostavan zbri ispod i unesi odgovor u kutiju ([[Special:Captcha/help|detaljnije]]):', - 'captcha-desc' => 'jednostavna kapča implementacija', + 'captcha-desc' => 'Pruža zaštitu protiv nepoželjnih poruka u vidu potvrdnog koda', 'captcha-addurl' => 'Tvoja izmena uključuje nove spoljašnje veze. U cilju zaštite protiv automatskog spama, reši jednostavan zbir ispod i upiši odgovor u kutiju ([[Special:Captcha/help|detaljnije]]):', 'captcha-badlogin' => 'U cilju zaštite od automatske provale u lozinku, reši jednostavan zbir ispod i unesi odgovor u kutiju ([[Special:Captcha/help|detaljnije]]):', 'captcha-createaccount' => 'U cilju zaštite od automatskog stvaranja naloga, reši jednostavan zbir dole i unesi ga u kutiju ([[Special:Captcha/help|detaljnije]]):', 'captcha-createaccount-fail' => 'Nepravilan ili nepostojeći kod za potvrdu.', 'captcha-create' => 'Za stvaranje strane reši jednostavan zbir dole i unesi ga u kutiju ([[Special:Captcha/help|detaljnije]]):', + 'captcha-sendemail-fail' => 'Nepravilan ili nepostojeći kod za potvrdu.', 'captchahelp-title' => 'pomoć za kapču', 'captchahelp-cookies-needed' => 'Da bi ovo uradio, neophodno je da su ti kolačići omogućeni u brauzeru.', 'right-skipcaptcha' => 'Izvedi akcije kapče bez potrebe da se prođe kroz kapču.', @@ -3089,12 +3255,12 @@ $messages['stq'] = array( 'captcha-edit' => 'Tou Beoarbaidenge fon ju Siede löös ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]]:', 'captcha-desc' => 'Eenfache Captcha-Implementierenge', 'captcha-addurl' => 'Dien Beoarbaidenge änthaalt näie externe Ferbiendengen. -Toun Schuts foar automatisierde Spammenge löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien. +Toun Skuts foar automatisierde Spammenge löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien. Klik dan fonnäien ap „Siede spiekerje“ [[Special:Captcha/help|(Froagen of Probleme?)]].', - 'captcha-badlogin' => 'Toun Schuts foar ne Kompromittierenge fon dien Benutserkonto löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].', - 'captcha-createaccount' => 'Toun Schuts foar automatisierden Anloage fon Benutserkonten löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].', + 'captcha-badlogin' => 'Toun Skuts foar ne Kompromittierenge fon dien Benutserkonto löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].', + 'captcha-createaccount' => 'Toun Skuts foar automatisierden Anloage fon Benutserkonten löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].', 'captcha-createaccount-fail' => 'Falske of failjende Bestäätigengscode.', - 'captcha-create' => 'Uum disse Siede tou moakjen, löös juu ätterfoulgjende Reekenapgoawe ap un dräch dät Resultoat in dät Fäild hier unner ien [[Special:Captcha/help|(Froagen of Probleme?)]].', + 'captcha-create' => 'Uum disse Siede tou moakjen, löös ju ätterfoulgjende Reekenapgoawe ap un dräch dät Resultoat in dät Fäild hier unner ien [[Special:Captcha/help|(Froagen of Probleme?)]].', 'captchahelp-title' => 'Captcha-Hälpe', 'captchahelp-cookies-needed' => "'''Wichtige Waiwiesenge:''' Der mouten Cookies in dän Browser ferlööwed weese.", 'captchahelp-text' => "Internetsteeden, do der foar Biedraage fon praktisk älkuneen eepen sunt - so as dät {{SITENAME}}-Wiki — wäide oafte fon Spammere misbruukt, do hiere Ferbiendengen automatisk ap fuul Websieden platzierje. Disse Spam-Ferbiendengen konnen wier wächhoald wäide, man jo sunt n groot Ferträit. @@ -3184,6 +3350,13 @@ Tryck på bakåtknappen i din webbläsare för att gå tillbaks till sidredigeri 'right-skipcaptcha' => 'Utföra handlingar som normalt kräver "captcha"-bekräftning utan att använda "captcha"', ); +/** Tamil (தமிழ்) + * @author Shanmugamp7 + */ +$messages['ta'] = array( + 'captchahelp-title' => 'CAPTCHA உதவி', +); + /** Telugu (తెలుగు) * @author Chaduvari * @author Kiranmayee @@ -3216,7 +3389,7 @@ $messages['te'] = array( 'right-skipcaptcha' => 'ఆమకవేప ద్వారా పోకుండానే దాని ట్రిగ్గరు చర్యలను అమలు చెయ్యి', ); -/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic)) +/** Tajik (Cyrillic script) (Тоҷикӣ) * @author Ibrahim */ $messages['tg-cyrl'] = array( @@ -3243,7 +3416,7 @@ $messages['tg-cyrl'] = array( #</pre> <!-- ин сатрро ҳамон гуна, ки ҳаст раҳо кунед-->', ); -/** Tajik (Latin) (Тоҷикӣ (Latin)) +/** Tajik (Latin script) (tojikī) * @author Liangent */ $messages['tg-latn'] = array( @@ -3527,9 +3700,12 @@ Clitchîz sol boton «En erî» di vosse betchteu waibe po rivni al pådje di dv * @author פוילישער */ $messages['yi'] = array( + 'captcha-addurl' => 'אײַער רעדאַקטירונג אַנטהאַלט נײַע דרויסנדיקע לינקען. +כדי צו העלפֿן שיצן קעגן אויטאמזירטן ספאַם, זײַט אַזוי גוט און לייזט דאָס פשוטע רעטעניש אונטן און קלאַפט אײַן דעם ענטפֿער אינעם קעסטל ([[Special:Captcha/help|נאך אינפֿארמאַציע]]):', 'captcha-badlogin' => 'כדי צו העלפֿן קעגן אויטאמאַטישער ברעכן פאַסווערטער, אנא פתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[Special:Captcha/help|מידע נוסף]]):', 'captcha-createaccount' => 'כדי צו העלפֿן קעגן אויטאמאַטישע שאַפֿן קאנטעס, אנא פתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[Special:Captcha/help|מידע נוסף]]):', 'captcha-createaccount-fail' => 'גרײַזיקער אָדער פֿעלנדיקער באַשטעטיק־קאָד', + 'captchahelp-title' => 'CAPTCHA הילף', ); /** Yoruba (Yorùbá) @@ -3568,6 +3744,7 @@ $messages['yue'] = array( /** Simplified Chinese (中文(简体)) * @author Bencmq + * @author Hzy980512 * @author Liangent * @author PhiLiP */ @@ -3581,8 +3758,8 @@ $messages['zh-hans'] = array( 'captcha-create' => '要创建页面,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):', 'captcha-sendemail' => '为了防止程式进行破坏,请答出一个简单的计算,然后在框内输入 ([[Special:Captcha/help|更多资料]]):', 'captcha-sendemail-fail' => '验证码错误或丢失。', - 'captcha-disabledinapi' => '这个要求需要经过Captcha验证,故无法透过API使用。', - 'captchahelp-title' => 'Captcha 说明', + 'captcha-disabledinapi' => '这个要求需要经过验证码验证,故无法透过API使用。', + 'captchahelp-title' => '验证码说明', 'captchahelp-cookies-needed' => '您需要开启浏览器上的cookies方可使用这个工具。', 'captchahelp-text' => '像本站一样,对公众开放编辑的网站经常被垃圾连结骚扰。那些人使用自动化垃圾程序将他们的连结张贴到很多网站。虽然这些连结可以被清除,但是这些东西确实令人十分讨厌。 @@ -3596,7 +3773,7 @@ $messages['zh-hans'] = array( # * 所有在 "#" 字符后的内容全部是注释 # * 所有非空白行是一个正则表达式,只会对URL中的内容进行匹配 #</pre> <!-- leave this line exactly as it is -->', - 'right-skipcaptcha' => '执行captcha引发的动作时不需要经过captcha', + 'right-skipcaptcha' => '绕过验证码的验证', ); /** Traditional Chinese (中文(繁體)) diff --git a/extensions/ConfirmEdit/ConfirmEdit.php b/extensions/ConfirmEdit/ConfirmEdit.php index 0255a3ab..79bbd59f 100644 --- a/extensions/ConfirmEdit/ConfirmEdit.php +++ b/extensions/ConfirmEdit/ConfirmEdit.php @@ -34,15 +34,13 @@ if ( !defined( 'MEDIAWIKI' ) ) { exit; } -global $wgExtensionFunctions, $wgGroupPermissions; - $wgExtensionFunctions[] = 'confirmEditSetup'; $wgExtensionCredits['other'][] = array( 'path' => __FILE__, 'name' => 'ConfirmEdit', 'author' => array( 'Brion Vibber', '...' ), - 'url' => 'http://www.mediawiki.org/wiki/Extension:ConfirmEdit', - 'version' => '1.0', + 'url' => 'https://www.mediawiki.org/wiki/Extension:ConfirmEdit', + 'version' => '1.1', 'descriptionmsg' => 'captcha-desc', ); @@ -71,7 +69,6 @@ $wgAvailableRights[] = 'skipcaptcha'; */ $wgCaptchaWhitelistIP = false; -global $wgCaptcha, $wgCaptchaClass, $wgCaptchaTriggers; $wgCaptcha = null; $wgCaptchaClass = 'SimpleCaptcha'; @@ -91,7 +88,7 @@ $wgCaptchaClass = 'SimpleCaptcha'; */ $wgCaptchaTriggers = array(); $wgCaptchaTriggers['edit'] = false; // Would check on every edit -$wgCaptchaTriggers['create'] = false; // Check on page creation. +$wgCaptchaTriggers['create'] = false; // Check on page creation. $wgCaptchaTriggers['sendemail'] = false; // Special:Emailuser $wgCaptchaTriggers['addurl'] = true; // Check on edits that add URLs $wgCaptchaTriggers['createaccount'] = true; // Special:Userlogin&type=signup @@ -121,7 +118,6 @@ $wgCaptchaTriggersOnNamespace = array(); * 'CaptchaCacheStore' uses $wgMemc, which avoids the cookie dependency * but may be fragile depending on cache configuration. */ -global $wgCaptchaStorageClass; $wgCaptchaStorageClass = 'CaptchaSessionStore'; /** @@ -130,7 +126,6 @@ $wgCaptchaStorageClass = 'CaptchaSessionStore'; * * Default is a half hour. */ -global $wgCaptchaSessionExpiration; $wgCaptchaSessionExpiration = 30 * 60; /** @@ -142,21 +137,18 @@ $wgCaptchaSessionExpiration = 30 * 60; * * 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; /** * Number of bad login attempts before triggering the captcha. 0 means the * captcha is presented on the first login. */ -global $wgCaptchaBadLoginAttempts; $wgCaptchaBadLoginAttempts = 3; /** @@ -183,13 +175,9 @@ $wgSpecialPages['Captcha'] = 'CaptchaSpecialPage'; $wgConfirmEditIP = dirname( __FILE__ ); $wgExtensionMessagesFiles['ConfirmEdit'] = "$wgConfirmEditIP/ConfirmEdit.i18n.php"; -$wgExtensionAliasesFiles['ConfirmEdit'] = "$wgConfirmEditIP/ConfirmEdit.alias.php"; +$wgExtensionMessagesFiles['ConfirmEditAlias'] = "$wgConfirmEditIP/ConfirmEdit.alias.php"; -if ( defined( 'MW_SUPPORTS_EDITFILTERMERGED' ) ) { - $wgHooks['EditFilterMerged'][] = 'ConfirmEditHooks::confirmEditMerged'; -} else { - $wgHooks['EditFilter'][] = 'ConfirmEditHooks::confirmEdit'; -} +$wgHooks['EditFilterMerged'][] = 'ConfirmEditHooks::confirmEditMerged'; $wgHooks['UserCreateForm'][] = 'ConfirmEditHooks::injectUserCreate'; $wgHooks['AbortNewAccount'][] = 'ConfirmEditHooks::confirmUserCreate'; $wgHooks['LoginAuthenticateAudit'][] = 'ConfirmEditHooks::triggerUserLogin'; @@ -199,15 +187,16 @@ $wgHooks['EmailUserForm'][] = 'ConfirmEditHooks::injectEmailUser'; $wgHooks['EmailUser'][] = 'ConfirmEditHooks::confirmEmailUser'; # Register API hook $wgHooks['APIEditBeforeSave'][] = 'ConfirmEditHooks::confirmEditAPI'; +$wgHooks['APIGetAllowedParams'][] = 'ConfirmEditHooks::APIGetAllowedParams'; +$wgHooks['APIGetParamDescription'][] = 'ConfirmEditHooks::APIGetParamDescription'; $wgAutoloadClasses['ConfirmEditHooks'] = "$wgConfirmEditIP/ConfirmEditHooks.php"; -$wgAutoloadClasses['Captcha']= "$wgConfirmEditIP/Captcha.php"; -$wgAutoloadClasses['SimpleCaptcha']= "$wgConfirmEditIP/Captcha.php"; -$wgAutoloadClasses['CaptchaStore']= "$wgConfirmEditIP/CaptchaStore.php"; -$wgAutoloadClasses['CaptchaSessionStore']= "$wgConfirmEditIP/CaptchaStore.php"; -$wgAutoloadClasses['CaptchaCacheStore']= "$wgConfirmEditIP/CaptchaStore.php"; +$wgAutoloadClasses['SimpleCaptcha'] = "$wgConfirmEditIP/Captcha.php"; +$wgAutoloadClasses['CaptchaStore'] = "$wgConfirmEditIP/CaptchaStore.php"; +$wgAutoloadClasses['CaptchaSessionStore'] = "$wgConfirmEditIP/CaptchaStore.php"; +$wgAutoloadClasses['CaptchaCacheStore'] = "$wgConfirmEditIP/CaptchaStore.php"; $wgAutoloadClasses['CaptchaSpecialPage'] = "$wgConfirmEditIP/ConfirmEditHooks.php"; -$wgAutoloadClasses['HTMLCaptchaField']= "$wgConfirmEditIP/HTMLCaptchaField.php"; +$wgAutoloadClasses['HTMLCaptchaField'] = "$wgConfirmEditIP/HTMLCaptchaField.php"; /** * Set up $wgWhitelistRead diff --git a/extensions/ConfirmEdit/ConfirmEditHooks.php b/extensions/ConfirmEdit/ConfirmEditHooks.php index dcdf49f7..66e51991 100644 --- a/extensions/ConfirmEdit/ConfirmEditHooks.php +++ b/extensions/ConfirmEdit/ConfirmEditHooks.php @@ -1,24 +1,22 @@ <?php class ConfirmEditHooks { - /** * Get the global Captcha instance * - * @return Captcha + * @return Captcha|SimpleCaptcha */ static function getInstance() { global $wgCaptcha, $wgCaptchaClass; + static $done = false; + if ( !$done ) { $done = true; $wgCaptcha = new $wgCaptchaClass; } - return $wgCaptcha; - } - static function confirmEdit( $editPage, $newtext, $section ) { - return self::getInstance()->confirmEdit( $editPage, $newtext, $section ); + return $wgCaptcha; } static function confirmEditMerged( $editPage, $newtext ) { @@ -56,23 +54,34 @@ class ConfirmEditHooks { static function confirmEmailUser( $from, $to, $subject, $text, &$error ) { return self::getInstance()->confirmEmailUser( $from, $to, $subject, $text, $error ); } + + public static function APIGetAllowedParams( &$module, &$params ) { + return self::getInstance()->APIGetAllowedParams( $module, $params ); + } + + public static function APIGetParamDescription( &$module, &$desc ) { + return self::getInstance()->APIGetParamDescription( $module, $desc ); + } } class CaptchaSpecialPage extends UnlistedSpecialPage { - public function __construct(){ + public function __construct() { parent::__construct( 'Captcha' ); } + function execute( $par ) { $this->setHeaders(); + $instance = ConfirmEditHooks::getInstance(); + switch( $par ) { - case "image": - if ( method_exists( $instance, 'showImage' ) ) - return $instance->showImage(); - case "help": - default: - return $instance->showHelp(); + case "image": + if ( method_exists( $instance, 'showImage' ) ) { + return $instance->showImage(); + } + case "help": + default: + return $instance->showHelp(); } } } - diff --git a/extensions/ConfirmEdit/FancyCaptcha.class.php b/extensions/ConfirmEdit/FancyCaptcha.class.php index 61723656..3ce5670e 100644 --- a/extensions/ConfirmEdit/FancyCaptcha.class.php +++ b/extensions/ConfirmEdit/FancyCaptcha.class.php @@ -69,7 +69,7 @@ class FancyCaptcha extends SimpleCaptcha { 'id' => 'wpCaptchaId', 'value' => $index ) ) . "<p>" . - Xml::element( 'input', array( + Html::element( 'input', array( 'name' => 'wpCaptchaWord', 'id' => 'wpCaptchaWord', 'autocorrect' => 'off', diff --git a/extensions/ConfirmEdit/FancyCaptcha.i18n.php b/extensions/ConfirmEdit/FancyCaptcha.i18n.php index fe25ccdc..43114d74 100644 --- a/extensions/ConfirmEdit/FancyCaptcha.i18n.php +++ b/extensions/ConfirmEdit/FancyCaptcha.i18n.php @@ -68,6 +68,7 @@ $messages['am'] = array( * @author Juanpabl */ $messages['an'] = array( + 'fancycaptcha-desc' => 'Chenerador chocant de CAPTCHAs ta Confirmar Edicions.', 'fancycaptcha-addurl' => "Ha encluyito vinclos esternos en a suya edición. Ta aduyar a protecher contra o spam automatico, escriba por favor as parolas que amaneixen en a caixa d'o cobaixo ([[Special:Captcha/help|más información]]):", 'fancycaptcha-badlogin' => "Ta aduyar a protecher contra o trenque automatico de parolas de paso, escriba por favor as parolas que amaneixen en a caixa d'o cobaixo ([[Special:Captcha/help|más información]]):", 'fancycaptcha-createaccount' => 'Ta aduyar a protecher contra a creyación automatica de cuentas, escriba por favor en o quatrón as parolas que amaneixen debaixo ([[Special:Captcha/help|más información]]):', @@ -75,6 +76,7 @@ $messages['an'] = array( ([[Special:Captcha/help|más información]]):", 'fancycaptcha-edit' => "Ta editar ista pachina, escriba por favor as parolas que amaneixen en a caixa d'o cobaixo ([[Special:Captcha/help|más información]]):", + 'fancycaptcha-sendemail' => 'Ta protecher-nos contra o spam automatizau por favor escriba as parolas que amaneixen en o siguient quadro ([[Special:Captcha/help|mas información]]):', ); /** Arabic (العربية) @@ -277,14 +279,15 @@ Er mwyn ceisio rhwystro peiriannau spam, byddwch gystal â theipio'r geiriau a w 'fancycaptcha-sendemail' => "Er mwyn cyfrannu at ddiogelu rhag sbamio awtomatig, byddwch gystal â gwneud y swm isod ac ysgrifennu'r ateb yn y blwch ([[Special:Captcha/help|rhagor o wybodaeth]]):", ); -/** Danish (Dansk) */ +/** Danish (Dansk) + * @author Peter Alberti + */ $messages['da'] = array( 'fancycaptcha-addurl' => 'Din ændring tilføjer nye eksterne henvisninger. For at beskytte mod automatiseret spam, skal du indtaste ordet som vises nedenfor i feltet under det. ([[Special:Captcha/help|mere information]]):', 'fancycaptcha-badlogin' => 'For at beskytte mod automatiske forsøg på at gætte kodeord, skal du indtaste ordet som vises nedenfor i feltet under det. ([[Special:Captcha/help|mere information]]):', 'fancycaptcha-createaccount' => 'For at beskytte mod automatisk oprettelse af brugernavne, der bruges til spam, skal du indtaste ordet som vises nedenfor i feltet under det. ([[Special:Captcha/help|mere information]]):', 'fancycaptcha-create' => 'For at oprette en ny side, skal du indtaste ordet som vises nedenfor i feltet under det. ([[Special:Captcha/help|mere information]]):', - 'fancycaptcha-edit' => 'or at redigere denne side -([[Special:Captcha/help|more info]]):', + 'fancycaptcha-edit' => 'For at redigere denne side, indtast da venligst ordene, der står i feltet nedenfor ([[Special:Captcha/help|mere information]]):', ); /** German (Deutsch) @@ -293,7 +296,7 @@ $messages['da'] = array( * @author Umherirrender */ $messages['de'] = array( - 'fancycaptcha-desc' => 'CAPTCHA-Generator für die Erweiterung „Confirm Edit“', + 'fancycaptcha-desc' => 'Fancy-CAPTCHA-Generator für die Erweiterung „Confirm Edit“', 'fancycaptcha-addurl' => 'Deine Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spamming gib das folgende Wort in das Feld unten ein. Klicke dann erneut auf „Seite speichern“ ([[Special:Captcha/help|Fragen oder Probleme?]]).', 'fancycaptcha-badlogin' => 'Zum Schutz vor einer Kompromittierung deines Benutzerkontos gib das folgende Wort in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]]:', @@ -315,6 +318,7 @@ Zum Schutz vor automatisiertem Spamming geben Sie das folgende Wort in das Feld 'fancycaptcha-createaccount' => 'Zum Schutz vor automatisierter Anlage von Benutzerkonten geben Sie bitte das folgende Wort in das Feld unten ein ([[Special:Captcha/help|Fragen oder Probleme?]]):', 'fancycaptcha-create' => 'Zur Erstellung der Seite geben Sie das folgende Wort in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].', 'fancycaptcha-edit' => 'Zur Bearbeitung der Seite geben Sie das folgende Wort in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].', + 'fancycaptcha-sendemail' => 'Um gegen automatischen Spam vorzugehen, geben Sie bitte die Wörter unten in das Feld ein ([[Special:Captcha/help|mehr Informationen]]):', ); /** Zazaki (Zazaki) @@ -396,11 +400,11 @@ $messages['es'] = array( $messages['et'] = array( 'fancycaptcha-desc' => 'Kirevate piltidega robotilõks, kinnitamaks muudatuste õigsust.', 'fancycaptcha-addurl' => 'Sinu muudatus sisaldab uusi välislinke. -Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks automaadistatud rämpsmuudatuste vastu ([[Special:Captcha/help|täpsem teave]]):', - 'fancycaptcha-badlogin' => 'Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks automaatsete parooliäraarvajate vastu ([[Special:Captcha/help|täpsem teave]]):', - 'fancycaptcha-createaccount' => 'Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks kontode automaatse loomise vastu ([[Special:Captcha/help|täpsem teave]]):', - 'fancycaptcha-create' => 'Lehekülje loomiseks sisesta palun allpool olevas kastis kuvatud sõnad ([[Special:Captcha/help|täpsem teave]]):', - 'fancycaptcha-edit' => 'Selle lehekülje muutmiseks sisesta palun allpool olevas kastis kuvatud sõnad ([[Special:Captcha/help|täpsev teave]]):', +Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks automaadistatud rämpsmuudatuste eest ([[Special:Captcha/help|lisateave]]):', + 'fancycaptcha-badlogin' => 'Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks automaatsete parooliäraarvajate eest ([[Special:Captcha/help|lisateave]]):', + 'fancycaptcha-createaccount' => 'Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks kontode automaatse loomise eest ([[Special:Captcha/help|lisateave]]):', + 'fancycaptcha-create' => 'Lehekülje loomiseks sisesta palun allpool olevas kastis kuvatud sõnad ([[Special:Captcha/help|lisateave]]):', + 'fancycaptcha-edit' => 'Selle lehekülje muutmiseks sisesta palun allpool olevas kastis kuvatud sõnad ([[Special:Captcha/help|lisateave]]):', 'fancycaptcha-sendemail' => 'Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks automaadistatud rämpsmuudatuste vastu ([[Special:Captcha/help|lisateave]]):', ); @@ -417,6 +421,7 @@ $messages['eu'] = array( ); /** Persian (فارسی) + * @author Ebraminio * @author Huji * @author Ladsgroup * @author Meisam @@ -429,7 +434,7 @@ $messages['fa'] = array( 'fancycaptcha-createaccount' => 'برای کمک به جلوگیری از ایجاد خودکار حساب کاربری، لطفاً واژهای را که در تصویر میبینید وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):', 'fancycaptcha-create' => 'برای ایجاد این صفحه، لطفاً واژهای را که در تصویر میبینید وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):', 'fancycaptcha-edit' => 'برای ویرایش این صفحه، لطفاً واژهای را که در تصویر میبینید وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):', - 'fancycaptcha-sendemail' => 'برای کمک به محافظت در برابر هرزهنگاری خودکار، لطفاً واژههایی را که در جعبهٔ زیر نمایش داده میشوند وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):', + 'fancycaptcha-sendemail' => 'برای کمک به محافظت در برابر هرزهنگاری خودکار، لطفاً واژههایی را که در جعبهٔ زیر نمایش داده میشوند وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):', ); /** Finnish (Suomi) @@ -474,13 +479,14 @@ Pour vérifier qu’il ne s’agit pas de pourriels automatisés, veuillez entre * @author ChrisPtDe */ $messages['frp'] = array( - 'fancycaptcha-desc' => "G·ènèrator d’émâges ''captcha'' anti-robots que demande una confirmacion d’homo des changements.", + 'fancycaptcha-desc' => "G·ènèrator d’émâges ''captch·a'' anti-robots que demande una confirmacion d’homo des changements.", 'fancycaptcha-addurl' => 'Voutron changement encllut de lims de defôr novéls. Por nos édiér a combatre contre lo spame ôtomatisâ, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :', - 'fancycaptcha-badlogin' => 'Por nos édiér a combatre contre lo piratâjo ôtomatisâ de mots de pâssa, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :', + 'fancycaptcha-badlogin' => 'Por nos édiér a combatre contre lo cassâjo ôtomatisâ de contresegnos, volyéd buchiér los mots qu’aparèssont dedens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :', 'fancycaptcha-createaccount' => 'Por nos édiér a combatre contre les crèacions ôtomatisâs de comptos, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :', 'fancycaptcha-create' => 'Por fâre ceta pâge, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :', 'fancycaptcha-edit' => 'Por changiér ceta pâge, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :', + 'fancycaptcha-sendemail' => 'Por nos édiér a combatre contre lo spame ôtomatisâ, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :', ); /** Western Frisian (Frysk) @@ -619,6 +625,19 @@ $messages['id'] = array( 'fancycaptcha-sendemail' => 'Sebagai pelindungan terhadap spam otomatis, silahkan masukkan kata-kata yang muncul di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):', ); +/** Iloko (Ilokano) + * @author Lam-ang + */ +$messages['ilo'] = array( + 'fancycaptcha-addurl' => 'Ti inurnos mo ket adda nagyan na a baro a panilpo ti ruar. +Tapno masalakniban kadagiti automatiko a spam, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'fancycaptcha-badlogin' => 'Tapno masalakniban kadagiti automatiko a pinagsulbar ti kontrasenias, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'fancycaptcha-createaccount' => 'Tapno makasalaknib kadagiti automatiko a pinagaramid ti pakabilangan, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'fancycaptcha-create' => 'Tapno makaaramid ti panid, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'fancycaptcha-edit' => 'Tapno makaurnos daytoy a panid, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'fancycaptcha-sendemail' => 'Tapno makasalaknib kadagiti automatiko a pinagspam, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):', +); + /** Italian (Italiano) * @author Beta16 * @author BrokenArrow @@ -703,7 +722,7 @@ $messages['kk-arab'] = array( تٶمەندەگٸ كٶرسەتٸلگەن سٶزدەردٸ اۋماققا ەنگٸزٸڭٸز ([[{{ns:special}}:Captcha/help|كٶبٸرەك اقپارات]]):', ); -/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */ +/** Kazakh (Cyrillic script) (Қазақша (кирил)) */ $messages['kk-cyrl'] = array( 'fancycaptcha-addurl' => 'Түзетуіңізде жаңа сыртқы сілтемелер бар екен. Өздік түрде «спам» жасалуынан қорғану үшін, төмендегі көрсетілген сөздерді аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):', @@ -717,7 +736,7 @@ $messages['kk-cyrl'] = array( төмендегі көрсетілген сөздерді аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):', ); -/** Kazakh (Latin) (Қазақша (Latin)) */ +/** Kazakh (Latin script) (Qazaqşa (latın)) */ $messages['kk-latn'] = array( 'fancycaptcha-addurl' => 'Tüzetwiñizde jaña sırtqı siltemeler bar eken. Özdik türde «spam» jasalwınan qorğanw üşin, tömendegi körsetilgen sözderdi awmaqqa engiziñiz ([[{{ns:special}}:Captcha/help|köbirek aqparat]]):', @@ -808,6 +827,7 @@ Fir ze hellëfen, géint automatiséierte Spam virzegoen, gitt w.e.g. déi Wierd /** Limburgish (Limburgs) * @author Matthias + * @author Ooswesthoesbes */ $messages['li'] = array( 'fancycaptcha-addurl' => 'Uw bewerking bevat nieuwe externe links. Voer alstublieft de woorden die @@ -819,6 +839,7 @@ ter bescherming tegen het automatisch aanmaken van gebruikers ([[Special:Captcha hieronder verschijnen in het invoerveld in als bescherming tegen automatische spam ([[Special:Captcha/help|meer informatie]]):', 'fancycaptcha-edit' => 'Uw bewerking bevat nieuwe externe links. Voer alstublieft de woorden die hieronder verschijnen in het invoerveld in als bescherming tegen automatische spam ([[Special:Captcha/help|mie informatie]]):', + 'fancycaptcha-sendemail' => "Veur de weurd die hie onger versjienen in 't inveurvèldj in es besjerming taege geautometiseerde spam ([[Special:Captcha/help|mier info]]):", ); /** Lao (ລາວ) */ @@ -860,6 +881,7 @@ $messages['ml'] = array( /** Marathi (मराठी) * @author Kaustubh + * @author Mahitgar */ $messages['mr'] = array( 'fancycaptcha-addurl' => 'तुमच्या संपादनात नवीन बाह्य दुवे आहेत. @@ -868,6 +890,7 @@ $messages['mr'] = array( 'fancycaptcha-createaccount' => 'आपोआप होणार्या सदस्य नोंदणीपासून वाचण्यासाठी, खाली दिसणारे शब्द दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', 'fancycaptcha-create' => 'हे पान तयार करण्यासाठी, खाली दिसणारे शब्द दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', 'fancycaptcha-edit' => 'हे पान संपादित करण्यासाठी, खाली दिसणारे शब्द दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', + 'fancycaptcha-sendemail' => 'आपोआप होणार्या उत्पातापासून वाचण्यासाठी, खाली दिसणारे शब्द दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):', ); /** Malay (Bahasa Melayu) @@ -883,6 +906,20 @@ $messages['ms'] = array( 'fancycaptcha-sendemail' => 'Untuk membanteras kegiatan spam secara automatik, anda diminta mengisi huruf-huruf berikut dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):', ); +/** Norwegian (bokmål) (Norsk (bokmål)) + * @author Harald Khan + * @author Jon Harald Søby + * @author Laaknor + */ +$messages['nb'] = array( + 'fancycaptcha-addurl' => 'Din endring inkluderer nye eksterne lenker. For hjelpe oss å beskytte oss mot automatisk spam, vennligst skriv inn ordene som kommer opp i denne boksen ([[Special:Captcha/help|mer informasjon]]):', + 'fancycaptcha-badlogin' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å hjelpe oss å beskytte oss mot passordtyveri ([[Special:Captcha/help|mer informasjon]]):', + 'fancycaptcha-createaccount' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk kontoopprettelse ([[Special:Captcha/help|mer informasjon]]):', + 'fancycaptcha-create' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å opprette siden ([[Special:Captcha/help|mer informasjon]]):', + 'fancycaptcha-edit' => 'For å endre denne siden, vennligst skriv inn ordene som dukker opp i boksen nedenfor ([[Special:Captcha/help|mer informasjon]]):', + 'fancycaptcha-sendemail' => 'For å beskytte mot automatisert spam så må du skrive ordene under inn i tekstboksen ([[Special:Captcha/help|mer informasjon]]):', +); + /** Low German (Plattdüütsch) * @author Slomox */ @@ -900,13 +937,13 @@ As Schutz gegen automaatsch Spam, geev disse Bookstavenreeg in dat Feld ünnen i */ $messages['nds-nl'] = array( 'fancycaptcha-addurl' => "Joew bewarking bevat uutgaonde verwiezingen. -Um dit prejek te bescharmen tegen spam, mu-j 't woord dat hieronder steet invullen ([[Special:Captcha/help|hulpe]]):", - 'fancycaptcha-badlogin' => "Um disse webstee te beveiligen tegen 't kraken van wachwoorden, wö-j verzoch um de woorden dee-j hieronder zien in te vullen ([[Special:Captcha/help|hulpe]]):", - 'fancycaptcha-createaccount' => "Um disse wiki te bescharmen tegen 't autematisch anmaken van gebrukersprefielen mu-j 't woord hieronder invullen ([[Special:Captcha/help|hulpe]]):", - 'fancycaptcha-create' => "Um een pagina an te maken, mu-j 't woord dat hieronder steet invullen +Um dit projekt te bescharmen tegen ongewunst reklame, mö'j t woord dat hieronder steet invullen ([[Special:Captcha/help|hulpe]]):", + 'fancycaptcha-badlogin' => "Um disse webstee te beveiligen tegen t kraken van wachtwoorden, wö'j verzöcht um de woorden die'j hieronder zien in te vullen ([[Special:Captcha/help|hulpe]]):", + 'fancycaptcha-createaccount' => "Um disse wiki te bescharmen tegen t automaties anmaken van gebrukersprefielen mö'j t woord hieronder invullen ([[Special:Captcha/help|hulpe]]):", + 'fancycaptcha-create' => "Um n pagina an te maken, mö'j t woord dat hieronder steet invullen ([[Special:Captcha/help|hulpe]]):", - 'fancycaptcha-edit' => 'Joew bewarking bevat nieje uutgaonde verwiezingen. Um disse wiki te bescharmen tegen ongewunste toevoegingen mu-j de woorden hieronder invullen ([[Special:Captcha/help|hulpe]]):', - 'fancycaptcha-sendemail' => "Voer de woorden dee hieronder staon in 't invoerveld in as bescharming tegen autematische ongewunste reclame ([[Special:Captcha/help|meer infermasie]]):", + 'fancycaptcha-edit' => "Joew bewarking bevat nieje uutgaonde verwiezingen. Um disse wiki te bescharmen tegen ongewunste reklame mö'j de woorden hieronder invullen ([[Special:Captcha/help|hulpe]]):", + 'fancycaptcha-sendemail' => 'Voer de woorden die hieronder staon in t invoerveld in as bescharming tegen automatiese ongewunste reklame ([[Special:Captcha/help|meer informasie]]):', ); /** Dutch (Nederlands) @@ -935,20 +972,6 @@ For å hjelpa oss med å unngå automatisert spam, ver venleg og skriv inn orda 'fancycaptcha-edit' => 'For å endra denne sida, ver venleg og skriv inn orda som kjem til syne i boksen nedanfor ([[Special:Captcha/help|meir informasjon]]):', ); -/** Norwegian (bokmål) (Norsk (bokmål)) - * @author Harald Khan - * @author Jon Harald Søby - * @author Laaknor - */ -$messages['no'] = array( - 'fancycaptcha-addurl' => 'Din endring inkluderer nye eksterne lenker. For hjelpe oss å beskytte oss mot automatisk spam, vennligst skriv inn ordene som kommer opp i denne boksen ([[Special:Captcha/help|mer informasjon]]):', - 'fancycaptcha-badlogin' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å hjelpe oss å beskytte oss mot passordtyveri ([[Special:Captcha/help|mer informasjon]]):', - 'fancycaptcha-createaccount' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk kontoopprettelse ([[Special:Captcha/help|mer informasjon]]):', - 'fancycaptcha-create' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å opprette siden ([[Special:Captcha/help|mer informasjon]]):', - 'fancycaptcha-edit' => 'For å endre denne siden, vennligst skriv inn ordene som dukker opp i boksen nedenfor ([[Special:Captcha/help|mer informasjon]]):', - 'fancycaptcha-sendemail' => 'For å beskytte mot automatisert spam så må du skrive ordene under inn i tekstboksen ([[Special:Captcha/help|mer informasjon]]):', -); - /** Occitan (Occitan) * @author Cedric31 */ @@ -966,7 +989,13 @@ $messages['oc'] = array( * @author Psubhashish */ $messages['or'] = array( - 'fancycaptcha-createaccount' => 'ଆପେଆପେ ଖାତା ଖୋଲିବାକୁ ଅଟକାଇବା ପାଇଁ ଦୟାକରି ଏହି ଘରଭିତରେ ଥିବା ଶବ୍ଦସବୁକୁ ତା ତଳେ ଥିବା ବାକ୍ସରେ ଟାଇପ କରନ୍ତୁ । ([[Special:Captcha/help|ଅଧିକ ଜାଣିବା]]):', + 'fancycaptcha-addurl' => 'ଆପଣଙ୍କ ସମ୍ପାଦନାରେ ନୂଆ ବାହାର ଲିଙ୍କ ରହିଛି । +ଆପେଆପେ ହେଉଥିବା ସ୍ପାମର ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ଘର ତଳେ ଥିବା ଶବ୍ଦସବୁ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ବିବରଣୀ]]):', + 'fancycaptcha-badlogin' => 'ଆପେଆପେ ହେଉଥିବା ପାସବାର୍ଡ଼ ଚୋରାଇବାକୁ ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ଦୟାକରି ଏହି ଘରଭିତରେ ଥିବା ଶବ୍ଦସବୁକୁ ତାହା ତଳେ ଥିବା ବାକ୍ସରେ ଟାଇପ କରନ୍ତୁ । ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):', + 'fancycaptcha-createaccount' => 'ଆପେଆପେ ଖାତା ଖୋଲିବାକୁ ଅଟକାଇବା ପାଇଁ ଦୟାକରି ଏହି ଘରଭିତରେ ଥିବା ଶବ୍ଦସବୁକୁ ତାହା ତଳେ ଥିବା ବାକ୍ସରେ ଟାଇପ କରନ୍ତୁ । ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):', + 'fancycaptcha-create' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ତିଆରିବା ନିମନ୍ତେ, ଘର ତଳେ ଥିବା ଶବ୍ଦଟିକୁ ଏଠାରେ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ଜାଣନ୍ତୁ]]):', + 'fancycaptcha-edit' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ବଦଳାଇବା ନିମନ୍ତେ, ଘର ତଳେ ଥିବା ଶବ୍ଦଟିକୁ ଏଠାରେ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ଜାଣନ୍ତୁ]]):', + 'fancycaptcha-sendemail' => 'ଆପେଆପେ ହେଉଥିବା ସ୍ପାମକୁ ରୋକିବା ନିମନ୍ତେ ଦୟାକରି ଏହି ଘରଭିତରେ ଥିବା ଶବ୍ଦସବୁକୁ ତାହା ତଳେ ଥିବା ବାକ୍ସରେ ଟାଇପ କରନ୍ତୁ । ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):', ); /** Polish (Polski) @@ -996,6 +1025,19 @@ Për dene na man a vardesse da la reclam aotomatisà, për piasì, ch'a l'arbata 'fancycaptcha-sendemail' => "Për giuté a protegi contra la rumenta automàtica, për piasì ch'a anseriss le paròle che as vëddo sota ant la casela ([[Special:Captcha/help|për savèjne ëd pi]]):", ); +/** Western Punjabi (پنجابی) + * @author Khalid Mahmood + */ +$messages['pnb'] = array( + 'fancycaptcha-addurl' => 'تواڈی تبدیلی چ نویں بارلے جوڑ نیں۔ +اس صفحے نوں تبدیل کرن واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):', + 'fancycaptcha-badlogin' => 'اپنے آپ کنجی توڑن دے خلاف مدد واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):', + 'fancycaptcha-createaccount' => 'اپنے آپ غلط نویں کھاتے بنان نوں روکن واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):', + 'fancycaptcha-create' => 'صفحہ بنان واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):', + 'fancycaptcha-edit' => 'اس صفحے تے تبدیلی کرن واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):', + 'fancycaptcha-sendemail' => 'اپنے آپ غلط مال آن نوں روکن واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):', +); + /** Pashto (پښتو) * @author Ahmed-Najib-Biabani-Ibrahimkhel */ @@ -1040,12 +1082,17 @@ $messages['rm'] = array( ); /** Romanian (Română) + * @author Firilacroco * @author Mihai */ $messages['ro'] = array( - 'fancycaptcha-createaccount' => 'Pentru a ajuta protecția împotriva creării automate de conturi, te rog să introduci în cutie cuvintele care apar mai jos ([[Special:Captcha/help|mai multe detalii]]):', + 'fancycaptcha-addurl' => 'Modificarea dumneavoastră include legături externe noi. +Pentru a împiedica roboții de spam, vă rugăm să introduceți cuvintele care apar mai jos în căsuță ([[Special:Captcha/help|mai multe detalii]]):', + 'fancycaptcha-badlogin' => 'Pentru a împiedica spargerea automată a parolelor, vă rugăm să introduceți cuvintele care apar mai jos în căsuță ([[Special:Captcha/help|mai multe detalii]]):', + 'fancycaptcha-createaccount' => 'Pentru a împiedica crearea automată de conturi, vă rugăm să introduceți cuvintele care apar mai jos în căsuță ([[Special:Captcha/help|mai multe detalii]]):', 'fancycaptcha-create' => 'Pentru a crea pagina, te rog să introduci în cutie cuvintele care apar mai jos ([[Special:Captcha/help|mai multe detalii]]):', 'fancycaptcha-edit' => 'Pentru a modifica această pagină, te rog să introduci în cutie cuvintele care apar mai jos ([[Special:Captcha/help|mai multe detalii]]):', + 'fancycaptcha-sendemail' => 'Pentru a împiedica roboții de spam, vă rugăm să introduceți cuvintele care apar mai jos în căsuță ([[Special:Captcha/help|mai multe detalii]]):', ); /** Tarandíne (Tarandíne) @@ -1062,10 +1109,12 @@ Pe aiutà a proteggere condre a 'u spam automateche, pe piacere mitte le parole ); /** Russian (Русский) + * @author Dim Grits * @author Lockal * @author Александр Сигачёв */ $messages['ru'] = array( + 'fancycaptcha-desc' => 'Необычный CAPTCHA-генератор для подтверждения редактирования', 'fancycaptcha-addurl' => 'Ваша правка содержит новые внешние ссылки. В целях защиты от спама, пожалуйста, введите слова, показанные ниже в рамке ([[Special:Captcha/help|подробнее…]]):', 'fancycaptcha-badlogin' => 'В целях защиты от автоматического взлома паролей, пожалуйста, введите в поле ввода буквы с изображения ([[Special:Captcha/help|подробнее]]):', 'fancycaptcha-createaccount' => 'Для предотвращения автоматической регистрации учётных записей, пожалуйста, введите изображённые символы в текстовое поле ([[Special:Captcha/help|подробнее]]):', @@ -1086,7 +1135,7 @@ $messages['rue'] = array( 'fancycaptcha-sendemail' => 'В рамках охороны перед автоматічным спамом мусите описати текст з наступного образку. ([[Special:Captcha/help|Што тото значіть?]]):', ); -/** Yakut (Саха тыла) +/** Sakha (Саха тыла) * @author HalanTul */ $messages['sah'] = array( @@ -1150,27 +1199,29 @@ $messages['sq'] = array( 'fancycaptcha-sendemail' => "Për t'u mbrojtur nga metoda automatike e gjetjes së fjalëkalimeve ju kërkojmë të vendosni fjalët e figurës në kuti ([[Special:Captcha/help|më shumë informacion]]):", ); -/** Serbian Cyrillic ekavian (Српски (ћирилица)) +/** Serbian (Cyrillic script) (Српски (ћирилица)) * @author Millosh * @author Rancher * @author Жељко Тодоровић * @author Михајло Анђелковић */ $messages['sr-ec'] = array( - 'fancycaptcha-addurl' => 'Ваша измена садржи нове спољне везе. -У циљу заштите од злоупотребе, унесите знакове са слике у поље изнад.', - 'fancycaptcha-badlogin' => 'У циљу спречавања откривања лозинки, унесите знакове са слике у поље изнад.', - 'fancycaptcha-createaccount' => 'У циљу заштите од злоупотребе, унесите знакове са слике у поље изнад.', - 'fancycaptcha-create' => 'Да бисте направили страницу, унесите знакове са слике у поље изнад.', - 'fancycaptcha-edit' => 'Да бисте изменили ову страницу, унесите знакове са слике у поље изнад.', - 'fancycaptcha-sendemail' => 'У циљу заштите од злоупотребе, унесите знакове са слике у поље изнад.', + 'fancycaptcha-desc' => 'Обогаћен стварач сликовног кода за потврду уређивања', + 'fancycaptcha-addurl' => 'Ваша измена садржи нове спољашње везе. +У циљу заштите од непожељних порука, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):', + 'fancycaptcha-badlogin' => 'У циљу заштите од пробијања лозинки, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):', + 'fancycaptcha-createaccount' => 'У циљу заштите од самоотварања налога, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):', + 'fancycaptcha-create' => 'Да бисте направили страницу, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):', + 'fancycaptcha-edit' => 'Да бисте уредили ову страницу, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):', + 'fancycaptcha-sendemail' => 'У циљу заштите од непожељних порука, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):', ); -/** Serbian Latin ekavian (Srpski (latinica)) +/** Serbian (Latin script) (Srpski (latinica)) * @author Michaello * @author Жељко Тодоровић */ $messages['sr-el'] = array( + 'fancycaptcha-desc' => 'Obogaćen stvarač slikovnog koda za potvrdu uređivanja', 'fancycaptcha-addurl' => 'Tvoja izmena uključuje nove spoljne veze. U cilju zaštite od automatskog spama, unesi reči koje se nalaze ispod u kutiju ([[Special:Captcha/help|detaljnije]]):', 'fancycaptcha-badlogin' => 'U cilju sprečavanja automatskog otkrivanja lozinki, unesi reči koje se nalaze ispod u kutiju ([[Special:Captcha/help|detaljnije]]):', 'fancycaptcha-createaccount' => 'U cilju zaštite od automatskog spama, unesi reči odozdo u kutiju ([[Special:Captcha/help|detaljnije]]):', @@ -1184,10 +1235,10 @@ $messages['sr-el'] = array( */ $messages['stq'] = array( 'fancycaptcha-addurl' => 'Dien Beoarbaidenge änthaalt näie externe Ferbiendengen. -Tou Schuts foar automatisierde Spamminge reek dät foulgjende Woud in dät Fäild ien. +Tou Skuts foar automatisierde Spamminge reek dät foulgjende Woud in dät Fäild ien. Klik dan fonnäien ap „Siede spiekerje“ [[Special:Captcha/help|(Froagen of Probleme?)]].', - 'fancycaptcha-badlogin' => 'Toun Schuts foar ne Kompromittierenge fon dien Benutserkonto reek dät foulgjende Woud in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]]:', - 'fancycaptcha-createaccount' => 'Toun Schuts foar automatisierde Anloage fon Benutserkonten reek dät foulgjende Woud in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].', + 'fancycaptcha-badlogin' => 'Toun Skuts foar ne Kompromittierenge fon dien Benutserkonto reek dät foulgjende Woud in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]]:', + 'fancycaptcha-createaccount' => 'Toun Skuts foar automatisierde Anloage fon Benutserkonten reek dät foulgjende Woud in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].', 'fancycaptcha-create' => 'Tou dät Moakjen fon ju Siede reek dät foulgjende Woud in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].', 'fancycaptcha-edit' => 'Tou Beoarbaidenge fon disse Siede reek dät foulgjende Woud in dät Fäild hierunner ien @@ -1234,7 +1285,7 @@ $messages['te'] = array( ([[Special:Captcha/help|మరింత సమాచారం]]):', ); -/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic)) +/** Tajik (Cyrillic script) (Тоҷикӣ) * @author Ibrahim */ $messages['tg-cyrl'] = array( @@ -1245,7 +1296,7 @@ $messages['tg-cyrl'] = array( 'fancycaptcha-edit' => 'Барои вироиши ин саҳифа, вожаеро ки дар тасвир мебинед, ворид кунед ([[Special:Captcha/help|иттилооти бештар]]):', ); -/** Tajik (Latin) (Тоҷикӣ (Latin)) +/** Tajik (Latin script) (tojikī) * @author Liangent */ $messages['tg-latn'] = array( @@ -1306,9 +1357,11 @@ Otomatik spamdan korunmak için, lütfen aşağıdaki sözcükleri kutunun için /** Ukrainian (Українська) * @author Ahonc + * @author Dim Grits * @author Ytsukeng Fyvaprol */ $messages['uk'] = array( + 'fancycaptcha-desc' => 'Чудернацький CAPTCHA-генератор для підтвердження редагування', 'fancycaptcha-addurl' => 'Ваше редагування містить нові зовнішні посилання. Із метою захисту від спаму, будь ласка, введіть у текстове поле слова, зображені на картинці ([[Special:Captcha/help|докладніше]]):', 'fancycaptcha-badlogin' => 'Із метою захисту від автоматичного злому пароля, будь ласка, введіть у текстове поле слова, зображені на картинці ([[Special:Captcha/help|докладніше]]):', diff --git a/extensions/ConfirmEdit/FancyCaptcha.php b/extensions/ConfirmEdit/FancyCaptcha.php index 4204546b..dbc136b8 100644 --- a/extensions/ConfirmEdit/FancyCaptcha.php +++ b/extensions/ConfirmEdit/FancyCaptcha.php @@ -29,6 +29,9 @@ if ( !defined( 'MEDIAWIKI' ) ) { exit; } +require_once dirname( __FILE__ ) . '/ConfirmEdit.php'; +$wgCaptchaClass = 'FancyCaptcha'; + global $wgCaptchaDirectory; $wgCaptchaDirectory = "$wgUploadDirectory/captcha"; // bad default :D @@ -40,8 +43,8 @@ $wgCaptchaSecret = "CHANGE_THIS_SECRET!"; /** * By default the FancyCaptcha rotates among all available captchas. - * Setting $wgCaptchaDeleteOnSolve to true will delete the captcha - * files when they are correctly solved. Thus the user will need + * Setting $wgCaptchaDeleteOnSolve to true will delete the captcha + * files when they are correctly solved. Thus the user will need * something like a cron creating new thumbnails to avoid drying up. */ $wgCaptchaDeleteOnSolve = false; diff --git a/extensions/ConfirmEdit/HTMLCaptchaField.php b/extensions/ConfirmEdit/HTMLCaptchaField.php index a458544c..6b1765d0 100644 --- a/extensions/ConfirmEdit/HTMLCaptchaField.php +++ b/extensions/ConfirmEdit/HTMLCaptchaField.php @@ -33,11 +33,11 @@ class HTMLCaptchaField extends HTMLFormField { */ private $validationResult; - public function __construct( $params ){ + public function __construct( $params ) { parent::__construct( $params ); // For differentiating the type of form, mainly - if( isset( $params['prefix'] ) ){ + if ( isset( $params['prefix'] ) ) { $this->prefix = $params['prefix']; } } @@ -48,29 +48,29 @@ class HTMLCaptchaField extends HTMLFormField { * @param $value String * @return String */ - public function getInputHTML( $value ){ + public function getInputHTML( $value ) { # TODO } - public function validate( $data, $alldata ){ + public function validate( $data, $alldata ) { // We sent back the exists status of the captcha before. If it *doesn't* exist // we actually want to validate this as true, because we don't want an angry red // error message, just for the user to put the captcha in again - if( $data === false ){ + if ( $data === false ) { return true; } - + } /** * @param $request WebRequest * @return void */ - public function loadDataFromRequest( $request ){ + public function loadDataFromRequest( $request ) { $this->captcha = Captcha::factory(); $this->captcha->loadFromRequest( $request, $this ); - if( !$this->captcha->exists() ){ + if ( !$this->captcha->exists() ) { // The captcha doesn't exist; probably because it's already been used and // then deleted for security. Load the field up with a new captcha which // will be shown to the user when the validation of said new object fails diff --git a/extensions/ConfirmEdit/MathCaptcha.class.php b/extensions/ConfirmEdit/MathCaptcha.class.php index 220df31d..7874991f 100644 --- a/extensions/ConfirmEdit/MathCaptcha.class.php +++ b/extensions/ConfirmEdit/MathCaptcha.class.php @@ -22,7 +22,7 @@ class MathCaptcha extends SimpleCaptcha { $index = $this->storeCaptcha( array( 'answer' => $answer ) ); $form = '<table><tr><td>' . $this->fetchMath( $sum ) . '</td>'; - $form .= '<td>' . Xml::input( 'wpCaptchaWord', false, false, array( 'tabindex' => '1' ) ) . '</td></tr></table>'; + $form .= '<td>' . Html::input( 'wpCaptchaWord', false, false, array( 'tabindex' => '1', 'required' ) ) . '</td></tr></table>'; $form .= Html::hidden( 'wpCaptchaId', $index ); return $form; } @@ -39,17 +39,11 @@ class MathCaptcha extends SimpleCaptcha { /** Fetch the math */ function fetchMath( $sum ) { - // class_exists() unfortunately doesn't work with HipHop, and - // its replacement, MWInit::classExists(), wasn't added until - // MW 1.18, and is thus unusable here - so instead, we'll - // just duplicate the code of MWInit::classExists(). - try { - $r = new ReflectionClass( 'MathRenderer' ); - } catch( ReflectionException $r ) { + if ( MWInit::classExists( 'MathRenderer' ) ) { + $math = new MathRenderer( $sum ); + } else { throw new MWException( 'MathCaptcha requires the Math extension for MediaWiki versions 1.18 and above.' ); } - - $math = new MathRenderer( $sum ); $math->setOutputMode( MW_MATH_PNG ); $html = $math->render(); return preg_replace( '/alt=".*?"/', '', $html ); diff --git a/extensions/ConfirmEdit/MathCaptcha.php b/extensions/ConfirmEdit/MathCaptcha.php index 297feb5c..8c815bf7 100644 --- a/extensions/ConfirmEdit/MathCaptcha.php +++ b/extensions/ConfirmEdit/MathCaptcha.php @@ -12,8 +12,10 @@ */ if ( !defined( 'MEDIAWIKI' ) ) { - echo( "This file is an extension to the MediaWiki software and cannot be used standalone.\n" ); - die( 1 ); + exit; } +require_once dirname( __FILE__ ) . '/ConfirmEdit.php'; +$wgCaptchaClass = 'MathCaptcha'; + $wgAutoloadClasses['MathCaptcha'] = dirname( __FILE__ ) . '/MathCaptcha.class.php'; diff --git a/extensions/ConfirmEdit/QuestyCaptcha.class.php b/extensions/ConfirmEdit/QuestyCaptcha.class.php index 90e4b186..8e87db30 100644 --- a/extensions/ConfirmEdit/QuestyCaptcha.class.php +++ b/extensions/ConfirmEdit/QuestyCaptcha.class.php @@ -40,9 +40,10 @@ class QuestyCaptcha extends SimpleCaptcha { } $index = $this->storeCaptcha( $captcha ); return "<p><label for=\"wpCaptchaWord\">{$captcha['question']}</label> " . - Xml::element( 'input', array( + Html::element( 'input', array( 'name' => 'wpCaptchaWord', 'id' => 'wpCaptchaWord', + 'required', 'tabindex' => 1 ) ) . // tab in before the edit textarea "</p>\n" . Xml::element( 'input', array( diff --git a/extensions/ConfirmEdit/QuestyCaptcha.i18n.php b/extensions/ConfirmEdit/QuestyCaptcha.i18n.php index 458343ee..ec76be00 100644 --- a/extensions/ConfirmEdit/QuestyCaptcha.i18n.php +++ b/extensions/ConfirmEdit/QuestyCaptcha.i18n.php @@ -68,6 +68,7 @@ $messages['aln'] = array( ); /** Arabic (العربية) + * @author Ciphers * @author Meno25 * @author OsamaK */ @@ -79,6 +80,7 @@ $messages['ar'] = array( 'questycaptcha-createaccount' => 'للمساعدة في الحماية من إنشاء الحسابات التلقائي، من فضلك أجب على السؤال الذي يظهر أدناه ([[Special:Captcha/help|مزيد من المعلومات]]):', 'questycaptcha-create' => 'لتنشئ الصفحة، من فضلك أجب على السؤال الذي يظهر أدناه ([[Special:Captcha/help|مزيد من المعلومات]]):', 'questycaptcha-edit' => 'لتحرّر هذه الصفحة، من فضلك أجب على السؤال الذي يظهر أدناه ([[Special:Captcha/help|مزيد من المعلومات]]):', + 'questycaptcha-sendemail' => 'للمساعدة في الحماية ضد البريد الإلكتروني الآلي المرغوب فيه، الرجاء الإجابة على السؤال الذي يظهر أدناه ([[Special:Captcha/help|المزيد من المعلومات]]):', 'questycaptchahelp-text' => "عادة ما يتم في المواقع التي تقبل الردود والرسائل من العامة، كهذا الويكي، تخريب الموقع عن طريق الأشخاص الذين يستعملون آليات معينة لإرسال وصلاتهم لمواقع متعددة بصورة آلية. وعلى الرغم من أن هذا يمكن إزالته ولكنه مزعج للغاية. @@ -217,13 +219,14 @@ Pro návrat na předchozí stránku stiskněte ve svém prohlížeči tlačítko * @author Umherirrender */ $messages['de'] = array( + 'questycaptcha-desc' => 'Questy-CAPTCHA-Generator für die Erweiterung „Confirm Edit“', 'questycaptcha-addurl' => 'Deine Bearbeitung enthält neue externe Links. -Zum Schutz vor automatisiertem Spam beantworte bitte die untenstehende Frage ([[Special:Captcha/help|weitere Informationen]]):', - 'questycaptcha-badlogin' => 'Zum Schutz vor einer Kompromittierung deines Benutzerkontos beantworte bitte die folgende Frage ([[Special:Captcha/help|weitere Informationen]]):', +Zum Schutz vor automatisiertem Spam, beantworte bitte die untenstehende Frage, um die Seite speichern zu können ([[Special:Captcha/help|weitere Informationen]]):', + 'questycaptcha-badlogin' => 'Zum Schutz vor einer Kompromittierung deines Benutzerkontos, beantworte bitte die untenstehende Frage, um dich anmelden zu können ([[Special:Captcha/help|weitere Informationen]]):', 'questycaptcha-createaccount' => 'Zum Schutz vor einer automatisierten Anlage von Benutzerkonten ist es erforderlich, die folgende Frage zu beantworten ([[Special:Captcha/help|weitere Informationen]]):', 'questycaptcha-create' => 'Bitte beantworte die folgende Frage, um diese Seite erstellen zu können ([[Special:Captcha/help|weitere Informationen]]):', - 'questycaptcha-edit' => 'Bitte beantworte die folgende Frage, um diese Seite bearbeiten zu können ([[Special:Captcha/help|weitere Informationen]]):', - 'questycaptcha-sendemail' => 'Zum Schutz vor automatisiertem Spam bitten wir dich, die unten angezeigte Frage zu beantworten ([[Special:Captcha/help|weitere Informationen]]):', + 'questycaptcha-edit' => 'Bitte beantworte die folgende Frage, um diese Seite speichern zu können ([[Special:Captcha/help|weitere Informationen]]):', + 'questycaptcha-sendemail' => 'Zum Schutz vor automatisiertem Spam, beantworte bitte die untenstehende Frage, um die E-Mail-Nachricht senden zu können ([[Special:Captcha/help|weitere Informationen]]):', 'questycaptchahelp-text' => 'Internetangebote, die — wie dieses Wiki — für Beiträge von praktisch jedem offen sind, werden häufig von Spammern missbraucht, welche versuchen, mithilfe entsprechender Werkzeuge ihre Links automatisch auf vielen Webseiten zu platzieren. Zwar können derartige Spam-Links wieder entfernt werden, doch stellen sie trotzdem ein erhebliches Ärgernis dar. @@ -232,7 +235,7 @@ Da es kaum möglich ist, dies zu automatisieren, können hierdurch die meisten S Sollte dich dieses Verfahren beim Vornehmen erwünschter Bearbeitungen behindern, wende dich bitte an einen [[{{MediaWiki:Grouppage-sysop}}|Administrator]], um Unterstützung zu erhalten. -Der „Zurück“-Knopf des Browsers führt zurück zum Bearbeitungsfenster.', +Die Schaltfläche „Zurück“ des Browsers führt zurück zum vorherigen Bearbeitungsfenster.', ); /** German (formal address) (Deutsch (Sie-Form)) @@ -328,6 +331,27 @@ Por favor contacta a los [[{{MediaWiki:Grouppage-sysop}}|administradores del sit Haz click en el botón 'atrás' en tu navegador para regresar al editor de página.", ); +/** Estonian (Eesti) + * @author Pikne + */ +$messages['et'] = array( + 'questycaptcha-addurl' => 'Sinu muudatus sisaldab uusi välislinke. +Palun vasta alljärgnevale küsimusele. Abinõu on kaitseks automaadistatud rämpsmuudatuste eest ([[Special:Captcha/help|lisateave]]):', + 'questycaptcha-badlogin' => 'Palun vasta alljärgnevale küsimusele. Abinõu on kaitseks automaatsete parooliäraarvajate eest ([[Special:Captcha/help|lisateave]]):', + 'questycaptcha-createaccount' => 'Palun vasta alljärgnevale küsimusele. Abinõu on kaitseks kontode automaatse loomise eest ([[Special:Captcha/help|lisateave]]):', + 'questycaptcha-create' => 'Lehekülje loomiseks vasta palun alljärgnevale küsimusele ([[Special:Captcha/help|lisateave]]):', + 'questycaptcha-edit' => 'Selle lehekülje muutmiseks vasta palun alljärgnevale küsimusele ([[Special:Captcha/help|lisateave]]):', + 'questycaptcha-sendemail' => 'Palun vasta alljärgnevale küsimusele. Abinõu on kaitseks automaadistatud rämpsmuudatuste eest ([[Special:Captcha/help|lisateave]]):', + 'questycaptchahelp-text' => "Võrgukohti, mis lubavad külastajatel sisu muuta, nagu ka see viki, kasutavad sageli rämpsposti levitajad, lisades näiteks lehekülgedele reklaamilinke. Kuigi neid linke saab eemaldada, on nad siiski tülikad. + +Kasutajakontot registreerides või mõnele lehele uusi internetiaadresse postitades võidakse paluda sul küsimusele vastata. +Kuna sellist tegevust on raske automaadistada, on see efektiivseks kaitseks rämpspostirobotite vastu ja lubab samas tavakasutajatel rahus muudatusi teha. + +Kui sul tekib raskusi muudatuste tegemisel, võta palun ühendust selle võrgukoha [[{{MediaWiki:Grouppage-sysop}}|administraatoritega]]. + +Redigeerimislehele naasmiseks klõpsa võrgulehitseja ''tagasi''-nuppu.", +); + /** Basque (Euskara) * @author Kobazulo */ @@ -544,6 +568,28 @@ Silakan hubungi [[{{MediaWiki:Grouppage-sysop}}|pengurus]] untuk meminta bantuan Tekan tombol 'back' di penjelajah web Anda untuk kembali ke halaman penyuntingan.", ); +/** Iloko (Ilokano) + * @author Lam-ang + */ +$messages['ilo'] = array( + 'questycaptcha-addurl' => 'Ti inurnos mo ket adda nagyan na a baro a panilpo ti ruar. +Tapno makasalaknib kadagiti automatiko a spam, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'questycaptcha-badlogin' => 'Tapno makasalaknib kadagiti automatiko a pinagsulbar ti kontrasenias, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'questycaptcha-createaccount' => 'Tapno makasalaknib kadagiti automatiko a pinagaramid ti pakabilangan, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'questycaptcha-create' => 'Tapno makaaramid ti panid, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'questycaptcha-edit' => 'Tapno makaurnoy ditoya panid, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'questycaptcha-sendemail' => 'Tapno makasalaknib kadagiti automatiko a pinagspam, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):', + 'questycaptchahelp-text' => "Dagiti sapot a pagsaadan nga agaw-awat kadagiti maipablaak iti publiko, kasla daytoy a wiki, ket kanayon nga inabuso dagiti spammers nga agus-usar ti automatiko a ramramit ti pinagipablaak da kadagiti kukua da a panilpo ti adu a pagsasaadan. +Maikkat met dagitoy a panilpo, mgen makariri da unay. + +No sagpaminsan pay, nangruna no agikabil kadagiti baro a panilpo ti sapot iti panid, ti wiki ket agdamag kenka nga agsungbat ti maysa a saludsod. +Yantangay daytoy ket obra a narigat a ma-automatiko, agpalubos kadagiti agpayso a tattao ti agipablaak bayat nga agpasardeng ti kaaduan a spammers ken dagiti robot nga agraraut. + +Pangngaasi a kontaken ti [[{{MediaWiki:Grouppage-sysop}}|administrador ti pagsaadan ]] para iti pannulong no daytoy ket saan a napadpadaanan a pawilan na ti agpayso a pinagbaplaak mo. + +Peslen ti 'agsubli' a buton dita pagbasabasam (browser) ti agsubli idiay panid ti pinagurnos.", +); + /** Italian (Italiano) * @author Beta16 * @author Darth Kule @@ -710,6 +756,29 @@ Sila hubungi [[{{MediaWiki:Grouppage-sysop}}|pentadbir laman]] untuk mendapatkan Klik butang '←' untuk kembali ke editor laman.", ); +/** Norwegian (bokmål) (Norsk (bokmål)) + * @author Nghtwlkr + * @author Simny + */ +$messages['nb'] = array( + 'questycaptcha-addurl' => 'Din endring inneholder nye eksterne lenker. +For å beskytte mot autmatisert spam, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):', + 'questycaptcha-badlogin' => 'For å hindre passordtyveri, vær vennlig og svar på spørsmålet under ([[Special:Captcha/help|mer informasjon]]):', + 'questycaptcha-createaccount' => 'For å beskytte mot autmatisert spam, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):', + 'questycaptcha-create' => 'For å opprette siden, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):', + 'questycaptcha-edit' => 'For å endre denne siden, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):', + 'questycaptcha-sendemail' => 'For å beskytte mot automatisert søppelpost, svar på spørsmålet som vises nedenfor ([[Special:Captcha/help|mer info]]):', + 'questycaptchahelp-text' => "Nettsteder som tar imot bidrag fra allmennheten, som denne wikien, er ofte utsatt for angrep fra spammere som bruker automatiserte verktøy for å legge til lenker til mange sider. +Selv om disse spam-lenkene kan fjernes er de en stor plage. + +Iblant, spesielt ved tillegg av nye lenker til en side, kan wikien be deg svare på et spørsmål. +Siden dette er en oppgave som er vanskelig å automatisere, vil den tillate de fleste virkelige personer å bidra mens den stopper de fleste spammere og andre robotangrep. + +Vennligst kontakt [[{{MediaWiki:Grouppage-sysop}}|sideadministratorer]] for hjelp dersom dette er uventet hindrer deg fra å bidra med legitime bidrag. + +Klikk på 'tilbake'-knappen i nettleseren din for å gå tilbake til sideeditoren.", +); + /** Dutch (Nederlands) * @author Siebrand */ @@ -743,29 +812,6 @@ Som ei hjelp til å unngå automatisert spam, ver venleg og skiv inn spørsmåle 'questycaptcha-edit' => 'For å endra sida, ver venleg og svar på spørsmålet som er synt nedanfor ([[Special:Captcha/help|meir informasjon]]):', ); -/** Norwegian (bokmål) (Norsk (bokmål)) - * @author Nghtwlkr - * @author Simny - */ -$messages['no'] = array( - 'questycaptcha-addurl' => 'Din endring inneholder nye eksterne lenker. -For å beskytte mot autmatisert spam, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):', - 'questycaptcha-badlogin' => 'For å hindre passordtyveri, vær vennlig og svar på spørsmålet under ([[Special:Captcha/help|mer informasjon]]):', - 'questycaptcha-createaccount' => 'For å beskytte mot autmatisert spam, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):', - 'questycaptcha-create' => 'For å opprette siden, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):', - 'questycaptcha-edit' => 'For å endre denne siden, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):', - 'questycaptcha-sendemail' => 'For å beskytte mot automatisert søppelpost, svar på spørsmålet som vises nedenfor ([[Special:Captcha/help|mer info]]):', - 'questycaptchahelp-text' => "Nettsteder som tar imot bidrag fra allmennheten, som denne wikien, er ofte utsatt for angrep fra spammere som bruker automatiserte verktøy for å legge til lenker til mange sider. -Selv om disse spam-lenkene kan fjernes er de en stor plage. - -Iblant, spesielt ved tillegg av nye lenker til en side, kan wikien be deg svare på et spørsmål. -Siden dette er en oppgave som er vanskelig å automatisere, vil den tillate de fleste virkelige personer å bidra mens den stopper de fleste spammere og andre robotangrep. - -Vennligst kontakt [[{{MediaWiki:Grouppage-sysop}}|sideadministratorer]] for hjelp dersom dette er uventet hindrer deg fra å bidra med legitime bidrag. - -Klikk på 'tilbake'-knappen i nettleseren din for å gå tilbake til sideeditoren.", -); - /** Occitan (Occitan) * @author Cedric31 */ @@ -950,6 +996,18 @@ Kontaktujte prosím [[{{MediaWiki:Grouppage-sysop}}|správcov lokality]] ak potr Späť na úpravu stránky sa vrátite kliknutím na tlačidlo „Späť“ vo vašom prehliadači.', ); +/** Serbian (Cyrillic script) (Српски (ћирилица)) + * @author Rancher + */ +$messages['sr-ec'] = array( + 'questycaptcha-desc' => 'Стварач сликовног кода за потврду уређивања', +); + +/** Serbian (Latin script) (Srpski (latinica)) */ +$messages['sr-el'] = array( + 'questycaptcha-desc' => 'Stvarač slikovnog koda za potvrdu uređivanja', +); + /** Swedish (Svenska) * @author Boivie */ diff --git a/extensions/ConfirmEdit/QuestyCaptcha.php b/extensions/ConfirmEdit/QuestyCaptcha.php index 351c3421..d4c23fd6 100644 --- a/extensions/ConfirmEdit/QuestyCaptcha.php +++ b/extensions/ConfirmEdit/QuestyCaptcha.php @@ -28,6 +28,9 @@ if ( !defined( 'MEDIAWIKI' ) ) { exit; } +require_once dirname( __FILE__ ) . '/ConfirmEdit.php'; +$wgCaptchaClass = 'QuestyCaptcha'; + global $wgCaptchaQuestions; $wgCaptchaQuestions = array(); diff --git a/extensions/ConfirmEdit/README b/extensions/ConfirmEdit/README index f23fbb2b..1f6ddb3b 100644 --- a/extensions/ConfirmEdit/README +++ b/extensions/ConfirmEdit/README @@ -19,6 +19,8 @@ in a stylized way questions defined by the administrator(s) * ReCaptcha - users have to identify a series of characters, either visually or audially, from a widget provided by the reCAPTCHA service +* Asirra - users have to identify the cats in a set of photos of cats +and dogs, from a widget provided by the Microsoft Asirra service == License == @@ -35,4 +37,6 @@ The QuestyCaptcha module was written by Benjamin Lees. The reCAPTCHA module was written by Mike Crawford and Ben Maurer. +The Asirra module was written by Bachsau. + Additional maintenance work was done by Yaron Koren. diff --git a/extensions/ConfirmEdit/ReCaptcha.class.php b/extensions/ConfirmEdit/ReCaptcha.class.php new file mode 100644 index 00000000..b0c15fbd --- /dev/null +++ b/extensions/ConfirmEdit/ReCaptcha.class.php @@ -0,0 +1,89 @@ +<?php + +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 $wgReCaptchaPublicKey, $wgReCaptchaTheme; + + $useHttps = ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' ); + $js = 'var RecaptchaOptions = ' . Xml::encodeJsVar( array( 'theme' => $wgReCaptchaTheme, 'tabindex' => 1 ) ); + + return Html::inlineScript( $js ) . recaptcha_get_html( $wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps ); + } + + /** + * 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 $wgReCaptchaPrivateKey, $wgRequest; + + // API is hardwired to return wpCaptchaId and wpCaptchaWord, so use that if the standard two are empty + $challenge = $wgRequest->getVal( 'recaptcha_challenge_field', $wgRequest->getVal( 'wpCaptchaId' ) ); + $response = $wgRequest->getVal( 'recaptcha_response_field', $wgRequest->getVal( 'wpCaptchaWord' ) ); + + if ( $response === null ) { + // new captcha session + return false; + } + + $recaptcha_response = recaptcha_check_answer( + $wgReCaptchaPrivateKey, + $wgRequest->getIP(), + $challenge, + $response + ); + + if ( !$recaptcha_response->is_valid ) { + $this->recaptcha_error = $recaptcha_response->error; + return false; + } + + $recaptcha_error = null; + + return true; + + } + + function addCaptchaAPI( &$resultArr ) { + global $wgReCaptchaPublicKey; + + $resultArr['captcha']['type'] = 'recaptcha'; + $resultArr['captcha']['mime'] = 'image/png'; + $resultArr['captcha']['key'] = $wgReCaptchaPublicKey; + $resultArr['captcha']['error'] = $this->recaptcha_error; + } + + /** + * 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; + } + + public function APIGetAllowedParams( &$module, &$params ) { + return true; + } + + public function APIGetParamDescription( &$module, &$desc ) { + return true; + } +} diff --git a/extensions/ConfirmEdit/ReCaptcha.i18n.php b/extensions/ConfirmEdit/ReCaptcha.i18n.php index a2001424..b9d3263a 100644 --- a/extensions/ConfirmEdit/ReCaptcha.i18n.php +++ b/extensions/ConfirmEdit/ReCaptcha.i18n.php @@ -19,11 +19,26 @@ $messages['en'] = array( 'recaptcha-create' => 'To help protect against automated page creation, please type the two words you see in the box below:', ); +/** Message documentation (Message documentation) + * @author Umherirrender + */ +$messages['qqq'] = array( + 'recaptcha-desc' => '{{desc}}', +); + /** Arabic (العربية) + * @author Alexknight12 + * @author Ciphers * @author Meno25 */ $messages['ar'] = array( 'recaptcha-desc' => 'موديل reCAPTCHA لConfirm Edit', + 'recaptcha-edit' => 'للمساعدة في الحماية ضد التحرير السبام، يرجى كتابة الكلمتين التي تراها في المربع أدناه :', + 'recaptcha-addurl' => 'إن تعديلك يتضمن وصلات خارجية جديدة. للمساعدة في الحماية ضد السبام، يرجى كتابة الكلمتين التي تراها في المربع أدناه :', + 'recaptcha-badpass' => 'للمساعدة في الحماية ضد الكسر الآلي لكلمة السر، يرجى كتابة الكلمتين اللتين تراهما في المربع أدناه :', + 'recaptcha-createaccount' => 'للمساعدة في الحماية ضد الإنشاء الآلي للحسابات، رجاء اكتب الكلمتين اللتين تراهما في المربع أدناه:', + 'recaptcha-createaccount-fail' => 'جواب reCAPTCHA غير صحيح أو مفقود.', + 'recaptcha-create' => 'للمساعدة في الحماية ضد الإنشاء الآلي للصفحات، يرجى كتابة الكلمتين اللتين تراهما في المربع أدناه :', ); /** Asturian (Asturianu) @@ -93,24 +108,35 @@ $messages['cs'] = array( * @author Lloffiwr */ $messages['cy'] = array( - 'recaptcha-edit' => "Er mwyn ei gwneud yn annodd i olygyddion awtomatig osod sbam, teipiwch y ddau air sydd i'w gweld yn y blwch isod:", + 'recaptcha-edit' => "Er mwyn ei gwneud yn anodd i olygyddion awtomatig osod sbam, teipiwch y ddau air sydd i'w gweld yn y blwch isod:", 'recaptcha-addurl' => "Mae'ch golygiad yn cynnwys cysylltiadau allanol newydd. Er mwyn helpu i ddiogelu rhag sbam awtomatig, teipiwch y ddau air sydd i'w gweld yn y blwch isod:", 'recaptcha-badpass' => "Er mwyn helpu i arbed rhag i'ch cyfrinair gael ei ddatrys gan beiriant, teipiwch y ddau air sydd i'w gweld yn y blwch isod:", - 'recaptcha-createaccount' => "Er mwyn ei gwneud yn annodd i beiriannau i agor cyfrifon yn awtomatig, teipiwch y ddau air sydd i'w gweld yn y blwch isod:", + 'recaptcha-createaccount' => "Er mwyn ei gwneud yn anodd i beiriannau i agor cyfrifon yn awtomatig, teipiwch y ddau air sydd i'w gweld yn y blwch isod:", 'recaptcha-createaccount-fail' => "Mae'r ateb i'r pos CAPTCHA yn anghywir neu yn eisiau.", - 'recaptcha-create' => "Er mwyn ei gwneud yn annodd i beiriannau i ddechrau tudalennau yn awtomatig, teipiwch y ddau air sydd i'w gweld yn y blwch isod:", + 'recaptcha-create' => "Er mwyn ei gwneud yn anodd i beiriannau i ddechrau tudalennau yn awtomatig, teipiwch y ddau air sydd i'w gweld yn y blwch isod:", ); -/** German (Deutsch) */ +/** German (Deutsch) + * @author Kghbln + * @author Umherirrender + */ $messages['de'] = array( + 'recaptcha-desc' => 'reCAPTCHA-Module für die Erweiterung „Confirm Edit“', 'recaptcha-edit' => 'Zum Schutz vor automatisiertem Spam, gib bitte die beiden folgenden Wörter in das untenstehende Feld ein:', 'recaptcha-addurl' => 'Deine Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spam gib bitte die beiden folgenden Wörter in das folgende Feld ein:', 'recaptcha-badpass' => 'Zum Schutz gegen automatisiertes Knacken von Passwörtern, gib bitte die beiden folgenden Wörter in das folgende Feld ein:', - 'recaptcha-createaccount' => 'Zum Schutz gegen automatisierte Erstellung von Benutzerkonten gib bitte die beiden folgenden Wörter in das folgende Feld ein:', + 'recaptcha-createaccount' => 'Zum Schutz gegen die automatisierte Erstellung von Benutzerkonten bitten wir dich, die folgenden beiden Wörter in das untenstehende Feld einzugeben:', 'recaptcha-createaccount-fail' => 'Fehlerhafte oder fehlende reCAPTCHA Antwort.', 'recaptcha-create' => 'Zum Schutz gegen automatisierte Erstellung von Seiten gib bitte die beiden folgenden Wörter in das folgende Feld ein:', ); +/** German (formal address) (Deutsch (Sie-Form)) + * @author Kghbln + */ +$messages['de-formal'] = array( + 'recaptcha-createaccount' => 'Zum Schutz gegen die automatisierte Erstellung von Benutzerkonten bitten wir Sie, die folgenden beiden Wörter in das untenstehende Feld einzugeben:', +); + /** Spanish (Español) * @author Fitoschido */ @@ -204,6 +230,18 @@ $messages['id'] = array( 'recaptcha-create' => 'Untuk membantu pelindungan terhadap pembuatan halaman otomatis, silakan ketik dua kata yang Anda lihat dalam kotak di bawah ini:', ); +/** Italian (Italiano) + * @author Nemo bis + */ +$messages['it'] = array( + 'recaptcha-edit' => 'Per aiutarci a proteggerci dalle modifiche automatiche che aggiungono spam, scrivi le due parole mostrate nel riquadro sottostante:', + 'recaptcha-addurl' => 'La tua modifica aggiunge qualche nuovo collegamento esterno. Per aiutarci a proteggerci dallo spam automatico, scrivi le due parole mostrate nel riquadro sottostante:', + 'recaptcha-badpass' => 'Per aiutarci a proteggerci dalla forzatura automatica delle password, scrivi le due parole mostrate nel riquadro sottostante:', + 'recaptcha-createaccount' => 'Per aiutarci a proteggerci dalla creazione automatica di nuovi accessi, scrivi le due parole mostrate nel riquadro sottostante:', + 'recaptcha-createaccount-fail' => 'Risposta reCAPTCHA mancante o errata.', + 'recaptcha-create' => 'Per aiutarci a proteggerci dalla creazione automatica di pagine, scrivi le due parole mostrate nel riquadro sottostante:', +); + /** Japanese (日本語) */ $messages['ja'] = array( 'recaptcha-edit' => '自動編集スパムからの保護のため、下の画像に表示されている2つの言葉を入力 してください。', @@ -268,6 +306,18 @@ $messages['ms'] = array( 'recaptcha-create' => 'Untuk membanteras kegiatan mencipta laman secara automatik, sila taipkan dua perkataan yang anda lihat dalam petak di bawah:', ); +/** Norwegian (bokmål) (Norsk (bokmål)) + * @author Event + */ +$messages['nb'] = array( + 'recaptcha-edit' => 'Som beskyttelse mot automatisk redigert spam, vennligst skriv inn de to ordene du ser i boksen under:', + 'recaptcha-addurl' => 'Din redigering inneholder nye eksterne lenker. Som beskyttelse mot automatisk spam, vennligst skriv inn de to ordene du ser i boksen under:', + 'recaptcha-badpass' => 'Som beskyttelse mot automatisk passordknekking, vennligst skriv inn de to ordene du ser i boksen under:', + 'recaptcha-createaccount' => 'Som beskyttelse mot automatisk opprettelse av brukerkonto, vennligst skriv inn de to ordene du ser i boksen under:', + 'recaptcha-createaccount-fail' => 'Feil eller manglende reCAPTCHA-svar.', + 'recaptcha-create' => 'Som beskyttelse mot automatisk opprettelse av side, vennligst skriv inn de to ordene du ser i boksen under:', +); + /** Dutch (Nederlands) * @author Siebrand */ @@ -337,6 +387,18 @@ $messages['ru'] = array( 'recaptcha-create' => 'В целях защиты от автоматического создания страниц, пожалуйста, введите два слова, которые вы видите ниже:', ); +/** Serbian (Cyrillic script) (Српски (ћирилица)) + * @author Rancher + */ +$messages['sr-ec'] = array( + 'recaptcha-desc' => 'Модул reCAPTCHA за потврду уређивања', +); + +/** Serbian (Latin script) (Srpski (latinica)) */ +$messages['sr-el'] = array( + 'recaptcha-desc' => 'Modul reCAPTCHA za potvrdu uređivanja', +); + /** Swedish (Svenska) */ $messages['sv'] = array( 'recaptcha-edit' => 'Den här sidan skyddas mot spam-robotar, bevisa att du är en människa genom att skriva de två orden du ser i boxen nedan:', @@ -390,13 +452,24 @@ $messages['vi'] = array( /** Simplified Chinese (中文(简体)) * @author Hydra + * @author Hzy980512 */ $messages['zh-hans'] = array( 'recaptcha-edit' => '要帮助保护免受垃圾邮件自动的编辑,请键入您在下面的框中看到这两个词:', 'recaptcha-addurl' => '您的编辑包含新的外部链接。为了帮助防止自动垃圾邮件,请键入您在下面的框中看到这两个词:', 'recaptcha-badpass' => '为帮助防止自动密码破解,请键入您看到下面的框中的两个字:', - 'recaptcha-createaccount' => '为了帮助防止创建自动化的帐户,请键入您在下面的框中看到的这两个字:', + 'recaptcha-createaccount' => '为了防止自动程序创建账户,请键入您在下面的框中看到的两个词:', 'recaptcha-createaccount-fail' => '不正确或缺失的 reCAPTCHA 答案。', - 'recaptcha-create' => '为了帮助防止自动的页创建,请键入您在下面的框中看到这两个词:', + 'recaptcha-create' => '为了防止自动程序创建页面,请输入您在下面的框中看到的两个词:', +); + +/** Traditional Chinese (中文(繁體)) */ +$messages['zh-hant'] = array( + 'recaptcha-edit' => '要幫助保護免受垃圾郵件自動的編輯,請鍵入您在下面的框中看到這兩個詞:', + 'recaptcha-addurl' => '您的編輯包含新的外部鏈接。為了幫助防止自動垃圾郵件,請鍵入您在下面的框中看到這兩個詞:', + 'recaptcha-badpass' => '為幫助防止自動密碼破解,請鍵入您看到下面的框中的兩個字:', + 'recaptcha-createaccount' => '為了幫助防止創建自動化的帳戶,請鍵入您在下面的框中看到的這兩個字:', + 'recaptcha-createaccount-fail' => '不正確或缺失的 reCAPTCHA 答案。', + 'recaptcha-create' => '為了幫助防止自動的頁創建,請鍵入您在下面的框中看到這兩個詞:', ); diff --git a/extensions/ConfirmEdit/ReCaptcha.php b/extensions/ConfirmEdit/ReCaptcha.php index b068b86e..cedaae10 100644 --- a/extensions/ConfirmEdit/ReCaptcha.php +++ b/extensions/ConfirmEdit/ReCaptcha.php @@ -1,8 +1,8 @@ <?php /** - * Captcha class using the reCAPTCHA widget. - * Stop Spam. Read Books. + * Captcha class using the reCAPTCHA widget. + * Stop Spam. Read Books. * * @addtogroup Extensions * @author Mike Crawford <mike.crawford@gmail.com> @@ -10,11 +10,18 @@ * @licence MIT/X11 */ -if( !defined( 'MEDIAWIKI' ) ) { +if ( !defined( 'MEDIAWIKI' ) ) { exit; } -$wgExtensionMessagesFiles['ReCaptcha'] = dirname( __FILE__ ) . '/ReCaptcha.i18n.php'; +require_once dirname( __FILE__ ) . '/ConfirmEdit.php'; +$wgCaptchaClass = 'ReCaptcha'; + +$dir = dirname( __FILE__ ); + +$wgExtensionMessagesFiles['ReCaptcha'] = $dir . '/ReCaptcha.i18n.php'; + +$wgAutoloadClasses['ReCaptcha'] = $dir . '/ReCaptcha.class.php'; require_once( 'recaptchalib.php' ); @@ -25,6 +32,13 @@ $wgReCaptchaPrivateKey = ''; $recaptcha_public_key = ''; $recaptcha_private_key = ''; +/** + * Sets the theme for ReCaptcha + * + * See http://code.google.com/apis/recaptcha/docs/customization.html + */ +$wgReCaptchaTheme = 'red'; + $wgExtensionFunctions[] = 'efReCaptcha'; /** @@ -43,92 +57,9 @@ function efReCaptcha() { $wgReCaptchaPrivateKey = $recaptcha_private_key; } - if ($wgReCaptchaPublicKey == '' || $wgReCaptchaPrivateKey == '') { - die ('You need to set $wgReCaptchaPrivateKey and $wgReCaptchaPublicKey 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 $wgReCaptchaPublicKey; - $useHttps = ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' ); - return "<script>var RecaptchaOptions = { tabindex : 1 }; </script> " . - recaptcha_get_html($wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps); + if ( $wgReCaptchaPublicKey == '' || $wgReCaptchaPrivateKey == '' ) { + die ( 'You need to set $wgReCaptchaPrivateKey and $wgReCaptchaPublicKey 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>." ); } - - /** - * 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 $wgReCaptchaPrivateKey; - $recaptcha_response = recaptcha_check_answer ($wgReCaptchaPrivateKey, - 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, $merged = false ) { - 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; - } - } diff --git a/extensions/ConfirmEdit/ext.confirmedit.asirra.js b/extensions/ConfirmEdit/ext.confirmedit.asirra.js new file mode 100644 index 00000000..6294b4f1 --- /dev/null +++ b/extensions/ConfirmEdit/ext.confirmedit.asirra.js @@ -0,0 +1,55 @@ +/*======================================================================*\ +|| #################################################################### || +|| # Asirra module for ConfirmEdit by Bachsau # || +|| # ---------------------------------------------------------------- # || +|| # This code is released into public domain, in the hope that it # || +|| # will be useful, but without any warranty. # || +|| # ------------ YOU CAN DO WITH IT WHATEVER YOU LIKE! ------------- # || +|| #################################################################### || +\*======================================================================*/ + +jQuery( function( $ ) { + var asirraform = $( "form#userlogin2" ) + var submitButtonClicked = document.createElement("input"); + var passThroughFormSubmit = false; + + function PrepareSubmit() { + console.log( 'daa' ); + submitButtonClicked.type = "hidden"; + var inputFields = asirraform.find( "input" ); + for (var i=0; i<inputFields.length; i++) { + if (inputFields[i].type === "submit") { + inputFields[i].onclick = function(event) { + console.log( this ); + submitButtonClicked.name = this.name; + submitButtonClicked.value = this.value; + } + } + } + + asirraform.submit( function() { + return MySubmitForm(); + } ); + } + + function MySubmitForm() { + if (passThroughFormSubmit) { + return true; + } + Asirra_CheckIfHuman(HumanCheckComplete); + return false; + } + + function HumanCheckComplete(isHuman) { + if (!isHuman) { + alert( mw.msg( 'asirra-failed' ) ); + } else { + asirraform.append(submitButtonClicked); + passThroughFormSubmit = true; + asirraform.submit(); + } + } + + PrepareSubmit(); + +} ); diff --git a/extensions/ConfirmEdit/recaptchalib.php b/extensions/ConfirmEdit/recaptchalib.php index 32c4f4d7..8e2c0c4f 100644 --- a/extensions/ConfirmEdit/recaptchalib.php +++ b/extensions/ConfirmEdit/recaptchalib.php @@ -1,5 +1,5 @@ <?php -/* +/** * This is a PHP library that handles calling reCAPTCHA. * - Documentation and latest version * http://recaptcha.net/plugins/php/ @@ -35,22 +35,22 @@ /** * The reCAPTCHA server URL's */ -define("RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api"); -define("RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api"); -define("RECAPTCHA_VERIFY_SERVER", "www.google.com"); +define( "RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api" ); +define( "RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api" ); +define( "RECAPTCHA_VERIFY_SERVER", "www.google.com" ); /** * 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) { +function _recaptcha_qsencode ( $data ) { $req = ""; foreach ( $data as $key => $value ) - $req .= $key . '=' . urlencode( stripslashes($value) ) . '&'; + $req .= $key . '=' . urlencode( stripslashes( $value ) ) . '&'; // Cut the last '&' - $req=substr($req,0,strlen($req)-1); + $req = substr( $req, 0, strlen( $req ) -1 ); return $req; } @@ -64,29 +64,29 @@ function _recaptcha_qsencode ($data) { * @param int port * @return array response */ -function _recaptcha_http_post($host, $path, $data, $port = 80) { +function _recaptcha_http_post( $host, $path, $data, $port = 80 ) { - $req = _recaptcha_qsencode ($data); + $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 .= "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'); + if ( false == ( $fs = @fsockopen( $host, $port, $errno, $errstr, 10 ) ) ) { + die ( 'Could not open socket' ); } - fwrite($fs, $http_request); + 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); + while ( !feof( $fs ) ) + $response .= fgets( $fs, 1160 ); // One TCP-IP packet + fclose( $fs ); + $response = explode( "\r\n\r\n", $response, 2 ); return $response; } @@ -103,26 +103,26 @@ function _recaptcha_http_post($host, $path, $data, $port = 80) { * @return string - The HTML to be embedded in the user's form. */ -function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false) +function recaptcha_get_html ( $pubkey, $error = null, $use_ssl = false ) { - if ($pubkey == null || $pubkey == '') { - die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>"); + if ( $pubkey == null || $pubkey == '' ) { + die ( "To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>" ); } - - if ($use_ssl) { + + if ( $use_ssl ) { $server = RECAPTCHA_API_SECURE_SERVER; } else { $server = RECAPTCHA_API_SERVER; } $errorpart = ""; - if ($error) { + if ( $error ) { $errorpart = "&error=" . $error; } - return '<script type="text/javascript" src="'. $server . '/challenge?k=' . $pubkey . $errorpart . '"></script> + 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/> + <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>'; @@ -149,27 +149,27 @@ class ReCaptchaResponse { * @param array $extra_params an array of extra variables to post to the server * @return ReCaptchaResponse */ -function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array()) +function recaptcha_check_answer ( $privkey, $remoteip, $challenge, $response, $extra_params = array() ) { - if ($privkey == null || $privkey == '') { - die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>"); + if ( $privkey == null || $privkey == '' ) { + die ( "To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>" ); } - if ($remoteip == null || $remoteip == '') { - die ("For security reasons, you must pass the remote ip to reCAPTCHA"); + 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) { + + + // 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; } - $response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify", + $response = _recaptcha_http_post ( RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify", array ( 'privatekey' => $privkey, 'remoteip' => $remoteip, @@ -178,10 +178,10 @@ function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $ex ) + $extra_params ); - $answers = explode ("\n", $response [1]); + $answers = explode ( "\n", $response [1] ); $recaptcha_response = new ReCaptchaResponse(); - if (trim ($answers [0]) == 'true') { + if ( trim ( $answers [0] ) == 'true' ) { $recaptcha_response->is_valid = true; } else { @@ -199,45 +199,45 @@ function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $ex * @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 "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname)); +function recaptcha_get_signup_url ( $domain = null, $appname = null ) { + return "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode ( array ( 'domains' => $domain, 'app' => $appname ) ); } -function _recaptcha_aes_pad($val) { +function _recaptcha_aes_pad( $val ) { $block_size = 16; - $numpad = $block_size - (strlen ($val) % $block_size); - return str_pad($val, strlen ($val) + $numpad, chr($numpad)); + $numpad = $block_size - ( strlen ( $val ) % $block_size ); + return str_pad( $val, strlen ( $val ) + $numpad, chr( $numpad ) ); } /* 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."); +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=_recaptcha_aes_pad($val); - return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); + $mode = MCRYPT_MODE_CBC; + $enc = MCRYPT_RIJNDAEL_128; + $val = _recaptcha_aes_pad( $val ); + 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), '+/', '-_'); +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://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>"); +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://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>" ); } - - $ky = pack('H*', $privkey); - $cryptmail = _recaptcha_aes_encrypt ($email, $ky); - - return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail); + + $ky = pack( 'H*', $privkey ); + $cryptmail = _recaptcha_aes_encrypt ( $email, $ky ); + + return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ( $cryptmail ); } /** @@ -245,15 +245,15 @@ function recaptcha_mailhide_url($pubkey, $privkey, $email) { * eg, given johndoe@example,com return ["john", "example.com"]. * the email is then displayed as john...@example.com */ -function _recaptcha_mailhide_email_parts ($email) { - $arr = preg_split("/@/", $email ); +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); + if ( strlen ( $arr[0] ) <= 4 ) { + $arr[0] = substr ( $arr[0], 0, 1 ); + } elseif ( strlen ( $arr[0] ) <= 6 ) { + $arr[0] = substr ( $arr[0], 0, 3 ); } else { - $arr[0] = substr ($arr[0], 0, 4); + $arr[0] = substr ( $arr[0], 0, 4 ); } return $arr; } @@ -264,12 +264,12 @@ function _recaptcha_mailhide_email_parts ($email) { * * http://www.google.com/recaptcha/mailhide/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]); +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] ); } |