Merge "Remove excess getExternalLB() argument"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 18 Jul 2017 20:13:14 +0000 (20:13 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 18 Jul 2017 20:13:14 +0000 (20:13 +0000)
157 files changed:
INSTALL
RELEASE-NOTES-1.30
composer.json
docs/extension.schema.v1.json
docs/extension.schema.v2.json
includes/DefaultSettings.php
includes/EditPage.php
includes/XmlJsCode.php
includes/api/i18n/fr.json
includes/changes/ChangesListStringOptionsFilter.php
includes/diff/DifferenceEngine.php
includes/exception/MWExceptionRenderer.php
includes/htmlform/fields/HTMLSelectAndOtherField.php
includes/htmlform/fields/HTMLSelectOrOtherField.php
includes/installer/MysqlInstaller.php
includes/installer/SqliteInstaller.php
includes/installer/i18n/fr.json
includes/libs/MemoizedCallable.php
includes/rcfeed/RedisPubSubFeedEngine.php
includes/specialpage/ChangesListSpecialPage.php
includes/specials/SpecialRedirect.php
languages/i18n/af.json
languages/i18n/ar.json
languages/i18n/ast.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bho.json
languages/i18n/bn.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/cs.json
languages/i18n/cy.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/din.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/gl.json
languages/i18n/ha.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hif-latn.json
languages/i18n/hr.json
languages/i18n/hu.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/ie.json
languages/i18n/ilo.json
languages/i18n/inh.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jv.json
languages/i18n/ka.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/lij.json
languages/i18n/lt.json
languages/i18n/lv.json
languages/i18n/mg.json
languages/i18n/mk.json
languages/i18n/mr.json
languages/i18n/nb.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/oc.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sah.json
languages/i18n/sco.json
languages/i18n/sd.json
languages/i18n/shn.json
languages/i18n/sl.json
languages/i18n/so.json
languages/i18n/sq.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/su.json
languages/i18n/sv.json
languages/i18n/ta.json
languages/i18n/tg-cyrl.json
languages/i18n/th.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/uk.json
languages/i18n/vi.json
languages/i18n/yi.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
mw-config/config.js
package.json
resources/Resources.php
resources/src/jquery/jquery.badge.js
resources/src/jquery/jquery.colorUtil.js
resources/src/jquery/jquery.makeCollapsible.js
resources/src/jquery/jquery.mwExtension.js
resources/src/jquery/jquery.suggestions.js
resources/src/jquery/jquery.tablesorter.js
resources/src/mediawiki.action/mediawiki.action.edit.preview.js
resources/src/mediawiki.action/mediawiki.action.history.js
resources/src/mediawiki.action/mediawiki.action.view.metadata.js
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterGroup.js
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.SavedLinksListItemWidget.less
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterMenuHeaderWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.LiveUpdateButtonWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MenuSelectWidget.js
resources/src/mediawiki.special/mediawiki.special.contributions.js
resources/src/mediawiki.special/mediawiki.special.preferences.js
resources/src/mediawiki.special/mediawiki.special.search.commonsInterwikiWidget.js
resources/src/mediawiki.widgets.datetime/DateTimeFormatter.js
resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js
resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaSearchWidget.js
resources/src/mediawiki.widgets/mw.widgets.CalendarWidget.js
resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.js
resources/src/mediawiki/api/rollback.js
resources/src/mediawiki/api/upload.js
resources/src/mediawiki/htmlform/hide-if.js
resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
resources/src/mediawiki/mediawiki.RegExp.js
resources/src/mediawiki/mediawiki.Title.js
resources/src/mediawiki/mediawiki.debug.js
resources/src/mediawiki/mediawiki.feedback.js
resources/src/mediawiki/mediawiki.jqueryMsg.js
resources/src/mediawiki/mediawiki.js
resources/src/mediawiki/mediawiki.notification.js
resources/src/mediawiki/mediawiki.requestIdleCallback.js
resources/src/mediawiki/mediawiki.searchSuggest.js
resources/src/mediawiki/mediawiki.toc.js
resources/src/mediawiki/page/patrol.ajax.js
resources/src/mediawiki/page/rollback.js
tests/phan/stubs/wikidiff.php
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php
tests/phpunit/suite.xml
tests/qunit/data/testrunner.js
tests/qunit/suites/resources/jquery/jquery.byteLimit.test.js
tests/qunit/suites/resources/jquery/jquery.makeCollapsible.test.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js
tests/selenium/wdio.conf.js

diff --git a/INSTALL b/INSTALL
index 90da381..13c9c62 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -8,7 +8,7 @@ Starting with MediaWiki 1.2.0, it's possible to install and configure the wiki
 Required software:
 * Web server with PHP 5.5.9 or higher.
 * A SQL server, the following types are supported
-** MySQL 5.0.3 or higher
+** MySQL 5.5.8 or higher
 ** PostgreSQL 8.3 or higher
 ** SQLite 3.3.7 or higher
 ** Oracle 9.0.1 or higher
index 453368b..51f9764 100644 (file)
@@ -5,6 +5,10 @@ THIS IS NOT A RELEASE YET
 MediaWiki 1.30 is an alpha-quality branch and is not recommended for use in
 production.
 
+=== MySQL version requirement in 1.30 ===
+As of 1.30, MediaWiki now requires MySQL 5.5.8 or higher (see Compatibility
+section).
+
 === Configuration changes in 1.30 ===
 * The "C.UTF-8" locale should be used for $wgShellLocale, if available, to avoid
   unexpected behavior when code uses locale-sensitive string comparisons. For
@@ -37,6 +41,7 @@ production.
   enabled by setting $wgUsePigLatinVariant to true.
 * Added RecentChangesPurgeRows hook to allow extensions to purge data that
   depends on the recentchanges table.
+* Added JS config values wgDiffOldId/wgDiffNewId to the output of diff pages.
 
 === Languages updated in 1.30 ===
 
@@ -46,6 +51,7 @@ production.
 
 ==== Upgraded external libraries ====
 * mediawiki/mediawiki-codesniffer updated to 0.8.1.
+* wikimedia/composer-merge-plugin updated to 1.4.1.
 
 ==== New external libraries ====
 * The class \TestingAccessWrapper has been moved to the external library
@@ -147,7 +153,7 @@ Oracle and Microsoft SQL Server.
 
 The supported versions are:
 
-* MySQL 5.0.3 or later
+* MySQL 5.5.8 or later
 * PostgreSQL 8.3 or later
 * SQLite 3.3.7 or later
 * Oracle 9.0.1 or later
index 8262880..83fcda0 100644 (file)
@@ -33,7 +33,7 @@
                "wikimedia/base-convert": "1.0.1",
                "wikimedia/cdb": "1.4.1",
                "wikimedia/cldr-plural-rule-parser": "1.0.0",
-               "wikimedia/composer-merge-plugin": "1.4.0",
+               "wikimedia/composer-merge-plugin": "1.4.1",
                "wikimedia/html-formatter": "1.0.1",
                "wikimedia/ip-set": "1.1.0",
                "wikimedia/php-session-serializer": "1.0.4",
@@ -52,7 +52,7 @@
                "hamcrest/hamcrest-php": "^2.0",
                "jakub-onderka/php-parallel-lint": "0.9.2",
                "jetbrains/phpstorm-stubs": "dev-master#1b9906084d6635456fcf3f3a01f0d7d5b99a578a",
-               "justinrainbow/json-schema": "~3.0",
+               "justinrainbow/json-schema": "~5.2",
                "mediawiki/mediawiki-codesniffer": "0.8.1",
                "monolog/monolog": "~1.22.1",
                "nikic/php-parser": "2.1.0",
index f241cf5..7cfebca 100644 (file)
@@ -39,7 +39,7 @@
                "url": {
                        "type": "string",
                        "description": "URL to the homepage for the extension.",
-                       "format": "uri"
+                       "format": "uri-reference"
                },
                "description": {
                        "type": "string",
index 518a65c..75a4f2c 100644 (file)
@@ -40,7 +40,7 @@
                "url": {
                        "type": "string",
                        "description": "URL to the homepage for the extension.",
-                       "format": "uri"
+                       "format": "uri-reference"
                },
                "description": {
                        "type": "string",
index 6ce9a66..f35715e 100644 (file)
@@ -8301,6 +8301,20 @@ $wgUpdateRowsPerQuery = 100;
  */
 $wgExternalDiffEngine = false;
 
+/**
+ * wikidiff2 supports detection of changes in moved paragraphs.
+ * This setting controls the maximum number of paragraphs to compare before it bails out.
+ * Supported values:
+ * * 0: detection of moved paragraphs is disabled
+ * * int > 0: maximum number of paragraphs to compare
+ * Note: number of paragraph comparisons is in O(n^2).
+ * This setting is only effective if the wikidiff2 PHP/HHVM module is used as diffengine.
+ * See $wgExternalDiffEngine.
+ *
+ * @since 1.30
+ */
+$wgWikiDiff2MovedParagraphDetectionCutoff = 0;
+
 /**
  * Disable redirects to special pages and interwiki redirects, which use a 302
  * and have no "redirected from" link.
index 814c248..973327b 100644 (file)
@@ -422,8 +422,6 @@ class EditPage {
         * @param Article $article
         */
        public function __construct( Article $article ) {
-               global $wgOOUIEditPage;
-
                $this->mArticle = $article;
                $this->page = $article->getPage(); // model object
                $this->mTitle = $article->getTitle();
@@ -434,7 +432,7 @@ class EditPage {
                $handler = ContentHandler::getForModelID( $this->contentModel );
                $this->contentFormat = $handler->getDefaultFormat();
 
-               $this->oouiEnabled = $wgOOUIEditPage;
+               $this->oouiEnabled = $this->context->getConfig()->get( 'OOUIEditPage' );
        }
 
        /**
index d1cd037..35a0607 100644 (file)
  * interpret a given string as being a JavaScript expression, instead of string
  * data.
  *
- * Example:
+ * @par Example:
+ * @code
+ *     Xml::encodeJsVar( new XmlJsCode( 'a + b' ) );
+ * @encode
  *
- *    Xml::encodeJsVar( new XmlJsCode( 'a + b' ) );
- *
- * Returns "a + b".
+ * This returns "a + b".
  *
  * @note As of 1.21, XmlJsCode objects cannot be nested inside objects or arrays. The sole
  *       exception is the $args argument to Xml::encodeJsCall() because Xml::encodeJsVar() is
index 7913b8a..b73d537 100644 (file)
@@ -27,7 +27,8 @@
                        "Trial",
                        "Pols12",
                        "The RedBurn",
-                       "Umherirrender"
+                       "Umherirrender",
+                       "Thibaut120094"
                ]
        },
        "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Documentation]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Liste de diffusion]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annonces de l’API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bogues et demandes]\n</div>\n<strong>État :</strong> Toutes les fonctionnalités affichées sur cette page devraient fonctionner, mais l’API est encore en cours de développement et peut changer à tout moment. Inscrivez-vous à [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la liste de diffusion mediawiki-api-announce] pour être informé des mises à jour.\n\n<strong>Requêtes erronées :</strong> Si des requêtes erronées sont envoyées à l’API, un entête HTTP sera renvoyé avec la clé « MediaWiki-API-Error ». La valeur de cet entête et le code d’erreur renvoyé prendront la même valeur. Pour plus d’information, voyez [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Errors and warnings]].\n\n<strong>Test :</strong> Pour faciliter le test des requêtes de l’API, voyez [[Special:ApiSandbox]].",
        "apihelp-query+recentchanges-paramvalue-prop-ids": "Ajoute l’ID de la page, l’ID des modifications récentes et l’ID de l’ancienne et de la nouvelle révision.",
        "apihelp-query+recentchanges-paramvalue-prop-sizes": "Ajoute l’ancienne et la nouvelle taille de la page en octets.",
        "apihelp-query+recentchanges-paramvalue-prop-redirect": "Marque la modification si la page est une redirection.",
-       "apihelp-query+recentchanges-paramvalue-prop-patrolled": "Marque les modifications patrouillables comme patrouillées ou non.",
+       "apihelp-query+recentchanges-paramvalue-prop-patrolled": "Marque les modifications à relire comme relues ou pas.",
        "apihelp-query+recentchanges-paramvalue-prop-loginfo": "Ajoute les informations du journal (Id du journal, type de trace, etc.) aux entrées du journal.",
        "apihelp-query+recentchanges-paramvalue-prop-tags": "Liste les balises de l’entrée.",
        "apihelp-query+recentchanges-paramvalue-prop-sha1": "Ajoute la somme de contrôle du contenu pour les entrées associées à une révision.",
        "apihelp-query+recentchanges-param-toponly": "Lister uniquement les modifications qui sont de la dernière révision.",
        "apihelp-query+recentchanges-param-generaterevisions": "Utilisé comme générateur, générer des IDs de révision plutôt que des titres.\nLes entrées de modification récentes sans IDs de révision associé (par ex. la plupart des entrées de journaux) ne généreront rien.",
        "apihelp-query+recentchanges-example-simple": "Lister les modifications récentes",
-       "apihelp-query+recentchanges-example-generator": "Obtenir l’information de page sur les modifications récentes non patrouillées",
+       "apihelp-query+recentchanges-example-generator": "Obtenir l’information de page sur les modifications récentes non relues.",
        "apihelp-query+redirects-summary": "Renvoie toutes les redirections vers les pages données.",
        "apihelp-query+redirects-param-prop": "Quelles propriétés récupérer :",
        "apihelp-query+redirects-paramvalue-prop-pageid": "ID de page de chaque redirection.",
        "apihelp-query+usercontribs-paramvalue-prop-size": "Ajoute la nouvelle taille de la modification.",
        "apihelp-query+usercontribs-paramvalue-prop-sizediff": "Ajoute le delta de taille de la modification par rapport à son parent.",
        "apihelp-query+usercontribs-paramvalue-prop-flags": "Ajoute les marques de la modification.",
-       "apihelp-query+usercontribs-paramvalue-prop-patrolled": "Marque les modifications patrouillées.",
+       "apihelp-query+usercontribs-paramvalue-prop-patrolled": "Marque les modifications relues.",
        "apihelp-query+usercontribs-paramvalue-prop-tags": "Liste les balises de la modification.",
        "apihelp-query+usercontribs-param-show": "Afficher uniquement les éléments correspondant à ces critères, par ex. les modifications non mineures uniquement : <kbd>$2show=!minor</kbd>.\n\nSi <kbd>$2show=patrolled</kbd> ou <kbd>$2show=!patrolled</kbd> est positionné, les révisions plus anciennes que <var>[[mw:Special:MyLanguage/Manual:$wgRCMaxAge|$wgRCMaxAge]]</var> ($1 {{PLURAL:$1|seconde|secondes}}) ne seront pas affichées.",
        "apihelp-query+usercontribs-param-tag": "Lister uniquement les révisions marquées avec cette balise.",
        "apihelp-query+watchlist-paramvalue-prop-comment": "Ajoute le commentaire de la modification.",
        "apihelp-query+watchlist-paramvalue-prop-parsedcomment": "Ajoute le commentaire analysé de la modification.",
        "apihelp-query+watchlist-paramvalue-prop-timestamp": "Ajoute l’horodatage de la modification.",
-       "apihelp-query+watchlist-paramvalue-prop-patrol": "Marque les modifications patrouillées.",
+       "apihelp-query+watchlist-paramvalue-prop-patrol": "Marque les modifications relues.",
        "apihelp-query+watchlist-paramvalue-prop-sizes": "Ajoute les tailles ancienne et nouvelle de la page.",
        "apihelp-query+watchlist-paramvalue-prop-notificationtimestamp": "Ajoute l’horodatage de la dernière notification de la modification à l’utilisateur.",
        "apihelp-query+watchlist-paramvalue-prop-loginfo": "Ajoute l’information de trace le cas échéant.",
index 6754d67..76d0bef 100644 (file)
@@ -19,10 +19,12 @@ class ChangesListStringOptionsFilter extends ChangesListFilter {
         * @inheritdoc
         */
        public function isSelected( FormOptions $opts ) {
-               $values = explode(
-                       ChangesListStringOptionsFilterGroup::SEPARATOR,
-                       $opts[ $this->getGroup()->getName() ]
-               );
+               $option = $opts[ $this->getGroup()->getName() ];
+               if ( $option === ChangesListStringOptionsFilterGroup::ALL ) {
+                       return true;
+               }
+
+               $values = explode( ChangesListStringOptionsFilterGroup::SEPARATOR, $option );
                return in_array( $this->getName(), $values );
        }
 }
index 0b58cc1..95420d9 100644 (file)
@@ -377,6 +377,11 @@ class DifferenceEngine extends ContextSource {
                        }
                }
 
+               $out->addJsConfigVars( [
+                       'wgDiffOldId' => $this->mOldid,
+                       'wgDiffNewId' => $this->mNewid,
+               ] );
+
                # Make "next revision link"
                # Skip next link on the top revision
                if ( $samePage && !$this->mNewRev->isCurrent() ) {
@@ -908,10 +913,35 @@ class DifferenceEngine extends ContextSource {
                        $wgExternalDiffEngine = false;
                }
 
+               // Better external diff engine, the 2 may some day be dropped
+               // This one does the escaping and segmenting itself
                if ( function_exists( 'wikidiff2_do_diff' ) && $wgExternalDiffEngine === false ) {
-                       # Better external diff engine, the 2 may some day be dropped
-                       # This one does the escaping and segmenting itself
-                       $text = wikidiff2_do_diff( $otext, $ntext, 2 );
+                       $wikidiff2Version = phpversion( 'wikidiff2' );
+                       if (
+                               $wikidiff2Version !== false &&
+                               version_compare( $wikidiff2Version, '0.3.0', '>=' )
+                       ) {
+                               $text = wikidiff2_do_diff(
+                                       $otext,
+                                       $ntext,
+                                       2,
+                                       $this->getConfig()->get( 'WikiDiff2MovedParagraphDetectionCutoff' )
+                               );
+                       } else {
+                               // Don't pass the 4th parameter for compatibility with older versions of wikidiff2
+                               $text = wikidiff2_do_diff(
+                                       $otext,
+                                       $ntext,
+                                       2
+                               );
+
+                               // Log a warning in case the configuration value is set to not silently ignore it
+                               if ( $this->getConfig()->get( 'WikiDiff2MovedParagraphDetectionCutoff' ) > 0 ) {
+                                       wfLogWarning( '$wgWikiDiff2MovedParagraphDetectionCutoff is set but has no
+                                               effect since the used version of WikiDiff2 does not support it.' );
+                               }
+                       }
+
                        $text .= $this->debug( 'wikidiff2' );
 
                        return $text;
index 2eb821a..60d760f 100644 (file)
@@ -211,7 +211,7 @@ class MWExceptionRenderer {
                                "\nBacktrace:\n" .
                                MWExceptionHandler::getRedactedTraceAsString( $e ) . "\n";
                } else {
-                       return self::getShowBacktraceError( $e );
+                       return self::getShowBacktraceError( $e ) . "\n";
                }
        }
 
@@ -242,7 +242,7 @@ class MWExceptionRenderer {
                        $vars[] = '$wgShowDBErrorBacktrace = true;';
                }
                $vars = implode( ' and ', $vars );
-               return "Set $vars at the bottom of LocalSettings.php to show detailed debugging information\n";
+               return "Set $vars at the bottom of LocalSettings.php to show detailed debugging information.";
        }
 
        /**
index 9af60e5..38b487a 100644 (file)
@@ -63,8 +63,70 @@ class HTMLSelectAndOtherField extends HTMLSelectField {
                return "$select<br />\n$textbox";
        }
 
+       protected function getOOUIModules() {
+               return [ 'mediawiki.widgets.SelectWithInputWidget' ];
+       }
+
        public function getInputOOUI( $value ) {
-               return false;
+               $this->mParent->getOutput()->addModuleStyles( 'mediawiki.widgets.SelectWithInputWidget.styles' );
+
+               # TextInput
+               $textAttribs = [
+                       'id' => $this->mID . '-other',
+                       'name' => $this->mName . '-other',
+                       'size' => $this->getSize(),
+                       'class' => [ 'mw-htmlform-select-and-other-field' ],
+                       'data-id-select' => $this->mID,
+                       'value' => $value[2],
+               ];
+
+               $allowedParams = [
+                       'required',
+                       'autofocus',
+                       'multiple',
+                       'disabled',
+                       'tabindex',
+                       'maxlength',
+               ];
+
+               $textAttribs += OOUI\Element::configFromHtmlAttributes(
+                       $this->getAttributes( $allowedParams )
+               );
+
+               if ( $this->mClass !== '' ) {
+                       $textAttribs['classes'] = [ $this->mClass ];
+               }
+
+               # DropdownInput
+               $dropdownInputAttribs = [
+                       'name' => $this->mName,
+                       'id' => $this->mID,
+                       'options' => $this->getOptionsOOUI(),
+                       'value' => $value[1],
+               ];
+
+               $allowedParams = [
+                       'tabindex',
+                       'disabled',
+               ];
+
+               $dropdownInputAttribs += OOUI\Element::configFromHtmlAttributes(
+                       $this->getAttributes( $allowedParams )
+               );
+
+               if ( $this->mClass !== '' ) {
+                       $dropdownInputAttribs['classes'] = [ $this->mClass ];
+               }
+
+               return $this->getInputWidget( [
+                       'textinput' => $textAttribs,
+                       'dropdowninput' => $dropdownInputAttribs,
+                       'or' => false,
+               ] );
+       }
+
+       public function getInputWidget( $params ) {
+               return new Mediawiki\Widget\SelectWithInputWidget( $params );
        }
 
        /**
index bb41079..a009b28 100644 (file)
@@ -64,8 +64,80 @@ class HTMLSelectOrOtherField extends HTMLTextField {
                return "$select<br />\n$textbox";
        }
 
+       protected function shouldInfuseOOUI() {
+               return true;
+       }
+
+       protected function getOOUIModules() {
+               return [ 'mediawiki.widgets.SelectWithInputWidget' ];
+       }
+
        public function getInputOOUI( $value ) {
-               return false;
+               $this->mParent->getOutput()->addModuleStyles( 'mediawiki.widgets.SelectWithInputWidget.styles' );
+
+               $valInSelect = false;
+               if ( $value !== false ) {
+                       $value = strval( $value );
+                       $valInSelect = in_array(
+                               $value, HTMLFormField::flattenOptions( $this->getOptions() ), true
+                       );
+               }
+
+               # DropdownInput
+               $dropdownAttribs = [
+                       'id' => $this->mID,
+                       'name' => $this->mName,
+                       'options' => $this->getOptionsOOUI(),
+                       'value' => $valInSelect ? $value : 'other',
+                       'class' => [ 'mw-htmlform-select-or-other' ],
+               ];
+
+               $allowedParams = [
+                       'disabled',
+                       'tabindex',
+               ];
+
+               $dropdownAttribs += OOUI\Element::configFromHtmlAttributes(
+                       $this->getAttributes( $allowedParams )
+               );
+
+               # TextInput
+               $textAttribs = [
+                       'id' => $this->mID . '-other',
+                       'name' => $this->mName . '-other',
+                       'size' => $this->getSize(),
+                       'value' => $valInSelect ? '' : $value,
+               ];
+
+               $allowedParams = [
+                       'required',
+                       'autofocus',
+                       'multiple',
+                       'disabled',
+                       'tabindex',
+                       'maxlength',
+               ];
+
+               $textAttribs += OOUI\Element::configFromHtmlAttributes(
+                       $this->getAttributes( $allowedParams )
+               );
+
+               if ( $this->mClass !== '' ) {
+                       $textAttribs['classes'] = [ $this->mClass ];
+               }
+               if ( $this->mPlaceholder !== '' ) {
+                       $textAttribs['placeholder'] = $this->mPlaceholder;
+               }
+
+               return $this->getInputWidget( [
+                       'textinput' => $textAttribs,
+                       'dropdowninput' => $dropdownAttribs,
+                       'or' => true,
+               ] );
+       }
+
+       public function getInputWidget( $params ) {
+               return new Mediawiki\Widget\SelectWithInputWidget( $params );
        }
 
        /**
index cbb79f8..0250b6f 100644 (file)
@@ -51,7 +51,7 @@ class MysqlInstaller extends DatabaseInstaller {
 
        public $supportedEngines = [ 'InnoDB', 'MyISAM' ];
 
-       public $minimumVersion = '5.0.3';
+       public $minimumVersion = '5.5.8';
 
        public $webUserPrivs = [
                'DELETE',
index 3943374..0f639ba 100644 (file)
@@ -32,7 +32,8 @@ use Wikimedia\Rdbms\DBConnectionError;
  * @since 1.17
  */
 class SqliteInstaller extends DatabaseInstaller {
-       const MINIMUM_VERSION = '3.3.7';
+
+       public $minimumVersion = '3.3.7';
 
        /**
         * @var DatabaseSqlite
@@ -60,8 +61,8 @@ class SqliteInstaller extends DatabaseInstaller {
                $result = Status::newGood();
                // Bail out if SQLite is too old
                $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
-               if ( version_compare( $db->getServerVersion(), self::MINIMUM_VERSION, '<' ) ) {
-                       $result->fatal( 'config-outdated-sqlite', $db->getServerVersion(), self::MINIMUM_VERSION );
+               if ( version_compare( $db->getServerVersion(), $this->minimumVersion, '<' ) ) {
+                       $result->fatal( 'config-outdated-sqlite', $db->getServerVersion(), $this->minimumVersion );
                }
                // Check for FTS3 full-text search module
                if ( DatabaseSqlite::getFulltextSearchModule() != 'FTS3' ) {
index 2510a9e..9122967 100644 (file)
@@ -81,7 +81,7 @@
        "config-outdated-sqlite": "'''Attention''': vous avez SQLite $1, qui est inférieur à la version minimale requise $2. SQLite sera indisponible.",
        "config-no-fts3": "'''Attention :''' SQLite est compilé sans le module [//sqlite.org/fts3.html FTS3] ; les fonctions de recherche ne seront pas disponibles sur ce moteur.",
        "config-pcre-old": "'''Fatal :''' PCRE $1 ou ultérieur est nécessaire.\nVotre binaire PHP est lié avec PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Plus d’information sur PCRE].",
-       "config-pcre-no-utf8": "'''Erreur fatale''': Le module PCRE de PHP semble être compilé sans la prise en charge de PCRE_UTF8.\nMédiaWiki nécessite la gestion d’UTF-8 pour fonctionner correctement.",
+       "config-pcre-no-utf8": "<strong>Erreur fatale</strong>: le module PCRE de PHP semble être compilé sans la prise en charge de PCRE_UTF8.\nMédiaWiki a besoin de la gestion d’UTF-8 pour fonctionner correctement.",
        "config-memory-raised": "Le paramètre <code>memory_limit</code> de PHP était à $1, porté à $2.",
        "config-memory-bad": "'''Attention :''' Le paramètre <code>memory_limit</code> de PHP est à $1.\nCette valeur est probablement trop faible.\nIl est possible que l’installation échoue !",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] est installé",
index 6b4281f..01adeab 100644 (file)
@@ -1,4 +1,24 @@
 <?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Ori Livneh
+ */
+
 /**
  * APC-backed and APCu-backed function memoization
  *
  * MemoizedCallable::call( 'range', array( 5, 8 ) );  // same
  * @endcode
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Ori Livneh
  * @since 1.27
  */
 class MemoizedCallable {
index 4c011be..f0fcd7d 100644 (file)
  * 'rc'. If the URI contains a query string, its parameters will be parsed
  * as RedisConnectionPool options.
  *
- * @example
+ * @par Example:
+ * @code
  * $wgRCFeeds['redis'] = array(
  *      'formatter' => 'JSONRCFeedFormatter',
  *      'uri'       => "redis://127.0.0.1:6379/rc.$wgDBname",
  * );
+ * @encode
  *
  * @since 1.22
  */
index b85d272..645fbb2 100644 (file)
@@ -86,8 +86,6 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                                'filters' => [
                                        [
                                                'name' => 'hideliu',
-                                               'label' => 'rcfilters-filter-registered-label',
-                                               'description' => 'rcfilters-filter-registered-description',
                                                // rcshowhideliu-show, rcshowhideliu-hide,
                                                // wlshowhideliu
                                                'showHideSuffix' => 'showhideliu',
@@ -97,16 +95,11 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                                                ) {
                                                        $conds[] = 'rc_user = 0';
                                                },
-                                               'cssClassSuffix' => 'liu',
-                                               'isRowApplicableCallable' => function ( $ctx, $rc ) {
-                                                       return $rc->getAttribute( 'rc_user' );
-                                               },
+                                               'isReplacedInStructuredUi' => true,
 
                                        ],
                                        [
                                                'name' => 'hideanons',
-                                               'label' => 'rcfilters-filter-unregistered-label',
-                                               'description' => 'rcfilters-filter-unregistered-description',
                                                // rcshowhideanons-show, rcshowhideanons-hide,
                                                // wlshowhideanons
                                                'showHideSuffix' => 'showhideanons',
@@ -116,10 +109,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                                                ) {
                                                        $conds[] = 'rc_user != 0';
                                                },
-                                               'cssClassSuffix' => 'anon',
-                                               'isRowApplicableCallable' => function ( $ctx, $rc ) {
-                                                       return !$rc->getAttribute( 'rc_user' );
-                                               },
+                                               'isReplacedInStructuredUi' => true,
                                        ]
                                ],
                        ],
@@ -128,9 +118,26 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                                'name' => 'userExpLevel',
                                'title' => 'rcfilters-filtergroup-userExpLevel',
                                'class' => ChangesListStringOptionsFilterGroup::class,
-                               // Excludes unregistered users
-                               'isFullCoverage' => false,
+                               'isFullCoverage' => true,
                                'filters' => [
+                                       [
+                                               'name' => 'unregistered',
+                                               'label' => 'rcfilters-filter-user-experience-level-unregistered-label',
+                                               'description' => 'rcfilters-filter-user-experience-level-unregistered-description',
+                                               'cssClassSuffix' => 'user-unregistered',
+                                               'isRowApplicableCallable' => function ( $ctx, $rc ) {
+                                                       return !$rc->getAttribute( 'rc_user' );
+                                               }
+                                       ],
+                                       [
+                                               'name' => 'registered',
+                                               'label' => 'rcfilters-filter-user-experience-level-registered-label',
+                                               'description' => 'rcfilters-filter-user-experience-level-registered-description',
+                                               'cssClassSuffix' => 'user-registered',
+                                               'isRowApplicableCallable' => function ( $ctx, $rc ) {
+                                                       return $rc->getAttribute( 'rc_user' );
+                                               }
+                                       ],
                                        [
                                                'name' => 'newcomer',
                                                'label' => 'rcfilters-filter-user-experience-level-newcomer-label',
@@ -632,19 +639,10 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                $this->registerFiltersFromDefinitions( [ $unstructuredGroupDefinition ] );
 
                $userExperienceLevel = $this->getFilterGroup( 'userExpLevel' );
-
-               $registration = $this->getFilterGroup( 'registration' );
-               $anons = $registration->getFilter( 'hideanons' );
-
-               // This means there is a conflict between any item in user experience level
-               // being checked and only anons being *shown* (hideliu=1&hideanons=0 in the
-               // URL, or equivalent).
-               $userExperienceLevel->conflictsWith(
-                       $anons,
-                       'rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global',
-                       'rcfilters-filtergroup-user-experience-level-conflicts-unregistered',
-                       'rcfilters-filter-unregistered-conflicts-user-experience-level'
-               );
+               $registered = $userExperienceLevel->getFilter( 'registered' );
+               $registered->setAsSupersetOf( $userExperienceLevel->getFilter( 'newcomer' ) );
+               $registered->setAsSupersetOf( $userExperienceLevel->getFilter( 'learner' ) );
+               $registered->setAsSupersetOf( $userExperienceLevel->getFilter( 'experienced' ) );
 
                $categoryFilter = $changeTypeGroup->getFilter( 'hidecategorization' );
                $logactionsFilter = $changeTypeGroup->getFilter( 'hidelog' );
@@ -1337,15 +1335,35 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        $wgLearnerMemberSince,
                        $wgExperiencedUserMemberSince;
 
-               $LEVEL_COUNT = 3;
+               $LEVEL_COUNT = 5;
 
-               // If all levels are selected, all logged-in users are included (but no
-               // anons), so we can short-circuit.
+               // If all levels are selected, don't filter
                if ( count( $selectedExpLevels ) === $LEVEL_COUNT ) {
+                       return;
+               }
+
+               // both 'registered' and 'unregistered', experience levels, if any, are included in 'registered'
+               if (
+                       in_array( 'registered', $selectedExpLevels ) &&
+                       in_array( 'unregistered', $selectedExpLevels )
+               ) {
+                       return;
+               }
+
+               // 'registered' but not 'unregistered', experience levels, if any, are included in 'registered'
+               if (
+                       in_array( 'registered', $selectedExpLevels ) &&
+                       !in_array( 'unregistered', $selectedExpLevels )
+               ) {
                        $conds[] = 'rc_user != 0';
                        return;
                }
 
+               if ( $selectedExpLevels === [ 'unregistered' ] ) {
+                       $conds[] = 'rc_user = 0';
+                       return;
+               }
+
                $tables[] = 'user';
                $join_conds['user'] = [ 'LEFT JOIN', 'rc_user = user_id' ];
 
@@ -1373,24 +1391,39 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        IDatabase::LIST_AND
                );
 
+               $conditions = [];
+
+               if ( in_array( 'unregistered', $selectedExpLevels ) ) {
+                       $selectedExpLevels = array_diff( $selectedExpLevels, [ 'unregistered' ] );
+                       $conditions[] = 'rc_user = 0';
+               }
+
                if ( $selectedExpLevels === [ 'newcomer' ] ) {
-                       $conds[] = "NOT ( $aboveNewcomer )";
+                       $conditions[] = "NOT ( $aboveNewcomer )";
                } elseif ( $selectedExpLevels === [ 'learner' ] ) {
-                       $conds[] = $dbr->makeList(
+                       $conditions[] = $dbr->makeList(
                                [ $aboveNewcomer, "NOT ( $aboveLearner )" ],
                                IDatabase::LIST_AND
                        );
                } elseif ( $selectedExpLevels === [ 'experienced' ] ) {
-                       $conds[] = $aboveLearner;
+                       $conditions[] = $aboveLearner;
                } elseif ( $selectedExpLevels === [ 'learner', 'newcomer' ] ) {
-                       $conds[] = "NOT ( $aboveLearner )";
+                       $conditions[] = "NOT ( $aboveLearner )";
                } elseif ( $selectedExpLevels === [ 'experienced', 'newcomer' ] ) {
-                       $conds[] = $dbr->makeList(
+                       $conditions[] = $dbr->makeList(
                                [ "NOT ( $aboveNewcomer )", $aboveLearner ],
                                IDatabase::LIST_OR
                        );
                } elseif ( $selectedExpLevels === [ 'experienced', 'learner' ] ) {
-                       $conds[] = $aboveNewcomer;
+                       $conditions[] = $aboveNewcomer;
+               } elseif ( $selectedExpLevels === [ 'experienced', 'learner', 'newcomer' ] ) {
+                       $conditions[] = 'rc_user != 0';
+               }
+
+               if ( count( $conditions ) > 1 ) {
+                       $conds[] = $dbr->makeList( $conditions, IDatabase::LIST_OR );
+               } elseif ( count( $conditions ) === 1 ) {
+                       $conds[] = reset( $conditions );
                }
        }
 }
index 1d1df6a..3273046 100644 (file)
@@ -33,16 +33,18 @@ class SpecialRedirect extends FormSpecialPage {
        /**
         * The type of the redirect (user/file/revision)
         *
+        * Example value: `'user'`
+        *
         * @var string $mType
-        * @example 'user'
         */
        protected $mType;
 
        /**
         * The identifier/value for the redirect (which id, which file)
         *
+        * Example value: `'42'`
+        *
         * @var string $mValue
-        * @example '42'
         */
        protected $mValue;
 
index 97661f6..5a056e6 100644 (file)
        "recentchanges-legend-heading": "<strong>Sleutel:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sien ook die [[Special:NewPages|lys van nuwe bladsye]])",
        "recentchanges-submit": "Wys",
-       "rcfilters-filter-registered-label": "Geregistreer",
-       "rcfilters-filter-registered-description": "Aangemelde redigeerders.",
-       "rcfilters-filter-unregistered-label": "Ongeregistreer",
-       "rcfilters-filter-unregistered-description": "Redigeerders wat nie aangemeld is nie.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Nuwelinge",
        "rcfilters-filter-user-experience-level-newcomer-description": "Minder as 10 wysigings en 4 dae van aktiwiteit.",
        "rcnotefrom": "Wysigings sedert <strong>$2</strong> (maksimum van <strong>$1</strong> word gewys).",
index c974d75..8cacd78 100644 (file)
        "rcfilters-state-message-subset": "هذا المرشح ليس له تأثير لأن نتائجه متضمنة في {{PLURAL:$2|المرشح التالي|المرشحات التالية}} الأكثر عمومية (جرب التعليم لتمييزه): $1",
        "rcfilters-state-message-fullcoverage": "اختيار كل المرشحات في مجموعة له نفس التأثير كاختيار لا شيء، لذا فهذا المرشح ليس له تأثير. المجموعة تتضمن: $1",
        "rcfilters-filtergroup-registration": "تسجيل المستخدم",
-       "rcfilters-filter-registered-label": "مسجل",
-       "rcfilters-filter-registered-description": "المحررون مسجلو الدخول.",
-       "rcfilters-filter-unregistered-label": "غير مسجل",
-       "rcfilters-filter-unregistered-description": "المحررون غير مسجلي الدخول.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "هذا المرشح يتعارض مع {{PLURAL:$2|مرشح الخبرة التالي|مرشحات الخبرة التالية}}، و {{PLURAL:$2|الذي يعطي|التي تعطي}} فقط المستخدمين المسجلين: $1",
        "rcfilters-filtergroup-authorship": "ملكية التعديلات",
        "rcfilters-filter-editsbyself-label": "تعديلاتك الشخصية",
index 4062b17..0b82fa8 100644 (file)
        "rcfilters-state-message-subset": "Esti filtru nun fai efeutu porque los resultaos inclúyense ente los {{PLURAL:$2|del siguiente filtru más ampliu|de los siguientes filtros más amplios}} (tenta resaltalu pa estremalu): $1",
        "rcfilters-state-message-fullcoverage": "Seleicionar tolos filtros d'un grupu ye igual que nun seleicionar nengunu, de manera qu'esti filtru nun tien efeutu. El grupu incluye: $1",
        "rcfilters-filtergroup-registration": "Rexistru del usuariu",
-       "rcfilters-filter-registered-label": "Rexistraos",
-       "rcfilters-filter-registered-description": "Editores coneutaos.",
-       "rcfilters-filter-unregistered-label": "Non rexistraos",
-       "rcfilters-filter-unregistered-description": "Editores ensin coneutar.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Esti filtru fai conflictu {{PLURAL:$2|col siguiente filtru|colos siguientes filtros}} Experience, qu'{{PLURAL:$2|alcuentra|alcuentren}} sólo usuarios rexistraos: $1",
        "rcfilters-filtergroup-authorship": "Autoría de la contribución",
        "rcfilters-filter-editsbyself-label": "Cambios de to",
index ec0cdb2..e3ad77f 100644 (file)
        "rcfilters-state-message-subset": "Гэты фільтар ня мае эфэкту, бо яго вынікі ўключаныя ў вынікі больш {{PLURAL:$2|шырокага фільтру|шырокіх фільтраў}} (паспрабуйце вылучэньне, каб вызначыць яго): $1",
        "rcfilters-state-message-fullcoverage": "Выбар усіх фільтраў у групе — тое ж самае, што і выбар ніводнага, адпаведна, гэты фільтар ня мае эфэкту. Група ўключае: $1",
        "rcfilters-filtergroup-registration": "Рэгістрацыя ўдзельнікаў",
-       "rcfilters-filter-registered-label": "Зарэгістраваныя",
-       "rcfilters-filter-registered-description": "Рэдактары, якія ўвайшлі ў сыстэму.",
-       "rcfilters-filter-unregistered-label": "Незарэгістраваныя",
-       "rcfilters-filter-unregistered-description": "Рэдактары, якія не ўвайшлі ў сыстэму",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Гэты фільтар канфліктуе з {{PLURAL:$2|1=наступным фільтрам|наступнымі фільтрамі}} дасьведчаных удзельнікаў, {{PLURAL:$2|1=які знаходзіць|якія знаходзяць}} толькі зарэгістраваных удзельнікаў: $1",
        "rcfilters-filtergroup-authorship": "Аўтарства ўнёску",
        "rcfilters-filter-editsbyself-label": "Зьмены, зробленыя вамі",
        "removecredentials-invalidsubpage": "$1 не зьяўляецца слушным тыпам уліковых зьвестак.",
        "removecredentials-success": "Вашыя ўліковыя зьвесткі былі выдаленыя.",
        "credentialsform-provider": "Тып уліковых зьвестак:",
-       "credentialsform-account": "Назва рахунку:"
+       "credentialsform-account": "Назва рахунку:",
+       "cannotlink-no-provider-title": "Няма рахункаў для далучэньня",
+       "cannotlink-no-provider": "Няма рахункаў для далучэньня."
 }
index 9cd29ac..4275cec 100644 (file)
        "rcfilters-highlightmenu-title": "Выбраць колер",
        "rcfilters-highlightmenu-help": "Выбраць колер для падсвечвання уласцівасці",
        "rcfilters-filtergroup-registration": "Рэгістрацыя ўдзельніка",
-       "rcfilters-filter-registered-label": "Зарэгістраваны",
-       "rcfilters-filter-registered-description": "Залагіненыя рэдактары",
-       "rcfilters-filter-unregistered-label": "Незарэгістраваны",
        "rcfilters-filter-editsbyself-label": "Вашыя змены",
        "rcfilters-filter-editsbyself-description": "Ваш унёсак",
        "rcfilters-filter-editsbyother-label": "Змены іншых удзельнікаў",
index 0d966e0..979c607 100644 (file)
        "rcfilters-highlightmenu-help": "Изберете цвят за отбелязване на свойството",
        "rcfilters-filterlist-noresults": "Не са намерени филтри",
        "rcfilters-filtergroup-registration": "Регистрация на потребители",
-       "rcfilters-filter-registered-label": "Регистрирани",
-       "rcfilters-filter-registered-description": "Влезли в системата редактори.",
-       "rcfilters-filter-unregistered-label": "Нерегистрирани",
-       "rcfilters-filter-unregistered-description": "Редактори, които не са влезли в системата.",
        "rcfilters-filtergroup-authorship": "Авторство на редакциите",
        "rcfilters-filter-editsbyself-label": "Ваши редакции",
        "rcfilters-filter-editsbyself-description": "Ваши редакции.",
index 696ce6d..c63d81d 100644 (file)
        "navigation-heading": "नेविगेशन मेनू",
        "errorpagetitle": "खराबी",
        "returnto": "$1 पर लवटीं।",
-       "tagline": "भोजपुरी {{SITENAME}} से",
+       "tagline": "{{SITENAME}} से",
        "help": "मदद",
        "search": "खोज",
        "search-ignored-headings": " #<!-- एह लाइन के बिलकुल अइसहीं छोड़ दीं --> <pre>\n# हेडिंग जिनहन पर खोज करत समय धियान ना दिहल जाई।\n# एह हेडिंग वाला पन्ना जइसहीं सूचीबद्ध होखी, बदलाव प्रभावी हो जइहें।\n# आप एगो खाली संपादन (null edit) कइ के दुबारा सूचीकरण के लागू कर सकत बानी।\n# एकर सिंटेक्स अइसे बा कि:\n#   * Everything from a \"#\" character to the end of the line is a comment.\n#   * Every non-blank line is the exact title to ignore, case and everything.\nसंदर्भ\nबाहरी कड़ी\nइहो देखल जाय\n #</pre> <!-- एह लाइन के बिलकुल अइसहीं छोड़ दीं -->",
        "blockedtext": "'''राउर सदस्यनाम अथवा आइ॰पी पता अवरोधित कर दिहल गईल बा ।'''\n\nअवरोध $1 द्वारा करल गईल रहल।\nअवरोध के कारण बा ''$2''\n\n* अवरोध के आरंभ: $8\n* अवरोध के समाप्ति: $6\n* अवरोधित इकाई: $7\n\nइ अवरोध के बारे में चर्चा करे खातिर रउआ $1 या केहु अन्य [[{{MediaWiki:Grouppage-sysop}}|प्रबन्धक]] से संपर्क कर सकत बानी।\nअगर रउआ [[Special:Preferences|आपन वरीयता]] में वैद्य ई-मेल पता प्रविष्ट कइले होखब तबे 'इ प्रयोक्ता के ई-मेल भेजीं' वाला सुविधा के प्रयोग कर सकत बानी अउर रउआ एकर प्रयोग करे से ना रोकल गईल होखे।\nराउर हाल के आइ॰पी पता $3 ह अउर अवरोध क्रमांक #$5 ह।\nआपन कउनो भी प्रश्न में कृपया इ सब जानकारी भी शामिल करब।",
        "autoblockedtext": "राउर आइ॰पी पता अपने आप अवरुद्ध हो गईल बा काहे कि एकर प्रयोग केहु अन्य सदस्य द्वारा होत रहल,\nजे $1 द्वारा अवरोधित करल गईल रहलन। \nअवरोध करे के कारण बा:\n\n:''$2''\n\n* अवरोध प्रारंभ: $8\n* अवरोध समाप्ति: $6\n* अवरोधित सदस्य: $7\n\nअवरोध के चर्चा करे खातिर रउआ $1 या केहु अन्य [[{{MediaWiki:Grouppage-sysop}}|प्रबंधक]] से संपर्क कर सकत बानी।\n\nकृपया ध्यान रहे कि यदि रउआ \"इ सदस्य के ई-मेल भेजीं\" वाला सुविधा के प्रयोग करे के चाहत बानी त राउर [[Special:Preferences|वरीयता]] में वैद्य ई-मेल पता होखे के चाहीं अउर एकर प्रयोग रउआ खातिर अवरोधित ना भईल होखे।\n\nराउर हाल के आइ॰पी पता $3 ह अउर अवरोध क्रमांक #$5 ह।\nआपन कउनो भी प्रश्न में कृपया इ सब जानकारी शामिल करब।",
        "systemblockedtext": "राउर खाता या आइपी पता के मीडियाविकि द्वारा ऑटोमेटिक रूप से रोक दिहल गइल बा।\nएकरा खातिर कारण दिहल गइल बा:\n\n\n:<em>$2</em>\n\n* रोक के सुरुआत: $8\n* रोक समाप्त होखी: $6\n* रोक लगावे वाला: $7\n\nराउर वर्तमान आइपी पता $3 बा।\nअगर कौनों सवाल करीं तब ऊपर बतावल सगरी जानकारी देईं।",
-       "blockednoreason": "à¤\95à¤\89नà¥\8b à¤\95ारण à¤\89लà¥\8dलà¥\87à¤\96ित à¤¨à¤\88à¤\96à¥\87",
-       "whitelistedittext": "रà¤\89à¤\86 à¤ªà¤¨à¥\8dना à¤¸à¤®à¥\8dपादन à¤\95रà¥\87 à¤\96ातिर $1 à¤\95रà¥\87 à¤\95à¥\87 à¤ªà¤¡à¤¼à¥\80।",
-       "confirmedittext": "सà¤\82पादन à¤\95रà¥\87 à¤¸à¥\87 à¤ªà¤¹à¤¿à¤²à¥\87 à¤\86पà¤\95à¥\87 à¤\85ापना à¤\88-मà¥\87ल à¤ªà¤¤à¤¾ à¤ªà¥\8dरमाणित à¤\95रावल à¤\9cरà¥\81रà¥\80 à¤¬à¤¾à¥¤\nà¤\95à¥\83पया à¤\86पन [[Special:Preferences|राà¤\89र à¤ªà¤¸à¤¨à¥\8dद]] à¤®à¥\87à¤\82 à¤\9cाà¤\95à¥\87 à¤\85ापन à¤\88-मà¥\87ल à¤ªà¤¤à¤¾ à¤¦à¤¿à¤¹à¥\80à¤\82 à¤\85à¤\89र à¤\89के प्रमाणित करीं।",
-       "nosuchsectiontitle": "à¤\96णà¥\8dड à¤¨à¤¾ à¤®à¤¿à¤² à¤¸à¤\95ल।",
-       "nosuchsectiontext": "à¤\86प à¤\8fà¤\97à¥\8b à¤\85à¤\87सन à¤\85नà¥\81भाà¤\97 à¤\95à¥\87 à¤¸à¤®à¥\8dपादन à¤\95रà¥\87 à¤\95à¥\87 à¤ªà¥\8dरयतà¥\8dन à¤\95र à¤°à¤¹à¤² à¤¬à¤¾à¤¨à¥\80 à¤\9cवन à¤\85सà¥\8dतितà¥\8dव à¤®à¥\87à¤\82 à¤¨à¤\87à¤\96à¥\87।\nसà¤\82भव à¤¬à¤¾ à¤\95ि à¤\9cब à¤\86प à¤ªà¤¨à¥\8dना à¤ªà¤¢à¤¤ à¤¯à¤¾ à¤¦à¥\87à¤\96त à¤°à¤¹à¤¨à¥\80 à¤¤à¤µà¤¨à¥\87 à¤\98ड़à¥\80 à¤\89 à¤\95à¥\87 à¤\85पनà¥\80 à¤\9cà¤\97ह à¤¸à¥\87 à¤¹à¤¿à¤²à¤¾à¤µà¤² à¤\97à¤\87ल à¤¹à¥\8bà¤\96à¥\87 à¤¯à¤¾ à¤¹à¤\9fा à¤¦à¤¿à¤¹à¤² à¤\97à¤\88ल à¤¹à¥\8bà¤\88।",
+       "blockednoreason": "à¤\95वनà¥\8b à¤\95ारण à¤¨à¤\87à¤\96à¥\87 à¤¬à¤¤à¤¾à¤µà¤² à¤\97à¤\87ल",
+       "whitelistedittext": "पनà¥\8dना à¤ªà¤° à¤¸à¤\82पादन à¤\95रà¥\87 à¤\96ातिर $1 à¤\95रà¥\80à¤\82।",
+       "confirmedittext": "सà¤\82पादन à¤\95रà¥\87 à¤¸à¥\87 à¤ªà¤¹à¤¿à¤²à¥\87 à¤\86पà¤\95à¥\87 à¤\86पन à¤\88मà¥\87ल à¤ªà¤¤à¤¾ à¤ªà¥\8dरमाणित à¤\95रावल à¤\9cरà¥\81रà¥\80 à¤¬à¤¾à¥¤\nà¤\86पन [[Special:Preferences|पसà¤\82द à¤¸à¥\87à¤\9fिà¤\82à¤\97]] à¤®à¥\87à¤\82 à¤\9cाà¤\95à¥\87 à¤\85ापन à¤\88मà¥\87ल à¤ªà¤¤à¤¾ à¤¸à¥\87à¤\9f à¤\95रà¥\80à¤\82 à¤\86 à¤\93à¤\95रा के प्रमाणित करीं।",
+       "nosuchsectiontitle": "à¤\96à¤\82ड à¤¨à¤¾ à¤®à¤¿à¤²à¤²",
+       "nosuchsectiontext": "à¤\86प à¤\8fà¤\97à¥\8b à¤\85à¤\87सन à¤\96à¤\82ड à¤\95à¥\87 à¤¸à¤\82पादन à¤\95रà¥\87 à¤\95à¥\87 à¤\95à¥\8bसिस à¤\95 à¤°à¤¹à¤² à¤¬à¤¾à¤¨à¥\80 à¤\9cवन à¤®à¥\8cà¤\9cà¥\82द à¤¨à¤\87à¤\96à¥\87।\nहà¥\8b à¤¸à¤\95त à¤¬à¤¾ à¤\95ि à¤\9cवना à¤\9bन à¤\86प à¤ªà¤¨à¥\8dना à¤¦à¥\87à¤\96त à¤°à¤¹à¤²à¥\80à¤\82 à¤\93हà¥\80 à¤¸à¤®à¤¯ à¤\88 à¤\96à¤\82ड à¤\98सà¤\95ा à¤­à¤¾ à¤¹à¤\9fा à¤¦à¤¿à¤¹à¤² à¤\97à¤\87ल à¤¹à¥\8bà¤\96à¥\87।",
        "loginreqtitle": "खाता में प्रवेश जरुरी बा",
        "loginreqlink": "लॉग इन",
        "loginreqpagetext": "रउआ अन्य पन्ना देखे खातिर $1 करे के पड़ी।",
-       "accmailtitle": "गुप्त-शब्द भेजा गईल",
+       "accmailtitle": "गुप्तशब्द भेजाइल",
        "accmailtext": "[[User talk:$1|$1]] खातिर एगो यंत्र जनित गुप्तशब्द $2 के भेज दिहल गइल बा। खाता में प्रवेश कइला के बाद इ '''[[Special:ChangePassword|गुप्तशब्द बदल लीं]]'' वाला पन्ना पर बदलल जा सकत बा।",
        "newarticle": "(नया)",
        "newarticletext": "रउआ एगो अइसन कड़ी के पन्ना के अनुसरण कइले बानी जवन अभी तक उपलब्ध नइखे।\nपन्ना बनावे खातिर, नीचे के बाकस में टाइप करे के शुरु करीं (ज्यादा जानकारी खातिर देखीं [$1 मदद पन्ना])।\nयदि रउआ अहिजा गलती से आ गइल बानी त, आपन ब्राउजर के '''बैक''' (Back) बटन दबाईं!",
        "revdelete-hide-text": "संशोधन पाठ्य",
        "revdelete-hide-image": "फाइल के सामग्री छुपाँईं",
        "revdelete-hide-name": "टारगेट आ पैरामीटर छिपाईं",
-       "revdelete-hide-comment": "साराà¤\82श à¤¸à¤®à¥\8dपादन",
+       "revdelete-hide-comment": "सà¤\82पादन à¤¸à¤¾à¤°à¤¾à¤\82श",
        "revdelete-hide-user": "सम्पादक के सदस्यनाम/आइ॰पी पता",
        "revdelete-hide-restricted": "डेटा के अउरी सदस्य सभ की साथै साथ प्रबंधक लोगन खातिर भी ढाँप दीं",
        "revdelete-radio-same": "(मत बदलीं)",
        "mergehistory-from": "स्रोत पन्ना:",
        "mergehistory-into": "लक्ष्य पन्ना:",
        "mergehistory-list": "विलय जोग्य संपादन इतिहास",
+       "mergehistory-go": "बिलय करे जोग संपादन देखावल जाव",
        "mergehistory-submit": "अवतरण विलय करीं",
        "mergehistory-empty": "कौनों अवतरण विलय नइखे कइल जा सकत।",
        "mergehistory-done": " $1 के $3 {{PLURAL:$3|अवतरण|अवतरण सभ}} सफलता से [[:$2]] में विलय भइल।",
        "mergehistory-fail": "इतिहास विलय करे में अक्षम, पन्ना आ एकर टाइम पैरामीटर चेक करीं।",
+       "mergehistory-fail-bad-timestamp": "समयमोहर अबैध बा।",
+       "mergehistory-fail-invalid-source": "स्रोत पन्ना अबैध बा।",
+       "mergehistory-fail-invalid-dest": "गंतब्य पन्ना अबैध बा।",
+       "mergehistory-fail-no-change": "इतिहास बिलय द्वारा कवनो रिवीजन के बिलय ना भइल। पन्ना आ टाइम पैरामीटर के दोबारा जाँच करीं।",
+       "mergehistory-fail-permission": "इतिहास बिलय खातिर पर्याप्त परमीशन नइखे।",
+       "mergehistory-fail-self-merge": "स्रोत आ गंतब्य पन्ना एकही बा।",
+       "mergehistory-fail-timestamps-overlap": "स्रोत रिवीजन या त गंतब्य रिवीजन के साथे ओभरलैप करत बा या बाद में आवत बा।",
+       "mergehistory-fail-toobig": "{{PLURAL:$1|रिवीजन|रिवीजन सभ}} के $1 के सीमा से ढेर रिवीजन घसकावे के पड़ी आ एही कारण इतिहास बिलय नइखे कइल जा सकत।",
+       "mergehistory-no-source": "स्रोत पन्ना $1 मौजूद नइखे।",
+       "mergehistory-no-destination": "गंतब्य पन्ना $1 मौजूद नइखे।",
+       "mergehistory-invalid-source": "स्रोत पन्ना एगो बैध टाइटिल होखे के चाहीं।",
+       "mergehistory-invalid-destination": "गंतब्य पन्ना एगो बैध टाइटिल होखे के चाहीं।",
        "mergehistory-autocomment": "[[:$1]] के [[:$2]] में विलय कइल गइल",
        "mergehistory-comment": "[[:$1]] के [[:$2]] में विलय कइल गइल: $3",
        "mergehistory-same-destination": "स्रोत आ लक्ष्य पन्ना एकही ना होखे सकत बा",
        "mergelogpagetext": "एक पन्ना इतिहास के दुसर पन्ना इतिहास में तुरंत विलय भइले के एगो सूची नीचे दिहल बा।",
        "history-title": "''$1'' के संशोधन इतिहास",
        "difference-title": "\"$1\" की अवतरण में अंतर",
+       "difference-title-multipage": "\"$1\" आ \"$2\" पन्ना सभ के बीच अंतर",
+       "difference-multipage": "(पन्नवन के बीच अंतर)",
        "lineno": "लाइन $1:",
        "compareselectedversions": "चुनल गइल संशोधन में अंतर देखीं",
        "showhideselectedversions": "चुनल गइल संशोधन के दृश्यता बदलीं",
        "editundo": "वापस लीं",
+       "diff-empty": "(कौनों अंतर नइखे)",
        "diff-multi-sameuser": "(एही सदस्य द्वारा कइल {{PLURAL:$1|बीच के एगो बदलाव|बीच के $1 बदलाव}} नइखे देखावल जात)",
        "searchresults": "खोज परिणाम",
        "searchresults-title": "$1 खातिर खोज परिणाम",
        "search-section": "(खंड $1)",
        "search-category": "(श्रेणी $1)",
        "search-suggest": "का राउर मतलब बा: $1",
+       "search-rewritten": "$1 खातिर रिजल्ट। एकरे जगह $2 खातिर खोज करीं।",
        "search-interwiki-caption": "साथी प्रोजेक्ट सभ से रिजल्ट",
        "search-interwiki-default": "$1 से परिणाम:",
        "search-interwiki-more": "(अउर)",
        "powersearch-togglenone": "कउनो ना",
        "search-external": "बाहरी खोज",
        "preferences": "वरीयता",
-       "mypreferences": "हमार सेटिंग",
-       "prefs-edits": "सम्पादन संख्या",
-       "prefsnologintext2": "आपन वरीयता में बदलाव लावे खातिर प्रवेश करीं।",
-       "prefs-skin": "त्वचा",
-       "skin-preview": "पूर्वावलोकन",
-       "datedefault": "वरीयता नईखे",
-       "prefs-user-pages": "सदस्य पन्ना",
+       "mypreferences": "पसंदसेटिंग",
+       "prefs-edits": "संपादन संख्या",
+       "prefsnologintext2": "आपन पसंदसेटिंग बदले खातिर खाता में प्रवेश करीं।",
+       "prefs-skin": "स्किन",
+       "skin-preview": "झलक",
+       "datedefault": "कौनो खास पसंद नइखे",
+       "prefs-labs": "लैब्स के चीज",
+       "prefs-user-pages": "प्रयोगकर्ता पन्ना",
        "prefs-personal": "प्रयोगकर्ता प्रोफाइल",
        "prefs-rc": "हाल के बदलाव",
        "prefs-watchlist": "धियानसूची",
        "prefs-editwatchlist": "धियानसूची संपादन",
-       "prefs-editwatchlist-label": "à¤\85पनà¥\80 à¤§à¤¿à¤¯à¤¾à¤¨à¤¸à¥\82à¤\9aà¥\80 à¤\95à¥\87 à¤\9aà¥\80à¤\9c संपादित करीं:",
-       "prefs-editwatchlist-edit": "à¤\85पनà¥\80 à¤§à¤¿à¤¯à¤¾à¤¨à¤¸à¥\82à¤\9aà¥\80 à¤\95à¥\87 टाइटिल देखीं आ हटाईं",
+       "prefs-editwatchlist-label": "à¤\86पन à¤§à¤¿à¤¯à¤¾à¤¨à¤¸à¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤¸à¤¾à¤®à¤¿à¤² à¤\8fà¤\82à¤\9fà¥\8dरà¥\80 संपादित करीं:",
+       "prefs-editwatchlist-edit": "à¤\86पन à¤§à¤¿à¤¯à¤¾à¤¨à¤¸à¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤¸à¤¾à¤®à¤¿à¤² टाइटिल देखीं आ हटाईं",
        "prefs-editwatchlist-raw": "टटका धियानसूची संपादित करीं",
        "prefs-editwatchlist-clear": "आपन धियानसूची साफ करीं",
        "prefs-watchlist-days": "धियानसूची में देखावे खातिर दिन",
        "restoreprefs": "सगरी डिफाल्ट सेटिंग पहिले जइसन करीं (सगरी खंड में)",
        "prefs-editing": "संपादन",
        "searchresultshead": "खोज",
+       "stub-threshold": "आधार कड़ी फारमेटिंग($1) खातिर थ्रेशोल्ड:",
        "stub-threshold-sample-link": "नमूना",
        "stub-threshold-disabled": "अक्षम",
-       "recentchangesdays": "हाल à¤®à¥\87à¤\82 à¤­à¤\87ल à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन में देखावे खातिर दिन:",
+       "recentchangesdays": "हाल à¤\95à¥\87 à¤¬à¤¦à¤²à¤¾à¤µ में देखावे खातिर दिन:",
        "recentchangesdays-max": "अधिकतम $1{{PLURAL:$1|दिन}}",
        "recentchangescount": "डिफाल्ट में देखावे खातिर संपादन संख्या:",
-       "prefs-help-recentchangescount": "à¤\8fमà¥\8dमà¥\87à¤\82 à¤¹à¤¾à¤² à¤®à¥\87à¤\82 à¤­à¤\87ल à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन, à¤ªà¤¨à¥\8dना इतिहास, आ लॉग सब बाटे।",
+       "prefs-help-recentchangescount": "à¤\8fमà¥\8dमà¥\87à¤\82 à¤¹à¤¾à¤² à¤®à¥\87à¤\82 à¤­à¤\87ल à¤¬à¤¦à¤²à¤¾à¤µ, à¤ªà¤¨à¥\8dना à¤\95à¥\87 इतिहास, आ लॉग सब बाटे।",
        "savedprefs": "राउर वरीयताएँ सुरक्षित कर दिहल गईल।",
        "timezonelegend": "समय जोन:",
        "localtime": "लोकल समय:",
        "userrights-user-editname": "प्रयोगकर्ता नाँव लिखीं:",
        "editusergroup": "प्रयोगकर्ता मंडली लोड करीं",
        "editinguser": "अधिकार बदलाव {{GENDER:$1|प्रयोगकर्ता}}<strong>[[User:$1|$1]]</strong> $2",
+       "viewinguserrights": "प्रयोगकर्ता अधिकार देखावल जात बा:{{GENDER:$1|प्रयोगकर्ता}} <strong>[[User:$1|$1]]</strong> $2",
+       "userrights-editusergroup": "{{GENDER:$1|प्रयोगकर्ता}} मंडली संपादित करीं",
+       "userrights-viewusergroup": "{{GENDER:$1|प्रयोगकर्ता}} मंडली देखीं",
+       "saveusergroups": "{{GENDER:$1|प्रयोगकर्ता}} मंडली सहेजीं",
+       "userrights-groupsmember": "सदस्यता हासिल बा:",
+       "userrights-groupsmember-auto": "निहित सदस्यता हासिल बा:",
+       "userrights-groups-help": "ई प्रयोगकर्ता कवना मंडली में रहिहें ई चीज आप बदल सकत बानी:\n* सही के निसान वाला बक्सा के मतलब बा एह मंडली में ई शामिल बाने।\n* बिना सही के निसान वाला बक्सा के मतलब बा एह मंडली में ई शामिल नइखें।\n* एक ठो * के चीन्हा अइसन अधिकार के सूचित करे ला जवना के आप एक बेर दे देइब त हटा नइखीं सकत, या एकरे ठीक उल्टा भी।\n* एक ठो # के चीन्हा सूचित करे ला कि एह मंडली के सदस्यता के खतम होखे के समय आप पाछे (बाद में) क सकत बानी लेकिन आगे नइखीं ले आ सकत।",
        "userrights-reason": "कारण:",
-       "group": "मंडली (ग्रुप):",
+       "userrights-no-interwiki": "अन्य विकि सभ पर सदस्य मंडली के संपादन करे खातिर रउवाँ लगे परमीशन नइखे।",
+       "userrights-changeable-col": "जवन मंडली आप बदल सकत बानी",
+       "userrights-unchangeable-col": "जवन मंडली आप नइखीं बदल सकत",
+       "userrights-expiry-current": "$1 के खतम होखी",
+       "userrights-expiry-none": "एक्सपायर ना होखी",
+       "userrights-expiry": "एक्सपायर हो जाई:",
+       "userrights-expiry-existing": "वर्तमान में एकरा एक्सपायर होखे के टाइम बा: $3, $2",
+       "userrights-expiry-othertime": "अन्य समय:",
+       "userrights-expiry-options": "1 दिन:1 दिन,1 हप्ता:1 हप्ता,1 महीना:1 महीना,3 महीना:3 महीना,6 महीना:6 महीना,1 बरिस:1 बरिस",
+       "userrights-invalid-expiry": "मंडली \"$1\" खातिर एक्सपायरी समय अबैध बा।",
+       "group": "मंडली:",
        "group-user": "सदस्य",
-       "group-autoconfirmed": "à¤\96à¥\81द à¤ªà¤°à¥\80à¤\95à¥\8dषित à¤¸à¤¦à¤¸à¥\8dय",
+       "group-autoconfirmed": "सà¥\8bतà¤\83परमाणित à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता",
        "group-bot": "बॉट",
        "group-sysop": "प्रबंधक",
        "group-bureaucrat": "ब्यूरोक्रेट",
        "group-suppress": "सप्रेसर",
        "group-all": "(सब)",
        "group-user-member": "{{GENDER:$1|सदस्य}}",
-       "group-autoconfirmed-member": "{{GENDER:$1|à¤\96à¥\81द à¤\85सà¥\8dथापित à¤¸à¤¦à¤¸à¥\8dय}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|सà¥\8bतà¤\83परमाणित à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता}}",
        "group-bot-member": "{{GENDER:$1|बॉट}}",
        "group-sysop-member": "{{GENDER:$1|प्रबंधक}}",
        "group-bureaucrat-member": "{{GENDER:$1|प्रशासक}}",
        "group-suppress-member": "{{GENDER:$1|सप्रेस}}",
        "grouppage-user": "{{ns:project}}:सदस्य सभ",
-       "grouppage-autoconfirmed": "{{ns:project}}:à¤\96à¥\81द à¤\85सà¥\8dथापित à¤¸à¤¦à¤¸à¥\8dय à¤¸à¤­",
+       "grouppage-autoconfirmed": "{{ns:project}}:सà¥\8bतà¤\83परमाणित à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता",
        "grouppage-bot": "{{ns:project}}:बॉट सभ",
        "grouppage-sysop": "{{ns:project}}:प्रबंधक सभ",
        "grouppage-bureaucrat": "{{ns:project}}:प्रशासक सभ",
        "right-createpage": "पन्ना बनाईं (बातचीत पन्ना की अलावा)",
        "right-createtalk": "बातचीत पन्ना बनाईं",
        "right-createaccount": "नया सदस्य खाता बनाईं",
-       "right-minoredit": "à¤\9bà¥\8bà¤\9f à¤¸à¤\82पादन चिह्नित करीं",
+       "right-minoredit": "सà¤\82पादन à¤\9bà¥\8bà¤\9f चिह्नित करीं",
        "right-move": "पन्ना स्थानांतरण करीं",
        "right-move-subpages": "पन्नवन के उनहन की उपपन्नवन की संघे स्थानांतरित करीं",
        "right-move-rootuserpages": "मूल (root) सदस्य पन्नवन के स्थानांतरित करीं",
        "right-movefile": "फाइल सब स्थानांतरित करीं",
        "right-suppressredirect": "स्थानांतरण करत घरी मूल पन्ना से पुनर्निदेश मत बनाईं",
        "right-upload": "फाइल अपलोड करीं",
-       "right-reupload": "पà¥\81रान à¤«à¤¾à¤\87ल à¤\95à¥\80 à¤\8aपर à¤¨à¤¯à¤¾ à¤²à¤¾à¤¦ीं",
-       "right-reupload-own": "खुदे लादल फाइल पर नया फाइल लादीं",
-       "right-reupload-shared": "लà¥\8bà¤\95ल à¤®à¥\87à¤\82 à¤¸à¤¾à¤\9dा à¤®à¥\80डिया à¤­à¤£à¥\8dडार à¤\95à¥\87 à¤«à¤¾à¤\87ल à¤¸à¤­ à¤\95à¥\87 ओवरराइड करीं",
+       "right-reupload": "मà¥\8cà¤\9cà¥\82द à¤«à¤¾à¤\87ल à¤ªà¤° à¤\93भरराà¤\87à¤\9f à¤\95रीं",
+       "right-reupload-own": "खुद के अपलोड कइल फाइल ओभरराइट करीं",
+       "right-reupload-shared": "साà¤\9dा à¤®à¥\80डिया à¤­à¤\82डार à¤\95à¥\87 à¤«à¤¾à¤\87ल à¤¸à¤­ à¤\95à¥\87 à¤²à¥\8bà¤\95ल ओवरराइड करीं",
        "right-upload_by_url": "यूआरयल से फाइल अपलोड करीं",
        "right-purge": "बिना पुछले कौनों पन्ना के साइट कैश के फिर लोड करीं",
-       "right-autoconfirmed": "आइ पी आधारित रेट के सीमा से प्रभावित ना होखे",
+       "right-autoconfirmed": "आइपी-आधारित रेट सीमा से ना परभावित",
        "right-bot": "ऑटोमेटेड प्रोसेस मानल जाय",
        "right-writeapi": "API लेखन के इस्तेमाल",
        "right-delete": "पन्ना हटाईं",
        "action-movefile": "ई फाइल स्थानांतरित करीं",
        "action-upload": "इ फाइल अपलोड करीं",
        "action-reupload": "पहिले से मौजूद ए फाइल पर दूसर लादीं",
-       "action-delete": "ई पन्ना के मिटाईं",
+       "action-delete": "ए पन्ना के मिटाईं",
+       "action-deleterevision": "रिवीजन मेटाईं",
+       "action-deletelogentry": "लॉग के एंट्री मेटाईं",
        "action-unwatchedpages": "ध्यानसूची में जवन पन्ना नइखे ओकर सूची देखीं",
        "enhancedrc-history": "इतिहास",
        "recentchanges": "हाल के बदलाव",
        "ancientpages": "सबसे पुरान संशोधन वाला पन्ना",
        "move": "स्थानांतरण",
        "movethispage": "एह पन्ना के स्थानांतरण करीं",
-       "suppress": "à¤\93वरसाà¤\87à¤\9fर",
+       "suppress": "सपà¥\8dरà¥\87स",
        "apihelp": "एपीआइ (API) मदद",
        "apihelp-no-such-module": "मॉड्युल $1 ना मिलल।",
        "booksources": "किताबी स्रोत",
index f86f88f..ae04ca0 100644 (file)
        "rcfilters-state-message-subset": "এই ছাঁকনিটির কোন প্রভাব নেই কারণ এর ফলাফলগুলি নিম্নোক্ত বৃহত্তর পরিধির {{PLURAL:$2|ছাঁকনিটির|ছাঁকনিগুলির}} মধ্যে অন্তর্ভুক্ত আছে (আলোকপাত করে এটিকে আলাদা করে দেখার চেষ্টা করুন): $1",
        "rcfilters-state-message-fullcoverage": "কোন দলের সমস্ত ছাঁকনি নির্বাচন করা এবং কোন ছাঁকনিই নির্বাচন না করা একই কথা, তাই এই ছাঁকনিটির কোন প্রভাব নেই। এই দলে অন্তর্ভুক্ত ছাঁকনিগুলি হল: $1",
        "rcfilters-filtergroup-registration": "ব্যবহারকারী নিবন্ধন",
-       "rcfilters-filter-registered-label": "নিবন্ধিত",
-       "rcfilters-filter-registered-description": "প্রবেশকৃত সম্পাদকবৃন্দ।",
-       "rcfilters-filter-unregistered-label": "অনিবন্ধিত",
-       "rcfilters-filter-unregistered-description": "যেসব সম্পাদক অ্যাকাউন্টে প্রবেশ করেননি।",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "এই ছাঁকনিটির সাথে নিম্নোক্ত ব্যবহারকারী অভিজ্ঞতা {{PLURAL:$2|ছাঁকনিটির|ছাঁকনিগুলির}} সংঘর্ষ আছে; যা কেবলমাত্র নিবন্ধিত ব্যবহারকারীদের খুঁজে বের করে: $1",
        "rcfilters-filtergroup-authorship": "কার দ্বারা পরিবর্তিত",
        "rcfilters-filter-editsbyself-label": "আপনার দ্বারা পরিবর্তিত",
index d58caf3..f63d1e5 100644 (file)
        "rcfilters-state-message-subset": "Ar sil-mañ ne ra netra rak kavet e vez e zisoc'hoù e-mesk ar {{PLURAL:$2|sil|siloù}} klask da heul (klaskit e lakaat war wel evit diforc'han anezhañ) : $1",
        "rcfilters-state-message-fullcoverage": "Diuzañ an holl siloù en ur strollad zo evel diuzañ netra, setu ne raio ket netra ar sil-mañ. Er strollad emañ : $1",
        "rcfilters-filtergroup-registration": "Enskrivadur an implijer",
-       "rcfilters-filter-registered-label": "Marilhet",
-       "rcfilters-filter-registered-description": "Aozerien gevreet.",
-       "rcfilters-filter-unregistered-label": "Divarilh",
-       "rcfilters-filter-unregistered-description": "Aozerien n'int ket kevreet.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Tabut zo etre ar sil-mañ hag ar {{PLURAL:$2|sil|siloù}} Arroutet, na {{PLURAL:$2|gav|gavont}} nemet an implijerien enrollet : $1",
        "rcfilters-filtergroup-authorship": "Aozer ar c'hemmoù",
        "rcfilters-filter-editsbyself-label": "Kemmet ganeoc'h",
index a17799a..4b7cbc6 100644 (file)
        "rcfilters-noresults-conflict": "Nije pronađen nijedan rezultat jer su kriteriji pretrage sukobljeni",
        "rcfilters-state-message-fullcoverage": "Izabiranje svih filtera u grupi isto je kao da niste izabrali nijedan, tako da ovaj filter nema nikakvog efekta. Grupa sadrži: $1",
        "rcfilters-filtergroup-registration": "Registracija korisnika",
-       "rcfilters-filter-registered-label": "Registrirani",
-       "rcfilters-filter-registered-description": "Prijavljeni korisnici.",
-       "rcfilters-filter-unregistered-label": "Anonimni",
-       "rcfilters-filter-unregistered-description": "Neprijavljeni korisnici.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Ovaj filter u sukobu je sa sljedećim {{PLURAL:$2|filterom|filterima}}, koji {{PLURAL:$2|pronalazi|pronalaze}} samo registrirane korisnike: $1",
        "rcfilters-filtergroup-authorship": "Autorstvo doprinosa",
        "rcfilters-filter-editsbyself-label": "Vaše izmjene",
index ce07b06..5520007 100644 (file)
        "rcfilters-noresults-conflict": "No s'ha trobat cap resultat perquè els criteris de cerca són en conflicte",
        "rcfilters-state-message-fullcoverage": "Seleccionant tots els filtres en un grup és el mateix que no seleccionar-ne cap, de manera que aquest filtre no té cap efecte. El grup inclou: $1",
        "rcfilters-filtergroup-registration": "Registre d'usuari",
-       "rcfilters-filter-registered-label": "Registrats",
-       "rcfilters-filter-registered-description": "Editors que han iniciat sessió",
-       "rcfilters-filter-unregistered-label": "No registrats",
-       "rcfilters-filter-unregistered-description": "Editors que no han iniciat una sessió.",
        "rcfilters-filtergroup-authorship": "Autoria de les contribucions",
        "rcfilters-filter-editsbyself-label": "Els vostres canvis",
        "rcfilters-filter-editsbyself-description": "Les vostres pròpies contribucions.",
index 2bc253d..e156c85 100644 (file)
        "rcfilters-filterlist-title": "Литтарш",
        "rcfilters-filterlist-noresults": "Литтарш цакарий",
        "rcfilters-filtergroup-registration": "Декъашхойн регистраци",
-       "rcfilters-filter-registered-label": "Регистрацийинарш",
-       "rcfilters-filter-unregistered-label": "Регистрацицайинарш",
        "rcfilters-filtergroup-authorship": "Нисде авторалла",
        "rcfilters-filter-editsbyself-label": "Хьан дисдарш",
        "rcfilters-filter-editsbyself-description": "Хьан нисдарш.",
index 117b558..6a57073 100644 (file)
        "rcfilters-filterlist-title": "فیلتەرەکان",
        "rcfilters-filterlist-whatsthis": "ئەمە چییە؟",
        "rcfilters-highlightmenu-title": "ڕەنگێکی نوێ ھەڵبژێرە",
-       "rcfilters-filter-registered-label": "تۆمارکراو",
-       "rcfilters-filter-registered-description": "ئەو بەکارھێنەرانەی لە ژوورەوەن",
-       "rcfilters-filter-unregistered-label": "تۆمارنەکراوەکان",
-       "rcfilters-filter-unregistered-description": "ئەو بەکارھێنەرانەی لە ژوورەوە نین",
        "rcfilters-filter-editsbyself-label": "مافەکانی خۆت",
        "rcfilters-filter-editsbyself-description": "دەستکارییەکانی خۆت.",
        "rcfilters-filter-editsbyother-label": "دەستکارییەکانی کەسانی تر",
index 64bba7a..18df613 100644 (file)
        "rcfilters-state-message-subset": "Tento filtr nemá žádný vliv, protože jeho výsledky jsou již zahrnuty {{PLURAL:$2|následujícím, širším filtrem|následujícími, širšími filtry}} (pro odlišení zkuste zvýraznění): $1",
        "rcfilters-state-message-fullcoverage": "Výběr všech filtrů ve skupině odpovídá výběru žádného, proto tento filtr nemá žádný vliv. Skupina zahrnuje: $1",
        "rcfilters-filtergroup-registration": "Registrace uživatele",
-       "rcfilters-filter-registered-label": "Registrovaní",
-       "rcfilters-filter-registered-description": "Přihlášení editoři.",
-       "rcfilters-filter-unregistered-label": "Neregistrovaní",
-       "rcfilters-filter-unregistered-description": "Editoři, kteří nejsou přihlášení",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Tento filtr je v konfliktu s {{PLURAL:$2|následujícím filtrem|následujícími filtry}} podle zkušeností, {{PLURAL:$2|vyhledávajícím|vyhledávajícími}} pouze registrované uživatele: $1",
        "rcfilters-filtergroup-authorship": "Autorství příspěvku",
        "rcfilters-filter-editsbyself-label": "Vaše změny",
index 936e38c..9aa64f7 100644 (file)
        "anontalk": "Sgwrs",
        "navigation": "Panel llywio",
        "and": "&#32;a/ac",
-       "qbfind": "Canfod",
-       "qbbrowse": "Pori",
-       "qbedit": "Golygu",
-       "qbpageoptions": "Y dudalen hon",
-       "qbmyoptions": "Fy nhudalennau",
        "faq": "Cwestiynau cyffredin",
-       "faqpage": "Project:Cwestiynau cyffredin",
        "actions": "Gweithrediadau",
        "namespaces": "Parthau",
        "variants": "Amrywiolion",
        "edit-local": "Golygu'r disgrifiad ar y wici hwn",
        "create": "Dechrau",
        "create-local": "Ychwanegu disgrifiad ar y wici hwn",
-       "editthispage": "Golygwch y dudalen hon",
-       "create-this-page": "Creu'r dudalen",
        "delete": "Dileu",
-       "deletethispage": "Dilëir y dudalen hon",
-       "undeletethispage": "Adfer y dudalen hon",
        "undelete_short": "Adfer $1 {{PLURAL:$1|golygiad|golygiad|olygiad|golygiad}}",
        "viewdeleted_short": "Edrych ar y {{PLURAL:$1|golygiad sydd wedi'i ddileu|golygiad sydd wedi'i ddileu|$1 olygiad sydd wedi'u dileu|$1 golygiad sydd wedi'u dileu|$1 golygiad sydd wedi'u dileu|$1 golygiad sydd wedi'u dileu}}",
        "protect": "Diogelu",
        "protect_change": "newid",
-       "protectthispage": "Diogelu'r dudalen hon",
        "unprotect": "Newid y diogelwch",
-       "unprotectthispage": "Newid gosodiadau diogelwch y dudalen hon",
        "newpage": "Tudalen newydd",
-       "talkpage": "Sgwrsiwch am y dudalen hon",
        "talkpagelinktext": "Sgwrs",
        "specialpage": "Tudalen Arbennig",
        "personaltools": "Offer personol",
-       "articlepage": "Dangos tudalen bwnc",
        "talk": "Sgwrs",
        "views": "Golygon",
        "toolbox": "Offer",
        "tool-link-userrights": "Newid {{GENDER:$1|grwpiau defnyddwyr}}",
        "tool-link-userrights-readonly": "Cip ar {{GENDER:$1|grwpiau defnyddwyr}}",
        "tool-link-emailuser": "Ebostiwch y {{GENDER:$1|defnyddiwr}}",
-       "userpage": "Gweld tudalen y defnyddiwr",
-       "projectpage": "Gweld tudalen y wici",
        "imagepage": "Gweld tudalen y ffeil",
        "mediawikipage": "Gweld tudalen y neges",
        "templatepage": "Dangos y dudalen nodyn",
        "rcfilters-highlightmenu-help": "Dewisiwch liw sy'n cyd-fynd gyda'r nodwedd hon",
        "rcfilters-filterlist-noresults": "Dim hidl ar gael",
        "rcfilters-filtergroup-registration": "Defnyddiwch y gofrestr",
-       "rcfilters-filter-registered-label": "Cofrestr",
-       "rcfilters-filter-registered-description": "Golygyddion sydd wedi mewngofnodi.",
-       "rcfilters-filter-unregistered-label": "Heb gofrestru",
-       "rcfilters-filter-unregistered-description": "Golygyddion nad ydynt wedi cofrestru.",
        "rcfilters-filter-editsbyself-label": "Eich golygiadau chi",
        "rcfilters-filter-editsbyself-description": "Golygiadau gennych chi.",
        "rcfilters-filter-editsbyother-label": "Golygiadau gan eraill",
index 68727dd..9e919d0 100644 (file)
        "rcfilters-filterlist-noresults": "Ingen filtre fundet",
        "rcfilters-noresults-conflict": "Ingen resultater fundet fordi søgekriterierne er i konflikt",
        "rcfilters-filtergroup-registration": "Brugerregistrering",
-       "rcfilters-filter-registered-label": "Registrerede",
-       "rcfilters-filter-registered-description": "Indloggede brugere",
-       "rcfilters-filter-unregistered-label": "Uregistrerede",
-       "rcfilters-filter-unregistered-description": "Redaktører, der ikke er logget ind.",
        "rcfilters-filtergroup-authorship": "Bidragets forfatter",
        "rcfilters-filter-editsbyself-label": "Ændringer af dig",
        "rcfilters-filter-editsbyself-description": "Dine egne bidrag.",
index 934b635..b6fddef 100644 (file)
        "rcfilters-state-message-subset": "Dieser Filter hat keinen Effekt, da seine Ergebnisse mit denen {{PLURAL:$2|des folgenden breiteren Filters|der folgenden breiteren Filter}} einbezogen sind (versuche die Hervorhebung, um sie zu unterscheiden): $1",
        "rcfilters-state-message-fullcoverage": "Das Auswählen aller Filter in einer Gruppe ist das Gleiche wie das Auswählen keines Filters. Deshalb hat dieser Filter keinen Effekt. Die Gruppe enthält: $1",
        "rcfilters-filtergroup-registration": "Benutzerregistrierung",
-       "rcfilters-filter-registered-label": "Angemeldet",
-       "rcfilters-filter-registered-description": "Angemeldete Autoren.",
-       "rcfilters-filter-unregistered-label": "Unangemeldet",
-       "rcfilters-filter-unregistered-description": "Autoren, die nicht angemeldet sind.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Dieser Filter befindet sich in Konflikt mit {{PLURAL:$2|dem folgenden Erfahrungsfilter, der nur angemeldete Benutzer finden kann|den folgenden Erfahrungsfiltern, die nur angemeldete Benutzer finden können}}: $1",
        "rcfilters-filtergroup-authorship": "Beitrags-Autorenschaft",
        "rcfilters-filter-editsbyself-label": "Änderungen von dir",
index 8c967f0..b9b8980 100644 (file)
        "oct": "Pthi",
        "nov": "Ptht",
        "dec": "Pthr",
-       "pagecategories": "{{PLURAL:$1|Atëkthok|Atëkthuɔk}}",
-       "category_header": "Apääm në atëkthok \"$1\"ic",
-       "subcategories": "Tëktëëkkor",
+       "pagecategories": "{{PLURAL:$1|bekätakthook|bekätakthuɔk}}",
+       "category_header": "Apääm në bekätakthook \"$1\"ic",
+       "subcategories": "Bekätakthuɔkkor",
        "category-media-header": "Kuat në bekätakthook  $1 yic",
-       "hidden-categories": "{{PLURAL:$1|Atëkthok cï thiaan|Atëkthuɔk cï thiaan}}",
-       "category-subcat-count": "{{PLURAL:$2|Bekätakthookë anɔŋ bekätakthookthiikɛ̈ kepɛ̈c.|Akuutkäŋë anɔŋ \n{{PLURAL:$1|bekätakthookë|$1 bekäŋtakthookkɛ̈}}, në $2 yic̈;}}",
+       "hidden-categories": "{{PLURAL:$1|Bekätakthook cï thiaan|Bekätakthuɔk cï thiaan}}",
+       "category-subcat-count": "{{PLURAL:$2|Bekätakthookë anɔŋ bekätakthookkorkɛ̈ kepɛ̈c.|Bekätakthookë anɔŋ {{PLURAL:$1|bekätakthookkorë|$1 bekätakthuɔkkorkɛ̈}}, në $2 yic̈;}}",
        "category-article-count": "{{PLURAL:$2|Bekätakthookë anɔŋic yärë yetök.|{{PLURAL:$1|Yärë atɔ̈|$1 yɔ̈rkɛ̈ aatɔ̈}} bekätakthook thiöökë yic, në $2 yic.}}",
        "category-file-count": "{{PLURAL:$2|Bekätakthook kän anɔŋic wëtmät kän etök.|{{PLURAL:|Wëtmät de $1 thiöökë atɔ̈ |wëlmäät ke $1 thiookkɛ̈ aa tɔ̈}} në bekätakthook känic, në $2 yiic ëbɛ̈n.}}",
        "listingcontinuesabbrev": "ɣäthtueŋ",
        "nstab-project": "Apam kälooi",
        "nstab-image": "Apamduööt",
        "nstab-template": "Macuëc",
-       "nstab-category": "Atëkthok",
+       "nstab-category": "Bekätakthook",
        "mainpage-nstab": "Apam këdït",
        "badtitle": "Rin awäc",
        "badtitletext": "Këjiɛmë ca thiëëcë acïï lɔcök, tëdɛ̈ ka cïn kë tɔ̈u thïn, tëdɛ̈ ka këjiɛmë de thuɔkmɛ̈t wälä de wikimɛ̈t aa këcëkɛ nyiɛc nuet apath. Tëkdɛ̈ kä nɔŋic cït cïï lëu bïke luööi në käjiɛmëkeyiic.",
        "templatesused": "{{PLURAL:$1|Macuëc|Mïcuëc}} ee luööi në apam känic",
        "template-protected": "(cïtiit)",
        "template-semiprotected": "(gëlamääth)",
-       "hiddencategories": "Apamkën ee rem ë {{PLURAL:$1|1 bekätakthook cï thiaan |$1 bekäŋtakthook cï  thiaan}}:",
-       "permissionserrorstext-withaction": "Yïn acïï nɔŋ nhomlääu ba $2, \n{{PLURAL:$1|wɛ̈t de kän|wët de käk}}:",
+       "hiddencategories": "Apamkën ee rem ë {{PLURAL:$1|1 bekätakthook cï thiaan |$1 bekätakthuɔk cï thiaan}}:",
+       "permissionserrorstext-withaction": "Yïn acïï nɔŋ nhomlääu ba $2, {{PLURAL:$1|wɛ̈t de kän|wët de käk}}:",
        "moveddeleted-notice": "Apam acï cuɔthwei. Athörtɔ̈ɔ̈u de cothëwei ku nyiɛɛi në apamë aa cïke gam piiny ëtɛ̈n tɔŋ raan wïc bë ke kueen",
        "content-model-javascript": "JavaScript",
        "viewpagelogs": "Ɣoi athörtɔ̈ɔ̈u në apamkën",
        "logeventslist-submit": "Nyooth",
        "allarticles": "Abɛ̈ɛ̈k ëbɛ̈n",
        "allpagessubmit": "Lɔ",
-       "categories": "Atëkthuɔk",
+       "categories": "Bekätakthuɔk",
        "categories-submit": "Nyooth",
        "sp-deletedcontributions-contribs": "amöc",
        "linksearch-ns": "Rinɣɔnläu",
        "tooltip-ca-nstab-project": "Ɣoi apam kätɔ̈",
        "tooltip-ca-nstab-image": "Ɣoië apäm ë makec",
        "tooltip-ca-nstab-template": "Tïŋ macuëc",
-       "tooltip-ca-nstab-category": "Ɣoië apäm atëkthok",
+       "tooltip-ca-nstab-category": "Ɣoië apäm bekätakthook",
        "tooltip-save": "Tɔ̈ɔ̈uë weerdu",
        "tooltip-preview": "Tiɛ̈ŋë tueŋ weerdu. Yïn looië yen këcë guor tɔ̈ɔ̈u.",
        "tooltip-diff": "Nyoothë weer ɣo cä looi këcïgɔ̈tic",
        "exif-colorspace": "Tëlääu kiit",
        "exif-datetimeoriginal": "Akölnïn ku akölic ë cäk ë akutëyith",
        "exif-datetimedigitized": "Akölnïn ku akölic ë cɔkakuënnhialkupiny",
-       "exif-iimcategory": "Atëkthok",
+       "exif-iimcategory": "Bekätakthook",
        "exif-disclaimer": "Acëkakuɔ",
        "exif-orientation-1": "Epath",
        "namespacesall": "ëbɛ̈n",
index 78a26e0..d1723dc 100644 (file)
        "rcfilters-noresults-conflict": "Δε βρέθηκαν αποτελέσματα γιατί τα κριτήρια αναζήτησης είναι σε διένεξη.",
        "rcfilters-state-message-subset": "Αυτό το φίλτρο δεν έχει επιρροή επειδή τα αποτελέσματά του περιλαμβάνονται σε αυτά {{PLURAL:$2|ευρύτερου φίλτρου|ευρύτερων φίλτρων}} (δοκιμάστε την επισήμανση για να τα ξεχωρήσετε): $1",
        "rcfilters-filtergroup-registration": "Επωνυμία χρηστών",
-       "rcfilters-filter-registered-label": "Εγγεγραμμένοι",
-       "rcfilters-filter-registered-description": "Συνδεδεμένοι συντάκτες.",
-       "rcfilters-filter-unregistered-label": "Μη εγγεγραμμένοι",
-       "rcfilters-filter-unregistered-description": "Συντάκτες που δεν είναι συνδεδεμένοι.",
        "rcfilters-filtergroup-authorship": "Πατρότητα επεξεργασιών",
        "rcfilters-filter-editsbyself-label": "Επεξεργασίες από εσάς",
        "rcfilters-filter-editsbyself-description": "Οι δικές σας συνεισφορές.",
index 4d51c9e..1d39569 100644 (file)
        "rcfilters-noresults-conflict": "No results found because the search criteria are in conflict",
        "rcfilters-state-message-subset": "This filter has no effect because its results are included with those of the following, broader {{PLURAL:$2|filter|filters}} (try highlighting to distinguish it): $1",
        "rcfilters-state-message-fullcoverage": "Selecting all filters in a group is the same as selecting none, so this filter has no effect. Group includes: $1",
-       "rcfilters-filtergroup-registration": "User registration",
-       "rcfilters-filter-registered-label": "Registered",
-       "rcfilters-filter-registered-description": "Logged-in editors.",
-       "rcfilters-filter-unregistered-label": "Unregistered",
-       "rcfilters-filter-unregistered-description": "Editors who aren’t logged in.",
-       "rcfilters-filter-unregistered-conflicts-user-experience-level": "This filter conflicts with the following Experience {{PLURAL:$2|filter|filters}}, which {{PLURAL:$2|finds|find}} only registered users: $1",
        "rcfilters-filtergroup-authorship": "Contribution authorship",
        "rcfilters-filter-editsbyself-label": "Changes by you",
        "rcfilters-filter-editsbyself-description": "Your own contributions.",
        "rcfilters-filter-editsbyother-label": "Changes by others",
        "rcfilters-filter-editsbyother-description": "All changes except your own.",
-       "rcfilters-filtergroup-userExpLevel": "Experience level (for registered users only)",
-       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered": "Experience filters find only registered users, so this filter conflicts with the “Unregistered” filter.",
-       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "The \"Unregistered\" filter conflicts with one or more Experience filters, which find registered users only. The conflicting filters are marked in the Active Filters area, above.",
+       "rcfilters-filtergroup-userExpLevel": "Experience registration and experience",
+       "rcfilters-filter-user-experience-level-registered-label": "Registered",
+       "rcfilters-filter-user-experience-level-registered-description": "Logged-in editors.",
+       "rcfilters-filter-user-experience-level-unregistered-label": "Unregistered",
+       "rcfilters-filter-user-experience-level-unregistered-description": "Editors who aren't logged-in.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Newcomers",
-       "rcfilters-filter-user-experience-level-newcomer-description": "Fewer than 10 edits and 4 days of activity.",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Registered editors with fewer than 10 edits and 4 days of activity.",
        "rcfilters-filter-user-experience-level-learner-label": "Learners",
-       "rcfilters-filter-user-experience-level-learner-description": "More experience than \"Newcomers\" but less than \"Experienced users\".",
+       "rcfilters-filter-user-experience-level-learner-description": "Registered editors whose experience falls between \"Newcomers\" and \"Experienced users.\"",
        "rcfilters-filter-user-experience-level-experienced-label": "Experienced users",
-       "rcfilters-filter-user-experience-level-experienced-description": "More than 30 days of activity and 500 edits.",
+       "rcfilters-filter-user-experience-level-experienced-description": "Registered editors with more than 500 edits and 30 days of activity.",
        "rcfilters-filtergroup-automated": "Automated contributions",
        "rcfilters-filter-bots-label": "Bot",
        "rcfilters-filter-bots-description": "Edits made by automated tools.",
        "rcfilters-tag-prefix-namespace": ":$1",
        "rcfilters-tag-prefix-namespace-inverted": "<strong>:not</strong> $1",
        "rcfilters-tag-prefix-tags": "#$1",
+       "rcfilters-exclude-button-off": "Exclude selected",
+       "rcfilters-exclude-button-on": "Excluding selected",
        "rcfilters-view-tags": "Tagged edits",
        "rcfilters-view-namespaces-tooltip": "Filter results by namespace",
        "rcfilters-view-tags-tooltip": "Filter results using edit tags",
index 87a00be..a3a0afa 100644 (file)
        "rcfilters-filterlist-title": "Filtriloj",
        "rcfilters-filterlist-noresults": "Neniuj filtriloj troviĝis",
        "rcfilters-filtergroup-registration": "Registrado de uzanto",
-       "rcfilters-filter-registered-label": "Registrita",
-       "rcfilters-filter-registered-description": "Ensalutitaj redaktantoj.",
-       "rcfilters-filter-unregistered-label": "Neregistrita",
-       "rcfilters-filter-unregistered-description": "Redaktantoj kiuj ne estas ensalutita.",
        "rcfilters-filtergroup-authorship": "Redakta aŭtoreco",
        "rcfilters-filter-editsbyself-label": "Viaj redaktoj",
        "rcfilters-filter-editsbyself-description": "Viaj redaktoj.",
index c151f52..b44cbe9 100644 (file)
        "rcfilters-state-message-subset": "Este filtro no tiene ningún efecto debido a que sus resultados se incluyen con los de los siguientes: {{PLURAL:$2|filtro|filtros}} (intente destacarlo para distinguirlo): $1",
        "rcfilters-state-message-fullcoverage": "Seleccionar todos los filtros de un grupo es lo mismo que seleccionar ninguno, por lo que este filtro no tiene efecto. El grupo incluye: $1",
        "rcfilters-filtergroup-registration": "Registro de usuario",
-       "rcfilters-filter-registered-label": "Registrados",
-       "rcfilters-filter-registered-description": "Editores conectados.",
-       "rcfilters-filter-unregistered-label": "No registrados",
-       "rcfilters-filter-unregistered-description": "Editores no conectados.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Este filtro está en conflicto con {{PLURAL:$2|el siguiente filtro|los siguientes filtros}} de nivel de experiencia, que solo {{PLURAL:$2|encuentra|encuentran}} usuarios registrados: $1",
        "rcfilters-filtergroup-authorship": "Autoría de la contribución",
        "rcfilters-filter-editsbyself-label": "Cambios tuyos",
index b3bed3d..f4c5855 100644 (file)
        "rcfilters-state-message-subset": "See filter ei tee midagi, sest selle tulemused on kaasatud {{PLURAL:$2|järgmise laiema filtri|järgmiste laiemate filtrite}} tulemustes (tulemuste eristamiseks proovi esiletõstu): $1",
        "rcfilters-state-message-fullcoverage": "Ühe rühma kõigi filtrite valimine on samaväärne mitte ühegi filtri valimisega, mistõttu ei tee see filter midagi. Rühmas on: $1",
        "rcfilters-filtergroup-registration": "Registreerumine",
-       "rcfilters-filter-registered-label": "Registreerunud",
-       "rcfilters-filter-registered-description": "Sisse logitud kasutajad.",
-       "rcfilters-filter-unregistered-label": "Registreerumata",
-       "rcfilters-filter-unregistered-description": "Kasutajad, kes pole sisse logitud.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "See filter on konfliktis {{PLURAL:$2|järgmise kogemustaseme filtriga|järgmiste kogemustasemete filtritega}}, mis {{PLURAL:$2|leiab|leiavad}} ainult registreerunud kasutajaid: $1",
        "rcfilters-filtergroup-authorship": "Kaastöö autorsus",
        "rcfilters-filter-editsbyself-label": "Enda muudatused",
index eb36a71..0a39323 100644 (file)
        "rcfilters-highlightmenu-title": "Hautatu kolore bat",
        "rcfilters-filterlist-noresults": "Ez da iragazkirik aurkitu",
        "rcfilters-filtergroup-registration": "Erabiltzaile erregistroa",
-       "rcfilters-filter-registered-label": "Erregistratuak",
-       "rcfilters-filter-registered-description": "Sesioa hasi duten editoreak.",
-       "rcfilters-filter-unregistered-label": "Ez erregistratuak",
-       "rcfilters-filter-unregistered-description": "Saioa hasi ez duten editoreak.",
        "rcfilters-filtergroup-authorship": "Ekarpenaren egiletza",
        "rcfilters-filter-editsbyself-label": "Zuk egindako aldaketak",
        "rcfilters-filter-editsbyself-description": "Zure ekarpenak",
        "undelete-search-title": "Ezabatutako orrialdeak bilatu",
        "undelete-search-box": "Ezabatutako orrialdeak bilatu",
        "undelete-search-prefix": "Honela hasten diren orrialdeak erakutsi:",
+       "undelete-search-full": "Orrialde izenburuak erakutsi:",
        "undelete-search-submit": "Bilatu",
        "undelete-no-results": "Ez da bat datorren orrialderik aurkitu ezabaketen artxiboan.",
        "undelete-filename-mismatch": "Ezin da $1 denbora-marka duten fitxategi aldaketa ezabatua berrezarri: fitxategi-izena ez dator bat",
index 4f63845..7e294f6 100644 (file)
        "rcfilters-state-message-subset": "این پالایه تاثیری ندارد چون نتایج آن توسط {{PLURAL:$2|پالایهٔ|پالایه‌های}} گسترده‌تری که در ادامه {{PLURAL:$2|آمده‌است|آمده‌اند}} شامل می‌شود (از پررنگ‌کننده برای تمایز استفاده کنید): $1",
        "rcfilters-state-message-fullcoverage": "انتخاب تمام پالایه‌ها در یک گروه مثل این است که هیچ‌کدام را انتخاب نکنید، بنابراین پالایه‌ها اثری نداشتند. گروه شامل این موارد است: $1",
        "rcfilters-filtergroup-registration": "ثبت نام کاربر",
-       "rcfilters-filter-registered-label": "ثبت شده",
-       "rcfilters-filter-registered-description": "ویرایشگران وارد شده به سامانه.",
-       "rcfilters-filter-unregistered-label": "ثبت‌نام نکرده",
-       "rcfilters-filter-unregistered-description": "ویرایشگرانی که به سامانه وارد نشده‌اند.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "این پالایه با {{PLURAL:$2|پالایه|پالایه‌های}} تجربهٔ زیر که فقط کاربران ثبت‌نام شده را {{PLURAL:$2|می‌یابد|می‌یابند}} تعارض دارد: $1",
        "rcfilters-filtergroup-authorship": "ویرایشگر",
        "rcfilters-filter-editsbyself-label": "تغییریافته توسط شما",
index 4a548dc..ba9b786 100644 (file)
        "rcfilters-state-message-subset": "Tällä suodattimella ei ole vaikutusta, koska sen tulokset sisältyvät {{PLURAL:$2|seuraavaan laajempaan suodattimeen|seuraaviin laajempiin suodattimiin}} (kokeile korostusta sen erottamiseksi): $1",
        "rcfilters-state-message-fullcoverage": "Ryhmän kaikkien suodattimien valitseminen on sama, kuin ei valitse mitään, joten tällä suodattimella ei ole vaikutusta. Ryhmään sisältyy: $1",
        "rcfilters-filtergroup-registration": "Käyttäjän rekisteröinti",
-       "rcfilters-filter-registered-label": "Rekisteröitynyt",
-       "rcfilters-filter-registered-description": "Sisäänkirjautuneiden muokkaukset.",
-       "rcfilters-filter-unregistered-label": "Rekisteröimätön",
-       "rcfilters-filter-unregistered-description": "Muokkaajat, jotka eivät ole kirjautuneet sisään.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Tämä suodatin on ristiriidassa seuraavien kokemustaso {{PLURAL:$2|suodattimen|suodattimien}} kanssa,  {{PLURAL:$2|joka|jotka}} löytävät vain rekisteröityneitä käyttäjiä: $1",
        "rcfilters-filtergroup-authorship": "Muutoksen tekijä",
        "rcfilters-filter-editsbyself-label": "Muutoksesi",
index e0d2f21..3f76137 100644 (file)
        },
        "tog-underline": "Soulignement des liens :",
        "tog-hideminor": "Masquer les modifications mineures dans les modifications récentes",
-       "tog-hidepatrolled": "Masquer les modifications vérifiées dans les modifications récentes",
+       "tog-hidepatrolled": "Masquer les modifications relues parmi les modifications récentes",
        "tog-newpageshidepatrolled": "Masquer les pages relues dans la liste des nouvelles pages",
        "tog-hidecategorization": "Masquer la catégorisation des pages",
        "tog-extendwatchlist": "Étendre la liste de suivi pour afficher toutes les modifications et pas uniquement les plus récentes",
        "rcfilters-state-message-subset": "Ce filtre n'a aucun effet, parce que ses résultats sont inclus dans ceux de la recherche suivante, {{PLURAL:$2|filtre plus étendu|filtres plus étendus}} (essayez la mise en forme pour le différencier): $1",
        "rcfilters-state-message-fullcoverage": "Sélectionner tous les filtres dans un groupe est la même chose que d'en sélectionner aucun, aussi ce filtre n'a aucun effet. Le groupe comprend: $1",
        "rcfilters-filtergroup-registration": "Inscription de l’utilisateur",
-       "rcfilters-filter-registered-label": "Connectés",
-       "rcfilters-filter-registered-description": "Éditeurs connectés.",
-       "rcfilters-filter-unregistered-label": "Non connectés",
-       "rcfilters-filter-unregistered-description": "Éditeurs qui ne sont pas connectés.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Ce filtre est en conflit avec le{{PLURAL:$2| filtre|s filtres}}      Experience suivant, qui ne {{PLURAL:$2|trouve|trouvent}} que des utilisateurs inscrits : $1",
        "rcfilters-filtergroup-authorship": "Paternité des contributions",
        "rcfilters-filter-editsbyself-label": "Modifications faites par vous",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activé)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>désactivé</strong>)",
        "mediastatistics": "Statistiques sur les médias",
-       "mediastatistics-summary": "Statistiques sur les types de fichier téléversés. Elles ne prennent en compte que la version la plus récente d’un fichier. Les versions anciennes ou supprimées des fichiers sont exclues.",
+       "mediastatistics-summary": "Statistiques sur les types de fichiers téléversés. Elles ne prennent en compte que la version la plus récente des fichiers. Les versions anciennes ou supprimées sont exclues.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 octet|$1 octets}} ($2 ; $3%)",
        "mediastatistics-bytespertype": "Taille totale de fichiers pour cette section : {{PLURAL:$1|$1 octet|$1 octets}} ($2 ; $3%).",
        "mediastatistics-allbytes": "Taille totale pour tous les fichiers : {{PLURAL:$1|$1 octet|$1 octets}} ($2).",
index 9de6680..9ca343d 100644 (file)
        "rcfilters-state-message-subset": "Este filtro non ten efecto porque os seus resultados están incluídos dentro da seguinte procura, {{PLURAL:$2|filtro máis amplo|filtros máis amplos}} (probe a destacalo para distinguilo): $1",
        "rcfilters-state-message-fullcoverage": "Seleccionar tódolos filtros dun grupo é o mesmo que non seleccionar ningún, polo que este filtro non ten efecto. O grupo inclúeː $1",
        "rcfilters-filtergroup-registration": "Rexistro de usuario",
-       "rcfilters-filter-registered-label": "Rexistrado",
-       "rcfilters-filter-registered-description": "Editores autenticados.",
-       "rcfilters-filter-unregistered-label": "Non rexistrado",
-       "rcfilters-filter-unregistered-description": "Editores que non están autenticados.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Este filtro está en conflito {{PLURAL:$2|co seguinte filtro|cos seguintes filtros}} Experience, que {{PLURAL:$2|atopa|atopan}} só usuarios rexistradosː $1",
        "rcfilters-filtergroup-authorship": "Autoría da contribución",
        "rcfilters-filter-editsbyself-label": "Cambios seus",
index 44fe822..dec017d 100644 (file)
        "printableversion": "Sufar bugawa",
        "permalink": "Dawwamammen mahaɗi",
        "print": "Buga",
+       "view": "Duba",
        "edit": "Gyarawa",
        "create": "Ƙirƙira",
        "delete": "Soke",
        "showdiff": "Nuna sauye-sauye",
        "anoneditwarning": "'''Hattara:''' Ba ku yi logi ba.\nZa a rubuta adireshinku na IP a cikin tarihin sauye-sauyen wannan shafi.",
        "summary-preview": "Rigya-gani na taƙaici:",
+       "loginreqlink": "Shiga",
        "newarticle": "(Sabo)",
        "newarticletext": "Kun latsa mahaɗi zuwa shafin da babu shi tukuna.\nDomin ƙirƙiro wannan shafin, ku fara rubutu a cikin fage na ƙasa (duba [$1 shafin taimako] don ƙarin bayani).\nIdan kun ɓata ne cikin shawaginku, to ku latsa maɓallin '''baya''' na safuwayan shawaginku.",
        "noarticletext": "A halin yanzu babu matani a kan wannan shafi.\nKuna iya [[Special:Search/{{PAGENAME}}|nemo kan wannan shafi]] cikin wasu shafuna,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} bincika rajistan ayyukan],\nko [{{fullurl:{{FULLPAGENAME}}|action=edit}} gyara wannan shafi]</span>.",
        "prevn": "baya {{PLURAL:$1|$1}}",
        "nextn": "gaba {{PLURAL:$1|$1}}",
        "viewprevnext": "Duba ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchprofile-everything": "Duk abin da",
        "search-result-size": "$1 ({{PLURAL:$2|1 kalma|$2 kalmomi}})",
        "search-redirect": "(turawa daga $1)",
        "search-section": "(sashe $1)",
        "rightslog": "Rajistan bayar da izini ga ma'aikata",
        "action-edit": "gyara wannan shafi",
        "nchanges": "{{PLURAL:$1|sauyi|sauye-sauye}} $1",
+       "enhancedrc-history": "Tarihi",
        "recentchanges": "Sauye-sauyen baya-bayan nan",
        "recentchanges-legend": "Zaɓi na sauye-sauyen baya-bayan nan",
        "recentchanges-feed-description": "Bi sawun sauye-sauyen ƙarshe na wikin da ke cikin wannan kwarare",
+       "recentchanges-label-minor": "Karamin gyara ne",
        "rclistfrom": "Nuna sabbin sauye-sauye tun daga $3 $2",
        "rcshowhideminor": "$1 ƙananen sauye-sauye",
        "rcshowhidebots": "Rabuwat $1",
+       "rcshowhidebots-show": "Nuna",
        "rcshowhideliu": "$1 Ma'aikata logaggi",
        "rcshowhideanons": "$1 ma'aikata masu ɓoyayye suna",
        "rcshowhidemine": "$1 sauye-sauyena",
        "tooltip-search": "Binciko {{SITENAME}}",
        "tooltip-search-go": "A je ga shafi mai wannan suna idan akwai shi",
        "tooltip-search-fulltext": "Binciki shafuna masu wannan matani",
+       "tooltip-p-logo": "Duba babban shafin",
        "tooltip-n-mainpage": "Duba shafin Marhabin",
        "tooltip-n-mainpage-description": "Duba shafin marhabin",
        "tooltip-n-portal": "A game da wannan shiri, abinda za a iya yi, ina za a samu abubuwa",
index 064a627..b75ccde 100644 (file)
        "rcfilters-state-message-subset": "המסנן הזה אינו משפיע כי התוצאות שלו כלולות {{PLURAL:$2|במסנן הרחב יותר הבא|במסננים הרחבים יותר הבאים}} (נסו להדגיש כדי להבדיל ביניהם): $1",
        "rcfilters-state-message-fullcoverage": "בחירת כל המסננים בקבוצה זהה לביטול כל הבחירות, אז למסנן הזה אין השפעה. הקבוצה כוללת: $1",
        "rcfilters-filtergroup-registration": "רישום העורכים",
-       "rcfilters-filter-registered-label": "רשומים",
-       "rcfilters-filter-registered-description": "עורכים שנכנסו לחשבון.",
-       "rcfilters-filter-unregistered-label": "לא רשומים",
-       "rcfilters-filter-unregistered-description": "עורכים שלא נכנסו לחשבון.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "המסנן הזה פעיל מתנגש עם {{PLURAL:$2|מסנן רמת הניסיון הבא, שמוצא|מסנני רמת הניסיון הבאים, שמוצאים}} רק משתמשים רשומים: $1",
        "rcfilters-filtergroup-authorship": "מבצעי התרומה",
        "rcfilters-filter-editsbyself-label": "שינויים שלך",
index 965326b..34730db 100644 (file)
        "rcfilters-state-message-subset": "इस फिल्टर का कोई प्रभाव नहीं है क्योंकि इसका परिणाम निम्न, व्यापक {{PLURAL: $2 |फ़िल्टर|फिल्टर}} के साथ शामिल है (इसे भेद करने के लिए हाइलाइट करने की कोशिश करें): $1",
        "rcfilters-state-message-fullcoverage": "किसी समूह में सभी फ़िल्टर चुनना कोई भी नहीं चुनने के समान है इसलिए इस फ़िल्टर का कोई प्रभाव नहीं है समूह में शामिल हैं: $1",
        "rcfilters-filtergroup-registration": "उपयोगकर्ता पंजीकरण",
-       "rcfilters-filter-registered-label": "पंजीकृत:",
-       "rcfilters-filter-registered-description": "लॉग-इन संपादक।",
-       "rcfilters-filter-unregistered-label": "अपंजीकृत",
-       "rcfilters-filter-unregistered-description": "संपादक जो लॉग इन नहीं हैं।",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "यह फ़िल्टर निम्न {{PLURAL:$2|फ़िल्टर}} के साथ संघर्ष करता है, जो केवल पंजीकृत सदस्यों को ही {{PLURAL:$2|ढूंढ}} रहा है: $1",
        "rcfilters-filtergroup-authorship": "लेखक योगदान",
        "rcfilters-filter-editsbyself-label": "आपके द्वारा बदलाव",
index 0466d5f..6b3e890 100644 (file)
        "anontalk": "Baat",
        "navigation": "Navigation",
        "and": "&#32;aur",
-       "qbfind": "Khojo",
-       "qbbrowse": "Browse karo",
-       "qbedit": "Badlo",
-       "qbpageoptions": "Ii panna",
-       "qbmyoptions": "Hamar panna",
        "faq": "Sab time puchhe waala sawal",
-       "faqpage": "Project:Sab time puchhe waala sawal",
        "actions": "Karam",
        "namespaces": "Naam",
        "variants": "Antar",
        "edit-local": "Local description ke badlo",
        "create": "Banao",
        "create-local": "Local description ke jorro",
-       "editthispage": "Ii panna ke badlo",
-       "create-this-page": "Ii panna ke banao",
        "delete": "Mitao",
-       "deletethispage": "Ii panna ke mitao",
-       "undeletethispage": "Ii panna ke undelete karo",
        "undelete_short": "{{PLURAL:$1|ek badlao|$1 badlao}} ke pahile jaise karo",
        "viewdeleted_short": "Dekho {{PLURAL:$1|ek mitawal badlao|$1 mitawal badlao}}",
        "protect": "Bachao",
        "protect_change": "badlo",
-       "protectthispage": "Ii panna ke bacaho",
        "unprotect": "Nai bachao",
-       "unprotectthispage": "Ii panna ke surakchha ke badlo",
        "newpage": "Nawaa panna",
-       "talkpage": "Ii panna ke baare me salah karo",
        "talkpagelinktext": "Baat",
        "specialpage": "Khaas Panna",
        "personaltools": "Aapan aujaar",
-       "articlepage": "Content waala panna ke dekho",
        "talk": "Salah",
        "views": "Bichar",
        "toolbox": "Aujaar ke dabba",
        "tool-link-userrights": "Badlo {{GENDER:$1|sadasya}} groups",
        "tool-link-userrights-readonly": "Dekho {{GENDER:$1|sadasya}} groups",
        "tool-link-emailuser": "Email karo ii {{GENDER:$1|sadasya}}",
-       "userpage": "Sadasya ke panna dekho",
-       "projectpage": "Project waala panna dekho",
        "imagepage": "File panna ke dekho",
        "mediawikipage": "Sandes waala panna dekho",
        "templatepage": "Template waala panna dekho",
        "rcfilters-filterlist-title": "Filters",
        "rcfilters-filterlist-noresults": "Koi filter nai milaa",
        "rcfilters-filtergroup-registration": "User registration",
-       "rcfilters-filter-registered-label": "Register kar dewa gais:",
-       "rcfilters-filter-registered-description": "Logged-in editors.",
-       "rcfilters-filter-unregistered-label": "Unregistered",
-       "rcfilters-filter-unregistered-description": " Editors who aren’t logged in.",
        "rcfilters-filtergroup-authorship": "Edit authorship",
        "rcfilters-filter-editsbyself-label": "Aapan badlao",
        "rcfilters-filter-editsbyself-description": "Aap ke karaa gais badlao.",
index 3fb2671..eaf3c8a 100644 (file)
        "rcfilters-noresults-conflict": "Rezultati pretrage nisu pronađeni zbog sukoba kriterija pretrage",
        "rcfilters-state-message-fullcoverage": "Označavanje svih filtera u grupi je isto kao da nije označen niti jedan, tako da filter nema učinka. Grupa uključuje: $1",
        "rcfilters-filtergroup-registration": "Registracija suradnika",
-       "rcfilters-filter-registered-label": "Prijavljeni",
-       "rcfilters-filter-registered-description": "Prijavljeni suradnici.",
-       "rcfilters-filter-unregistered-label": "Neprijavljeni",
-       "rcfilters-filter-unregistered-description": "Suradnici koji nisu prijavljeni.",
        "rcfilters-filtergroup-authorship": "Doprinosi prema autorima",
        "rcfilters-filter-editsbyself-label": "Uređivanja koja ste Vi napravili",
        "rcfilters-filter-editsbyself-description": "Vaša uređivanja.",
index 24b6059..e1c818b 100644 (file)
        "recentchanges-legend-heading": "<strong>Jelmagyarázat:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (lásd még: [[Special:NewPages|új lapok listája]])",
        "recentchanges-submit": "Megjelenítés",
+       "rcfilters-legend-heading": "<strong>Rövidítések listája:</strong>",
        "rcfilters-activefilters": "Aktív szűrők",
        "rcfilters-advancedfilters": "Haladó szűrők",
        "rcfilters-quickfilters": "Mentett szűrők",
        "rcfilters-state-message-subset": "Ennek a szűrőnek nincs hatása, mert az eredményét {{PLURAL:$2|tartalmazza a következő, nagyobb szűrő|tartalmazzák a következő, nagyobb szűrők}} (próbáld meg kiemelni a megkülönböztetéshez): $1",
        "rcfilters-state-message-fullcoverage": "Az összes szűrő kijelölése egy csoportban ugyanaz, mint ha semmit nem választanál ki, így ennek a szűrőnek nincs hatása. A csoport tartalmazza: $1",
        "rcfilters-filtergroup-registration": "Regisztráció",
-       "rcfilters-filter-registered-label": "Regisztrált",
-       "rcfilters-filter-registered-description": "Bejelentkezett szerkesztők.",
-       "rcfilters-filter-unregistered-label": "Nem regisztrált",
-       "rcfilters-filter-unregistered-description": "Nem bejelentkezett szerkesztők.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Ez a szűrő ütközik a következő tapasztalati {{PLURAL:$2|szűrővel, ami|szűrőkkel, amik}} csak regisztrált felhasználókat {{PLURAL:$2|talál|találnak}} meg: $1",
        "rcfilters-filtergroup-authorship": "Hozzájárulás szerzője",
        "rcfilters-filter-editsbyself-label": "Saját változtatásaid",
index c44863c..45697a1 100644 (file)
        "rcfilters-state-message-subset": "Iste filtro non ha effecto perque su resultatos es includite in illos del sequente {{PLURAL:$2|filtro|filtros}} plus comprehensive (essaya colorar pro poter distinguer lo): $1",
        "rcfilters-state-message-fullcoverage": "Seliger tote le filtros in un gruppo equivale seliger nulle, dunque iste filtro non ha effecto. Le gruppo include: $1",
        "rcfilters-filtergroup-registration": "Registration del usator",
-       "rcfilters-filter-registered-label": "Registrate",
-       "rcfilters-filter-registered-description": "Redactores que ha aperite session.",
-       "rcfilters-filter-unregistered-label": "Non registrate",
-       "rcfilters-filter-unregistered-description": "Redactores que non ha aperite session.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Iste filtro es in conflicto con le sequente {{PLURAL:$2|filtro|filtros}} de Experientia, le {{PLURAL:$2|qual|quales}} trova solmente usatores registrate: $1",
        "rcfilters-filtergroup-authorship": "Autor del contributiones",
        "rcfilters-filter-editsbyself-label": "Modificationes facite per te",
index cfd6bdf..511dffa 100644 (file)
        "rcfilters-noresults-conflict": "Hasil tidak ditemukan karena kriteria pencariannya bertentangan",
        "rcfilters-state-message-subset": "Filter ini tidak akan berpengaruh karena hasilnya disertakan oleh {{PLURAL:$2|filter}} berikut yang lebih luas (coba soroti untuk membedakannya): $1",
        "rcfilters-filtergroup-registration": "Pendaftaran pengguna",
-       "rcfilters-filter-registered-label": "Terdaftar",
-       "rcfilters-filter-registered-description": "Penyunting masuk log",
-       "rcfilters-filter-unregistered-label": "Tidak terdaftar",
-       "rcfilters-filter-unregistered-description": "Penyunting yang tidak masuk log",
        "rcfilters-filtergroup-authorship": "Kontribusi pengarang",
        "rcfilters-filter-editsbyself-label": "Suntingan Anda",
        "rcfilters-filter-editsbyself-description": "Kontribusi saya",
index 832a5a7..fe6499d 100644 (file)
        "anontalk": "Discussion",
        "navigation": "Navigation",
        "and": "&#32;e",
-       "qbfind": "Constatar",
-       "qbbrowse": "Travider",
-       "qbedit": "Redacter",
-       "qbpageoptions": "Págine de optiones",
-       "qbmyoptions": "Mi optiones",
        "faq": "FAQ",
        "actions": "Actiones",
        "namespaces": "Spacies de nómine",
        "view-foreign": "Vider sur $1",
        "edit": "Redacter",
        "create": "Crear",
-       "editthispage": "Redacter",
-       "create-this-page": "Crear ti págine",
        "delete": "Deleter",
-       "deletethispage": "Deleter ti págine",
-       "undeletethispage": "Restaurar ti págine",
        "undelete_short": "Restaurar {{PLURAL:$1|1 modification|$1 modificationes}}",
        "viewdeleted_short": "Vider {{PLURAL:$1|un deletet version|$1 deletet versiones}}",
        "protect": "Gardar",
        "protect_change": "changer",
-       "protectthispage": "Gardar ti págine",
        "unprotect": "Changear protection",
-       "unprotectthispage": "Changear protection de ti págine",
        "newpage": "Nov págine",
-       "talkpage": "Parlar in ti págine",
        "talkpagelinktext": "Conversation",
        "specialpage": "Págine special",
        "personaltools": "Mi utensiles",
-       "articlepage": "Vider li articul",
        "talk": "Discussion",
        "views": "Aspectes",
        "toolbox": "Utensiles",
-       "userpage": "Vider págine del usator",
-       "projectpage": "Vider págine de projecte",
        "imagepage": "Vider li págine de figura",
        "mediawikipage": "Vider págine de missagies",
        "templatepage": "Vider li págine de avise",
        "recentchanges-legend-heading": "<strong>Legende:</strong>",
        "rcfilters-filterlist-title": "Filtres",
        "rcfilters-filtergroup-registration": "Registration de usatores",
-       "rcfilters-filter-registered-label": "Registrat",
        "rcnotefrom": "In infra es li {{PLURAL:$5|modification|modificationes}} desde <strong>$4 $3</strong> (til <strong>$1</strong> es monstrat).",
        "rclistfrom": "Monstrar li nov modificationes desde $3 $2",
        "rcshowhideminor": "$1 redactiones minori",
index 36a7280..87e6714 100644 (file)
        "anontalk": "Tungtungan",
        "navigation": "Pagdaliasatan",
        "and": "&#32;ken",
-       "qbfind": "Biruken",
-       "qbbrowse": "Agbasabasa",
-       "qbedit": "Urnosen",
-       "qbpageoptions": "Daytoy a panid",
-       "qbmyoptions": "Pampanidko",
        "faq": "MAS",
-       "faqpage": "Project:MAS",
        "actions": "Dagiti aramid",
        "namespaces": "Dagiti nagan ti espasio",
        "variants": "Sabsabali a pagsasao",
        "edit-local": "Urnosen ti lokal a deskripsion",
        "create": "Agpartuat",
        "create-local": "Agnayon iti lokal a deskripsion",
-       "editthispage": "Urnosen daytoy a panid",
-       "create-this-page": "Partuaten daytoy a panid",
        "delete": "Ikkaten",
-       "deletethispage": "Ikkaten daytoy a panid",
-       "undeletethispage": "Isubli ti pannakaikkat daytoy a panid",
        "undelete_short": "Isubli ti pannakaikkat {{PLURAL:$1|ti maysa a naurnos|dagiti $1 a naurnos}}",
        "viewdeleted_short": "Kitaen {{PLURAL:$1|ti maysa a naikkat a naurnos|dagiti $1 a naikkat a naurnos}}",
        "protect": "Salakniban",
        "protect_change": "baliwan",
-       "protectthispage": "Salakniban daytoy a panid",
        "unprotect": "Sukatan ti salaknib",
-       "unprotectthispage": "Sukatan ti salaknib daytoy a panid",
        "newpage": "Baro a panid",
-       "talkpage": "Pagtungtungan daytoy a panid",
        "talkpagelinktext": "Tungtungan",
        "specialpage": "Espesial a panid",
        "personaltools": "Bukod a ramramit",
-       "articlepage": "Kitaen ti naglaon a panid",
        "talk": "Pagtungtungan",
        "views": "Dagiti pangkitaan",
        "toolbox": "Ramramit",
        "tool-link-userrights": "Baliwan dagiti grupo ti {{GENDER:$1|agar-aramat}}",
        "tool-link-userrights-readonly": "Kitaen dagiti grupo ti {{GENDER:$1|agar-aramat}}",
        "tool-link-emailuser": "Esuratam daytoy nga {{GENDER:$1|agar-aramat}}",
-       "userpage": "Kitaen ti panid ti agar-aramat",
-       "projectpage": "Kitaen ti panid ti proyekto",
        "imagepage": "Kitaen ti panid ti papeles",
        "mediawikipage": "Kitaen ti panid ti mensahe",
        "templatepage": "Kitaen ti panid ti plantilia",
        "rcfilters-filterlist-whatsthis": "Ania daytoy?",
        "rcfilters-highlightmenu-title": "Agpili iti maris",
        "rcfilters-filterlist-noresults": "Awan dagiti nabirukan a sagat",
-       "rcfilters-filter-registered-label": "Nakarehistro",
-       "rcfilters-filter-registered-description": "Dagiti nakastrek nga editor.",
-       "rcfilters-filter-unregistered-label": "Saan a nakarehistro",
-       "rcfilters-filter-unregistered-description": "Dagiti editor a saan a nakastrek.",
        "rcfilters-filter-editsbyself-label": "Dagiti bukodmo nga inurnos",
        "rcfilters-filter-editsbyself-description": "Dagiti inurnosmo.",
        "rcfilters-filter-editsbyother-label": "Dagiti inurnos ti sabali",
index 4feb7b8..37b4749 100644 (file)
        "anontalk": "Дувца оттадар",
        "navigation": "Навигаци",
        "and": "&#32;а",
-       "qbfind": "Лахар",
-       "qbbrowse": "БIаргтохар",
-       "qbedit": "Нийсде",
-       "qbpageoptions": "ОагIон оттамаш",
-       "qbmyoptions": "Хьа гIирсаш тоаяраш",
        "faq": "КТХ",
-       "faqpage": "Project:КТХ",
        "actions": "Ардамаш",
        "namespaces": "ЦIерий аренаш",
        "variants": "Варианташ",
        "edit-local": "Хувца локальни йоазонца сурт оттадар",
        "create": "Хьакхолла",
        "create-local": "ТIатоха локальни йоазонца сурт оттадар",
-       "editthispage": "Нийсъе ер оагIув",
-       "create-this-page": "Хьакхолла ер оагӀув",
        "delete": "ДӀаяккха",
-       "deletethispage": "ДӀаяккха ер оагӀув",
-       "undeletethispage": "Юхаметтаоттае ер оагӀув",
        "undelete_short": "Юхаметтаоттде {{PLURAL:$1|$1 нийсдар|$1 нийсдараш}}",
        "viewdeleted_short": "{{PLURAL:$1|$1 дIадаьккха нийсдарга|дIадаьккха нийсдарга|$1 дIадаьккха нийсдарашга}} хьажар",
        "protect": "ГIо де",
        "protect_change": "хувца",
-       "protectthispage": "ГIо (лорадар) де укх оагIон",
        "unprotect": "ГIо хувца",
-       "unprotectthispage": "Укх оагIон гIо (лорадар) хувца",
        "newpage": "Керда оагӀув",
-       "talkpage": "Ер оагIув ювца",
        "talkpagelinktext": "дувца оттадар",
        "specialpage": "ГIулакха оагӀув",
        "personaltools": "Доакъашхочун гӀирсаш",
-       "articlepage": "БIаргтоха оагIонга",
        "talk": "Дувца оттадар",
        "views": "Хьажараш",
        "toolbox": "ГӀирсаш",
-       "userpage": "Доакъашхочун оагIон бIаргтоха",
-       "projectpage": "Проекта оагIон бIаргтоха",
        "imagepage": "Файла оагIон бIаргтоха",
        "mediawikipage": "Хьахьокха хоам бара оагIув",
        "templatepage": "Лера оагIон бIаргтоха",
        "redirectedfrom": "($1 дIа-сахьожаяьй укхаз)",
        "redirectpagesub": "ОагIув-дIа-сахьожадар",
        "redirectto": "ДIа-сахьожадар укхаза:",
-       "lastmodifiedat": "УкÑ\85 Ð¾Ð°Ð³Ioн Ñ\82IеÑ\85Ñ\85Ñ\8cаÑ\80а Ñ\85Ñ\83вÑ\86ам: $2, $1.",
+       "lastmodifiedat": "Ð\95Ñ\80 Ð¾Ð°Ð³IÑ\83в Ñ\82IеÑ\85Ñ\85Ñ\8cаÑ\80а Ñ\85ийÑ\86а Ñ\85иннай $2 $1 Ñ\8fÑ\8cннаÑ\87а Ñ\85аÌ\81на.",
        "viewcount": "Укх оагIонга хьежа хиннаб $1{{PLURAL:$1|-зза}}.",
        "protectedpage": "ГIо оттадаь лораяь оагIув",
        "jumpto": "Дехьавала укхаза:",
        "noarticletext-nopermission": "ХIанз укх оагӀон тӀа текст яц.\nШун аьттув ба [[Special:Search/{{PAGENAME}}|цу тайпара цӀи белгалъяр хьалаха]] кхыйола оагIонаш тIа, иштта\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тара дола тептарай дIаяздаьраш].</span> Ер оагӀув хьакхолла Хьа бокъо яц.",
        "note": "'''Белгалдоахар:'''",
        "previewnote": "'''Теркам бе, ер хьалххе бIаргтохар мара бац.'''\nХьа хувцамаш хIанза а дIаяздаь дац!",
+       "continue-editing": "Хувцар кхы дIахо де",
        "editing": "Хувцам: $1",
        "creating": "«$1» оагIув хьакхоллар",
        "editingsection": "Хувцам: $1 (оагӀон дáкъа)",
        "page_first": "цхьоаллагIа",
        "page_last": "тӀехьара",
        "histlegend": "Версий хоржам: белгалъе шун вIаши йиста безам бола оагIон версеш, тIаккха тоIае '''{{int:compare-submit}}'''.<br />\nКхетавар: '''({{int:cur}})''' — карара версеца дола башхалонаш; '''({{int:last}})''' — хьалха йоагIаш версеца дола башхалонаш; '''{{int:minoreditletter}}''' — зIамига хувцамаш.",
-       "history-fieldset-title": "Ð\98Ñ\81Ñ\82оÑ\80ена Ð±IаÑ\80гÑ\82оÑ\85а",
+       "history-fieldset-title": "Ð\94аÑ\8c Ñ\85инна Ñ\85Ñ\83вÑ\86амаÑ\88 Ð»Ð°Ñ\85аÑ\80",
        "history-show-deleted": "Алхха дӀадаьккхараш",
        "histfirst": "эггара къаьнагIа",
        "histlast": "эггара кердагIа",
        "lineno": "МугI $1:",
        "compareselectedversions": "ВIаши йиста хержа версеш",
        "editundo": "юхадаккха",
+       "diff-empty": "(башхалонаш яц)",
        "diff-multi-sameuser": "({{PLURAL:$1|цхьа юкъ хулаш йола верси|$1 юкъ хулаш йола версеш}} гуш яц цу доакъашхочун)",
        "searchresults": "Лахар чакхдоалаш корадаьр",
        "searchresults-title": "«$1» лахар",
        "nextn-title": "{{PLURAL:$1|ТIадоагIа $1 яздар|ТIадоагIа $1 яздараш}}",
        "shown-title": "Гойта $1 {{PLURAL:$1|яздаьр|яздаьраш}} укх оáгIон тIа",
        "viewprevnext": "ДIахьажа ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-exists": "<strong>Укх вики чу йолаш я оагӀув «[[:$1]]».</strong>",
+       "searchmenu-exists": "'''Укх вики чу йолаш я оагӀув «[[:$1]]».'''",
        "searchmenu-new": "<strong>Хьакхолла оагIув «[[:$1]]» укх вики-проекте!</strong>\n{{PLURAL:$2|0=|Иштта хьажа Iайха лийха оагIонга.|Иштта хьажа хьай лахара хьахиннарашка.}}",
        "searchprofile-articles": "Кертера оагIонаш",
        "searchprofile-images": "Мультимедиа",
        "nolinkstoimage": "Укх файла тIахьожавеш йола оагIонаш яц.",
        "sharedupload": "Ер файл $1 чура я, из пайда эцаш лелае мегаш я кхыйола проекташ чу.",
        "sharedupload-desc-here": "Ер файл $1 чура я, иштта кхыйола проекташ чу пайда эца аьттув болаш я.\nЦун [$2 сурт оттадара оагIон] хоам кIалхахь хьабоалабаьб.",
+       "filepage-nofile": "Ишта цӀи йола файл йоацаш я.",
        "uploadnewversion-linktext": "Чуяккха укх файла керда верси",
        "upload-disallowed-here": "Хьа бокъо яц ер файл юха дӀаязъе.",
        "filerevert-comment": "Бахьан:",
        "booksources-search-legend": "Джейнах лаьца хоам лахар",
        "booksources-search": "Хьалáха",
        "log": "Тептараш",
+       "logempty": "Укх оагӀон дӀаяздаьраш тептара чу дац.",
        "allpages": "Еррига оагIонаш",
        "prevpage": "Хьалха йоагIа оагIув ($1)",
        "allpagesfrom": "Гучаяккха оагIонаш йолалуш йола укхох:",
        "version-specialpages": "ГIулакха оагӀонаш",
        "version-version": "($1)",
        "version-software-version": "Верси",
+       "redirect-submit": "Дехьавала",
+       "redirect-lookup": "Лахар:",
+       "redirect-value": "Боарам:",
+       "redirect-user": "Доакъашхочун ID",
+       "redirect-page": "ОагӀон ID",
+       "redirect-revision": "ОагӀон верси",
+       "redirect-file": "Файла цӀи",
        "fileduplicatesearch-filename": "Файла цӀи:",
        "fileduplicatesearch-submit": "Хьалáха",
        "specialpages": "ЛаьрххIа йола оагIонаш",
index 4ee4bd4..8109ac3 100644 (file)
        "rcfilters-state-message-subset": "Questo filtro non ha effetto perché i suoi risultati sono inclusi in quelli {{PLURAL:$2|del seguente filtro, più ampio|dei seguenti filtri, più ampi}} (prova ad evidenziarli per distinguerli): $1",
        "rcfilters-state-message-fullcoverage": "La selezione di tutti i filtri in un gruppo è come non selezionarne alcuno, in questo modo questo filtro non ha effetto. Il gruppo include: $1",
        "rcfilters-filtergroup-registration": "Registrazione utente",
-       "rcfilters-filter-registered-label": "Registrato",
-       "rcfilters-filter-registered-description": "Contributori che hanno effettuato l'accesso.",
-       "rcfilters-filter-unregistered-label": "Non registrato",
-       "rcfilters-filter-unregistered-description": "Contributori che non hanno effettuato l'accesso.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Questo filtro è in conflitto con {{PLURAL:$2|il seguente filtro|i seguenti filtri}} esperienza, che {{PLURAL:$2|trova|trovano}} soltanto utenti registrati: $1",
        "rcfilters-filtergroup-authorship": "Autore del contributo",
        "rcfilters-filter-editsbyself-label": "Mie modifiche",
index df9fad9..59602eb 100644 (file)
        "rcfilters-state-message-subset": "この項目による絞り込みは全て以下の{{PLURAL:$2|項目}}による絞り込みの結果に含まれています(強調表示を使うことで該当項目を抽出できます) : $1",
        "rcfilters-state-message-fullcoverage": "同じグループの全ての項目が選択されています。絞り込みできません。同じグループに含まれる項目 :$1",
        "rcfilters-filtergroup-registration": "利用者登録",
-       "rcfilters-filter-registered-label": "登録済み",
-       "rcfilters-filter-registered-description": "ログイン済みの編集者。",
-       "rcfilters-filter-unregistered-label": "未登録",
-       "rcfilters-filter-unregistered-description": "ログインしていない利用者。",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "この項目は、登録済み利用者を編集回数別で絞り込む以下の{{PLURAL:$2|項目}}と競合しています :$1",
        "rcfilters-filtergroup-authorship": "自分の編集か他者の編集か",
        "rcfilters-filter-editsbyself-label": "自分の編集",
index 069c712..352ce7d 100644 (file)
        "rcfilters-filterlist-noresults": "Saringan ora katemu",
        "rcfilters-noresults-conflict": "Ora ana kasil amarga wewatoné kanggo nggolèk ana masalah",
        "rcfilters-filtergroup-registration": "Pandhaftaran panganggo",
-       "rcfilters-filter-registered-label": "Kadhaftar",
-       "rcfilters-filter-registered-description": "Pambesut sing mlebu log.",
-       "rcfilters-filter-unregistered-label": "Ora kadhaftar",
-       "rcfilters-filter-unregistered-description": "Pambesut sing ora mlebu log.",
        "rcfilters-filtergroup-authorship": "Pangripta besutan",
        "rcfilters-filter-editsbyself-label": "Owah-owahané panjenengan",
        "rcfilters-filter-editsbyself-description": "Sumbangané panjenengan dhéwé.",
index 7dc5060..64d9a70 100644 (file)
        "rcfilters-state-message-subset": "ამ ფილტრს არ აქვს ეფექტი, რადგან მისი შედეგები ჩართულია შემდეგ უფრო ფართო {{PLURAL:$2|ფილტრში|ფილტრებში}} (გარჩევისთვის სცადეთ მისი განათება): $1",
        "rcfilters-state-message-fullcoverage": "ყველა ფილტრის არჩევა ჯგუფში იგივეა რაც არაფრის არჩევა, ამიტომ ამ ფილტრს არ აქვს არანაირი ეფექტი. ჯგუფი შეიცავს: $1",
        "rcfilters-filtergroup-registration": "მომხმარებლის რეგისტრაცია",
-       "rcfilters-filter-registered-label": "რეგისტრირებულები",
-       "rcfilters-filter-registered-description": "შესული რედაქტორები.",
-       "rcfilters-filter-unregistered-label": "არარეგისტრირებულები",
-       "rcfilters-filter-unregistered-description": "რედაქტორები, რომლებიც არ შესულან სისტემაში.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "ეს ფილტრი კონფლიქტშია გამოცდილების შემდეგ {{PLURAL:$2|ფილტრთან|ფილტრებთან}}, {{PLURAL:$2|რომელიც ეძებს|რომლებიც ეძებენ}} მხოლოდ რეგისტრირებულ მომხმარებლებს: $1",
        "rcfilters-filtergroup-authorship": "ავტორობის წვლილი",
        "rcfilters-filter-editsbyself-label": "თქვენი საკუთარი ცვლილებები",
index 74b9d41..0a65d62 100644 (file)
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|새 문서 목록]]도 보세요)",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "recentchanges-submit": "보기",
+       "rcfilters-legend-heading": "<strong>약어 목록:</strong>",
        "rcfilters-activefilters": "사용 중인 필터",
        "rcfilters-advancedfilters": "고급 필터",
        "rcfilters-quickfilters": "저장된 필터",
        "rcfilters-state-message-subset": "필터의 결과가 다음의 범위가 더 넓은 {{PLURAL:$2|필터}}의 결과에 포함되기 때문에 이 필터는 효력이 없습니다 (구별을 위해 강조해 보십시오): $1",
        "rcfilters-state-message-fullcoverage": "한 그룹의 모든 필터를 선택하는 것은 아무 것도 선택하지 않는 것과 동일하므로 이 필터는 효력이 없습니다. 그룹은 다음을 포함합니다: $1",
        "rcfilters-filtergroup-registration": "사용자 등록",
-       "rcfilters-filter-registered-label": "등록됨",
-       "rcfilters-filter-registered-description": "로그인된 편집자.",
-       "rcfilters-filter-unregistered-label": "등록 안 됨",
-       "rcfilters-filter-unregistered-description": "로그인하지 않은 편집자.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "이 필터는 등록된 사용자만을 {{PLURAL:$2|찾는}} 다음의 경험 {{PLURAL:$2|필터}}와 충돌합니다: $1",
        "rcfilters-filtergroup-authorship": "원작자 기여",
        "rcfilters-filter-editsbyself-label": "당신의 변경사항",
index 0c550ee..4debfc0 100644 (file)
        "rcfilters-highlightmenu-title": "Eng Faarf eraussichen",
        "rcfilters-filterlist-noresults": "Keng Filtere fonnt",
        "rcfilters-noresults-conflict": "Näischt fonnt well d'Sichcritère sech widderspriechen",
-       "rcfilters-filter-registered-label": "Ugemellt",
-       "rcfilters-filter-unregistered-label": "Net-ugemellt",
-       "rcfilters-filter-unregistered-description": "Auteuren déi net ageloggt sinn.",
        "rcfilters-filter-editsbyself-label": "Ännerunge vun Iech",
        "rcfilters-filter-editsbyself-description": "Är eegen Ännerungen.",
        "rcfilters-filter-editsbyother-label": "Ännerunge vun Aneren",
index 00b1914..85ed42a 100644 (file)
        "rcfilters-state-message-subset": "Sto filtro chì o no g'ha effetto percose i so risultæ son incluxi con quelli  {{PLURAL:$2|do seguente filtro ciu ampio|di  seguenti filtri ciu ampi}} (proeuva a evidençiâli pe distinguili): $1",
        "rcfilters-state-message-fullcoverage": "A seleçion de tutti i filtri inte 'n groppo l'è comme no seleçionâne manc'un, coscì che sto filtro o no fa effetto. O groppo o l'includde: $1",
        "rcfilters-filtergroup-registration": "Registraçion utente",
-       "rcfilters-filter-registered-label": "Registrou",
-       "rcfilters-filter-registered-description": "Contributoî conessi.",
-       "rcfilters-filter-unregistered-label": "Non registrou",
-       "rcfilters-filter-unregistered-description": "Contributoî non conessi.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Questo filtro o l'è in conflito co-{{PLURAL:$2|o seguente filtro|i seguenti filtri}} Esperiença, ch'o {{PLURAL:$2|troeuva|troeuvan}} soltanto di utenti registræ: $1",
        "rcfilters-filtergroup-authorship": "Aotô do contributo",
        "rcfilters-filter-editsbyself-label": "E to modiffiche",
index 0b5e469..f641b65 100644 (file)
        "rcfilters-filterlist-noresults": "Nerastas toks filtras",
        "rcfilters-noresults-conflict": "Nerasta jokių rezultatų, nes paieškos kriterijai konfliktuoja",
        "rcfilters-filtergroup-registration": "Vartotojo registracija",
-       "rcfilters-filter-registered-label": "Registruoti",
-       "rcfilters-filter-registered-description": "Prisijungę redaktoriai.",
-       "rcfilters-filter-unregistered-label": "Neregistruoti",
-       "rcfilters-filter-unregistered-description": "Redaktoriai, kurie nėra prisijungę.",
        "rcfilters-filter-editsbyself-label": "Jūsų keitimai",
        "rcfilters-filter-editsbyself-description": "Jūsų keitimai.",
        "rcfilters-filter-editsbyother-label": "Kitų keitimai",
index c08e288..038828a 100644 (file)
        "rcfilters-highlightmenu-help": "Izvēlies krāsu, lai izceltu šo īpašību",
        "rcfilters-filterlist-noresults": "Filtri nav atrasti",
        "rcfilters-filtergroup-registration": "Lietotāja reģistrācija",
-       "rcfilters-filter-registered-label": "Reģistrēti",
-       "rcfilters-filter-registered-description": "Pieslēgušies redaktori.",
-       "rcfilters-filter-unregistered-label": "Nereģistrēti",
-       "rcfilters-filter-unregistered-description": "Nepieslēgušies redaktori.",
        "rcfilters-filtergroup-authorship": "Devuma autors",
        "rcfilters-filter-editsbyself-label": "Tavi labojumi",
        "rcfilters-filter-editsbyself-description": "Tevis veiktie labojumi.",
index 6eed14e..257d5f1 100644 (file)
        "rcfilters-filterlist-noresults": "Tsy nahitana sivana",
        "rcfilters-noresults-conflict": "Tsy nahitana valiny satria tsy mifanaraka ny mason-tsivana",
        "rcfilters-filtergroup-registration": "Fisoratan'ny mpikambana",
-       "rcfilters-filter-registered-label": "Nisoratra anarana",
-       "rcfilters-filter-registered-description": "Mpanova tafiditra.",
-       "rcfilters-filter-unregistered-label": "Tsy nisoratra anarana",
-       "rcfilters-filter-unregistered-description": "Mpikambana tsy niditra.",
        "rcfilters-filtergroup-authorship": "Manova ny tompon-tsoratra",
        "rcfilters-filter-editsbyself-label": "Ny fiovanao",
        "rcfilters-filter-editsbyself-description": "Fiovana nataonao",
index eb697b2..5a31555 100644 (file)
        "rcfilters-state-message-subset": "Филтерот не делува бидејќи неговиот исход веќе се содржи во {{PLURAL:$2|следниов поопфатен филтер|следниве поопфатни филтри}} (истакнете го за да го издвоите): $1",
        "rcfilters-state-message-fullcoverage": "Избирањето на сите филтри во групата е исто како да не сте избрале ниеден, така што овој филтер не делува. Во групата се опфатени: $1",
        "rcfilters-filtergroup-registration": "Регистрација на корисници",
-       "rcfilters-filter-registered-label": "Регистрирани",
-       "rcfilters-filter-registered-description": "Најавени уредници.",
-       "rcfilters-filter-unregistered-label": "Нерегистрирани",
-       "rcfilters-filter-unregistered-description": "Уредници кои не се најавени.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Овој филтер е протиставен со {{PLURAL:$2|следниов филтер|следниве филтри}} за искуство, {{PLURAL:$2|кој наоѓа|кои наоѓаат}} само регистрирани корисници: $1",
        "rcfilters-filtergroup-authorship": "Авторство на придонесот",
        "rcfilters-filter-editsbyself-label": "Ваши промени",
index 68f0ce2..1539f3f 100644 (file)
        "rcfilters-filterlist-title": "गाळण्या",
        "rcfilters-filterlist-noresults": "कोणतीच गाळणी सापडली नाही",
        "rcfilters-filtergroup-registration": "सदस्य नोंदणी",
-       "rcfilters-filter-registered-label": "नोंदणीकृत",
-       "rcfilters-filter-registered-description": "प्रवेशलेले सदस्य",
-       "rcfilters-filter-unregistered-label": "अ-नोंदणीकृत",
-       "rcfilters-filter-unregistered-description": "संपादक जे प्रवेशित नाहीत.",
        "rcfilters-filtergroup-authorship": "संपादनाचा लेखक",
        "rcfilters-filter-editsbyself-label": "आपली स्वत:ची संपादने",
        "rcfilters-filter-editsbyself-description": "आपली संपादने",
index 1bae5d8..3b74d02 100644 (file)
        "rcfilters-state-message-subset": "Dette filteret har ingen effekt fordi resultatene dens inkluderes i følgende, bredere {{PLURAL:$2|filter|filtre}} (prøv å merke for å skille det ut): $1",
        "rcfilters-state-message-fullcoverage": "Å velge alle filtre i en gruppe er det samme som å velge ingen, så dette filteret har ingen effekt. Gruppa inkluderer: $1",
        "rcfilters-filtergroup-registration": "Brukerregistrering",
-       "rcfilters-filter-registered-label": "Registrerte",
-       "rcfilters-filter-registered-description": "Innloggede brukere.",
-       "rcfilters-filter-unregistered-label": "Uregistrerte",
-       "rcfilters-filter-unregistered-description": "Brukere som ikke er logget inn.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Dette filteret konflikterer med følgende {{PLURAL:$2|erfaringsfilter|erfaringsfiltre}}, som finner kun registrerte brukere: $1",
        "rcfilters-filtergroup-authorship": "Bidragets forfatter",
        "rcfilters-filter-editsbyself-label": "Dine redigeringer",
index a00306d..2618e87 100644 (file)
        "rcfilters-state-message-subset": "Dit filter heeft geen effect omdat de resultaten ook worden gefilterd door {{PLURAL:$2|het|de}} bredere {{PLURAL:$2|filter|filters}} (probeer ze te markeren om ze te onderscheiden): $1",
        "rcfilters-state-message-fullcoverage": "Het selecteren van alle filters in deze groep is hetzelfde als geen filter selecteren, waardoor dit filter geen effect heeft. De groep bevat: $1",
        "rcfilters-filtergroup-registration": "Gebruikersregistratie",
-       "rcfilters-filter-registered-label": "Geregistreerd",
-       "rcfilters-filter-registered-description": "Ingelogde gebruikers.",
-       "rcfilters-filter-unregistered-label": "Niet-geregistreerd",
-       "rcfilters-filter-unregistered-description": "Gebruikers die niet zijn ingelogd.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Het \"Niet geregistreerd\" filter is niet actief, omdat het effect ongedaan wordt gemaakt door de volgende {{PLURAL:$2|filter|filters}} die alleen geregistreerde gebruikers {{PLURAL:$2|vindt|vinden}}: $1",
        "rcfilters-filtergroup-authorship": "Auteur van de bijdragen",
        "rcfilters-filter-editsbyself-label": "Uw eigen wijzigingen",
index 21533aa..6bcda57 100644 (file)
        "rcfilters-highlightmenu-title": "Vel ein farge",
        "rcfilters-filterlist-noresults": "Fann ingen filter",
        "rcfilters-filtergroup-registration": "Brukarregistrering",
-       "rcfilters-filter-registered-label": "Registrerte",
-       "rcfilters-filter-registered-description": "Innlogga brukarar.",
-       "rcfilters-filter-unregistered-label": "Uregistrerte",
-       "rcfilters-filter-unregistered-description": "Brukarar som ikkje er innlogga.",
        "rcfilters-filtergroup-authorship": "Forfattar",
        "rcfilters-filter-editsbyself-label": "Endringar av deg",
        "rcfilters-filter-editsbyself-description": "Dine eigne bidrag.",
index 1ebb171..0c4b303 100644 (file)
        "anontalk": "Discussion",
        "navigation": "Navigacion",
        "and": "&#32;e",
-       "qbfind": "Recercar",
-       "qbbrowse": "Far desfilar",
-       "qbedit": "Modificar",
-       "qbpageoptions": "Opcions de la pagina",
-       "qbmyoptions": "Mas opcions",
        "faq": "FAQ",
-       "faqpage": "Project:FAQ",
        "actions": "Accions",
        "namespaces": "Espacis de noms",
        "variants": "Variantas",
        "edit-local": "Modificar la descripcion locala",
        "create": "Crear",
        "create-local": "Apondre una descripcion locala",
-       "editthispage": "Modificar aquesta pagina",
-       "create-this-page": "Crear aquesta pagina",
        "delete": "Suprimir",
-       "deletethispage": "Suprimir aquesta pagina",
-       "undeletethispage": "Anullar la supression d'aquesta pagina",
        "undelete_short": "Restablir {{PLURAL:$1|1 modificacion| $1 modificacions}}",
        "viewdeleted_short": "Veire {{PLURAL:$1|una edicion escafada|$1 edicions escafadas}}",
        "protect": "Protegir",
        "protect_change": "modificar",
-       "protectthispage": "Protegir aquesta pagina",
        "unprotect": "Desprotegir",
-       "unprotectthispage": "Desprotegir aquesta pagina",
        "newpage": "Pagina novèla",
-       "talkpage": "Pagina de discussion",
        "talkpagelinktext": "Discussion",
        "specialpage": "Pagina especiala",
        "personaltools": "Aisinas personalas",
-       "articlepage": "Vejatz l'article",
        "talk": "Discussion",
        "views": "Afichatges",
        "toolbox": "Aisinas",
        "tool-link-userrights": "Modificar los gropes de {{GENDER:$1|l’utilizaire|l’utilizaira}}",
        "tool-link-userrights-readonly": "Veire los {{GENDER:$1|gropes utilizaire}}",
        "tool-link-emailuser": "Mandar un corrièr electronic a {{GENDER:$1|l’utilizaire|l’utilizaira}}",
-       "userpage": "Pagina d'utilizaire",
-       "projectpage": "Pagina meta",
        "imagepage": "Veire la pagina del fichièr",
        "mediawikipage": "Vejatz la pagina dels messatges",
        "templatepage": "Vejatz la pagina del modèl",
        "rcfilters-filterlist-title": "Filtres",
        "rcfilters-filterlist-noresults": "Cap de filtre pas trobat",
        "rcfilters-filtergroup-registration": "Inscripcion de l'utilizaire",
-       "rcfilters-filter-registered-label": "Enregistrat",
-       "rcfilters-filter-registered-description": "Editors connectats.",
-       "rcfilters-filter-unregistered-label": "Desinscrit",
-       "rcfilters-filter-unregistered-description": "Editors que son pas connectats.",
        "rcfilters-filtergroup-authorship": "Modificar la paternitat",
        "rcfilters-filter-editsbyself-label": "Vòstras pròprias modificacions",
        "rcfilters-filter-editsbyself-description": "Vòstras modificacions.",
index d773224..7bf53bc 100644 (file)
        "rcfilters-state-message-subset": "Ten filtr nie wywoła efektu, ponieważ pasujące do niego wyniki są zawarte w bardziej {{PLURAL:$2|szczegółowym filtrze|szczegółowych filtrach}} (spróbuj podświetlić, aby je rozróżnić): $1",
        "rcfilters-state-message-fullcoverage": "Wybranie wszystkich filtrów w grupie działa tak samo jak niewybranie żadnego, więc taki filtr nie da żadnego efektu. W grupie zawarto też: $1",
        "rcfilters-filtergroup-registration": "Rejestracja użytkownika",
-       "rcfilters-filter-registered-label": "Zarejestrowani",
-       "rcfilters-filter-registered-description": "Zalogowani edytorzy.",
-       "rcfilters-filter-unregistered-label": "Niezarejestrowani",
-       "rcfilters-filter-unregistered-description": "Niezalogowani",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Ten filtr koliduje z {{PLURAL:$2|poniższym filtrem|poniższymi filtrami}} doświadczenia, {{PLURAL:$2|który wyszukuje|które wyszukują}} tylko zarejestrowanych użytkowników: $1",
        "rcfilters-filtergroup-authorship": "Autorstwo wkładu",
        "rcfilters-filter-editsbyself-label": "Zmiany dokonane przeze mnie",
        "lastmodifiedatby": "Ostatnia edycja tej strony: $2, $1 (autor zmian: $3)",
        "othercontribs": "Inni autorzy: $1.",
        "others": "inni",
-       "siteusers": "{{PLURAL:$2|użytkownik |użytkownicy}}{{GRAMMAR:D.lp|{{SITENAME}}}}{{PLURAL:$2||:}} $1",
+       "siteusers": "{{PLURAL:$2|użytkownik|użytkownicy}} {{GRAMMAR:D.lp|{{SITENAME}}}}{{PLURAL:$2||:}} $1",
        "anonusers": "{{PLURAL:$2|niezalogowany użytkownik|niezalogowani użytkownicy}} {{GRAMMAR:D.lp|{{SITENAME}}}}{{PLURAL:$2||:}} $1",
        "creditspage": "Autorzy",
        "nocredits": "Brak informacji o autorach tej strony.",
index 3116f42..b9f08d5 100644 (file)
        "rcfilters-state-message-subset": "Este filtro não tem efeito porque seus resultados estão incluídos com {{PLURAL:$2|o seguinte filtro mais amplo|os seguintes filtros mais amplos}} (tente realçar para distingui-lo): $1",
        "rcfilters-state-message-fullcoverage": "Selecionar todos os filtros em um grupo é o mesmo que não selecionar nenhum, portanto este filtro não tem efeito. O grupo inclui: $1",
        "rcfilters-filtergroup-registration": "Registro de usuário",
-       "rcfilters-filter-registered-label": "Registrado",
-       "rcfilters-filter-registered-description": "Editores conectados.",
-       "rcfilters-filter-unregistered-label": "Não registrado",
-       "rcfilters-filter-unregistered-description": "Editores que não estão conectados.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Este filtro entra em conflito com {{PLURAL:$2|o seguinte filtro|os seguintes filtros}} de Experiência, que {{PLURAL:$2|encontra|encontram}} somente usuários registrados: $1",
        "rcfilters-filtergroup-authorship": "Autoria da contribuição",
        "rcfilters-filter-editsbyself-label": "Mudanças por você",
index 5c24a2b..cbf3ceb 100644 (file)
        "rcfilters-state-message-subset": "Este filtro não produz efeito porque os seus resultados já estão incluídos nos {{PLURAL:$2|do seguinte filtro mais abrangente|dos seguintes filtros mais abrangentes}} (tente usar o realce para diferenciá-lo): $1",
        "rcfilters-state-message-fullcoverage": "Selecionar todos os filtros de um grupo é o mesmo que não selecionar nenhum, portanto este filtro não produz efeito. O grupo inclui: $1",
        "rcfilters-filtergroup-registration": "Registo de utilizador",
-       "rcfilters-filter-registered-label": "Registado",
-       "rcfilters-filter-registered-description": "Editores autenticados.",
-       "rcfilters-filter-unregistered-label": "Não registado",
-       "rcfilters-filter-unregistered-description": " Editores que não estão autenticados.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Este filtro entra em conflito com {{PLURAL:$2|o seguinte filtro|os seguintes filtros}} de Experiência, que só {{PLURAL:$2|encontra|encontram}} utilizadores registados: $1",
        "rcfilters-filtergroup-authorship": "Autoria da contribuição",
        "rcfilters-filter-editsbyself-label": "Modificações feitas por si",
index 44335fc..83c8f8d 100644 (file)
        "rcfilters-state-message-subset": "Tooltip shown when hovering over a filter tag when one or more broader filters that contain the hovered filter are also selected. This indicates that the hovered filter has no effect because all the results it matches are also matched by the broader filter(s).  Parameters:\n* $1 - Comma-separated string of selected broader filters that this filter is a subset of\n* $2 - Count of filters in $1, for PLURAL",
        "rcfilters-state-message-fullcoverage": "Tooltip shown when hovering over a filter tag when all the filters in its group are selected. This indicates that the hovered filter has no effect because the selected filters in the group cover all changes. Parameters:\n* $1 - Comma-separated string of selected filters in the group\n* $2 - Count of filters in $1, for PLURAL",
        "rcfilters-filtergroup-registration": "Title for the filter group for editor registration type.",
-       "rcfilters-filter-registered-label": "Label for the filter for showing edits made by logged-in users.\n{{Identical|Registered}}",
-       "rcfilters-filter-registered-description": "Description for the filter for showing edits made by logged-in users.",
-       "rcfilters-filter-unregistered-label": "Label for the filter for showing edits made by logged-out users.\n{{Identical|Unregistered}}",
-       "rcfilters-filter-unregistered-description": "Description for the filter for showing edits made by logged-out users.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Tooltip shown when hovering over a Unregistered filter tag, when a User Experience Level filter is also selected.\n\n\"Unregistered\" is {{msg-mw|Rcfilters-filter-unregistered-label}}.\n\n\"Experience\" is based on {{msg-mw|Rcfilters-filtergroup-userExpLevel}}.\n\nThis indicates that no results will be shown, because users matched by the User Experience Level groups are never unregistered.  Parameters:\n* $1 - Comma-separated string of selected User Experience Level filters, e.g. \"Newcomer, Experienced\"\n* $2 - Count of selected User Experience Level filters, for PLURAL",
        "rcfilters-filtergroup-authorship": "Title for the filter group for edit authorship. This filter group allows the user to choose between \"Your own edits\" and \"Edits by others\". More info: https://phabricator.wikimedia.org/T149859",
        "rcfilters-filter-editsbyself-label": "Label for the filter for showing edits made by the current user.",
index 55d3bdb..02f563e 100644 (file)
        "rcfilters-state-message-subset": "Acest filtru nu are efecte deoarece rezultatele sale sunt incluse în filtrele cu selectie mai largă {{PLURAL:$2|filtru|filtre}} (încercați să subliniați pentru a o deosebi): $1",
        "rcfilters-state-message-fullcoverage": "Selectarea tuturor filtrelor dintr-un grup este aceeași cu cea selectată, astfel încât acest filtru nu are efect. Grupul include: $1",
        "rcfilters-filtergroup-registration": "Înregistrare utilizator",
-       "rcfilters-filter-registered-label": "Înregistrat",
-       "rcfilters-filter-registered-description": "Editorii conectați.",
-       "rcfilters-filter-unregistered-label": "Neînregistrat",
-       "rcfilters-filter-unregistered-description": "Editorii care nu sunt conectați.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Acest filtru contravine {{PLURAL:$2|filtru|filtre}} de Experiență, care {{PLURAL:$2|găsesc|gasește}} doar userii inreistrați: $1",
        "rcfilters-filtergroup-authorship": "Contribuția autorului",
        "rcfilters-filter-editsbyself-label": "Modificările tale",
index 92c4bb1..fe2444a 100644 (file)
        "lockedbyandtime": "(de $1 'u $2 a le $3)",
        "move-page": "Spuèste $1",
        "move-page-legend": "Spuèste 'a pàgene",
-       "movepagetext": "Ausanne 'u form aqquà sotte ste cange 'u nome d'a pàgene, spustanne tutte 'a storia soje sus a 'u nome nuéve.\nU' vecchie titole devènde 'nu ridirezionamende sus 'a pàgena nove.\nTu puè aggiornà 'u ridirezionamende ca apponde a 'u titole origgenale automaticamende.\nCe tu no ste scacchie, sta secure de condrollà [[Special:DoubleRedirects|doppie ridirezionaminde]] o [[Special:BrokenRedirects|ridirezionaminde scuasciate]].\nTu si 'u responsabbile de quidde ca cumbine, assicurate ca 'u collegamende condinue a appondà addò avessa scè.\n\nVide Bbuene ca 'a pàgene '''non''' g'avène spustate ce esiste n'otra pàgene cu 'u titole nuéve, a mene ca jè vacande o jè 'na pàgene de ridirezionamende senza storie.\nQuieste significhe ca tu puè fà turnà 'u vecchie nome 'a pàgene ce jedde ha state renomenate e t'è rese conde ca è fatte 'na studecarije sovrascrevènne 'na pàgene esistende.\n\n'''ATTENZIONE!'''\nQuiste pò essere 'nu cangiamende drastiche e inaspettate de 'na pàgene famose assaje;\npe piacere a essere secure-secure de le conseguenze apprime de condinuà.",
-       "movepagetext-noredirectfixer": "Ausanne 'u module aqquà sotte puè renomenà 'na pàgene, spustanne tutte 'a storia soje sotte a 'u nome nuève.\n'U titele vecchie addevende 'na pàgene de ridirezionamende a 'u titele nuève.\nMe raccomande condrolle le redirezionaminde [[Special:DoubleRedirects|a doppie]] o [[Special:BrokenRedirects|scuasciate]].\nTu si responsabbele de assicurarte ca le collagaminde appondene a 'u punde giuste.\n\nVide ca 'a pàgene '''non''' g'avene spustate ce già stè 'na pàgene cu 'u titele nuève, a meno che non g'è vacande o jè 'nu ridirezionamende e non ge tène 'na storie de cangiaminde.\nQuiste signifeche ca jè possibbele renominà 'na pàgene accume se chiamave apprime addò tu è fatte 'n'errore e non g'è possibbele sovrascirevere 'na pàgene esistende.\n\n'''Fà Attenziò!'''\nQuiste pò essere 'nu cangiamende inaspettate pe 'na pàgene popolare;\nPe piacere ha essere secure secure de avere capite le conzeguenze apprime de scè nnande.",
+       "movepagetext": "Ausanne 'u form aqquà sotte ste cange 'u nome d'a pàgene, spustanne tutte 'a storia soje sus a 'u nome nuéve.\nU' vecchie titole devènde 'nu ridirezionamende sus 'a pàgena nove.\nTu puè aggiornà 'u ridirezionamende ca apponde a 'u titole origgenale automaticamende.\nCe tu no ste scacchie, sta secure de condrollà [[Special:DoubleRedirects|doppie ridirezionaminde]] o [[Special:BrokenRedirects|ridirezionaminde scuasciate]].\nTu si 'u responsabbile de quidde ca cumbine, assicurate ca 'u collegamende condinue a appondà addò avessa scè.\n\nVide Bbuene ca 'a pàgene <strong>non</strong> g'avène spustate ce esiste n'otra pàgene cu 'u titole nuéve, a mene ca jè vacande o jè 'na pàgene de ridirezionamende senza storie.\nQuieste significhe ca tu puè fà turnà 'u vecchie nome 'a pàgene ce jedde ha state renomenate e t'è rese conde ca è fatte 'na studecarije sovrascrevènne 'na pàgene esistende.\n\n<strong>ATTENZIONE!</strong>\nQuiste pò essere 'nu cangiamende drastiche e inaspettate de 'na pàgene famose assaje;\npe piacere a essere secure-secure de le conseguenze apprime de condinuà.",
+       "movepagetext-noredirectfixer": "Ausanne 'u module aqquà sotte puè renomenà 'na pàgene, spustanne tutte 'a storia soje sotte a 'u nome nuève.\n'U titele vecchie addevende 'na pàgene de ridirezionamende a 'u titele nuève.\nMe raccomande condrolle le redirezionaminde [[Special:DoubleRedirects|a doppie]] o [[Special:BrokenRedirects|scuasciate]].\nTu si responsabbele de assicurarte ca le collagaminde appondene a 'u punde giuste.\n\nVide ca 'a pàgene <strong>non</strong> g'avene spustate ce già stè 'na pàgene cu 'u titele nuève, a meno che non g'è vacande o jè 'nu ridirezionamende e non ge tène 'na storie de cangiaminde.\nQuiste signifeche ca jè possibbele renominà 'na pàgene accume se chiamave apprime addò tu è fatte 'n'errore e non g'è possibbele sovrascirevere 'na pàgene esistende.\n\n<strong>Fà Attenziò!</strong>\nQuiste pò essere 'nu cangiamende inaspettate pe 'na pàgene popolare;\nPe piacere ha essere secure secure de avere capite le conzeguenze apprime de scè nnande.",
        "movepagetalktext": "Ce tu cazze sta buatte, 'A pàgene de le 'ngazzaminde associate avène spustate automaticamende, sembre ca non g'esisite 'n'otra pàgene de le 'ngazzaminde.\n\nJndr'à stu case, 'a pàgene non g'avène spustate e pò t'a cupià a màne 'u condenute sue.",
        "moveuserpage-warning": "'''Attenziò:''' Tu stè spuèste 'na pàgene utende. Vide bbuène ca sulamende 'a pàgene avène spustate ma l'utende ''non'' g'avene renomenate.",
        "movecategorypage-warning": "<strong>Attenziò:</strong> Tu vuè ccu spuéste 'na pàgene categorije. Vide ca sulamende 'a pàgene avène spustate ma tutte le pàggene ca stonne jndr'à categorije <em>non</em> g'avène spustate sotte a quedda nove.",
index 6ce8cb0..15f05be 100644 (file)
        "rcfilters-state-message-subset": "Фильтр не будет иметь эффекта, поскольку его результаты включены в {{PLURAL:$2|следующий более широкий фильтр|следующие более широкие фильтры}} (попробуйте подсвечивание для различения): $1",
        "rcfilters-state-message-fullcoverage": "Выбор всех фильтров в группе — это то же самое, что и отсутствие какого-либо выбора, поэтому этот фильтр не имеет никакого эффекта. Включённые группы: $1",
        "rcfilters-filtergroup-registration": "Регистрация участников",
-       "rcfilters-filter-registered-label": "Зарегистрированные",
-       "rcfilters-filter-registered-description": "Вошедшие редакторы.",
-       "rcfilters-filter-unregistered-label": "Незарегистрированные",
-       "rcfilters-filter-unregistered-description": "Редакторы, которые не вошли в систему.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Этот фильтр конфликтует со {{PLURAL:$2|следующим фильтром|следующими фильтрами}} по опыту, {{PLURAL:$2|который ищет|которые ищут}} только зарегистрированных пользователей: $1",
        "rcfilters-filtergroup-authorship": "Редактировать авторство",
        "rcfilters-filter-editsbyself-label": "Внесённые вами изменения",
index 4ef01ba..e4455bb 100644 (file)
        "rcfilters-state-message-subset": "Сиидэ туһата суох, тоҕо диэтэххэ кини түмүгэ атын {{PLURAL:$2|сиидэ түмүгэр|сиидэлэр түмүктэригэр}} киирэр эбит (өҥүн уларытыыны туһанан сиһилии көрүөххүн сөп): $1",
        "rcfilters-state-message-fullcoverage": "Сиидэни барытын талыы тугу да талбатаҕыҥ тэҥэ, онон сиидэ туһата суох. Холбоммут бөлөхтөр: $1",
        "rcfilters-filtergroup-registration": "Кыттааччылары бэлиэтээһин",
-       "rcfilters-filter-registered-label": "Бэлиэтэммиттэр",
-       "rcfilters-filter-registered-description": "Киирбит эрэдээктэрдэр.",
-       "rcfilters-filter-unregistered-label": "Бэлиэтэммэтэхтэр",
-       "rcfilters-filter-unregistered-description": "Киирбэтэх эрэдээктэрдэр.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Бу сиидэ бэлиэтэммит эрэ кыттааччылары көрөр {{PLURAL:$2|сиидэни|сиидэлэри}} кытта сөп түбэспэт: $1",
        "rcfilters-filtergroup-authorship": "Ааптарын уларытыы",
        "rcfilters-filter-editsbyself-label": "Эн тус бэйэҥ уларытыыларыҥ",
index a0aa62e..d125127 100644 (file)
        "rcfilters-state-message-subset": "This filter haes na effect acause its results are includit wi thae o the follaein, broader {{PLURAL:$2|filter|filters}} (try heichlichtin tae distinguish it): $1",
        "rcfilters-state-message-fullcoverage": "Selectin aw filters in a group is the same as selectin nane, so this filter haes na effect. Group includes: $1",
        "rcfilters-filtergroup-registration": "Uiser registration",
-       "rcfilters-filter-registered-label": "Registered",
-       "rcfilters-filter-registered-description": "Logged-in eeditors.",
-       "rcfilters-filter-unregistered-label": "Unregistered",
-       "rcfilters-filter-unregistered-description": "Eeditors wha arena logged in.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "This filter conflicts wi the follaein Experience {{PLURAL:$2|filter|filters}}, which {{PLURAL:$2|finds|find}} anerly registered uisers: $1",
        "rcfilters-filtergroup-authorship": "Contreebution authorship",
        "rcfilters-filter-editsbyself-label": "Cheenges by ye",
index 010223b..184ef74 100644 (file)
        "anontalk": "بحث",
        "navigation": "رھنمائي",
        "and": "&#32؛۽",
-       "qbfind": "ڳوليو",
-       "qbbrowse": "جھانگيو",
-       "qbedit": "سنواريو",
-       "qbpageoptions": "هيءُ صفحو",
-       "qbmyoptions": "منهنجا صفحا",
        "faq": "ڪپس",
-       "faqpage": "Project:ڪپس",
        "actions": "ڪارگذاريون",
        "namespaces": "نانءُپولارَ",
        "variants": "بَدَلَ",
        "edit-local": "مقامي تشريح کي ترميميو",
        "create": "سرجيو",
        "create-local": "مقامي تشريح ڏيو",
-       "editthispage": "هيءُ صفحو سنواريو",
-       "create-this-page": "اهو صفحو نئين سر جوڙيو",
        "delete": "ڊاھيو",
-       "deletethispage": "هيءُ صفحو ڊاهيو",
-       "undeletethispage": "هيءُ صفحو اڻ ڊاهيو",
        "undelete_short": "اڻڊاهيو {{PLURAL:$1|هڪ ترميم|$1 ترميمون}}",
        "viewdeleted_short": "ڏسو {{PLURAL:$1|هڪ ڊاٺل ترميم|$1 ڊاٺل ترميمون}}",
        "protect": "تحفظيو",
        "protect_change": "تبديل ڪريو",
-       "protectthispage": "هيءُ صفحو تحفظيو",
        "unprotect": "تحفظ بدلايو",
-       "unprotectthispage": "هن صفحي جو تحفظ بدلايو",
        "newpage": "نئون صفحو",
-       "talkpage": "هن صفحي تي بحث ڪريو",
        "talkpagelinktext": "بحث",
        "specialpage": "خاص صفحو",
        "personaltools": "ذاتي اوزار",
-       "articlepage": "مسودو ڏسو",
        "talk": "بحث",
        "views": "ڏيٺون",
        "toolbox": "اوزارَ",
        "tool-link-userrights": "{{GENDER:$1|يوزر}} گروھ تبديل ڪريو",
        "tool-link-userrights-readonly": "{{GENDER:$1|يوزر}} گروھ ڏسو",
        "tool-link-emailuser": "ھن {{GENDER:$1|يوزر}} ڏانھن برقٽپال موڪليو",
-       "userpage": "يوزر صفحو ڏسو",
-       "projectpage": "رٿائي صفحو ڏسو",
        "imagepage": "ذريعاتي صفحو ڏسو",
        "mediawikipage": "نياپي جو صفحو ڏسو",
        "templatepage": "سانچي جو صفحو ڏسو",
        "rcfilters-filterlist-whatsthis": "هي ڇا آهي؟",
        "rcfilters-highlightbutton-title": "نتيجن کي نمايان (هاءِ لائيٽ) ڪيو",
        "rcfilters-highlightmenu-title": "رنگ چونڊيو",
-       "rcfilters-filter-registered-label": "رجسٽر ٿيل",
-       "rcfilters-filter-unregistered-label": "اڻ رجسٽر ٿيل",
        "rcfilters-filter-editsbyself-label": "مون پاران تبديليون",
        "rcfilters-filter-editsbyother-label": "ٻين پاران تبديليون",
        "rcfilters-filter-user-experience-level-newcomer-label": "نوان ايندڙ",
index d8258da..45ab90b 100644 (file)
        "rcfilters-filterlist-title": "တူဝ်ထွင်",
        "rcfilters-filterlist-noresults": "ဢမ်ႇႁၼ်မီးတူဝ်ထွင်",
        "rcfilters-filtergroup-registration": "လွင်ႈတၢင်ႇမၢႆၽၢင် ၽူႈၸႂ်ႉတိုဝ်း",
-       "rcfilters-filter-registered-label": "တၢင်ႇမၢႆၾၢင်ဝႆႉယဝ်ႉ",
-       "rcfilters-filter-registered-description": "ၽူႈမႄးထတ်းၶဝ် ၶဝ်ႈလွၵ်ႉဢိၼ်ႇဝႆႉ",
-       "rcfilters-filter-unregistered-label": "ဢမ်ႇလႆႈတၢင်ႇမၢႆႇၽၢင်ဝႆႉ",
-       "rcfilters-filter-unregistered-description": "ၽူႈမႄးထတ်း ၸိူဝ်းဢမ်ႇလႆႈၶဝ်ႈ လွၵ်ႉဢိၼ်ႇဝႆႉ",
        "rcfilters-filtergroup-authorship": "လွင်ႈၶဝ်ႈႁူမ်ႈ ၸဝ်ႈပၢႆၵမ်",
        "rcfilters-filter-editsbyself-label": "လွင်ႈ​လႅၵ်ႈလၢႆႈ ၸဝ်ႈၵဝ်ႇႁဵတ်း",
        "rcfilters-filter-editsbyself-description": "လွင်ႈၶဝ်ႈႁူမ်ႈ ၶွင်တူဝ်ၸဝ်ႈၵဝ်ႇ",
index bd66bb1..402da89 100644 (file)
        "rcfilters-state-message-subset": "Ta filter nima učinka, saj njegove rezultate {{PLURAL:$2|vključuje naslednji, širši filter|vključujeta naslednja, širša filtra|vključujejo naslednji, širši filtri}} (označite jih, da razlikujete med njimi): $1",
        "rcfilters-state-message-fullcoverage": "Izbira vseh filtrov v skupini je enako kot izbira nobenega, zato ta filter nima učinka. Skupina vključuje: $1",
        "rcfilters-filtergroup-registration": "Registracija uporabnika",
-       "rcfilters-filter-registered-label": "Registriran",
-       "rcfilters-filter-registered-description": "Prijavljeni uredniki.",
-       "rcfilters-filter-unregistered-label": "Neregistriran",
-       "rcfilters-filter-unregistered-description": "Uredniki, ki niso prijavljeni.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Filter je v sporu z {{PLURAL:$2|naslednjim filtrom|naslednjima filtroma|naslednjimi filtri}} Izkušnje, ki {{PLURAL:$2|najde|najdeta|najdejo}} samo registrirane uporabnike: $1",
        "rcfilters-filtergroup-authorship": "Avtorstvo prispevka",
        "rcfilters-filter-editsbyself-label": "Vaše spremembe",
index 7d94fa6..0ca705a 100644 (file)
        "anontalk": "Wadahadalka ciwaanka IP:kaan",
        "navigation": "Gooshitaan",
        "and": "&#32;iyo",
-       "qbfind": "Raadi",
-       "qbbrowse": "Ka soo raadi",
-       "qbedit": "Wax ka bedel",
-       "qbpageoptions": "Boggaan",
-       "qbmyoptions": "Boggageyga",
        "faq": "SIL",
-       "faqpage": "Project:SIL",
        "actions": "Waxa dhacaayo",
        "namespaces": "Xarun magaceedyada",
        "variants": "Isbedelada",
        "view": "Itusi",
        "edit": "Wax ka bedel",
        "create": "Sameey",
-       "editthispage": "Boggaan wax ka bedel",
-       "create-this-page": "Sameey boggaan",
        "delete": "Tirtir",
-       "deletethispage": "Tirtir bogaan",
        "undelete_short": "Ha tirtirin {{PLURAL:$1|hal bedel|$1  bedelood}}",
        "viewdeleted_short": "Itusi {{PLURAL:$1|halxabo oo bedelkii la tirtiray|$1 bedelyadii la tirtiray}}",
        "protect": "Difaac",
        "protect_change": "Wax ka bedel",
-       "protectthispage": "Difaac boggaan",
        "unprotect": "Bedel difaacida",
-       "unprotectthispage": "Bedel difaacida boggaan",
        "newpage": "Bog cusub",
-       "talkpage": "Wadahadalka boggan",
        "talkpagelinktext": "Wadahadal",
        "specialpage": "Bogaga qaaska ah",
        "personaltools": "Qalabkaaga",
-       "articlepage": "Fiiri bogga qoraalka",
        "talk": "Wadahadal",
        "views": "Muuqaalka",
        "toolbox": "Qalabka shaqada",
-       "userpage": "Itus bogga isticmaalaha",
-       "projectpage": "Itus bogga mashruuca",
        "imagepage": "Itusi faylka bogga",
        "mediawikipage": "Fiiri bogga fariinta",
        "templatepage": "Fiiri bogga tusmada",
        "rcfilters-search-placeholder": "Shaandhee isbeddellada ugu cusub (Mushaax ama gudagal qorista)",
        "rcfilters-highlightbutton-title": "Barashada natiijooyinka",
        "rcfilters-filtergroup-registration": "Diiwaan-galinta adeegsadaha",
-       "rcfilters-filter-registered-description": "Wax beddelayaasha gudaha ku jira",
-       "rcfilters-filter-unregistered-label": "Aan diiwaanka ku jirin",
-       "rcfilters-filter-unregistered-description": "Wax baddelayasha aan diiwaanka ku jirin",
        "rcfilters-filter-humans-label": "Dad (maaha bot)",
        "rcfilters-filter-pageedits-label": "Beddelka bogga",
        "rcfilters-filter-newpages-label": "Bogagga la sameeyay",
index 1d0d3e4..c3ecc0d 100644 (file)
        "rcfilters-filterlist-noresults": "Nuk u gjet ndonjë filtër",
        "rcfilters-noresults-conflict": "Nuk u gjetën rezultate sepse kriteret e kërkimit janë kundërthënës",
        "rcfilters-filtergroup-registration": "Regjistrimi i përdoruesit",
-       "rcfilters-filter-registered-label": "Regjistruar",
-       "rcfilters-filter-registered-description": "Redaktorët e kyçur",
-       "rcfilters-filter-unregistered-label": "Ç'regjistruar",
-       "rcfilters-filter-unregistered-description": "Redaktorët që nuk janë të kyçur",
        "rcfilters-filtergroup-authorship": "Autorësia e kontributit",
        "rcfilters-filter-editsbyself-label": "Ndryshimet nga ti",
        "rcfilters-filter-editsbyself-description": "Kontributet tuaja.",
index 8eadb75..8c29d71 100644 (file)
        "page_last": "последња",
        "histlegend": "Избор разлика: изаберите кутијице измена за упоређивање и притисните ентер или дугме на дну.<br />\nОбјашњење: <strong>({{int:cur}})</strong> = разлика с тренутном изменом, <strong>({{int:last}})</strong> = разлика с претходном изменом, <strong>{{int:minoreditletter}}</strong> = мала измена",
        "history-fieldset-title": "Преглед измена",
-       "history-show-deleted": "Само Ð¾Ð±Ñ\80иÑ\81ано",
+       "history-show-deleted": "Само Ð¾Ð±Ñ\80иÑ\81ане Ð¸Ð·Ð¼Ñ\98ене",
        "histfirst": "најстарије",
        "histlast": "најновије",
        "historysize": "({{PLURAL:$1|1 бајт|$1 бајта|$1 бајтова}})",
        "prefs-help-prefershttps": "Ова подешавања ће ступити на снагу при следећој пријави.",
        "prefswarning-warning": "Променили сте ваша подешавања али нисте их још сачували.\nАко не притиснете „$1“ ваша подешавања ће бити изгубљена.",
        "prefs-tabs-navigation-hint": "Савет: можете користити типке са левом и десном стрелицом за кретање кроз картице.",
-       "userrights": "УпÑ\80авÑ\99аÑ\9aе ÐºÐ¾Ñ\80иÑ\81ниÑ\87ким Ð¿Ñ\80авима",
+       "userrights": "Ð\9aоÑ\80иÑ\81ниÑ\87ка Ð¿Ñ\80ава",
        "userrights-lookup-user": "Изабери корисника",
        "userrights-user-editname": "Корисничко име:",
        "editusergroup": "Учитај корисничке групе",
        "recentchanges-legend-heading": "<strong>Легенда:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|списак нових страница]])",
        "recentchanges-submit": "Прикажи",
+       "rcfilters-legend-heading": "<strong>Списак скраћеница:</strong>",
        "rcfilters-activefilters": "Активни филтери",
-       "rcfilters-quickfilters": "Ð\91Ñ\80зе Ð²ÐµÐ·Ðµ",
+       "rcfilters-quickfilters": "СаÑ\87Ñ\83вани Ñ\84илÑ\82еÑ\80и",
        "rcfilters-savedqueries-defaultlabel": "Сачувани филтери",
        "rcfilters-savedqueries-rename": "Преименуј",
        "rcfilters-savedqueries-setdefault": "Постави као подразумевано",
        "rcfilters-savedqueries-unsetdefault": "Уклони као подразумевано",
        "rcfilters-savedqueries-remove": "Уклони",
        "rcfilters-savedqueries-new-name-label": "Име",
-       "rcfilters-savedqueries-apply-label": "Направи брзу везу",
+       "rcfilters-savedqueries-apply-label": "Направи филтер",
        "rcfilters-savedqueries-cancel-label": "Откажи",
-       "rcfilters-savedqueries-add-new-title": "СаÑ\87Ñ\83ваÑ\98 Ñ\84илÑ\82еÑ\80е ÐºÐ°Ð¾ Ð±Ñ\80зÑ\83 Ð²ÐµÐ·Ñ\83",
+       "rcfilters-savedqueries-add-new-title": "СаÑ\87Ñ\83ваÑ\98 Ñ\82Ñ\80енÑ\83Ñ\82не Ð¿Ð¾Ñ\81Ñ\82авке Ñ\84илÑ\82еÑ\80а",
        "rcfilters-restore-default-filters": "Враћање подразумеваних филтера",
        "rcfilters-clear-all-filters": "Уклони све филтере",
        "rcfilters-empty-filter": "Нема активних филтера. Сви доприноси су приказани.",
        "rcfilters-state-message-subset": "Овај филтер нема ефекта јер су његови резултати укључени са онима {{PLURAL:$2|следећег, ширег филтера|следећих, ширих филтера}} (покушајте са означавањем да бисте их распознали): $1",
        "rcfilters-state-message-fullcoverage": "Одабир свих филтера у групи је исто као и одабир ниједног, тако да овај филтер нема ефекта. Група укључује: $1",
        "rcfilters-filtergroup-registration": "Регистрација корисника",
-       "rcfilters-filter-registered-label": "Регистровани",
-       "rcfilters-filter-registered-description": "Пријављени уредници.",
-       "rcfilters-filter-unregistered-label": "Нерегистровани",
-       "rcfilters-filter-unregistered-description": "Уредници који нису пријављени.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Овај филтер је у сукобу са следећим {{PLURAL:$2|филтером|филтерима}} за искуство, који {{PLURAL:$2|проналази|проналазе}} само регистроване кориснике: $1",
        "rcfilters-filtergroup-authorship": "Ауторство доприноса",
        "rcfilters-filter-editsbyself-label": "Ваше измене",
        "lonelypagestext": "Следеће странице нису повезане с другим страницама, нити су укључене трансклузијом у друге странице.",
        "uncategorizedpages": "Некатегорисане странице",
        "uncategorizedcategories": "Некатегорисане категорије",
-       "uncategorizedimages": "Ð\94аÑ\82оÑ\82еке Ð±ÐµÐ· ÐºÐ°Ñ\82егоÑ\80иÑ\98а",
+       "uncategorizedimages": "Ð\9dекаÑ\82егоÑ\80иÑ\81ане Ð´Ð°Ñ\82оÑ\82еке",
        "uncategorizedtemplates": "Некатегорисани шаблони",
        "unusedcategories": "Некоришћене категорије",
        "unusedimages": "Некоришћене датотеке",
index 8de9d64..9e77bbe 100644 (file)
        "recentchanges-legend-heading": "<strong>Legenda:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|spisak novih stranica]])",
        "recentchanges-submit": "Prikaži",
+       "rcfilters-legend-heading": "<strong>Spisak skraćenica:</strong>",
        "rcfilters-activefilters": "Aktivni filteri",
        "rcfilters-filtergroup-registration": "Registracija korisnika",
-       "rcfilters-filter-registered-label": "Registrovani",
-       "rcfilters-filter-registered-description": "Prijavljeni urednici.",
-       "rcfilters-filter-unregistered-label": "Neregistrovani",
-       "rcfilters-filter-unregistered-description": "Urednici koji nisu prijavljeni.",
        "rcfilters-filtergroup-authorship": "Autorstvo doprinosa",
        "rcfilters-filter-user-experience-level-newcomer-label": "Novajlije",
        "rcfilters-filter-user-experience-level-newcomer-description": "Manje od 10 izmjena i 4 dana aktivnosti.",
        "lonelypagestext": "Sledeće stranice nisu povezane s drugim stranicama, niti su uključene transkluzijom u druge stranice.",
        "uncategorizedpages": "Nekategorisane stranice",
        "uncategorizedcategories": "Nekategorisane kategorije",
-       "uncategorizedimages": "Datoteke bez kategorija",
+       "uncategorizedimages": "Nekategorisane datoteke",
        "uncategorizedtemplates": "Nekategorisani šabloni",
        "unusedcategories": "Nekorišćene kategorije",
        "unusedimages": "Nekorišćene datoteke",
index f129609..89908e8 100644 (file)
        "rcfilters-highlightmenu-help": "Pilih warna pikeun nyorot ieu properti",
        "rcfilters-filterlist-noresults": "Taya saringan nu kapanggih",
        "rcfilters-filtergroup-registration": "Padaptaran pamaké",
-       "rcfilters-filter-registered-label": "Kadaptar",
-       "rcfilters-filter-registered-description": "Éditor asup log",
-       "rcfilters-filter-unregistered-label": "Teu kadaptar",
-       "rcfilters-filter-unregistered-description": "Éditor nu teu asup log.",
        "rcfilters-filtergroup-authorship": "Kontribusi kapangarangan",
        "rcfilters-filter-editsbyself-label": "Éditan meunang anjeun",
        "rcfilters-filter-editsbyself-description": "Kontribusi anjeun.",
index 0945600..2b44b3d 100644 (file)
        "rcfilters-state-message-subset": "Detta filter har ingen effekt, eftersom resultaten inkluderar följande, bredare {{PLURAL:$2|filter}} (försök att markera för att särskilja det): $1",
        "rcfilters-state-message-fullcoverage": "Att markera alla filter i en grupp är detsamma som att markera inget alls, så detta filter har igen effekt. Grupper som inkluderas: $1",
        "rcfilters-filtergroup-registration": "Användarregistrering",
-       "rcfilters-filter-registered-label": "Registrerade",
-       "rcfilters-filter-registered-description": "Inloggade redigerare.",
-       "rcfilters-filter-unregistered-label": "Oregistrerade",
-       "rcfilters-filter-unregistered-description": "Redigerare som inte är inloggade.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Detta filter är i konflikt med följande {{PLURAL:$2|upplevelsefilter}}, som endast {{PLURAL:$2|hittar}} registrerade användare: $1",
        "rcfilters-filtergroup-authorship": "Författarskap av bidrag",
        "rcfilters-filter-editsbyself-label": "Redigeringar av dig",
        "undelete-search-title": "Sök efter raderade sidor",
        "undelete-search-box": "Sök efter raderade sidor",
        "undelete-search-prefix": "Sidor som börjar med:",
+       "undelete-search-full": "Visa sidtitlar som innehåller:",
        "undelete-search-submit": "Sök",
        "undelete-no-results": "Inga sidor med sådan titel hittades i arkivet över raderade sidor.",
        "undelete-filename-mismatch": "Filversionen med tidsstämpeln $1 kan inte återställas: Filnamnet stämmer inte.",
index d759fbe..182b613 100644 (file)
        "anontalk": "பேச்சு",
        "navigation": "வழிசெலுத்தல்",
        "and": " மற்றும்",
-       "qbfind": "கண்டுபிடி",
-       "qbbrowse": "உலவு",
-       "qbedit": "தொகு",
-       "qbpageoptions": "பக்க விருப்பத் தேர்வுகள்",
-       "qbmyoptions": "என் விருப்பத்தேர்வுகள்",
        "faq": "அடிக்கடி கேட்கப்படும் கேள்விகள்",
-       "faqpage": "Project:அடிக்கடி கேட்கப்படும் கேள்விகள்",
        "actions": "செயல்கள்",
        "namespaces": "பெயர்வெளிகள்",
        "variants": "மாற்றுக்கள்\n\nமாற்றுருவங்கள்",
        "edit-local": "தன்விவரத்தை திருத்து",
        "create": "உருவாக்கு",
        "create-local": "தன்னிட விளக்கத்தை சேர்",
-       "editthispage": "இப்பக்கத்தைத் தொகு",
-       "create-this-page": "இப்பக்கத்தை உருவாக்கு",
        "delete": "நீக்கவும்",
-       "deletethispage": "இப்பக்கத்தை நீக்கு",
-       "undeletethispage": "அழித்த பக்கத்தை மறுபடியும் கொண்டு வா",
        "undelete_short": "{{PLURAL:$1|ஒரு தொகுப்பை|$1 தொகுப்புக்களை}} மீட்டெடு",
        "viewdeleted_short": "{{PLURAL:$1|ஒரு நீக்கப்பட்ட தொகுப்பை|$1 நீக்கப்பட்ட தொகுப்புகளை}}  பார்.",
        "protect": "காக்கவும்",
        "protect_change": "மாற்று",
-       "protectthispage": "இப்பக்கத்தைக் காக்கவும்",
        "unprotect": "காப்பை மாற்று",
-       "unprotectthispage": "இப்பக்கத்தின் காப்பை மாற்று",
        "newpage": "புதிய பக்கம்",
-       "talkpage": "இப்பக்கம்பற்றிக் கலந்துரையாடு",
        "talkpagelinktext": "பேச்சு",
        "specialpage": "சிறப்புப் பக்கம்",
        "personaltools": "தனிப்பட்ட பயன்பாட்டுக் கருவிகள்",
-       "articlepage": "உள்ளடக்கப் பக்கத்தைப் பார்",
        "talk": "உரையாடல்",
        "views": "பார்வைகள்",
        "toolbox": "கருவிகள்",
-       "userpage": "பயனர் பக்கத்தைப் பார்",
-       "projectpage": "திட்டப் பக்கத்தைப் பார்",
        "imagepage": "கோப்புப் பக்கத்தை நோக்க",
        "mediawikipage": "தகவல் பக்கத்தைப் பார்",
        "templatepage": "வார்ப்புரு பக்கத்தைப் பார்",
        "rcfilters-highlightmenu-title": "ஒரு நிறத்தை தேர்ந்தெடுக்கவும்",
        "rcfilters-filterlist-noresults": "எந்த வடிப்பானும் காணப்படவில்லை",
        "rcfilters-filtergroup-registration": "பயனர் பதிகை",
-       "rcfilters-filter-registered-label": "பதிவுசெய்யப்பட்டது",
-       "rcfilters-filter-unregistered-label": "பதிவு நீக்கம் செய்யப்பட்டது",
        "rcfilters-filter-editsbyself-label": "தங்களின் சொந்த தொகுப்புகள்",
        "rcfilters-filter-editsbyself-description": "தங்களது தொகுப்புகள்.",
        "rcfilters-filter-editsbyother-label": "மற்றவர் தொகுப்புகள்",
index 8135189..d06f67a 100644 (file)
@@ -78,8 +78,8 @@
        "sat": "Шн",
        "january": "Январ",
        "february": "Феврал",
-       "march": "Ð\9cарт",
-       "april": "Ð\90прел",
+       "march": "март",
+       "april": "апрел",
        "may_long": "май",
        "june": "Июн",
        "july": "Июл",
        "talk": "Баҳс",
        "views": "Назарот",
        "toolbox": "Абзорҳо",
+       "tool-link-userrights-readonly": "Дидани гурӯҳҳои корбар",
        "imagepage": "Намоиши саҳифаи парванда",
        "mediawikipage": "Намоиши саҳифаи акс",
        "templatepage": "Нигаристани саҳифаи шаблон",
        "retypenew": "Калимаи нави убурро такроран нависед:",
        "resetpass_submit": "Калимаи убурро танзим карда ба систем вуруд кунед",
        "changepassword-success": "Гузарвожаи шумо бо муваффақият тағйир дода шуд!",
+       "botpasswords-label-cancel": "Пӯшидан",
        "resetpass_forbidden": "Гузарвожаҳоро наметавон тағйир дод",
        "resetpass-no-info": "Барои дастрасии мустақим ба ин саҳифа шумо бояд ба систем ворид шуда бошед.",
        "resetpass-submit-loggedin": "Тағйири гузарвожа",
        "session_fail_preview_html": "'''Бубахшед! Имкони сабти вироиши шумо ба хотир аз даст рафтани иттилоот нишаст.'''\n\n''Бо таваҷҷӯҳ ба ин ки дар {{SITENAME}} имкони HTML хом фаъол аст, пешнамоиши саҳифа пинҳон шуда то имкони зидди ҳамалоти ҶаваСкрипт вуҷуд ндошта бошад.''\n\n'''Агар боварӣ доред, ки ин пешнамоиш як вироиши миҷоз ас, онро такрор кунед. Агар пешнамоиш натиҷае надод, аз систем хориҷ шавед ва дубора ворид шавед'''",
        "token_suffix_mismatch": "'''Вироишҳои шумо захира нашуд, зеро мурургари шумо навиштаҳои нуқтагузориро аз ҳам пошида аст. Вироиши шумо захира нашуд то аз вайрон шудани матни саҳифа пешгирӣ кунад.\nБаъзан ин хато вақте пайдо мешавад, ки шумо аз хизмати (web-based proxy) истифода мекунед.'''",
        "edit_form_incomplete": "<strong>Бархе аз қисмати форми вироиш ба пойгоҳ нарасид; дубора бисанҷед, ки вироишоти шумо дуруст аст ва дубора саъй кунед.</strong>",
-       "editing": "Дар ҳоли вироиш $1",
+       "editing": "Дар ҳоли вироиши $1",
        "creating": "Дар ҳоли эҷоди $1",
        "editingsection": "Дар ҳоли вироиши $1 (қисмат)",
        "editingcomment": "Дар ҳоли вироиши $1 (қисми нав)",
        "postedit-confirmation-saved": "Вироиши шумо захира шуд.",
        "edit-already-exists": "Саҳифаи нав эҷод нашуд.\nҚаблан ин саҳифа вуҷуд дорад.",
        "defaultmessagetext": "Матни пайёми пешфарз",
-       "content-model-wikitext": "викиматн",
+       "content-model-wikitext": "вики-матн",
        "content-model-text": "матни содда",
        "content-model-javascript": "ҶаваСкрипт",
        "post-expand-template-inclusion-warning": "<strong>Огоҳӣ:</strong> Шаблони дар баргирифта хеле калон аст. Баъзе аз шаблонҳо дар бар гирифта намешавад.",
        "revdelete-hide-user": "Номи корбар/нишонаи IP",
        "revdelete-hide-restricted": "Фурунишонии иттилоот барои мудирон ба ҳамроҳи дигарон",
        "revdelete-radio-same": "(тағйир надиҳед)",
-       "revdelete-radio-set": "Пинҳон",
+       "revdelete-radio-set": "Пинҳонкарда",
        "revdelete-radio-unset": "Намоён",
        "revdelete-suppress": "Аз дастрасии мудирон ба додаҳо низ монанди сайри корбарон ҷилавгирӣ ба амал ояд",
        "revdelete-unsuppress": "Хотимаи маҳдудиятҳо дар мавриди нусхаҳои интихобшуда",
        "notextmatches": "Матни ҳеҷ мақолае рост намеояд",
        "prevn": "{{PLURAL:$1|$1-тои}} қаблӣ",
        "nextn": "{{PLURAL:$1|$1-тои}} навбатӣ",
+       "next-page": "саҳифаи навбатӣ",
        "prevn-title": "Қаблӣ $1 {{PLURAL:$1|натиҷа|натоиҷ}}",
        "nextn-title": "Баъдӣ $1 {{PLURAL:$1|натиҷа|натоиҷ}}",
        "shown-title": "Намоиши $1 {{PLURAL:$1|натиҷа|натоиҷ}} дар ҳар саҳифа",
        "editusergroup": "Гуруҳҳои корбарро вироиш кунед",
        "editinguser": "Дар ҳоли вироиши корбар '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
        "userrights-editusergroup": "Вироиши гурӯҳҳои корбарӣ",
+       "userrights-viewusergroup": "Дидани гурӯҳҳои корбар",
        "saveusergroups": "Сабти гурӯҳҳои корбарӣ",
        "userrights-groupsmember": "Аъзои:",
        "userrights-groups-help": "Шумо метавонед гурӯҳҳое, ки корбар дар он қарор доштаро тағйир диҳед.\n* Қуттии аломатхӯрда ба ин маънӣ аст, ки корбар дар он гурӯҳ қарор дорад.\n* Қуттии аломатнахӯрда ба ин маънӣ аст, ки корбар дар он гурӯҳ қарор надорад.\n* \"*\" маънои онро дорад, ки шумо қобили ҳазф кардани гурӯҳе нестед дар ҳоле ки шумо онро илова карда бошед, ин ё он.",
        "right-editinterface": "Вироиши намоиши корбарӣ",
        "right-editusercss": "Вироиши парвандаҳои CSS дигар корбарон",
        "right-edituserjs": "Вироиши парвандаҳои JS дигар корбарон",
-       "right-rollback": "Ð\92огаÑ\80донии Ñ\82ези Ð²Ð¸Ñ\80оиÑ\88ҳои Ð¾Ñ\85иÑ\80ин ÐºÐ¾Ñ\80баÑ\80е, ÐºÐ¸ Ñ\8fк Ñ\81аҳиÑ\84аÑ\80о Ð²Ð¸Ñ\80оиÑ\88 ÐºÐ°Ñ\80дааÑ\81Ñ\82",
+       "right-rollback": "зÑ\83д Ð²Ð¾Ð³Ð°Ñ\80донидани Ð²Ð¸Ñ\80оиÑ\88оÑ\82и ÐºÐ¾Ñ\80баÑ\80и Ð¾Ñ\85иÑ\80ин",
        "right-markbotedits": "Аломат задани вироишҳои вогардонишуда ба унвони вироиши бот",
        "right-noratelimit": "Таъсирнопазир аз маҳдудияти суръат",
        "right-import": "Ворид кардани саҳифаҳо аз дигар викиҳо",
        "right-userrights": "Вироиши ҳамаи ихтиёроти корбарон",
        "right-userrights-interwiki": "Вироиши ихтиёроти корбарии корбарони дигар викиҳо",
        "right-siteadmin": "Бастн ва боз кардани пойгоҳи дода",
+       "grant-rollback": "Вогардонидани тағйироти саҳифа",
        "newuserlogpage": "Гузориши эҷоди корбар",
        "newuserlogpagetext": "Ин гузориш аз номҳои корбарии тозасохташуда аст.",
        "rightslog": "Гузориши ихтиёроти корбар",
        "action-deleterevision": "ҳазви ин нусха",
        "action-browsearchive": "ҷустуҷӯи саҳифаҳои ҳазвшуда",
        "action-undelete": "барқарор кардани ин саҳифа",
+       "action-rollback": "вогардонии зуди тағйирот",
        "action-sendemail": "фиристодани пайёмҳо",
        "nchanges": "$1 {{PLURAL:$1|тағйир|тағйирот}}",
        "enhancedrc-history": "таърих",
        "recentchanges-label-minor": "Ин вироиши ҷузъи аст",
        "recentchanges-label-bot": "Ин вироишро робот анҷом додааст",
        "recentchanges-label-unpatrolled": "Ин вироиш ҳанӯз гаштзанӣ нашудааст",
+       "rcfilters-savedqueries-cancel-label": "Лағв",
        "rcnotefrom": "Дар зер тағйиротҳои охирин аз <b>$2</b> (то <b>$1</b> нишон дода шудааст).",
        "rclistfrom": "Нишон додани тағйиротҳои нав сар карда аз $3 $2",
        "rcshowhideminor": "$1 вироишҳои хурд",
-       "rcshowhideminor-show": "Намоиш",
-       "rcshowhideminor-hide": "Пинҳон",
+       "rcshowhideminor-show": "Намоиш додани",
+       "rcshowhideminor-hide": "Пинҳон кардани",
        "rcshowhidebots": "$1 ботҳо",
        "rcshowhidebots-show": "Намоиш",
-       "rcshowhidebots-hide": "Пинҳон",
+       "rcshowhidebots-hide": "Пинҳон кардани",
        "rcshowhideliu": "$1 корбарони сабтиномшуда",
        "rcshowhideliu-show": "Намоиш",
-       "rcshowhideliu-hide": "Пинҳон",
+       "rcshowhideliu-hide": "Пинҳон кардани",
        "rcshowhideanons": "$1 корбарони вуруднашуда",
        "rcshowhideanons-show": "Намоиш",
-       "rcshowhideanons-hide": "Пинҳон",
+       "rcshowhideanons-hide": "Пинҳон кардани",
        "rcshowhidepatr": "$1 вироишҳои гаштӣ",
        "rcshowhidepatr-show": "Намоиш",
-       "rcshowhidepatr-hide": "Пинҳон",
+       "rcshowhidepatr-hide": "Пинҳон кардани",
        "rcshowhidemine": "$1 вироишҳои ман",
        "rcshowhidemine-show": "Намоиш",
-       "rcshowhidemine-hide": "Пинҳон",
+       "rcshowhidemine-hide": "Пинҳон кардани",
        "rclinks": "Нишон додани $1 тағйироти охирин дар $2 рӯзи охир",
        "diff": "фарқият",
        "hist": "таърих",
        "statistics-header-hooks": "Дигар омор",
        "statistics-articles": "Саҳифаҳои мӯҳтаво",
        "statistics-pages": "Саҳифаҳо",
+       "statistics-pages-desc": "Тамоми саҳифаҳо дар ин вики-сомона (саҳифаҳои равонакунӣ, баҳсҳо ва ғ.)",
        "statistics-files": "Парвандаҳои боршуда",
+       "statistics-edits": "Шумораи вироишҳо аз замони эҷоди ин {{SITENAME}}",
        "statistics-users": "[[Special:ListUsers|Корбарони]] сабтиномшуда",
        "statistics-users-active": "Корбарони фаъол",
        "pageswithprop-submit": "Бирав",
        "withoutinterwiki": "Саҳифаҳои бидуни пайвандҳои забонӣ",
        "withoutinterwiki-summary": "Саҳифаҳои зерин пайванде ба забони дигар надоранд:",
        "withoutinterwiki-legend": "Пешванд",
-       "withoutinterwiki-submit": "Намоиш",
+       "withoutinterwiki-submit": "Намоиши",
        "fewestrevisions": "Саҳифаҳое, ки шумораи ками нусхаҳо доранд",
        "nbytes": "$1 {{PLURAL:$1|байт|байт}}",
        "ncategories": "$1 {{PLURAL:$1|гурӯҳ|гурӯҳҳо}}",
        "deadendpagestext": "Саҳифаҳои зерин ба ҳеҷ дигар саҳифае дар {{SITENAME}} пайванд нестанд.",
        "protectedpages": "Саҳифаҳои ҳифзшуда",
        "protectedpages-indef": "Фақат ҳифзшудаҳои номуайян",
+       "protectedpages-noredirect": "Пинҳони саҳифаҳои равонакунӣ",
        "protectedpagesempty": "Дар ҳоли ҳозир ҳеҷ саҳифае муҳофизат нашудааст.",
        "protectedpages-page": "Саҳифа",
        "protectedpages-expiry": "Замони саромадан",
        "logempty": "Мавриди мутобиқ ба манзури шумо дар гузориш пайдо нашуд.",
        "log-title-wildcard": "Саҳифаҳоеро ҷустуҷӯ кунед, ки унвонашон бо ин матн оғоз мешаванд",
        "allpages": "Ҳамаи саҳифаҳо",
-       "nextpage": "СаҳиÑ\84аи Ð±Ð°Ñ\8aдина ($1)",
+       "nextpage": "СаҳиÑ\84аи Ð½Ð°Ð²Ð±Ð°Ñ\82Ó£ ($1)",
        "prevpage": "Саҳифаи пешина ($1)",
        "allpagesfrom": "Намоиши саҳифаҳо бо шурӯъ аз:",
        "allpagesto": "Намоиши саҳифаҳо бо поёни дар:",
        "allpagesprefix": "Намоиши саҳифаҳои дорои пешванд:",
        "allpagesbadtitle": "Унвони саҳифаи дода шуда номӯътабар аст, ё инки дорои пешванди байнизабонӣ ё байнивикиӣ аст. Мумкин аст аломатҳоеро дорад, ки наметавон онҳоро дар унвонҳо истифода бурд.",
        "allpages-bad-ns": "{{SITENAME}} дорои фазоином \"$1\" нест.",
-       "allpages-hide-redirects": "Ð\9fинҳони Ñ\82аÒ\93йиÑ\80оÑ\82и Ð¼Ð°Ñ\81иÑ\80",
+       "allpages-hide-redirects": "Ð\9fинҳони Ñ\81аҳиÑ\84аҳои Ñ\80авонакÑ\83нӣ",
        "cachedspecial-refresh-now": "Дидани охирин.",
        "categories": "Гурӯҳҳо",
        "categoriespagetext": "Гурӯҳҳои зерин дар вики вуҷуд доранд.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
        "mailnologin": "Нишонае аз фиристанда вуҷуд надорад",
        "mailnologintext": "Барои фиристодани почтаи электронӣ барои корбарони дигар бояд [[Special:UserLogin|ба систем ворид шавед]] ва нишонаи почтаи электронии мӯътабар дар [[Special:Preferences|тарҷиҳоти]] худ дошта бошед.",
        "emailuser": "Фиристодани email ба ин корбар",
+       "emailuser-title-target": "Навиштани мактуб ба email-и ин корбар",
        "emailuser-title-notarget": "Фиристодани пайём ба корбар",
        "emailpagetext": "Агар ин корбар нишонаи почтаи электронии мӯътабаре дар тарҷиҳоти ворид карда бошад, форми зерин як пайғоме мефиристад.\nНишонаи почтаи электроние, ки шумо дар тарҷиҳоти корбариатон ворид кардаед, дар нишони фиристандаи нома \"From\" хоҳад омад, то ки гиранда тавонад ба шумо посух диҳад.",
        "defemailsubject": "Пайёми {{SITENAME}} аз корбар \"$1\"",
        "delete-edit-reasonlist": "Вироиш ҳазф далелҳо",
        "delete-toobig": "Ин саҳифа таърихчаи бузурге дорад, ки шомили беш аз $1 вироиш аст. Ҳазфи ин гуна саҳифаҳо барои пешгири аз шикастани тасодуфӣ дар {{SITENAME}} маҳдуд шудааст.",
        "delete-warning-toobig": "Ин саҳифа таърихи бузурге дорад, ки шомили беш аз $1 вироиш аст. Ҳазфи ин саҳифа метавонад ихтилол ба амалгари пойгоҳи додаи {{SITENAME}} бишавад; лутфан бо эҳтиёт иқдом кунед.",
-       "rollback": "Вогардонии вироишҳо",
-       "rollbacklink": "вогардони",
+       "rollback": "Вогардонидани вироишот",
+       "rollbacklink": "вогардонидан",
+       "rollbacklinkcount": "вогардонидани $1 {{PLURAL:$1|вироиш}}",
+       "rollbacklinkcount-morethan": "вогардонидани беш аз $1 {{PLURAL:$1|вироиш}}",
        "rollbackfailed": "Вогардони нашуд",
        "cantrollback": "Наметавон вироишро вогардонд; охирин ҳиссагузор танҳо муаллифи ин мақола аст.",
-       "alreadyrolled": "Ð\9eÑ\85иÑ\80ин Ð²Ð¸Ñ\80оиÑ\88и [[:$1]] Ð°Ð· Ñ\82аÑ\80аÑ\84и [[User:$2|$2]] ([[User talk:$2|Ð\91аҳÑ\81]]) Ð½Ð°Ð¼ÐµÑ\82авон Ð²Ð¾Ð³Ð°Ñ\80донӣ ÐºÐ°Ñ\80д; Ð¿ÐµÑ\88 Ð°Ð· Ð¸Ð½ Ñ\88аÑ\85Ñ\81и Ð´Ð¸Ð³Ð°Ñ\80е Ð¼Ð°Ò\9bолаÑ\80о Ð²Ð¸Ñ\80оиÑ\88 Ñ\91 Ð²Ð¾Ð³Ð°Ñ\80донӣ ÐºÐ°Ñ\80дааÑ\81Ñ\82.\n\nÐ\9eÑ\85иÑ\80ин Ð²Ð¸Ñ\80оиÑ\88 Ð°Ð· Ñ\82аÑ\80аÑ\84и [[User:$3|$3]] ([[User talk:$3|Ð\91аҳÑ\81]]) Ð±Ñ\83д.",
+       "alreadyrolled": "ТаÒ\93йиÑ\80оÑ\82и Ð¾Ñ\85иÑ\80ини Ñ\81аҳиÑ\84аи Â«[[:$1]]»-Ñ\80о Ð²Ð¾Ð³Ð°Ñ\80донӣ ÐºÐ°Ñ\80дан Ò\93айÑ\80иимкон Ð°Ñ\81Ñ\82, ÐºÐ¸ Ð°Ð· Ñ\82аÑ\80аÑ\84 [[User:$2|$2]] ([[User talk:$2|баҳÑ\81]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) Ð¸Ò·Ñ\80о Ñ\88Ñ\83даанд, Ñ\87Ñ\83нки Ñ\88аÑ\85Ñ\81е Ð°Ð»Ð»Ð°ÐºÐ°Ð¹ Ð²Ð¾Ð³Ð°Ñ\80донӣ Ð²Ð° Ñ\91 Ñ\82аҳÑ\80иÑ\80аÑ\88 ÐºÐ°Ñ\80д.\n\nÐ\9eÑ\85иÑ\80ин Ð±Ð¾Ñ\80 {{GENDER:$3|коÑ\80баÑ\80}} [[User:$3|$3]] ([[User talk:$3|баҳÑ\81]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) Ñ\81аҳиÑ\84аÑ\80о Ñ\82аҳÑ\80иÑ\80 ÐºÐ°Ñ\80д.",
        "editcomment": "Хулосаи вироиш ин буд: <em>$1</em>.",
        "revertpage": "Вироиши [[Special:Contributions/$2|$2]] ([[User talk:$2|Баҳс]]) вогардонида шуд ба охирин тағйире, ки [[User:$1|$1]] анҷом дода буд",
        "rollback-success": "Вироишҳои $1 вогардонӣ шуд; саҳифа ба вироиши $2 баргардонида шуд.",
+       "rollback-success-notify": "Вироишоти $1 вогардонида шуд ба охирин вироише, ки  $2 анҷом дода буд. [$3 Намоиши тавофут]",
        "sessionfailure": "Ба назар мерасад, мушкилие дар мавриди нишасти корбарии шумо вуҷуд дорад; амали дархостшуда ба унвони иқдоми пешгирона дар баробари рабуда шудани иттилооти нишасти корбарӣ, лағв шуд. Лутфан тугмаи \"бозгашт\"-ро дар мурургари худ пахш кунед ва саҳифае, ки аз он инҷо расидаед муҷаддадан фарохонӣ кунед, сипас муҷаддадан боз саъй кунед.",
        "protectlogpage": "Гузориши муҳофизат",
        "protectlogtext": "Дар зер феҳристи қуфл карданҳо ва аз қуфл озод шуданҳо омада аст. Барои иттилооти бештар ба [[Special:ProtectedPages|феҳристи саҳифаҳои муҳофизатшуда]] нигаред.",
        "isredirect": "саҳифаи тағйири масир",
        "istemplate": "истифодашуда дар саҳифа",
        "isimage": "пайванд ба парванда",
-       "whatlinkshere-prev": "{{PLURAL:$1|қаблӣ|қаблӣ $1}}",
+       "whatlinkshere-prev": "{{PLURAL:$1|қаблӣ|$1-тои қаблӣ}}",
        "whatlinkshere-next": "{{PLURAL:$1|баъдӣ|баъдӣ $1}}",
        "whatlinkshere-links": "← пайвандҳо",
        "whatlinkshere-hideredirs": "$1 тағйири масир",
        "unblocked": "Дастрасии [[User:$1|$1]] боз карда шуд",
        "unblocked-id": "Қатъи дастрасии шумораи $1 хотима ёфт",
        "blocklist": "Корбарони басташуда",
+       "autoblocklist-submit": "Ҷустуҷӯ",
        "ipblocklist": "Корбарони басташуда",
        "ipblocklist-legend": "Ҷустуҷӯи корбари баста шуда",
        "blocklist-target": "Ҳадаф",
        "tooltip-pt-preferences": "Тарҷиҳоти ман",
        "tooltip-pt-watchlist": "Рӯйхати саҳифаҳое, ки тағйиротҳояшонро Шумо назорат мекунед",
        "tooltip-pt-mycontris": "Феҳристи ҳиссагузориҳои шумо",
-       "tooltip-pt-login": "Тавсия мешавад ки ба систем ворид шавад, лекин иҷборӣ нест.",
+       "tooltip-pt-login": "Тавсия мешавад ки ба система ворид шавед, лекин маҷбурӣ нест.",
        "tooltip-pt-logout": "Хуруҷ аз систем",
        "tooltip-ca-talk": "Баҳси матни таркибии ин саҳифа",
        "tooltip-ca-edit": "Шумо ин саҳифаро вироиш карда метавонед. Пеш аз захира кардани саҳифа пешнамоишро истифода баред.",
        "spambot_username": "Спамтозакуни МедиаВики",
        "spam_reverting": "Вогардони ба охирин нусхае, ки пайванде ба $1 надорад",
        "spam_blanking": "Ҳамаи нусхаҳои пайвандҳо $1 доштан, дар ҳоли холӣ кардан",
+       "pageinfo-display-title": "Сарлавҳаи намоишӣ",
+       "pageinfo-default-sort": "Тартиб кардан ба унвони калидӣ (пешфарз)",
+       "pageinfo-length": "Дарозии саҳифа (дар байт)",
+       "pageinfo-article-id": "Рамзи саҳифа",
+       "pageinfo-language": "Забони саҳифа",
+       "pageinfo-content-model": "Навъи таркибии саҳифа",
+       "pageinfo-redirects-name": "Шумораи равонакуниҳо ба ин саҳифа",
+       "pageinfo-redirects-value": "$1-то",
        "pageinfo-toolboxlink": "Иттилооти саҳифа",
        "pageinfo-contentpage-yes": "Бале",
        "pageinfo-protect-cascading-yes": "Бале",
        "exif-gpsdatestamp": "Таърихи ҶПС",
        "exif-gpsdifferential": "Тасҳеҳи ҷузъии ҶПС",
        "exif-keywords": "Калидвожаҳо",
+       "exif-languagecode": "Забон",
        "exif-compression-1": "Ғайрифишурда",
        "exif-unknowndate": "Таърихи номаълум",
        "exif-orientation-1": "Оддӣ",
        "recreate": "Аз нав созед",
        "confirm_purge_button": "Таъйид",
        "confirm-purge-top": "Пок карадни нусхаи ҳофизаи ниҳонии (Cache) ин саҳифаро таъйид мекунед?",
-       "imgmultipageprev": "← саҳифаи пешин",
-       "imgmultipagenext": "саҳифаи баъд →",
+       "imgmultipageprev": "← саҳифаи пешина",
+       "imgmultipagenext": "саҳифаи баъдӣ →",
        "imgmultigo": "Бирав!",
        "imgmultigoto": "Ба саҳифаи $1 равед",
        "ascending_abbrev": "афзуншаванда",
        "autosumm-replace": "Ивазкунии саҳифа бо '$1'",
        "autoredircomment": "Тағйири масир ба [[$1]]",
        "autosumm-new": "Саҳифаи нав бо \"$1\" эҷод шуд",
+       "autosumm-newblank": "Саҳифаи холӣ эҷод шуд",
        "lag-warn-normal": "Мумкин аст тағйироти тозатар аз $1 сония дар ин феҳрист нишон дода нашавад.",
        "lag-warn-high": "Мумкин аст, ба хотири пасафтодагии зиёд коргузори додаҳо, тағйироти тоза аз $1 сония дар ин феҳрист нишон нашуда бошанд.",
        "watchlistedit-normal-title": "Вироиши феҳристи пайгириҳо",
        "version-software": "Нусхаи насбшуда",
        "version-software-product": "Маҳсул",
        "version-software-version": "Нусха",
+       "redirect-page": "Рамзи саҳифа",
        "fileduplicatesearch": "Ҷустуҷӯ барои парвандаҳои такрорӣ",
        "fileduplicatesearch-summary": "Ҷустуҷӯ барои парвандаҳои такрорӣ бар асоси миқдори дар ҳам шудаи онҳо сурат мегирад.",
        "fileduplicatesearch-filename": "Номи парванда:",
        "expand_templates_remove_comments": "Ҳазфи тавзеҳот",
        "expand_templates_generate_xml": "Намоиши дарахти таҷзеҳи XML",
        "expand_templates_preview": "Пешнамоиш",
+       "special-characters-group-cyrillic": "Сириллик",
        "randomrootpage": "Саҳифаи решавии тасодуфӣ",
        "changecredentials-submit": "Тағйири ҳисоби корбарӣ",
        "removecredentials-submit": "Хориҷи эътиборнома"
index a6fde72..e026f41 100644 (file)
        "rcfilters-filterlist-noresults": "ไม่พบตัวกรองใด ๆ",
        "rcfilters-noresults-conflict": "ไม่พบผลลัพธ์ เนื่องจากเงื่อนไขการค้นขัดแย้งกัน",
        "rcfilters-filtergroup-registration": "การลงทะเบียนผู้ใช้",
-       "rcfilters-filter-registered-label": "ลงทะเบียน",
-       "rcfilters-filter-registered-description": "ผู้แก้ไขที่ล็อกอินแล้ว",
-       "rcfilters-filter-unregistered-label": "ไม่ได้ลงทะเบียน",
-       "rcfilters-filter-unregistered-description": "ผู้แก้ไขที่ไม่ได้ล็อกอิน",
        "rcfilters-filter-editsbyself-label": "การแก้ไขของคุณเอง",
        "rcfilters-filter-editsbyself-description": "การแก้ไขต่าง ๆ ที่คุณทำ",
        "rcfilters-filter-editsbyother-label": "การแก้ไขต่าง ๆ ที่ผู้อื่นทำ",
index 5ab3d1f..9bd951a 100644 (file)
        "rcfilters-highlightmenu-help": "Bu özelliği vurgulamak için bir renk seçin",
        "rcfilters-filterlist-noresults": "Süzgeç bulunamadı",
        "rcfilters-filtergroup-registration": "Kullanıcı kaydı",
-       "rcfilters-filter-registered-label": "Kayıtlı",
-       "rcfilters-filter-registered-description": "Oturum açmış editörler.",
-       "rcfilters-filter-unregistered-label": "Kayıtsız",
-       "rcfilters-filter-unregistered-description": "Oturum açmamış editörler.",
        "rcfilters-filtergroup-authorship": "Düzenleme sahipliği",
        "rcfilters-filter-editsbyself-label": "Senin değişiklikleriniz",
        "rcfilters-filter-editsbyself-description": "Kendi katkılarınız.",
index e771d78..5429fdb 100644 (file)
        "recentchanges-legend-heading": "<strong>Аңлатма:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (шулай ук [[Special:NewPages|яңа битләр исемлеген]] карагыз)",
        "recentchanges-submit": "Күрсәт",
-       "rcfilters-quickfilters": "Сакланган филтр көйләнмәләре",
+       "rcfilters-activefilters": "Актив фильтрлар",
+       "rcfilters-quickfilters": "Сакланган фильтрлар",
        "rcfilters-clear-all-filters": "Барлык филтерләрне чистарту",
-       "rcfilters-filter-registered-label": "Теркәлгән",
-       "rcfilters-filter-registered-description": "Теркәлгән мөхәррирләр.",
+       "rcfilters-search-placeholder": "Фильтрланы соңгы үзгәртү (карау яисә кертүне башлау)",
        "rcfilters-filter-user-experience-level-experienced-label": "Тәҗрибәле кулланучылар",
        "rcfilters-filter-humans-label": "Кеше (бот түгел)",
        "rcfilters-filter-minor-description": "«Кече үзгәртү» дип тамгаланган үзгәртүләр",
index 92f157d..3d6c54e 100644 (file)
        "rcfilters-state-message-subset": "Цей фільтр не має впливу, оскільки його результати включені в результати {{PLURAL:$2|цього, ширшого, фільтра|цих, ширших, фільтрів}} (спробуйте увімкнути виділення, щоб вирізнити їх): $1",
        "rcfilters-state-message-fullcoverage": "Вибір усіх фільтрів у групі — це все одно, що не вибирати жодного з них, тобто таке фільтрування не має впливу. Гупа містить: $1",
        "rcfilters-filtergroup-registration": "Реєстрація користувача",
-       "rcfilters-filter-registered-label": "Зареєстровані",
-       "rcfilters-filter-registered-description": "Користувачі, що увійшли в систему.",
-       "rcfilters-filter-unregistered-label": "Незареєстровані",
-       "rcfilters-filter-unregistered-description": "Користувачі, які не ввійшли в систему.",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "Цей фільтр конфліктує з {{PLURAL:$2|таким фільтром|такими фільтрами}} досвіду, {{PLURAL:$2|який знаходить|які знаходять}} лише зареєстрованих користувачів: $1",
        "rcfilters-filtergroup-authorship": "Авторство внеску",
        "rcfilters-filter-editsbyself-label": "Зміни, здійснені Вами",
index d434d40..e5a110b 100644 (file)
        "rcfilters-filterlist-noresults": "Không tìm thấy bộ lọc",
        "rcfilters-noresults-conflict": "Không tìm thấy kết quả nào do tiêu chí tìm kiếm đang bị mâu thuẫn",
        "rcfilters-filtergroup-registration": "Trạng thái đăng ký thành viên",
-       "rcfilters-filter-registered-label": "Đã đăng ký",
-       "rcfilters-filter-registered-description": "Người dùng đã đăng nhập.",
-       "rcfilters-filter-unregistered-label": "Vô danh",
-       "rcfilters-filter-unregistered-description": "Người dùng chưa đăng nhập.",
        "rcfilters-filtergroup-authorship": "Người sửa đổi",
        "rcfilters-filter-editsbyself-label": "Sửa đổi của bạn",
        "rcfilters-filter-editsbyself-description": "Các sửa đổi do bạn tạo ra.",
index 4001765..1f98815 100644 (file)
        "rcfilters-highlightmenu-title": "אויסקלויבן א קאליר",
        "rcfilters-filterlist-noresults": "קיין פֿילטערס נישט געטראפֿן",
        "rcfilters-filtergroup-registration": "באניצער איינשרייבונג",
-       "rcfilters-filter-registered-label": "אײַנגעשריבן",
        "rcfilters-filter-editsbyself-label": "ענדערונגען פון אייך",
        "rcfilters-filter-editsbyself-description": "אייערע אייגענע בײשטײערונגען.",
        "rcfilters-filter-editsbyother-label": "ענדערונגען פֿון אנדערע",
index 64fc0cd..eab32f0 100644 (file)
        "rcfilters-state-message-subset": "该过滤器没有影响,因为其结果已包含在以下影响更广的{{PLURAL:$2|过滤器}}中(尝试高亮来区别它):$1",
        "rcfilters-state-message-fullcoverage": "组中选择的所有过滤器与选定过滤器相同,因此该过滤器没有影响。组包含:$1",
        "rcfilters-filtergroup-registration": "用户注册",
-       "rcfilters-filter-registered-label": "已注册",
-       "rcfilters-filter-registered-description": "登录编辑者。",
-       "rcfilters-filter-unregistered-label": "未注册",
-       "rcfilters-filter-unregistered-description": "未登录的编辑者。",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "该过滤器与以下体验{{PLURAL:$2|过滤器}}相冲突,而它只{{PLURAL:$2|寻找}}注册用户:$1",
        "rcfilters-filtergroup-authorship": "贡献的作者",
        "rcfilters-filter-editsbyself-label": "您的更改",
index cf6503a..50b9260 100644 (file)
        "rcfilters-state-message-subset": "此過濾條件沒有效果,因其結果包含了以下範圍更廣的{{PLURAL:$2|過濾條件|過濾條件}}其中之一 (嘗試以明顯標示來區別它):$1",
        "rcfilters-state-message-fullcoverage": "選擇在群組中的所有過濾條件與沒選擇時相同,代表此過濾條件沒有效果。群組包含了:$1",
        "rcfilters-filtergroup-registration": "使用者註冊",
-       "rcfilters-filter-registered-label": "已註冊",
-       "rcfilters-filter-registered-description": "已登入的編輯者。",
-       "rcfilters-filter-unregistered-label": "未註冊",
-       "rcfilters-filter-unregistered-description": "尚未登入的編輯者。",
        "rcfilters-filter-unregistered-conflicts-user-experience-level": "此過濾條件與以下經歷{{PLURAL:$2|過濾條件|過濾條件}}衝突,因其只會{{PLURAL:$2|尋找|尋找}}已註冊的使用者:$1",
        "rcfilters-filtergroup-authorship": "貢獻的作者",
        "rcfilters-filter-editsbyself-label": "您的編輯",
        "confirmrecreate": "在您編輯的同時,使用者 [[User:$1|$1]] ([[User talk:$1|對話]]) 刪除了此頁面,原因為:\n: <em>$2</em>\n請確認您是否真的要重新建立此頁面。",
        "confirmrecreate-noreason": "在您編輯的同時,使用者 [[User:$1|$1]] ([[User talk:$1|對話]]) 刪除了此頁面,請確認您是否真的要重新建立此頁面。",
        "recreate": "重新建立",
-       "confirm-purge-title": "刷新本頁",
+       "confirm-purge-title": "清除此頁快取",
        "confirm_purge_button": "確定",
        "confirm-purge-top": "要清除此頁面的快取嗎?",
        "confirm-purge-bottom": "刷新頁面會清空頁面的快取記錄並強制顯示最近的頁面修訂。",
index 8b2d6e5..c745ce4 100644 (file)
@@ -4,7 +4,7 @@
 
                function syncText() {
                        var value = $( this ).val()
-                               .replace( /[\[\]\{\}|#<>%+? ]/g, '_' )
+                               .replace( /[\[\]{}|#<>%+? ]/g, '_' ) // eslint-disable-line no-useless-escape
                                .replace( /&/, '&amp;' )
                                .replace( /__+/g, '_' )
                                .replace( /^_+/, '' )
                }
 
                // Set up the help system
-               $( '.config-help-field-data' )
-                       .hide()
-                       .closest( '.config-help-field-container' )
-                               .find( '.config-help-field-hint' )
-                                       .show()
-                                       .click( function () {
-                                               $( this )
-                                                       .closest( '.config-help-field-container' )
-                                                               .find( '.config-help-field-data' )
-                                                                       .slideToggle( 'fast' );
-                                       } );
+               $( '.config-help-field-data' ).hide()
+                       .closest( '.config-help-field-container' ).find( '.config-help-field-hint' )
+                       .show()
+                       .click( function () {
+                               $( this ).closest( '.config-help-field-container' ).find( '.config-help-field-data' )
+                                       .slideToggle( 'fast' );
+                       } );
 
                // Show/hide code for DB-specific options
                // FIXME: Do we want slow, fast, or even non-animated (instantaneous) showing/hiding here?
index fe3c910..8507238 100644 (file)
     "grunt-banana-checker": "0.6.0",
     "grunt-contrib-copy": "1.0.0",
     "grunt-contrib-watch": "1.0.0",
-    "grunt-eslint": "19.0.0",
+    "grunt-eslint": "20.0.0",
     "grunt-jsonlint": "1.1.0",
     "grunt-karma": "2.0.0",
-    "grunt-stylelint": "0.7.0",
+    "grunt-stylelint": "0.8.0",
     "grunt-webdriver": "2.0.3",
     "karma": "1.5.0",
     "karma-chrome-launcher": "2.0.0",
@@ -26,6 +26,7 @@
     "karma-qunit": "1.0.0",
     "nodemw": "0.10.1",
     "qunitjs": "1.23.1",
+    "stylelint": "7.8.0",
     "stylelint-config-wikimedia": "0.4.1",
     "wdio-junit-reporter": "0.2.0",
     "wdio-mocha-framework": "0.5.8",
index a8cf91d..afc1c0e 100644 (file)
@@ -1857,6 +1857,8 @@ return [
                        'rcfilters-tag-prefix-namespace',
                        'rcfilters-tag-prefix-namespace-inverted',
                        'rcfilters-tag-prefix-tags',
+                       'rcfilters-exclude-button-off',
+                       'rcfilters-exclude-button-on',
                        'rcfilters-view-tags',
                        'rcfilters-view-namespaces-tooltip',
                        'rcfilters-view-tags-tooltip',
index 7773866..40b3baf 100644 (file)
@@ -64,8 +64,7 @@
                        if ( $badge.length ) {
                                $badge
                                        .toggleClass( 'mw-badge-important', isImportant )
-                                       .find( '.mw-badge-content' )
-                                               .text( text );
+                                       .find( '.mw-badge-content' ).text( text );
                        } else {
                                // Otherwise, create a new badge with the specified text and style
                                $badge = $( '<div class="mw-badge"></div>' )
index 2be1dba..a5b136d 100644 (file)
@@ -42,7 +42,7 @@
 
                        // Look for rgb(num%,num%,num%)
                        // eslint-disable-next-line no-cond-assign
-                       if ( result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec( color ) ) {
+                       if ( result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)%\s*,\s*([0-9]+(?:\.[0-9]+)?)%\s*,\s*([0-9]+(?:\.[0-9]+)?)%\s*\)/.exec( color ) ) {
                                return [
                                        parseFloat( result[ 1 ] ) * 2.55,
                                        parseFloat( result[ 2 ] ) * 2.55,
index 5ce9b1f..aa76d6d 100644 (file)
                        buildDefaultToggleLink = function () {
                                return $( '<a class="mw-collapsible-text"></a>' )
                                        .text( collapseText )
-                                       .wrap( '<span class="mw-collapsible-toggle"></span>' ).parent()
-                                               .attr( {
-                                                       role: 'button',
-                                                       tabindex: 0
-                                               } )
-                                               .prepend( '<span>[</span>' )
-                                               .append( '<span>]</span>' )
-                                               .on( 'click.mw-collapsible keypress.mw-collapsible', actionHandler );
+                                       .wrap( '<span class="mw-collapsible-toggle"></span>' )
+                                       .parent()
+                                       .attr( {
+                                               role: 'button',
+                                               tabindex: 0
+                                       } )
+                                       .prepend( '<span>[</span>' )
+                                       .append( '<span>]</span>' )
+                                       .on( 'click.mw-collapsible keypress.mw-collapsible', actionHandler );
                        };
 
                        // Check if this element has a custom position for the toggle link
index 6d478bd..4bcccdd 100644 (file)
@@ -11,7 +11,7 @@
                },
                trimRight: function ( str ) {
                        return str === null ?
-                                       '' : str.toString().replace( /\s+$/, '' );
+                               '' : str.toString().replace( /\s+$/, '' );
                },
                ucFirst: function ( str ) {
                        return str.charAt( 0 ).toUpperCase() + str.slice( 1 );
        } );
 
        mw.log.deprecate( $, 'escapeRE', function ( str ) {
-               return str.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' );
+               return str.replace( /([\\{}()|.?*+\-^$\[\]])/g, '\\$1' ); // eslint-disable-line no-useless-escape
        }, 'Use mediawiki.RegExp instead.' );
 
 }( jQuery, mediaWiki ) );
index 75f1ba6..4f4edc9 100644 (file)
@@ -19,7 +19,6 @@
  * @class jQuery.plugin.suggestions
  */
 
- // jscs:disable checkParamNames
 /**
  * @method suggestions
  * @chainable
@@ -94,7 +93,6 @@
  * @param {boolean} [options.highlightInput=false] Whether to highlight matched portions of the
  *  input or not.
  */
- // jscs:enable checkParamNames
 
 ( function ( $, mw ) {
 
                                                        27, // escape
                                                        13, // enter
                                                        46, // delete
-                                                       8   // backspace
+                                                       8 //   backspace
                                                ];
                                                if ( context.data.keypressedCount === 0 &&
                                                        e.which === context.data.keypressed &&
index 8d019e5..ec91773 100644 (file)
 
                // Build RegEx
                // Any date formated with . , ' - or /
-               ts.dateRegex[ 0 ] = new RegExp( /^\s*(\d{1,2})[\,\.\-\/'\s]{1,2}(\d{1,2})[\,\.\-\/'\s]{1,2}(\d{2,4})\s*?/i );
+               ts.dateRegex[ 0 ] = new RegExp( /^\s*(\d{1,2})[,.\-/'\s]{1,2}(\d{1,2})[,.\-/'\s]{1,2}(\d{2,4})\s*?/i );
 
                // Written Month name, dmy
                ts.dateRegex[ 1 ] = new RegExp(
                        }
 
                        columnToCell = [];
-                       cellsInRow = ( $row[ 0 ].cells.length ) || 0;  // all cells in this row
+                       cellsInRow = ( $row[ 0 ].cells.length ) || 0; // all cells in this row
                        index = 0; // real cell index in this row
                        for ( j = 0; j < columns; index++ ) {
                                if ( index === cellsInRow ) {
                }
                ts.rgx = {
                        IPAddress: [
-                               new RegExp( /^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/ )
+                               new RegExp( /^\d{1,3}[.]\d{1,3}[.]\d{1,3}[.]\d{1,3}$/ )
                        ],
                        currency: [
                                new RegExp( /(^[£$€¥]|[£$€¥]$)/ ),
                                new RegExp( /(https?|ftp|file):\/\// )
                        ],
                        isoDate: [
-                               new RegExp( /^([-+]?\d{1,4})-([01]\d)-([0-3]\d)([T\s]((([01]\d|2[0-3])(:?[0-5]\d)?|24:?00)?(:?([0-5]\d|60))?([.,]\d+)?)([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?/ ),
+                               new RegExp( /^([-+]?\d{1,4})-([01]\d)-([0-3]\d)([T\s]((([01]\d|2[0-3])(:?[0-5]\d)?|24:?00)?(:?([0-5]\d|60))?([.,]\d+)?)([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?/ ),
                                new RegExp( /^([-+]?\d{1,4})-([01]\d)-([0-3]\d)/ )
                        ],
                        usLongDate: [
                        return getParserById( id );
                },
 
-               getParsers: function () {  // for table diagnosis
+               getParsers: function () { // for table diagnosis
                        return parsers;
                }
        };
index 53c1fbb..2b6fc9d 100644 (file)
                                        role: 'navigation',
                                        'aria-labelledby': 'p-lang-label'
                                } )
-                               .append( $( '<h3>' ).attr( 'id', 'p-lang-label' ).text( mw.msg( 'otherlanguages' ) ) )
-                               .append( $( '<div>' ).addClass( 'body' ).append( '<ul>' ) )
+                                       .append( $( '<h3>' ).attr( 'id', 'p-lang-label' ).text( mw.msg( 'otherlanguages' ) ) )
+                                       .append( $( '<div>' ).addClass( 'body' ).append( '<ul>' ) )
                        );
                }
 
index b3b0af2..6f49fa6 100644 (file)
@@ -23,8 +23,7 @@ jQuery( function ( $ ) {
                        return true;
                }
 
-               $lis
-               .each( function () {
+               $lis.each( function () {
                        $li = $( this );
                        $inputs = $li.find( 'input[type="radio"]' );
                        $oldidRadio = $inputs.filter( '[name="oldid"]' ).eq( 0 );
@@ -97,8 +96,7 @@ jQuery( function ( $ ) {
                        // Also remove potentially conflicting id attributes that we don't need anyway
                        $copyForm
                                .css( 'display', 'none' )
-                               .find( '[id]' )
-                                       .removeAttr( 'id' )
+                               .find( '[id]' ).removeAttr( 'id' )
                                .end()
                                .insertAfter( $historyCompareForm )
                                .submit();
index a3a82d5..0d000c9 100644 (file)
                $col = $( '<td colspan="2"></td>' );
 
                $link = $( '<a>' )
-               .text( showText )
-               .attr( {
-                       role: 'button',
-                       tabindex: 0
-               } )
-               .on( 'click keypress', function ( e ) {
-                       if (
-                               e.type === 'click' ||
-                               e.type === 'keypress' && e.which === 13
-                       ) {
-                               if ( $table.hasClass( 'collapsed' ) ) {
-                                       $( this ).text( hideText );
-                               } else {
-                                       $( this ).text( showText );
+                       .text( showText )
+                       .attr( {
+                               role: 'button',
+                               tabindex: 0
+                       } )
+                       .on( 'click keypress', function ( e ) {
+                               if (
+                                       e.type === 'click' ||
+                                       e.type === 'keypress' && e.which === 13
+                               ) {
+                                       if ( $table.hasClass( 'collapsed' ) ) {
+                                               $( this ).text( hideText );
+                                       } else {
+                                               $( this ).text( showText );
+                                       }
+                                       $table.toggleClass( 'expanded collapsed' );
                                }
-                               $table.toggleClass( 'expanded collapsed' );
-                       }
-               } );
+                       } );
 
                $col.append( $link );
                $row.append( $col );
index 2307f30..4915803 100644 (file)
 
                        // Go over the items and define the correct values
                        $.each( filterRepresentation, function ( name, value ) {
+                               // We must store all parameter values as strings '0' or '1'
                                result[ filterParamNames[ name ] ] = areAnySelected ?
-                                       // We must store all parameter values as strings '0' or '1'
                                        String( Number( !value ) ) :
                                        '0';
                        } );
                        $.each( paramRepresentation, function ( paramName, paramValue ) {
                                var filterItem = paramToFilterMap[ paramName ];
 
+                               // Flip the definition between the parameter
+                               // state and the filter state
+                               // This is what the 'toggleSelected' value of the filter is
                                result[ filterItem.getName() ] = areAnySelected ?
-                                       // Flip the definition between the parameter
-                                       // state and the filter state
-                                       // This is what the 'toggleSelected' value of the filter is
                                        !Number( paramValue ) :
                                        // Otherwise, there are no selected items in the
                                        // group, which means the state is false
                        );
                        // Translate the parameter values into a filter selection state
                        this.getItems().forEach( function ( filterItem ) {
+                               // All true (either because all values are written or the term 'all' is written)
+                               // is the same as all filters set to true
                                result[ filterItem.getName() ] = (
-                                               // If it is the word 'all'
-                                               paramValues.length === 1 && paramValues[ 0 ] === 'all' ||
-                                               // All values are written
-                                               paramValues.length === model.getItemCount()
-                                       ) ?
-                                       // All true (either because all values are written or the term 'all' is written)
-                                       // is the same as all filters set to true
+                                       // If it is the word 'all'
+                                       paramValues.length === 1 && paramValues[ 0 ] === 'all' ||
+                                       // All values are written
+                                       paramValues.length === model.getItemCount()
+                               ) ?
                                        true :
                                        // Otherwise, the filter is selected only if it appears in the parameter values
                                        paramValues.indexOf( filterItem.getParamName() ) > -1;
index fb0b93b..2daa76e 100644 (file)
@@ -1,5 +1,6 @@
 .mw-rcfilters-ui-savedLinksListItemWidget {
-       padding: 0.2em 0.7em;
+       padding: 0 0.5em;
+       line-height: normal;
 
        &:hover {
                // Mimicking optionWidget styles
@@ -48,6 +49,7 @@
 
        &-content {
                width: 100%;
+               line-height: normal;
        }
 
 }
index d0ad8d5..da71d70 100644 (file)
                // Invert namespaces button
                this.invertNamespacesButton = new OO.ui.ToggleButtonWidget( {
                        icon: '',
-                       label: mw.msg( 'invert' ),
                        classes: [ 'mw-rcfilters-ui-filterMenuHeaderWidget-invertNamespacesButton' ]
                } );
                this.invertNamespacesButton.toggle( this.model.getCurrentView() === 'namespaces' );
+               this.updateInvertButton( this.model.areNamespacesInverted() );
 
                // Events
                this.backButton.connect( this, { click: 'onBackButtonClick' } );
         * @param {boolean} isInverted Namespaces selection is inverted
         */
        mw.rcfilters.ui.FilterMenuHeaderWidget.prototype.onModelInvertChange = function ( isInverted ) {
+               this.updateInvertButton( isInverted );
+       };
+
+       /**
+        * Update the state of the invert button
+        *
+        * @param {boolean} isInverted Namespaces selection is inverted
+        */
+       mw.rcfilters.ui.FilterMenuHeaderWidget.prototype.updateInvertButton = function ( isInverted ) {
                this.invertNamespacesButton.setActive( isInverted );
+               this.invertNamespacesButton.setLabel(
+                       isInverted ?
+                               mw.msg( 'rcfilters-exclude-button-on' ) :
+                               mw.msg( 'rcfilters-exclude-button-off' )
+               );
        };
 
        mw.rcfilters.ui.FilterMenuHeaderWidget.prototype.onBackButtonClick = function () {
index 8bab981..90ee4d7 100644 (file)
@@ -15,7 +15,7 @@
                mw.rcfilters.ui.LiveUpdateButtonWidget.parent.call( this, $.extend( {
                        icon: 'play',
                        label: mw.message( 'rcfilters-liveupdates-button' ).text()
-               } ), config );
+               }, config ) );
 
                this.controller = controller;
 
index 64b9ac9..07d4506 100644 (file)
@@ -34,8 +34,7 @@
 
                this.inputValue = '';
                this.$overlay = config.$overlay || this.$element;
-               this.$body = $( '<div>' )
-                               .addClass( 'mw-rcfilters-ui-menuSelectWidget-body' );
+               this.$body = $( '<div>' ).addClass( 'mw-rcfilters-ui-menuSelectWidget-body' );
                this.footers = [];
 
                // Parent
index 3f34951..f65a257 100644 (file)
@@ -1,7 +1,12 @@
-/* jshint -W024*/
 ( function ( mw, $ ) {
        $( function () {
-               mw.widgets.DateInputWidget.static.infuse( 'mw-date-start' );
-               mw.widgets.DateInputWidget.static.infuse( 'mw-date-end' );
+               var startInput = mw.widgets.DateInputWidget.static.infuse( 'mw-date-start' ),
+                       endInput = mw.widgets.DateInputWidget.static.infuse( 'mw-date-end' );
+
+               startInput.on( 'deactivate', function ( userSelected ) {
+                       if ( userSelected ) {
+                               endInput.focus();
+                       }
+               } );
        } );
 }( mediaWiki, jQuery ) );
index 84a9a96..63f2d98 100644 (file)
@@ -21,8 +21,8 @@
                                'aria-labelledby': labelFunc
                        } );
                $fieldsets.not( '#mw-prefsection-personal' )
-                               .hide()
-                               .attr( 'aria-hidden', 'true' );
+                       .hide()
+                       .attr( 'aria-hidden', 'true' );
 
                // T115692: The following is kept for backwards compatibility with older skins
                $preferences.addClass( 'jsprefs' );
@@ -72,8 +72,7 @@
                                $tab.attr( {
                                        tabIndex: 0,
                                        'aria-selected': 'true'
-                               } )
-                               .focus()
+                               } ).focus()
                                        .parent().addClass( 'selected' );
 
                                $preferences.children( 'fieldset' ).hide().attr( 'aria-hidden', 'true' );
                function detectHash() {
                        var hash = location.hash,
                                matchedElement, parentSection;
-                       if ( hash.match( /^#mw-prefsection-[\w\-]+/ ) ) {
+                       if ( hash.match( /^#mw-prefsection-[\w-]+/ ) ) {
                                mw.storage.session.remove( 'mwpreferences-prevTab' );
                                switchPrefTab( hash.replace( '#mw-prefsection-', '' ) );
-                       } else if ( hash.match( /^#mw-[\w\-]+/ ) ) {
+                       } else if ( hash.match( /^#mw-[\w-]+/ ) ) {
                                matchedElement = document.getElementById( hash.slice( 1 ) );
                                parentSection = $( matchedElement ).closest( '.prefsection' );
                                if ( parentSection.length ) {
                ) {
                        $( window ).on( 'hashchange', function () {
                                var hash = location.hash;
-                               if ( hash.match( /^#mw-[\w\-]+/ ) ) {
+                               if ( hash.match( /^#mw-[\w-]+/ ) ) {
                                        detectHash();
                                } else if ( hash === '' ) {
                                        switchPrefTab( 'personal', 'noHash' );
                                }
                        } )
-                       // Run the function immediately to select the proper tab on startup.
-                       .trigger( 'hashchange' );
+                               // Run the function immediately to select the proper tab on startup.
+                               .trigger( 'hashchange' );
                // In older browsers we'll bind a click handler as fallback.
                // We must not have onhashchange *and* the click handlers, otherwise
                // the click handler calls switchPrefTab() which sets the hash value,
index 9518283..648bf67 100644 (file)
@@ -56,8 +56,7 @@
                piprop: 'thumbnail',
                pithumbsize: 300,
                formatversion: 2
-       } )
-       .done( function ( resp ) {
+       } ).done( function ( resp ) {
                var results = ( resp.query && resp.query.pages ) ? resp.query.pages : false,
                        multimediaWidgetTemplate;
 
index ad49a42..a7a3bd3 100644 (file)
                if ( v.normalize ) {
                        v = v.normalize();
                }
-               re = new RegExp( '^\\s*' + v.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' ), 'i' );
+               re = new RegExp( '^\\s*' + v.replace( /([\\{}()|.?*+\-^$\[\]])/g, '\\$1' ), 'i' ); // eslint-disable-line no-useless-escape
                for ( k in this.values ) {
                        k = +k;
                        if ( !isNaN( k ) && re.test( this.values[ k ] ) ) {
index e42ab25..9233eef 100644 (file)
 
        /* Methods */
 
+       /**
+        * Get the currently focused field, if any
+        *
+        * @private
+        * @return {jQuery}
+        */
+       mw.widgets.datetime.DateTimeInputWidget.prototype.getFocusedField = function () {
+               return this.$fields.find( this.getElementDocument().activeElement );
+       };
+
        /**
         * Convert a date string to a Date
         *
                var delta = 0,
                        spec = $field.data( 'mw-widgets-datetime-dateTimeInputWidget-fieldSpec' );
 
-               if ( this.isDisabled() ) {
+               if ( this.isDisabled() || !this.getFocusedField().length ) {
                        return;
                }
 
         * @inheritdoc
         */
        mw.widgets.datetime.DateTimeInputWidget.prototype.focus = function () {
-               if ( !this.$fields.find( document.activeElement ).length ) {
+               if ( !this.getFocusedField().length ) {
                        this.$fields.find( '.mw-widgets-datetime-dateTimeInputWidget-editField' ).first().focus();
                }
                return this;
         * @inheritdoc
         */
        mw.widgets.datetime.DateTimeInputWidget.prototype.blur = function () {
-               this.$fields.find( document.activeElement ).blur();
+               this.getFocusedField().blur();
                return this;
        };
 
index 1cc168a..08266f0 100644 (file)
                var queryValue = this.query.getValue().trim();
 
                if ( queryValue.match( this.externalLinkUrlProtocolsRegExp ) ) {
-                       queryValue = queryValue.match( /.+\/([^\/]+)/ )[ 1 ];
+                       queryValue = queryValue.match( /.+\/([^/]+)/ )[ 1 ];
                }
                return queryValue;
        };
index c5a2dd4..b91617e 100644 (file)
                                        );
                                        currentMonth.add( 1, 'month' );
                                }
-                               // Shuffle the array to display months in columns rather than rows.
+                               // Shuffle the array to display months in columns rather than rows:
+                               // | Jan | Jul |
+                               // | Feb | Aug |
+                               // | Mar | Sep |
+                               // | Apr | Oct |
+                               // | May | Nov |
+                               // | Jun | Dec |
                                items = [
-                                       items[ 0 ], items[ 6 ],      //  | January  | July      |
-                                       items[ 1 ], items[ 7 ],      //  | February | August    |
-                                       items[ 2 ], items[ 8 ],      //  | March    | September |
-                                       items[ 3 ], items[ 9 ],      //  | April    | October   |
-                                       items[ 4 ], items[ 10 ],     //  | May      | November  |
-                                       items[ 5 ], items[ 11 ]      //  | June     | December  |
+                                       items[ 0 ], items[ 6 ],
+                                       items[ 1 ], items[ 7 ],
+                                       items[ 2 ], items[ 8 ],
+                                       items[ 3 ], items[ 9 ],
+                                       items[ 4 ], items[ 10 ],
+                                       items[ 5 ], items[ 11 ]
                                ];
                                break;
 
index 50a84f8..ce9cf36 100644 (file)
                } );
                this.inCalendar = 0;
                this.inTextInput = 0;
+               this.closing = false;
                this.inputFormat = config.inputFormat;
                this.displayFormat = config.displayFormat;
                this.longDisplayFormat = config.longDisplayFormat;
                this.$handle.on( {
                        click: this.onClick.bind( this ),
                        keypress: this.onKeyPress.bind( this ),
-                       focus: this.activate.bind( this )
+                       focus: this.onFocus.bind( this )
                } );
 
                // Initialization
        OO.inheritClass( mw.widgets.DateInputWidget, OO.ui.TextInputWidget );
        OO.mixinClass( mw.widgets.DateInputWidget, OO.ui.mixin.IndicatorElement );
 
+       /* Events */
+
+       /**
+        * Fired when the widget is deactivated (i.e. the calendar is closed). This can happen because
+        * the user selected a value, or because the user blurred the widget.
+        *
+        * @event deactivate
+        * @param {boolean} userSelected Whether the deactivation happened because the user selected a value
+        */
+
        /* Methods */
 
        /**
         * Deactivate this input field for data entry. Closes the calendar and hides the text field.
         *
         * @private
+        * @param {boolean} [userSelected] Whether we are deactivating because the user selected a value
         */
-       mw.widgets.DateInputWidget.prototype.deactivate = function () {
+       mw.widgets.DateInputWidget.prototype.deactivate = function ( userSelected ) {
                this.$element.removeClass( 'mw-widget-dateInputWidget-active' );
                this.$handle.show();
                this.textInput.toggle( false );
                this.calendar.toggle( false );
                this.setValidityFlag();
+
+               if ( userSelected ) {
+                       // Prevent focusing the handle from reopening the calendar
+                       this.closing = true;
+                       this.$handle.focus();
+                       this.closing = false;
+               }
+
+               this.emit( 'deactivate', !!userSelected );
        };
 
        /**
                }
        };
 
+       /**
+        * Handle focus events.
+        *
+        * @private
+        */
+       mw.widgets.DateInputWidget.prototype.onFocus = function () {
+               if ( !this.closing ) {
+                       this.activate();
+               }
+       };
+
        /**
         * Handle calendar key press events.
         *
         */
        mw.widgets.DateInputWidget.prototype.onCalendarKeyPress = function ( e ) {
                if ( !this.isDisabled() && e.which === OO.ui.Keys.ENTER ) {
-                       this.deactivate();
-                       this.$handle.focus();
+                       this.deactivate( true );
                        return false;
                }
        };
                if (
                        !this.isDisabled() &&
                        e.which === 1 &&
-                       $( e.target ).hasClass( 'mw-widget-calendarWidget-day' )
+                       (
+                               $( e.target ).hasClass( 'mw-widget-calendarWidget-day' ) ||
+                               $( e.target ).hasClass( 'mw-widget-calendarWidget-month' )
+                       )
                ) {
-                       this.deactivate();
-                       this.$handle.focus();
+                       this.deactivate( true );
                        return false;
                }
        };
         * @private
         */
        mw.widgets.DateInputWidget.prototype.onEnter = function () {
-               this.deactivate();
-               this.$handle.focus();
+               this.deactivate( true );
        };
 
        /**
index cdc4dbf..322143d 100644 (file)
@@ -19,8 +19,7 @@
                                title: String( page ),
                                user: user,
                                uselang: mw.config.get( 'wgUserLanguage' )
-                       }, params ) )
-                       .then( function ( data ) {
+                       }, params ) ).then( function ( data ) {
                                return data.rollback;
                        } );
                }
index 219dfb8..4a2895d 100644 (file)
 
                        upload = this.uploadWithFormData( file, data );
                        return upload.then(
-                                       null,
-                                       // If the call fails, we may want to try again...
-                                       retries === 0 ? null : retry,
-                                       function ( fraction ) {
-                                               // Since we're only uploading small parts of a file, we
-                                               // need to adjust the reported progress to reflect where
-                                               // we actually are in the combined upload
-                                               return ( start + fraction * ( end - start ) ) / file.size;
-                                       }
-                               ).promise( { abort: upload.abort } );
+                               null,
+                               // If the call fails, we may want to try again...
+                               retries === 0 ? null : retry,
+                               function ( fraction ) {
+                                       // Since we're only uploading small parts of a file, we
+                                       // need to adjust the reported progress to reflect where
+                                       // we actually are in the combined upload
+                                       return ( start + fraction * ( end - start ) ) / file.size;
+                               }
+                       ).promise( { abort: upload.abort } );
                },
 
                /**
index 3bf75ae..6d3c9fd 100644 (file)
@@ -20,7 +20,7 @@
         */
        function hideIfGetField( $el, name ) {
                var $found, $p, $widget,
-                       suffix = name.replace( /^([^\[]+)/, '[$1]' );
+                       suffix = name.replace( /^([^[]+)/, '[$1]' );
 
                function nameFilter() {
                        return this.name === name ||
index 7a1fa7f..ac2bb02 100644 (file)
         */
        mw.ForeignStructuredUpload.BookletLayout.prototype.saveFile = function () {
                var title = mw.Title.newFromText(
-                               this.getFilename(),
-                               mw.config.get( 'wgNamespaceIds' ).file
-                       );
+                       this.getFilename(),
+                       mw.config.get( 'wgNamespaceIds' ).file
+               );
 
                return this.uploadPromise
                        .then( this.validateFilename.bind( this, title ) )
index 1da4ab4..91cdc2d 100644 (file)
@@ -16,7 +16,7 @@
                 * @return {string} Escaped string
                 */
                escape: function ( str ) {
-                       return str.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' );
+                       return str.replace( /([\\{}()|.?*+\-^$\[\]])/g, '\\$1' ); // eslint-disable-line no-useless-escape
                }
        };
 }( mediaWiki ) );
index 253e0ef..398adbb 100644 (file)
                        },
                        // brackets, greater than
                        {
-                               pattern: /[\]\}>]/g,
+                               pattern: /[}\]>]/g,
                                replace: ')',
                                generalRule: true
                        },
                        // brackets, lower than
                        {
-                               pattern: /[\[\{<]/g,
+                               pattern: /[{[<]/g,
                                replace: '(',
                                generalRule: true
                        },
                }
 
                // Any remaining initial :s are illegal.
-               title = title.replace( /^\:+/, '' );
+               title = title.replace( /^:+/, '' );
 
                return Title.newFromText( title, namespace );
        };
                        thumbPhpRegex = /thumb\.php/,
                        regexes = [
                                // Thumbnails
-                               /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)\/[^\s\/]+-[^\s\/]*$/,
+                               /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s/]+)\/[^\s/]+-[^\s/]*$/,
 
                                // Full size images
-                               /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)$/,
+                               /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s/]+)$/,
 
                                // Thumbnails in non-hashed upload directories
-                               /\/([^\s\/]+)\/[^\s\/]+-(?:\1|thumbnail)[^\s\/]*$/,
+                               /\/([^\s/]+)\/[^\s/]+-(?:\1|thumbnail)[^\s/]*$/,
 
                                // Full-size images in non-hashed upload directories
-                               /\/([^\s\/]+)$/
+                               /\/([^\s/]+)$/
                        ],
 
                        recount = regexes.length;
index 3c1a668..939b841 100644 (file)
                                return $( '<div>' ).prop( {
                                        id: 'mw-debug-' + id,
                                        className: 'mw-debug-bit'
-                               } )
-                               .appendTo( $bits );
+                               } ).appendTo( $bits );
                        }
 
                        /**
                                        id: 'mw-debug-' + id,
                                        className: 'mw-debug-bit mw-debug-panelink'
                                } )
-                               .append( paneLabel( id, text ) )
-                               .appendTo( $bits );
+                                       .append( paneLabel( id, text ) )
+                                       .appendTo( $bits );
                        }
 
                        paneTriggerBitDiv( 'console', 'Console', this.data.log.length );
                                .append( $( '<th>SQL</th>' ) )
                                .append( $( '<th>Time</th>' ).css( 'width', '8em' ) )
                                .append( $( '<th>Call</th>' ).css( 'width', '18em' ) )
-                       .appendTo( $table );
+                               .appendTo( $table );
 
                        for ( i = 0, length = this.data.queries.length; i < length; i += 1 ) {
                                query = this.data.queries[ i ];
                                        .append( $( '<td>' ).text( query.sql ) )
                                        .append( $( '<td class="stats">' ).text( ( query.time * 1000 ).toFixed( 4 ) + 'ms' ) )
                                        .append( $( '<td>' ).text( query[ 'function' ] ) )
-                               .appendTo( $table );
+                                       .appendTo( $table );
                        }
 
                        return $table;
index f0e13b4..2d55094 100644 (file)
         */
        mw.Feedback.Dialog.prototype.validateFeedbackForm = function () {
                var isValid = (
-                               (
-                                       !this.useragentMandatory ||
-                                       this.useragentCheckbox.isSelected()
-                               ) &&
-                               this.feedbackSubjectInput.getValue()
-                       );
+                       (
+                               !this.useragentMandatory ||
+                               this.useragentCheckbox.isSelected()
+                       ) &&
+                       this.feedbackSubjectInput.getValue()
+               );
 
                this.actions.setAbilities( { submit: isValid } );
        };
index 6d3b4f0..e1681fa 100644 (file)
                        // recursive functions seem not to work in all browsers then. (Tested IE6-7, Opera, Safari, FF)
                        // This may be because, to save code, memoization was removed
 
+                       /* eslint-disable no-useless-escape */
                        regularLiteral = makeRegexParser( /^[^{}\[\]$<\\]/ );
                        regularLiteralWithoutBar = makeRegexParser( /^[^{}\[\]$\\|]/ );
                        regularLiteralWithoutSpace = makeRegexParser( /^[^{}\[\]$\s]/ );
                        regularLiteralWithSquareBrackets = makeRegexParser( /^[^{}$\\]/ );
+                       /* eslint-enable no-useless-escape */
 
                        backslash = makeStringParser( '\\' );
                        doubleQuote = makeStringParser( '"' );
                        templateName = transform(
                                // see $wgLegalTitleChars
                                // not allowing : due to the need to catch "PLURAL:$1"
-                               makeRegexParser( /^[ !"$&'()*,.\/0-9;=?@A-Z\^_`a-z~\x80-\xFF+\-]+/ ),
+                               makeRegexParser( /^[ !"$&'()*,./0-9;=?@A-Z^_`a-z~\x80-\xFF+-]+/ ),
                                function ( result ) { return result.toString(); }
                        );
                        function templateParam() {
                                        $el.attr( {
                                                role: 'button',
                                                tabindex: 0
-                                       } )
-                                       .on( 'click keypress', function ( e ) {
+                                       } ).on( 'click keypress', function ( e ) {
                                                if (
                                                        e.type === 'click' ||
                                                        e.type === 'keypress' && e.which === 13
        // Replace the default message parser with jqueryMsg
        oldParser = mw.Message.prototype.parser;
        mw.Message.prototype.parser = function () {
-               if ( this.format === 'plain' || !/\{\{|[\[<>&]/.test( this.map.get( this.key ) ) ) {
+               if ( this.format === 'plain' || !/\{\{|[<>[&]/.test( this.map.get( this.key ) ) ) {
                        // Fall back to mw.msg's simple parser
                        return oldParser.apply( this );
                }
index 18f7f0a..c5989c0 100644 (file)
        function setGlobalMapValue( map, key, value ) {
                map.values[ key ] = value;
                log.deprecate(
-                               window,
-                               key,
-                               value,
-                               // Deprecation notice for mw.config globals (T58550, T72470)
-                               map === mw.config && 'Use mw.config instead.'
+                       window,
+                       key,
+                       value,
+                       // Deprecation notice for mw.config globals (T58550, T72470)
+                       map === mw.config && 'Use mw.config instead.'
                );
        }
 
index d36c4a0..dfacfc6 100644 (file)
@@ -35,7 +35,7 @@
 
                if ( options.tag ) {
                        // Sanitize options.tag before it is used by any code. (Including Notification class methods)
-                       options.tag = options.tag.replace( /[ _\-]+/g, '-' ).replace( /[^\-a-z0-9]+/ig, '' );
+                       options.tag = options.tag.replace( /[ _-]+/g, '-' ).replace( /[^-a-z0-9]+/ig, '' );
                        if ( options.tag ) {
                                $notification.addClass( 'mw-notification-tag-' + options.tag );
                        } else {
@@ -45,7 +45,7 @@
 
                if ( options.type ) {
                        // Sanitize options.type
-                       options.type = options.type.replace( /[ _\-]+/g, '-' ).replace( /[^\-a-z0-9]+/ig, '' );
+                       options.type = options.type.replace( /[ _-]+/g, '-' ).replace( /[^-a-z0-9]+/ig, '' );
                        $notification.addClass( 'mw-notification-type-' + options.type );
                }
 
index 6a6aa15..650092b 100644 (file)
@@ -44,8 +44,7 @@
         *  by that time.
         */
        mw.requestIdleCallback = window.requestIdleCallback ?
-               // Bind because it throws TypeError if context is not window
-               window.requestIdleCallback.bind( window ) :
+               window.requestIdleCallback.bind( window ) : // Bind because it throws TypeError if context is not window
                mw.requestIdleCallbackInternal;
        // Note: Polyfill was previously disabled due to
        // https://bugs.chromium.org/p/chromium/issues/detail?id=647870
index bcb6c33..1c1150e 100644 (file)
@@ -87,9 +87,9 @@
                 */
                function getInputLocation( context ) {
                        return context.config.$region
-                                       .closest( 'form' )
-                                       .find( '[data-search-loc]' )
-                                       .data( 'search-loc' ) || 'header';
+                               .closest( 'form' )
+                               .find( '[data-search-loc]' )
+                               .data( 'search-loc' ) || 'header';
                }
 
                /**
                                var $this = $( this );
                                $this
                                        .data( 'suggestions-context' )
-                                       .data.$container
-                                               .css( 'fontSize', $this.css( 'fontSize' ) );
+                                       .data.$container.css( 'fontSize', $this.css( 'fontSize' ) );
                        } );
 
                // Ensure that the thing is actually present!
index 53e8d93..5e10a5b 100644 (file)
@@ -45,8 +45,8 @@
                                        $tocToggleLink
                                                .wrap( '<span class="toctoggle"></span>' )
                                                .parent()
-                                                       .prepend( '&nbsp;[' )
-                                                       .append( ']&nbsp;' )
+                                               .prepend( '&nbsp;[' )
+                                               .append( ']&nbsp;' )
                                );
 
                                if ( hideToc ) {
index 6d6d46d..d8fb249 100644 (file)
@@ -33,8 +33,7 @@
                                formatversion: 2,
                                action: 'patrol',
                                rcid: rcid
-                       } )
-                       .done( function ( data ) {
+                       } ).done( function ( data ) {
                                var title;
                                // Remove all patrollinks from the page (including any spinners inside).
                                $patrolLinks.closest( '.patrollink' ).remove();
@@ -46,8 +45,7 @@
                                        // This should never happen as errors should trigger fail
                                        mw.notify( mw.msg( 'markedaspatrollederrornotify' ), { type: 'error' } );
                                }
-                       } )
-                       .fail( function ( error ) {
+                       } ).fail( function ( error ) {
                                $spinner.remove();
                                // Restore the patrol link. This allows the user to try again
                                // (or open it in a new window, bypassing this ajax module).
index d94b158..6db518d 100644 (file)
@@ -45,8 +45,8 @@
                                        $( e.delegateTarget ).remove();
                                }, function ( errorCode, data ) {
                                        var message = data && data.error && data.error.messageHtml ?
-                                               $.parseHTML( data.error.messageHtml ) :
-                                               mw.msg( 'rollbackfailed' ),
+                                                       $.parseHTML( data.error.messageHtml ) :
+                                                       mw.msg( 'rollbackfailed' ),
                                                type = errorCode === 'alreadyrolled' ? 'warn' : 'error';
 
                                        mw.notify( message, {
index 9bd5d8d..1015b0b 100644 (file)
@@ -22,7 +22,8 @@
  * @param string $text1
  * @param string $text2
  * @param int $numContextLines
+ * @param int $movedParagraphDetectionCutoff
  * @return string
  */
-function wikidiff2_do_diff( $text1, $text2, $numContextLines ) {
+function wikidiff2_do_diff( $text1, $text2, $numContextLines, $movedParagraphDetectionCutoff = 0 ) {
 }
index 15833dc..31cfa70 100644 (file)
@@ -640,8 +640,8 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         * The key is added to the array of globals that will be reset afterwards
         * in the tearDown().
         *
-        * @example
-        * <code>
+        * @par Example
+        * @code
         *     protected function setUp() {
         *         $this->setMwGlobals( 'wgRestrictStuff', true );
         *     }
@@ -656,7 +656,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         *     }
         *
         *     function testQuux() {}
-        * </code>
+        * @endcode
         *
         * @param array|string $pairs Key to the global variable, or an array
         *  of key/value pairs.
index e2209eb..4070bc0 100644 (file)
@@ -37,11 +37,8 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase
                return $mock;
        }
 
-       /** helper to test SpecialRecentchanges::buildMainQueryConds() */
-       private function assertConditions(
-               $expected,
+       private function buildQuery(
                $requestOptions = null,
-               $message = '',
                $user = null
        ) {
                $context = new RequestContext;
@@ -81,6 +78,18 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase
                        'ChangesListSpecialPageTest::filterOutRcTimestampCondition'
                );
 
+               return $queryConditions;
+       }
+
+       /** helper to test SpecialRecentchanges::buildQuery() */
+       private function assertConditions(
+               $expected,
+               $requestOptions = null,
+               $message = '',
+               $user = null
+       ) {
+               $queryConditions = $this->buildQuery( $requestOptions, $user );
+
                $this->assertEquals(
                        self::normalizeCondition( $expected ),
                        self::normalizeCondition( $queryConditions ),
@@ -373,6 +382,104 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase
                );
        }
 
+       public function testFilterUserExpLevelAll() {
+               $this->assertConditions(
+                       [
+                               # expected
+                       ],
+                       [
+                               'userExpLevel' => 'registered;unregistered;newcomer;learner;experienced',
+                       ],
+                       "rc conditions: userExpLevel=registered;unregistered;newcomer;learner;experienced"
+               );
+       }
+
+       public function testFilterUserExpLevelRegisteredUnregistered() {
+               $this->assertConditions(
+                       [
+                               # expected
+                       ],
+                       [
+                               'userExpLevel' => 'registered;unregistered',
+                       ],
+                       "rc conditions: userExpLevel=registered;unregistered"
+               );
+       }
+
+       public function testFilterUserExpLevelRegisteredUnregisteredLearner() {
+               $this->assertConditions(
+                       [
+                               # expected
+                       ],
+                       [
+                               'userExpLevel' => 'registered;unregistered;learner',
+                       ],
+                       "rc conditions: userExpLevel=registered;unregistered;learner"
+               );
+       }
+
+       public function testFilterUserExpLevelAllExperienceLevels() {
+               $this->assertConditions(
+                       [
+                               # expected
+                               'rc_user != 0',
+                       ],
+                       [
+                               'userExpLevel' => 'newcomer;learner;experienced',
+                       ],
+                       "rc conditions: userExpLevel=newcomer;learner;experienced"
+               );
+       }
+
+       public function testFilterUserExpLevelRegistrered() {
+               $this->assertConditions(
+                       [
+                               # expected
+                               'rc_user != 0',
+                       ],
+                       [
+                               'userExpLevel' => 'registered',
+                       ],
+                       "rc conditions: userExpLevel=registered"
+               );
+       }
+
+       public function testFilterUserExpLevelUnregistrered() {
+               $this->assertConditions(
+                       [
+                               # expected
+                               'rc_user' => 0,
+                       ],
+                       [
+                               'userExpLevel' => 'unregistered',
+                       ],
+                       "rc conditions: userExpLevel=unregistered"
+               );
+       }
+
+       public function testFilterUserExpLevelRegistreredOrLearner() {
+               $this->assertConditions(
+                       [
+                               # expected
+                               'rc_user != 0',
+                       ],
+                       [
+                               'userExpLevel' => 'registered;learner',
+                       ],
+                       "rc conditions: userExpLevel=registered;learner"
+               );
+       }
+
+       public function testFilterUserExpLevelUnregistreredOrExperienced() {
+               $conds = $this->buildQuery( [ 'userExpLevel' => 'unregistered;experienced' ] );
+
+               $this->assertRegExp(
+                       '/\(rc_user = 0\) OR \(\(user_editcount >= 500\) AND \(user_registration <= \'\d+\'\)\)/',
+                       reset( $conds ),
+                       "rc conditions: userExpLevel=unregistered;experienced"
+               );
+       }
+
        public function testFilterUserExpLevel() {
                $now = time();
                $this->setMwGlobals( [
@@ -438,18 +545,6 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase
                        $this->fetchUsers( [ 'learner', 'experienced' ], $now ),
                        'Learner and more experienced'
                );
-
-               // newcomers, learner, and more experienced
-               // TOOD: Fix test.  This needs to test that anons are excluded,
-               // and right now the join fails.
-               /* $this->assertArrayEquals( */
-               /*      [ */
-               /*              'Newcomer1', 'Newcomer2', 'Newcomer3', */
-               /*              'Learner1', 'Learner2', 'Learner3', 'Learner4', */
-               /*              'Experienced1', */
-               /*      ], */
-               /*      $this->fetchUsers( [ 'newcomer', 'learner', 'experienced' ], $now ) */
-               /* ); */
        }
 
        private function createUsers( $specs, $now ) {
@@ -798,7 +893,7 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase
                                        "hideliu" => true,
                                        "userExpLevel" => "newcomer",
                                ],
-                               "expectedConflicts" => true,
+                               "expectedConflicts" => false,
                        ],
                        [
                                "parameters" => [
index 7babcac..2f19c81 100644 (file)
@@ -33,6 +33,7 @@
                <testsuite name="skins">
                        <directory>skins</directory>
                        <directory>structure</directory>
+                       <file>suites/ExtensionsTestSuite.php</file>
                        <file>suites/LessTestSuite.php</file>
                </testsuite>
                <!-- As there is a class Maintenance, we cannot use the name "maintenance" directly -->
index d7da5a0..f023ddd 100644 (file)
                var orgModule = QUnit.module;
 
                QUnit.module = function ( name, localEnv, executeNow ) {
+                       if ( QUnit.config.moduleStack.length ) {
+                               // When inside a nested module, don't add our Sinon
+                               // setup/teardown a second time.
+                               return orgModule.apply( this, arguments );
+                       }
+
                        if ( arguments.length === 2 && typeof localEnv === 'function' ) {
                                executeNow = localEnv;
                                localEnv = undefined;
@@ -85,9 +91,7 @@
                                                localEnv.teardown.call( this );
                                        }
 
-                                       if ( this.sandbox ) {
-                                               this.sandbox.verifyAndRestore();
-                                       }
+                                       this.sandbox.verifyAndRestore();
                                }
                        }, executeNow );
                };
index 5c1be67..8555a7e 100644 (file)
        byteLimitTest( {
                description: 'Input filter that increases the length',
                $input: $( '<input>' ).attr( 'type', 'text' )
-               .byteLimit( 10, function ( text ) {
-                       return 'prefix' + text;
-               } ),
+                       .byteLimit( 10, function ( text ) {
+                               return 'prefix' + text;
+                       } ),
                sample: simpleSample,
                // Prefix adds 6 characters, limit is reached after 4
                expected: '1234'
        byteLimitTest( {
                description: 'Input filter of which the base exceeds the limit',
                $input: $( '<input>' ).attr( 'type', 'text' )
-               .byteLimit( 3, function ( text ) {
-                       return 'prefix' + text;
-               } ),
+                       .byteLimit( 3, function ( text ) {
+                               return 'prefix' + text;
+                       } ),
                sample: simpleSample,
                hasLimit: true,
                limit: 6, // 'prefix' length
index 53d29cf..0c91e43 100644 (file)
 
        QUnit.test( 'mw-made-collapsible data added', function ( assert ) {
                var $collapsible = prepareCollapsible(
-                               '<div>' + loremIpsum + '</div>'
-                       );
+                       '<div>' + loremIpsum + '</div>'
+               );
 
                assert.equal( $collapsible.data( 'mw-made-collapsible' ), true, 'mw-made-collapsible data present' );
        } );
 
        QUnit.test( 'mw-collapsible added when missing', function ( assert ) {
                var $collapsible = prepareCollapsible(
-                               '<div>' + loremIpsum + '</div>'
-                       );
+                       '<div>' + loremIpsum + '</div>'
+               );
 
                assert.assertTrue( $collapsible.hasClass( 'mw-collapsible' ), 'mw-collapsible class present' );
        } );
        QUnit.test( 'mw-collapsed added when missing', function ( assert ) {
                var $collapsible = prepareCollapsible(
                        '<div>' + loremIpsum + '</div>',
-                               { collapsed: true }
-                       );
+                       { collapsed: true }
+               );
 
                assert.assertTrue( $collapsible.hasClass( 'mw-collapsed' ), 'mw-collapsed class present' );
        } );
index 854e4b1..4ee8038 100644 (file)
                                'action=options&format=json&formatversion=2&optionname=foo%7Cbar%3Dquux&token=%2B%5C'
                        ] ) !== -1 ) {
                                assert.ok( true, 'Repond to ' + request.requestBody );
-                               request.respond( 200, { 'Content-Type': 'application/json' },
-                                               '{ "options": "success" }' );
+                               request.respond(
+                                       200,
+                                       { 'Content-Type': 'application/json' },
+                                       '{ "options": "success" }'
+                               );
                        } else {
                                assert.ok( false, 'Unexpected request: ' + request.requestBody );
                        }
index e10a7fa..2361f70 100644 (file)
                                        'X-Foo': 'Bar'
                                }
                        }
-               )
-               .then( function () {
+               ).then( function () {
                        assert.equal( test.server.requests[ 0 ].requestHeaders[ 'X-Foo' ], 'Bar', 'Header sent' );
 
                        return api.postWithToken( 'csrf',
                                        assert.ok( false, 'This parameter cannot be a callback' );
                                }
                        );
-               } )
-               .then( function ( data ) {
+               } ).then( function ( data ) {
                        assert.equal( data.example, 'quux' );
 
                        assert.equal( test.server.requests.length, 2, 'Request made' );
index 3c77a00..db51fb3 100644 (file)
                );
                assert.equal(
                        formatParse( 'external-link-plural', 2, 'http://example.org' ),
-                       'Foo <a href=\"http://example.org\">two</a> things.',
+                       'Foo <a href="http://example.org">two</a> things.',
                        'Link is expanded inside an explicit plural form and is not escaped html'
                );
                assert.equal(
index 30654fa..985ff92 100644 (file)
                mw.loader.implement( 'test.promise', [ QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/mwLoaderTestCallback.js' ) ] );
 
                return mw.loader.using( 'test.promise' )
-               .done( function () {
-                       assert.strictEqual( isAwesomeDone, true, 'test.promise module should\'ve caused isAwesomeDone to be true' );
-                       delete mw.loader.testCallback;
-               } )
-               .fail( function () {
-                       assert.ok( false, 'Error callback fired while loader.using "test.promise" module' );
-               } );
+                       .done( function () {
+                               assert.strictEqual( isAwesomeDone, true, 'test.promise module should\'ve caused isAwesomeDone to be true' );
+                               delete mw.loader.testCallback;
+                       } )
+                       .fail( function () {
+                               assert.ok( false, 'Error callback fired while loader.using "test.promise" module' );
+                       } );
        } );
 
        // Covers mw.loader#sortDependencies (with native Set if available)
                                assert.ok( /Circular/.test( String( e ) ), 'Detect circular dependency' );
                        }
                )
-               .always( done );
+                       .always( done );
        } );
 
        // @covers mw.loader#sortDependencies (with fallback shim)
                                assert.ok( /Circular/.test( String( e ) ), 'Detect circular dependency' );
                        }
                )
-               .always( done );
+                       .always( done );
        } );
 
        QUnit.test( '.load() - Error: Circular dependency', function ( assert ) {
                                }
                        };
                } );
-               return mw.loader.using( [ 'test.require1', 'test.require2', 'test.require3', 'test.require4' ] )
-               .then( function ( require ) {
+               return mw.loader.using( [ 'test.require1', 'test.require2', 'test.require3', 'test.require4' ] ).then( function ( require ) {
                        var module1, module2, module3, module4;
 
                        module1 = require( 'test.require1' );
index c8fb8a7..f3e4877 100644 (file)
@@ -1,7 +1,6 @@
-/* eslint comma-dangle: 0 */
-/* eslint no-undef: "error" */
-/* eslint no-console: 0 */
 /* eslint-env node */
+/* eslint no-undef: "error" */
+/* eslint-disable no-console, comma-dangle */
 'use strict';
 
 const path = require( 'path' );
@@ -114,12 +113,12 @@ exports.config = {
        // with "/", then the base url gets prepended.
        baseUrl: (
                process.env.MW_SERVER === undefined ?
-               'http://127.0.0.1:8080' :
-               process.env.MW_SERVER
+                       'http://127.0.0.1:8080' :
+                       process.env.MW_SERVER
        ) + (
                process.env.MW_SCRIPT_PATH === undefined ?
-               '/w' :
-               process.env.MW_SCRIPT_PATH
+                       '/w' :
+                       process.env.MW_SCRIPT_PATH
        ),
        //
        // Default timeout for all waitFor* commands.