diff options
author | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
---|---|---|
committer | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
commit | fc7369835258467bf97eb64f184b93691f9a9fd5 (patch) | |
tree | daabd60089d2dd76d9f5fb416b005fbe159c799d /www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha |
first commit
Diffstat (limited to 'www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha')
34 files changed, 814 insertions, 0 deletions
diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/HTMLReCaptchaNoCaptchaField.php b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/HTMLReCaptchaNoCaptchaField.php new file mode 100644 index 00000000..e1a39a60 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/HTMLReCaptchaNoCaptchaField.php @@ -0,0 +1,74 @@ +<?php + +/** + * Creates a ReCaptcha v2 widget. Does not return any data; handling the data submitted by the + * widget is callers' responsibility. + */ +class HTMLReCaptchaNoCaptchaField extends HTMLFormField { + /** @var string Public key parameter to be passed to ReCaptcha. */ + protected $key; + + /** @var string Error returned by ReCaptcha in the previous round. */ + protected $error; + + /** + * Parameters: + * - key: (string, required) ReCaptcha public key + * - error: (string) ReCaptcha error from previous round + * @param array $params + */ + public function __construct( array $params ) { + $params += [ 'error' => null ]; + parent::__construct( $params ); + + $this->key = $params['key']; + $this->error = $params['error']; + + $this->mName = 'g-recaptcha-response'; + } + + public function getInputHTML( $value ) { + $out = $this->mParent->getOutput(); + $lang = htmlspecialchars( urlencode( $this->mParent->getLanguage()->getCode() ) ); + + // Insert reCAPTCHA script, in display language, if available. + // Language falls back to the browser's display language. + // See https://developers.google.com/recaptcha/docs/faq + $out->addHeadItem( + 'g-recaptchascript', + "<script src=\"https://www.google.com/recaptcha/api.js?hl={$lang}\" async defer></script>" + ); + $output = Html::element( 'div', [ + 'class' => [ + 'g-recaptcha', + 'mw-confirmedit-captcha-fail' => !!$this->error, + ], + 'data-sitekey' => $this->key, + ] ); + $htmlUrlencoded = htmlspecialchars( urlencode( $this->key ) ); + $output .= <<<HTML +<noscript> + <div> + <div style="width: 302px; height: 422px; position: relative;"> + <div style="width: 302px; height: 422px; position: absolute;"> + <iframe src="https://www.google.com/recaptcha/api/fallback?k={$htmlUrlencoded}&hl={$lang}" + frameborder="0" scrolling="no" + style="width: 302px; height:422px; border-style: none;"> + </iframe> + </div> + </div> + <div style="width: 300px; height: 60px; border-style: none; + bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; + background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;"> + <textarea id="g-recaptcha-response" name="g-recaptcha-response" + class="g-recaptcha-response" + style="width: 250px; height: 40px; border: 1px solid #c1c1c1; + margin: 10px 25px; padding: 0px; resize: none;" > + </textarea> + </div> + </div> +</noscript> +HTML; + return $output; + } +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/ReCaptchaNoCaptcha.class.php b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/ReCaptchaNoCaptcha.class.php new file mode 100644 index 00000000..19aa1093 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/ReCaptchaNoCaptcha.class.php @@ -0,0 +1,247 @@ +<?php + +use MediaWiki\Auth\AuthenticationRequest; + +class ReCaptchaNoCaptcha extends SimpleCaptcha { + // used for renocaptcha-edit, renocaptcha-addurl, renocaptcha-badlogin, renocaptcha-createaccount, + // renocaptcha-create, renocaptcha-sendemail via getMessage() + protected static $messagePrefix = 'renocaptcha-'; + + private $error = null; + /** + * Get the captcha form. + * @param int $tabIndex + * @return array + */ + function getFormInformation( $tabIndex = 1 ) { + global $wgReCaptchaSiteKey, $wgLang; + $lang = htmlspecialchars( urlencode( $wgLang->getCode() ) ); + + $output = Html::element( 'div', [ + 'class' => [ + 'g-recaptcha', + 'mw-confirmedit-captcha-fail' => !!$this->error, + ], + 'data-sitekey' => $wgReCaptchaSiteKey + ] ); + $htmlUrlencoded = htmlspecialchars( urlencode( $wgReCaptchaSiteKey ) ); + $output .= <<<HTML +<noscript> + <div> + <div style="width: 302px; height: 422px; position: relative;"> + <div style="width: 302px; height: 422px; position: absolute;"> + <iframe src="https://www.google.com/recaptcha/api/fallback?k={$htmlUrlencoded}&hl={$lang}" + frameborder="0" scrolling="no" + style="width: 302px; height:422px; border-style: none;"> + </iframe> + </div> + </div> + <div style="width: 300px; height: 60px; border-style: none; + bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; + background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;"> + <textarea id="g-recaptcha-response" name="g-recaptcha-response" + class="g-recaptcha-response" + style="width: 250px; height: 40px; border: 1px solid #c1c1c1; + margin: 10px 25px; padding: 0px; resize: none;" > + </textarea> + </div> + </div> +</noscript> +HTML; + return [ + 'html' => $output, + 'headitems' => [ + // Insert reCAPTCHA script, in display language, if available. + // Language falls back to the browser's display language. + // See https://developers.google.com/recaptcha/docs/faq + "<script src=\"https://www.google.com/recaptcha/api.js?hl={$lang}\" async defer></script>" + ] + ]; + } + + /** + * @param Status|array|string $info + */ + protected function logCheckError( $info ) { + if ( $info instanceof Status ) { + $errors = $info->getErrorsArray(); + $error = $errors[0][0]; + } elseif ( is_array( $info ) ) { + $error = implode( ',', $info ); + } else { + $error = $info; + } + + wfDebugLog( 'captcha', 'Unable to validate response: ' . $error ); + } + + /** + * @param WebRequest $request + * @return array + */ + protected function getCaptchaParamsFromRequest( WebRequest $request ) { + $index = 'not used'; // ReCaptchaNoCaptcha combines captcha ID + solution into a single value + // API is hardwired to return captchaWord, so use that if the standard isempty + $response = $request->getVal( 'g-recaptcha-response', $request->getVal( 'captchaWord' ) ); + return [ $index, $response ]; + } + + /** + * Check, if the user solved the captcha. + * + * Based on reference implementation: + * https://github.com/google/recaptcha#php + * + * @param mixed $_ Not used (ReCaptcha v2 puts index and solution in a single string) + * @param string $word captcha solution + * @return bool + */ + function passCaptcha( $_, $word ) { + global $wgRequest, $wgReCaptchaSecretKey, $wgReCaptchaSendRemoteIP; + + $url = 'https://www.google.com/recaptcha/api/siteverify'; + // Build data to append to request + $data = [ + 'secret' => $wgReCaptchaSecretKey, + 'response' => $word, + ]; + if ( $wgReCaptchaSendRemoteIP ) { + $data['remoteip'] = $wgRequest->getIP(); + } + $url = wfAppendQuery( $url, $data ); + $request = MWHttpRequest::factory( $url, [ 'method' => 'GET' ] ); + $status = $request->execute(); + if ( !$status->isOK() ) { + $this->error = 'http'; + $this->logCheckError( $status ); + return false; + } + $response = FormatJson::decode( $request->getContent(), true ); + if ( !$response ) { + $this->error = 'json'; + $this->logCheckError( $this->error ); + return false; + } + if ( isset( $response['error-codes'] ) ) { + $this->error = 'recaptcha-api'; + $this->logCheckError( $response['error-codes'] ); + return false; + } + + return $response['success']; + } + + /** + * @param array &$resultArr + */ + function addCaptchaAPI( &$resultArr ) { + $resultArr['captcha'] = $this->describeCaptchaType(); + $resultArr['captcha']['error'] = $this->error; + } + + /** + * @return array + */ + public function describeCaptchaType() { + global $wgReCaptchaSiteKey; + return [ + 'type' => 'recaptchanocaptcha', + 'mime' => 'image/png', + 'key' => $wgReCaptchaSiteKey, + ]; + } + + /** + * Show a message asking the user to enter a captcha on edit + * The result will be treated as wiki text + * + * @param string $action Action being performed + * @return string Wikitext + */ + public function getMessage( $action ) { + $msg = parent::getMessage( $action ); + if ( $this->error ) { + $msg = new RawMessage( '<div class="error">$1</div>', [ $msg ] ); + } + return $msg; + } + + /** + * @param ApiBase &$module + * @param array &$params + * @param int $flags + * @return bool + */ + public function APIGetAllowedParams( &$module, &$params, $flags ) { + if ( $flags && $this->isAPICaptchaModule( $module ) ) { + $params['g-recaptcha-response'] = [ + ApiBase::PARAM_HELP_MSG => 'renocaptcha-apihelp-param-g-recaptcha-response', + ]; + } + + return true; + } + + public function getError() { + return $this->error; + } + + public function storeCaptcha( $info ) { + // ReCaptcha is stored by Google; the ID will be generated at that time as well, and + // the one returned here won't be used. Just pretend this worked. + return 'not used'; + } + + public function retrieveCaptcha( $index ) { + // just pretend it worked + return [ 'index' => $index ]; + } + + public function getCaptcha() { + // ReCaptcha is handled by frontend code + an external provider; nothing to do here. + return []; + } + + /** + * @param array $captchaData + * @param string $id + * @return Message + */ + public function getCaptchaInfo( $captchaData, $id ) { + return wfMessage( 'renocaptcha-info' ); + } + + /** + * @return ReCaptchaNoCaptchaAuthenticationRequest + */ + public function createAuthenticationRequest() { + return new ReCaptchaNoCaptchaAuthenticationRequest(); + } + + /** + * @param array $requests + * @param array $fieldInfo + * @param array &$formDescriptor + * @param string $action + */ + public function onAuthChangeFormFields( + array $requests, array $fieldInfo, array &$formDescriptor, $action + ) { + global $wgReCaptchaSiteKey; + + $req = AuthenticationRequest::getRequestByClass( $requests, + CaptchaAuthenticationRequest::class, true ); + if ( !$req ) { + return; + } + + // ugly way to retrieve error information + $captcha = ConfirmEditHooks::getInstance(); + + $formDescriptor['captchaWord'] = [ + 'class' => HTMLReCaptchaNoCaptchaField::class, + 'key' => $wgReCaptchaSiteKey, + 'error' => $captcha->getError(), + ] + $formDescriptor['captchaWord']; + } +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/ReCaptchaNoCaptcha.php b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/ReCaptchaNoCaptcha.php new file mode 100644 index 00000000..9654dee8 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/ReCaptchaNoCaptcha.php @@ -0,0 +1,14 @@ +<?php +if ( function_exists( 'wfLoadExtension' ) ) { + wfLoadExtension( 'ConfirmEdit/ReCaptchaNoCaptcha' ); + // Keep i18n globals so mergeMessageFileList.php doesn't break + $wgMessagesDirs['ReCaptchaNoCaptcha'] = __DIR__ . '/i18n'; + /* wfWarn( + 'Deprecated PHP entry point used for ReCaptchaNoCaptcha extension. ' . + 'Please use wfLoadExtension instead, ' . + 'see https://www.mediawiki.org/wiki/Extension_registration for more details.' + ); */ + return; +} else { + die( 'This version of the ReCaptchaNoCaptcha extension requires MediaWiki 1.25+' ); +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/ReCaptchaNoCaptchaAuthenticationRequest.php b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/ReCaptchaNoCaptchaAuthenticationRequest.php new file mode 100644 index 00000000..01b845dd --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/ReCaptchaNoCaptchaAuthenticationRequest.php @@ -0,0 +1,30 @@ +<?php + +use MediaWiki\Auth\AuthenticationRequest; + +/** + * Authentication request for ReCaptcha v2. Unlike the parent class, no session storage is used + * and there is no ID; Google provides a single proof string after successfully solving a captcha. + */ +class ReCaptchaNoCaptchaAuthenticationRequest extends CaptchaAuthenticationRequest { + public function __construct() { + parent::__construct( null, null ); + } + + public function loadFromSubmission( array $data ) { + // unhack the hack in parent + return AuthenticationRequest::loadFromSubmission( $data ); + } + + public function getFieldInfo() { + $fieldInfo = parent::getFieldInfo(); + + return [ + 'captchaWord' => [ + 'type' => 'string', + 'label' => $fieldInfo['captchaInfo']['label'], + 'help' => wfMessage( 'renocaptcha-help' ), + ], + ]; + } +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/extension.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/extension.json new file mode 100644 index 00000000..23bbf5ac --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/extension.json @@ -0,0 +1,20 @@ +{ + "name": "ReCaptchaNoCaptcha", + "MessagesDirs": { + "ReCaptchaNoCaptcha": [ + "i18n" + ] + }, + "AutoloadClasses": { + "ReCaptchaNoCaptcha": "ReCaptchaNoCaptcha.class.php", + "HTMLReCaptchaNoCaptchaField": "HTMLReCaptchaNoCaptchaField.php", + "ReCaptchaNoCaptchaAuthenticationRequest": "ReCaptchaNoCaptchaAuthenticationRequest.php" + }, + "config": { + "CaptchaClass": "ReCaptchaNoCaptcha", + "ReCaptchaSiteKey": "", + "ReCaptchaSecretKey": "", + "ReCaptchaSendRemoteIP": false + }, + "manifest_version": 1 +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ast.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ast.json new file mode 100644 index 00000000..d5bc558b --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ast.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Xuacu" + ] + }, + "renocaptcha-edit": "Pa protexer la wiki escontra'l spam d'ediciones automatizáu, pidímoste que resuelvas el siguiente CAPTCHA:", + "renocaptcha-addurl": "La to edición incluye enllaces esternos nuevos. Pa protexer la wiki escontra'l spam automáticu, pidímoste que resuelvas el siguiente CAPTCHA:", + "renocaptcha-badlogin": "Para protexer la wiki escontra'l frayamientu automáticu de contraseñes, pidímoste amablemente que resuelvas el siguiente CAPTCHA:", + "renocaptcha-createaccount": "Pa protexer la wiki escontra la creación de cuentes automatizada, pidímoste que resuelvas el siguiente CAPTCHA:", + "renocaptcha-createaccount-fail": "Paez que nun resolvisti'l CAPTCHA.", + "renocaptcha-create": "Pa protexer la wiki escontra la creación de páxines automatizada, pidímoste que resuelvas el siguiente CAPTCHA:", + "renocaptcha-noscript": "Por desgracia desactivasti JavaScript, polo que nun podemos reconocer automáticamente si yes humanu o non. Resuelve'l CAPTCHA de más arriba y copia'l testu resultante nel siguiente cuadru de testu:", + "renocaptcha-help": "Por favor, resuelve l'enigma ReCaptcha NoCaptcha y devuelve los valores de respuesta como captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Campu del widget ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ba.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ba.json new file mode 100644 index 00000000..95748bf3 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ba.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "Азат Хәлилов", + "Айбикә" + ] + }, + "renocaptcha-createaccount-fail": "Һеҙ CAPTCHA -ны сисә алманығыҙ", + "renocaptcha-apihelp-param-g-recaptcha-response": "ReCaptcha виджеты майҙаны" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ca.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ca.json new file mode 100644 index 00000000..aa4e8704 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ca.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "QuimGil" + ] + }, + "renocaptcha-createaccount": "Per a protegir el wiki contra la creació automatitzada de comptes, us demanem que resolgueu la següent CAPTCHA:" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/cs.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/cs.json new file mode 100644 index 00000000..ee5fca6f --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/cs.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Mormegil" + ] + }, + "renocaptcha-edit": "V zájmu ochrany této wiki před automatickým spamováním vás prosíme o vyřešení následujícího testu CAPTCHA:", + "renocaptcha-addurl": "Vaše editace obsahuje nové externí odkazy. V zájmu ochrany této wiki před automatickým spamováním vás prosíme o vyřešení následujícího testu CAPTCHA:", + "renocaptcha-badlogin": "V zájmu ochrany této wiki proti automatickým pokusům uhodnout heslo vás prosíme o vyřešení následujícího testu CAPTCHA:", + "renocaptcha-createaccount": "V zájmu ochrany této wiki před automatickým vytvářením účtů vás prosíme o vyřešení následujícího testu CAPTCHA:", + "renocaptcha-createaccount-fail": "Vypadá to, že jste nevyřešili test CAPTCHA.", + "renocaptcha-create": "V zájmu ochrany před automatickým zakládáním stránek vás prosíme o vyřešení následujícího testu CAPTCHA:", + "renocaptcha-noscript": "Bohužel máte vypnutý JavaScript, takže nedokážeme automaticky rozpoznat, jestli jste člověk nebo ne. Vyřešte prosím výše zobrazený test CAPTCHA a výsledný text zkopírujte do následujícího pole:", + "renocaptcha-help": "Vyřešte výzvu ReCaptcha NoCaptcha a vraťte hodnotu odpovědi jako captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Pole z widgetu ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/de.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/de.json new file mode 100644 index 00000000..b4cfc1bc --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/de.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Metalhead64" + ] + }, + "renocaptcha-edit": "Um das Wiki vor automatisiertem Bearbeitungsspam zu schützen, bitten wir dich, das folgende CAPTCHA zu lösen:", + "renocaptcha-addurl": "Deine Bearbeitung enthält neue Weblinks. Um das Wiki vor automatisiertem Spam zu schützen, bitten wir dich, das folgende CAPTCHA zu lösen:", + "renocaptcha-badlogin": "Um das Wiki vor automatisiertem Knacken des Passwortes zu schützen, bitten wir dich, das folgende CAPTCHA zu lösen:", + "renocaptcha-createaccount": "Um das Wiki vor automatisiertem Spam zu schützen, bitten wir dich, das folgende CAPTCHA zu lösen:", + "renocaptcha-createaccount-fail": "Es scheint, als ob du das CAPTCHA nicht gelöst hast.", + "renocaptcha-create": "Um das Wiki vor automatisierter Seitenerstellung zu schützen, bitten wir dich, das folgende CAPTCHA zu lösen:", + "renocaptcha-noscript": "Da du leider JavaScript deaktiviert hast, konnten wir nicht feststellen, ob du ein Mensch bist oder nicht. Bitte löse das obige CAPTCHA und kopiere den resultierenden Text in das folgende Textfeld:", + "renocaptcha-help": "Bitte löse eine ReCaptcha-NoCaptcha-Herausforderung und gib den Antwortwert als captchaWord zurück.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Feld von dem ReCaptcha-Widget." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/en.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/en.json new file mode 100644 index 00000000..68a57e82 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/en.json @@ -0,0 +1,14 @@ +{ + "@metadata": { + "authors": [] + }, + "renocaptcha-edit": "To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:", + "renocaptcha-addurl": "Your edit includes new external links. To protect the wiki against automated spam, we kindly ask you to solve the following CAPTCHA:", + "renocaptcha-badlogin": "To protect the wiki against automated password cracking, we kindly ask you to solve the following CAPTCHA:", + "renocaptcha-createaccount": "To protect the wiki against automated account creation, we kindly ask you to solve the following CAPTCHA:", + "renocaptcha-createaccount-fail": "It seems you haven't solved the CAPTCHA.", + "renocaptcha-create": "To protect the wiki against automated page creation, we kindly ask you to solve the following CAPTCHA:", + "renocaptcha-noscript": "Unhappily you have disabled JavaScript, so we can't recognize automatically, if you're a human or not. Please solve the CAPTCHA above and copy the resulting text into the following textarea:", + "renocaptcha-help": "Please solve a ReCaptcha NoCaptcha challenge and return the response value as captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Field from the ReCaptcha widget." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/es.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/es.json new file mode 100644 index 00000000..c0ff07d7 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/es.json @@ -0,0 +1,14 @@ +{ + "@metadata": { + "authors": [ + "Macofe" + ] + }, + "renocaptcha-edit": "Para proteger el wiki contra el spam automatizado, te pedimos que resuelvas el siguiente CAPTCHA:", + "renocaptcha-addurl": "Tu edición incluye enlaces externos nuevos. Para proteger el wiki contra el spam automatizado, te pedimos que resuelvas el siguiente CAPTCHA:", + "renocaptcha-badlogin": "Para proteger el wiki contra el descifrado automatizado de contraseñas, te pedimos que resuelvas el siguiente CAPTCHA:", + "renocaptcha-createaccount": "Para proteger el wiki contra la creación automatizada de cuentas, te pedimos que resuelvas el siguiente CAPTCHA:", + "renocaptcha-createaccount-fail": "Parece que no has resuelto el CAPTCHA.", + "renocaptcha-create": "Para proteger el wiki contra la creación automatizada de páginas, te pedimos que resuelvas el siguiente CAPTCHA:", + "renocaptcha-noscript": "Por desgracia has desactivado JavaScript, por lo que no se puede reconocer automáticamente, si eres un humano o no. Resuelve el CAPTCHA de arriba y copia el texto resultante en el siguiente cuadro:" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/fr.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/fr.json new file mode 100644 index 00000000..b3ba902e --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/fr.json @@ -0,0 +1,19 @@ +{ + "@metadata": { + "authors": [ + "Wladek92", + "Orlodrim", + "Gomoko", + "Urhixidur" + ] + }, + "renocaptcha-edit": "Pour protéger le wiki contre les pourriels de modification automatique, nous vous demandons de bien vouloir résoudre le CAPTCHA suivant :", + "renocaptcha-addurl": "Votre édition comprend de nouveaux liens externes. Pour protéger le wiki contre les pourriels automatisés, nous vous demandons de bien vouloir résoudre le CAPTCHA suivant :", + "renocaptcha-badlogin": "Pour protéger le wiki contre le craquage automatisé des mots de passe, nous vous prions de bien vouloir résoudre le CAPTCHA suivant :", + "renocaptcha-createaccount": "Pour protéger le wiki contre la création automatisée des pages, nous vous prions de bien vouloir résoudre le CAPTCHA suivant:", + "renocaptcha-createaccount-fail": "Il semble que vous n'ayiez pas résolu le CAPTCHA.", + "renocaptcha-create": "Pour protéger le wiki contre la création automatisée de pages, nous vous prions de bien vouloir résoudre le CAPTCHA suivant:", + "renocaptcha-noscript": "Malheureusement, vous avez désactivé JavaScript, donc nous ne pouvons pas reconnaître automatiquement, si vous êtes un humain ou pas. Veuillez résoudre le CAPTCHA ci-dessus et copiez le texte qui en résulte dans la zone de texte suivante :", + "renocaptcha-help": "Veuillez résoudre un défi ReCaptcha NoCaptcha et renvoyer la valeur de la réponse comme captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Champ du formulaire ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/gl.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/gl.json new file mode 100644 index 00000000..84b0d397 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/gl.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Elisardojm" + ] + }, + "renocaptcha-edit": "Para protexer a wiki contra edicións de spam automatizadas, por iso pedímoslle amablemente que resolva o seguinte CAPTCHA:", + "renocaptcha-addurl": "A súa edición inclúe novas ligazóns externas. Para protexer a wiki contra o spam automático, pedímoslle amablemente que resolva o seguinte CAPTCHA:", + "renocaptcha-badlogin": "Para protexer a wiki contra a ruptura automática de contrasinais, pedímoslle amablemente que resolva o seguinte CAPTCHA:", + "renocaptcha-createaccount": "Para protexer a wiki contra a creación automática de contas, pedímoslle amablemente que resolva o seguinte CAPTCHA:", + "renocaptcha-createaccount-fail": "Parece que non resolveu o CAPTCHA.", + "renocaptcha-create": "Para protexer a wiki contra a creación automática de páxinas, pedímoslle amablemente que resolva o seguinte CAPTCHA:", + "renocaptcha-noscript": "Desafortunadamente desactivou o JavaScript, polo que non podemos recoñecer automaticamente se vostede é unha persoa ou non. Por favor, resolva o CAPTCHA de arriba e copie o texto coa solución na seguinte área de texto:", + "renocaptcha-help": "Por favor, resolva o enigma ReCaptcha NoCaptcha e devolva os valores de resposta como captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Campo do formulario ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ht.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ht.json new file mode 100644 index 00000000..6ecc8918 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ht.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Bfpage" + ] + }, + "renocaptcha-createaccount-fail": "Li sanble ou pa te rezoud CAPTCHA la.", + "renocaptcha-create": "Pou pwoteje wiki sa a nan paj kreyasyon fè pa yon machin oswa pwogram otomatik ki fonksyone, nou dous mande w yo rezoud CAPTCHA sa a:" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/hu.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/hu.json new file mode 100644 index 00000000..7587188b --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/hu.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Tacsipacsi", + "Máté" + ] + }, + "renocaptcha-edit": "Az automatizált spamek megelőzése miatt kérjük, oldd meg a következő CAPTCHA-t:", + "renocaptcha-addurl": "A szerkesztésed új külső hivatkozásokat tartalmaz. Az automatizált spamek megelőzése miatt kérjük, oldd meg a következő CAPTCHA-t:", + "renocaptcha-badlogin": "Hogy az automatizált jelszófeltörési kísérleteket megelőzzük, kérjük, oldd meg a következő CAPTCHA-t:", + "renocaptcha-createaccount": "A felhasználói fiókok automatizált létrehozásának elkerülésére kérjük, oldd meg a következő CAPTCHA-t:", + "renocaptcha-createaccount-fail": "Úgy tűnik, nem oldottad meg a CAPTCHA-t.", + "renocaptcha-create": "Az automatizált laplétrehozás megelőzése miatt kérjük, oldd meg a következő CAPTCHA-t:", + "renocaptcha-noscript": "Sajnos letiltottad a JavaScriptet, így nem tudjuk automatikusan felismerni, hogy ember vagy-e. Kérjük, oldd meg a fenti CAPTCHA-t, és másold be a megoldást az alábbi szövegmezőbe:", + "renocaptcha-help": "Oldd meg a ReCaptcha NoCaptcha-feladatot és küldd vissza a választ captchaWord paraméterként." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ia.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ia.json new file mode 100644 index 00000000..61ec038d --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ia.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "McDutchie" + ] + }, + "renocaptcha-edit": "Pro proteger le wiki contra le spam automatisate, per favor, resolve le CAPTCHA sequente:", + "renocaptcha-addurl": "Iste modification include nove ligamines externe. Pro proteger le wiki contra le spam automatisate, per favor, resolve le CAPTCHA sequente:", + "renocaptcha-badlogin": "Pro proteger le wiki contra le furto automatisate de contrasignos, per favor, resolve le CAPTCHA sequente:", + "renocaptcha-createaccount": "Pro proteger le wiki contra le creation automatisate de contos, per favor, resolve le CAPTCHA sequente:", + "renocaptcha-createaccount-fail": "Pare que tu non ha resolvite le CAPTCHA.", + "renocaptcha-create": "Pro proteger le wiki contra le creation automatisate de paginas, per favor, resolve le CAPTCHA sequente:", + "renocaptcha-noscript": "Infelicemente tu ha disactivate JavaScript, dunque nos non pote recognoscer automaticamente si tu es un humano o non. Per favor, resolve le CAPTCHA hic supra e copia le texto resultante in le quadro sequente:", + "renocaptcha-help": "Per favor, resolve un defia ReCaptcha NoCaptcha e retorna le valor del responsa como captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Campo del formulario ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/it.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/it.json new file mode 100644 index 00000000..260f1109 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/it.json @@ -0,0 +1,14 @@ +{ + "@metadata": { + "authors": [ + "Selven", + "Beta16" + ] + }, + "renocaptcha-edit": "Per proteggere il wiki contro modifiche automatizzate di spam, ti chiediamo gentilmente di risolvere il seguente CAPTCHA:", + "renocaptcha-addurl": "La tua modifica aggiunge nuovi collegamenti esterni. Per proteggere il wiki contro modifiche automatizzate di spam, ti chiediamo gentilmente di risolvere il seguente CAPTCHA:", + "renocaptcha-badlogin": "Per proteggere il wiki contro tentativi automatizzati di violazione password, ti chiediamo gentilmente di risolvere il seguente CAPTCHA:", + "renocaptcha-createaccount": "Per proteggere il wiki contro la creazione automatizzata di utenze, ti chiediamo gentilmente di risolvere il seguente CAPTCHA:", + "renocaptcha-createaccount-fail": "Sembra che non hai risolto il CAPTCHA.", + "renocaptcha-create": "Per proteggere il wiki contro la creazione automatizzata di pagine, ti chiediamo gentilmente di risolvere il seguente CAPTCHA:" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ja.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ja.json new file mode 100644 index 00000000..fcecaaed --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ja.json @@ -0,0 +1,12 @@ +{ + "@metadata": { + "authors": [ + "Ayame" + ] + }, + "renocaptcha-edit": "Wikiを自動編集スパムから保護するために、下のチェックボックスをクリックしてください。", + "renocaptcha-addurl": "あなたは新しい外部リンクを追加しました。Wikiを自動投稿スパムから保護するために、下のチェックボックスをクリックしてください。", + "renocaptcha-badlogin": "あなたのアカウントを攻撃から保護するために、下のチェックボックスをクリックしてください。", + "renocaptcha-createaccount": "Wikiをアカウント自動作成から保護するために、下のチェックボックスをクリックしてください。", + "renocaptcha-create": "Wikiを記事の自動作成から保護するために、下のチェックボックスをクリックしてください。" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ko.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ko.json new file mode 100644 index 00000000..ac1bdc32 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ko.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Hwangjy9", + "Yearning", + "아라" + ] + }, + "renocaptcha-edit": "자동 편집 스팸으로부터 위키를 보호하기 위해, 다음 CAPTCHA를 풀어주세요:", + "renocaptcha-addurl": "편집에 새로운 바깥 고리가 포함되어 있습니다. 자동 스팸으로부터 위키를 보호하기 위해, 다음 CAPTCHA를 풀어주세요:", + "renocaptcha-badlogin": "자동화된 비밀번호 깨기로부터 위키를 보호하기 위해, 다음 CAPTCHA를 풀어주세요:", + "renocaptcha-createaccount": "자동 계정 만들기로부터 위키를 보호하기 위해, 다음 CAPTCHA를 풀어주세요:", + "renocaptcha-createaccount-fail": "보안문자가 틀렸습니다.", + "renocaptcha-create": "자동 문서 만들기로부터 위키를 보호하기 위해, 다음 CAPTCHA를 풀어주세요:", + "renocaptcha-noscript": "당신은 자바스크립트를 비활성화하여 저희는 당신이 사람인지 자동으로 판별하지 못합니다. 다음 글상자에 위 보안문자를 입력하세요:" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/lb.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/lb.json new file mode 100644 index 00000000..09884e6e --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/lb.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Robby" + ] + }, + "renocaptcha-createaccount-fail": "Et schéngt wéi wann Dir de CAPTCHA net geléist hätt." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/lij.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/lij.json new file mode 100644 index 00000000..41077744 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/lij.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Giromin Cangiaxo" + ] + }, + "renocaptcha-edit": "Pe proteze a wiki contra e modiffiche aotomatizæ de spam, te domandemmo gentilmente de resciorve o seguente CAPTCHA:", + "renocaptcha-addurl": "A to modiffica a l'azonze di noeuvi inganci esterni. Pe proteze a wiki da-o spam aotomatizou, te domandemmo gentilmente de resciorve o seguente CAPTCHA:", + "renocaptcha-badlogin": "Pe proteze a wiki da-a sforçatua aotomatizâ de password, te domandemmo gentilmente de resciorve o seguente CAPTCHA:", + "renocaptcha-createaccount": "Pe proteze a wiki da-a creaçion aotomatizâ de noeuve utençe, te domandemmo gentilmente de resciorve o seguente CAPTCHA:", + "renocaptcha-createaccount-fail": "Pâ che ti no t'aggi resciorto o CAPTCHA.", + "renocaptcha-create": "Pe proteze a wiki da-a creaçion aotomatizâ de paggine, te domandemmo gentilmente de resciorve o seguente CAPTCHA:", + "renocaptcha-noscript": "Purtroppo t'hæ disattivou o JavaScript e no poemo riconosce aotomaticamente se t'ê uman o no. Pe piaxei resciorvi o CAPTCHA chì de d'ato e coppia o scrito risultante inta casella chì aproeuvo.", + "renocaptcha-help": "Pe piaxei resciorvi a sfidda ReCaptcha NoCaptcha e riporta o valô de risposta comme captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Campo da-o widget ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/lt.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/lt.json new file mode 100644 index 00000000..5cb7fe4c --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/lt.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Eitvys200" + ] + }, + "renocaptcha-edit": "Kad apsaugotume vikį nuo automatinio keitimų šlamšto, prašome išspręsti šį CAPTCHA:", + "renocaptcha-addurl": "Jūsų keitime yra naujų išorinių nuorodų. Kad apsaugotume vikį nuo automatinio šlamšto, prašome išspręsti šį CAPTCHA:", + "renocaptcha-badlogin": "Kad apsaugotume vikį nuo automatinio slaptažodžių spėjimo, prašome išspręsti šį CAPTCHA:", + "renocaptcha-createaccount": "Kad apsaugotume vikį nuo automatinio paskyrų kūrimo, prašome išspręsti šį CAPTCHA:", + "renocaptcha-createaccount-fail": "Atrodo, kad jūs neišsprendėte CAPTCHA.", + "renocaptcha-create": "Kad apsaugotume vikį nuo automatinio puslapių kūrimo, prašome išspręsti šį CAPTCHA:", + "renocaptcha-noscript": "Deja, jūs išjungėte JavaScript, todėl negalime automatiškai atpažinti ar esate žmogus ar ne. Prašome išspręsti CAPTCHA, esantį aukščiau, ir nukopijuoti atsiradusį tekstą į šį teksto lauką:", + "renocaptcha-help": "Prašome išspręsti ReCaptcha NoCaptcha iššūkį ir gražinti atsakymo reikšmę kaip captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Laukas iš ReCaptcha valdiklio." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/mk.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/mk.json new file mode 100644 index 00000000..ed14aec4 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/mk.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Bjankuloski06" + ] + }, + "renocaptcha-edit": "Со цел да го заштитиме викито од автоматизирани спам-уредувања, би ве замолиле да го решите прикажаното на сликичката:", + "renocaptcha-addurl": "Во уредувањето имате ставено нови надворешни врски. Со цел да го заштитиме викито од автоматизиран спам, би ве замолиле да го решите прикажаното на сликичката:", + "renocaptcha-badlogin": "Со цел да го заштитиме викито од автоматизирано пробивање на лозинки, би ве замолиле да го решите прикажаното на сликичката:", + "renocaptcha-createaccount": "Со цел да го заштитиме викито од автоматизирано создавање на сметки, би ве замолиле да го решите прикажаното на сликичката:", + "renocaptcha-createaccount-fail": "Го немате решено прикажаното на сликичката.", + "renocaptcha-create": "Со цел да го заштитиме викито од автоматизирано создавање на страници, би ве замолиле да го решите прикажаното на сликичката:", + "renocaptcha-noscript": "За несреќа, ја имате исклучено JavaScript, па затоа не можеме автоматски да одредиме дали сте човек или не. Решете го прикажаното на сликичката погоре и прекопирајте го добиеното во следново поле:", + "renocaptcha-help": "Решете го предизвикот ReCaptcha NoCaptcha и вратете а вреднсота на одговорот како captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Поле од поср. елемент ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/nb.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/nb.json new file mode 100644 index 00000000..edc7c4af --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/nb.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Jon Harald Søby" + ] + }, + "renocaptcha-edit": "For å beskytte wikien mot automatisk redigeringsspam ber vi deg å løse følgende CAPTCHA:", + "renocaptcha-addurl": "Redigeringen din inneholder nye eksterne lenker. For å beskytte wikien mot automatisk spam ber vi deg løse følgende CAPTCHA:", + "renocaptcha-badlogin": "For å beskytte wikien mot automatisk passordknekking ber vi deg løse følgende CAPTCHA:", + "renocaptcha-createaccount": "For å beskytte wikien mot automatisk kontooppretting ber vi deg løse følgende CAPTCHA:", + "renocaptcha-createaccount-fail": "Det ser ut til at du ikke løste CAPTCHA-en.", + "renocaptcha-create": "For å beskytte wikien mot automatisk sideoppretting ber vi deg løse følgende CAPTCHA:", + "renocaptcha-noscript": "Du har dessverre slått av JavaScript, så vi kan ikke automatisk oppdage om du er et menneske eller ikke. Løs CAPTCHA-en ovenfor og kopier den resulterende teksten i følgende tekstboks:", + "renocaptcha-help": "Løs en ReCaptcha NoCaptcha-oppgave og returner svarverdien som captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Felt fra ReCaptcha-widgeten." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/pl.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/pl.json new file mode 100644 index 00000000..56263a4a --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/pl.json @@ -0,0 +1,13 @@ +{ + "@metadata": { + "authors": [ + "Chrumps" + ] + }, + "renocaptcha-edit": "W celu ochrony przed zautomatyzowanym spamem edycyjnym, proszę wpisać poniższy tekst CAPTCHA:", + "renocaptcha-addurl": "Wprowadzony przez Ciebie tekst zawiera nowe linki zewnętrzne. W celu ochrony przed zautomatyzowanym spamem, proszę wpisać poniższy tekst CAPTCHA:", + "renocaptcha-badlogin": "W celu ochrony przed zautomatyzowanym łamaniem hasła, proszę wpisać poniższy tekst CAPTCHA:", + "renocaptcha-createaccount": "W celu ochrony przed zautomatyzowanym utworzeniem konta, proszę wpisać poniższy tekst CAPTCHA:", + "renocaptcha-createaccount-fail": "Wydaje się, że CAPTCHA nie został wpisany prawidłowo.", + "renocaptcha-create": "W celu ochrony przed zautomatyzowanym utworzeniem strony, proszę wpisać poniższy tekst CAPTCHA:" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/pt-br.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/pt-br.json new file mode 100644 index 00000000..eddee511 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/pt-br.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Eduardo Addad de Oliveira" + ] + }, + "renocaptcha-edit": "Para proteger a wiki contra a edição automatizada de spam, pedimos gentilmente que resolva o seguinte código CAPTCHA:", + "renocaptcha-addurl": "A sua edição inclui novas ligações externas. Para proteger a wiki contra o spam automático, pedimos gentilmente que resolva o seguinte código CAPTCHA:", + "renocaptcha-badlogin": "Para proteger a wiki da quebra de senha automatizada, pedimos que resolva o seguinte CAPTCHA:", + "renocaptcha-createaccount": "Para proteger a wiki contra a criação automatizada de conta, pedimos que resolva o seguinte código CAPTCHA:", + "renocaptcha-createaccount-fail": "Parece que não resolveu o código CAPTCHA ainda.", + "renocaptcha-create": "Para proteger a wiki contra a criação automatizada de páginas novas, pedimos que resolva o seguinte código CAPTCHA:", + "renocaptcha-noscript": "Infelizmente desativou o JavaScript, o que nos impossibilita de reconhecer automaticamente se é um humano ou não. Por favor, resolva o código CAPTCHA abaixo e copie o resultado para o campo de texto seguinte:", + "renocaptcha-help": "Resolva um desafio ReCaptcha NoCaptcha e devolva o valor da resposta como captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Campo do <i>widget</i> ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/pt.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/pt.json new file mode 100644 index 00000000..862cae31 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/pt.json @@ -0,0 +1,18 @@ +{ + "@metadata": { + "authors": [ + "Vitorvicentevalente", + "Fúlvio", + "Hamilton Abreu" + ] + }, + "renocaptcha-edit": "Para proteger a wiki contra a edição automatizada de spam, pedimos gentilmente que resolva o seguinte código CAPTCHA:", + "renocaptcha-addurl": "A sua edição inclui novas ligações externas. Para proteger a wiki contra o spam automático, pedimos gentilmente que resolva o seguinte código CAPTCHA:", + "renocaptcha-badlogin": "Para proteger a wiki da quebra de palavras-passe automatizada, pedimos que resolva o seguinte CAPTCHA:", + "renocaptcha-createaccount": "Para proteger a wiki contra a criação automatizada de conta, pedimos que resolva o seguinte código CAPTCHA:", + "renocaptcha-createaccount-fail": "Parece que não resolveu o código CAPTCHA ainda.", + "renocaptcha-create": "Para proteger a wiki contra a criação automatizada de páginas novas, pedimos que resolva o seguinte código CAPTCHA:", + "renocaptcha-noscript": "Infelizmente desativou o JavaScript, o que nos impossibilita de reconhecer automaticamente se é um humano ou não. Por favor, resolva o código CAPTCHA abaixo e copie o resultado para o campo de texto seguinte:", + "renocaptcha-help": "Resolva um desafio ReCaptcha NoCaptcha e devolva o valor da resposta como captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Campo do <i>widget</i> ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/qqq.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/qqq.json new file mode 100644 index 00000000..cf0c6cc0 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/qqq.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Liuxinyu970226" + ] + }, + "renocaptcha-edit": "Message above the CAPTCHA for edit action.\n{{related|ConfirmEdit-edit}}", + "renocaptcha-addurl": "Message above the CAPTCHA for addurl (user added new external links to the page) action.\n{{related|ConfirmEdit-addurl}}", + "renocaptcha-badlogin": "Message above the CAPTCHA for badlogin action.\n{{related|ConfirmEdit-badlogin}}", + "renocaptcha-createaccount": "Message above the CAPTCHA for createaccount (user creates a new account) action.\n{{related|ConfirmEdit-createaccount}}", + "renocaptcha-createaccount-fail": "Error message, when the CAPTCHA isn't solved correctly.\n{{related|ConfirmEdit-createaccount-fail}}", + "renocaptcha-create": "Message above the CAPTCHA for create (user creates a new page) action.\n{{related|ConfirmEdit-create}}", + "renocaptcha-noscript": "This messages is warning you have javascript disabled so you have to manualy input the text into the textbox.", + "renocaptcha-help": "Explanation of how to solve the CAPTCHA for API clients.", + "renocaptcha-apihelp-param-g-recaptcha-response": "{{doc-apihelp-param|description=the \"g-recaptcha-response\" parameter added by [[mw:Extension:ConfirmEdit]]|noseealso=1}}" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ru.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ru.json new file mode 100644 index 00000000..e899d141 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/ru.json @@ -0,0 +1,14 @@ +{ + "@metadata": { + "authors": [ + "Okras", + "Facenapalm" + ] + }, + "renocaptcha-edit": "В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:", + "renocaptcha-addurl": "Ваша правка содержит новые внешние ссылки. В целях защиты от автоматического спама просим вас решить следующую каптчу:", + "renocaptcha-badlogin": "В целях защиты от автоматического подбора пароля просим вас решить следующую каптчу:", + "renocaptcha-createaccount": "В целях защиты от автоматического создания учётных записей просим вас решить следующую каптчу:", + "renocaptcha-createaccount-fail": "Похоже, вы не разгадали капчу.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Поле от виджета ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/sv.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/sv.json new file mode 100644 index 00000000..0aa3b168 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/sv.json @@ -0,0 +1,18 @@ +{ + "@metadata": { + "authors": [ + "Jopparn", + "Lokal Profil", + "WikiPhoenix" + ] + }, + "renocaptcha-edit": "För att skydda wikin mot automatiserad redigeringsspam ber vi dig att lösa följande CAPTCHA:", + "renocaptcha-addurl": "Din redigering innehåller nya externa länkar. För att skydda wikin mot automatiserat spam ber vi dig att lösa följande CAPTCHA:", + "renocaptcha-badlogin": "För att skydda wikin mot automatiserat knäckande av lösenord, ber vi dig att lösa följande CAPTCHA:", + "renocaptcha-createaccount": "För att skydda wikin mot automatiserat kontoskapande, ber vi dig att lösa följande CAPTCHA:", + "renocaptcha-createaccount-fail": "Det verkar som att du inte har löst CAPTCHA.", + "renocaptcha-create": "För att skydda wikin mot automatiserat sidskapande, ber vi dig att lösa följande CAPTCHA:", + "renocaptcha-noscript": "Olyckligtvis har du inaktiverat JavaScript, så vi kan inte automatiskt känna igen om du är en människa eller inte. Vänligen lös CAPTCHAN ovan och kopiera den resulterande texten i följande textruta:", + "renocaptcha-help": "Lös en ReCaptcha NoCaptcha-utmaning och returnera lösningsvärdet som captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Fält från ReCaptcha-widgeten." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/uk.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/uk.json new file mode 100644 index 00000000..d95c8183 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/uk.json @@ -0,0 +1,17 @@ +{ + "@metadata": { + "authors": [ + "Ата", + "Piramidion" + ] + }, + "renocaptcha-edit": "Щоб захистити вікі від автоматичного спаму в редагуваннях, ми уклінно просимо Вас ввести CAPTCHA:", + "renocaptcha-addurl": "Ваше редагування містить нові зовнішні посилання. Щоб захистити вікі від автоматичного спаму в редагуваннях, ми уклінно просимо Вас ввести CAPTCHA:", + "renocaptcha-badlogin": "Щоб захистити вікі від автоматичного зламування паролів, ми уклінно просимо Вас ввести CAPTCHA:", + "renocaptcha-createaccount": "Щоб захистити вікі від автоматичного створення облікових записів, ми уклінно просимо Вас ввести CAPTCHA:", + "renocaptcha-createaccount-fail": "Схоже, Вам не вдалося ввести CAPTCHA.", + "renocaptcha-create": "Щоб захистити вікі від автоматичного створення сторінок, ми уклінно просимо Вас ввести CAPTCHA:", + "renocaptcha-noscript": "На жаль, Ви вимкнули JavaScript, і ми не можемо розпізнати автоматично, людина Ви чи ні. Будь ласка, введіть текст із CAPTCHA, що вгорі, у відповідне текстове поле:", + "renocaptcha-help": "Будь ласка, вирішіть завдання ReCaptcha NoCaptcha і введіть значення відповіді як captchaWord.", + "renocaptcha-apihelp-param-g-recaptcha-response": "Поле із віджета ReCaptcha." +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/zh-hans.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/zh-hans.json new file mode 100644 index 00000000..557d77cd --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/zh-hans.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Liuxinyu970226" + ] + }, + "renocaptcha-edit": "为保护wiki免于自动化编辑破坏,我们恳请您输入下面的验证码:", + "renocaptcha-addurl": "您的编辑包含新的外部链接。为保护wiki免于自动化破坏,我们恳请您输入下面的验证码:", + "renocaptcha-badlogin": "为保护wiki免于自动化密码破解,我们希望您输入下面的验证码:", + "renocaptcha-createaccount": "为保护wiki免于自动化账户创建,我们恳请您输入下面的验证码:", + "renocaptcha-createaccount-fail": "看起来您未输入正确的验证码。", + "renocaptcha-create": "为保护wiki免于自动化页面创建,我们恳请您输入下面的验证码:", + "renocaptcha-noscript": "不幸的是,您禁用了JavaScript,因此我们不能自动识别您是否是一个人。请识别上方的验证码,并将结果文本复制至下面的文本区域:", + "renocaptcha-help": "请识别ReCaptcha无验证码挑战,并将响应值作为验证码文本返回。", + "renocaptcha-apihelp-param-g-recaptcha-response": "来自ReCaptcha小部件的字段。" +} diff --git a/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/zh-hant.json b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/zh-hant.json new file mode 100644 index 00000000..38eb5d82 --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/ReCaptchaNoCaptcha/i18n/zh-hant.json @@ -0,0 +1,17 @@ +{ + "@metadata": { + "authors": [ + "A2093064", + "Kly" + ] + }, + "renocaptcha-edit": "為保護 wiki 防止自動化垃圾內容編輯程式,我們希望您輸入下面的驗證碼:", + "renocaptcha-addurl": "您的編輯使用了新的外部連結。為了防止自動化垃圾內容編輯程式,我們要麻煩您輸入在下面方塊中顯示的單字。", + "renocaptcha-badlogin": "為保護wiki免遭自動化的密碼破解,我們希望您輸入下面的驗證碼:", + "renocaptcha-createaccount": "為保護 wiki 防止自動化帳號建立程式,我們希望您輸入下面的驗證碼:", + "renocaptcha-createaccount-fail": "看來您的驗證碼似乎不正確。", + "renocaptcha-create": "為保護 wiki 防止自動化頁面建立程式,我們希望您輸入下面的驗證碼:", + "renocaptcha-noscript": "很遺憾地,因為您停用了 JavaScript 功能,因此我們無法自動識別出您是否是非機器人的正常個人用戶。請解決上方的驗證碼,並複製結果的文字內容到以下文字方框裡:", + "renocaptcha-help": "請解決 ReCaptcha NoCaptcha 的盤問並回傳作為驗證碼文字的回應值。", + "renocaptcha-apihelp-param-g-recaptcha-response": "自 ReCaptcha 小工具的欄位。" +} |