Merge "RCFilters: Basic implementation of live updates"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sat, 8 Jul 2017 00:28:22 +0000 (00:28 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 8 Jul 2017 00:28:22 +0000 (00:28 +0000)
55 files changed:
RELEASE-NOTES-1.30
includes/api/ApiBase.php
includes/api/ApiStashEdit.php
includes/api/i18n/fr.json
includes/api/i18n/sv.json
includes/deferred/DeferredUpdates.php
includes/exception/ErrorPageError.php
includes/libs/rdbms/database/DBConnRef.php
includes/libs/rdbms/database/Database.php
includes/libs/rdbms/database/IDatabase.php
includes/objectcache/SqlBagOStuff.php
includes/parser/Parser.php
includes/specials/SpecialNewimages.php
includes/specials/SpecialShortpages.php
languages/i18n/be-tarask.json
languages/i18n/bs.json
languages/i18n/csb.json
languages/i18n/es.json
languages/i18n/eu.json
languages/i18n/fr.json
languages/i18n/gor.json
languages/i18n/hr.json
languages/i18n/it.json
languages/i18n/jv.json
languages/i18n/lb.json
languages/i18n/lfn.json
languages/i18n/lt.json
languages/i18n/ml.json
languages/i18n/nn.json
languages/i18n/pl.json
languages/i18n/rm.json
languages/i18n/roa-tara.json
languages/i18n/sah.json
languages/i18n/shi.json
languages/i18n/shn.json
languages/i18n/th.json
languages/i18n/uk.json
package.json
resources/Resources.php
resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css
resources/src/mediawiki.special/mediawiki.special.newFiles.js [deleted file]
resources/src/mediawiki.ui/components/buttons.less
tests/parser/ParserTestRunner.php
tests/parser/parserTests.txt
tests/phpunit/includes/db/DatabaseSQLTest.php
tests/phpunit/includes/db/DatabaseTestHelper.php
tests/phpunit/includes/deferred/DeferredUpdatesTest.php
tests/phpunit/includes/exception/ErrorPageErrorTest.php
tests/selenium/.eslintrc.json
tests/selenium/README.md
tests/selenium/pageobjects/createaccount.page.js
tests/selenium/pageobjects/edit.page.js
tests/selenium/pageobjects/userlogout.page.js [deleted file]
tests/selenium/specs/page.js
tests/selenium/specs/user.js

index 7ceb327..be21a7d 100644 (file)
@@ -133,6 +133,7 @@ changes to languages because of Phabricator reports.
   are all deprecated. The main ParserCache instance should be obtained from
   MediaWikiServices instead. Access to the underlying BagOStuff is possible
   through the new ParserCache::getCacheStorage() method.
+* .mw-ui-constructive CSS class (deprecated in 1.27) was removed.
 
 == Compatibility ==
 MediaWiki 1.30 requires PHP 5.5.9 or later. There is experimental support for
index 2dcece1..bc3def8 100644 (file)
@@ -894,7 +894,7 @@ abstract class ApiBase extends ContextSource {
         * Get a WikiPage object from a title or pageid param, if possible.
         * Can die, if no param is set or if the title or page id is not valid.
         *
-        * @param array $params
+        * @param array $params User provided set of parameters, as from $this->extractRequestParams()
         * @param bool|string $load Whether load the object's state from the database:
         *        - false: don't load (if the pageid is given, it will still be loaded)
         *        - 'fromdb': load from a replica DB
@@ -935,7 +935,7 @@ abstract class ApiBase extends ContextSource {
         * Can die, if no param is set or if the title or page id is not valid.
         *
         * @since 1.29
-        * @param array $params
+        * @param array $params User provided set of parameters, as from $this->extractRequestParams()
         * @return Title
         */
        public function getTitleFromTitleOrPageId( $params ) {
index c7a00c6..d03fca8 100644 (file)
@@ -44,6 +44,7 @@ class ApiStashEdit extends ApiBase {
 
        const PRESUME_FRESH_TTL_SEC = 30;
        const MAX_CACHE_TTL = 300; // 5 minutes
+       const MAX_SIGNATURE_TTL = 60;
 
        public function execute() {
                $user = $this->getUser();
@@ -391,6 +392,12 @@ class ApiStashEdit extends ApiBase {
                // Put an upper limit on the TTL for sanity to avoid extreme template/file staleness.
                $since = time() - wfTimestamp( TS_UNIX, $parserOutput->getTimestamp() );
                $ttl = min( $parserOutput->getCacheExpiry() - $since, self::MAX_CACHE_TTL );
+
+               // Avoid extremely stale user signature timestamps (T84843)
+               if ( $parserOutput->getFlag( 'user-signature' ) ) {
+                       $ttl = min( $ttl, self::MAX_SIGNATURE_TTL );
+               }
+
                if ( $ttl <= 0 ) {
                        return [ null, 0, 'no_ttl' ];
                }
index 55aaeb8..e419711 100644 (file)
        "apihelp-query+search-paramvalue-prop-sectiontitle": "Ajoute le titre de la section correspondante.",
        "apihelp-query+search-paramvalue-prop-categorysnippet": "Ajoute un extrait analysé de la catégorie correspondante.",
        "apihelp-query+search-paramvalue-prop-isfilematch": "Ajoute un booléen indiquant si la recherche correspond au contenu du fichier.",
-       "apihelp-query+search-paramvalue-prop-score": "<span class=\"apihelp-deprecated\">Désuet et ignoré.</span>",
-       "apihelp-query+search-paramvalue-prop-hasrelated": "<span class=\"apihelp-deprecated\">Désuet et ignoré.</span>",
+       "apihelp-query+search-paramvalue-prop-score": "Ignoré.",
+       "apihelp-query+search-paramvalue-prop-hasrelated": "Ignoré.",
        "apihelp-query+search-param-limit": "Combien de pages renvoyer au total.",
        "apihelp-query+search-param-interwiki": "Inclure les résultats interwiki dans la recherche, s’ils sont disponibles.",
        "apihelp-query+search-param-backend": "Quel serveur de recherche utiliser, si ce n’est pas celui par défaut.",
index 7ac2e83..086a726 100644 (file)
        "apihelp-opensearch-param-suggest": "Gör ingenting om <var>[[mw:Special:MyLanguage/Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> är falskt.",
        "apihelp-opensearch-param-format": "Formatet för utdata.",
        "apihelp-opensearch-example-te": "Hitta sidor som börjar med <kbd>Te</kbd>.",
+       "apihelp-options-summary": "Ändra inställningar för nuvarande användare.",
        "apihelp-options-param-reset": "Återställer inställningarna till sidans standardvärden.",
        "apihelp-options-example-reset": "Återställ alla inställningar",
        "apihelp-options-example-complex": "Återställ alla inställningar, ställ sedan in <kbd>skin</kbd> och <kbd>nickname</kbd>.",
        "apihelp-query+prefixsearch-param-profile": "Sök profil att använda.",
        "apihelp-query+protectedtitles-param-limit": "Hur många sidor att returnera totalt.",
        "apihelp-query+protectedtitles-example-simple": "Lista skyddade titlar.",
+       "apihelp-query+random-summary": "Hämta en uppsättning slumpsidor.",
        "apihelp-query+recentchanges-example-simple": "Lista de senaste ändringarna.",
        "apihelp-query+redirects-summary": "Returnerar alla omdirigeringar till angivna sidor.",
        "apihelp-query+revisions-summary": "Hämta information om sidversion.",
        "apihelp-query+revisions-example-first5-not-localhost": "Hämta första 5 revideringarna av <kbd>huvudsidan</kbd> och som inte gjorts av anonym användare <kbd>127.0.0.1</kbd>",
+       "apihelp-query+search-summary": "Utför en heltextsökning.",
        "apihelp-query+search-paramvalue-prop-score": "Ignorerad.",
        "apihelp-query+search-paramvalue-prop-hasrelated": "Ignorerad.",
        "apihelp-query+siteinfo-summary": "Returnera allmän information om webbplatsen.",
index a3a37f6..e8f27ef 100644 (file)
@@ -76,9 +76,12 @@ class DeferredUpdates {
        public static function addUpdate( DeferrableUpdate $update, $stage = self::POSTSEND ) {
                global $wgCommandLineMode;
 
-               // This is a sub-DeferredUpdate, run it right after its parent update
                if ( self::$executeContext && self::$executeContext['stage'] >= $stage ) {
+                       // This is a sub-DeferredUpdate; run it right after its parent update.
+                       // Also, while post-send updates are running, push any "pre-send" jobs to the
+                       // active post-send queue to make sure they get run this round (or at all).
                        self::$executeContext['subqueue'][] = $update;
+
                        return;
                }
 
@@ -183,16 +186,6 @@ class DeferredUpdates {
                while ( $updates ) {
                        $queue = []; // clear the queue
 
-                       if ( $mode === 'enqueue' ) {
-                               try {
-                                       // Push enqueuable updates to the job queue and get the rest
-                                       $updates = self::enqueueUpdates( $updates );
-                               } catch ( Exception $e ) {
-                                       // Let other updates have a chance to run if this failed
-                                       MWExceptionHandler::rollbackMasterChangesAndLog( $e );
-                               }
-                       }
-
                        // Order will be DataUpdate followed by generic DeferrableUpdate tasks
                        $updatesByType = [ 'data' => [], 'generic' => [] ];
                        foreach ( $updates as $du ) {
@@ -212,13 +205,9 @@ class DeferredUpdates {
                        // Execute all remaining tasks...
                        foreach ( $updatesByType as $updatesForType ) {
                                foreach ( $updatesForType as $update ) {
-                                       self::$executeContext = [
-                                               'update' => $update,
-                                               'stage' => $stage,
-                                               'subqueue' => []
-                                       ];
+                                       self::$executeContext = [ 'stage' => $stage, 'subqueue' => [] ];
                                        /** @var DeferrableUpdate $update */
-                                       $guiError = self::runUpdate( $update, $lbFactory, $stage );
+                                       $guiError = self::runUpdate( $update, $lbFactory, $mode, $stage );
                                        $reportableError = $reportableError ?: $guiError;
                                        // Do the subqueue updates for $update until there are none
                                        while ( self::$executeContext['subqueue'] ) {
@@ -230,7 +219,7 @@ class DeferredUpdates {
                                                        $subUpdate->setTransactionTicket( $ticket );
                                                }
 
-                                               $guiError = self::runUpdate( $subUpdate, $lbFactory, $stage );
+                                               $guiError = self::runUpdate( $subUpdate, $lbFactory, $mode, $stage );
                                                $reportableError = $reportableError ?: $guiError;
                                        }
                                        self::$executeContext = null;
@@ -248,16 +237,26 @@ class DeferredUpdates {
        /**
         * @param DeferrableUpdate $update
         * @param LBFactory $lbFactory
+        * @param string $mode
         * @param integer $stage
         * @return ErrorPageError|null
         */
-       private static function runUpdate( DeferrableUpdate $update, LBFactory $lbFactory, $stage ) {
+       private static function runUpdate(
+               DeferrableUpdate $update, LBFactory $lbFactory, $mode, $stage
+       ) {
                $guiError = null;
                try {
-                       $fnameTrxOwner = get_class( $update ) . '::doUpdate';
-                       $lbFactory->beginMasterChanges( $fnameTrxOwner );
-                       $update->doUpdate();
-                       $lbFactory->commitMasterChanges( $fnameTrxOwner );
+                       if ( $mode === 'enqueue' && $update instanceof EnqueueableDataUpdate ) {
+                               // Run only the job enqueue logic to complete the update later
+                               $spec = $update->getAsJobSpecification();
+                               JobQueueGroup::singleton( $spec['wiki'] )->push( $spec['job'] );
+                       } else {
+                               // Run the bulk of the update now
+                               $fnameTrxOwner = get_class( $update ) . '::doUpdate';
+                               $lbFactory->beginMasterChanges( $fnameTrxOwner );
+                               $update->doUpdate();
+                               $lbFactory->commitMasterChanges( $fnameTrxOwner );
+                       }
                } catch ( Exception $e ) {
                        // Reporting GUI exceptions does not work post-send
                        if ( $e instanceof ErrorPageError && $stage === self::PRESEND ) {
index 2bed87a..4b18126 100644 (file)
@@ -61,9 +61,12 @@ class ErrorPageError extends MWException implements ILocalizedException {
        }
 
        public function report() {
-               global $wgOut;
-
-               $wgOut->showErrorPage( $this->title, $this->msg, $this->params );
-               $wgOut->output();
+               if ( self::isCommandLine() || defined( 'MW_API' ) ) {
+                       parent::report();
+               } else {
+                       global $wgOut;
+                       $wgOut->showErrorPage( $this->title, $this->msg, $this->params );
+                       $wgOut->output();
+               }
        }
 }
index fb4122d..eb0e954 100644 (file)
@@ -424,6 +424,13 @@ class DBConnRef implements IDatabase {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
 
+       public function unionConditionPermutations(
+               $table, $vars, array $permute_conds, $extra_conds = '', $fname = __METHOD__,
+               $options = [], $join_conds = []
+       ) {
+               return $this->__call( __FUNCTION__, func_get_args() );
+       }
+
        public function conditional( $cond, $trueVal, $falseVal ) {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
index 559c28b..723a4a6 100644 (file)
@@ -2481,6 +2481,77 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
                return '(' . implode( $glue, $sqls ) . ')';
        }
 
+       public function unionConditionPermutations(
+               $table, $vars, array $permute_conds, $extra_conds = '', $fname = __METHOD__,
+               $options = [], $join_conds = []
+       ) {
+               // First, build the Cartesian product of $permute_conds
+               $conds = [ [] ];
+               foreach ( $permute_conds as $field => $values ) {
+                       if ( !$values ) {
+                               // Skip empty $values
+                               continue;
+                       }
+                       $values = array_unique( $values ); // For sanity
+                       $newConds = [];
+                       foreach ( $conds as $cond ) {
+                               foreach ( $values as $value ) {
+                                       $cond[$field] = $value;
+                                       $newConds[] = $cond; // Arrays are by-value, not by-reference, so this works
+                               }
+                       }
+                       $conds = $newConds;
+               }
+
+               $extra_conds = $extra_conds === '' ? [] : (array)$extra_conds;
+
+               // If there's just one condition and no subordering, hand off to
+               // selectSQLText directly.
+               if ( count( $conds ) === 1 &&
+                       ( !isset( $options['INNER ORDER BY'] ) || !$this->unionSupportsOrderAndLimit() )
+               ) {
+                       return $this->selectSQLText(
+                               $table, $vars, $conds[0] + $extra_conds, $fname, $options, $join_conds
+                       );
+               }
+
+               // Otherwise, we need to pull out the order and limit to apply after
+               // the union. Then build the SQL queries for each set of conditions in
+               // $conds. Then union them together (using UNION ALL, because the
+               // product *should* already be distinct).
+               $orderBy = $this->makeOrderBy( $options );
+               $limit = isset( $options['LIMIT'] ) ? $options['LIMIT'] : null;
+               $offset = isset( $options['OFFSET'] ) ? $options['OFFSET'] : false;
+               $all = empty( $options['NOTALL'] ) && !in_array( 'NOTALL', $options );
+               if ( !$this->unionSupportsOrderAndLimit() ) {
+                       unset( $options['ORDER BY'], $options['LIMIT'], $options['OFFSET'] );
+               } else {
+                       if ( array_key_exists( 'INNER ORDER BY', $options ) ) {
+                               $options['ORDER BY'] = $options['INNER ORDER BY'];
+                       }
+                       if ( $limit !== null && is_numeric( $offset ) && $offset != 0 ) {
+                               // We need to increase the limit by the offset rather than
+                               // using the offset directly, otherwise it'll skip incorrectly
+                               // in the subqueries.
+                               $options['LIMIT'] = $limit + $offset;
+                               unset( $options['OFFSET'] );
+                       }
+               }
+
+               $sqls = [];
+               foreach ( $conds as $cond ) {
+                       $sqls[] = $this->selectSQLText(
+                               $table, $vars, $cond + $extra_conds, $fname, $options, $join_conds
+                       );
+               }
+               $sql = $this->unionQueries( $sqls, $all ) . $orderBy;
+               if ( $limit !== null ) {
+                       $sql = $this->limitResult( $sql, $limit, $offset );
+               }
+
+               return $sql;
+       }
+
        public function conditional( $cond, $trueVal, $falseVal ) {
                if ( is_array( $cond ) ) {
                        $cond = $this->makeList( $cond, self::LIST_AND );
index 7c6413c..b82603e 100644 (file)
@@ -1252,7 +1252,7 @@ interface IDatabase {
         * @param array $selectJoinConds Join conditions for the SELECT part of the query, see
         *    IDatabase::select() for details.
         *
-        * @return IResultWrapper
+        * @return bool
         */
        public function insertSelect( $destTable, $srcTable, $varMap, $conds,
                $fname = __METHOD__,
@@ -1276,6 +1276,37 @@ interface IDatabase {
         */
        public function unionQueries( $sqls, $all );
 
+       /**
+        * Construct a UNION query for permutations of conditions
+        *
+        * Databases sometimes have trouble with queries that have multiple values
+        * for multiple condition parameters combined with limits and ordering.
+        * This method constructs queries for the Cartesian product of the
+        * conditions and unions them all together.
+        *
+        * @see IDatabase::select()
+        * @since 1.30
+        * @param string|array $table Table name
+        * @param string|array $vars Field names
+        * @param array $permute_conds Conditions for the Cartesian product. Keys
+        *  are field names, values are arrays of the possible values for that
+        *  field.
+        * @param string|array $extra_conds Additional conditions to include in the
+        *  query.
+        * @param string $fname Caller function name
+        * @param string|array $options Query options. In addition to the options
+        *  recognized by IDatabase::select(), the following may be used:
+        *   - NOTALL: Set to use UNION instead of UNION ALL.
+        *   - INNER ORDER BY: If specified and supported, subqueries will use this
+        *     instead of ORDER BY.
+        * @param string|array $join_conds Join conditions
+        * @return string SQL query string.
+        */
+       public function unionConditionPermutations(
+               $table, $vars, array $permute_conds, $extra_conds = '', $fname = __METHOD__,
+               $options = [], $join_conds = []
+       );
+
        /**
         * Returns an SQL expression for a simple conditional. This doesn't need
         * to be overridden unless CASE isn't supported in your DBMS.
index 6c10301..70795ec 100644 (file)
@@ -148,7 +148,7 @@ class SqlBagOStuff extends BagOStuff {
        protected function getSeparateMainLB() {
                global $wgDBtype;
 
-               if ( $wgDBtype === 'mysql' && $this->usesMainDB() ) {
+               if ( $this->usesMainDB() && $wgDBtype !== 'sqlite' ) {
                        if ( !$this->separateMainLB ) {
                                // We must keep a separate connection to MySQL in order to avoid deadlocks
                                $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
@@ -156,8 +156,7 @@ class SqlBagOStuff extends BagOStuff {
                        }
                        return $this->separateMainLB;
                } else {
-                       // However, SQLite has an opposite behavior. And PostgreSQL needs to know
-                       // if we are in transaction or not (@TODO: find some PostgreSQL work-around).
+                       // However, SQLite has an opposite behavior due to DB-level locking
                        return null;
                }
        }
index 9ea65e0..4a78ff8 100644 (file)
@@ -4502,12 +4502,16 @@ class Parser {
                # which may corrupt this parser instance via its wfMessage()->text() call-
 
                # Signatures
-               $sigText = $this->getUserSig( $user );
-               $text = strtr( $text, [
-                       '~~~~~' => $d,
-                       '~~~~' => "$sigText $d",
-                       '~~~' => $sigText
-               ] );
+               if ( strpos( $text, '~~~' ) !== false ) {
+                       $sigText = $this->getUserSig( $user );
+                       $text = strtr( $text, [
+                               '~~~~~' => $d,
+                               '~~~~' => "$sigText $d",
+                               '~~~' => $sigText
+                       ] );
+                       # The main two signature forms used above are time-sensitive
+                       $this->mOutput->setFlag( 'user-signature' );
+               }
 
                # Context links ("pipe tricks"): [[|name]] and [[name (context)|]]
                $tc = '[' . Title::legalChars() . ']';
index 069dd0b..0a653e7 100644 (file)
@@ -33,6 +33,8 @@ class SpecialNewFiles extends IncludableSpecialPage {
        }
 
        public function execute( $par ) {
+               $context = new DerivativeContext( $this->getContext() );
+
                $this->setHeaders();
                $this->outputHeader();
                $mimeAnalyzer = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
@@ -71,6 +73,15 @@ class SpecialNewFiles extends IncludableSpecialPage {
 
                        $opts->setValue( 'start', $start, true );
                        $opts->setValue( 'end', $end, true );
+
+                       // also swap values in request object, which is used by HTMLForm
+                       // to pre-populate the fields with the previous input
+                       $request = $context->getRequest();
+                       $context->setRequest( new DerivativeRequest(
+                               $request,
+                               [ 'start' => $start, 'end' => $end ] + $request->getValues(),
+                               $request->wasPosted()
+                       ) );
                }
 
                // if all media types have been selected, wipe out the array to prevent
@@ -87,10 +98,10 @@ class SpecialNewFiles extends IncludableSpecialPage {
 
                if ( !$this->including() ) {
                        $this->setTopText();
-                       $this->buildForm();
+                       $this->buildForm( $context );
                }
 
-               $pager = new NewFilesPager( $this->getContext(), $opts );
+               $pager = new NewFilesPager( $context, $opts );
 
                $out->addHTML( $pager->getBody() );
                if ( !$this->including() ) {
@@ -98,7 +109,7 @@ class SpecialNewFiles extends IncludableSpecialPage {
                }
        }
 
-       protected function buildForm() {
+       protected function buildForm( IContextSource $context ) {
                $mediaTypesText = array_map( function ( $type ) {
                        // mediastatistics-header-unknown, mediastatistics-header-bitmap,
                        // mediastatistics-header-drawing, mediastatistics-header-audio,
@@ -185,7 +196,7 @@ class SpecialNewFiles extends IncludableSpecialPage {
                        unset( $formDescriptor['hidepatrolled'] );
                }
 
-               HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() )
+               HTMLForm::factory( 'ooui', $formDescriptor, $context )
                        // For the 'multiselect' field values to be preserved on submit
                        ->setFormIdentifier( 'specialnewimages' )
                        ->setWrapperLegendMsg( 'newimages-legend' )
@@ -193,8 +204,6 @@ class SpecialNewFiles extends IncludableSpecialPage {
                        ->setMethod( 'get' )
                        ->prepareForm()
                        ->displayForm( false );
-
-               $this->getOutput()->addModules( 'mediawiki.special.newFiles' );
        }
 
        protected function getGroupName() {
index 3282a7a..f980e71 100644 (file)
@@ -65,6 +65,57 @@ class ShortPagesPage extends QueryPage {
                ];
        }
 
+       public function reallyDoQuery( $limit, $offset = false ) {
+               $fname = static::class . '::reallyDoQuery';
+               $dbr = $this->getRecacheDB();
+               $query = $this->getQueryInfo();
+               $order = $this->getOrderFields();
+
+               if ( $this->sortDescending() ) {
+                       foreach ( $order as &$field ) {
+                               $field .= ' DESC';
+                       }
+               }
+
+               $tables = isset( $query['tables'] ) ? (array)$query['tables'] : [];
+               $fields = isset( $query['fields'] ) ? (array)$query['fields'] : [];
+               $conds = isset( $query['conds'] ) ? (array)$query['conds'] : [];
+               $options = isset( $query['options'] ) ? (array)$query['options'] : [];
+               $join_conds = isset( $query['join_conds'] ) ? (array)$query['join_conds'] : [];
+
+               if ( $limit !== false ) {
+                       $options['LIMIT'] = intval( $limit );
+               }
+
+               if ( $offset !== false ) {
+                       $options['OFFSET'] = intval( $offset );
+               }
+
+               $namespaces = $conds['page_namespace'];
+               if ( count( $namespaces ) === 1 ) {
+                       $options['ORDER BY'] = $order;
+                       $res = $dbr->select( $tables, $fields, $conds, $fname,
+                               $options, $join_conds
+                       );
+               } else {
+                       unset( $conds['page_namespace'] );
+                       $options['INNER ORDER BY'] = $order;
+                       $options['ORDER BY'] = [ 'value' . ( $this->sortDescending() ? ' DESC' : '' ) ];
+                       $sql = $dbr->unionConditionPermutations(
+                               $tables,
+                               $fields,
+                               [ 'page_namespace' => $namespaces ],
+                               $conds,
+                               $fname,
+                               $options,
+                               $join_conds
+                       );
+                       $res = $dbr->query( $sql, $fname );
+               }
+
+               return $res;
+       }
+
        function getOrderFields() {
                return [ 'page_len' ];
        }
index f243d01..980af11 100644 (file)
        "authpage-cannot-create": "Немагчыма пачаць стварэньне рахунку.",
        "authpage-cannot-create-continue": "Немагчыма працягнуць стварэньне рахунку. Падобна, што тэрмін вашай сэсіі скончыўся.",
        "authpage-cannot-link": "Немагчыма пачаць далучэньне рахунку.",
+       "authpage-cannot-link-continue": "Немагчыма працягнуць далучэньне рахунку. Падобна, што тэрмін вашай сэсіі скончыўся.",
+       "cannotauth-not-allowed-title": "Доступ забаронены",
        "changecredentials": "Зьмена ўліковых зьвестак",
        "removecredentials": "Выдаленьне ўліковых зьвестак",
        "removecredentials-submit": "Выдаліць уліковыя зьвесткі",
index 13b183c..13f4a39 100644 (file)
        "mostinterwikis": "Stranice sa najviše međuwikija",
        "mostrevisions": "Stranice s najviše izmjena",
        "prefixindex": "Sve stranice s prefiksom",
-       "prefixindex-namespace": "Sve stranice s predmetkom (imenski prostor $1)",
+       "prefixindex-namespace": "Sve stranice s prefiksom (imenski prostor $1)",
        "prefixindex-submit": "Prikaži",
        "prefixindex-strip": "Sakrij prefiks u spisku",
        "shortpages": "Kratke stranice",
index 3713ea1..205336e 100644 (file)
        "tog-extendwatchlist": "Rozwinië lëstã ùzérónëch artiklów bë wëskrzënic wszëtczé zmianë, ni le blós slédné",
        "tog-usenewrc": "Grëpùjë zjinaczi wedle starnów na lëscé slédnych zjinaków ë ùzérónych",
        "tog-numberheadings": "Aùtomatné numerowanié nôgłówków",
-       "tog-showtoolbar": "Wëskrzëni listwã nôrzãdzów edicje",
+       "tog-showtoolbar": "Wëskrzëni listwã nôrzãdzów edicëji",
        "tog-editondblclick": "Editëjë starnë przez dëbeltné klëkniãcé",
        "tog-editsectiononrightclick": "Włączë edicjã sekcji bez klëkniãcé prawą knąpą mëszë na titlu sekcje",
        "tog-watchcreations": "Dodôwôj do mòji lëstë ùzérónëch artiklów starnë, chtërné ùsôdzã, i lopczi, chtërné wladëjã",
        "tog-watchdefault": "Dodôwôj do mòji lëstë ùzérónëch artiklów starnë i lopczi, chtërné editëjã.",
        "tog-watchmoves": "Dodôwôj do mòji lëstë ùzérónëch artiklów starnë i lopczi, jaczé przenoszã.",
        "tog-watchdeletion": "Dodôwôj do mòji lëstë ùzérónëch artiklów starnë i lopczi, jaczé rëmóm.",
+       "tog-watchuploads": "Dodôj do ùzérównych wladowóné mòjé lopczi",
+       "tog-watchrollback": "Dodôj do ùzérównych starnë, w chtënych móm {{GENDER:|copinãtą}} edicëjã",
        "tog-minordefault": "Zaznaczë wszëtczé edicëje domëslno jakno môłé",
        "tog-previewontop": "Pòkażë pòdzérk przed kastką edicëji",
        "tog-previewonfirst": "Pòkażë pòdzérk ju przed pierszą edicëją",
        "tog-shownumberswatching": "Pòkażë lëczba ùzérającëch brëkòwników",
        "tog-oldsig": "Wëzdrzatk twòjegò pòdpisënkù:",
        "tog-fancysig": "Wzérôj na pòdpisënk jakno na wikikòd (bez aùtomatnych lënków)",
-       "tog-uselivepreview": "Brëkùjë wtimczasnegò pòdzérkù",
+       "tog-uselivepreview": "Felënk dinamicznegò pòdzérkù",
        "tog-forceeditsummary": "Pëtôj przed wéńdzenim do pùstégò pòdrechòwania edicëji",
        "tog-watchlisthideown": "Zatacë mòje edicje z lëstë ùzérónëch artiklów",
        "tog-watchlisthidebots": "Zatacë edicëje botów z lëstë ùzérónëch artiklów",
        "tog-watchlisthideminor": "Zatacë môłi zmianë z lëstë ùzérónëch artiklów",
        "tog-watchlisthideliu": "Zatacë edicëje wlogòwónych brëkòwników na lësce ùzérónych artiklów",
+       "tog-watchlistreloadautomatically": "Aùtomatno òdswiérzywôj ùzéróną lëstã pò kòżdi zjinace filtra(nót je JavaScript)",
        "tog-watchlisthideanons": "Zatacë edicëje anonimòwich brëkòwników na lësce ùzérónych artiklów",
        "tog-watchlisthidepatrolled": "Zatacë sprôwdzoné edicëje z lëstë ùzérónych artiklów",
-       "tog-watchlisthidecategorization": "Zatacë kategòrizacjã strón",
-       "tog-ccmeonemails": "Sélôj do mie kòpije e-mailów, chtërné sélóm do jinych brëkòwników",
+       "tog-watchlisthidecategorization": "Zatacë kategòrizacëjã starnów",
+       "tog-ccmeonemails": "Sélôj do mie kòpije e-mailów, chtërné jô sélóm do jinych brëkòwników",
        "tog-diffonly": "Nie wëskrzëniôj zamkłoscë starnë niżi przërónaniô zjinaków",
        "tog-showhiddencats": "Wëskrzëni zataconé kategòrëje",
        "tog-norollbackdiff": "Pòcësni wëskrzënianié zjinaków pò copniãcô sã",
+       "tog-useeditwarning": "Òstrzëgôj mie, jak wëchòdzã ze starnë bez zapisaniô ji zjinaków",
+       "tog-prefershttps": "Ùżëwôj wiedno bezpiécznegò sparłãczenia pò wlogòwaniu",
        "underline-always": "Wiedno",
        "underline-never": "Nigdë",
        "underline-default": "Tak jak w domëslnym przezérnikù abò skórczi.",
        "thursday": "czwiôrtk",
        "friday": "piątk",
        "saturday": "sobòta",
-       "sun": "Nie.",
-       "mon": "pòn",
-       "tue": "wtó",
-       "wed": "str",
-       "thu": "czw",
-       "fri": "pią",
-       "sat": "sob",
+       "sun": "Nie",
+       "mon": "Pòn",
+       "tue": "Wtó",
+       "wed": "Str",
+       "thu": "Czw",
+       "fri": "Pią",
+       "sat": "Sob",
        "january": "stëcznik",
        "february": "gromicznik",
        "march": "strëmiannik",
        "october-date": "$1 pazdzérznika",
        "november-date": "$1 lëstopadnika",
        "december-date": "$1 gòdnika",
+       "period-am": "DP",
+       "period-pm": "PP",
        "pagecategories": "{{PLURAL:$1|Kategòrëjô|Kategòrëje}}",
        "category_header": "Artikle w kategòrëji \"$1\"",
        "subcategories": "Pòdkategòrëje",
        "category-media-header": "Media w kategòrëji \"$1\"",
-       "category-empty": "''Ta ktegòrëja nie zamëkô w se terô niżódnëch artiklów ni mediów.''",
+       "category-empty": "<em>Ta ktegòrëja nie zamëkô w se terô niżódnëch artiklów ni mediów.</em>",
        "hidden-categories": "{{PLURAL:$1|Zataconô kategòrëja|Zataconé kategòrëje}}",
        "hidden-category-category": "Zataconé kategòrëje",
        "category-subcat-count": "{{PLURAL:$2|Na kategòrrjô zamëkô w se blós nôslédną pòdkategòrëjã.|Na kategòrëjô mô {{PLURAL:$1|pòdkategòrëje|$1 pòdkategòrëjôw}}, w $2 kategòrëjach.}}",
        "category-subcat-count-limited": "Na kategòrëjô zamëkô w se {{PLURAL:$1|1 pòdkategòrëjã|$1 pòdkategòrëje|$1 pòdkategòrëjów}}.",
        "category-article-count": "{{PLURAL:$2|Na kategòrëjô zamëkôw w se blós jedną starnã.|Niżi mómë $1 westrzód $2 starów w ti kategòrëji.}}",
+       "category-article-count-limited": "W ti kategòrëji {{PLURAL:$1|je 1 starna|są $1 starnë|je $1 starnów}}.",
        "category-file-count": "{{PLURAL:$2|Na kategòrëjô zamëkô w se blós jeden lopk.|W ti kategòrëji {{PLURAL:$1|je 1 lopk|są $1 lopczi|je $1 lopków}} z oòglowi wielënë $2 lopków.}}",
+       "category-file-count-limited": "W ti kategòrëji {{PLURAL:$1|je 1 lopk|są $1 lopczi|je $1 lopków}}.",
        "listingcontinuesabbrev": "kònt.",
+       "index-category": "Indeksowóné starnë",
+       "noindex-category": "Nieindeksowóné starnë",
+       "broken-file-category": "Starnë lënkùjącé do nieegzystëjących lopków",
        "about": "Ò serwise",
        "article": "Artikel",
        "newwindow": "(òtmëkô sã w nowim òczenkù)",
        "cancel": "Anulëje",
        "moredotdotdot": "Wicy...",
+       "morenotlisted": "Na lësta nie je kòmpletnô",
        "mypage": "Starna",
        "mytalk": "Diskùsëjô",
-       "anontalk": "Diskùsjô",
+       "anontalk": "Diskùsëjô",
        "navigation": "Nawigacëjô",
        "and": "&#32;ë",
        "faq": "FAQ",
        "help": "Pòmòc",
        "search": "Szëkba",
        "searchbutton": "Szëkba",
-       "go": "Biôj!",
+       "go": "Biéj!",
        "searcharticle": "Biéj!",
        "history": "Historëjô starnë",
        "history_short": "Historëjô",
+       "history_small": "historëjô",
        "updatedmarker": "zaktualnioné òd mòji slédny gòscënë",
        "printableversion": "Wersëjô do drëkù",
        "permalink": "Prosti lënk",
        "view": "Pòdzérk",
        "view-foreign": "Òbôczë w {{grammar:MS.lp|$1}}",
        "edit": "Edicëjô",
+       "edit-local": "Editëjë lokalny òpisënk",
        "create": "Ùsadzë",
        "create-local": "Dodôj lokalny òpisënk",
        "delete": "Rëmôj",
        "undelete_short": "Doprowadzë nazôd {{PLURAL:$1|1 edicjã|$1 edicje|$1 edicjów}}",
+       "viewdeleted_short": "Pòdzérk {{PLURAL:$1|rëmniãti wersëji|$1 rëmniãtich wersëjów}}",
        "protect": "Zazychrëjë",
        "protect_change": "zmieni",
        "unprotect": "Òdzychrëjë",
        "personaltools": "Priwatné przërëchtënczi",
        "talk": "Diskùsëjô",
        "views": "Pòdzérków",
-       "toolbox": "Przërëchtënczi",
+       "toolbox": "Nôrzãdza",
+       "tool-link-userrights": "Zjinaka karnów {{GENDER:$1|brëkòwnika|ubrëkòwniczczi}}",
+       "tool-link-userrights-readonly": "Òbôczë karna {{GENDER:$1|brëkòwnika|brëkòwniczczi}}",
+       "tool-link-emailuser": "Sélôj e-mail do {{GENDER:$1|tegò brëkòwnika|ti brëkòwniczcz}}",
        "imagepage": "Starna lopka",
        "mediawikipage": "Wëskrzëni starnã wiadła",
        "templatepage": "Wëskrzëni starnã wëzdrzatkù",
        "jumpto": "Skòczë do:",
        "jumptonavigation": "nawigacëji",
        "jumptosearch": "szëkbë",
+       "view-pool-error": "Serwerë są prawie terô baro przecążoné.\nZa wiele brëkòwników chce wëskrzënic nã starnã.\nPóżdôj kąsk przed nowim òdwòłaniém ti starnë.\n\n$1",
+       "generic-pool-error": "Serwerë są prawie terô baro przecążoné.\nZa wiele brëkòwników chce wëskrzënic nen dostónk.\nPóżdôj kąsk przed nowim òdwòłaniém negò dostónka.",
+       "pool-timeout": "Za dłudżi czas żdaniô na blokadã",
+       "pool-queuefull": "Pòsobnica zadaniów je fùl",
+       "pool-errorunknown": "Nieznónô fela",
+       "pool-servererror": "Ùsłëżnota rëchòwnika nie je przistãpnô ($1).",
+       "poolcounter-usage-error": "Fela ùżëcô: $1",
        "aboutsite": "Ò {{SITENAME}}",
        "aboutpage": "Project:Ò_{{SITENAME}}",
        "copyright": "Zamkłosc hewòtny starnë je ùprzëstãpnianô wedle reglów $1, jeżlë nie pòdóno jinaczi.",
        "privacypage": "Project:Priwatnota",
        "badaccess": "Procëmprawne ùdowierzenie",
        "badaccess-group0": "Ni môsz dosc prawa dlô zrëszeniô tegò dzéjaniô",
+       "badaccess-groups": "Zrëszanié ti òperacëji òstało ógrańczoné do brëkòników w {{PLURAL:$2|karnie|jednym z karnów:}} $1.",
        "versionrequired": "Wëmôgónô wersëjô $1 MediaWiki",
        "versionrequiredtext": "Bë brëkòwac ną starnã wëmôgónô je wersëjô $1 MediaWiki. Òbaczë starnã [[Special:Version]]",
        "ok": "Jo!",
        "retrievedfrom": "Z \"$1\"",
-       "youhavenewmessages": "Môsz $1 ($2).",
+       "youhavenewmessages": "{{PLURAL:$3|Môsz}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Môsz}} $1 òd {{PLURAL:$3|jinegò brekòwnika|$3 brëkòwników}} ($2).",
+       "youhavenewmessagesmanyusers": "Môsz $1 òd wielu brëkòwników ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|nowé wiadło|999=nowé wiadła}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|slédnô zjinaka|999=slédné zjinaczi}}",
        "youhavenewmessagesmulti": "Môsz nowé klëczi: $1",
        "editsection": "Edicëjô",
        "editold": "Edicëjô",
        "viewsourcelink": "wëskrzëni zdrój",
        "editsectionhint": "Editëjë dzél: $1",
        "toc": "Spisënk zamkłoscë",
-       "showtoc": "pokôż",
+       "showtoc": "pokôżë",
        "hidetoc": "zatacë",
+       "collapsible-collapse": "Zwinie",
+       "collapsible-expand": "Rozwinie",
+       "confirmable-confirm": "Jes{{GENDER:$1|gwës|gwësnô}}?",
        "confirmable-yes": "Jo",
+       "confirmable-no": "Ni",
        "thisisdeleted": "Wëskrzënic abò dobëc nazôd $1?",
        "viewdeleted": "Òbaczë $1",
        "restorelink": "{{PLURAL:$1|jednô rëmniãtô wersëjô|$1 rëmniãté wersëje|$1 rëmniãtich wersëjów}}",
        "feed-atom": "Atom",
        "feed-rss": "RSS",
        "red-link-title": "$1 (felëje starna)",
+       "sort-descending": "Zortëjë malijąco",
+       "sort-ascending": "Zortëjë roscąco",
        "nstab-main": "Artikel",
        "nstab-user": "Starna brëkòwnika",
        "nstab-media": "Starna lopków",
        "nospecialpagetext": "<strong>Felënk zapëtóny speclajny starnë.</strong>\n\nLësta przistãpnych specjalnych starnó je [[Special:SpecialPages|tuwò]].",
        "error": "Fela",
        "databaseerror": "Fela w pòdôwkòwi baze",
+       "databaseerror-text": "Pòkôża sã fela zapëtania dopòdôwkòwi bazë.\nTo mòże bëc softwôrowô fela.",
+       "databaseerror-textcl": "Fela przë zrëszaniu zapëtania do pòdôwkòwi bazë",
+       "databaseerror-query": "Zapëtanié: $1",
+       "databaseerror-function": "Fùnkcëjô: $1",
+       "databaseerror-error": "Fela: $1",
+       "laggedslavemode": "<strong>Bôczënk:</strong> Na starna mòże nie zamëkac w se nônowszich aktualizacëjów.",
        "readonly": "Baza pòdôwków je zablokòwónô",
+       "enterlockreason": "Pòdôj przëczënã zablokòwaniô pòdôwkòwi bazë ë termin ji òdblokòwaniô",
        "missing-article": "W baze pòdôwków felëje zamkłosc starnë \"$1\" $2.\n\nZwëczajno je to sparłãczoné òdsélaniém do nieaktualnégò lënka nierównoscë dwóch wersëjów starnë abò do rëmniãti wersëji starnë.\n\nJeżlë tak nie je, mòżlëwé je, że je to problem sparłãczony z felą w softwôrze.\nMòże to zgłoszëc [[Special:ListUsers/sysop|sprôwnikòwi]], pòdając adresã URL.",
        "missingarticle-rev": "(wersëjô $1)",
+       "missingarticle-diff": "(diferencëjô: $1, $2)",
        "internalerror": "Bënowô fela",
+       "internalerror_info": "Bënowô fela:$1",
+       "internalerror-fatal-exception": "Kriticzny wëjimk ôrtu \"$1\"",
        "filecopyerror": "Ni mòże skòpérowac lopka \"$1\" do \"$2\".",
        "filerenameerror": "Ni mòże zmienic miona lopka \"$1\" na \"$2\".",
        "filedeleteerror": "Ni mòże rëmac lopka \"$1\".",
+       "directorycreateerror": "Nie dało sã ùsadzëc kataloga \"$1\".",
+       "directoryreadonlyerror": "Katalog \"$1\" je blós do czëtaniô.",
+       "directorynotreadableerror": "Katalog \"$1\" nie je do czëtaniô.",
        "filenotfound": "Ni mòże nalezc lopka \"$1\".",
+       "unexpected": "Nieakceptowólnô wôrtnota: \"$1\"=\"$2\".",
        "formerror": "Fela: ni mòże wëslac fòrmùlara",
        "badarticleerror": "Nie dô zrobic ti akcëji na ti starnie.",
+       "cannotdelete": "Ni mòże rëmnąc starnë abò lopka \"$1\".\nMòże mô to ju chto jinny zrobioné",
+       "cannotdelete-title": "Ni mòże rëmnąc starnë \"$1\"",
+       "delete-hook-aborted": "Rëmanié przerwóné przez hak.\nNieznónô przëczëna.",
+       "no-null-revision": "Nie mòże ùsôdzëc zerowi wersëji starnë \"$1\"",
        "badtitle": "Lëchi titel",
        "badtitletext": "Pòdóny titel starnë nie je pòprôwny. Gwësno je òn pùsti, abò zamëkô w se mërczi chtërnëch brëkòwanié je zakôzané.",
        "viewsource": "Zdrojowi tekst",
+       "viewsource-title": "Zdrojowi tekst starnë $1",
+       "viewsourcetext": "Zdrojowi tekst starnë mòże przezérac ë kòpiérowac.",
        "editinginterface": "'''ÒSTRZÉGA:''' Editëjesz starnã, jakô zamëkô w se tekst interfejsu softwôrë. Wszëtczé zmianë tu zrobioné bãdze widzec na interfejse jinszëch brëkòwników.\nPrzemëszlë dolmaczënié na [https://translatewiki.net/wiki/Main_Page?setlang=csb translatewiki.net], ekstra ùdbie lokalizacëji softwôrë MediaWiki.",
        "logouttext": "'''Jes wëlogòwóny.'''\nMòżesz robic dali na {{SITENAME}} jakno anonimòwi brëkòwnik abò sã <span class='plainlinks'>[$1 wlogòwac]</span> znowa jakno równy, a bò jinszi brëkòwnik.\nBôczë, że do czasu wëczëszczenia pòdrãczny pamiãcë przezérnika, niejedné starnë bãdą wëzdrzëc jakbë të bëł wlogòwóny.",
        "yourname": "Miono brëkòwnika",
        "anonpreviewwarning": "Të nie jes wlogòwóny. Jeżlë wprowadzysz jaczés zjinaczi, twòja adresa IP mdze ùmieszczónô w historie edicji starnë.",
        "summary-preview": "Pòdzérk òpisënka:",
        "blockedtitle": "Brëkòwnik je zascëgóny",
-       "blockedtext": "'''Twòje kònto abò ë IP-adresa òstałë zablokòwóné.'''\n\nZablokòwôł je $1.\nPòdónô przëczëna to:''$2''.\n\n * Zôczątk blokadë: $8\n * Kùńc blokadë: $6\n * Cél blokadë: $7\n\n\nBë zgwësnic sprawã zablokòwaniô mòżesz skòntaktowac sã z $1 abò jińszim [[{{MediaWiki:Grouppage-sysop}}|administratorã]].\nBoczë, że të ni mòżesz stądka sélac e-mailów, jeżlë nié môsz jesz zaregisterowóné e-mailowé adresë w [[Special:Preferences|nastôwach]].\nTwòjô aktualnô adresa IP to $3, a zablokòwónô adresa ID to #$5.\nProszëmë pòdac wëższé pòdôłczi przë wszëtczich pëtaniach.",
+       "blockedtext": "<strong>Twòje kònto abò ë IP-adresa òstałë zablokòwóné.</strong>\n\nZablokòwôł je $1.\nPòdónô przëczëna to:<em>$2</em>.\n\n * Zôczątk blokadë: $8\n * Kùńc blokadë: $6\n * Cél blokadë: $7\n\n\nBë zgwësnic sprawã zablokòwaniô mòżesz skòntaktowac sã z $1 abò jińszim [[{{MediaWiki:Grouppage-sysop}}|administratorã]].\nBoczë, że të ni mòżesz stądka sélac e-mailów, jeżlë nié môsz jesz zaregisterowóné e-mailowé adresë w [[Special:Preferences|nastôwach]].\nTwòjô aktualnô adresa IP to $3, a zablokòwónô adresa ID to #$5.\nProszëmë pòdac wëższé pòdôłczi przë wszëtczich pëtaniach.",
        "loginreqlink": "Wlogùjë",
        "loginreqpagetext": "$1 sã, żebë przezérac jinszé starnë.",
        "accmailtitle": "Parola wësłónô.",
        "anontalkpagetext": "----\n<em>To je starna diskùsje anonimòwégò brëkòwnika, chtëren nie ùsadzëł jesz swòjegò kònta, abò gò nie brëkùje.</em>\nAbë gò rozpòznac, ùżëwómë adresów IP.\nTakô adresa IP mòże bëc równak brëkòwónô przez wiele lëdzy.\nJeżlë jes anonimòwim brëkòwnikã i ùwôżôsz, że ne wiadła nie są do ce sczerowóné, tedë [[Special:CreateAccount|ùsadzë nowé kònto]] abò [[Special:UserLogin|wlogùj sã]], bë niechac niezrozmieniô z jinyma anonimòwima brëkòwnikama.''",
        "noarticletext": "Felëje starna ò tim titlu.\nMòżesz [[Special:Search/{{PAGENAME}}|szëkac za {{PAGENAME}} na jinych starnach]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} szëkac w logù] abò [{{fullurl:{{FULLPAGENAME}}|action=edit}} ùsadzëc nã starnã]</span>",
        "noarticletext-nopermission": "Felëje starna ò tim titlu.\nMòżesz [[Special:Search/{{PAGENAME}}|szëkac za {{PAGENAME}} na jinych starnach]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} szëkac w logù] abò [{{fullurl:{{FULLPAGENAME}}|action=edit}} ùsadzëc nã starnã]</span>",
-       "clearyourcache": "'''Bôczë: Pò zapisanim, mòże bãdzesz mùszôł òminąc pamiãc przezérnika bë òbaczëc zmianë.'''\n'''Mozilla / Firefox / Safari:''' przëtrzëmôj ''Shift'' òbczas klëkaniô na ''Zladëjë znowa'', abò wcësni ''Ctrl-F5'' abò ''Ctrl-R'' (''Command-R'' na kòmpùtrach Mac);\n'''Konqueror:''': klëkni na knąpã ''Zladëjë znowa'', abò wcësni ''F5'';\n'''Opera:''' wëczëszczë pòdrãczną pamiãc w ''Tools→Preferences'';\n'''Internet Explorer:'''przëtrzëmôj ''Ctrl'' òbczas klëkaniô na ''Zladëjë znowa'', abò wcësni ''Ctrl-F5''.",
+       "userpage-userdoesnotexist-view": "Miono brëkòwnika \"$1\" nie jes zaregistrowóné.",
+       "clearyourcache": "<strong>Bôczë:</strong> Pò zapisanim, mòże bãdzesz mùszôł òminąc pamiãc przezérnika bë òbaczëc zmianë.\n<strong>Firefox / Safari:</strong> Przëtrzëmôj <em>Shift</em> òbczas klëkaniô na <em>Zladëjë znowa</em>, abò wcësni <em>Ctrl-F5</em> abò <em>Ctrl-R</em> (<em>⌘-R</em> na kòmpùtrach Mac)\n* <strong>Google Chrome:</strong> Wcësni <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> na kòmpùtrach Mac) * <strong>Internet Explorer:</strong> Przëtrzëmôj <em>Ctrl</em>, równoczasno klëkając <em>Òdswiérzë</em>, abò wcësni knąpë <em>Ctrl+F5</em> * <strong>Opera:</strong> Biéj doo <em>Menu → Nastôwë</em> (<em>Opera → Preferencëje</em> w Mac), a dali <em>Priwatnota ë bezpiék → Wëczëszczë pòdôwczi przezéraniô → Wëczëszczë pòdrãczną pamiãc</em>.",
        "updated": "(Zaktualnioné)",
        "previewnote": "<strong>To je blós pòdzérk.</strong>\n Artikel jesz nie je zapisóny!",
-       "continue-editing": "Przeńdzë do pòla edicje.",
+       "continue-editing": "Biéj do pòla edicëje.",
        "editing": "Edicëjô $1",
        "creating": "Ùsôdzanié $1",
        "editingsection": "Edicëjô $1 (dzél)",
        "template-protected": "(zazychrowónô)",
        "template-semiprotected": "(dzélowò zazychrowóné)",
        "hiddencategories": "Na starna przënôleżi do w {{PLURAL:$1|1 zatacony kategòrëji|$1 zataconych kategòrëjów}}:",
+       "permissionserrors": "Fela przistspù",
        "permissionserrorstext-withaction": "Ni môsz przëstãpù do $2, z {{PLURAL:$1|nôslédny przëczënë|nôslédnych przëczënów}}:",
-       "recreate-moveddeleted-warn": "'''Bôczënk! Chcesz usadzëc starnã, chtërna wczasni òsta rëmniãtô.'''\n\nÙgwësni sã, czë pònowné ùsôdzenié ti starnë je kònieczné. \nNiżi je widzec register rëmaniów i zmian pòzwë ti starnë:",
+       "recreate-moveddeleted-warn": "<strong>Bôczënk! Chcesz usadzëc starnã, chtërna wczasni òsta rëmniãtô.</strong>\n\nÙgwësni sã, czë pònowné ùsôdzenié ti starnë je kònieczné. \nNiżi je widzec register rëmaniów i zmian pòzwë ti starnë:",
        "moveddeleted-notice": "Na starna òsta rëmniãtô.\nSpisënk rëmaniô ë zjinaków miona ti starnë je niżi.",
+       "content-model-wikitext": "wikitekst",
+       "undo-failure": "Edicëjô nié mògłą bëc copniãtô przez zwadã z midzëedicëją.",
        "undo-summary": "Anulowanié wersje $1 aùtora [[Special:Contributions/$2|$2]] ([[User talk:$2|diskùsjô]])",
        "viewpagelogs": "Òbôczë rejestrë dzéjanió dlô ti starnë",
        "currentrev": "Aktualnô wersëjô",
        "history-show-deleted": "Leno rëmniãté",
        "histfirst": "òd nôstarszich",
        "histlast": "òd nônowszich",
+       "history-feed-title": "Historëjô wersëji",
+       "history-feed-description": "Historëjô wersëji ti starnë wiki",
        "history-feed-item-nocomment": "$1 ò $2",
        "rev-delundel": "pòkażë/zatacë",
        "rev-showdeleted": "pokôż",
        "revdelete-hide-current": "Pòkôza sã fela przë taceniu wersëji datowóny na $2, $1. To je nônowszô wersëjô starnë, chtërnô ni mòże bëc zataconô.",
        "revdelete-show-no-access": "Pòkôza sã fela przë próbie wëskrzënieniô elementu datowónegò na $2, $1. Widzawnota negò elementu òsta ògrańczonô - ni môsz przëstãpù.",
        "mergehistory-reason": "Przëczëna:",
+       "mergelog": "Scaloné",
        "revertmerge": "Rozdzélë",
        "history-title": "Historijô zjinaków dlô \"$1\"",
        "difference-title": "$1 - rozeszłoscë midzë wersjama",
        "lineno": "Lëniô $1:",
        "compareselectedversions": "Przërównôj wëbróné wersëje",
        "editundo": "doprowadzë nazôd",
+       "diff-empty": "(Niżódny różnicë)",
        "diff-multi-sameuser": "(Nie wëskrzëniono $1 {{PLURAL:$1|pòstrzedny wersëji ùsôdzony|pòstrzednych wersëjów ùsôdzonych}} przez tegoò sómegò brëkòwnika)",
+       "diff-multi-otherusers": "(Nie wëskrzëniono $1 wersëji{{PLURAL:$1|ùsôdzony|ùsôdzonych}} przez {{PLURAL:$2|jednegò brëkòwnika|$2 brëkòwników}})",
        "searchresults": "Skùtczi szëkbë",
        "searchresults-title": "Skùtczi szëkbë za \"$1\"",
        "notextmatches": "Felënk zamkłosë starnë",
        "prevn": "wczasniészé {{PLURAL:$1|$1}}",
        "nextn": "nôslédné {{PLURAL:$1|$1}}",
+       "prevn-title": "{{PLURAL:$1|Wczasniészi|Wszczasniészé}} $1 {{PLURAL:$1|rezultat|rezultatë|rezultatów}}",
        "nextn-title": "{{PLURAL:$1|Nôslédny|Nôslédne}} $1 {{PLURAL:$1|rezultat|rezultatë|rezultatów}}",
        "shown-title": "Wëskrzëni pò $1 {{PLURAL:$1|rezultace|rezultaczi|resultatów}} na starnã",
        "viewprevnext": "Òbaczë ($1 {{int:pipe-separator}} $2) ($3).",
+       "searchmenu-exists": "<strong>To je starna \"[[:$1]]\" na ti wiki.</strong> {{PLURAL:$2|0=|Òbôczë téż jinszé skùtczi szëkbë.}}",
        "searchmenu-new": "<strong>Usôdzë starnã \"[[:$1]]\"  na ti wiki!</strong> {{PLURAL:$2|0=|Òbôczë téż starnã ze skùtkama szëkbë.|Òbôczë téż skùtczi szëkbë.}}",
        "searchprofile-articles": "Artikle",
        "searchprofile-images": "w mùltimediach",
        "searchprofile-everything-tooltip": "Szëkba w całowny zamkłoscë (téz na starnach diskùsëji)",
        "searchprofile-advanced-tooltip": "Szëkba w wëbrónych rumach mionów",
        "search-result-size": "$1 ({{PLURAL:$2|1 słowò|$2 słowa|$2 słów}})",
+       "search-result-category-size": "{{PLURAL:$1|1 element|$1 elementë|$1 elementów}} ({{PLURAL:$2|1 kategòrija|$2 kategòrije|$2 kategòrijów}}, {{PLURAL:$3|1 lopk|$3 lopczi|$3 lopków}})",
        "search-redirect": "(przeczérowanié z $1)",
        "search-section": "(dzél $1)",
+       "search-file-match": "(pasëje do zamkłoscë lopka)",
        "search-suggest": "Të mëszlôł ò: $1",
        "search-interwiki-caption": "Sosterné ùdbë",
        "search-interwiki-default": "Wëniczi òd $1:",
        "newuserlogpage": "Nowi brëkòwnicë",
        "rightslog": "Prawa brëkòwnika",
        "action-edit": "editëjë tã starnã",
+       "action-createaccount": "ùsôdzaniô negò kònta brëkòwnika",
        "nchanges": "{{PLURAL:$1|zjinaka|zjinaczi|zjinaków}}",
        "enhancedrc-history": "Historijô",
        "recentchanges": "Slédné edicëje",
        "recentchanges-legend": "Òptacëje slédnych zjinaków",
        "recentchanges-summary": "Na starna wëskrzeniô historijã slédnych edicëjów w ti wiki.",
+       "recentchanges-noresult": "Felënk zjinaków w wëbrónym rumie pasëjących do twòjich kriteriów.",
        "recentchanges-feed-description": "Pòdstrzegô slédny zmianë w tim pòwrózkù.",
        "recentchanges-label-newpage": "Na edicëjô ùsôdza nową starnã",
        "recentchanges-label-minor": "To je drobnô edicëjô",
        "rc-change-size-new": "$1 {{PLURAL:$1|bajt|bajtë|bajtów}} pò zjinace",
        "rc-enhanced-expand": "Pòkażë detale (wëmôgô JavaScript)",
        "rc-enhanced-hide": "Zatacë detale",
+       "rc-old-title": "originalno ùsôdzoné jakno \"$1\"",
        "recentchangeslinked": "Zmianë w dolënkòwónëch",
-       "recentchangeslinked-feed": "Zmianë w dolënkòwónëch",
+       "recentchangeslinked-feed": "Zmianë w dolënkòwónych",
        "recentchangeslinked-toolbox": "Zmianë w dolënkòwónëch",
        "recentchangeslinked-title": "Zjinaczi w lënkòwónych z \"$1\"",
        "recentchangeslinked-summary": "Niżi nachôdô sã lësta slédnëch zjinaków na lënkòwónëch starnach z pòdóny starnë (abò we wszëtczich starnach przënôleżącëch do pòdóny kategòrëji).\nStarnë z [[Special:Watchlist|lëstë ùzérónëch artiklów]] są '''pògrëbioné'''.",
        "uploadwarning": "Òstrzega ò wladënkù",
        "savefile": "Zapiszë lôpk",
        "uploaddisabled": "Przeprôszómë! Mòżlëwòta wladënkù lopków na nen serwer òsta wëłączonô.",
+       "license": "Licencëjô:",
        "license-header": "Licencëjô",
        "imgfile": "lopk",
        "listfiles": "Lësta òbrôzków",
        "filehist-datetime": "Datum/Czas",
        "filehist-thumb": "Miniatura",
        "filehist-thumbtext": "Miniatura wersëji z $1",
+       "filehist-nothumb": "Felënk miniaturë",
        "filehist-user": "Brëkòwnik",
        "filehist-dimensions": "Miara",
        "filehist-filesize": "Miara lopka",
        "filehist-comment": "Òpisënk",
        "imagelinks": "Wëkòrzëstanie lopka",
        "linkstoimage": "{{PLURAL:$1|Hewò je starna jakô òdwòłëje|Hewò są starnë jaczé òdwòłëją}} sã do negò lopka:",
+       "linkstoimage-more": "Wicy jak $1 {{PLURAL:$1|lënkùjãcô starna|lenkùjącë starnë|lenkùjących starnów}} do tegò lopka.\nÙniższô lësta pòkazëjë blós {{PLURAL:$1|pierszi lënk|pierszé $1 lënczi|pierszich $1 lënków}} do negò lopka.\nPrzistãpnô je téż [[Special:WhatLinksHere/$2|fùll lësta]].",
        "nolinkstoimage": "Niżódnô starna nie lënkùje do negò lopka.",
+       "linkstoimage-redirect": "$1 (przeczérowôł do lopka) $2",
        "sharedupload": "Nen lopk je na $1 ë mòże bëc brëkòwóny w jinych ùdbach.",
        "sharedupload-desc-here": "Nen lopk je w $1 ë mòże bëc brëkòwóny w jinnych ùdbach.\nNiżi je wëdowiédzô ze [$2 starnë òpisënkù] negò lopka.",
+       "filepage-nofile": "To nie dô lopka ò tim mionie",
        "uploadnewversion-linktext": "Wladëjë nową wersëjã negò lopka",
        "upload-disallowed-here": "Nié mòżesz nadpisac negò lopka",
        "filerevert-comment": "Przëczëna:",
        "statistics-users-active": "Aktiwnëch brëkòwników",
        "statistics-users-active-desc": "Brekòwnicë, jaczi bëlë aktiwni òb òstatné $1 dni",
        "doubleredirects": "Dëbeltné przeczérowania",
+       "double-redirect-fixer": "Naprôwiôcz przeczérowaniów",
        "brokenredirects": "Zerwóné przeczerowania",
        "withoutinterwiki": "Starnë bez jãzëkòwich lënków",
        "nbytes": "$1 {{PLURAL:$1|bajt|bajtë|bajtów}}",
        "specialloguserlabel": "Chto:",
        "speciallogtitlelabel": "Co (titel abò {{ns:user}}:miono brëkòwnika):",
        "log": "Rejestr logòwaniô",
+       "all-logs-page": "Wszëtczé pùbliczné lodżi",
        "alllogstext": "Sparłãczoné registrë wszëtczich ôrtów dzejaniô dlô {{SITENAME}}.\nMòżesz zawãżëc wëszłosc przez wëbranié ôrtu registru, miona brëkòwnika abò miona zajimny dlô ce starnë.",
+       "logempty": "To nie dô w logach zamkłoscë pasowny do zapëtniô",
        "allpages": "Wszëtczé starnë",
        "nextpage": "Nôslédnô starna ($1)",
        "prevpage": "Wczasniészô starna ($1)",
        "allinnamespace": "Wszëtczé starnë (w rumie $1)",
        "allpagessubmit": "Pòkôżë",
        "allpagesprefix": "Pòkôżë naczënającë sã òd:",
+       "allpages-hide-redirects": "Zatacë przeczerowania",
        "categories": "Kategòrëje",
        "deletedcontributions": "Rëmniãti wkłôd brëkòwnika",
        "deletedcontributions-title": "Rëmniãti wkłôd brëkòwnika",
        "emailmessage": "Wiadło:",
        "emailsend": "Wëslë",
        "emailccme": "Sélôj mie e-mailã kòpijã wiadła.",
+       "usermessage-editor": "Systemòwé ògłosë",
        "watchlist": "Ùzéróné",
        "mywatchlist": "Lësta ùzérónëch artiklów",
+       "watchlistfor2": "Dlô $1 $2",
        "watchnologin": "Felënk logòwóniô",
        "addedwatchtext": "Starna \"[[:$1]]\" òsta dodónô do twòji [[Special:Watchlist|lëstë ùzérónëch artiklów]].\nNa ti lësce są registre przińdnëch zjinak ti starne ë na ji starnie dyskùsëji, a samò miono starnë mdze '''wëtłëszczone''' na [[Special:RecentChanges|lësce slédnich edicëji]], bë të mògł to òbaczëc.\n\nCzej chcesz remôc starnã z lëste ùzéronëch artiklów, klikni ''Òprzestôj ùzérac''.",
        "removedwatchtext": "Starna \"[[:$1]]\" òsta rëmniãtô z Twòji [[Special:Watchlist|lëstë ùzérónych]].",
        "unwatchthispage": "Òprzestôj ùzerac ną starnã",
        "notanarticle": "To nie je artikel",
        "watchlist-details": "Twòjô lësta ùzérónych starnów zamëkô w se {{PLURAL:$1|$1 pozycjã|$1 pozycje|$1 pozycjów}}, nie rechùjąc diskùsëjów.",
-       "wlheader-showupdated": "Artiklë jakczé òsta zmienioné òd Twòji slédny wizytë są wëapratnioné <strong>pògrëbieniém</strong>",
-       "wlnote": "Niżi môsz wëskrzënioné {{PLURAL:$1|slédną zmianã|'''$1''' slédnëch zmianów}} zrobioné òb {{PLURAL:$2|gòdzënã|'''$2''' gòdzënë/gòdzënów}}.",
+       "wlheader-showupdated": "Artiklë jakczé òstałë zmienioné òd Twòji slédny wizytë są wëapratnioné <strong>pògrëbieniém</strong>",
+       "wlnote": "Niżi môsz wëskrzënioné {{PLURAL:$1|slédną zmianã|<strong>$1</strong> slédnëch zmianów}} zrobioné òb {{PLURAL:$2|gòdzënã|<strong>$2</strong> gòdzënë/gòdzënów}}, rëchùjąc òd $3 dnia $4.",
        "wlshowlast": "Wëskrzëni zjinaczi z $1 gòdzënów $2 dni",
        "wlshowhidecategorization": "kategòrizacjã strón",
        "watchlist-options": "Òptacëje ùzérónych",
        "protect-cantedit": "Ni mòżesz zmieniac lédżi zazychrowaniô ti starnë, kò ni môsz dosc prawa do ji edicëji.",
        "restriction-type": "Przistãp:",
        "restriction-level": "Léga bezpieczi:",
+       "restriction-edit": "Edicëjô",
+       "restriction-move": "przenoszenié",
        "viewdeletedpage": "Òbaczë rëmóne starnë",
        "undeletebtn": "Doprowadzë nazôd",
        "undeletelink": "wëskrzëni abò doprowadzë nazôd",
        "mycontris": "Mój wkłôd",
        "anoncontribs": "Mój wkłôd",
        "contribsub2": "Dlô {{GENDER:$3|brëkòwnika|brëkòwniczczi}} $1 ($2)",
+       "nocontribs": "Felënk zjinaczi psaowny do tich kriteriów",
        "uctop": "(aktualnô)",
        "month": "Òd miesąca (ë wczasni):",
        "year": "Òd rokù (ë wczasni):",
        "sp-contributions-newbies-sub": "Dlô nowich brëkòwników",
        "sp-contributions-blocklog": "historëjô blokòwaniô",
        "sp-contributions-deleted": "rëmniãti wkłôd brëkòwnika",
+       "sp-contributions-uploads": "Wësłóné lopczi",
+       "sp-contributions-logs": "Rejestr logòwaniô",
        "sp-contributions-talk": "diskùsjô",
        "sp-contributions-blocked-notice-anon": "Ta adresa IP je w tim sztërkù zablokòwónô.\nSlédny wpisënk z registru blokòwaniów je widzec niżi:",
        "sp-contributions-search": "Szëkba za edicëjama",
        "whatlinkshere-hideredirs": "$1 przeczérowania",
        "whatlinkshere-hidetrans": "$1 doparłãczenia",
        "whatlinkshere-hidelinks": "$1 lënczi",
+       "whatlinkshere-hideimages": "$1 lënk z lopków",
        "whatlinkshere-filters": "Filtrë",
        "blockip": "Zascëgôj IP-adresã",
        "blockiptext": "Brëkùje formùlarza niżi abë zascëgòwac prawò zapisënkù spòd gwësny adresë IP. To robi sã blós dlôte abë zascëgnąc wandalëznom, a bëc w zgòdze ze [[{{MediaWiki:Policy-url}}|wskôzama]]. Pòdôj przëczënã (np. dając miona starn, na chtërnëch dopùszczono sã wandalëzny).",
        "autoblocker": "Zablokòwóno ce aùtomatnie, ga brëkùjesz ti sami adresë IP co brëkòwnik \"[[User:$1|$1]]\". Przëczënô blokòwóniô $1 to: \"'''$2'''\".",
        "blocklogpage": "Historëjô blokòwaniô",
        "blocklogentry": "zablokòwôł [[$1]], czas blokadë: $2 $3",
+       "reblock-logentry": "{{GENDER:$2|zjinacził|zjinacziła}} unastôw blokadë dlô [[$1]], czas blokadë: $2 $3",
        "unblocklogentry": "òdblokòwôł $1",
        "block-log-flags-anononly": "leno anonimòwi",
        "block-log-flags-nocreate": "blokada ùsôdzaniô kònta",
        "block-log-flags-noemail": "zablokòwónô adresa e-mail",
+       "proxyblocker": "Blokòwanié proxy",
        "lockbtn": "Zascëgôj bazã pòdôwków",
        "move-page-legend": "Przeniesë starnã",
        "movepagetext": "Z pòmòcą ùiższegò fòrmùlôra zjinaczisz miono starnë, przenosząc równoczasno ji historëjã.\nPòd stôrim titlã bãdze ùsôdzonô przeczérowùjącô starna.\nMòżesz aùtomatno zaktualniac przeczérowania wskazëwôjące titel przed zjinaką.\nJeżlë nie wëbiérzesz ti òptacëji, ùgwësni sã pò przenieseniu starnë, czë nie òstałé ùsôdzoné [[Special:DoubleRedirects|dëbeltné]] abò [[Special:BrokenRedirects|zerwóné przeczérowania]].\nJes òdpòwiedzalny za to, abë lënczi dali robiłë tam dze mają.\n\nStarna '''ni''' bãdze przeniosłô, jeżlë starna ò nowim mionie ju je, chòba że je òna pùstô abò je przeczérowaniém ë mô pùstą historëjã edicëji.\nTo òznôczô, że lëchą òperacëjã zjinaczi miona mòże doprowôdzëc bezpieczno nazôd, zjinaczając nowé miono starnë nawczasniészą, ë że ni mòże nadpisac stranë chtërną ju dô.\n\n'''BÔCZËNK!'''\nTo mòże bëc drasticznô abò nieprzewidëwólnô zjinaka w przëtrôfkù pòpùlarnych starnów.\nÙgwësni sã co do skùtków ti òperacëji, niglë to zrobisz.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' nie mòże bëc brëkòwónô, temù że '''$wgUseDatabaseMessages''' je wëłączony.",
        "thumbnail-more": "Zwikszi",
        "import": "Impòrtëjë starnë",
+       "importlogpage": "Log impòrtu",
        "tooltip-pt-userpage": "{{GENDER:|Twòja}} starna brëkòwnika",
        "tooltip-pt-mytalk": "{{GENDER:|Mòjô}} starna diskùsëji",
        "tooltip-pt-anontalk": "Diskùsjô brëkòwnika dlô ti adresë IP",
        "tooltip-ca-nstab-special": "To je specjalnô starna, chtërny ni mòżesz editowac",
        "tooltip-ca-nstab-project": "Òbôczë starnã ùdbë",
        "tooltip-ca-nstab-image": "Wëskrzëni starnã lopka",
+       "tooltip-ca-nstab-mediawiki": "Òbôczë systemòwé wiadło",
        "tooltip-ca-nstab-template": "Wëskrzëni szablónã",
        "tooltip-ca-nstab-help": "Wëskrzëni starnã pòmòcë",
        "tooltip-ca-nstab-category": "Wëskrzëni starnã kategòrëji",
        "others": "jiné",
        "spamprotectiontitle": "Anti-spamòwi filter",
        "simpleantispam-label": "Antispamòwi filter.\n<strong>Nie</strong> wpisëjë tuwò niczegò!",
+       "pageinfo-title": "Wëdowiédzô ò „$1”",
+       "pageinfo-header-basic": "Spòdlowô wëdowiédzô",
+       "pageinfo-header-edits": "Historëjô edicëji",
+       "pageinfo-header-restrictions": "Zazychrowanié starnë",
+       "pageinfo-header-properties": "Swòjiznë starnë",
+       "pageinfo-display-title": "Wëskrzëni titel",
+       "pageinfo-default-sort": "Domëslny klucz sortowaniô",
+       "pageinfo-length": "Długòta starnë (w bajtach)",
+       "pageinfo-article-id": "Jindentifikatora starnë",
+       "pageinfo-language": "Jãzëk zamkłoscë starnë",
+       "pageinfo-content-model": "Mòdel zamkłoscë starnë",
+       "pageinfo-robot-policy": "Jindeksowanié przez robòtë",
+       "pageinfo-robot-index": "Zezwòloné",
+       "pageinfo-robot-noindex": "Niedozwóloné",
+       "pageinfo-watchers": "Wielëna ùżérających",
+       "pageinfo-few-watchers": "Mni jak $1 {{PLURAL:$1|ùzyrający|ùzyrających}}",
+       "pageinfo-redirects-name": "Wielëna przeczérowaniów do ti starnë",
+       "pageinfo-subpages-name": "Wielëna pòdstarnów ti starnë",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|przeczerowanié|przeczerowaniô|przeczerowaniów}}; $3 {{PLURAL:$3|bez przeczerowaniô|bez przeczerowaniów}})",
+       "pageinfo-firstuser": "Ùsôdzca starnë",
+       "pageinfo-firsttime": "Datum ùsôdzenia starnë",
+       "pageinfo-lastuser": "Slédny editora",
+       "pageinfo-lasttime": "Datum slédny edicëji",
+       "pageinfo-edits": "Wielëna edicëji",
+       "pageinfo-authors": "Wielëna ùsôdzców",
+       "pageinfo-recent-edits": "Wielëna slédnych edicëji (w czasu $1)",
+       "pageinfo-recent-authors": "Wielëna slédnych ùsôdzców",
+       "pageinfo-magic-words": "Magiczné {{PLURAL:$1|słowò|słowa|słowów}} ($1)",
+       "pageinfo-hidden-categories": "{{PLURAL:$1|Zataconô kategòrëjô|Zataconé kategòrëje}} ($1)",
+       "pageinfo-templates": "Ùżëwón{{PLURAL:$1|ô szablóna|é szablónë}} ($1)",
        "pageinfo-toolboxlink": "Wëdowiédzô ò ti starnie.",
+       "pageinfo-contentpage": "Rëchòwónô jakno artikel",
+       "pageinfo-contentpage-yes": "Jo",
+       "patrol-log-page": "Log patrolowaniô",
        "previousdiff": "← Pòprzédnô edicëjô",
        "nextdiff": "Nôslédnô edicëjô →",
        "imagemaxsize": "Ògrańczë na starnie òpisënkù òbrôzków jich miarã do:",
        "thumbsize": "Miara miniaturków:",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|starna|starnë|starnów}}",
        "file-info-size": "$1 × $2 pikslów, miara lopka: $3, ôrt MIME: $4",
+       "file-info-size-pages": "$1 × $2 pikslów, miara lopka: $3, typ MIME: $4, $5 {{PLURAL:$5|starna|starnë|starnów}}",
        "file-nohires": "Felëje wikszô miara.",
        "svg-long-desc": "Lopk SVG, nominalno $1 × $2 pikslów, miara lopka: $3",
        "show-big-image": "Pierwòtny lopk",
        "monthsall": "wszëtczé",
        "confirmemail_loggedin": "Twòjô adresa e-mail òsta pòcwierdzona.",
        "confirm_purge_button": "Jo!",
+       "imgmultipagenext": "nôslédnô starna →",
        "imgmultigo": "Biéj!",
+       "imgmultigoto": "Biéj do starnë $1",
        "autoredircomment": "Przeczérowanié do [[$1]]",
        "autosumm-new": "Pòwsta nowô starna:",
+       "watchlisttools-clear": "Wëczësczë ùzérówną lëstã",
        "watchlisttools-view": "Òbaczë wôżnészé zmianë",
        "watchlisttools-edit": "Òbaczë a editëjë lëstã ùzérónëch artiklów",
-       "watchlisttools-raw": "Editëjë sërą lëstã",
+       "watchlisttools-raw": "Editëjë tekstową lëstã",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskùsëjô]])",
        "version": "Wersëjô",
+       "redirect": "Przeczérëjë z jidentyfikatora lopka, brëkòwnika, starnë, wersëji abò wpisënka loga",
+       "redirect-summary": "Na szpecjalnô starna przczerowùje do: lopka(ò pòdónym mionie), do sstarny (ò pòdónym numrze wersëji abò jidentyfikatorze starë), do starnë brëkòwnika (ò pòdónym numerowim jidentyfikatorze) abò do rejestru (ò pòdónym numrze akcëji). Òrt ùżëcô: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]] abò [[{{#Special:Redirect}}/logid/186]].",
+       "redirect-submit": "Biéj",
+       "redirect-lookup": "Szëkôj:",
+       "redirect-value": "Wôrtnota:",
+       "redirect-user": "ID brëkòwnika",
+       "redirect-page": "Jindentifikatora starnë",
+       "redirect-revision": "Wersëjô starnë",
+       "redirect-file": "Miono lopka",
        "specialpages": "Specjalné starnë",
        "tag-filter": "Filtr [[Special:Tags|znakòwników]]:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Znakòwnik|Znakòwniczi}}]]: $2)",
+       "tags-active-yes": "Jo",
+       "tags-active-no": "Ni",
+       "tags-hitcount": "{{PLURAL:$1|zjinaka|zjinaczi|zjinaków}}",
        "tags-create-reason": "Przëczëna:",
        "tags-delete-reason": "Przëczëna:",
        "tags-activate-reason": "Przëczëna:",
        "tags-deactivate-reason": "Przëczëna:",
        "logentry-delete-delete": "$1 {{GENDER:$2|rëmnął|rëmnãła}} starnã $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|doprowôdzôł|doprowôdza}} nazôd starnã $3",
+       "logentry-delete-revision": "$1 {{GENDER:$2|zjinacził|zjinacziła}} widzawnotã {{PLURAL:$5|wersëji|$5 wersëji}} starnë $3: $4",
+       "revdelete-content-hid": "zamkłosc òsta zataconô",
        "revdelete-restricted": "nastôwi ògrańczenia dlô sprôwników",
        "revdelete-unrestricted": "rëmôj ògrańczenia dlô sprôwników",
        "logentry-move-move": "$1 {{GENDER:$2|przeniós|przeniosła}} starnã $3 do $4",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|przeniós|przeniosła}} starnã $3 na $4, bez òstôwienia przczerowaniô pòd stôrim titlã",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|przeniós|przeniosła}} starnã $3 na $4 w plac przeczérowaniô",
+       "logentry-patrol-patrol-auto": "$1 aùtomatno {{GENDER:$2|nacechòwôł|nacechòwa}} wersëjã $4 starnë $3 jakno przezdrzóna",
        "logentry-newusers-create": "Kònto {{GENDER:$2|brëkòwnika|brëkòwnicczki}} $1 òstało ùsôdzone",
+       "logentry-newusers-autocreate": "$1 aùtomatno {{GENDER:$2|ùsôdzôł|ùsôdza}} kònto brëkòwnika",
        "logentry-protect-protect": "$1 {{GENDER:$2|zazychrowôł|zazychrowała}} $3 $4",
        "logentry-upload-upload": "$1 {{GENDER:$2|przesłôł|przesłała}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|wladowôł|wladowa}} nową wersëjã $3",
        "searchsuggest-search": "Szëkba",
+       "duration-days": "$1 {{PLURAL:$1|dzéń|dni}}",
        "pagelang-reason": "Przëczëna",
        "special-characters-group-ipa": "IPA",
        "special-characters-group-symbols": "Céchë",
        "special-characters-group-greek": "Grecczi",
        "special-characters-group-cyrillic": "Cërylica",
        "special-characters-group-arabic": "Arabsczi",
-       "special-characters-group-hebrew": "Hebrajsczi"
+       "special-characters-group-hebrew": "Hebrajsczi",
+       "randomrootpage": "Kawlowô starna (bez pòdstarnów)"
 }
index 295d1b4..55d8479 100644 (file)
        "databasenotlocked": "La base de datos no está bloqueada.",
        "lockedbyandtime": "(por {{GENDER:$1|$1}} el $2 a las $3)",
        "move-page": "Trasladar $1",
-       "move-page-legend": "Renombrar página",
+       "move-page-legend": "Trasladar la página",
        "movepagetext": "Al usar el siguiente formulario, se renombrará una página y se trasladará todo su historial al nuevo nombre.\nEl título anterior se convertirá en una redirección al título nuevo.\nPuedes actualizar automáticamente las redirecciones que apuntan al título original.\nSi eliges no hacerlo, asegúrate de revisar posibles redirecciones [[Special:DoubleRedirects|dobles]] o [[Special:BrokenRedirects|incorrectas]].\nTú eres responsable de asegurarte de que los enlaces sigan apuntando adonde se supone que deberían hacerlo.\n\nRecuerda que la página <strong>no</strong> se trasladará si ya existe una página con el título nuevo, salvo que sea una redirección y no tenga historial de edición.\nEsto significa que podrás renombrar una página a su título original si has cometido un error, pero que no podrás sobrescribir una página existente.\n\n<strong>Nota:</strong>\nEste puede ser un cambio drástico e inesperado para una página popular; asegúrate de entender las consecuencias del procedimiento antes de seguir adelante.",
        "movepagetext-noredirectfixer": "Al usar el siguiente formulario, se renombrará una página y se trasladará todo su historial al nuevo nombre.\nEl título anterior se convertirá en una redirección al título nuevo.\nAsegúrate de no dejar [[Special:DoubleRedirects|redirecciones dobles]] o [[Special:BrokenRedirects|incorrectas]].\nTú eres responsable de asegurarte de que los enlaces sigan apuntando adonde se supone que deberían hacerlo.\n\nRecuerda que la página <strong>no</strong> se trasladará si ya existe una página con el título nuevo, salvo que sea una redirección y no tenga historial de edición.\nEsto significa que podrás renombrar una página a su título original si has cometido un error, pero que no podrás sobrescribir una página existente.\n\n<strong>Nota:</strong>\nEste puede ser un cambio drástico e inesperado para una página popular; asegúrate de entender las consecuencias del procedimiento antes de seguir adelante.",
        "movepagetalktext": "Si marcas esta casilla, la página de discusión asociada se trasladará automáticamente al título nuevo a menos que ya exista una página de discusión no vacía allí.\n\nEn este caso, deberás trasladar o fusionar manualmente la página si así lo quieres.",
        "moveuserpage-warning": "<strong>Advertencia:</strong> estás a punto de trasladar una página de usuario. Ten en cuenta que solo se trasladará la página; el usuario <em>no</em> se renombrará.",
        "movecategorypage-warning": "<strong>Advertencia:</strong> estás a punto de trasladar una página de categoría. Ten en cuenta que se trasladará sólo la página, y las páginas en la antigua categoría <em>no</em> se recategorizarán en la nueva.",
-       "movenologintext": "Es necesario ser usuario registrado y [[Special:UserLogin|haber iniciado sesión]] para renombrar una página.",
+       "movenologintext": "Es necesario ser usuario registrado y [[Special:UserLogin|haber accedido a tu cuenta]] para trasladar páginas.",
        "movenotallowed": "No tienes permiso para trasladar páginas.",
        "movenotallowedfile": "No tienes permiso para trasladar archivos.",
        "cant-move-user-page": "No tienes permiso para trasladar páginas de usuario (excepto subpáginas).",
        "namespace-nosubpages": "El espacio de nombres «$1» no permite subpáginas.",
        "newtitle": "Título nuevo:",
        "move-watch": "Vigilar páginas de origen y destino",
-       "movepagebtn": "Renombrar página",
+       "movepagebtn": "Trasladar la página",
        "pagemovedsub": "Renombrado realizado con éxito",
        "movepage-moved": "<strong>«$1» ha sido trasladada a «$2»</strong>",
        "movepage-moved-redirect": "Se ha creado una redirección.",
index 6fbdac0..a70debc 100644 (file)
@@ -57,7 +57,7 @@
        "tog-enotifusertalkpages": "Nire eztabaida orrialdea aldatzen denean e-posta jaso",
        "tog-enotifminoredits": "Orrialde edo fitxategietan aldaketak txikiak direnean ere e-posta jaso",
        "tog-enotifrevealaddr": "Jakinarazpen mezuetan nire e-posta helbidea erakutsi",
-       "tog-shownumberswatching": "Jarraitzen duen erabiltzaile kopurua erakutsi",
+       "tog-shownumberswatching": "Ikusten duten erabiltzaile kopurua erakutsi",
        "tog-oldsig": "Zure egungo sinadura:",
        "tog-fancysig": "Sinadura wikitestu gisa tratatu (lotura automatikorik gabe)",
        "tog-uselivepreview": "Zuzeneko aurrebista erabili",
        "period-am": "AM",
        "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Kategoria|Kategoriak}}",
-       "category_header": "«$1» kategoriako artikuluak",
+       "category_header": "«$1» kategoriako orriak",
        "subcategories": "Azpikategoriak",
        "category-media-header": "Media \"$1\" kategorian",
        "category-empty": "''Kategoria honek ez dauka artikulurik uneotan.''",
        "noindex-category": "Indexatugabeko orrialdeak",
        "broken-file-category": "Fitxategiren baterako lotura hautsia duten orriak",
        "about": "Honi buruz",
-       "article": "Artikulua",
+       "article": "Eduki-orria",
        "newwindow": "(leiho berrian irekitzen da)",
        "cancel": "Utzi",
        "moredotdotdot": "Gehiago...",
        "pageswithprop-prophidden-long": "testu luzearen ezagaurria izkutatua ($1)",
        "doubleredirects": "Birbideratze bikoitzak",
        "doubleredirectstext": "Lerro bakoitzean lehen eta bigarren birzuzenketetarako loturak ikus daitezke, eta baita edukia daukan edo eduki beharko lukeen orrialderako lotura ere. Lehen birzuzenketak azken honetara <del>zuzendu</del> beharko luke.",
-       "double-redirect-fixed-move": "«[[$1]]» orria mugitu da.\nAutomatikoki eguneratu da eta orain «[[$2]]» orrira darama.",
-       "double-redirect-fixed-maintenance": "«[[$1]]» orritik «[[$2]]» orrira birbideratze bikoitza automatikoki konpontzea mantentze lan bat da.",
+       "double-redirect-fixed-move": "«[[$1]]» orria mugitu da.\nAutomatikoki eguneratu da, eta orain «[[$2]]» orrira darama.",
+       "double-redirect-fixed-maintenance": "«[[$1]]» orritik «[[$2]]» orrira egindako birbideratze bikoitza automatikoki konpondua, mantentze lanak egitean.",
        "double-redirect-fixer": "Birbideratze zuzentzailea",
        "brokenredirects": "Hautsitako birzuzenketak",
        "brokenredirectstext": "Ondorengo birbideratze hauek existitzen ez diren orrietara bideratuta daude:",
index 1fdc73d..ba41b58 100644 (file)
        "autoblocklist-submit": "Rechercher",
        "autoblocklist-legend": "Lister les blocages automatiques",
        "autoblocklist-localblocks": "{{PLURAL:$1|Blocage automatique local|Blocages automatiques locaux}}",
-       "autoblocklist-total-autoblocks": "Nombre total de blocages automatiques : $1",
+       "autoblocklist-total-autoblocks": "Nombre total de blocages automatiques : $1",
        "autoblocklist-empty": "La liste des blocages automatiques est vide.",
        "autoblocklist-otherblocks": "{{PLURAL:$1|Autre blocage automatique|Autres blocages automatiques}}",
        "ipblocklist": "Utilisateurs bloqués",
        "anonusers": "{{PLURAL:$2|l'utilisateur anonyme|les utilisateurs anonymes}} $1 de {{SITENAME}}",
        "creditspage": "Crédits de la page",
        "nocredits": "Il n'y a pas d'informations d'attribution disponibles pour cette page.",
-       "spamprotectiontitle": "Filtre de protection anti-pollupostage",
-       "spamprotectiontext": "La page que vous avez voulu sauvegarder a été bloquée par le filtre anti-pollupostage. \nCeci est probablement dû à l’introduction d’un lien vers un site externe apparaissant sur la liste noire.",
-       "spamprotectionmatch": "Le texte suivant a déclenché notre filtre de protection anti-pollupostage : $1",
+       "spamprotectiontitle": "Filtre de protection anti-pourriels",
+       "spamprotectiontext": "La page que vous avez voulu sauvegarder a été bloquée par le filtre anti-pourriels. \nCeci est probablement dû à l’introduction d’un lien vers un site externe apparaissant sur la liste noire.",
+       "spamprotectionmatch": "Le texte suivant a déclenché notre filtre de protection anti-pourriels: $1",
        "spambot_username": "Nettoyage de pourriels par MediaWiki",
        "spam_reverting": "Rétablissement de la dernière version ne contenant pas de lien vers $1",
        "spam_blanking": "Toutes les versions contenant des liens vers $1 sont blanchies",
index 65a720d..573e529 100644 (file)
        "anontalk": "Lo'iya",
        "navigation": "Navigasi",
        "and": "&#32;wawu",
-       "qbfind": "Lolohe",
-       "qbbrowse": "Momilohu",
-       "qbedit": "Boli'a",
-       "qbpageoptions": "Halaman botiya",
-       "qbmyoptions": "Halamani'u",
        "faq": "FAQ",
-       "faqpage": "Project:FAQ",
        "actions": "Huhutu",
        "namespaces": "Huwali lo tanggulo",
        "variants": "Varian",
        "edit-local": "Ubawa deskripsi lokal",
        "create": "Mohutu",
        "create-local": "Duhengi deskripsi lokal",
-       "editthispage": "Boli'a halaman botiye",
-       "create-this-page": "Pohutuwa halamani botiye",
        "delete": "Luluta",
-       "deletethispage": "Luluta halaman botiye",
-       "undeletethispage": "Bataliya moluluto",
        "undelete_short": "Batali moluluto {{PLURAL:$1|tuwawu uba|$1 ubawa}}",
        "viewdeleted_short": "Bilohi {{PLURAL:$1|tuwawu yiluluto uba|$1 yiluluto ubawa}}",
        "protect": "Dahawa",
        "protect_change": "boli'a",
-       "protectthispage": "Dahawa halaman boti",
        "unprotect": "dudaha ubaalo",
-       "unprotectthispage": "ubawa dudaha halaman botiye",
        "newpage": "Halaman bohu",
-       "talkpage": "Bisalayi halaman boti",
        "talkpagelinktext": "lo'iya",
        "specialpage": "Halaman uda'a",
        "personaltools": "Pilaakasi lo hihilawo",
-       "articlepage": "Bilohi tuango halaman",
        "talk": "Biisalawa",
        "views": "Bibilohu",
        "toolbox": "Pilaakasi",
        "tool-link-userrights": "Boli'a lembo'a {{GENDER:$1|pengguna}}",
        "tool-link-userrights-readonly": "Bilohi lembo'a {{GENDER:$1|pengguna}}",
        "tool-link-emailuser": "Lawola email ode {{GENDER:$1|user}}",
-       "userpage": "Bilohi halaman pengguna",
-       "projectpage": "Bilohi halaman proyek",
        "imagepage": "Bilohi halaman berkas",
        "mediawikipage": "Bilohi halaman tahuli",
        "templatepage": "Bilohi halaman templat",
        "editing": "Momoli'o $1",
        "creating": "Mohutu $1",
        "editingsection": "Momoli'o $1 (tayadu)",
+       "yourdiff": "Hihede",
        "templatesused": "{{PLURAL:$1|Template}} pilopohuna to halaman botiye:",
        "template-protected": "(he dahalo)",
        "template-semiprotected": "(dahalo-ngowa)",
        "hiddencategories": "Halaman botiye woluwo anggota {{PLURAL:$1|1 kategori wanto-wanto'o $1}}:",
        "permissionserrorstext-withaction": "Yi'o ja haku akses $2, sababu {{PLURAL:$1|alasani}} botiya:",
        "moveddeleted-notice": "Halaman botiye ma yiluluto.\nSebagai referensi, botiya log piloluluta wawu piloheyiya halaman botiye.",
+       "postedit-confirmation-saved": "Biloli'umu ma tilahu.",
+       "edit-already-exists": "Ja mowali mohutu halaman bohu. Ma woluwo.",
        "viewpagelogs": "Bilohi log lo halaman botiye",
        "currentrev-asof": "Biloli'o pulitiyo to $1",
        "revisionasof": "Biloli'o to $1",
        "currentrevisionlink": "Biloli'o pulitiyo",
        "cur": "mst",
        "last": "diipo",
+       "history-fieldset-title": "Lolohe u biloli'o",
+       "histfirst": "mohihewo da'a",
+       "histlast": "bohu da'a",
        "rev-delundel": "popobilohe/wanto'a",
        "history-title": "Riwayati lo'u loboli'a lonto \"$1\"",
        "difference-title": "$1 hihede revisi",
        "searchall": "nga'amila",
        "search-showingresults": "{{PLURAL:$4|hASIL <strong>$1</strong> of <strong>$3</strong>|Hasil <strong>$1 - $2</strong> lonto <strong>$3</strong>}}",
        "search-nonefound": "Diya'a hasili mohumayawa lo kriteria",
+       "powersearch-toggleall": "Nga'amila",
+       "powersearch-togglenone": "Diya'a",
+       "powersearch-remember": "Eelayi u tilulawoto wonu mololohe pe'eentamayi",
        "mypreferences": "Preperensi",
+       "prefs-skin": "Alipo",
+       "searchresultshead": "Lolohe",
+       "prefs-searchoptions": "Lolohe",
+       "prefs-namespaces": "Huwali lo tanggulo",
+       "default": "Kakali",
+       "yourrealname": "Tanggula banari",
+       "yourlanguage": "Bahasa",
        "right-writeapi": "Mopohuna API moluladu",
        "newuserlogpage": "Log ta ohu'uwo bohu",
+       "action-edit": "boli'a halaman botiye",
        "enhancedrc-history": "riwayati",
        "recentchanges": "Boheli loboli'a mola",
        "recentchanges-legend": "Tulawotolo boheli loboli'a mola",
        "recentchanges-summary": "Lolohe u boheli loboli'a mola to wiki halaman botiye.",
+       "recentchanges-noresult": "Diya'a u loboli'a to wakutu botiya mohumayawa lo kriteria.",
+       "recentchanges-feed-description": "Tapula u boheli loboli'a mola to delomo wiki paalo botiye.",
        "recentchanges-label-newpage": "Momoli'a utiye mohutu halaman bohu",
        "recentchanges-label-minor": "Utiye biloli'o ngo'idi",
        "recentchanges-label-bot": "Lomoli'a utiye kilaraja lo bot",
        "rcshowhidebots-show": "Popobilohe",
        "rcshowhidebots-hide": "Wanto'a",
        "rcshowhideliu": "$1 ta ohu'uwo to daputari",
+       "rcshowhideliu-show": "Popobilohe",
        "rcshowhideliu-hide": "Wanto'a",
        "rcshowhideanons": "$1 biloli'o lo tawu weewo",
        "rcshowhideanons-show": "Popobilohe",
        "nbytes": "$1 {{PLURAL:$1|bita}}",
        "nmembers": "$1 {{PLURAL:$1|tuwango}}",
        "newpages": "Halaman bohu",
+       "pager-newer-n": "{{PLURAL:$1|bohu da'a|$1bohu da'a}}",
        "pager-older-n": "{{PLURAL:$1|$1 mohihewo}}",
        "booksources": "Bungo buku",
        "booksources-search-legend": "Lolohe to bungo lo buku",
        "rollbacklink": "wuwalinga",
        "rollbacklinkcount": "pohuwalinga $1 {{PLURAL:$1|biloli'o}}",
        "protectlogpage": "Log mopo'aamani",
+       "protectedarticle": "modaha \"[[$1]]\"",
+       "protect-default": "Poluliya nga'amila ta ohu'uwo",
        "namespace": "Huwali lo tanggulo",
        "invert": "Pohuwalinga tilulawoto",
        "tooltip-invert": "Centang kotak botiye u mopowanto'o halaman yiloboli'a to delomo huwali lo tanggulo tilulawoto (wawu huwali lo tanggulo a'ayita wanu dicentang)",
        "contributions": "Kontribusi {{GENDER:$1|Ta ohu'uwo}}",
        "mycontris": "Kontribusi",
        "anoncontribs": "Kontribusi",
+       "uctop": "(masatiya)",
        "month": "Lonto hulalo (wawu to'udiipo)",
        "year": "Lonto taawunu (wawu to'udiipo)",
+       "sp-contributions-logs": "log",
+       "sp-contributions-talk": "lo'iya",
+       "sp-contributions-search": "Lolohe kontribusi",
+       "sp-contributions-submit": "Lolohe",
        "whatlinkshere": "Wumbuta",
        "whatlinkshere-title": "Halaman botiye o wumbuta ode \"$1\"",
        "whatlinkshere-page": "Halaman",
        "linkshere": "Halaman botiye woluwo wumbuta ode <strong>[[:$1]]<strong>:",
+       "nolinkshere": "Diya'a halaman wumbuta ode <strong>[[:$1]]</strong>",
        "isredirect": "halaman pilobaleyalo",
        "istemplate": "tranklusi",
        "isimage": "wumbuta lo berkas",
        "tooltip-ca-history": "Biloli'o pulitiyo to halaman botiye",
        "tooltip-ca-move": "Heyiya halaman botiye",
        "tooltip-ca-watch": "Popoduhengama'o halaman botiye to daputari he'awasiyalo",
+       "tooltip-ca-unwatch": "Yinggila halaman botiye to daputari he'awasiyalo",
        "tooltip-search": "Lolohe {{SITENAME}}",
        "tooltip-search-go": "Lolohe halaman tuwawu wolo tanggula delo odiye wonu woluwo",
        "tooltip-search-fulltext": "Lolohe halaman o tulade odiye",
        "tooltip-save": "Tahuwa u biloli'umu",
        "tooltip-preview": "Bilohipo u biloli'umu. Popopasiya utiye to'u diipo molahu.",
        "tooltip-diff": "Bilohi u loboli'o pilohutumu",
+       "tooltip-compareselectedversions": "Bilohi hihede lohalaman duluwo u tilulawoto.",
        "tooltip-rollback": "\"Wuwalingo\" lopobatali u pilo'opiyohu to halaman botiye ode kontributor pulitiyo pe'enta lo klik.",
        "tooltip-undo": "\"wuwalingo\" lopobatali u biloli'a botiye wawu lomu'o kotak momoli'o wolo mode pratayang. Alasani mowali duhengalo to kotak limbu-limbu'o.",
        "tooltip-summary": "Tuwota tulade limbu-limbu'o",
index 8333ad6..3fb2671 100644 (file)
        "permissionserrors": "Pogrješka u pravima",
        "permissionserrorstext": "Nemate ovlasti za tu radnju iz sljedećih {{PLURAL:$1|razlog|razloga}}:",
        "permissionserrorstext-withaction": "Nemate dopuštenje za $2, iz {{PLURAL:$1|navedenog|navedenih}} razloga:",
-       "recreate-moveddeleted-warn": "'''Upozorenje: Ponovno stvarate stranicu koja je prethodno bila izbrisana.'''\n\nRazmotrite je li prikladno nastaviti s uređivanje ove stranice.\nZa Vašu informaciju slijedi evidencija brisanja i premještanja ove stranice:",
+       "recreate-moveddeleted-warn": "<strong>Upozorenje: Ponovo stvarate stranicu koja je prethodno bila izbrisana.</strong>\n\nRazmotrite je li prikladno nastaviti s uređivanje ove stranice.\nZa Vašu informaciju slijedi evidencija brisanja i premještanja ove stranice:",
        "moveddeleted-notice": "Ova stranica je bila izbrisana.\nEvidencija brisanja i evidencija premještanja za ovu stranicu je prikazana niže.",
        "moveddeleted-notice-recent": "Žao nam je, ova stranica je izbrisana u prošla 24 sata. \nNiže je navedena evidencija brisanja i premještanja.",
        "log-fulllog": "Prikaži cijelu evidenciju",
        "mw-widgets-dateinput-no-date": "Nadnevak nije naznačen",
        "mw-widgets-dateinput-placeholder-day": "GGGG-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "GGGG-MM",
+       "mw-widgets-mediasearch-input-placeholder": "Pretraži medijske datoteke",
+       "mw-widgets-mediasearch-noresults": "Nema rezultata.",
        "mw-widgets-titleinput-description-new-page": "stranica još ne postoji",
        "mw-widgets-titleinput-description-redirect": "preusmjeravanje na $1",
        "date-range-from": "Od nadnevka:",
index 9f21500..d28eac0 100644 (file)
        "tog-watchlisthidepatrolled": "Nascondi le modifiche verificate negli osservati speciali",
        "tog-watchlisthidecategorization": "Nascondi la categorizzazione delle pagine",
        "tog-ccmeonemails": "Inviami una copia dei messaggi spediti agli altri utenti",
-       "tog-diffonly": "Non visualizzare il contenuto della pagina dopo il confronto tra versioni",
+       "tog-diffonly": "Non mostrare il contenuto della pagina dopo il confronto tra versioni",
        "tog-showhiddencats": "Mostra le categorie nascoste",
        "tog-norollbackdiff": "Non mostrare il confronto tra versioni dopo aver effettuato un rollback",
        "tog-useeditwarning": "Avvisa quando si esce da una pagina di modifica con modifiche non salvate",
index c821e24..57b9aeb 100644 (file)
        "listusers-submit": "Tuduhna",
        "listusers-noresult": "Panganggo ora ana.",
        "listusers-blocked": "(diblokir)",
-       "activeusers": "Dhaptar panganggo aktif",
+       "activeusers": "Pratélan panganggo aktif",
        "activeusers-intro": "Iki daptar panganggo sing katon lakuné ing $1 {{PLURAL:$1|dina|dina}} kapungkur.",
        "activeusers-count": "$1 {{PLURAL:$1|suntingan|suntingan}} ing {{PLURAL:$3|dina|$3 dina}} pungkasan",
        "activeusers-from": "Tampilna panganggo wiwit saka:",
        "ipb-hardblock": "Wurungaké panganggo sing wis mlebu log mbesut saka alamat IP iki",
        "ipbcreateaccount": "Penggak panggawéné akun",
        "ipbemailban": "Penggak panganggo saka ngirim layang-èl",
-       "ipbenableautoblock": "Blokir alamat IP pungkasan sing dienggo déning pengguna iki sacara otomatis, lan kabèh alamat sabanjuré sing dicoba arep dienggo nyunting.",
+       "ipbenableautoblock": "Otomatis blokir alamat IP pungkasan sing dienggo panganggo iki, lan samubarang alamat IP ing tembé sing arep dienggo mbesut.",
        "ipbsubmit": "Blokir panganggo iki",
        "ipbother": "Wektu liya",
        "ipboptions": "2 jam:2 hours,1 dina:1 day,3 dina:3 days,1 minggu:1 week,2 minggu:2 weeks,1 wulan:1 month,3 wulan:3 months,6 wulan:6 months,1 taun:1 year,tanpa wates:infinite",
        "ipbhidename": "Delikna jeneng panganggo saka suntingan lan pratélan",
-       "ipbwatchuser": "Wasi kaca panganggo lan kaca parembugané panganggo iki",
+       "ipbwatchuser": "Awasi kaca panganggo lan kaca parembugané panganggo iki",
        "ipb-disableusertalk": "Wurungaké panganggo iki mbesut kaca parembugané dhéwé nalika diblokir",
        "ipb-change-block": "Blokir manèh panganggo kanthi sèting iki",
        "ipb-confirm": "Konfirmasi blokiran",
        "specialpages-group-media": "Lapuran média lan pangunggahan",
        "specialpages-group-users": "Panganggo lan hak-haké",
        "specialpages-group-highuse": "Kaca-kaca sing akèh dienggo",
-       "specialpages-group-pages": "Dhaptar kaca",
+       "specialpages-group-pages": "Pratélan kaca",
        "specialpages-group-pagetools": "Piranti-piranti kaca",
        "specialpages-group-wiki": "Data lan piranti wiki",
        "specialpages-group-redirects": "Ngalihaké kaca astamèwa",
index 819b72b..4080f34 100644 (file)
        "rcfilters-filter-excluded": "Ausgeschloss",
        "rcfilters-tag-prefix-namespace-inverted": "<strong>:net</strong> $1",
        "rcfilters-view-tags": "Markéiert Ännerungen",
+       "rcfilters-view-namespaces-tooltip": "Resultater no Nummraum filteren",
        "rcnotefrom": "Hei drënner {{PLURAL:$5|gëtt d'Ännerung|ginn d'Ännerungen}} zanter <strong>$3, $4</strong> (maximal <strong>$1</strong> Ännerunge gi gewisen).",
        "rclistfrom": "Nei Ännerunge vum $3 $2 u weisen",
        "rcshowhideminor": "Kleng Ännerunge $1",
index 5ab613e..446a372 100644 (file)
@@ -8,7 +8,8 @@
                        "Urhixidur",
                        "아라",
                        "Katxis",
-                       "Chabi"
+                       "Chabi",
+                       "Angel Blaise"
                ]
        },
        "tog-underline": "Sulinia lias:",
        "friday": "venerdi",
        "saturday": "saturdi",
        "sun": "Sol",
-       "mon": "Lun",
-       "tue": "Mar",
-       "wed": "Mer",
-       "thu": "Jov",
-       "fri": "Ven",
-       "sat": "Sat",
+       "mon": "lun",
+       "tue": "mar",
+       "wed": "mer",
+       "thu": "jov",
+       "fri": "ven",
+       "sat": "sat",
        "january": "janero",
        "february": "febrero",
        "march": "marto",
        "october": "otobre",
        "november": "novembre",
        "december": "desembre",
-       "january-gen": "Janero",
-       "february-gen": "Febrero",
-       "march-gen": "Marto",
-       "april-gen": "April",
-       "may-gen": "Maio",
+       "january-gen": "janero",
+       "february-gen": "febrero",
+       "march-gen": "marto",
+       "april-gen": "april",
+       "may-gen": "maio",
        "june-gen": "Junio",
        "july-gen": "Julio",
-       "august-gen": "Agosto",
-       "september-gen": "Setembre",
-       "october-gen": "Otobre",
-       "november-gen": "Novembre",
-       "december-gen": "Desembre",
+       "august-gen": "agosto",
+       "september-gen": "setembre",
+       "october-gen": "otobre",
+       "november-gen": "novembre",
+       "december-gen": "desembre",
        "jan": "jan",
        "feb": "feb",
        "mar": "mar",
        "period-am": "am",
        "period-pm": "pm",
        "pagecategories": "{{PLURAL:$1|Categoria|Categorias}}",
-       "category_header": "Articles en categoria \"$1\"",
+       "category_header": "Pajes en categoria \"$1\"",
        "subcategories": "Sucategorias",
-       "category-media-header": "Medio en catagoria \"$1\"",
-       "category-empty": "''Aora, esta categoria no conteni pajes o medio.''",
+       "category-media-header": "Medias en catagoria \"$1\"",
+       "category-empty": "<em>Esta categoria conteni no pajes e no medias.</em>",
        "hidden-categories": "{{PLURAL:$1|Categoria|Categorias}} ascondeda",
        "hidden-category-category": "Categorias ascondeda",
-       "category-subcat-count": "{{PLURAL:$2|Esta categoria ave sola la sucategoria seguente.|Esta categoria ave la {{PLURAL:$1|sucategoria|$1 sucategorias}} seguente, entre $2 tota.}}",
+       "category-subcat-count": "{{PLURAL:$2|Esta categoria ave sola la sucategoria seguente.|Esta categoria ave la {{PLURAL:$1|sucategoria|$1 sucategorias}} seguente, de un cuantia intera de $2.}}",
        "category-subcat-count-limited": "Esta categoria ave la {{PLURAL:$1|sucategoria|$1sucategorias}} seguente.",
-       "category-article-count": "{{PLURAL:$2|Esta categoria conteni sola la paje seguente.|La {{PLURAL:$1|paje es|$1 pajes es}} seguente en esta categoria, estra $2 tota.}}",
+       "category-article-count": "{{PLURAL:$2|Esta categoria conteni sola la paje seguente.|La {{PLURAL:$1|paje|$1 pajes}} seguente es en esta categoria, de un cuantia intera de $2.}}",
        "category-article-count-limited": "La {{PLURAL:$1|paje|$1pajes}} seguente es en la categoria presente.",
-       "category-file-count": "{{PLURAL:$2|Esta categoria conteni sola la fix seguente.|La {{PLURAL:$1|fix|$1 fixes}} seguente es en esta categoria, estra $2 tota.}}",
+       "category-file-count": "{{PLURAL:$2|Esta categoria conteni sola la fix seguente.|La {{PLURAL:$1|fix|$1 fixes}} seguente es en esta categoria, de un cuantia intera de $2.}}",
        "category-file-count-limited": "The {{PLURAL:$1|fix|$1 fixes}} seguente es en la categoria presente.",
        "listingcontinuesabbrev": "cont.",
        "index-category": "Pajes indiseda",
-       "noindex-category": "Pajes nonindiseda",
+       "noindex-category": "Pajes noncatalogida",
        "broken-file-category": "Pajes con lias rompeda de fixes",
-       "about": "Supra",
+       "about": "Sur",
        "article": "Paje de contenis",
-       "newwindow": "(va abri en fenetra nova)",
+       "newwindow": "(abri en fenetra nova)",
        "cancel": "Cansela",
        "moredotdotdot": "Plu...",
        "morenotlisted": "Esta lista es posible noncompleta.",
        "and": "&#32;e",
        "faq": "Demandas comun",
        "actions": "Atas",
-       "namespaces": "Locas de nom",
+       "namespaces": "Spasios de nom",
        "variants": "Varias",
-       "navigation-heading": "Menu per naviga",
+       "navigation-heading": "Menu de naviga",
        "errorpagetitle": "Era",
-       "returnto": "Restora a $1.",
+       "returnto": "Revade a $1.",
        "tagline": "De {{SITENAME}}",
-       "help": "Disionario",
+       "help": "Aida",
        "search": "Xerca",
        "search-ignored-headings": " #<!-- leave this line exactly as it is --> <pre>\n# Titulos cual va es iniorada par xerca.\n# Cambias a esta va aveni pronto cuando la paje con la titulo es indiseda.\n# Tu pote forsa la reindise de un paje par fa un edita vacua.\n# La sintax es como la seguente:\n#   * Tota de la sinia \"#\" a la fini de la linia es un comenta.\n#   * Tota linia nonvacua es la titulo esata per iniora, incluinte caso etc.\nReferes\nLias esterna\nVide ance\n #</pre> <!-- leave this line exactly as it is -->",
        "searchbutton": "Xerca",
        "printableversion": "Varia primable",
        "permalink": "Lia permanente",
        "print": "Primi",
-       "view": "Vide",
-       "view-foreign": "Vide a $1",
-       "edit": "Cambia",
+       "view": "Leje",
+       "view-foreign": "Mostra en $1",
+       "edit": "Edita",
        "edit-local": "Edita descrive local",
        "create": "Crea",
-       "create-local": "Ajunta descrive local",
+       "create-local": "Ajunta un descrive local",
        "delete": "Sutrae",
        "undelete_short": "Desutrae {{PLURAL:$1|edita|editas}}",
        "viewdeleted_short": "Vide {{PLURAL:$1|un edit desutraeda|$1 editas desutraeda}}",
        "protect_change": "cambia",
        "unprotect": "Cambia la proteje",
        "newpage": "Paje nova",
-       "talkpagelinktext": "Parla",
+       "talkpagelinktext": "discute",
        "specialpage": "Paje spesial",
        "personaltools": "Utiles personal",
        "talk": "Discutes",
-       "views": "Vides",
+       "views": "Aspetas",
        "toolbox": "Utiles",
        "tool-link-userrights": "Cambia grupos de {{GENDER:$1|usor}}",
        "tool-link-userrights-readonly": "Vide grupos de {{GENDER:$1|usor}}",
        "viewtalkpage": "Vide la discute",
        "otherlanguages": "En otra linguas",
        "redirectedfrom": "(Redirijeda de $1)",
-       "redirectpagesub": "Redireta la paje",
+       "redirectpagesub": "Paje redirijente",
        "redirectto": "Redirije a:",
-       "lastmodifiedat": "Esta paje ia es cambiada a $1, a $2",
+       "lastmodifiedat": "La edita la plu resente de esta paje ia es a $1, a $2",
        "viewcount": "Esta paje es asesada a $1 {{PLURAL:$1|ves|veses}}.",
        "protectedpage": "Paje protejeda",
        "jumpto": "Salta a:",
        "jumptosearch": "xerca",
        "view-pool-error": "Pardona, la servadores es tro cargada a esta ora.\nTro multe usores es atenta vide esta paje.\nPer favore espeta ante cuanto tu atenta vide esta paje denova.\n\n$1",
        "generic-pool-error": "Pardona, la servadores es tro cargada a esta ora.\nTro multe usores es atentante vide esta recurso.\nPer favore espeta ante cuando tu atenta vide esta recurso denova.",
-       "aboutsite": "Supra {{SITENAME}}",
-       "aboutpage": "Project:Supra",
-       "copyright": "Contenis es disponable su $1, estra diferente notada.",
+       "aboutsite": "Sur {{SITENAME}}",
+       "aboutpage": "Project:Sur",
+       "copyright": "La contenida es disponeda su $1, estra diferes notada.",
        "copyrightpage": "{{ns:project}}:Diretos de autor",
-       "currentevents": "Avenis presente",
-       "currentevents-url": "Project:Avenis presente",
-       "disclaimers": "Negas de respondablia",
-       "disclaimerpage": "Project:Nega jeneral de respondablia",
-       "edithelp": "Aida con edita",
+       "currentevents": "Avenis corente",
+       "currentevents-url": "Project:Avenis corente",
+       "disclaimers": "Renunsias",
+       "disclaimerpage": "Project:Renunsia jeneral",
+       "edithelp": "Aida sur edita",
        "helppage-top-gethelp": "Aida",
-       "mainpage": "Paje Prima",
-       "mainpage-description": "Paje Prima",
+       "mainpage": "Paje Xef",
+       "mainpage-description": "Paje xef",
        "policy-url": "Project:Politica",
-       "portal": "Porta comunial",
-       "portal-url": "Project:Porta comunial",
-       "privacy": "Promete de privadia",
-       "privacypage": "Project:Promete de privadia",
+       "portal": "Porton de comunia",
+       "portal-url": "Project:Porton de comunia",
+       "privacy": "Promete de privatia",
+       "privacypage": "Project:Promete de privatia",
        "ok": "Oce",
        "retrievedfrom": "Retraeda de \"$1\"",
-       "youhavenewmessages": "Tu ave $1 ($2).",
-       "youhavenewmessagesfromusers": "{{PLURAL:$4|Tu ave}} $1 de {{PLURAL:$3|otra usor|$3 usores}} ($2).",
+       "youhavenewmessages": "{{PLURAL:$3|Tu ave}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Tu ave}} $1 de {{PLURAL:$3|un otra usor|$3 usores}} ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|un mesaje nova|999=mesajes nova}}",
-       "newmessagesdifflinkplural": "ultima {{PLURAL:$1|cambia|cambias}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|cambia|cambias}} resente",
        "youhavenewmessagesmulti": "Tu ave mesajes nova en $1",
-       "editsection": "cambia",
+       "editsection": "edita",
        "editold": "edita",
-       "viewsourceold": "vide orijin",
-       "editlink": "cambia",
-       "viewsourcelink": "vide orijin",
-       "editsectionhint": "Edita sesion: $1",
+       "viewsourceold": "fonte",
+       "editlink": "edita",
+       "viewsourcelink": "fonte",
+       "editsectionhint": "Edita de parte: $1",
        "toc": "Contenida",
        "showtoc": "mostra",
        "hidetoc": "asconde",
        "viewdeleted": "Vide $1?",
        "feedlinks": "Flue:",
        "site-rss-feed": "$1 RSS Flue",
-       "site-atom-feed": "$1 Atom Flue",
+       "site-atom-feed": "$1 Flue Atom",
        "page-rss-feed": "\"$1\" RSS Flue",
-       "page-atom-feed": "\"$1\" Enflue de atom",
+       "page-atom-feed": "\"$1\" Flue Atom",
        "red-link-title": "$1 (paje no esiste)",
        "nstab-main": "Paje",
        "nstab-user": "Paje de usor",
        "nstab-project": "Paje de projeta",
        "nstab-image": "Fix",
        "nstab-mediawiki": "Mesaje",
-       "nstab-template": "Model",
+       "nstab-template": "Stensil",
        "nstab-help": "Paje de aida",
        "nstab-category": "Categoria",
-       "mainpage-nstab": "Paje Prima",
-       "nosuchspecialpage": "No esiste tal paje spesial",
-       "nospecialpagetext": "<strong>Tu ia demanda per un paje spesial nonpertinente.</strong>\n\nUn lista de pajes spesial pertinente pote es trovada en\n[[Special:SpecialPages|{{int:specialpages}}]].",
+       "mainpage-nstab": "Paje xef",
+       "nosuchspecialpage": "Paje spesial nonesistente",
+       "nospecialpagetext": "<strong>Tu ia solisita un paje spesial nonvalida.</strong>\n\nUn lista de pajes spesial valida es disponable en [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Era",
        "databaseerror": "Era de base de datos",
        "missingarticle-diff": "(Difere: $1, $2)",
        "internalerror": "Era interna",
        "internalerror_info": "Era interna: $1",
-       "badtitle": "Titulo es mal",
-       "badtitletext": "La titulo de la paje tu ia desira ia es nonlegal, es vacua, o es un titulo intervici o interlingual no liada coreta. Es posable ce es un o plu simboles ce no pote es usada en titulos.",
-       "viewsource": "Vide la orijin",
-       "viewsource-title": "Vide fonte per $1",
-       "viewsourcetext": "Tu pote vide e copia la orijina de esta paje:",
+       "badtitle": "Mal titulo",
+       "badtitletext": "La titulo de la paje spesifada es nonlegal, vacua, o un titulo interlingual o intervici de lia noncoreta. Cisa lo conteni un o plu sinias cual on no pote usa en titulos.",
+       "viewsource": "Mostra la fonte",
+       "viewsource-title": "Regarda la fonte per $1",
+       "viewsourcetext": "Tu pote regarda e copia la fonte de esta paje:",
        "mycustomcssprotected": "Tu no ave permete per edita esta paje CSS.",
        "mycustomjsprotected": "Tu no ave permete per edita esta paje JavaScript.",
        "myprivateinfoprotected": "Tu no ave permete per edita tua informa privata.",
        "userlogin-yourname": "Nom de usor",
        "userlogin-yourname-ph": "Entra tua nom de usor",
        "yourpassword": "Sinia de entra:",
-       "userlogin-yourpassword": "Clave",
-       "userlogin-yourpassword-ph": "Entra tua sinia secreta",
-       "createacct-yourpassword-ph": "Entra un sinia secreta",
+       "userlogin-yourpassword": "Parola secreta",
+       "userlogin-yourpassword-ph": "Tape tua parola secreta",
+       "createacct-yourpassword-ph": "Tape un parola secreta",
        "yourpasswordagain": "Retape la sinia:",
-       "createacct-yourpasswordagain": "Confirma la sinia secreta",
-       "createacct-yourpasswordagain-ph": "Entra un sinia secreta denova",
-       "userlogin-remembermypassword": "Reteni me como identifiada",
+       "createacct-yourpasswordagain": "Confirma la parola secreta",
+       "createacct-yourpasswordagain-ph": "Retape la parola secreta",
+       "userlogin-remembermypassword": "Manteni mea identifia",
        "yourdomainname": "Tu domina:",
        "login": "Identifia",
        "nav-login-createaccount": "Sinia per entra",
        "logout": "Retira",
        "userlogout": "Sinia per retira",
        "userlogin-noaccount": "Tu no ave un conta?",
-       "userlogin-joinproject": "Crea un conta con {{SITENAME}}",
+       "userlogin-joinproject": "Crea un conta de {{SITENAME}}",
        "createaccount": "Crea un conta",
-       "userlogin-resetpassword-link": "Tu ia oblida tua sinia secreta?",
-       "userlogin-helplink2": "Aida me per identifia me",
+       "userlogin-resetpassword-link": "Tu ia oblida tua parola secreta?",
+       "userlogin-helplink2": "Aida sur identifia",
        "createacct-emailrequired": "Adirije de e-posta",
-       "createacct-emailoptional": "Adirije de e-posta (elejable)",
+       "createacct-emailoptional": "Adirije de e-posta (si desirada)",
        "createacct-email-ph": "Entra tua adirije de e-posta",
        "createacct-another-email-ph": "Entra tua adirije de e-posta",
        "createacct-reason": "Razona:",
        "createacct-submit": "Crea tua conta",
        "createacct-another-submit": "Crea un conta",
-       "createacct-benefit-heading": "{{SITENAME}} es fabricada par persones como tu.",
+       "createacct-benefit-heading": "{{SITENAME}} es realida par persones como tu.",
        "createacct-benefit-body1": "{{PLURAL:$1|edita|editas}}",
        "createacct-benefit-body2": "{{PLURAL:$1|paje|pajes}}",
-       "createacct-benefit-body3": "{{PLURAL:$1|contribuor|contribuores}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|contribuor|contribuores}} resente",
        "loginerror": "Era de entra",
        "loginsuccesstitle": "Tu ia entra",
        "loginsuccess": "'''Tu ia entrada aora a {{SITENAME}} como \"$1\".'''",
        "accountcreated": "Conta es creada",
        "loginlanguagelabel": "Lingua: $1",
        "pt-login": "Identifia se",
-       "pt-login-button": "Identifia tua",
+       "pt-login-button": "Identifia",
        "pt-createaccount": "Crea un conta",
        "pt-userlogout": "Desidentifia",
        "oldpassword": "Sinia secreta vea:",
        "retypenew": "Re-entra tu sinia secreta nova:",
        "resetpass-submit-loggedin": "Cambia la sinia secreta",
        "resetpass-temp-password": "Sinia secreta tempora:",
-       "passwordreset": "Reinisia sinia secreta",
+       "passwordreset": "Reinisia tua parola secreta",
        "passwordreset-username": "Nom de usor:",
        "passwordreset-domain": "Domina:",
        "passwordreset-email": "Adirije de e-posta",
        "passwordreset-invalidemail": "Adirije de e-posta no es valida",
        "changeemail-submit": "Cambia e-posta",
-       "bold_sample": "Testo en leteras forte",
-       "bold_tip": "Testo en leteras forte",
-       "italic_sample": "Testo en leteras italica",
-       "italic_tip": "Testo en leteras italica",
+       "bold_sample": "Testo en leteras spesa",
+       "bold_tip": "Testo en leteras spesa",
+       "italic_sample": "Testo en leteras apoiada",
+       "italic_tip": "Testo en leteras apoiada",
        "link_sample": "Titulo de lia",
        "link_tip": "Lia interna",
        "extlink_sample": "http://www.example.com titulo de lia",
-       "extlink_tip": "Lia esterna (recorda la prefis http://)",
+       "extlink_tip": "Lia esterna (recorda la prefisa http://)",
        "headline_sample": "Testo de titulo",
        "headline_tip": "Titulo de nivel 2",
-       "nowiki_sample": "Introdui testo nonformida asi",
-       "nowiki_tip": "Iniora la forma de la vici",
+       "nowiki_sample": "Ajunta testo nonformatida asi",
+       "nowiki_tip": "Iniora la formati de vici",
        "image_tip": "Fix interna",
        "media_tip": "Lia a fix",
-       "sig_tip": "Tu sinia con la primi de la ora",
-       "hr_tip": "Linia orizonal (usa nonfrecuente)",
-       "summary": "Soma:",
+       "sig_tip": "Tua suscrive con marca de ora",
+       "hr_tip": "Linia orizonal (per usas rara)",
+       "summary": "Resoma:",
        "subject": "Sujeto:",
        "minoredit": "Esta es un cambia minor",
-       "watchthis": "Oserva esta paje",
-       "savearticle": "Fisa paje",
+       "watchthis": "Monitori esta paje",
+       "savearticle": "Fisa la paje",
        "publishpage": "Publici paje",
        "publishchanges": "Publica la cambias",
        "preview": "Previde",
        "showpreview": "Mostra previde",
        "showdiff": "Mostra diferes",
-       "anoneditwarning": "'''Avisa:''' Tu no ia identifia se.\nTu adirije de IP va es memorada en la istoria de revisas de esta paje. Si tu <strong>[$1 identifia se]</strong> o <strong>[$2 crea un conta]</strong>, tua editas va es atribuida a tua nom de usor, con otra benefias.",
+       "anoneditwarning": "<strong>Avisa:</strong> Tu no ia identifia tu. Tua adirije IP va es publica vidable si tu fa un edita. Si tu <strong>[$1 identifia tu]</strong> o <strong>[$2 crea un conta]</strong>, tua editas va es atribuida a tua nom de usor, entre otra beneficas.",
        "summary-preview": "Previde soma:",
        "blockedtitle": "Usor es impedida",
-       "blockedtext": "'''Tu nom de usor o adirije de IP ia es impedida.'''\n\nLa impedi ia es fada par $1.\nLa razon donada es ''$2''.\n\n* Comensa de impedi: $8\n* Fini de impedi: $6\n* Ci algun intende impedi: $7\n\nTu pote contata $1 o un otra [[{{MediaWiki:Grouppage-sysop}}|dirijor]] per discute esta impedi.\nTu no pote usa la 'envia un eposta a esta usor' sin un adirije de eposta legal es indicada en tu\n[[Special:Preferences|preferis de conta]] e tu no es impedida de usa el.\nTu adirije de IP es aora $3, e la identia de la impedi es #$5.\nPer favore inclui tota esta detales en tu demandas.",
+       "blockedtext": "'''Tua nom de usor o adirije IP es impedida.'''\n\nLa impedi ia es fada par $1.\nLa razona donada es ''$2''.\n\n* Comensa de impedi: $8\n* Fini de impedi: $6\n* Conta impedida: $7\n\nTu pote contata $1 o un otra [[{{MediaWiki:Grouppage-sysop}}|dirijor]] per discute esta impedi.\nTu no pote usa la funsiona \"envia un e-posta a esta usor\" estra si un adirije valida de e-posta legal es spesifada en tua [[Special:Preferences|preferes de conta]] e tu no es impedida de usa lo.\nTua adirije IP presente es $3, e la numero de impedi es #$5.\nInclui tota esta detalias en cualce demandas cual tu fa, per favore.",
        "loginreqtitle": "Entra de identia nesesada",
-       "loginreqlink": "Identifia se",
+       "loginreqlink": "identifia",
        "newarticle": "(Nova)",
-       "newarticletext": "Tu ia segue un lia a un paje ce no esista ja.\nPer crea la paje, comensa scrive en la caxa a su\n(vide la [$1 paje de aida] per plu).\nSi tu es asi par era, clica a la boton '''retro''' de tu surfador.",
-       "noarticletext": "On ave aora no testo a esta paje.\nTu pote [[Special:Search/{{PAGENAME}}|xerca per la titulo de esta paje]] en otra pajes,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} xerca la arcivos relatada],\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} edita esta paje]</span>.",
-       "noarticletext-nopermission": "On ave presente no testo en esta paje.\nTu pote [[Special:Search/{{PAGENAME}}|xerca per esta titulo de paje]] en otra pajes, o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} xerca arcivos relatada]</span>, ma tu no es permeteda per crea esta paje.",
-       "userpage-userdoesnotexist-view": "La conta de usor \"$1\" no es enscriveda",
-       "clearyourcache": "<strong>Note:</strong> After saving, you may have to bypass your browser's cache to see the changes.\n* <strong>Firefox / Safari:</strong> Hold <em>Shift</em> while clicking <em>Reload</em>, or press either <em>Ctrl-F5</em> or <em>Ctrl-R</em> (<em>⌘-R</em> on a Mac)\n* <strong>Google Chrome:</strong> Press <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> on a Mac)\n* <strong>Internet Explorer:</strong> Hold <em>Ctrl</em> while clicking <em>Refresh</em>, or press <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Go to <em>Menu → Settings</em> (<em>Opera → Preferences</em> on a Mac) and then to <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
-       "previewnote": "<strong>Esta es sola un previde.</strong>\nTua cambias no es fisada ja!",
+       "newarticletext": "Tu ia segue un lia a un paje cual ancora no esista. Per crea la paje, comensa tape en la caxa a su (vide la [$1 paje de aida] per plu informa).\nSi tu ia veni asi par era, clica la boton <strong>retro</strong> de tua surfador.",
+       "anontalkpagetext": "<em>Esta es la paje de discute per un usor anonim ci ancora no ia crea un conta, o ci no usa lo.</em>\n Donce nos identifia el par adirije IP numeral.\nUn tal adirije pote es compartida par plu ca un usor.\nSi tu es un usor anonim e opina ce on ia dirije comentas nonpertinente a tu, per favore [[Special:CreateAccount|crea un conta]] o [[Special:UserLogin|identifia tu]] per evita confusas futur con otra usores anonim.",
+       "noarticletext": "No testo esiste en esta paje. Tu pote [[Special:Search/{{PAGENAME}}|xerca la titulo de esta paje]] en otra pajes, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} xerca en la arcivos relatada], o [{{fullurl:{{FULLPAGENAME}}|action=edit}} crea esta paje]</span>.",
+       "noarticletext-nopermission": "No testo esiste en esta paje. Tu pote [[Special:Search/{{PAGENAME}}|xerca esta titulo de paje]] en otra pajes, o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} xerca en arcivos relatada]</span>, ma on no permete ce tu crea esta paje.",
+       "userpage-userdoesnotexist-view": "La conta de usor \"$1\" no es rejistrada",
+       "clearyourcache": "<strong>Nota:</strong> Pos fisa, tu debe cisa sircoveni la memoria de tua surfador per vide la cambias.\n* <strong>Firefox / Safari:</strong> Presa la tecla <em>Maj</em> (<em>Shift</em>) e clica <em>Refresci</em>, o presa o <em>Ctrl-F5</em> o <em>Ctrl-R</em> (<em>⌘-R</em> a Mac)\n* <strong>Google Chrome:</strong> Presa <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> a Mac)\n* <strong>Internet Explorer:</strong> Presa <em>Ctrl</em> e clica <em>Refresci</em>, o presa <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Vade a <em>Menu → Settings</em> (<em>Opera → Preferences</em> a Mac) e de ala a <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
+       "previewnote": "<strong>Recorda ce esta es sola un previde.</strong> Tua cambias es ancora no fisada!",
        "continue-editing": "Vade a la loca de edita",
-       "editing": "En la prosede de edita $1",
+       "editing": "Editante $1",
        "creating": "Creante $1",
-       "editingsection": "Edita $1 (sesion)",
+       "editingsection": "Editante $1 (un parte)",
        "editingcomment": "Edita $1 (sesion nova)",
        "yourdiff": "Diferes",
        "copyrightwarning": "Per favore nota ce tota labora a {{SITENAME}} es judida ce el es relasada su la $2 (vide $1 per detalias). Si tu no desira ce tu scrives ta es editada sin compati e redistribui sin tu permite, no sumita el asi!<br />\nTu ance promete a nos ce tu ia scriveda esta par tu mesma, o copiada esta de un domina publica o otra orijin libre.\n'''NO SUMITA LABORA SU DIRETOS DE AUTOR SIN PERMITE!!'''",
        "templatesused": "{{PLURAL:$1|Modele|Modeles}} usada en esta paje:",
-       "templatesusedpreview": "{{PLURAL:$1|Modele|Modeles}} usada en esta previde:",
+       "templatesusedpreview": "{{PLURAL:$1|Stensil|Stensiles}} usada en esta previde:",
        "template-protected": "(protejeda)",
-       "template-semiprotected": "(proteje en parte)",
+       "template-semiprotected": "(partal protejeda)",
        "hiddencategories": "Esta paje es un membro de {{PLURAL:$1|1 categoria ascondeda|$1 categorias ascondeda}}:",
        "nocreatetext": "{{SITENAME}} ave un restringe a la capas per crea pajes nova.\nTu pote vade a retro e edita un paje esistente, o  [[Special:UserLogin|sinia per entra o crea un conta]].",
        "permissionserrors": "Era de permete",
-       "permissionserrorstext-withaction": "Tua no es permeteda per $2, per la {{PLURAL:$1|razona|razonas}} seguente:",
-       "recreate-moveddeleted-warn": "<strong>Avisa: Tu es recreante un paje cual ia es sutraeda a ante.</strong>\nTu debe pensa si la continua de edita de esta paje conveni.\nLa arcivo de sutraes e moves per esta paje es asi per tua conveni:",
-       "moveddeleted-notice": "Esta paje ia es sutraeda.\nLa arcivo de sutraes e moves per la paje es furnida a su per refere.",
+       "permissionserrorstext-withaction": "Tu no pote $2, per la {{PLURAL:$1|razona|razonas}} seguente:",
+       "recreate-moveddeleted-warn": "<strong>Avisa: Tu recrea un paje cual on ia sutrae a ante.</strong>\n\nConsidera esce lo conveni ce tu continua edita esta paje. La arcivos de sutrae e move per la paje es presentada asi per aida:",
+       "moveddeleted-notice": "On ia sutrae esta paje. La arcivos de sutrae e move per la paje es presentada a su per clari.",
        "content-model-wikitext": "vicitesto",
-       "undo-failure": "Esta edita ia no pote es desfada par causa de editas media.",
-       "viewpagelogs": "Vide la arcivo de esta paje",
+       "undo-failure": "Esta edita no pote es desfada par causa de editas interveninte cual contradise lo.",
+       "viewpagelogs": "Mostra la arcivos per esta paje",
        "currentrev": "Cambia presente",
-       "currentrev-asof": "Cambia presente a departi di $1",
+       "currentrev-asof": "Revisa la plu resente de $1",
        "revisionasof": "Revisa de $1",
        "revision-info": "Revisa de $1 par $2",
-       "previousrevision": "← Altera presedente",
-       "nextrevision": "Revisa plu nova→",
-       "currentrevisionlink": "Revisa presente",
+       "previousrevision": "← Revisa presedente",
+       "nextrevision": "Revisa plu nova →",
+       "currentrevisionlink": "Revisa la plu resente",
        "cur": "aora",
        "next": "seguente",
        "last": "dife",
        "page_first": "prima",
        "page_last": "final",
-       "histlegend": "Diferente eleje: Marca la caxas de radio de esta varias per compare e clica entra o la boton a la funda.<br />\n(presente) = difere de la varia presente,\n(presedente) = difere con varia presedente, M = edita minor.",
-       "history-fieldset-title": "Surfa per revisas",
-       "histfirst": "La plu vea",
-       "histlast": "La plu nova",
+       "histlegend": "Eleje de diferes: Marca la caxas de la revisas cual tu vole compara. Alora presa la tecla de entra, o clica la boton a su.<br />\nLegend: <strong>({{int:cur}})</strong> = compara con la revisa la plu resente, <strong>({{int:last}})</strong> = compara con la revisa presedente, <strong>{{int:minoreditletter}}</strong> = edita minor.",
+       "history-fieldset-title": "Xerca revisas",
+       "histfirst": "la plu vea",
+       "histlast": "la plu nova",
        "historysize": "({{PLURAL:$1|1 otuple|$1 otuples}})",
        "historyempty": "(vacua)",
        "history-feed-title": "Istoria de revises",
-       "history-feed-description": "Istoria de revide per esta paje en la vici",
+       "history-feed-description": "Istoria de revisas per esta paje en la vici",
        "history-feed-item-nocomment": "$1 a $2",
        "rev-delundel": "mostra/asconde",
        "rev-showdeleted": "mostra",
        "revdelete-radio-unset": "Vidable",
        "pagehist": "Istoria de paje",
        "deletedhist": "Istoria sutraeda",
-       "mergelog": "Fusa jornal de ativia",
-       "history-title": "Istoria de cambias de \"$1\"",
+       "mergelog": "Fusa arcivo",
+       "history-title": "Istoria de revisas de \"$1\"",
        "difference-title": "Difere entre revisas de \"$1\"",
        "lineno": "Linia $1:",
-       "compareselectedversions": "Compare varias elejeda",
+       "compareselectedversions": "Compara revisas elejeda",
        "editundo": "desfa",
-       "diff-empty": "(Zero difere)",
-       "diff-multi-sameuser": "({{PLURAL:$1|Un revisa media|$1 revisas media}} par la mesma usor no mostrada)",
-       "diff-multi-otherusers": "({{PLURAL:$1|Un revisa media|$1 revisas media}} par {{PLURAL:$2|otra usor|$2 usores}} no mostrada)",
-       "searchresults": "Resultas de xerca",
-       "searchresults-title": "Xerca la resultas per \"$1\"",
+       "diff-empty": "(No diferes)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Un revisa media|$1 revisas media}} par la mesma usor no es mostrada)",
+       "diff-multi-otherusers": "({{PLURAL:$1|Un revisa media|$1 revisas media}} par {{PLURAL:$2|un otra usor|$2 usores}} no es mostrada)",
+       "searchresults": "Trovadas",
+       "searchresults-title": "Trovadas per \"$1\"",
        "prevn": "{{PLURAL:$1|$1}} presedente",
        "nextn": "{{PLURAL:$1|$1}} seguente",
-       "prevn-title": "Seguente $1 {{PLURAL:$1|resulta|resultas}}",
-       "nextn-title": "Seguente $1 {{PLURAL:$1|resulta|resultas}}",
-       "shown-title": "Mostra $1 {{PLURAL:$1|resulta|resultas}} per paje",
-       "viewprevnext": "Vide ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-exists": "<strong>Lo esiste un paje nomida \"[[:$1]]\" en esta vici.</strong> {{PLURAL:$2|0=|Vide ance la otra resultas de xerca trovada.}}",
-       "searchmenu-new": "<strong>Crea la paje \"[[:$1]]\" a esta wiki!</strong> {{PLURAL:$2|0=|Vide ance la paje trovada con tua xerca.|Vide ance la resultas trovada par la xerca.}}",
-       "searchprofile-articles": "Pajes de contenis",
-       "searchprofile-images": "Multimedios",
+       "prevn-title": "$1 {{PLURAL:$1|resulta|resultas}} presedente",
+       "nextn-title": "$1 {{PLURAL:$1|resulta|resultas}} seguente",
+       "shown-title": "Mostra $1 {{PLURAL:$1|resulta|resultas}} en cada paje",
+       "viewprevnext": "Mostra ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-exists": "<strong>Un paje nomida \"[[:$1]]\" esiste en esta vici.</strong> {{PLURAL:$2|0=|Vide ance la otra trovadas.}}",
+       "searchmenu-new": "<strong>Crea la paje \"[[:$1]]\" en esta vici!</strong> {{PLURAL:$2|0=|Vide ance la paje trovada par tua xerca.|Vide ance la pajes trovada par tua xerca.}}",
+       "searchprofile-articles": "Pajes de contenida",
+       "searchprofile-images": "Multimediales",
        "searchprofile-everything": "Tota",
        "searchprofile-advanced": "Avansada",
        "searchprofile-articles-tooltip": "Xerca en $1",
-       "searchprofile-images-tooltip": "Xerca per fixes",
-       "searchprofile-everything-tooltip": "Xerca tota contenidas (incluinte pajes de conversa)",
-       "searchprofile-advanced-tooltip": "Xerca en nomspasios unica",
+       "searchprofile-images-tooltip": "Xerca fixes",
+       "searchprofile-everything-tooltip": "Xerca en la contenida intera (incluinte pajes de discute)",
+       "searchprofile-advanced-tooltip": "Spesifa spasios de nom",
        "search-result-size": "$1 ({{PLURAL:$2|1 parola|$2 parolas}})",
-       "search-result-category-size": "{{PLURAL:$1|1 membro |$1 membros}} ({{PLURAL:$2|1 sucategoria|$2 sucategorias}}, {{PLURAL:$3|1 arcivo|$3 arcivos}})",
+       "search-result-category-size": "{{PLURAL:$1|1 membro|$1 membros}} ({{PLURAL:$2|1 sucategoria|$2 sucategorias}}, {{PLURAL:$3|1 arcivo|$3 arcivos}})",
        "search-redirect": "(redirije de $1)",
-       "search-section": "(sesion $1)",
-       "search-file-match": "(coresponde con la contenida de la arcivo)",
-       "search-suggest": "Tu ia intende: $1",
+       "search-section": "(parte $1)",
+       "search-file-match": "(coresponde a la contenida de fix)",
+       "search-suggest": "Esce tu ia intende: $1",
        "search-interwiki-default": "Resultas de $1:",
        "search-interwiki-more": "(plu)",
        "searchall": "tota",
        "search-showingresults": "{{PLURAL:$4|Resulta <strong>$1</strong> de <strong>$3</strong>|Resultas <strong>$1 - $2</strong> de <strong>$3</strong>}}",
-       "search-nonefound": "On ave no resultas cual conforma con la demanda.",
+       "search-nonefound": "No resultas ia es trovada per la xerca.",
        "powersearch-toggleall": "Tota",
        "powersearch-togglenone": "Zero",
        "preferences": "Preferis",
-       "mypreferences": "Preferis",
+       "mypreferences": "Preferes",
        "skin-preview": "Previde",
        "saveprefs": "Fisa",
        "searchresultshead": "Xerca",
        "saveusergroups": "Fisa la grupo de usores",
        "group": "Grupo:",
        "group-user": "Usores",
-       "group-bot": "Bots",
+       "group-bot": "Botes",
        "group-sysop": "Dirijores",
        "group-all": "(tota)",
        "group-user-member": "{{GENDER:$1|usor}}",
        "grouppage-user": "{{ns:project}}:Usores",
-       "grouppage-bot": "{{ns:project}}:Bots",
+       "grouppage-bot": "{{ns:project}}:Botes",
        "grouppage-sysop": "{{ns:project}}:Dirijores",
-       "right-writeapi": "Usa de la API de scrive",
+       "right-writeapi": "Usa de la api de scrive",
        "newuserlogpage": "Arcivo de creas de usor",
-       "rightslog": "Catalogo de diretos de usor",
+       "rightslog": "Arcivo de diretos de usor",
        "action-edit": "edita esta paje",
        "action-createaccount": "crea esta conta de usor",
        "nchanges": "$1 {{PLURAL:$1|cambia|cambias}}",
        "enhancedrc-history": "istoria",
        "recentchanges": "Cambias resente",
-       "recentchanges-legend": "Elejes  per cambias resente",
-       "recentchanges-summary": "Asi la lista de cambias resente en la vici.",
-       "recentchanges-noresult": "No cambias en la periodo donada coresponde con esta criterios.",
-       "recentchanges-feed-description": "Seque la cambias plu resente a la vici en esta flue.",
+       "recentchanges-legend": "Elejes per cambias resente",
+       "recentchanges-summary": "Segue asi la cambias la plu resente a la vici.",
+       "recentchanges-noresult": "No cambias en la periodo spesifada coresponde a esta criterios.",
+       "recentchanges-feed-description": "Segue la cambias la plu resente a la vici en esta flue.",
        "recentchanges-label-newpage": "Esta edita ia crea un paje nova",
        "recentchanges-label-minor": "Esta es un edita minor",
        "recentchanges-label-bot": "Esta edita ia es fada par un bot",
-       "recentchanges-label-unpatrolled": "Esta edita no ia es ja patruliada",
-       "recentchanges-label-plusminus": "La grandia de esta paje es cambiada par esta cuantia de baites",
-       "recentchanges-legend-heading": "<strong>Titulo:</strong>",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vide ance [[Special:NewPages|la lista de pajes nova]])",
-       "rcnotefrom": "A su {{PLURAL:$5|es la cambia|es la cambias}} de <strong>$3, $4</strong> (asta <strong>$1</strong> shown).",
-       "rclistfrom": "Mostra cambias nova, comensante de $3 $2",
+       "recentchanges-label-unpatrolled": "On ancora no ia patrulia esta edita.",
+       "recentchanges-label-plusminus": "La grandia de esta paje ia es cambiada par esta cuantia de baites",
+       "recentchanges-legend-heading": "<strong>Esplica:</strong>",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vide ance la [[Special:NewPages|lista de pajes nova]])",
+       "rcnotefrom": "A su {{PLURAL:$5|es la cambia|es la cambias}} de <strong>$3, $4</strong> (mostrante asta <strong>$1</strong>).",
+       "rclistfrom": "Mostra cambias nova, comensante de $2, $3",
        "rcshowhideminor": "$1 editas minor",
        "rcshowhideminor-show": "Mostra",
        "rcshowhideminor-hide": "Asconde",
        "rcshowhidebots": "$1 botes",
        "rcshowhidebots-show": "Mostra",
        "rcshowhidebots-hide": "Asconde",
-       "rcshowhideliu": "$1 usores identifiada aora",
+       "rcshowhideliu": "$1 usores rejistrada",
        "rcshowhideliu-show": "Mostra",
        "rcshowhideliu-hide": "Asconde",
        "rcshowhideanons": "$1 usores sin nom",
        "rcshowhideanons-show": "Mostra",
        "rcshowhideanons-hide": "Asconde",
-       "rcshowhidepatr": "$1 editas patroliada",
-       "rcshowhidemine": "$1 me editas",
+       "rcshowhidepatr": "$1 editas patruliada",
+       "rcshowhidemine": "$1 mea editas",
        "rcshowhidemine-show": "Mostra",
        "rcshowhidemine-hide": "Asconde",
-       "rclinks": "Mostra la $1 cambias presedente en la $2 dias presedente",
+       "rclinks": "Mostra la $1 cambias resente en la $2 dias presedente",
        "diff": "dife",
        "hist": "isto",
        "hide": "Asconde",
        "newpageletter": "N",
        "boteditletter": "b",
        "rc_categories_any": "Cualce de la elejeda",
-       "rc-change-size-new": "$1 {{PLURAL:$1|bait|baites}}  pos cambia",
+       "rc-change-size-new": "$1 {{PLURAL:$1|bait|baites}} pos cambia",
        "rc-enhanced-expand": "Mostra detalias",
        "rc-enhanced-hide": "Asconde detalias",
-       "rc-old-title": "creada orijinal como \"$1\"",
-       "recentchangeslinked": "Cambias relateda",
-       "recentchangeslinked-feed": "Cambias relateda",
-       "recentchangeslinked-toolbox": "Cambias relateda",
+       "rc-old-title": "orijinal creada como \"$1\"",
+       "recentchangeslinked": "Cambias relatada",
+       "recentchangeslinked-feed": "Cambias relatada",
+       "recentchangeslinked-toolbox": "Cambias relatada",
        "recentchangeslinked-title": "Cambias relatada a \"$1\"",
-       "recentchangeslinked-summary": "Esta lista conteni la cambias plu resente de la pajes liada a otra (o de la membros de un categoria).\nPajes a [[Special:Watchlist|tu lista de pajes oservada]] es en leteras '''forte'''.",
-       "recentchangeslinked-page": "Nom de la paje:",
-       "recentchangeslinked-to": "En loca, mostra cambia a pajes liada a la paje presentada",
-       "upload": "Envia fixes",
+       "recentchangeslinked-summary": "Esta es un lista de cambias resente a pajes liada (o a la membros de un categoria spesifada). Pajes en [[Special:Watchlist|tua lista de pajes monitorida]] es <strong>spesa</strong>.",
+       "recentchangeslinked-page": "Nom de paje:",
+       "recentchangeslinked-to": "Mostra cambias a pajes cual lia a la paje indicada, en loca",
+       "upload": "Carga un fix",
        "uploadbtn": "Envia la fix",
-       "uploadlogpage": "Envia arcivo",
+       "uploadlogpage": "Carga arcivo",
        "filedesc": "Resoma",
        "savefile": "Fisa fix",
        "upload-file-error": "Era interna",
        "license": "Lisensa:",
        "license-header": "Lisensa",
        "imgfile": "fix",
-       "listfiles": "Lista de imajes",
+       "listfiles": "Lista de fixes",
        "listfiles_name": "Nom",
        "file-anchor-link": "Fix",
        "filehist": "Istoria de fix",
-       "filehist-help": "Clica a un data/tempo per vide la fix como el ia aperi alora.",
+       "filehist-help": "Clica un data/tempo per vide la fix en sua forma de alora.",
+       "filehist-revert": "reversa",
        "filehist-current": "aora",
-       "filehist-datetime": "Date/Tempo",
+       "filehist-datetime": "Data/Tempo",
        "filehist-thumb": "Imajeta",
-       "filehist-thumbtext": "Imajeta per varia pos $1",
+       "filehist-thumbtext": "Imajeta per varia de $1",
        "filehist-nothumb": "No imajeta",
        "filehist-user": "Usor",
        "filehist-dimensions": "Mesuras",
        "filehist-filesize": "Grandia de fix",
        "filehist-comment": "Comenta",
        "imagelinks": "Usas de fix",
-       "linkstoimage": "Esta {{PLURAL:$1|paje|pajes}} lia a esta fix:",
-       "linkstoimage-more": "Plu ca $1 {{PLURAL:$1|un paje lia|pajes lia}} a esta arcivo.\nLa lista a su mostra la {{PLURAL:$1|prima lia|prima $1 lias}} a esta arcivo.\nUn [[Special:WhatLinksHere/$2|lista completa]] es disposable.",
-       "nolinkstoimage": "Es no pajes ce lia a esta fix.",
-       "linkstoimage-redirect": "$1 (redirije de arcivo) $2",
+       "linkstoimage": "La {{PLURAL:$1|paje|pajes}} seguente lia a esta fix:",
+       "linkstoimage-more": "Plu ca $1 {{PLURAL:$1|paje|pajes}} lia a esta fix.\nLa lista seguente mostra sola la {{PLURAL:$1|lia|$1 lias}} prima a esta fix.\nUn [[Special:WhatLinksHere/$2|lista completa]] es disponable.",
+       "nolinkstoimage": "No pajes lia a esta fix.",
+       "linkstoimage-redirect": "$1 (redirije de fix) $2",
        "sharedupload": "Esta fix es parte de $1 e pote es usada par otra projetas.",
-       "sharedupload-desc-here": "Esta fix es de $1 e pote es usada par otra projetas.\nLa descrive su sua [$2 paje de descrive de fix] ala es mostra a su.",
-       "filepage-nofile": "No esiste un arcivo con esta nom.",
+       "sharedupload-desc-here": "Esta fix es de $1 e es cisa usada par otra projetas.\nLa descrive en sua [$2 paje de descrive de fix] ala es mostrada a su.",
+       "filepage-nofile": "No fix con esta nom esiste.",
        "uploadnewversion-linktext": "Envia un varia nova de esta fix",
-       "upload-disallowed-here": "Tu no pote suprascrive esta arcivo.",
+       "upload-disallowed-here": "Tu no pote recambia esta arcivo.",
        "mimesearch": "Xerca de MIME",
        "listredirects": "Lista redirijes",
        "unusedtemplates": "modeles no usada",
        "brokenredirects": "Redirijes rompeda",
        "withoutinterwiki": "Pajes sin lias de lingua",
        "fewestrevisions": "Pajes con la min revides",
-       "nbytes": "$1 {{PLURAL:$1|oteta|otetas}}",
+       "nbytes": "$1 {{PLURAL:$1|bait|baites}}",
        "nlinks": "$1 {{PLURAL:$1|lia|lias}}",
        "nmembers": "$1 {{PLURAL:$1|membro|membros}}",
        "lonelypages": "Pajes orfanida",
        "unusedcategoriestext": "La categorias seguente esiste sin es usada par otra articles o categorias.",
        "pager-newer-n": "{{PLURAL:$1|1 plu resente|$1 plu resentes}}",
        "pager-older-n": "{{PLURAL:$1|1 plu vea|$1 plu veas}}",
-       "booksources": "Orijines de libros",
-       "booksources-search-legend": "Xerca per fontes de libros",
+       "booksources": "Fontes de libros",
+       "booksources-search-legend": "Xerca fontes de libros",
        "booksources-search": "Xerca",
-       "specialloguserlabel": "Usor:",
-       "speciallogtitlelabel": "Ojeto (titulo o {{ns:usor}}:nom de usor per la usor):",
-       "log": "Lista de atas",
-       "all-logs-page": "Tota catalogos",
-       "logempty": "No matching items in log.",
+       "specialloguserlabel": "Faor:",
+       "speciallogtitlelabel": "Ojeto (titulo o {{ns:usor}}:Nom per un usor):",
+       "log": "Arcivos",
+       "all-logs-page": "Tota arcivos publica",
+       "alllogstext": "Un presenta combinada de tota arcivos disponable de {{SITENAME}}. On pote restrinje la presenta par eleje un tipo de arcivo, la nom de usor (distinguinte leteras major), o la paje afetada (ance distinguinte leteras major).",
+       "logempty": "No operas corespondente en la arcivos.",
        "allpages": "Tota pajes",
        "nextpage": "Paje seguente ($1)",
        "prevpage": "Paje presedente ($1)",
        "linksearch-ok": "Xerca",
        "listgrouprights-group": "Grupo",
        "listgrouprights-members": "(lista de membros)",
-       "emailuser": "Envia un eposta a esta usor",
+       "emailuser": "Envia un e-posta a esta usor",
        "emailfrom": "De:",
        "emailto": "A:",
        "emailsubject": "Sujeto:",
        "emailmessage": "Mesaje:",
        "emailsend": "Envia",
        "emailsent": "E-posta ia es enviada",
-       "usermessage-editor": "Notas de sistem",
-       "watchlist": "Lista de pajes oservada",
-       "mywatchlist": "Lista de pajes oservada",
+       "usermessage-editor": "Mesajor de sistem",
+       "watchlist": "Pajes monitorida",
+       "mywatchlist": "Lista de pajes monitorida",
        "watchlistfor2": "Per $1 $2",
        "nowatchlist": "Tu ave no cosas en tu lista oservada",
        "addedwatchtext": "La paje \"[[:$1]]\" ia es juntada a tu [[Special:Watchlist|lista de pajes oservada]].\nCambias future a esta paje e se paje de discutes va es listada ala, e la paje va apera en leteras '''forte''' en la [[Special:RecentChanges|lista de cambias resente]] per es plu fasil oservada.\n\nSi tu vole sutrae la paje de tu lista de pajes oservada en la futur, clica a \"no oserva\" en la bara a la lado.",
        "removedwatchtext": "La paje \"[[:$1]]\" ia es sutraeda de [[Special:Watchlist|tu lista de pajes oservada]].",
-       "watch": "Oserva",
+       "watch": "Monitori",
        "watchthispage": "Oserva esta paje",
-       "unwatch": "Nonoserva",
-       "watchlist-details": "{{PLURAL:$1|$1 paje|$1 pajes}} oservada, sin pajes de discutes.",
-       "wlheader-showupdated": "La pajes cual ia es cambiada de la ultima ves ce tu ia visita los es mostrada en <strong>spesa</strong>.",
-       "wlnote": "A su {{PLURAL:$1|ies la ultima cambia|es la ultima<strong>$1</strong> cambias}} en la ultima {{PLURAL:$2|ora|<strong>$2</strong> oras}}, en $3, $4.",
+       "unwatch": "Desmonitori",
+       "watchlist-details": "Tu monitori {{PLURAL:$1|$1 paje|$1 pajes}}, iniorante pajes de discute.",
+       "wlheader-showupdated": "Pajes cual on ia cambia pos tua visita la plu resente apare en leteras <strong>spesa</strong>.",
+       "wlnote": "A su es la {{PLURAL:$1|cambia|<strong>$1</strong> cambias}} en la {{PLURAL:$2|ora|<strong>$2</strong> oras}} la plu resente, a $3, $4.",
        "wlshowlast": "Mostra la $1 oras e $2 dias presedente",
-       "watchlist-options": "Elejes de lista de oserva.",
+       "watchlist-options": "Preferes per la lista de pajes monitorida.",
        "watching": "Oserva...",
        "unwatching": "No oserva...",
-       "enotif_reset": "Marca la pajes visitada",
+       "enotif_reset": "Marca tota pajes como visitada",
        "created": "Creada",
        "deletepage": "Sutrae la paje",
        "confirm": "Aproba",
        "confirmdeletetext": "Tu va pronto sutrae un paje con tota se istoria. Per favore, afirma ce tu intende esta, ce tu comprende la resultas, e ce tu fa esta en acorda con [[{{MediaWiki:Policy-url}}|la prometes]].",
        "actioncomplete": "Ata completada",
        "deletedtext": "\"$1\" ia es sutraeda.\nVide $2 per un catalogo de sutraes resente.",
-       "dellogpage": "catalogo de sutraes",
+       "dellogpage": "Arcivo de sutraes",
        "deletecomment": "Razona:",
        "deleteotherreason": "Otra/plu razona:",
        "deletereasonotherlist": "Otra razona",
-       "rollbacklink": "retro",
+       "rollbacklink": "reversa",
        "rollbacklinkcount": "reversa $1 {{PLURAL:$1|edita|editas}}",
-       "protectlogpage": "Catalogo de protejes",
-       "protectedarticle": "\"[[$1]]\" protejeda",
-       "modifiedarticleprotection": "cambia nivel de proteje a \"[[$1]]\"",
+       "protectlogpage": "Arcivo de protejes",
+       "protectedarticle": "proteje \"[[$1]]\"",
+       "modifiedarticleprotection": "cambia nivel de proteje per \"[[$1]]\"",
        "unprotectedarticle": "''[[$1]]'' desprotejeda",
        "protect-title": "Fisa nivel de proteje a \"$1\"",
        "prot_1movedto2": "[[$1]] es moveda a [[$2]]",
        "undelete": "Restora paje sutraeda",
        "undeletebtn": "Restora",
        "undelete-search-submit": "Xerca",
-       "namespace": "Loca de nom:",
-       "invert": "Reversa la eleje",
-       "tooltip-invert": "Marca esta caxa per asconde cambias a pajes en la nomspasio elejeda (e la nomspasio asosiada si marcada)",
-       "namespace_association": "Nomspasio asosiada",
-       "tooltip-namespace_association": "Marca esta caxa per inclui ance la nomspasio de discute o sujeto asosiada con la nomspasio elejeda",
-       "blanknamespace": "(Prima)",
-       "contributions": "Contribuis de {{GENDER:$1|usor}}",
-       "contributions-title": "Contribuis de la usor per $1",
+       "namespace": "Spasio de nom:",
+       "invert": "Inversa la eleje",
+       "tooltip-invert": "Marca esta caxa per asconde cambias a pajes en la spasio elejeda (e ance la spasio asosiada si acel es marcada)",
+       "namespace_association": "Spasio de nom asosiada",
+       "tooltip-namespace_association": "Marca esta caxa per inclui ance la spasio de discute o tema asosiada con la spasio elejeda",
+       "blanknamespace": "(Xef)",
+       "contributions": "Contribuis par {{GENDER:$1|usor}}",
+       "contributions-title": "Contribuis de usor per $1",
        "mycontris": "Mea contribuis",
        "anoncontribs": "Contribuis",
        "contribsub2": "Per {{GENDER:$3|$1}} ($2)",
-       "nocontribs": "No cambias ia es trovada corespondente con esta criterios.",
+       "nocontribs": "No cambias coresponde a esta criterios.",
        "uctop": "(aora)",
-       "month": "De mensa (e plu vea):",
+       "month": "De mense (e plu vea):",
        "year": "De anio (e plu vea):",
-       "sp-contributions-newbies": "Sola mostra contribuis de contas nova",
+       "sp-contributions-newbies": "Mostra sola contribuis par contas nova",
        "sp-contributions-newbies-sub": "Per contas nova",
-       "sp-contributions-blocklog": "Impedi arcivo",
+       "sp-contributions-blocklog": "impedi arcivo",
        "sp-contributions-uploads": "cargas",
-       "sp-contributions-logs": "Lista de atas",
+       "sp-contributions-logs": "Lista de arcivos",
        "sp-contributions-talk": "discute",
        "sp-contributions-userrights": "Dirije de la diretos de usores",
-       "sp-contributions-search": "Xerca per contribuis",
+       "sp-contributions-search": "Xerca contribuis",
        "sp-contributions-username": "Adirije de IP o nom de usor:",
-       "sp-contributions-toponly": "Sola mostra editas cual es la revisas ultima.",
-       "sp-contributions-newonly": "Sola mostra editas cual es creas de pajes.",
+       "sp-contributions-toponly": "Mostra sola editas cual es revisas la plu resente.",
+       "sp-contributions-newonly": "Mostra sola editas cual es creas de pajes",
        "sp-contributions-submit": "Xerca",
-       "whatlinkshere": "Ce es liada a asi",
-       "whatlinkshere-title": "Pajes ci lia a \"$1\"",
+       "whatlinkshere": "Lias a esta paje",
+       "whatlinkshere-title": "Pajes cual lia a \"$1\"",
        "whatlinkshere-page": "Paje:",
-       "linkshere": "Esta pajes lia a '''[[:$1]]''':",
+       "linkshere": "La pajes seguente lia a <strong>[[:$1]]</strong>:",
        "nolinkshere": "No pajes lia a '''[[:$1]]'''.",
-       "isredirect": "redirije paje",
-       "istemplate": "inclui",
+       "isredirect": "paje redirijente",
+       "istemplate": "transclui",
        "isimage": "lia de fix",
-       "whatlinkshere-prev": "{{PLURAL:$1|presesdente|$1 presedente}}",
-       "whatlinkshere-next": "{{PLURAL:$1|seguente|$1 seguente}}",
+       "whatlinkshere-prev": "{{PLURAL:$1|presedente|$1 presedentes}}",
+       "whatlinkshere-next": "{{PLURAL:$1|seguente|$1 seguentes}}",
        "whatlinkshere-links": "← lias",
        "whatlinkshere-hideredirs": "$1 redirijes",
        "whatlinkshere-hidetrans": "$1 transcluis",
        "whatlinkshere-hidelinks": "$1 lias",
-       "whatlinkshere-hideimages": "$1 lias de arcivo",
+       "whatlinkshere-hideimages": "$1 lias de fix",
        "whatlinkshere-filters": "Filtros",
        "blockip": "Impedi usor",
        "ipbreason": "Razona:",
        "ipbsubmit": "Impedi esta usor",
-       "ipboptions": "2 oras:2 hours,1 dia:1 day,3 dias:3 days,1 semana:1 week,2 semanas:2 weeks,1 mensa:1 month,3 mensas:3 months,6 mensas:6 months,1 anio:1 year,nonlimitada:infinite",
+       "ipboptions": "2 oras:2 hours,1 dia:1 day,3 dias:3 days,1 semana:1 week,2 semanas:2 weeks,1 mense:1 month,3 menses:3 months,6 menses:6 months,1 anio:1 year,infinita:infinite",
        "blockipsuccesssub": "La impedi susede",
        "ipusubmit": "Desimpedi esta adirije",
        "ipblocklist": "Liste de adirijes de IP e usores impedida",
        "ipblocklist-submit": "Xerca",
+       "infiniteblock": "infinita",
        "blocklink": "impedi",
        "unblocklink": "desimpedi",
        "contribslink": "contribuis",
-       "blocklogpage": "impedi arcivo",
-       "blocklogentry": "impedida [[$1]] con un tempo de fini de $2 $3",
+       "blocklogpage": "Impedi arcivo",
+       "blocklogentry": "impedi [[$1]] per desvalidi a $2 $3",
+       "reblock-logentry": "cambia la impedi de [[$1]] per desvalidi a $2 $3",
        "block-log-flags-nocreate": "crea de contas descapasida",
-       "proxyblocker": "Proxy blocker",
+       "proxyblocker": "Blocador de proxis",
        "move-page-legend": "Move paje",
        "movepagetext": "Usa la forma a su va cambia la nom de un paje, e va move tota se istoria a la nom nova.\nLa titulo vea va deveni un paje de redirije a la titulo nova.\nLias a la titulo de la paje vea no va es cambiada;\nTu debe vide serta ce es redirijes duple o rompeda.\nTu es respondable per es serta ce la lias va continua vade a la locas intendeda.\n\nNota ce la paje '''no''' va es moveda si es ja un paje a la titulo nova, sin el es vacua o un redirije e no ave un istoria de editas presedente.\nEsta sinifia ce tu pote cambia la nom de un paje a la loca presedente si tu era, e tu no pote scrive supra un paje ce esiste ja.\n\n'''AVISA!'''\nEsta pote es un cambia dramos e nonespetada per un paje poplal;\nper favore, es serta ce tu comprende la resulta de esta ata ante tu continua.",
        "movepagetalktext": "La paje de discuta de esta paje va es moveda automatica con el '''eseta si:'''\n*Un paje de discuta ce no es vacua esiste ja su la nom nova, o\n*Tu cambia la indica en la caxa su.\n\nEn esta casos, tu va nesesa move o fusa la paje per mano, si desirada.",
        "movepage-moved": "'''\"$1\" ia es moveda a \"$2\"'''",
        "articleexists": "Un paje con acel nom esiste ja, o la nom ce tu ia eleje no es un nom legal. Per favore, eleje un otra nom.",
        "movetalk": "Move la paje de discutes ance",
-       "movelogpage": "Move arcive",
+       "movelogpage": "Move arcivo",
        "movelogpagetext": "A su es un lista de pajes moveda",
        "movereason": "Razona:",
        "revertmove": "retro",
        "tooltip-pt-userpage": "{{GENDER:|Tua}} page de usor",
        "tooltip-pt-mytalk": "{{GENDER:|Tua}} paje de discutes",
        "tooltip-pt-preferences": "{{GENDER:|Tua}} preferes",
-       "tooltip-pt-watchlist": "La lista de pajes ce tu oserva per cambias",
-       "tooltip-pt-mycontris": "Lista de tua contribuis",
-       "tooltip-pt-login": "Nos preferi si tu sinia per entra, ma tu es no obligada.",
-       "tooltip-pt-logout": "Sinia per retira",
-       "tooltip-pt-createaccount": "Tu es corajida per crea un conta e identifia se; an si, esta no es obligante",
-       "tooltip-ca-talk": "Discute de la paje de contenis",
+       "tooltip-pt-watchlist": "Un lista de pajes cual tu monitori per cambias",
+       "tooltip-pt-mycontris": "Un lista de tua contribuis",
+       "tooltip-pt-login": "Nos prefere ce tu identifia tu, ma esta no es no obligante",
+       "tooltip-pt-logout": "Desidentifia",
+       "tooltip-pt-createaccount": "Nos recomenda ce tu crea un conta e identifia tu, ma esta no es obligante",
+       "tooltip-ca-talk": "Discute de la paje de contenida",
        "tooltip-ca-edit": "Edita esta paje",
        "tooltip-ca-addsection": "Inisia un sesion nova",
-       "tooltip-ca-viewsource": "Esta paje es protejeda. Tu pote vide se orijin.",
+       "tooltip-ca-viewsource": "Esta paje es protejeda. Tu pote regarda sua fonte",
        "tooltip-ca-history": "Revisas pasada de esta paje",
        "tooltip-ca-protect": "Proteje esta paje",
        "tooltip-ca-delete": "Sutrae esta paje",
        "tooltip-ca-move": "Move esta paje",
-       "tooltip-ca-watch": "Junta esta paje a tu lista de pajes oservada",
-       "tooltip-ca-unwatch": "Sutrae esta paje de tu lista de pajes oservada",
+       "tooltip-ca-watch": "Ajunta esta paje a tua lista de pajes monitorida",
+       "tooltip-ca-unwatch": "Sutrae esta paje de tua lista de pajes monitorida",
        "tooltip-search": "Xerca {{SITENAME}}",
-       "tooltip-search-go": "Vade a un paje con esta nom esata, si lo esiste",
-       "tooltip-search-fulltext": "MediaWiki:Tooltip-xerca-testoplen/lfn",
-       "tooltip-p-logo": "Visita la paje prima",
-       "tooltip-n-mainpage": "Visita la paje prima",
-       "tooltip-n-mainpage-description": "Visita la paje prima",
-       "tooltip-n-portal": "De la projeta, ce tu pote fa, do tu pote trova cosas",
-       "tooltip-n-currentevents": "Trova informa presedente de avenis nova",
-       "tooltip-n-recentchanges": "La lista de cambias resente en la vici.",
-       "tooltip-n-randompage": "Carga un paje acaso",
+       "tooltip-search-go": "Vade a un paje con esata esta nom si lo esiste",
+       "tooltip-search-fulltext": "Xerca esta testo en la pajes",
+       "tooltip-p-logo": "Visita la paje xef",
+       "tooltip-n-mainpage": "Visita la paje xef",
+       "tooltip-n-mainpage-description": "Visita la paje xef",
+       "tooltip-n-portal": "Sur la projeta, la modos de aida e la locas de cosas",
+       "tooltip-n-currentevents": "Trova informa fondal sur avenis corente",
+       "tooltip-n-recentchanges": "Un lista de cambias resente en la vici",
+       "tooltip-n-randompage": "Visita un paje acaso",
        "tooltip-n-help": "La loca per descovre.",
-       "tooltip-t-whatlinkshere": "Lista de tota pajes de vici ce lia a asi",
-       "tooltip-t-recentchangeslinked": "Cambia resente en pajes liada de esta paje",
-       "tooltip-feed-atom": "Enflue de atom per esta paje",
-       "tooltip-t-contributions": "Vide la lista de contribuis de {{GENDER:$1|esta usor}}",
+       "tooltip-t-whatlinkshere": "Un lista de tota pajes de vici cual lia a esta paje",
+       "tooltip-t-recentchangeslinked": "Cambias resente en pajes a cual esta paje lia",
+       "tooltip-feed-atom": "Flue Atom per esta paje",
+       "tooltip-t-contributions": "Un lista de contribuis par {{GENDER:$1|esta usor}}",
        "tooltip-t-emailuser": "Envia un e-posta a {{GENDER:$1|esta usor}}",
-       "tooltip-t-upload": "Envia fixes",
-       "tooltip-t-specialpages": "Lista de tota pajes spesial",
+       "tooltip-t-upload": "Carga fixes",
+       "tooltip-t-specialpages": "Un lista de tota pajes spesial",
        "tooltip-t-print": "Varia primable de esta paje",
        "tooltip-t-permalink": "Lias permanente a esta revisa de la paje",
-       "tooltip-ca-nstab-main": "Vide la paje de contenis",
-       "tooltip-ca-nstab-user": "Vide la paje de usor",
-       "tooltip-ca-nstab-special": "Esta es un paje special, e no pote es editada.",
-       "tooltip-ca-nstab-project": "Vide la paje de la projeta",
-       "tooltip-ca-nstab-image": "Vide la paje de fix",
-       "tooltip-ca-nstab-mediawiki": "Vide la mesaje de sistem",
-       "tooltip-ca-nstab-template": "Mostra la model",
+       "tooltip-ca-nstab-main": "Mostra la paje de contenida",
+       "tooltip-ca-nstab-user": "Mostra la paje de usor",
+       "tooltip-ca-nstab-special": "Esta es un paje special e on no pote edita lo.",
+       "tooltip-ca-nstab-project": "Mostra la paje de projeta",
+       "tooltip-ca-nstab-image": "Mostra la paje de fix",
+       "tooltip-ca-nstab-mediawiki": "Mostra la mesaje de sistem",
+       "tooltip-ca-nstab-template": "Mostra la stensil",
        "tooltip-ca-nstab-help": "Vide la paje de aida",
-       "tooltip-ca-nstab-category": "Vide la paje de la categoria",
-       "tooltip-minoredit": "Indica ce esta es un edita minor",
+       "tooltip-ca-nstab-category": "Mostra la paje de categoria",
+       "tooltip-minoredit": "Marca esta como un edita minor",
        "tooltip-save": "Fisa tu cambias",
-       "tooltip-preview": "Previde tu cambias; per favore usa esta ante fisa!",
-       "tooltip-diff": "Mostra tu cambias de la testo.",
-       "tooltip-compareselectedversions": "Vide la diferes entre la du varias elejeda de esta paje.",
-       "tooltip-watch": "Junta esta paje a tu lista de pajes oservada",
-       "tooltip-rollback": "\"Rollback\" reverts the last contributor's edit(s) to this page in one click\n\n\"Reversa\" reversa la edita o editas a esta paje par la contribuor presedente con un clica",
-       "tooltip-undo": "\"Desfa\" reversa esta edita e abri la forma de edita en la modo de previde. Lo permete la ajunta de un razona en la resoma.",
-       "tooltip-summary": "Entra un resoma corta",
+       "tooltip-preview": "Previde tua cambias. Usa esta ante fisa, per favore.",
+       "tooltip-diff": "Mostra la cambias cual tu ia fa a la testo.",
+       "tooltip-compareselectedversions": "Regarda la diferes entre la du revisas elejeda de esta paje.",
+       "tooltip-watch": "Ajunta esta paje a tua lista de pajes monitorida",
+       "tooltip-rollback": "\"Reversa\" desfa direta la edita(s) par la contribuor la plu resente a esta paje",
+       "tooltip-undo": "\"Desfa\" reversa esta edita e abri la formulario de edita en moda de previde, permetente ajunta un razona en la resoma.",
+       "tooltip-summary": "Ajunta un resoma corta",
        "others": "otras",
-       "simpleantispam-label": "Proba anti-spam.\n<strong>No</strong> completa esta!",
+       "simpleantispam-label": "Antispam. <strong>No</strong> completi esta!",
        "pageinfo-title": "Informa per \"$1\"",
        "pageinfo-header-basic": "Informa fundal",
        "pageinfo-header-edits": "Edita la istoria",
-       "pageinfo-header-restrictions": "Cambia la proteje",
-       "pageinfo-header-properties": "Proprias de la paje",
+       "pageinfo-header-restrictions": "Proteje de paje",
+       "pageinfo-header-properties": "Proprias de paje",
        "pageinfo-display-title": "Mostra la titulo",
-       "pageinfo-default-sort": "Default sort key",
+       "pageinfo-default-sort": "Clave de ordina implicada",
        "pageinfo-length": "Longia de paje (en baites)",
-       "pageinfo-article-id": "Carta de identia de la paje",
-       "pageinfo-language": "Lingua de la paje de contenidas",
-       "pageinfo-content-model": "Model de la paje de contenidas",
-       "pageinfo-robot-policy": "Catalogo par robotes",
+       "pageinfo-article-id": "Numero de paje",
+       "pageinfo-language": "Lingua de contenida de paje",
+       "pageinfo-content-model": "Model de contenida de paje",
+       "pageinfo-robot-policy": "Catalogi par robotes",
        "pageinfo-robot-index": "Permeteda",
-       "pageinfo-watchers": "Numeros de oservores de paje",
-       "pageinfo-few-watchers": "Min ca $1 {{PLURAL:$1|oservor|oservores}}",
-       "pageinfo-redirects-name": "Numero de redirijes a esta paje",
-       "pageinfo-subpages-name": "Numero de supajes de esta paje",
+       "pageinfo-robot-noindex": "Proibida",
+       "pageinfo-watchers": "Cuantia de usores ci monitori esta paje",
+       "pageinfo-few-watchers": "Min ca $1 {{PLURAL:$1|usor|usores}} monitorinte",
+       "pageinfo-redirects-name": "Cuantia de redirijes a esta paje",
+       "pageinfo-subpages-name": "Cuantia de supajes de esta paje",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|redirije|redirijes}}; $3 {{PLURAL:$3|nonredirije|nonredirijes}})",
        "pageinfo-firstuser": "Creor de paje",
-       "pageinfo-firsttime": "Data de crea de la paje",
-       "pageinfo-lastuser": "Editor la plu nova",
-       "pageinfo-lasttime": "Data de la ultima edita",
-       "pageinfo-edits": "Numero total de editas",
-       "pageinfo-authors": "Numero total de autores diferente",
-       "pageinfo-recent-edits": "Numero resente de editas (en la pasada $1)",
-       "pageinfo-recent-authors": "Numero total de autores diferente",
-       "pageinfo-magic-words": "{{PLURAL:$1|parola|parolas}} majial ($1)",
+       "pageinfo-firsttime": "Data de crea de paje",
+       "pageinfo-lastuser": "Contribuor la plu nova",
+       "pageinfo-lasttime": "Data de la edita la plu resente",
+       "pageinfo-edits": "Cuantia intera de editas",
+       "pageinfo-authors": "Cuantia intera de autores individua",
+       "pageinfo-recent-edits": "Cuantia de editas resente (en la $1 pasada)",
+       "pageinfo-recent-authors": "Cuantia de autores individua resente",
+       "pageinfo-magic-words": "{{PLURAL:$1|parola|parolas}} majiosa ($1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Categoria|Categorias}} ascondeda ($1)",
-       "pageinfo-templates": "Transcluded {{PLURAL:$1|template|templates}} ($1)",
+       "pageinfo-templates": "{{PLURAL:$1|stensil|stensiles}} transcluida ($1)",
        "pageinfo-toolboxlink": "Informa de paje",
-       "pageinfo-contentpage": "Contada como paje de contenidas",
+       "pageinfo-contentpage": "Tratada como paje de contenida",
        "pageinfo-contentpage-yes": "Si",
-       "patrol-log-page": "Patrol log",
-       "previousdiff": "← Difere plu vea",
-       "nextdiff": "Difere plu nova →",
+       "patrol-log-page": "Arcivo de patrulias",
+       "previousdiff": "← Edita plu vea",
+       "nextdiff": "Edita plu nova →",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|paje|pajes}}",
-       "file-info-size": "$1 × $2 pixel, grandia de fix: $3, MIME tipo: $4",
-       "file-info-size-pages": "$1 × $2 pixels, file size: $3, MIME type: $4, $5 {{PLURAL:$5|paje|pajes}}",
-       "file-nohires": "No plu densia posable.",
-       "svg-long-desc": "SVG fix, per nom $1 × $2 pixeles, grandia de fix: $3",
-       "show-big-image": "Arcivo orijinal",
+       "file-info-size": "$1 × $2 pixeles, grandia de fix: $3, tipo MIME: $4",
+       "file-info-size-pages": "$1 × $2 pixeles, grandia de fix: $3, tipo MIME: $4, $5 {{PLURAL:$5|paje|pajes}}",
+       "file-nohires": "No densia plu alta es disponable.",
+       "svg-long-desc": "fix svg, densia: $1 × $2 pixeles, grandia: $3",
+       "show-big-image": "Fix orijinal",
        "show-big-image-preview": "Grandia de esta previde: $1",
        "show-big-image-other": "Otra {{PLURAL:$2|densia|densias}}: $1.",
        "show-big-image-size": "$1 × $2 pixeles",
        "newimages": "Imajes nova",
        "ilsubmit": "Xerca",
        "bad_image_list": "La forma es la seguente:\n\nSola linias de un lista (ce comensa con *) es considerada.\nLa lia prima a la linia nesesa es un lia a un mal fix.\nCada lias seguente a la mesma linia es considerada es esetas, ce es, la pajes do la fix pote aveni enlinia.",
-       "metadata": "Metadata",
-       "metadata-help": "Esta fix conteni plu informa, posable juntada de un camera dijital o un scanador usada per crea o dijiti el.\nSi la fix ia es cambiada de se stato orijinal, alga detalias pote no es clara en la fix cambiada.",
+       "metadata": "Metadatos",
+       "metadata-help": "Esta fix conteni plu informa, posable ajuntada de la camera o scanador usada per crea o dijitali lo.\nSi la fix ia cambia de sua state orijinal, cisa alga detalias no pertine bon a la fix cambiada.",
        "metadata-expand": "Mostra detalias estendente",
        "metadata-collapse": "Asconde detalias estendeda",
-       "metadata-fields": "Campos de EXIF metadata listada en esta mesaje va es incluida cuando la table de metadata es minimida.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "Metadatos de imaje listada en esta mesaje va es incluida cuando la table de metadatos es minimida.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-orientation": "Orienta",
        "exif-xresolution": "Densia orizonal",
        "exif-yresolution": "Densia vertical",
        "exif-datetime": "Data e ora de cambia de fix",
        "exif-make": "Fabricor de camera",
        "exif-model": "Model de camera",
-       "exif-software": "Programas usada",
+       "exif-software": "Program usada",
        "exif-exifversion": "Varia de Exif",
        "exif-colorspace": "Spasio de color",
        "exif-datetimeoriginal": "Data e ora de jenera de datos",
        "confirm_purge_button": "Oce",
        "imgmultipagenext": "paje seguente →",
        "imgmultigo": "Vade!",
-       "imgmultigoto": "Vade a la paje $1",
-       "watchlisttools-clear": "Clari la lista de oserva.",
-       "watchlisttools-view": "Vide cambias pertinente",
-       "watchlisttools-edit": "Vide e edita la lista de pajes oservada",
-       "watchlisttools-raw": "Edita la lista rua de pajes oservada",
+       "imgmultigoto": "Vade a paje $1",
+       "watchlisttools-clear": "Vacui la lista de pajes monitorida.",
+       "watchlisttools-view": "Mostra cambias pertinente",
+       "watchlisttools-edit": "Mostra e edita la lista de pajes monitorida",
+       "watchlisttools-raw": "Edita la lista cru de pajes monitorida",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discute]])",
        "version": "Varia",
        "version-version": "($1)",
-       "redirect": "Redirijeda par arcivo, suor, paje, revisa, o carta de identia per identifia se",
+       "redirect": "Redirije par fix, usor, paje, revisa o numero de arcivo",
+       "redirect-summary": "Esta paje spesial redirije a un fix (si on spesifa un nom), un paje (si on spesifa un numero de revisa o de paje), un paje de usor (si on spesida un numero de usor), o un article de arcivo (si on spesifia un numero). Esemplos: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], or [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Vade",
-       "redirect-lookup": "Lookup:",
+       "redirect-lookup": "Trova:",
        "redirect-value": "Valua:",
-       "redirect-user": "Carta de identia de la usor",
-       "redirect-page": "Carta de identia de la paje",
-       "redirect-revision": "Revisa de la paje",
-       "redirect-file": "Nom de arcivo",
+       "redirect-user": "Numero de usor",
+       "redirect-page": "Numero de paje",
+       "redirect-revision": "Revisa de paje",
+       "redirect-file": "Nom de fix",
        "fileduplicatesearch-submit": "Xerca",
        "specialpages": "Pajes spesial",
-       "tag-filter": "Filtre de [[Special:Tags|eticeta]]:",
-       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
+       "tag-filter": "Filtro par [[Special:Tags|eticeta]]:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Eticeta|Eticetas}}]]: $2)",
        "tags-active-yes": "Si",
        "tags-active-no": "No",
        "tags-hitcount": "$1 {{PLURAL:$1|cambia|cambias}}",
-       "logentry-delete-delete": "$1 {{GENDER:$2|sutraeda}} paje $3",
-       "logentry-delete-restore": "$1 {{GENDER:$2|reponeda}} paje $3 ($4)",
-       "logentry-delete-revision": "$1 {{GENDER:$2|ia cambia}} vidablia de {{PLURAL:$5|un revisa|$5 revisas}} en la paje $3: $4",
+       "logentry-delete-delete": "$1 {{GENDER:$2|sutrae}} paje $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|restora}} paje $3 ($4)",
+       "logentry-delete-revision": "$1 {{GENDER:$2|cambia}} la vidablia de {{PLURAL:$5|un revisa|$5 revisas}} en paje $3: $4",
        "revdelete-content-hid": "contenida ascondeda",
-       "logentry-move-move": "$1 {{GENDER:$2|moveda}} paje $3 a $4",
-       "logentry-move-move-noredirect": "$1 {{GENDER:$2|ia move}} la paje $3 a $4 sin lasa un redirije",
-       "logentry-move-move_redir": "$1 {{GENDER:$2|ia move}} la paje $3 a $4 per redirije",
-       "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|ia marca}} revisa de forma automata $4 de paje $3 patruliada",
+       "logentry-move-move": "$1 {{GENDER:$2|move}} paje $3 a $4",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|move}} la paje $3 a $4 sin lasa un redirije",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|move}} la paje $3 a $4 con redirije",
+       "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|marca}} automata la revisa $4 de paje $3 como patruliada",
        "logentry-newusers-create": "Conta de usor $1 ia es {{GENDER:$2|creada}}",
-       "logentry-newusers-autocreate": "La conta de usor $1 ia es {{GENDER:$2|creada}} direta",
-       "logentry-upload-upload": "$1 {{GENDER:$2|cargada}} $3",
-       "logentry-upload-overwrite": "$1 {{GENDER:$2|ia carga}} un varia nova de $3",
+       "logentry-newusers-autocreate": "Conta de usor $1 es automata {{GENDER:$2|creada}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|carga}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|carga}} un varia nova de $3",
        "searchsuggest-search": "Xerca {{SITENAME}}",
        "duration-days": "$1 {{PLURAL:$1|dia|dias}}",
        "expand_templates_ok": "Oce",
-       "randomrootpage": "Paje radis acaso"
+       "randomrootpage": "Paje acaso de radis"
 }
index bb0588a..0b5e469 100644 (file)
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (taip pat žiūrėkite [[Special:NewPages|naujausių straipsnių sąrašą]])",
        "recentchanges-submit": "Rodyti",
        "rcfilters-activefilters": "Aktyvūs filtrai",
-       "rcfilters-quickfilters": "Išsaugoti filtro nustatymai",
+       "rcfilters-advancedfilters": "Detalūs filtrai",
+       "rcfilters-quickfilters": "Išsaugoti filtrai",
        "rcfilters-quickfilters-placeholder-title": "Nėra išsaugotų nuorodų",
        "rcfilters-savedqueries-defaultlabel": "Išsaugoti filtrai",
        "rcfilters-savedqueries-rename": "Pervadinti",
        "rcfilters-savedqueries-unsetdefault": "Pašalinti kaip numatytą",
        "rcfilters-savedqueries-remove": "Pašalinti",
        "rcfilters-savedqueries-new-name-label": "Pavadinimas",
+       "rcfilters-savedqueries-new-name-placeholder": "Apibūdinkite šio filtro tikslą.",
        "rcfilters-savedqueries-apply-label": "Išsaugoti nustatymus",
        "rcfilters-savedqueries-cancel-label": "Atšaukti",
        "rcfilters-savedqueries-add-new-title": "Išsaugoti dabartinius filtro nustatymus",
        "rcfilters-filter-logactions-label": "Įrašyti veiksmai",
        "rcfilters-filter-lastrevision-description": "Naujausias puslapio keitimas.",
        "rcfilters-filter-previousrevision-description": "Visi keitimai, kurie nėra naujausi puslapio keitimai.",
+       "rcfilters-view-tags": "Pažymėti keitimai",
        "rcnotefrom": "Žemiau yra {{PLURAL:$5|pakeitimas|pakeitimai}} pradedant <strong>$3, $4</strong> (rodoma iki <strong>$1</strong> pakeitimų).",
        "rclistfromreset": "Nustatyti duomenų pasirinkimą iš naujo",
        "rclistfrom": "Rodyti naujus pakeitimus pradedant $3 $2",
        "pageid": "puslapio ID $1",
        "rawhtml-notallowed": "&lt;html&gt; negali būti naudojamos ne normaliuose puslapiuose.",
        "gotointerwiki": "Išeinama iš {{SITENAME}}",
-       "gotointerwiki-invalid": "Nurodytas pavadinimas negalimas."
+       "gotointerwiki-invalid": "Nurodytas pavadinimas negalimas.",
+       "pagedata-bad-title": "Negalimas pavadinimas: $1."
 }
index d5775fe..fd48e9a 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": "ഉപകരണങ്ങൾ",
-       "userpage": "ഉപയോക്താവിന്റെ താൾ കാണുക",
-       "projectpage": "പദ്ധതി താൾ കാണുക",
        "imagepage": "പ്രമാണ താൾ കാണുക",
        "mediawikipage": "സന്ദേശങ്ങളുടെ താൾ കാണുക",
        "templatepage": "ഫലകം താൾ കാണുക",
        "searchrelated": "ബന്ധപ്പെട്ടവ",
        "searchall": "എല്ലാം",
        "showingresults": "'''$2''' മുതലുള്ള {{PLURAL:$1|'''ഒരു''' ഫലം|'''$1''' ഫലങ്ങൾ}} താഴെ പ്രദർശിപ്പിക്കുന്നു.",
-       "showingresultsinrange": "#<strong>$2</strong> മുതൽ #<strong>$3</strong> വരെയുള്ള പരിധിയിലെ {{PLURAL:$1|<strong>ഒരു</strong> ഫലം|<strong>$1</strong> ഫലങ്ങൾ}} താഴെ പ്രദർശിപിക്കുന്നു.",
+       "showingresultsinrange": "#<strong>$2</strong> à´®àµ\81തൽ #<strong>$3</strong> à´µà´°àµ\86à´¯àµ\81à´³àµ\8dà´³ à´ªà´°à´¿à´§à´¿à´¯à´¿à´²àµ\86 {{PLURAL:$1|<strong>à´\92à´°àµ\81</strong> à´«à´²à´\82|<strong>$1</strong> à´«à´²à´\99àµ\8dà´\99ൾ}} à´¤à´¾à´´àµ\86 à´ªàµ\8dരദർശിപàµ\8dപിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81.",
        "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> ഫലത്തിൽ<strong>$1</strong>|<strong>$3</strong> ഫലത്തിൽ <strong>$1 മുതൽ $2</strong> വരെയുള്ളവ}}",
        "search-nonefound": "താങ്കൾ തിരഞ്ഞ പദത്തിനു യോജിച്ച ഫലങ്ങളൊന്നും ലഭിച്ചില്ല.",
        "search-nonefound-thiswiki": "ഈ അന്വേഷണത്തിനു യോജിച്ച ഫലങ്ങളൊന്നും ഈ സൈറ്റിൽ നിന്നും ലഭിച്ചില്ല.",
index 1db91d1..5fcbb66 100644 (file)
        "logentry-protect-move_prot": "$1 {{GENDER:$2|flytte}} verneinnstillingar frå $4 til $3",
        "logentry-protect-unprotect": "$1 {{GENDER:$2|fjerna}} vern av $3",
        "logentry-protect-protect": "$1 {{GENDER:$2|verna}} $3 $4",
+       "logentry-protect-modify": "$1 {{GENDER:$2|endra}} vernenivå for $3 $4",
+       "logentry-protect-modify-cascade": "$1 {{GENDER:$2|endra}} vernenivå for $3 $4 [djupvern]",
        "logentry-rights-rights": "$1 {{GENDER:$2|endra}} gruppemedlemskap for $3 frå $4 til $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|endra}} gruppemedlemskap for $3",
        "logentry-rights-autopromote": "$1 vart automatisk {{GENDER:$2|forfremja}} frå $4 til $5",
index 336e6e8..23a2229 100644 (file)
        "post-expand-template-inclusion-warning": "Uwaga – zbyt duża wielkość wykorzystanych szablonów.\nNiektóre szablony nie zostaną użyte.",
        "post-expand-template-inclusion-category": "Strony, w których przekroczone jest ograniczenie wielkości użytych szablonów",
        "post-expand-template-argument-warning": "Uwaga – strona zawiera co najmniej jeden argument szablonu, który po rozwinięciu jest zbyt duży.\nArgument ten będzie pominięty.",
-       "post-expand-template-argument-category": "Strony, w których użyto szablon z pominięciem argumentów",
+       "post-expand-template-argument-category": "Strony, w których użyto szablonu z pominięciem argumentów",
        "parser-template-loop-warning": "Wykryto pętlę w szablonie [[$1]]",
        "template-loop-category": "Strony z pętlami szablonów",
        "template-loop-category-desc": "Strona zawiera pętlę szablonów, czyli szablon, który wywołuje sam siebie rekursywnie.",
index 9eef1dc..e1e9079 100644 (file)
        "compareselectedversions": "cumparegliar las versiuns selecziunadas",
        "showhideselectedversions": "Mussar/zuppentar las versiuns tschernidas",
        "editundo": "revocar",
+       "diff-empty": "(negina differenza)",
        "diff-multi-manyusers": "({{PLURAL:$1|Ina versiun|$1 versiuns}} tranteren da dapli che $2 {{PLURAL:$2|utilisader|utilisaders}} na vegn betg mussada)",
        "difference-missing-revision": "{{PLURAL:$2|Ina versiun|$2 versiuns}} da questa differenza ($1) {{PLURAL:$2|n'è betg vegnida chattada|n'èn betg vegnidas chattadas}}.\n\nPer ordinari vegn quai chaschunà dad ina colliaziun da diff antiquada ad ina pagian ch'è vegnida stizzada. \nDetagls pon vegnir chattads en il [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protocol da stizzar].",
        "searchresults": "Resultats da tschertga",
        "searchprofile-advanced-tooltip": "Tschertgar en ulteriurs tips da pagina",
        "search-result-size": "$1 ({{PLURAL:$2|in pled|$2 pleds}})",
        "search-result-category-size": "{{PLURAL:$1|1 commember|$1 commembers}} ({{PLURAL:$2|1 sutcategoria|$2 sutcategorias}}, {{PLURAL:$3|1 datoteca|$3 datotecas}})",
-       "search-redirect": "(renvià da $1)",
+       "search-redirect": "(renviament da $1)",
        "search-section": "(chapitel $1)",
        "search-suggest": "Has ti manegià: $1",
        "search-interwiki-caption": "Projects sumegliants",
        "tooltip-pt-anonuserpage": "La pagina d'utilisader per l'adressa IP cun la quala che ti fas modificaziuns",
        "tooltip-pt-mytalk": "Mussar {{GENDER:|tia}} pagina da discussiun",
        "tooltip-pt-anontalk": "Discussiun davart modificaziuns che derivan da questa adressa dad IP",
-       "tooltip-pt-preferences": "mias preferenzas",
+       "tooltip-pt-preferences": "{{GENDER:|tias}} preferenzas",
        "tooltip-pt-watchlist": "La glista da las paginas da las qualas jau observ las midadas",
-       "tooltip-pt-mycontris": "Mussar la glista da tut tias contribuziuns",
+       "tooltip-pt-mycontris": "Mussar la glista da tut {{GENDER:|tias}} contribuziuns",
        "tooltip-pt-login": "I fiss bun sche ti s'annunziassas, ti na stos dentant betg.",
        "tooltip-pt-logout": "Sortir",
        "tooltip-ca-talk": "Discussiuns davart il cuntegn da l'artitgel",
        "tooltip-feed-rss": "RSS feed per questa pagina",
        "tooltip-feed-atom": "Atom feed per questa pagina",
        "tooltip-t-contributions": "Mussar las contribuziuns da {{GENDER:$1|quest utilisader}}",
-       "tooltip-t-emailuser": "Trametter in e-mail a quest utilisader",
+       "tooltip-t-emailuser": "Trametter in e-mail a {{GENDER:$1|quest utilisader}}",
        "tooltip-t-upload": "Chargiar si datotecas",
        "tooltip-t-specialpages": "Glista da tut las paginas spezialas",
        "tooltip-t-print": "Versiun per stampar da questa pagina",
        "version-entrypoints": "URLs dals puncts d'entrada",
        "version-entrypoints-header-entrypoint": "Punct d'entrada",
        "version-entrypoints-header-url": "URL",
+       "redirect-file": "Num da datoteca",
        "fileduplicatesearch": "Tschertgar datotecas dublas",
        "fileduplicatesearch-summary": "Tschertgar datotecas dublas a basa da valurs da hash.",
        "fileduplicatesearch-filename": "Num da datoteca:",
        "tags-display-header": "Num sin la glista da modificaziuns",
        "tags-description-header": "Descripziun cumpletta da la muntada",
        "tags-hitcount-header": "Modificaziuns signalisadas",
+       "tags-active-yes": "Gea",
+       "tags-active-no": "Na",
        "tags-edit": "modifitgar",
        "tags-hitcount": "$1 {{PLURAL:$1|midada|midadas}}",
        "comparepages": "Cumparegliar paginas",
index 1975137..29c245f 100644 (file)
        "move-leave-redirect": "Lasse 'nu ridirezionamende rréte",
        "protectedpagemovewarning": "'''Attenziò:''' Sta pàgene ha state bloccate accussì sulamende l'utinde cu le deritte d'amministratore 'a ponne spustà.\nL'urteme archivije de le trasute ha state mise aqquà sotte pe referimende:",
        "semiprotectedpagemovewarning": "'''Vide Bbuène:''' Sta pàgene ha state blocchete accussì sulamende l'utinde reggistrate 'a ponne spustà.\nL'urteme archivije de le trasute ha state mise aqquà sotte pe referimende:",
-       "move-over-sharedrepo": "== 'U file esiste ==\n[[:$1]] esiste sus a 'n'archivie condivise. Spustanne 'u file sus a stu titele tu vè sovrascrive 'u file condivise.",
+       "move-over-sharedrepo": "[[:$1]] esiste sus a 'n'archivie condivise. Spustanne 'u file sus a stu titole vèje a sovrascrive 'u file condivise.",
        "file-exists-sharedrepo": "'U nome d'u file ca è scacchiate jè già ausate sus a 'n'archivie condivise.\nPe piacere scacchiene 'notre.",
        "export": "Pàggene esportete",
        "exporttext": "Tu puè esportà 'u teste e cangià 'a storie de 'na particolare pàgene o 'n'inzieme de pàggene ca stonne jndr'à quacche XML.\nQuiste po essere 'mbortate jndr'à 'n'otra uicchi ausanne [[Special:Import|'mborta pàgene]] de MediaUicchi.\n\nPe esportà pàggene, mitte le titele jndr'à scatele de sotte, 'nu titele pe linèe e scacchie ce tu vuè 'a revisiona corrende o tutte le revisiune, ce le linèe d'a storie d'a pàgene, e 'a revisione corrende cu le 'mbormaziune sus a l'urteme cangiamende.\n\nCumme urteme case, tu puè pure ausà 'nu collegamende, pe esembie [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] pa pàgene \"[[{{MediaWiki:Mainpage}}]]\".",
index 1d98160..0acabaf 100644 (file)
        "nimagelinks": "$1 {{PLURAL:$1|сирэйгэ|ахсааннаах сирэйгэ}} туттуллар",
        "ntransclusions": "$1 {{PLURAL:$1|сирэйгэ|ахсааннаах сирэйгэ}} туттуллар",
        "specialpage-empty": "Көрдөөн тугу да булбата.",
-       "lonelypages": "Ð\90Ñ\82Ñ\8bн Ñ\81иÑ\80Ñ\8dйдÑ\8dÑ\80и ÐºÑ\8bÑ\82Ñ\82а Ñ\81ибÑ\8dÑ\8dÒ»Ñ\8d Ñ\81Ñ\83ох сирэйдэр",
+       "lonelypages": "ТÑ\83лаайах сирэйдэр",
        "lonelypagestext": "Манна көстөр сирэйдэргэ {{SITENAME}} атын сирэйдэрэ сигэммэттэр.",
        "uncategorizedpages": "Ханнык да категорияҕа киирбэтэх сирэйдэр",
        "uncategorizedcategories": "Ханнык да категорияҕа киирбэтэх категориялар",
index 1969077..368e648 100644 (file)
@@ -44,7 +44,7 @@
        "tog-diffonly": "Ad ur tml may illan ɣ tisniwin, ml ɣir mattnt isnaḥyan",
        "tog-showhiddencats": "sbaynd tsnifat ihbanin",
        "tog-norollbackdiff": "hiyd lfarq baad lqiyam bstirjaa",
-       "underline-always": "dima",
+       "underline-always": "ⴷⵉⵎⴰ",
        "underline-never": "ⵊⵊⵓ",
        "underline-default": "ala hssad regalhe n lmotasaffih",
        "editfont-style": "lkht n lmintaqa nthrir",
        "pagetitle": "$1 - {{SITENAME}}",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "retrievedfrom": "Yurrid z \"$1\"",
-       "youhavenewmessages": "Illa dark $1 ($2).",
+       "youhavenewmessages": "{{PLURAL:$3|{{GENDER:$3|ⴷⴰⵔⴽ|ⴷⴰⵔⵎ}}}} $1 ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|ⵜⵓⵣⵉⵏⵜ ⵜⴰⵎⴰⵢⵏⵓⵜ|ⵜⵓⵣⵉⵏⵉⵏ ⵜⵉⵎⴰⵢⵏⵓⵜⵉⵏ}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|ⴰⵙⵏⴼⵍ ⵉⴳⴳⵯⵔⴰⵏ|ⵉⵙⵏⴼⵍⵏ ⴳⴳⵯⵔⴰⵏⵉⵏ}}",
-       "youhavenewmessagesmulti": "Dark tibratin timaynutin ɣ $1",
+       "youhavenewmessagesmulti": "{{GENDER:|ⴷⴰⵔⴽ|ⴷⴰⵔⵎ}} ⵜⵓⵣⵉⵏⵉⵏ ⵜⵉⵎⴰⵢⵏⵓⵜⵉⵏ ⴳ $1",
        "editsection": "ⵙⵏⴼⵍ",
        "editold": "ⵙⵏⴼⵍ",
        "viewsourceold": "Mel aɣbalu",
        "confirmable-no": "ⵓⵀⵓ",
        "thisisdeleted": "Mel niɣd rard $1?",
        "viewdeleted": "Mel $1?",
-       "restorelink": "{{PLURAL:$1|Ambddel lli imḥin|imbddel lli imḥin}}",
+       "restorelink": "{{PLURAL:$1|ⵢⴰⵏ ⵓⵙⵏⴼⵍ ⵉⵜⵜⵡⴰⴽⴽⵙⵏ|imbddel lli imḥin}}",
        "feedlinks": "ⵉⴼⵉⵍⵉ:",
        "feed-invalid": "Anaw n usurdm ur gis iffuy umya",
        "feed-unavailable": "Isudmn ur llanin ɣil",
        "nstab-help": "ⵜⴰⵙⵏⴰ ⵏ ⵜⵡⵉⵙⵉ",
        "nstab-category": "ⴰⵙⵎⵉⵍ",
        "mainpage-nstab": "ⵜⴰⵙⵏⴰ ⵏ ⵓⵙⵏⵓⴱⴳ",
-       "nosuchaction": "Ur illa mat iskrn",
+       "nosuchaction": "ⵓⵔ ⵜⵍⵍⵉ ⵜⵉⴳⴰⵡⵜ ⴰⴷ",
        "nosuchactiontext": "Mytuskarn ɣu tansa yad ur tti tgi.\n\nIrwas is turit tansa  skra mani yaḍnin, ulla azday ur igi amya.\n\nTzdar attili tamukrist ɣ {{SITENAME}}.",
        "nosuchspecialpage": "ⵓⵔ ⵜⵍⵍⵉ ⵜⴰⵙⵏⴰ ⴰⴷ ⵉⵥⵍⵉⵏ",
        "nospecialpagetext": "<strong>Trit yat tasna tamzlit ur illan.</strong>\n\nTifilit n tasnayin gaddanin ratn taft ɣid [[Special:SpecialPages|{{int:specialpages}}]].",
        "badtitle": "Azwl ur ifulkin",
        "badtitletext": "Azwl n tasna lli trit ur igadda, ixwa, niɣd iga aswl n gr tutlayt niḍ ngr tuwwurins ur izdimzyan. Ẓr urgis tgit kra nu uskkil niɣd mnnaw lli gis ur llanin",
        "viewsource": "Mel iɣbula",
-       "virus-unknownscanner": "antivirus oritwsan",
-       "yourname": "smiyt o-msxdam:",
+       "virus-unknownscanner": "ⴰⵎⴳⵍⴼⵉⵔⵓⵙ ⴰⵔⵓⵙⵙⵉⵏ:",
+       "yourname": "ⵉⵙⵎ ⵏ ⵓⵙⵎⵔⴰⵙ:",
        "yourpassword": "awal iḥdan:",
        "yourpasswordagain": "Зawd ara awal iḥdan:",
        "yourdomainname": "Taɣult nek",
index 7788fc2..d8258da 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": "တူၺ်းၼႃႈလိၵ်ႈ လွၵ်းပိူင်",
        "recentchanges": "မီးလွင်ႈလႅၵ်ႈလၢႆႈပႆႇႁိုင်",
        "recentchanges-legend": "ၵၼ်လိူၵ်ႈသၢင်ႈ လွင်ႈလႅၵ်ႈလၢႆႈဢၼ်ပူၼ်ႉမႃး",
        "recentchanges-summary": "ၸွမ်းတူၺ်းႁွႆး ဢၼ်ပဵၼ်ၵၢၼ် တိုၵ်ႉႁႃလႅၵ်ႈလၢႆႈၵႂႃႇ တွၼ်ႈတႃႇၼႃႈလိၵ်ႈ ဝီႇၶီႇၼႆႉ။",
+       "recentchanges-noresult": "ၼႂ်းၵႃႈၶၢဝ်းယၢမ်း ဢၼ်ပၼ်ဝႆႉ တႃႇၵိုၵ်းတူၺ်း ပိူင်တႅၵ်ႈတႃႇတႅပ်းတတ်းၼၼ်ႉ ဢမ်ႇႁၼ်မီး လွင်ႈလႅၵ်ႈလၢႆႈသင်။",
        "recentchanges-feed-description": "ၸွမ်းတူၺ်းႁွႆး ဢၼ်ပဵၼ်ၵၢၼ် တိုၵ်ႉႁႃလႅၵ်ႈလၢႆႈၵႂႃႇ တွၼ်ႈတႃႇၼႃႈလိၵ်ႈ ဝီႇၶီႇၼႆႉ။",
        "recentchanges-label-newpage": "လွင်ႈမႄးထတ်းဢၼ်ၼႆႉ ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈဢၼ်မႂ်ႇယဝ်ႉ",
        "recentchanges-label-minor": "ပဵၼ်လွင်ႈမႄးထတ်းဢိတ်းဢီႈ",
        "rcfilters-filter-newpages-label": "လွင်ႈၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈ",
        "rcfilters-filter-newpages-description": "မႄးထတ်း ဢၼ်ႁဵတ်းပဵၼ် ၼႃႈလိၵ်ႈဢၼ်မႂ်ႇ",
        "rcfilters-filter-categorization-label": "လႅၵ်ႈလၢႆႈ တွၼ်ႈၵၼ်",
+       "rcnotefrom": "ၽၢႆႇတႂ်ႈ {{PLURAL:$5|ၼႆႉ ပဵၼ်လွင်ႈလႅၵ်ႈလၢႆႈ|ၸိူဝ်းၼႆႉ ပဵၼ်လွင်ႈလႅၵ်ႈလၢႆႈ}} ဝႆႉ ၸဵမ်မိူဝ်ႈ <strong>$3, $4</strong> (တေႃႇထိုင် <strong>$1</strong> ဢၼ်ၼႄဝႆႉ).",
        "rclistfrom": "ၼႄ လွင်ႈ​လႅၵ်ႈလၢႆႈဢၼ်မႂ်ႇ တႄႇတီႈ $2, $3",
        "rcshowhideminor": "$1 လွင်ႈမူၼ်ႉမႄး ဢိတ်းဢီႈ",
        "rcshowhideminor-show": "ၼႄ",
        "rcshowhideanons": "$1 ၽူႈၸႂ်ႉတိုဝ်းဢမ်ႇသႂ်ႇၸိုဝ်ႈ",
        "rcshowhideanons-show": "ၼႄ",
        "rcshowhideanons-hide": "သိူင်ႇ",
+       "rcshowhidepatr": "$1 ၵၢၼ်မႄးထတ်း ဢၼ်ထုၵ်ႇပႂ်ႉတူၺ်း",
        "rcshowhidepatr-show": "ၼႄ",
        "rcshowhidepatr-hide": "သိူင်ႇ",
        "rcshowhidemine": "$1 ဢၼ်ၵဝ်ၶႃႈ မူၼ်ႉမႄး",
        "notargettitle": "ဢမ်ႇမီး တီႈယိူင်း",
        "notargettext": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇလႆႈမၵ်းမၼ်ႈဝႆႉ ၼႃႈလိၵ်ႈတီႈယိူင်း ဢမ်ႇၼၼ် ၽူႈၸႂ်ႉတိုဝ်း တွၼ်ႈတႃႇႁဵတ်း ၼႃႈၵၢၼ်ၼႆႉ။",
        "nopagetitle": "ဢမ်ႇမီး ၼႃႈလိၵ်ႈ တီႈယိူင်းၸူး",
+       "pager-newer-n": "{{PLURAL:$1|ဢၼ်မႂ်ႇမႂ်ႇ 1|ဢၼ်မႂ်ႇမႂ်ႇ $1}}",
        "pager-older-n": "{{PLURAL:$1|older 1|ဢၼ်ၵဝ်ႇၵဝ်ႇ $1}}",
        "apisandbox-reset": "ၽဵဝ်ႈလၢင်ႉ",
        "apisandbox-retry": "ၶိုၼ်းၶတ်းၸႂ်တူၺ်း",
        "contributions": "{{GENDER:$1|User}} ၶဝ်ႈႁူမ်ႈပႃး",
        "mycontris": "လွင်ႈၶဝ်ႈႁူမ်ႈ",
        "anoncontribs": "လွင်ႈၶဝ်ႈႁူမ်ႈ",
+       "uctop": "(ယၢမ်းလဵဝ်)",
        "month": "တႄႇဢဝ်လိူၼ် (လႄႈ ဢၼ်ပူၼ်ႉမႃး):",
        "year": "တႄႇဢဝ်ပီ (လႄႈ ဢၼ်ပူၼ်ႉမႃး):",
        "sp-contributions-newbies-sub": "တွၼ်ႈတႃႇဢၶွင်ႉ ဢၼ်မႂ်ႇ",
        "pageinfo-authors": "ႁူဝ်ႁုပ်ႈတၢင်းၼမ် ၽူႈတႅမ်ႈလိၵ်ႈ ပႅၵ်ႇပိူင်ႈ",
        "pageinfo-recent-edits": "တၢင်းၼမ်လွင်ႈမႄးထတ်း ၸိူဝ်းပႆႇပေႃးႁိုင် (တီႈၼႂ်း ၶၢဝ်းပူၼ်ႉမႃး $1)",
        "pageinfo-recent-authors": "တၢင်းၼမ် ၽူႈတႅမ်ႈလိၵ်ႈ ပႅၵ်ႇပိူင်ႈ ၸိူဝ်းဢၼ်ပႆႇပေႃးႁိုင်",
+       "pageinfo-hidden-categories": "သိူင်ႇဝႆႉ {{PLURAL:$1|လိူင်ႈ|လိူင်ႈ(ၼမ်)}} ($1)",
        "pageinfo-toolboxlink": "လွၼ်ႉၶၢဝ်ႇၼႃႈလိၵ်ႈ",
        "pageinfo-redirectsto": "ဝိၼ်ႇၵႂႃႇၸူး",
        "pageinfo-redirectsto-info": "လွၼ်ႉၶၢဝ်ႇ",
        "previousdiff": "ၵၢၼ်မႄးထတ်း ဢၼ်ၵဝ်ႇ",
        "nextdiff": "ထတ်းသၢင်ႈဢၼ်မႂ်ႇမႂ်ႇ",
        "file-info-size": "$1 × $2 pixels, တၢင်းလဵၵ်ႉတၢင်းယႂ်ႇ ၾၢႆႇ: $3, ယိူင်ႈ MIME: $4",
+       "file-info-size-pages": "$1 × $2 pixels, သႅၼ်းၾၢႆႇ: $3, ၸုပ်ႈ MIME: $4, $5 {{PLURAL:$5|ၼႃႈ|ၼႃႈ(ၼမ်)}}",
        "file-nohires": "ဢမ်ႇမီး ဢၼ်ႁႅင်းၸိုၼ်ႈသႂ်ႇမၼ်း သုင်သုင်",
        "svg-long-desc": "ၾၢႆႇ SVG, ၸိုဝ်ႈ $1 × $2 pixels, သႅၼ်းၾၢႆႇ : $3",
        "show-big-image": "ၾၢႆႇငဝ်ႈတိုၼ်း",
        "namespacesall": "တင်းမူတ်း",
        "monthsall": "တင်းမူတ်း",
        "confirm-rollback-top": "တေပိၼ်ႈၶိုၼ်း လွင်ႈမႄးထတ်း ၼႃႈလိၵ်ႈဢၼ်ၼႆႉၼႄႇ?",
+       "imgmultipagenext": "ၼႃႈလိၵ်ႈတေမႃး",
+       "imgmultigo": "ၵႂႃႇ!",
+       "imgmultigoto": "ၵႂႃႇၸူး ၼႃႈလိၵ်ႈ $1",
        "watchlistedit-normal-title": "မႄးထတ်း သဵၼ်ႈမၢႆပႂ်ႉတူၺ်း",
        "watchlistedit-normal-legend": "ထွၼ်ပႅတ်ႈ ႁူဝ်ၶေႃႈ တမ်ႈတီႈ သဵၼ်ႈမၢႆမႂ်ႉတူၺ်း",
        "watchlistedit-normal-submit": "ထွၼ်ပႅတ်ႈ ႁူဝ်ၶေႃႈ",
        "tag-filter": "ၶတ်းလိူၵ်ႈဢဝ်[[Special:Tags|Tag]]:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
        "logentry-delete-delete": "$1 {{GENDER:$2|မွတ်ႇယဝ်ႉ}} ၼႃႈလိၵ်ႈ $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|ဢဝ်ၶိုၼ်း}} ၼႃႈလိၵ်ႈ $3 ($4)",
        "logentry-move-move": "$1 {{GENDER:$2|ၶၢႆႉယဝ်ႉ}} ၼႃႈလိၵ်ႈ $3 တေႃႇ $4",
        "logentry-newusers-create": "ဢၶွင်ႉၽူႈၸႂ်ႉတိုဝ်း $1 ၼႆႉ လႆႈ  {{GENDER:$2|ၵေႃႇသၢင်ႈယဝ်ႉ}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|လူတ်ႇၶိုၼ်ႈၵႂႃႇယဝ်ႉ}} $3",
index 3319b62..dcbfeaa 100644 (file)
        "post-expand-template-argument-warning": "<strong>คำเตือน:</strong> หน้านี้มีอาร์กิวเมนต์แม่แบบอย่างน้อยหนึ่งที่มีขนาดขยายใหญ่เกินไป\nสละอาร์กิวเมนต์เหล่านี้แล้ว",
        "post-expand-template-argument-category": "หน้าที่มีอาร์กิวเมนต์แม่แบบถูกสละ",
        "parser-template-loop-warning": "ตรวจพบวงวนแม่แบบ: [[$1]]",
+       "template-loop-category": "หน้าที่มีแม่แบบวน",
        "parser-template-recursion-depth-warning": "เกินขีดจำกัดความลึกการเรียกแม่แบบซ้ำ ($1)",
        "language-converter-depth-warning": "เกินขีดจำกัดความลึกตัวแปลงผันภาษา ($1)",
        "node-count-exceeded-category": "หน้าที่จำนวนปมเกิน",
        "page_first": "แรกสุด",
        "page_last": "ท้ายสุด",
        "histlegend": "การเลือกผลต่าง: เลือกปุ่มของสองรุ่นที่ต้องการเปรียบเทียบ และกดป้อนเข้าหรือปุ่มด้านล่าง<br />\nคำอธิบาย: <strong>({{int:cur}})</strong> = ผลต่างกับรุ่นปัจจุบัน, <strong>({{int:last}})</strong> = ผลต่างกับรุ่นก่อนหน้า, <strong>{{int:minoreditletter}}</strong> = การแก้ไขเล็กน้อย",
-       "history-fieldset-title": "à¸\84à¹\89à¸\99à¸\94ูà¸\9bระวัà¸\95ิ",
+       "history-fieldset-title": "à¸\84à¹\89à¸\99หารุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87",
        "history-show-deleted": "เฉพาะรุ่นที่ถูกลบ",
        "histfirst": "แรกสุด",
        "histlast": "ล่าสุด",
        "search-file-match": "(เนื้อหาไฟล์ตรง)",
        "search-suggest": "คุณอาจหมายถึง: $1",
        "search-rewritten": "กำลังแสดงผลลัพธ์สำหรับ $1 ค้นหา $2 แทน",
-       "search-interwiki-caption": "โครงการพี่น้อง",
+       "search-interwiki-caption": "à¸\9cลà¸\81ารà¸\84à¹\89à¸\99หาà¸\88าà¸\81à¹\82à¸\84รà¸\87à¸\81ารà¸\9eีà¹\88à¸\99à¹\89อà¸\87",
        "search-interwiki-default": "ผลลัพธ์จาก $1:",
        "search-interwiki-more": "(เพิ่มเติม)",
+       "search-interwiki-more-results": "ดูผลการค้นหาเพิ่ม",
        "search-relatedarticle": "สัมพันธ์",
        "searchrelated": "สัมพันธ์",
        "searchall": "ทั้งหมด",
        "prefs-help-prefershttps": "การตั้งค่านี้จะมีผลเมื่อคุณล็อกอินครั้งถัดไป",
        "prefswarning-warning": "คุณเปลี่ยนแปลงการตั้งค่าของคุณที่ยังไม่ได้บันทึก\nหากคุณออกจากหน้านี้โดยไม่คลิก \"$1\" จะไม่ปรับการตั้งค่าของคุณ",
        "prefs-tabs-navigation-hint": "แนะนำ: คุณสามารถใช้แป้นลูกศรซ้ายและขวาเพื่อนำทางระหว่างแถบในรายการแถบได้",
-       "userrights": "à¸\81ารà¸\9aริหารสิà¸\97à¸\98ิà¸\9cูà¹\89à¹\83à¸\8aà¹\89",
+       "userrights": "สิทธิผู้ใช้",
        "userrights-lookup-user": "เลือกผู้ใช้",
        "userrights-user-editname": "ใส่ชื่อผู้ใช้:",
        "editusergroup": "โหลดกลุ่มผู้ใช้",
        "userrights-expiry-current": "หมดอายุ $1",
        "userrights-expiry-none": "ไม่มีวันหมดอายุ",
        "userrights-expiry": "หมดอายุ:",
+       "userrights-expiry-othertime": "เวลาอื่น:",
+       "userrights-expiry-options": "1 วัน:1 day,1 สัปดาห์:1 week,1 เดือน:1 month,3 เดือน:3 months,6 เดือน:6 months,1 ปี:1 year",
        "userrights-conflict": "พบการเปลี่ยนแปลงสิทธิผู้ใช้ขัดกัน! โปรดทบทวนและยืนยันการเปลี่ยนแปลงของคุณ",
        "group": "กลุ่ม:",
        "group-user": "ผู้ใช้",
        "grant-editpage": "แก้ไขหน้านี้",
        "grant-editprotected": "แก้ไขหน้าที่ถูกล็อก",
        "grant-highvolume": "การแก้ไขในปริมาณสูง",
+       "grant-oversight": "ซ่อนผู้ใช้ และ ยับยั้งรุ่นปรับปรุง",
        "grant-patrol": "ลาดตระเวนตรวจการเปลี่ยนแปลงหน้าต่าง ๆ",
        "grant-privateinfo": "เข้าถึงข้อมูลส่วนบุคคล",
        "grant-protect": "ล็อกและปลดล็อกหน้าต่าง ๆ",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ดูเพิ่มที่ [[Special:NewPages|รายชื่อหน้าใหม่]])",
        "recentchanges-submit": "แสดง",
        "rcfilters-activefilters": "ตัวกรองที่ทำงาน",
-       "rcfilters-quickfilters": "การตั้งค่าตัวกรองที่บันทึกไว้",
+       "rcfilters-advancedfilters": "ตัวกรองขั้นสูง",
+       "rcfilters-quickfilters": "ตัวกรองที่บันทึกไว้",
+       "rcfilters-quickfilters-placeholder-title": "ยังไม่มีลิงก์ที่บันทึกไว้",
+       "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-new-name-placeholder": "อธิบายจุดประสงค์ของตัวกรอง",
+       "rcfilters-savedqueries-apply-label": "สร้างตัวกรอง",
        "rcfilters-savedqueries-cancel-label": "ยกเลิก",
        "rcfilters-savedqueries-add-new-title": "บันทึกการตั้งค่าตัวกรองปัจจุบัน",
        "rcfilters-restore-default-filters": "คืนค่าตัวกรองปริยาย",
        "rcfilters-clear-all-filters": "ล้างตัวกรองทั้งหมด",
+       "rcfilters-search-placeholder": "กรองปรับปรุงล่าสุด (เรียกดูหรือเริ่มพิมพ์)",
        "rcfilters-invalid-filter": "ตัวกรองไม่ถูกต้อง",
        "rcfilters-filterlist-title": "ตัวกรอง",
+       "rcfilters-filterlist-whatsthis": "นี้คืออะไร?",
+       "rcfilters-highlightbutton-title": "ผลลัพธ์การเน้นสี",
        "rcfilters-highlightmenu-title": "เลือกสี",
+       "rcfilters-highlightmenu-help": "เลือกสีสำหรับเน้นการแสดงคุณสมบัตินี้",
        "rcfilters-filterlist-noresults": "ไม่พบตัวกรองใด ๆ",
        "rcfilters-noresults-conflict": "ไม่พบผลลัพธ์ เนื่องจากเงื่อนไขการค้นขัดแย้งกัน",
        "rcfilters-filtergroup-registration": "การลงทะเบียนผู้ใช้",
index 836963e..92f157d 100644 (file)
@@ -69,7 +69,8 @@
                        "MMH",
                        "Олександр",
                        "Similartothissimilartothat",
-                       "Bunyk"
+                       "Bunyk",
+                       "Choomaq"
                ]
        },
        "tog-underline": "Підкреслювання посилань:",
        "changeemail-submit": "Змінити адресу електронної пошти",
        "changeemail-throttled": "Ви зробили надто багато спроб ввійти до системи.\nБудь ласка, зачекайте $1 перед повторною спробою.",
        "changeemail-nochange": "Будь ласка, введіть адресу електронної пошти, відмінну від попередньої.",
-       "resettokens": "Скидання жетонів",
-       "resettokens-text": "Ви можете скинути жетони, що забезпечують доступ до певних особистих даних, пов'язаних тут із вашим обліковим записом.\nВам слід це зробити, якщо ви випадково поділились жетонами з кимось, або якщо ваш обліковий запис було зламано.",
+       "resettokens": "Скидання токенів",
+       "resettokens-text": "Ви можете скинути токени, що забезпечують доступ до певних особистих даних, пов'язаних тут із вашим обліковим записом.\nВам слід це зробити, якщо ви випадково поділились токенами з кимось, або якщо ваш обліковий запис було зламано.",
        "resettokens-no-tokens": "Немає жетонів до скидання.",
-       "resettokens-tokens": "Ð\96еÑ\82они:",
+       "resettokens-tokens": "Токени:",
        "resettokens-token-label": "$1 (поточне значення: $2)",
        "resettokens-watchlist-token": "Маркер стрічки новин (Atom/RSS) щодо [[Special:Watchlist|зміни на сторінці з вашого списку спостереження]]",
-       "resettokens-done": "Ð\96еÑ\82они скинуто.",
-       "resettokens-resetbutton": "Скинути обрані жетони",
+       "resettokens-done": "Токени скинуто.",
+       "resettokens-resetbutton": "Скинути обрані токени",
        "bold_sample": "Жирний текст",
        "bold_tip": "Жирний текст",
        "italic_sample": "Курсив",
index 66c13cd..fe3c910 100644 (file)
@@ -24,6 +24,7 @@
     "karma-firefox-launcher": "1.0.1",
     "karma-mocha-reporter": "2.2.3",
     "karma-qunit": "1.0.0",
+    "nodemw": "0.10.1",
     "qunitjs": "1.23.1",
     "stylelint-config-wikimedia": "0.4.1",
     "wdio-junit-reporter": "0.2.0",
index 01ac679..a8cf91d 100644 (file)
@@ -2034,12 +2034,6 @@ return [
        'mediawiki.special.movePage.styles' => [
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.movePage.css',
        ],
-       'mediawiki.special.newFiles' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.newFiles.js',
-               'dependencies' => [
-                       'mediawiki.widgets.datetime',
-               ],
-       ],
        'mediawiki.special.pageLanguage' => [
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.pageLanguage.js',
                'dependencies' => [
index a484350..d6b06e6 100644 (file)
@@ -16,11 +16,11 @@ table.mw-enhanced-rc td {
 
 td.mw-enhanced-rc {
        white-space: nowrap;
-       font-family: monospace;
+       font-family: monospace, monospace;
 }
 
 .mw-enhanced-rc-time {
-       font-family: monospace;
+       font-family: monospace, monospace;
 }
 
 table.mw-enhanced-rc td.mw-enhanced-rc-nested {
diff --git a/resources/src/mediawiki.special/mediawiki.special.newFiles.js b/resources/src/mediawiki.special/mediawiki.special.newFiles.js
deleted file mode 100644 (file)
index 5e86eaa..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * JavaScript for Special:NewFiles
- */
-( function ( mw, $ ) {
-       $( function () {
-               var start = mw.widgets.datetime.DateTimeInputWidget.static.infuse( 'mw-input-start' ),
-                       end = mw.widgets.datetime.DateTimeInputWidget.static.infuse( 'mw-input-end' ),
-                       temp;
-
-               // If the start date comes after the end date, swap the two values.
-               // This swap is already done internally when the form is submitted with a start date that
-               // comes after the end date, but this swap makes the change visible in the HTMLForm.
-               if ( start.getValue() !== '' &&
-                       end.getValue() !== '' &&
-                       start.getValue() > end.getValue() ) {
-                       temp = start.getValue();
-                       start.setValue( end.getValue() );
-                       end.setValue( temp );
-               }
-       } );
-}( mediaWiki, jQuery ) );
index abe7c46..d94a983 100644 (file)
        // Progressive buttons
        //
        // Use progressive buttons for actions which lead to a next step in the process.
-       // .mw-ui-constructive is deprecated; consolidated with `progressive`, see T110555
        //
        // Markup:
        // <div>
        // </div>
        //
        // Styleguide 2.1.1.
-       &.mw-ui-progressive,
-       &.mw-ui-constructive {
+       &.mw-ui-progressive {
                .button-colors-primary( @colorProgressive, @colorProgressiveHighlight, @colorProgressiveActive );
 
                &.mw-ui-quiet {
index a373142..9dce73f 100644 (file)
@@ -266,7 +266,10 @@ class ParserTestRunner {
                $setup['wgSVGConverters'] = [ 'null' => 'echo "1">$output' ];
 
                // Fake constant timestamp
-               Hooks::register( 'ParserGetVariableValueTs', 'ParserTestRunner::getFakeTimestamp' );
+               Hooks::register( 'ParserGetVariableValueTs', function ( &$parser, &$ts ) {
+                       $ts = $this->getFakeTimestamp();
+                       return true;
+               } );
                $teardown[] = function () {
                        Hooks::clear( 'ParserGetVariableValueTs' );
                };
@@ -747,6 +750,7 @@ class ParserTestRunner {
                $context = RequestContext::getMain();
                $user = $context->getUser();
                $options = ParserOptions::newFromContext( $context );
+               $options->setTimestamp( $this->getFakeTimestamp() );
 
                if ( !isset( $opts['wrap'] ) ) {
                        $options->setWrapOutputClass( false );
@@ -774,6 +778,7 @@ class ParserTestRunner {
 
                if ( isset( $opts['pst'] ) ) {
                        $out = $parser->preSaveTransform( $test['input'], $title, $user, $options );
+                       $output = $parser->getOutput();
                } elseif ( isset( $opts['msg'] ) ) {
                        $out = $parser->transformMsg( $test['input'], $options, $title );
                } elseif ( isset( $opts['section'] ) ) {
@@ -824,6 +829,12 @@ class ParserTestRunner {
                        }
                }
 
+               if ( isset( $output ) && isset( $opts['showflags'] ) ) {
+                       $actualFlags = array_keys( TestingAccessWrapper::newFromObject( $output )->mFlags );
+                       sort( $actualFlags );
+                       $out .= "\nflags=" . join( ', ', $actualFlags );
+               }
+
                ScopedCallback::consume( $teardownGuard );
 
                $expected = $test['result'];
@@ -1598,11 +1609,14 @@ class ParserTestRunner {
        }
 
        /**
-        * The ParserGetVariableValueTs hook, used to make sure time-related parser
+        * Fake constant timestamp to make sure time-related parser
         * functions give a persistent value.
+        *
+        * - Parser::getVariableValue (via ParserGetVariableValueTs hook)
+        * - Parser::preSaveTransform (via ParserOptions)
         */
-       static function getFakeTimestamp( &$parser, &$ts ) {
-               $ts = 123; // parsed as '1970-01-01T00:02:03Z'
-               return true;
+       private function getFakeTimestamp() {
+               // parsed as '1970-01-01T00:02:03Z'
+               return 123;
        }
 }
index 44bcdff..041b40f 100644 (file)
@@ -10421,11 +10421,13 @@ parsoid={ "modes": ["wt2html","wt2wt"], "normalizePhp": true }
 Magic Word: {{REVISIONID}}
 !! options
 parsoid={ "modes": ["wt2html","wt2wt"], "normalizePhp": true }
+showflags
 !! wikitext
 {{REVISIONID}}
 !! html/*
 <p>1337
 </p>
+flags=vary-revision-id
 !! end
 
 !! test
@@ -13619,17 +13621,34 @@ pre-save transform: Signature expansion
 pst
 !! wikitext
 * ~~~
+* ~~~~
+* ~~~~~
 * <noinclude>~~~</noinclude>
 * <includeonly>~~~</includeonly>
 * <onlyinclude>~~~</onlyinclude>
 !! html/php
 * [[Special:Contributions/127.0.0.1|127.0.0.1]]
+* [[Special:Contributions/127.0.0.1|127.0.0.1]] 00:02, 1 January 1970 (UTC)
+* 00:02, 1 January 1970 (UTC)
 * <noinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</noinclude>
 * <includeonly>[[Special:Contributions/127.0.0.1|127.0.0.1]]</includeonly>
 * <onlyinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</onlyinclude>
 !! end
 
 
+!! test
+ParserOutput flags from signature expansion (T84843)
+!! options
+pst
+showflags
+!! wikitext
+~~~~
+!! html/php
+[[Special:Contributions/127.0.0.1|127.0.0.1]] 00:02, 1 January 1970 (UTC)
+flags=user-signature
+!! end
+
+
 !! test
 pre-save transform: Signature expansion in nowiki tags (T2093)
 !! options
index 206655c..2b587db 100644 (file)
@@ -750,6 +750,175 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                ];
        }
 
+       /**
+        * @dataProvider provideUnionConditionPermutations
+        * @covers Database::unionConditionPermutations
+        */
+       public function testUnionConditionPermutations( $params, $expect ) {
+               if ( isset( $params['unionSupportsOrderAndLimit'] ) ) {
+                       $this->database->setUnionSupportsOrderAndLimit( $params['unionSupportsOrderAndLimit'] );
+               }
+
+               $sql = trim( $this->database->unionConditionPermutations(
+                       $params['table'],
+                       $params['vars'],
+                       $params['permute_conds'],
+                       isset( $params['extra_conds'] ) ? $params['extra_conds'] : '',
+                       'FNAME',
+                       isset( $params['options'] ) ? $params['options'] : [],
+                       isset( $params['join_conds'] ) ? $params['join_conds'] : []
+               ) );
+               $this->assertEquals( $expect, $sql );
+       }
+
+       public static function provideUnionConditionPermutations() {
+               return [
+                       // @codingStandardsIgnoreStart Generic.Files.LineLength.TooLong
+                       [
+                               [
+                                       'table' => [ 'table1', 'table2' ],
+                                       'vars' => [ 'field1', 'alias' => 'field2' ],
+                                       'permute_conds' => [
+                                               'field3' => [ 1, 2, 3 ],
+                                               'duplicates' => [ 4, 5, 4 ],
+                                               'empty' => [],
+                                               'single' => [ 0 ],
+                                       ],
+                                       'extra_conds' => 'table2.bar > 23',
+                                       'options' => [
+                                               'ORDER BY' => [ 'field1', 'alias' ],
+                                               'INNER ORDER BY' => [ 'field1', 'field2' ],
+                                               'LIMIT' => 100,
+                                       ],
+                                       'join_conds' => [
+                                               'table2' => [ 'JOIN', 'table1.foo_id = table2.foo_id' ],
+                                       ],
+                               ],
+                               "(SELECT  field1,field2 AS alias  FROM table1 JOIN table2 ON ((table1.foo_id = table2.foo_id))   WHERE field3 = '1' AND duplicates = '4' AND single = '0' AND (table2.bar > 23)  ORDER BY field1,field2 LIMIT 100  ) UNION ALL " .
+                               "(SELECT  field1,field2 AS alias  FROM table1 JOIN table2 ON ((table1.foo_id = table2.foo_id))   WHERE field3 = '1' AND duplicates = '5' AND single = '0' AND (table2.bar > 23)  ORDER BY field1,field2 LIMIT 100  ) UNION ALL " .
+                               "(SELECT  field1,field2 AS alias  FROM table1 JOIN table2 ON ((table1.foo_id = table2.foo_id))   WHERE field3 = '2' AND duplicates = '4' AND single = '0' AND (table2.bar > 23)  ORDER BY field1,field2 LIMIT 100  ) UNION ALL " .
+                               "(SELECT  field1,field2 AS alias  FROM table1 JOIN table2 ON ((table1.foo_id = table2.foo_id))   WHERE field3 = '2' AND duplicates = '5' AND single = '0' AND (table2.bar > 23)  ORDER BY field1,field2 LIMIT 100  ) UNION ALL " .
+                               "(SELECT  field1,field2 AS alias  FROM table1 JOIN table2 ON ((table1.foo_id = table2.foo_id))   WHERE field3 = '3' AND duplicates = '4' AND single = '0' AND (table2.bar > 23)  ORDER BY field1,field2 LIMIT 100  ) UNION ALL " .
+                               "(SELECT  field1,field2 AS alias  FROM table1 JOIN table2 ON ((table1.foo_id = table2.foo_id))   WHERE field3 = '3' AND duplicates = '5' AND single = '0' AND (table2.bar > 23)  ORDER BY field1,field2 LIMIT 100  ) " .
+                               "ORDER BY field1,alias LIMIT 100"
+                       ],
+                       [
+                               [
+                                       'table' => 'foo',
+                                       'vars' => [ 'foo_id' ],
+                                       'permute_conds' => [
+                                               'bar' => [ 1, 2, 3 ],
+                                       ],
+                                       'extra_conds' => [ 'baz' => null ],
+                                       'options' => [
+                                               'NOTALL',
+                                               'ORDER BY' => [ 'foo_id' ],
+                                               'LIMIT' => 25,
+                                       ],
+                               ],
+                               "(SELECT  foo_id  FROM foo    WHERE bar = '1' AND baz IS NULL  ORDER BY foo_id LIMIT 25  ) UNION " .
+                               "(SELECT  foo_id  FROM foo    WHERE bar = '2' AND baz IS NULL  ORDER BY foo_id LIMIT 25  ) UNION " .
+                               "(SELECT  foo_id  FROM foo    WHERE bar = '3' AND baz IS NULL  ORDER BY foo_id LIMIT 25  ) " .
+                               "ORDER BY foo_id LIMIT 25"
+                       ],
+                       [
+                               [
+                                       'table' => 'foo',
+                                       'vars' => [ 'foo_id' ],
+                                       'permute_conds' => [
+                                               'bar' => [ 1, 2, 3 ],
+                                       ],
+                                       'extra_conds' => [ 'baz' => null ],
+                                       'options' => [
+                                               'NOTALL' => true,
+                                               'ORDER BY' => [ 'foo_id' ],
+                                               'LIMIT' => 25,
+                                       ],
+                                       'unionSupportsOrderAndLimit' => false,
+                               ],
+                               "(SELECT  foo_id  FROM foo    WHERE bar = '1' AND baz IS NULL  ) UNION " .
+                               "(SELECT  foo_id  FROM foo    WHERE bar = '2' AND baz IS NULL  ) UNION " .
+                               "(SELECT  foo_id  FROM foo    WHERE bar = '3' AND baz IS NULL  ) " .
+                               "ORDER BY foo_id LIMIT 25"
+                       ],
+                       [
+                               [
+                                       'table' => 'foo',
+                                       'vars' => [ 'foo_id' ],
+                                       'permute_conds' => [],
+                                       'extra_conds' => [ 'baz' => null ],
+                                       'options' => [
+                                               'ORDER BY' => [ 'foo_id' ],
+                                               'LIMIT' => 25,
+                                       ],
+                               ],
+                               "SELECT  foo_id  FROM foo    WHERE baz IS NULL  ORDER BY foo_id LIMIT 25"
+                       ],
+                       [
+                               [
+                                       'table' => 'foo',
+                                       'vars' => [ 'foo_id' ],
+                                       'permute_conds' => [
+                                               'bar' => [],
+                                       ],
+                                       'extra_conds' => [ 'baz' => null ],
+                                       'options' => [
+                                               'ORDER BY' => [ 'foo_id' ],
+                                               'LIMIT' => 25,
+                                       ],
+                               ],
+                               "SELECT  foo_id  FROM foo    WHERE baz IS NULL  ORDER BY foo_id LIMIT 25"
+                       ],
+                       [
+                               [
+                                       'table' => 'foo',
+                                       'vars' => [ 'foo_id' ],
+                                       'permute_conds' => [
+                                               'bar' => [ 1 ],
+                                       ],
+                                       'options' => [
+                                               'ORDER BY' => [ 'foo_id' ],
+                                               'LIMIT' => 25,
+                                               'OFFSET' => 150,
+                                       ],
+                               ],
+                               "SELECT  foo_id  FROM foo    WHERE bar = '1'  ORDER BY foo_id LIMIT 150,25"
+                       ],
+                       [
+                               [
+                                       'table' => 'foo',
+                                       'vars' => [ 'foo_id' ],
+                                       'permute_conds' => [],
+                                       'extra_conds' => [ 'baz' => null ],
+                                       'options' => [
+                                               'ORDER BY' => [ 'foo_id' ],
+                                               'LIMIT' => 25,
+                                               'OFFSET' => 150,
+                                               'INNER ORDER BY' => [ 'bar_id' ],
+                                       ],
+                               ],
+                               "(SELECT  foo_id  FROM foo    WHERE baz IS NULL  ORDER BY bar_id LIMIT 175  ) ORDER BY foo_id LIMIT 150,25"
+                       ],
+                       [
+                               [
+                                       'table' => 'foo',
+                                       'vars' => [ 'foo_id' ],
+                                       'permute_conds' => [],
+                                       'extra_conds' => [ 'baz' => null ],
+                                       'options' => [
+                                               'ORDER BY' => [ 'foo_id' ],
+                                               'LIMIT' => 25,
+                                               'OFFSET' => 150,
+                                               'INNER ORDER BY' => [ 'bar_id' ],
+                                       ],
+                                       'unionSupportsOrderAndLimit' => false,
+                               ],
+                               "SELECT  foo_id  FROM foo    WHERE baz IS NULL  ORDER BY foo_id LIMIT 150,25"
+                       ],
+                       // @codingStandardsIgnoreEnd
+               ];
+       }
+
        /**
         * @covers Database::commit
         */
index ce05e33..9ed8f15 100644 (file)
@@ -31,6 +31,11 @@ class DatabaseTestHelper extends Database {
         */
        protected $tablesExists;
 
+       /**
+        * Value to return from unionSupportsOrderAndLimit()
+        */
+       protected $unionSupportsOrderAndLimit = true;
+
        public function __construct( $testName, array $opts = [] ) {
                $this->testName = $testName;
 
@@ -203,4 +208,12 @@ class DatabaseTestHelper extends Database {
 
                return new FakeResultWrapper( $res );
        }
+
+       public function unionSupportsOrderAndLimit() {
+               return $this->unionSupportsOrderAndLimit;
+       }
+
+       public function setUnionSupportsOrderAndLimit( $v ) {
+               $this->unionSupportsOrderAndLimit = (bool)$v;
+       }
 }
index 2c199bc..3b42356 100644 (file)
@@ -192,4 +192,30 @@ class DeferredUpdatesTest extends MediaWikiTestCase {
 
                DeferredUpdates::doUpdates();
        }
+
+       public function testPresendAddOnPostsendRun() {
+               $this->setMwGlobals( 'wgCommandLineMode', true );
+
+               $x = false;
+               $y = false;
+               wfGetLBFactory()->commitMasterChanges( __METHOD__ ); // clear anything
+
+               DeferredUpdates::addCallableUpdate(
+                       function () use ( &$x, &$y ) {
+                               $x = true;
+                               DeferredUpdates::addCallableUpdate(
+                                       function () use ( &$y ) {
+                                               $y = true;
+                                       },
+                                       DeferredUpdates::PRESEND
+                               );
+                       },
+                       DeferredUpdates::POSTSEND
+               );
+
+               DeferredUpdates::doUpdates();
+
+               $this->assertTrue( $x, "Outer POSTSEND update ran" );
+               $this->assertTrue( $y, "Nested PRESEND update ran" );
+       }
 }
index 71398e3..e72865f 100644 (file)
@@ -43,6 +43,7 @@ class ErrorPageErrorTest extends MediaWikiTestCase {
                $mock->expects( $this->once() )
                        ->method( 'output' );
                $this->setMwGlobals( 'wgOut', $mock );
+               $this->setMwGlobals( 'wgCommandLineMode', false );
 
                $e = new ErrorPageError( $title, $mockMessage, $params );
                $e->report();
index d64ada9..db736b7 100644 (file)
@@ -10,5 +10,8 @@
        },
        "globals": {
                "browser": false
+       },
+       "rules":{
+               "no-console":0
        }
 }
index 479b958..a14cccb 100644 (file)
@@ -27,8 +27,8 @@ To run only one file (for example page.js), you first need to spawn the chromedr
 
 Then in another terminal:
 
-    cd mediawiki/tests/selenium
-    ../../node_modules/.bin/wdio --spec page.js
+    cd tests/selenium
+    ../../node_modules/.bin/wdio --spec specs/page.js
 
 The runner reads the config file `wdio.conf.js` and runs the spec listed in
 `page.js`.
index a0b9490..f54e31c 100644 (file)
@@ -21,5 +21,57 @@ class CreateAccountPage extends Page {
                this.create.click();
        }
 
+       apiCreateAccount( username, password ) {
+               const url = require( 'url' ), // https://nodejs.org/docs/latest/api/url.html
+                       baseUrl = url.parse( browser.options.baseUrl ), // http://webdriver.io/guide/testrunner/browserobject.html
+                       Bot = require( 'nodemw' ), // https://github.com/macbre/nodemw
+                       client = new Bot( {
+                               protocol: baseUrl.protocol,
+                               server: baseUrl.hostname,
+                               port: baseUrl.port,
+                               path: baseUrl.path,
+                               debug: false
+                       } );
+
+               return new Promise( ( resolve, reject ) => {
+                       client.api.call(
+                               {
+                                       action: 'query',
+                                       meta: 'tokens',
+                                       type: 'createaccount'
+                               },
+                               /**
+                                * @param {Error|null} err
+                                * @param {Object} info Processed query result
+                                * @param {Object} next More results?
+                                * @param {Object} data Raw data
+                                */
+                               function ( err, info, next, data ) {
+                                       if ( err ) {
+                                               reject( err );
+                                               return;
+                                       }
+                                       client.api.call( {
+                                               action: 'createaccount',
+                                               createreturnurl: browser.options.baseUrl,
+                                               createtoken: data.query.tokens.createaccounttoken,
+                                               username: username,
+                                               password: password,
+                                               retype: password
+                                       }, function ( err ) {
+                                               if ( err ) {
+                                                       reject( err );
+                                                       return;
+                                               }
+                                               resolve();
+                                       }, 'POST' );
+                               },
+                               'POST'
+                       );
+
+               } );
+
+       }
+
 }
 module.exports = new CreateAccountPage();
index 819c546..25da8cb 100644 (file)
@@ -8,15 +8,37 @@ class EditPage extends Page {
        get heading() { return browser.element( '#firstHeading' ); }
        get save() { return browser.element( '#wpSave' ); }
 
-       open( name ) {
+       openForEditing( name ) {
                super.open( name + '&action=edit' );
        }
 
        edit( name, content ) {
-               this.open( name );
+               this.openForEditing( name );
                this.content.setValue( content );
                this.save.click();
        }
 
+       apiEdit( name, content ) {
+               const url = require( 'url' ), // https://nodejs.org/docs/latest/api/url.html
+                       baseUrl = url.parse( browser.options.baseUrl ), // http://webdriver.io/guide/testrunner/browserobject.html
+                       Bot = require( 'nodemw' ), // https://github.com/macbre/nodemw
+                       client = new Bot( {
+                               protocol: baseUrl.protocol,
+                               server: baseUrl.hostname,
+                               port: baseUrl.port,
+                               path: baseUrl.path,
+                               debug: false
+                       } );
+
+               return new Promise( ( resolve, reject ) => {
+                       client.edit( name, content, `Created page with "${content}"`, function ( err ) {
+                               if ( err ) {
+                                       return reject( err );
+                               }
+                               resolve();
+                       } );
+               } );
+       }
+
 }
 module.exports = new EditPage();
diff --git a/tests/selenium/pageobjects/userlogout.page.js b/tests/selenium/pageobjects/userlogout.page.js
deleted file mode 100644 (file)
index e355fd5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-const Page = require( './page' );
-
-class UserLogoutPage extends Page {
-
-       open() {
-               super.open( 'Special:UserLogout' );
-       }
-
-}
-module.exports = new UserLogoutPage();
index da80aaf..06d3d60 100644 (file)
@@ -1,14 +1,22 @@
 'use strict';
 const assert = require( 'assert' ),
+       EditPage = require( '../pageobjects/edit.page' ),
        HistoryPage = require( '../pageobjects/history.page' ),
-       EditPage = require( '../pageobjects/edit.page' );
+       UserLoginPage = require( '../pageobjects/userlogin.page' );
 
 describe( 'Page', function () {
 
        var content,
                name;
 
+       before( function () {
+               // disable VisualEditor welcome dialog
+               UserLoginPage.open();
+               browser.localStorage( 'POST', { key: 've-beta-welcome-dialog', value: '1' } );
+       } );
+
        beforeEach( function () {
+               browser.deleteCookie();
                content = Math.random().toString();
                name = Math.random().toString();
        } );
@@ -29,12 +37,14 @@ describe( 'Page', function () {
                var content2 = Math.random().toString();
 
                // create
-               EditPage.edit( name, content );
+               browser.call( function () {
+                       return EditPage.apiEdit( name, content );
+               } );
 
                // edit
                EditPage.edit( name, content2 );
 
-               // check content
+               // check
                assert.equal( EditPage.heading.getText(), name );
                assert.equal( EditPage.displayedContent.getText(), content2 );
 
@@ -43,7 +53,9 @@ describe( 'Page', function () {
        it( 'should have history', function () {
 
                // create
-               EditPage.edit( name, content );
+               browser.call( function () {
+                       return EditPage.apiEdit( name, content );
+               } );
 
                // check
                HistoryPage.open( name );
index 6746c5b..3f3872d 100644 (file)
@@ -1,16 +1,22 @@
 'use strict';
 const assert = require( 'assert' ),
        CreateAccountPage = require( '../pageobjects/createaccount.page' ),
-       UserLoginPage = require( '../pageobjects/userlogin.page' ),
-       UserLogoutPage = require( '../pageobjects/userlogout.page' ),
-       PreferencesPage = require( '../pageobjects/preferences.page' );
+       PreferencesPage = require( '../pageobjects/preferences.page' ),
+       UserLoginPage = require( '../pageobjects/userlogin.page' );
 
 describe( 'User', function () {
 
        var password,
                username;
 
+       before( function () {
+               // disable VisualEditor welcome dialog
+               UserLoginPage.open();
+               browser.localStorage( 'POST', { key: 've-beta-welcome-dialog', value: '1' } );
+       } );
+
        beforeEach( function () {
+               browser.deleteCookie();
                username = `User-${Math.random().toString()}`;
                password = Math.random().toString();
        } );
@@ -28,10 +34,9 @@ describe( 'User', function () {
        it( 'should be able to log in', function () {
 
                // create
-               CreateAccountPage.createAccount( username, password );
-
-               // logout
-               UserLogoutPage.open();
+               browser.call( function () {
+                       return CreateAccountPage.apiCreateAccount( username, password );
+               } );
 
                // log in
                UserLoginPage.login( username, password );
@@ -46,9 +51,14 @@ describe( 'User', function () {
                var realName = Math.random().toString();
 
                // create
-               CreateAccountPage.createAccount( username, password );
+               browser.call( function () {
+                       return CreateAccountPage.apiCreateAccount( username, password );
+               } );
+
+               // log in
+               UserLoginPage.login( username, password );
 
-               // change real name
+               // change
                PreferencesPage.changeRealName( realName );
 
                // check