Merge "TableSorter: Use SVGs with PNG fallbacks instead of GIFs"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 26 Jan 2016 13:09:29 +0000 (13:09 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 26 Jan 2016 13:09:29 +0000 (13:09 +0000)
190 files changed:
RELEASE-NOTES-1.27
autoload.php
includes/DefaultSettings.php
includes/GlobalFunctions.php
includes/Linker.php
includes/MediaWiki.php
includes/MimeMagic.php
includes/Revision.php
includes/Setup.php
includes/WebRequest.php
includes/WebResponse.php
includes/actions/SpecialPageAction.php
includes/api/ApiBase.php
includes/api/ApiHelp.php
includes/api/ApiParamInfo.php
includes/api/ApiUpload.php
includes/api/i18n/ce.json
includes/api/i18n/de.json
includes/api/i18n/en.json
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/api/i18n/he.json
includes/api/i18n/it.json
includes/api/i18n/ja.json
includes/api/i18n/lki.json
includes/api/i18n/pt-br.json
includes/api/i18n/qqq.json
includes/api/i18n/zh-hans.json
includes/content/WikitextContent.php
includes/context/RequestContext.php
includes/db/loadbalancer/LBFactory.php
includes/debug/MWDebug.php
includes/deferred/CallableUpdate.php
includes/filerepo/file/LocalFile.php
includes/gallery/ImageGalleryBase.php
includes/htmlform/HTMLFormField.php
includes/htmlform/HTMLRadioField.php
includes/installer/i18n/bg.json
includes/installer/i18n/el.json
includes/installer/i18n/en.json
includes/installer/i18n/fr.json
includes/installer/i18n/gl.json
includes/installer/i18n/gor.json
includes/installer/i18n/hr.json
includes/installer/i18n/it.json
includes/installer/i18n/tr.json
includes/installer/i18n/zh-hans.json
includes/jobqueue/jobs/UploadFromUrlJob.php [deleted file]
includes/logging/LogEntry.php
includes/media/IPTC.php
includes/mime.info
includes/mime.types
includes/page/Article.php
includes/page/WikiFilePage.php
includes/parser/Parser.php
includes/parser/ParserOutput.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php
includes/rcfeed/IRCColourfulRCFeedFormatter.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/session/CookieSessionProvider.php
includes/session/PHPSessionHandler.php
includes/session/SessionBackend.php
includes/session/SessionManager.php
includes/session/SessionManagerInterface.php
includes/specialpage/ChangesListSpecialPage.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialWatchlist.php
includes/upload/UploadBase.php
includes/upload/UploadFromStash.php
includes/upload/UploadFromUrl.php
includes/user/BotPassword.php
includes/user/CentralIdLookup.php
includes/user/LocalIdLookup.php
includes/user/User.php
includes/utils/UIDGenerator.php
languages/Names.php
languages/classes/LanguageLa.php
languages/i18n/af.json
languages/i18n/ar.json
languages/i18n/arz.json
languages/i18n/ast.json
languages/i18n/azb.json
languages/i18n/ba.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/br.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/cs.json
languages/i18n/cu.json
languages/i18n/cv.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/gd.json
languages/i18n/gl.json
languages/i18n/gsw.json
languages/i18n/gu.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hr.json
languages/i18n/hu.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jam.json
languages/i18n/ka.json
languages/i18n/ko.json
languages/i18n/ksh.json
languages/i18n/la.json
languages/i18n/lb.json
languages/i18n/lki.json
languages/i18n/lt.json
languages/i18n/lv.json
languages/i18n/mai.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/my.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/pa.json
languages/i18n/pl.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/ru.json
languages/i18n/sgs.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/th.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/uk.json
languages/i18n/vi.json
languages/i18n/wuu.json
languages/i18n/xmf.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/dictionary/mediawiki.dic
maintenance/rebuildrecentchanges.php
maintenance/refreshLinks.php
maintenance/updateCollation.php
resources/Resources.php
resources/src/jquery/jquery.arrowSteps.js
resources/src/mediawiki.special/mediawiki.special.pageLanguage.js
resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js
resources/src/mediawiki/api/upload.js
resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
resources/src/mediawiki/mediawiki.ForeignUpload.js
resources/src/mediawiki/mediawiki.Title.js
resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
resources/src/mediawiki/mediawiki.htmlform.ooui.css
resources/src/mediawiki/mediawiki.searchSuggest.js
resources/src/mediawiki/mediawiki.util.js
tests/TestsAutoLoader.php
tests/parser/parserTests.txt
tests/phpunit/data/helpers/WellProtectedClass.php
tests/phpunit/includes/MimeMagicTest.php
tests/phpunit/includes/TestingAccessWrapper.php
tests/phpunit/includes/TestingAccessWrapperTest.php
tests/phpunit/includes/api/ApiUploadTest.php
tests/phpunit/includes/logging/PageLangLogFormatterTest.php
tests/phpunit/includes/parser/PreprocessorTest.php
tests/phpunit/includes/session/CookieSessionProviderTest.php
tests/phpunit/includes/session/PHPSessionHandlerTest.php
tests/phpunit/includes/session/SessionManagerTest.php
tests/phpunit/includes/upload/UploadFromUrlTest.php
tests/phpunit/structure/ApiDocumentationTest.php [new file with mode: 0644]
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js

index def80ea..50d40a6 100644 (file)
@@ -86,6 +86,8 @@ production.
   auto-creation when 'createaccount' is not granted to all users.
 * Deprecated AuthPluginAutoCreate hook in favor of LocalUserCreated.
 * Most cookie-handling methods in User are deprecated.
+* $wgAllowAsyncCopyUploads and $CopyUploadAsyncTimeout were removed. This was an
+  experimental feature that has never worked.
 
 === New features in 1.27 ===
 * $wgDataCenterId and $wgDataCenterRoles where added, which will serve as
@@ -183,6 +185,7 @@ production.
 * action=login transparently allows login using bot passwords. Clients should
   merely need to change the username and password used after setting up a bot
   password.
+* action=upload no longer understands statuskey, asyncdownload or leavemessage.
 
 === Action API internal changes in 1.27 ===
 * ApiQueryORM removed.
@@ -287,6 +290,10 @@ changes to languages because of Phabricator reports.
 * ParserOutput::hasCustomDataUpdates() was removed (deprecated since 1.25).
 * ParserOutput::addSecondaryDataUpdate() was removed (deprecated since 1.25).
 * ParserOutput::getSecondaryDataUpdates() was removed (deprecated since 1.25).
+* Gallery images with multiple caption pipes no longer concatenate them all
+  together but instead pick the final one, similar to image syntax.
+* XML-like parser tags (such as <gallery>), when unclosed, will be left unparsed
+  rather than consume everything until the end of the page.
 
 == Compatibility ==
 
index 037fa5d..26b6598 100644 (file)
@@ -292,6 +292,7 @@ $wgAutoloadLocalClasses = array(
        'DBMasterPos' => __DIR__ . '/includes/db/DatabaseUtility.php',
        'DBQueryError' => __DIR__ . '/includes/db/DatabaseError.php',
        'DBReadOnlyError' => __DIR__ . '/includes/db/DatabaseError.php',
+       'DBReplicationWaitError' => __DIR__ . '/includes/db/loadbalancer/LBFactory.php',
        'DBSiteStore' => __DIR__ . '/includes/site/DBSiteStore.php',
        'DBTransactionError' => __DIR__ . '/includes/db/DatabaseError.php',
        'DBUnexpectedError' => __DIR__ . '/includes/db/DatabaseError.php',
@@ -1337,7 +1338,6 @@ $wgAutoloadLocalClasses = array(
        'UploadFromFile' => __DIR__ . '/includes/upload/UploadFromFile.php',
        'UploadFromStash' => __DIR__ . '/includes/upload/UploadFromStash.php',
        'UploadFromUrl' => __DIR__ . '/includes/upload/UploadFromUrl.php',
-       'UploadFromUrlJob' => __DIR__ . '/includes/jobqueue/jobs/UploadFromUrlJob.php',
        'UploadLogFormatter' => __DIR__ . '/includes/logging/UploadLogFormatter.php',
        'UploadSourceAdapter' => __DIR__ . '/includes/import/UploadSourceAdapter.php',
        'UploadSourceField' => __DIR__ . '/includes/specials/SpecialUpload.php',
index 9e945ea..a22a29d 100644 (file)
@@ -661,12 +661,6 @@ $wgCacheSharedUploads = true;
  */
 $wgAllowCopyUploads = false;
 
-/**
- * Allow asynchronous copy uploads.
- * This feature is experimental and broken as of r81612.
- */
-$wgAllowAsyncCopyUploads = false;
-
 /**
  * A list of domains copy uploads can come from
  *
@@ -697,17 +691,6 @@ $wgCopyUploadProxy = false;
  */
 $wgCopyUploadTimeout = false;
 
-/**
- * Different timeout for upload by url when run as a background job
- * This could be useful since when fetching large files via job queue,
- * you may want a different timeout, especially because there is no
- * http request being kept alive.
- *
- * false means fallback to $wgCopyUploadTimeout.
- * @since 1.22
- */
-$wgCopyUploadAsyncTimeout = false;
-
 /**
  * Max size for uploads, in bytes. If not set to an array, applies to all
  * uploads. If set to an array, per upload type maximums can be set, using the
@@ -6908,7 +6891,6 @@ $wgJobClasses = array(
        'sendMail' => 'EmaillingJob',
        'enotifNotify' => 'EnotifNotifyJob',
        'fixDoubleRedirect' => 'DoubleRedirectJob',
-       'uploadFromUrl' => 'UploadFromUrlJob',
        'AssembleUploadChunks' => 'AssembleUploadChunksJob',
        'PublishStashedFile' => 'PublishStashedFileJob',
        'ThumbnailRender' => 'ThumbnailRenderJob',
index eda636a..4d0ebf6 100644 (file)
@@ -2162,8 +2162,8 @@ function wfIsHHVM() {
 /**
  * Tries to get the system directory for temporary files. First
  * $wgTmpDirectory is checked, and then the TMPDIR, TMP, and TEMP
- * environment variables are then checked in sequence, and if none are
- * set try sys_get_temp_dir().
+ * environment variables are then checked in sequence, then
+ * sys_get_temp_dir(), then upload_tmp_dir from php.ini.
  *
  * NOTE: When possible, use instead the tmpfile() function to create
  * temporary files to avoid race conditions on file creation, etc.
@@ -2178,13 +2178,16 @@ function wfTempDir() {
        }
 
        $tmpDir = array_map( "getenv", array( 'TMPDIR', 'TMP', 'TEMP' ) );
+       $tmpDir[] = sys_get_temp_dir();
+       $tmpDir[] = ini_get( 'upload_tmp_dir' );
 
        foreach ( $tmpDir as $tmp ) {
                if ( $tmp && file_exists( $tmp ) && is_dir( $tmp ) && is_writable( $tmp ) ) {
                        return $tmp;
                }
        }
-       return sys_get_temp_dir();
+       throw new MWException( 'No writable temporary directory could be found. ' .
+               'Please set $wgTmpDirectory to a writable directory.' );
 }
 
 /**
@@ -3079,7 +3082,7 @@ function wfSetupSession( $sessionId = false ) {
        if ( session_id() !== $session->getId() ) {
                session_id( $session->getId() );
        }
-
+       MediaWiki\quietCall( 'session_cache_limiter', 'private, must-revalidate' );
        MediaWiki\quietCall( 'session_start' );
 }
 
@@ -3346,55 +3349,35 @@ function wfGetNull() {
  * @param string|bool $cluster Cluster name accepted by LBFactory. Default: false.
  * @param int|null $timeout Max wait time. Default: 1 day (cli), ~10 seconds (web)
  * @return bool Success (able to connect and no timeouts reached)
+ * @deprecated since 1.27 Use LBFactory::waitForReplication
  */
 function wfWaitForSlaves(
        $ifWritesSince = null, $wiki = false, $cluster = false, $timeout = null
 ) {
-       // B/C: first argument used to be "max seconds of lag"; ignore such values
-       $ifWritesSince = ( $ifWritesSince > 1e9 ) ? $ifWritesSince : null;
-
        if ( $timeout === null ) {
                $timeout = ( PHP_SAPI === 'cli' ) ? 86400 : 10;
        }
 
-       // Figure out which clusters need to be checked
-       /** @var LoadBalancer[] $lbs */
-       $lbs = array();
        if ( $cluster === '*' ) {
-               wfGetLBFactory()->forEachLB( function ( LoadBalancer $lb ) use ( &$lbs ) {
-                       $lbs[] = $lb;
-               } );
-       } elseif ( $cluster !== false ) {
-               $lbs[] = wfGetLBFactory()->getExternalLB( $cluster );
-       } else {
-               $lbs[] = wfGetLB( $wiki );
-       }
-
-       // Get all the master positions of applicable DBs right now.
-       // This can be faster since waiting on one cluster reduces the
-       // time needed to wait on the next clusters.
-       $masterPositions = array_fill( 0, count( $lbs ), false );
-       foreach ( $lbs as $i => $lb ) {
-               if ( $lb->getServerCount() <= 1 ) {
-                       // Bug 27975 - Don't try to wait for slaves if there are none
-                       // Prevents permission error when getting master position
-                       continue;
-               } elseif ( $ifWritesSince && $lb->lastMasterChangeTimestamp() < $ifWritesSince ) {
-                       continue; // no writes since the last wait
-               }
-               $masterPositions[$i] = $lb->getMasterPos();
+               $cluster = false;
+               $wiki = false;
+       } elseif ( $wiki === false ) {
+               $wiki = wfWikiID();
        }
 
-       $ok = true;
-       foreach ( $lbs as $i => $lb ) {
-               if ( $masterPositions[$i] ) {
-                       // The DBMS may not support getMasterPos() or the whole
-                       // load balancer might be fake (e.g. $wgAllDBsAreLocalhost).
-                       $ok = $lb->waitForAll( $masterPositions[$i], $timeout ) && $ok;
-               }
+       try {
+               wfGetLBFactory()->waitForReplication( array(
+                       'wiki' => $wiki,
+                       'cluster' => $cluster,
+                       'timeout' => $timeout,
+                       // B/C: first argument used to be "max seconds of lag"; ignore such values
+                       'ifWritesSince' => ( $ifWritesSince > 1e9 ) ? $ifWritesSince : null
+               ) );
+       } catch ( DBReplicationWaitError $e ) {
+               return false;
        }
 
-       return $ok;
+       return true;
 }
 
 /**
index 0dd4c47..3ba472b 100644 (file)
@@ -346,7 +346,10 @@ class Linker {
                } elseif ( in_array( 'known', $options ) ) {
                        $defaults['title'] = $target->getPrefixedText();
                } else {
-                       $defaults['title'] = wfMessage( 'red-link-title', $target->getPrefixedText() )->text();
+                       // This ends up in parser cache!
+                       $defaults['title'] = wfMessage( 'red-link-title', $target->getPrefixedText() )
+                               ->inContentLanguage()
+                               ->text();
                }
 
                # Finally, merge the custom attribs with the default ones, and iterate
index 0e3a734..6342d71 100644 (file)
@@ -379,23 +379,26 @@ class MediaWiki {
         * Initialize the main Article object for "standard" actions (view, etc)
         * Create an Article object for the page, following redirects if needed.
         *
-        * @return mixed An Article, or a string to redirect to another URL
+        * @return Article|string An Article, or a string to redirect to another URL
         */
        private function initializeArticle() {
-
                $title = $this->context->getTitle();
                if ( $this->context->canUseWikiPage() ) {
                        // Try to use request context wiki page, as there
                        // is already data from db saved in per process
                        // cache there from this->getAction() call.
                        $page = $this->context->getWikiPage();
-                       $article = Article::newFromWikiPage( $page, $this->context );
                } else {
                        // This case should not happen, but just in case.
-                       $article = Article::newFromTitle( $title, $this->context );
-                       $this->context->setWikiPage( $article->getPage() );
+                       // @TODO: remove this or use an exception
+                       $page = WikiPage::factory( $title );
+                       $this->context->setWikiPage( $page );
+                       wfWarn( "RequestContext::canUseWikiPage() returned false" );
                }
 
+               // Make GUI wrapper for the WikiPage
+               $article = Article::newFromWikiPage( $page, $this->context );
+
                // Skip some unnecessary code if the content model doesn't support redirects
                if ( !ContentHandler::getForTitle( $title )->supportsRedirects() ) {
                        return $article;
@@ -406,7 +409,7 @@ class MediaWiki {
                // Namespace might change when using redirects
                // Check for redirects ...
                $action = $request->getVal( 'action', 'view' );
-               $file = ( $title->getNamespace() == NS_FILE ) ? $article->getFile() : null;
+               $file = ( $page instanceof WikiFilePage ) ? $page->getFile() : null;
                if ( ( $action == 'view' || $action == 'render' ) // ... for actions that show content
                        && !$request->getVal( 'oldid' ) // ... and are not old revisions
                        && !$request->getVal( 'diff' ) // ... and not when showing diff
@@ -419,12 +422,13 @@ class MediaWiki {
 
                        Hooks::run( 'InitializeArticleMaybeRedirect',
                                array( &$title, &$request, &$ignoreRedirect, &$target, &$article ) );
+                       $page = $article->getPage(); // reflect any hook changes
 
                        // Follow redirects only for... redirects.
                        // If $target is set, then a hook wanted to redirect.
-                       if ( !$ignoreRedirect && ( $target || $article->isRedirect() ) ) {
+                       if ( !$ignoreRedirect && ( $target || $page->isRedirect() ) ) {
                                // Is the target already set by an extension?
-                               $target = $target ? $target : $article->followRedirect();
+                               $target = $target ? $target : $page->followRedirect();
                                if ( is_string( $target ) ) {
                                        if ( !$this->config->get( 'DisableHardRedirects' ) ) {
                                                // we'll need to redirect
@@ -433,16 +437,19 @@ class MediaWiki {
                                }
                                if ( is_object( $target ) ) {
                                        // Rewrite environment to redirected article
-                                       $rarticle = Article::newFromTitle( $target, $this->context );
-                                       $rarticle->loadPageData();
-                                       if ( $rarticle->exists() || ( is_object( $file ) && !$file->isLocal() ) ) {
+                                       $rpage = WikiPage::factory( $target );
+                                       $rpage->loadPageData();
+                                       if ( $rpage->exists() || ( is_object( $file ) && !$file->isLocal() ) ) {
+                                               $rarticle = Article::newFromWikiPage( $rpage, $this->context );
                                                $rarticle->setRedirectedFrom( $title );
+
                                                $article = $rarticle;
                                                $this->context->setTitle( $target );
                                                $this->context->setWikiPage( $article->getPage() );
                                        }
                                }
                        } else {
+                               // Article may have been changed by hook
                                $this->context->setTitle( $article->getTitle() );
                                $this->context->setWikiPage( $article->getPage() );
                        }
index 8ab92b4..d619f2d 100644 (file)
@@ -59,7 +59,7 @@ application/vnd.oasis.opendocument.text odt
 application/vnd.oasis.opendocument.text-master otm
 application/vnd.oasis.opendocument.text-template ott
 application/vnd.oasis.opendocument.text-web oth
-application/x-javascript js
+application/javascript js
 application/x-shockwave-flash swf
 audio/midi mid midi kar
 audio/mpeg mpga mpa mp2 mp3
@@ -110,7 +110,7 @@ application/vnd.oasis.opendocument.text [OFFICE]
 application/vnd.oasis.opendocument.text-template [OFFICE]
 application/vnd.oasis.opendocument.text-master [OFFICE]
 application/vnd.oasis.opendocument.text-web [OFFICE]
-text/javascript application/x-javascript [EXECUTABLE]
+application/javascript text/javascript application/x-javascript [EXECUTABLE]
 application/x-shockwave-flash [MULTIMEDIA]
 audio/midi [AUDIO]
 audio/x-aiff [AUDIO]
index 1d7ac72..f4f6dca 100644 (file)
@@ -1366,6 +1366,17 @@ class Revision implements IDBAccessObject {
        public function insertOn( $dbw ) {
                global $wgDefaultExternalStore, $wgContentHandlerUseDB;
 
+               // Not allowed to have rev_page equal to 0, false, etc.
+               if ( !$this->mPage ) {
+                       $title = $this->getTitle();
+                       if ( $title instanceof Title ) {
+                               $titleText = ' for page ' . $title->getPrefixedText();
+                       } else {
+                               $titleText = '';
+                       }
+                       throw new MWException( "Cannot insert revision$titleText: page ID must be nonzero" );
+               }
+
                $this->checkContentModel();
 
                $data = $this->mText;
@@ -1628,8 +1639,10 @@ class Revision implements IDBAccessObject {
                        array(
                                'page_id' => $pageId,
                                'page_latest=rev_id',
-                               ),
-                       __METHOD__ );
+                       ),
+                       __METHOD__,
+                       array( 'FOR UPDATE' ) // T51581
+               );
 
                if ( $current ) {
                        if ( !$user ) {
index e962a49..9bf05e0 100644 (file)
@@ -691,6 +691,11 @@ if ( !is_object( $wgAuth ) ) {
 
 // Set up the session
 $ps_session = Profiler::instance()->scopedProfileIn( $fname . '-session' );
+/**
+ * @var MediaWiki\\Session\\SessionId|null $wgInitialSessionId The persistent
+ * session ID (if any) loaded at startup
+ */
+$wgInitialSessionId = null;
 if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode ) {
        // If session.auto_start is there, we can't touch session name
        if ( $wgPHPSessionHandling !== 'disable' && !wfIniGetBool( 'session.auto_start' ) ) {
@@ -723,12 +728,17 @@ if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode ) {
                throw $ex;
        }
 
+       if ( $session->isPersistent() ) {
+               $wgInitialSessionId = $session->getSessionId();
+       }
+
        $session->renew();
        if ( MediaWiki\Session\PHPSessionHandler::isEnabled() &&
                ( $session->isPersistent() || $session->shouldRememberUser() )
        ) {
                // Start the PHP-session for backwards compatibility
                session_id( $session->getId() );
+               MediaWiki\quietCall( 'session_cache_limiter', 'private, must-revalidate' );
                MediaWiki\quietCall( 'session_start' );
        }
 }
index 7306105..4c4ca97 100644 (file)
@@ -655,7 +655,10 @@ class WebRequest {
         */
        public function getSession() {
                if ( $this->sessionId !== null ) {
-                       return SessionManager::singleton()->getSessionById( (string)$this->sessionId, false, $this );
+                       $session = SessionManager::singleton()->getSessionById( (string)$this->sessionId, true, $this );
+                       if ( $session ) {
+                               return $session;
+                       }
                }
 
                $session = SessionManager::singleton()->getSessionForRequest( $this );
@@ -683,8 +686,10 @@ class WebRequest {
         * @return bool
         */
        public function checkSessionCookie() {
+               global $wgInitialSessionId;
                wfDeprecated( __METHOD__, '1.27' );
-               return SessionManager::singleton()->getPersistedSessionId( $this ) !== null;
+               return $wgInitialSessionId !== null &&
+                       $this->getSession()->getId() === (string)$wgInitialSessionId;
        }
 
        /**
index f14cf22..fd48005 100644 (file)
@@ -131,23 +131,38 @@ class WebResponse {
                if ( Hooks::run( 'WebResponseSetCookie', array( &$name, &$value, &$expire, $options ) ) ) {
                        $cookie = $options['prefix'] . $name;
                        $data = array(
-                               (string)$cookie,
-                               (string)$value,
-                               (int)$expire,
-                               (string)$options['path'],
-                               (string)$options['domain'],
-                               (bool)$options['secure'],
-                               (bool)$options['httpOnly'],
+                               'name' => (string)$cookie,
+                               'value' => (string)$value,
+                               'expire' => (int)$expire,
+                               'path' => (string)$options['path'],
+                               'domain' => (string)$options['domain'],
+                               'secure' => (bool)$options['secure'],
+                               'httpOnly' => (bool)$options['httpOnly'],
                        );
-                       if ( !isset( self::$setCookies[$cookie] ) ||
-                               self::$setCookies[$cookie] !== array( $func, $data )
+
+                       // Per RFC 6265, key is name + domain + path
+                       $key = "{$data['name']}\n{$data['domain']}\n{$data['path']}";
+
+                       // If this cookie name was in the request, fake an entry in
+                       // self::$setCookies for it so the deleting check works right.
+                       if ( isset( $_COOKIE[$cookie] ) && !array_key_exists( $key, self::$setCookies ) ) {
+                               self::$setCookies[$key] = array();
+                       }
+
+                       // PHP deletes if value is the empty string; also, a past expiry is deleting
+                       $deleting = ( $data['value'] === '' || $data['expire'] > 0 && $data['expire'] <= time() );
+
+                       if ( $deleting && !isset( self::$setCookies[$key] ) ) { // isset( null ) is false
+                               wfDebugLog( 'cookie', 'already deleted ' . $func . ': "' . implode( '", "', $data ) . '"' );
+                       } elseif ( !$deleting && isset( self::$setCookies[$key] ) &&
+                               self::$setCookies[$key] === array( $func, $data )
                        ) {
+                               wfDebugLog( 'cookie', 'already set ' . $func . ': "' . implode( '", "', $data ) . '"' );
+                       } else {
                                wfDebugLog( 'cookie', $func . ': "' . implode( '", "', $data ) . '"' );
-                               if ( call_user_func_array( $func, $data ) ) {
-                                       self::$setCookies[$cookie] = array( $func, $data );
+                               if ( call_user_func_array( $func, array_values( $data ) ) ) {
+                                       self::$setCookies[$key] = $deleting ? null : array( $func, $data );
                                }
-                       } else {
-                               wfDebugLog( 'cookie', 'already set ' . $func . ': "' . implode( '", "', $data ) . '"' );
                        }
                }
        }
index 9b72163..29a494b 100644 (file)
@@ -25,7 +25,6 @@
  * @since 1.25
  */
 class SpecialPageAction extends FormlessAction {
-
        /**
         * @var array A mapping of action names to special page names.
         */
@@ -49,6 +48,7 @@ class SpecialPageAction extends FormlessAction {
                if ( isset( self::$actionToSpecialPageMapping[$actionName] ) ) {
                        return $actionName;
                }
+
                return 'nosuchaction';
        }
 
@@ -65,15 +65,33 @@ class SpecialPageAction extends FormlessAction {
        }
 
        public function show() {
-               $action = self::getName();
-               if ( $action === 'nosuchaction' ) {
-                       throw new ErrorPageError( $this->msg( 'nosuchaction' ), $this->msg( 'nosuchactiontext' ) );
+               $special = $this->getSpecialPage();
+               if ( !$special ) {
+                       throw new ErrorPageError(
+                               $this->msg( 'nosuchaction' ), $this->msg( 'nosuchactiontext' ) );
                }
 
-               // map actions to (whitelisted) special pages
-               $special = SpecialPageFactory::getPage( self::$actionToSpecialPageMapping[$action] );
                $special->setContext( $this->getContext() );
                $special->getContext()->setTitle( $special->getPageTitle() );
                $special->run( '' );
        }
+
+       public function doesWrites() {
+               $special = $this->getSpecialPage();
+
+               return $special ? $special->doesWrites() : false;
+       }
+
+       /**
+        * @return SpecialPage|null
+        */
+       protected function getSpecialPage() {
+               $action = $this->getName();
+               if ( $action === 'nosuchaction' ) {
+                       return null;
+               }
+
+               // map actions to (whitelisted) special pages
+               return SpecialPageFactory::getPage( self::$actionToSpecialPageMapping[$action] );
+       }
 }
index 5f67a22..13d13a6 100644 (file)
@@ -637,6 +637,17 @@ abstract class ApiBase extends ContextSource {
         * @{
         */
 
+       /**
+        * Indicate if the module supports dynamically-determined parameters that
+        * cannot be included in self::getAllowedParams().
+        * @return string|array|Message|null Return null if the module does not
+        *  support additional dynamic parameters, otherwise return a message
+        *  describing them.
+        */
+       public function dynamicParameterDocumentation() {
+               return null;
+       }
+
        /**
         * This method mangles parameter name based on the prefix supplied to the constructor.
         * Override this method to change parameter name during runtime
index 9bbb0b0..bbea20b 100644 (file)
@@ -392,8 +392,9 @@ class ApiHelp extends ApiBase {
                        }
 
                        $params = $module->getFinalParams( ApiBase::GET_VALUES_FOR_HELP );
+                       $dynamicParams = $module->dynamicParameterDocumentation();
                        $groups = array();
-                       if ( $params ) {
+                       if ( $params || $dynamicParams !== null ) {
                                $help['parameters'] .= Html::openElement( 'div',
                                        array( 'class' => 'apihelp-block apihelp-parameters' )
                                );
@@ -654,6 +655,17 @@ class ApiHelp extends ApiBase {
                                        }
                                }
 
+                               if ( $dynamicParams !== null ) {
+                                       $dynamicParams = ApiBase::makeMessage( $dynamicParams, $context, array(
+                                               $module->getModulePrefix(),
+                                               $module->getModuleName(),
+                                               $module->getModulePath()
+                                       ) );
+                                       $help['parameters'] .= Html::element( 'dt', null, '*' );
+                                       $help['parameters'] .= Html::rawElement( 'dd',
+                                               array( 'class' => 'description' ), $dynamicParams->parse() );
+                               }
+
                                $help['parameters'] .= Html::closeElement( 'dl' );
                                $help['parameters'] .= Html::closeElement( 'div' );
                        }
index a808ac0..18ca0ab 100644 (file)
@@ -387,6 +387,20 @@ class ApiParamInfo extends ApiBase {
                }
                ApiResult::setIndexedTagName( $ret['parameters'], 'param' );
 
+               $dynamicParams = $module->dynamicParameterDocumentation();
+               if ( $dynamicParams !== null ) {
+                       if ( $this->helpFormat === 'none' ) {
+                               $ret['dynamicparameters'] = true;
+                       } else {
+                               $dynamicParams = ApiBase::makeMessage( $dynamicParams, $this->context, array(
+                                       $module->getModulePrefix(),
+                                       $module->getModuleName(),
+                                       $module->getModulePath()
+                               ) );
+                               $this->formatHelpMessages( $ret, 'dynamicparameters', array( $dynamicParams ) );
+                       }
+               }
+
                return $ret;
        }
 
index e76b365..82f66a8 100644 (file)
@@ -382,7 +382,7 @@ class ApiUpload extends ApiBase {
                // chunk or one and only one of the following parameters is needed
                if ( !$this->mParams['chunk'] ) {
                        $this->requireOnlyOneParameter( $this->mParams,
-                               'filekey', 'file', 'url', 'statuskey' );
+                               'filekey', 'file', 'url' );
                }
 
                // Status report for "upload to stash"/"upload from stash"
@@ -402,23 +402,6 @@ class ApiUpload extends ApiBase {
                        return false;
                }
 
-               if ( $this->mParams['statuskey'] ) {
-                       $this->checkAsyncDownloadEnabled();
-
-                       // Status request for an async upload
-                       $sessionData = UploadFromUrlJob::getSessionData( $this->mParams['statuskey'] );
-                       if ( !isset( $sessionData['result'] ) ) {
-                               $this->dieUsage( 'No result in session data', 'missingresult' );
-                       }
-                       if ( $sessionData['result'] == 'Warning' ) {
-                               $sessionData['warnings'] = $this->transformWarnings( $sessionData['warnings'] );
-                               $sessionData['sessionkey'] = $this->mParams['statuskey'];
-                       }
-                       $this->getResult()->addValue( null, $this->getModuleName(), $sessionData );
-
-                       return false;
-               }
-
                // The following modules all require the filename parameter to be set
                if ( is_null( $this->mParams['filename'] ) ) {
                        $this->dieUsageMsg( array( 'missingparam', 'filename' ) );
@@ -481,24 +464,9 @@ class ApiUpload extends ApiBase {
                                $this->dieUsageMsg( 'copyuploadbadurl' );
                        }
 
-                       $async = false;
-                       if ( $this->mParams['asyncdownload'] ) {
-                               $this->checkAsyncDownloadEnabled();
-
-                               if ( $this->mParams['leavemessage'] && !$this->mParams['ignorewarnings'] ) {
-                                       $this->dieUsage( 'Using leavemessage without ignorewarnings is not supported',
-                                               'missing-ignorewarnings' );
-                               }
-
-                               if ( $this->mParams['leavemessage'] ) {
-                                       $async = 'async-leavemessage';
-                               } else {
-                                       $async = 'async';
-                               }
-                       }
                        $this->mUpload = new UploadFromUrl;
                        $this->mUpload->initialize( $this->mParams['filename'],
-                               $this->mParams['url'], $async );
+                               $this->mParams['url'] );
                }
 
                return true;
@@ -766,16 +734,6 @@ class ApiUpload extends ApiBase {
 
                        if ( !$status->isGood() ) {
                                $error = $status->getErrorsArray();
-
-                               if ( count( $error ) == 1 && $error[0][0] == 'async' ) {
-                                       // The upload can not be performed right now, because the user
-                                       // requested so
-                                       return array(
-                                               'result' => 'Queued',
-                                               'statuskey' => $error[0][1],
-                                       );
-                               }
-
                                ApiResult::setIndexedTagName( $error, 'error' );
                                $this->dieUsage( 'An internal error occurred', 'internal-error', 0, $error );
                        }
@@ -790,15 +748,6 @@ class ApiUpload extends ApiBase {
                return $result;
        }
 
-       /**
-        * Checks if asynchronous copy uploads are enabled and throws an error if they are not.
-        */
-       protected function checkAsyncDownloadEnabled() {
-               if ( !$this->getConfig()->get( 'AllowAsyncCopyUploads' ) ) {
-                       $this->dieUsage( 'Asynchronous copy uploads disabled', 'asynccopyuploaddisabled' );
-               }
-       }
-
        public function mustBePosted() {
                return true;
        }
@@ -855,9 +804,6 @@ class ApiUpload extends ApiBase {
                        ),
 
                        'async' => false,
-                       'asyncdownload' => false,
-                       'leavemessage' => false,
-                       'statuskey' => null,
                        'checkstatus' => false,
                );
 
index eaad4de..45d0576 100644 (file)
@@ -15,7 +15,7 @@
        "apihelp-emailuser-param-subject": "Хьедаран корта.",
        "apihelp-emailuser-param-text": "Кехатан чулацам",
        "apihelp-expandtemplates-param-title": "АгӀонан корта.",
-       "apihelp-feedrecentchanges-param-tagfilter": "Тегийн литтар.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Тегийн луьттург.",
        "apihelp-login-example-login": "ЧугӀо",
        "apihelp-logout-description": "ЧугӀой сессийн хаамаш дӀацӀанбе.",
        "apihelp-move-description": "АгӀон цӀе хийца.",
index 2ca10c0..037e381 100644 (file)
@@ -15,7 +15,8 @@
                        "Duder",
                        "Ljonka",
                        "FriedhelmW",
-                       "Predatorix"
+                       "Predatorix",
+                       "Luke081515"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page/de|Dokumentation]]\n* [[mw:API:FAQ/de|Häufig gestellte Fragen]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailingliste]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-Ankündigungen]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Fehlerberichte und Anfragen]\n</div>\n<strong>Status:</strong> Alle auf dieser Seite gezeigten Funktionen sollten funktionieren, allerdings ist die API in aktiver Entwicklung und kann sich zu jeder Zeit ändern. Abonniere die [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ MediaWiki-API-Ankündigungs-Mailingliste], um über Aktualisierungen informiert zu werden.\n\n<strong>Fehlerhafte Anfragen:</strong> Wenn fehlerhafte Anfragen an die API gesendet werden, wird ein HTTP-Header mit dem Schlüssel „MediaWiki-API-Error“ gesendet. Der Wert des Headers und der Fehlercode werden auf den gleichen Wert gesetzt. Für weitere Informationen siehe [[mw:API:Errors_and_warnings|API: Fehler und Warnungen]].",
        "apihelp-query+allrevisions-param-generatetitles": "Wenn als Generator verwendet, werden eher Titel als Bearbeitungs-IDs erzeugt.",
        "apihelp-query+allrevisions-example-user": "Liste die letzten 50 Beiträge, sortiert nach Benutzer <kbd>Beispiel</kbd> auf.",
        "apihelp-query+allrevisions-example-ns-main": "Liste die ersten 50 Bearbeitungen im Hauptnamensraum auf.",
+       "apihelp-query+mystashedfiles-param-limit": "Wie viele Dateien zurückgegeben werden sollen.",
        "apihelp-query+alltransclusions-description": "Liste alle Transklusionen auf (eingebettete Seiten die &#123;&#123;x&#125;&#125; benutzen), einschließlich nicht vorhandener.",
        "apihelp-query+alltransclusions-param-from": "Der Titel der Transklusion bei dem die Auflistung beginnen soll.",
        "apihelp-query+alltransclusions-param-to": "Der Titel der Transklusion bei dem die Auflistung enden soll.",
        "apihelp-query+categorymembers-paramvalue-prop-title": "Fügt die Titel- und Namensraum-ID der Seite hinzu.",
        "apihelp-query+categorymembers-paramvalue-prop-sortkey": "Fügt den Sortierungsschlüssel (hexadezimale Zeichenkette) hinzu, der verwendet wird, um innerhalb dieser Kategorie zu sortieren.",
        "apihelp-query+categorymembers-paramvalue-prop-sortkeyprefix": "Fügt das Sortierungsschlüssel-Präfix hinzu, das verwendet wird, um innerhalb dieser Kategorie zu sortieren (für Menschen lesbarer Teil des Sortierungsschlüssels).",
-       "apihelp-query+categorymembers-paramvalue-prop-type": "Fügt den Typ, als der diese Seite bestimmt wurde, hinzu (Seite, Unterkategorie oder Datei).",
+       "apihelp-query+categorymembers-paramvalue-prop-type": "Fügt den Typ, als der diese Seite bestimmt wurde, hinzu (<samp>page</samp>, <samp>subcat</samp> oder <samp>file</samp>).",
        "apihelp-query+categorymembers-paramvalue-prop-timestamp": "Fügt den Zeitstempel wann die Seite eingebunden wurde hinzu.",
        "apihelp-query+categorymembers-param-limit": "Die maximale Anzahl der zurückzugebenden Seiten.",
        "apihelp-query+categorymembers-param-sort": "Eigenschaft, nach der sortiert werden soll.",
        "apihelp-query+redirects-paramvalue-prop-pageid": "Seitenkennung einer jeden Weiterleitung.",
        "apihelp-query+redirects-paramvalue-prop-title": "Titel einer jeden Weiterleitung.",
        "apihelp-query+revisions+base-paramvalue-prop-ids": "Die Kennung der Version.",
+       "apihelp-query+revisions+base-paramvalue-prop-flags": "Versionsmarkierungen (klein).",
        "apihelp-query+revisions+base-paramvalue-prop-timestamp": "Der Zeitstempel der Version.",
+       "apihelp-query+revisions+base-paramvalue-prop-user": "Benutzer, der die Version erstellt hat.",
+       "apihelp-query+revisions+base-paramvalue-prop-userid": "Benutzerkennung des Versionserstellers.",
        "apihelp-query+revisions+base-paramvalue-prop-size": "Länge in Bytes der Version.",
+       "apihelp-query+revisions+base-paramvalue-prop-sha1": "SHA-1-Prüfsumme (Basis 16) der Version.",
+       "apihelp-query+revisions+base-paramvalue-prop-contentmodel": "Inhaltsmodell-Kennung der Version.",
        "apihelp-query+revisions+base-paramvalue-prop-content": "Text der Version.",
+       "apihelp-query+search-param-what": "Welcher Suchtyp ausgeführt werden soll.",
+       "apihelp-query+search-param-info": "Welche Metadaten zurückgegeben werden sollen.",
        "apihelp-query+search-param-prop": "Eigenschaften zur Rückgabe:",
+       "apihelp-query+search-paramvalue-prop-wordcount": "Ergänzt den Wortzähler der Seite.",
+       "apihelp-query+search-param-limit": "Wie viele Seiten insgesamt zurückgegeben werden sollen.",
        "apihelp-query+search-example-simple": "Nach <kbd>meaning</kbd> suchen.",
        "apihelp-query+search-example-text": "Texte nach <kbd>meaning</kbd> durchsuchen.",
        "apihelp-query+siteinfo-example-simple": "Websiteinformationen abrufen",
        "apihelp-query+users-paramvalue-prop-rights": "Listet alle Rechte auf, die jeder Benutzer hat.",
        "apihelp-query+users-paramvalue-prop-editcount": "Ergänzt den Bearbeitungszähler des Benutzers.",
        "apihelp-query+users-example-simple": "Gibt Informationen für den Benutzer <kbd>Example</kbd> zurück.",
+       "apihelp-query+watchlist-paramvalue-prop-user": "Ergänzt den Benutzer, der die Bearbeitung ausgeführt hat.",
+       "apihelp-query+watchlist-paramvalue-prop-userid": "Ergänzt die Kennung des Benutzers, der die Bearbeitung ausgeführt hat.",
+       "apihelp-query+watchlist-paramvalue-prop-comment": "Ergänzt den Kommentar der Bearbeitung.",
+       "apihelp-query+watchlist-paramvalue-prop-timestamp": "Ergänzt den Zeitstempel der Bearbeitung.",
+       "apihelp-query+watchlist-paramvalue-prop-sizes": "Ergänzt die alten und neuen Längen der Seite.",
+       "apihelp-query+watchlist-paramvalue-type-new": "Seitenerstellungen.",
+       "apihelp-query+watchlist-paramvalue-type-log": "Logbucheinträge.",
        "apihelp-rsd-description": "Ein RSD-Schema (Really Simple Discovery) exportieren.",
        "apihelp-rsd-example-simple": "Das RSD-Schema exportieren",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "An allen beobachteten Seiten arbeiten.",
index 2fb9a50..55baa47 100644 (file)
        "apihelp-query+categorymembers-paramvalue-prop-title": "Adds the title and namespace ID of the page.",
        "apihelp-query+categorymembers-paramvalue-prop-sortkey": "Adds the sortkey used for sorting in the category (hexadecimal string).",
        "apihelp-query+categorymembers-paramvalue-prop-sortkeyprefix": "Adds the sortkey prefix used for sorting in the category (human-readable part of the sortkey).",
-       "apihelp-query+categorymembers-paramvalue-prop-type": "Adds the type that the page has been categorised as (page, subcat or file).",
+       "apihelp-query+categorymembers-paramvalue-prop-type": "Adds the type that the page has been categorised as (<samp>page</samp>, <samp>subcat</samp> or <samp>file</samp>).",
        "apihelp-query+categorymembers-paramvalue-prop-timestamp": "Adds the timestamp of when the page was included.",
        "apihelp-query+categorymembers-param-namespace": "Only include pages in these namespaces. Note that <kbd>$1type=subcat</kbd> or <kbd>$1type=file</kbd> may be used instead of <kbd>$1namespace=14</kbd> or <kbd>6</kbd>.",
        "apihelp-query+categorymembers-param-type": "Which type of category members to include. Ignored when <kbd>$1sort=timestamp</kbd> is set.",
        "apihelp-upload-param-offset": "Offset of chunk in bytes.",
        "apihelp-upload-param-chunk": "Chunk contents.",
        "apihelp-upload-param-async": "Make potentially large file operations asynchronous when possible.",
-       "apihelp-upload-param-asyncdownload": "Make fetching a URL asynchronous.",
-       "apihelp-upload-param-leavemessage": "If asyncdownload is used, leave a message on the user talk page if finished.",
-       "apihelp-upload-param-statuskey": "Fetch the upload status for this file key (upload by URL).",
        "apihelp-upload-param-checkstatus": "Only fetch the upload status for the given file key.",
        "apihelp-upload-example-url": "Upload from a URL.",
        "apihelp-upload-example-filekey": "Complete an upload that failed due to warnings.",
index 6b678ef..a736059 100644 (file)
        "apihelp-query+categorymembers-paramvalue-prop-title": "Ajoute le titre et l’ID de l’espace de noms de la page.",
        "apihelp-query+categorymembers-paramvalue-prop-sortkey": "Ajoute la clé de tri utilisée pour trier dans la catégorie (chaîne hexadécimale).",
        "apihelp-query+categorymembers-paramvalue-prop-sortkeyprefix": "Ajoute le préfixe de la clé de tri utilisé pour trier dans la catégorie (partie lisible de la clé de tri).",
-       "apihelp-query+categorymembers-paramvalue-prop-type": "Ajoute le type dans lequel a été catégorisée la page (page, sous-catégorie ou fichier).",
+       "apihelp-query+categorymembers-paramvalue-prop-type": "Ajoute le type dans lequel a été catégorisée la page (<samp>page</samp>, <samp>sous-catégorie</samp> ou <samp>fichier</samp>).",
        "apihelp-query+categorymembers-paramvalue-prop-timestamp": "Ajoute l’horodatage de l’inclusion de la page.",
        "apihelp-query+categorymembers-param-namespace": "Inclure uniquement les pages dans ces espaces de nom. Remarquez que <kbd>$1type=subcat</kbd> ou <kbd>$1type=file</kbd> peuvent  être utilisés à la place de <kbd>$1namespace=14</kbd> ou <kbd>6</kbd>.",
        "apihelp-query+categorymembers-param-type": "Quel type de membres de la catégorie inclure. Ignoré quand <kbd>$1sort=timestamp</kbd> est positionné.",
        "apihelp-upload-param-offset": "Décalage du bloc en octets.",
        "apihelp-upload-param-chunk": "Partie du contenu.",
        "apihelp-upload-param-async": "Faire de façon asynchrone les grosses opérations sur les fichiers quand c’est possible.",
-       "apihelp-upload-param-asyncdownload": "Faire de façon asynchrone la recherche d’une URL.",
-       "apihelp-upload-param-leavemessage": "Si asyncdownload est utilisé, laisser un message sur la page de discussion de l’utilisateur quand c’est terminé.",
-       "apihelp-upload-param-statuskey": "Récupérer l’état de téléchargement pour cette clé de fichier (téléchargé par URL).",
        "apihelp-upload-param-checkstatus": "Récupérer uniquement l’état de téléchargement pour la clé de fichier donnée.",
        "apihelp-upload-example-url": "Télécharger depuis une URL",
        "apihelp-upload-example-filekey": "Terminer un téléchargement qui a échoué à cause d’avertissements",
index ed1dd44..d8a0df5 100644 (file)
        "apihelp-upload-param-offset": "Desaxuste do bloque en bytes.",
        "apihelp-upload-param-chunk": "Contido do bloque.",
        "apihelp-upload-param-async": "Facer de forma asíncrona as operacións de ficheiro potencialmente grandes cando sexa posible.",
-       "apihelp-upload-param-asyncdownload": "Facer de forma asíncrona a busca dunha URL.",
-       "apihelp-upload-param-leavemessage": "Se se usa asyncdownload, deixar unha mensaxe na páxina de conversa do usuario cando se remate.",
-       "apihelp-upload-param-statuskey": "Buscar o estado da subida para esta clave de ficheiro (subida por URL).",
        "apihelp-upload-param-checkstatus": "Só buscar o estado da subida da clave de ficheiro indicada.",
        "apihelp-upload-example-url": "Carga dunha URL",
        "apihelp-upload-example-filekey": "Completar carga que fallou debido a avisos",
index a38fba0..7651551 100644 (file)
        "apihelp-query+categorymembers-paramvalue-prop-title": "הוספת השם ומזהה מרחב השם של הדף.",
        "apihelp-query+categorymembers-paramvalue-prop-sortkey": "הוספת מפתח המיון שמשמש למיון בקטגוריה (מחרזות הקסדצימלית).",
        "apihelp-query+categorymembers-paramvalue-prop-sortkeyprefix": "הוספת מפתח המיון שמשמש למיון בקטגוריה (מחרוזת הקסדצימלית).",
-       "apihelp-query+categorymembers-paramvalue-prop-type": "הוספת הסוג שהדף מוין אליו (דף, תת־קטגוריה, או קובץ).",
+       "apihelp-query+categorymembers-paramvalue-prop-type": "הוספת הסוג שהדף מוין אליו (<samp>page</samp>‏, <samp>subcat</samp> או <samp>file</samp>).",
        "apihelp-query+categorymembers-paramvalue-prop-timestamp": "הוספת חותם־הזמן שבו הדף נכלל.",
        "apihelp-query+categorymembers-param-namespace": "לכלול רק דפים במרחבי השם האלה. יש לשים לב לכך ש־<kbd>$1type=subcat</kbd> או <kbd>$1type=file</kbd> יכולים לשמש במקום <kbd>$1namespace=14</kbd> או <kbd>6</kbd>.",
        "apihelp-query+categorymembers-param-type": "איזה סוג של חברי קטגוריה לכלול. לא תקף כאשר מוגדר <kbd>$1sort=timestamp</kbd>.",
        "apihelp-upload-param-offset": "היסט החתיכה בבתים.",
        "apihelp-upload-param-chunk": "תוכן החתיכה.",
        "apihelp-upload-param-async": "להפוך פעולות קבצים גדולות לאסינכרוניות כשאפשר.",
-       "apihelp-upload-param-asyncdownload": "להפוך אחזור URL לאסינכרוני.",
-       "apihelp-upload-param-leavemessage": "אם משמש asyncdownload, להשאיר הודעה על דף שיחת משתמש אם זה מסתיים.",
-       "apihelp-upload-param-statuskey": "לאחזר את מצב העלאת הקובץ עבור מפתח הקובץ הזה (העלאה באמצעות URL).",
        "apihelp-upload-param-checkstatus": "לאחזר רק מצב העלאה עבור מפתח הקובץ שניתן.",
        "apihelp-upload-example-url": "להעלות מ־URL.",
        "apihelp-upload-example-filekey": "להשלים העלאה שנכשלה בשל אזהרות.",
index 24f5157..5730655 100644 (file)
        "apihelp-query+blocks-example-simple": "Elenca i blocchi.",
        "apihelp-query+categories-param-dir": "La direzione in cui elencare.",
        "apihelp-query+categorymembers-paramvalue-prop-title": "Aggiunge il titolo e l'ID namespace della pagina.",
+       "apihelp-query+categorymembers-paramvalue-prop-type": "Aggiunge il tipo di come la pagina è stata categorizzata (<samp>page</samp>, <samp>subcat</samp> o <samp>file</samp>).",
        "apihelp-query+categorymembers-param-namespace": "Includi solo le pagine in questi namespace. Nota che può essere usato <kbd>$1type=subcat</kbd> o <kbd>$1type=file</kbd> anziché <kbd>$1namespace=14</kbd> o <kbd>6</kbd>.",
        "apihelp-query+duplicatefiles-param-dir": "La direzione in cui elencare.",
        "apihelp-query+embeddedin-description": "Trova tutte le pagine che incorporano (transclusione) il titolo specificato.",
index 287e147..949f4aa 100644 (file)
        "apihelp-query+allrevisions-param-generatetitles": "ジェネレーターとして使用する場合、版IDではなくページ名を生成します。",
        "apihelp-query+allrevisions-example-user": "利用者 <kbd>Example</kbd> による直近の50版を一覧表示する。",
        "apihelp-query+allrevisions-example-ns-main": "標準名前空間にある最初の50版を一覧表示する。",
+       "apihelp-query+mystashedfiles-param-limit": "取得するファイルの数。",
        "apihelp-query+alltransclusions-param-prefix": "この値で始まるすべてのトランスクルードされているページを検索する。",
        "apihelp-query+alltransclusions-param-prop": "どの情報を結果に含めるか:",
        "apihelp-query+alltransclusions-param-namespace": "列挙する前空間。",
        "apihelp-query+categorymembers-description": "与えられたカテゴリ内のすべてのページを一覧表示します。",
        "apihelp-query+categorymembers-param-title": "一覧表示するカテゴリ (必須)。<kbd>{{ns:category}}:</kbd> 接頭辞を含まなければなりません。<var>$1pageid</var> とは同時に使用できません。",
        "apihelp-query+categorymembers-param-pageid": "一覧表示するカテゴリのページID. <var>$1title</var> とは同時に使用できません。",
+       "apihelp-query+categorymembers-param-prop": "どの情報を結果に含めるか:",
        "apihelp-query+categorymembers-paramvalue-prop-ids": "ページIDを追加します。",
        "apihelp-query+categorymembers-paramvalue-prop-title": "ページ名と名前空間IDを追加します。",
        "apihelp-query+categorymembers-paramvalue-prop-sortkey": "カテゴリでのソートに使用するソートキーを追加します(16進数文字列)。",
        "apihelp-query+pageswithprop-param-limit": "返すページの最大数。",
        "apihelp-query+pageswithprop-example-simple": "<code>&#123;&#123;DISPLAYTITLE:&#125;&#125;</code> を使用している最初の10ページを一覧表示する。",
        "apihelp-query+pageswithprop-example-generator": "<code>_&#95;NOTOC_&#95;</code> を使用している最初の10ページについての追加情報を取得する。",
-       "apihelp-query+prefixsearch-description": "ページ名の先頭一致検索を行います。",
+       "apihelp-query+prefixsearch-description": "ページ名の先頭一致検索を行います。\n\n名前が似ていますが、このモジュールは[[Special:PrefixIndex]]と等価であることを意図しません。そのような目的では<kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd> を <kbd>apprefix</kbd> パラメーターと共に使用してください。このモジュールの目的は <kbd>[[Special:ApiHelp/opensearch|action=opensearch]]</kbd> と似ています: 利用者から入力を受け取り、最も適合するページ名を提供するというものです。検索エンジンのバックエンドによっては、誤入力の訂正や、転送の回避、その他のヒューリスティクスが適用されることがあります。",
        "apihelp-query+prefixsearch-param-search": "検索文字列。",
        "apihelp-query+prefixsearch-param-namespace": "検索する名前空間。",
        "apihelp-query+prefixsearch-param-limit": "返す結果の最大数。",
index a368b3e..aa115b7 100644 (file)
@@ -9,8 +9,9 @@
        "apihelp-main-param-action": "کام عملیات انجؤم بِ.",
        "apihelp-main-param-format": "فرمت خروجی",
        "apihelp-block-description": "بستن کاربر.",
-       "apihelp-createaccount-param-name": ":نؤم بهرۀگر-کاربر",
+       "apihelp-createaccount-param-name": "نۆم کاربەری:",
        "apihelp-delete-description": "حةذف وةڵگة",
+       "apihelp-delete-example-simple": "حذف <kbd>Main Page</kbd>.",
        "apihelp-disabled-description": "اێ پودمانە إکار کەتێە(غیرفعال بیە).",
        "apihelp-edit-description": "دؤرس کردن و دۀسکاری وۀلگۀ",
        "apihelp-edit-param-sectiontitle": "نام سۀر وۀلگ تازۀ",
index b1d27c8..a72b088 100644 (file)
@@ -6,7 +6,8 @@
                        "Cainamarques",
                        "Rhcastilhos",
                        "Macofe",
-                       "Almondega"
+                       "Almondega",
+                       "Raphaelras"
                ]
        },
        "apihelp-main-param-action": "Qual ação executar.",
        "apihelp-query+allfileusages-param-to": "O título do arquivo onde parar de enumerar.",
        "apihelp-query+allfileusages-paramvalue-prop-title": "Adiciona o título do arquivo.",
        "apihelp-query+allfileusages-param-limit": "Quantos itens retornar.",
+       "apihelp-query+allfileusages-example-unique": "Listar títulos únicos de arquivos",
+       "apihelp-query+allfileusages-example-generator": "Obter as páginas contendo os arquivos",
        "apihelp-query+allimages-param-user": "Retorna apenas os arquivos enviados por este usuário. Só pode ser usado com $1sort=timestamp. Não pode ser usado em conjunto com $1filterbots.",
        "apihelp-query+allimages-param-filterbots": "Como filtrar arquivos enviados por bots. Só pode ser usado com $1sort=timestamp. Não pode ser usado em conjunto com $1user.",
        "apihelp-query+allimages-param-mime": "Quais tipos MIME pesquisar, ex.: <kbd>image/jpeg</kbd>.",
        "apihelp-query+links-param-limit": "Quantos links retornar.",
        "apihelp-query+linkshere-param-limit": "Quantos retornar.",
        "apihelp-query+prefixsearch-param-limit": "O número máximo a se retornar.",
+       "apihelp-query+protectedtitles-param-limit": "Quantas páginas retornar.",
+       "apihelp-query+protectedtitles-paramvalue-prop-level": "Adicionar o nível de proteção",
+       "apihelp-query+protectedtitles-example-simple": "Listar títulos protegidos",
+       "apihelp-query+random-param-filterredir": "Como filtrar por redirecionamentos.",
+       "apihelp-query+recentchanges-param-user": "Listar apenas alterações de usuário.",
+       "apihelp-query+recentchanges-param-excludeuser": "Não listar as alterações deste usuário.",
+       "apihelp-query+recentchanges-param-tag": "Listar apenas as alterações marcadas com esta etiqueta.",
+       "apihelp-query+recentchanges-paramvalue-prop-flags": "Adicionar indicadores para a edição.",
+       "apihelp-query+recentchanges-paramvalue-prop-tags": "Listar as etiquetas para entrada.",
+       "apihelp-query+recentchanges-example-simple": "Listar mudanças recentes.",
+       "apihelp-query+redirects-paramvalue-prop-title": "Título de cada redirecionamento.",
+       "apihelp-query+redirects-paramvalue-prop-fragment": "Fragmento de cada redirecionamento, se há algum.",
+       "apihelp-query+redirects-param-namespace": "Listar páginas apenas neste espaço nominal.",
+       "apihelp-query+revisions-example-last5": "Mostrar as 5 últimas revisões do <kbd>Main Page</kbd>.",
+       "apihelp-query+revisions-example-first5": "Mostrar as 5 primeiras revisões do <kbd>Main Page</kbd>.",
+       "apihelp-query+revisions-example-first5-after": "Mostrar as 5 primeiras revisões do <kbd>Main Page</kbd> feitas depois de 05/01/2006.",
+       "apihelp-query+revisions-example-first5-not-localhost": "Mostrar as 5 primeiras revisões do <kbd>Main Page</kbd> que não foram feitas pelo usuário anônimo <kbd>127.0.0.1</kbd>.",
+       "apihelp-query+revisions-example-first5-user": "Mostrar as 5 primeiras revisões da <kbd>Main Page</kbd> que foram feitas pelo usuário <kbd>MediaWiki default</kbd>.",
+       "apihelp-query+revisions+base-param-prop": "Que propriedades mostrar para cada modificação:",
+       "apihelp-query+revisions+base-paramvalue-prop-content": "Texto da revisão.",
+       "apihelp-query+revisions+base-paramvalue-prop-tags": "Etiquetas para a revisão.",
+       "apihelp-query+search-description": "Fazer uma buscar completa de texto.",
        "apihelp-query+search-param-prop": "Que propriedades retornar:",
        "apihelp-query+search-paramvalue-prop-size": "Adiciona o tamanho da página em bytes.",
        "apihelp-query+search-paramvalue-prop-wordcount": "Adiciona a contagem de palavras da página.",
        "apihelp-query+search-paramvalue-prop-snippet": "Adiciona um fragmento analisado da página.",
        "apihelp-query+search-paramvalue-prop-titlesnippet": "Adiciona um fragmento analisado do título da página.",
        "apihelp-query+search-param-limit": "Quantas páginas retornar.",
+       "apihelp-query+search-example-simple": "Procurar por <kbd>meaning</kbd>.",
+       "apihelp-query+search-example-text": "Procurar textos para <kbd>meaning</kbd>.",
+       "apihelp-query+siteinfo-paramvalue-prop-general": "Informação geral de sistema",
+       "apihelp-query+siteinfo-paramvalue-prop-statistics": "Voltar às estatísticas do site.",
+       "apihelp-query+siteinfo-param-numberingroup": "Listar o número de usuários nos grupos de usuário.",
+       "apihelp-query+siteinfo-example-simple": "Obter informação do site.",
        "apihelp-query+templates-param-limit": "Quantas predefinições retornar.",
        "apihelp-query+transcludedin-param-limit": "Quantos retornar.",
+       "apihelp-query+users-description": "Obter informação sobre uma lista de usuários.",
        "apihelp-query+watchlist-param-limit": "Quantos resultados retornar por solicitação.",
+       "apihelp-query+watchlist-paramvalue-prop-title": "Adicionar título da página.",
+       "apihelp-query+watchlist-paramvalue-prop-comment": "Adicionar comentário à edição.",
+       "apihelp-query+watchlist-paramvalue-type-edit": "Edições comuns nas páginas.",
+       "apihelp-query+watchlist-paramvalue-type-external": "Alterações externas",
+       "apihelp-query+watchlist-paramvalue-type-new": "Criação de páginas.",
+       "apihelp-query+watchlist-paramvalue-type-log": "Registro de entradas.",
+       "apihelp-query+watchlist-paramvalue-type-categorize": "Alterações de membros pertencentes à uma categoria.",
        "apihelp-query+watchlistraw-param-limit": "Quantos resultados retornar por solicitação.",
        "apihelp-rollback-param-title": "Título da página para reverter. Não pode ser usado em conjunto com <var>$1pageid</var>.",
        "apihelp-rollback-param-pageid": "ID da página para reverter. Não pode ser usado em conjunto com <var>$1title</var>.",
+       "apihelp-setnotificationtimestamp-param-entirewatchlist": "Trabalhar em todas as páginas vigiadas.",
+       "apihelp-stashedit-param-sectiontitle": "O título para uma nova seção.",
+       "apihelp-stashedit-param-text": "Conteúdo da página",
+       "apihelp-stashedit-param-contentmodel": "Modelo de conteúdo do novo conteúdo.",
+       "apihelp-stashedit-param-contentformat": "Formato de serialização de conteúdo usado para o texto de entrada.",
+       "apihelp-tag-param-reason": "Motivo para a mudança.",
+       "apihelp-unblock-description": "Desbloquear usuário",
        "apihelp-unblock-param-id": "ID do bloco para desbloquear (obtido através de <kbd>list=blocks</kbd>). Não pode ser usado em conjunto com <var>$1user</var>.",
-       "apihelp-unblock-param-user": "Nome de usuário, endereço IP ou intervalo de IP para a se desbloquear. Não pode ser usado em conjunto com <var>$1id</var>."
+       "apihelp-unblock-param-user": "Nome de usuário, endereço IP ou intervalo de IP para a se desbloquear. Não pode ser usado em conjunto com <var>$1id</var>.",
+       "apihelp-unblock-param-reason": "Motivo para o desbloqueio.",
+       "apihelp-unblock-example-id": "Desbloquear bloqueio ID #<kbd>105</kbd>.",
+       "apihelp-undelete-param-reason": "Razão para restaurar.",
+       "apihelp-undelete-example-page": "Restaurar página <kbd>Main Page</kbd>.",
+       "apihelp-upload-param-watch": "Vigiar esta página",
+       "apihelp-upload-param-ignorewarnings": "Ignorar todos os avisos.",
+       "apihelp-userrights-param-user": "Nome de usuário.",
+       "apihelp-userrights-param-userid": "ID de usuário.",
+       "apihelp-userrights-param-add": "Adicionar o usuário para estes grupos.",
+       "apihelp-userrights-param-remove": "Remover o usuário destes grupos.",
+       "apihelp-userrights-param-reason": "Motivo para a mudança.",
+       "apihelp-none-description": "Nenhuma saída."
 }
index 804a8d6..6705658 100644 (file)
        "apihelp-imagerotate-example-simple": "{{doc-apihelp-example|imagerotate}}",
        "apihelp-imagerotate-example-generator": "{{doc-apihelp-example|imagerotate}}",
        "apihelp-import-description": "{{doc-apihelp-description|import}}",
-       "apihelp-import-param-summary": "{{doc-apihelp-param|import|summary}}",
+       "apihelp-import-param-summary": "{{doc-apihelp-param|import|summary|info=The parameter being documented here provides the summary used on the log messages about the import. The phrase \"Import summary\" here is grammatically equivalent to a phrase such as \"science book\", not \"eat food\".}}",
        "apihelp-import-param-xml": "{{doc-apihelp-param|import|xml}}",
        "apihelp-import-param-interwikisource": "{{doc-apihelp-param|import|interwikisource}}",
        "apihelp-import-param-interwikipage": "{{doc-apihelp-param|import|interwikipage}}",
        "apihelp-upload-param-offset": "{{doc-apihelp-param|upload|offset}}",
        "apihelp-upload-param-chunk": "{{doc-apihelp-param|upload|chunk}}",
        "apihelp-upload-param-async": "{{doc-apihelp-param|upload|async}}",
-       "apihelp-upload-param-asyncdownload": "{{doc-apihelp-param|upload|asyncdownload}}",
-       "apihelp-upload-param-leavemessage": "{{doc-apihelp-param|upload|leavemessage}}",
-       "apihelp-upload-param-statuskey": "{{doc-apihelp-param|upload|statuskey}}",
        "apihelp-upload-param-checkstatus": "{{doc-apihelp-param|upload|checkstatus}}",
        "apihelp-upload-example-url": "{{doc-apihelp-example|upload}}",
        "apihelp-upload-example-filekey": "{{doc-apihelp-example|upload}}",
index fffe170..d235209 100644 (file)
        "apihelp-query+categorymembers-paramvalue-prop-title": "添加页面标题和名字空间ID。",
        "apihelp-query+categorymembers-paramvalue-prop-sortkey": "添加用于分类中排序的关键字(十六进制字符串)。",
        "apihelp-query+categorymembers-paramvalue-prop-sortkeyprefix": "添加用于分类中排序的关键字前缀(关键字的人类可读部分)。",
-       "apihelp-query+categorymembers-paramvalue-prop-type": "添加页面被分类的类型(页面、子分类或文件)。",
+       "apihelp-query+categorymembers-paramvalue-prop-type": "添加页面被分类的类型(<samp>page</samp>、<samp>subcat</samp>或<samp>file</samp>)。",
        "apihelp-query+categorymembers-paramvalue-prop-timestamp": "添加页面被包括时的时间戳。",
        "apihelp-query+categorymembers-param-namespace": "仅包含这些名字空间的页面。注意<kbd>$1type=subcat</kbd>或<kbd>$1type=file</kbd>可能被使用,而不是<kbd>$1namespace=14</kbd>或<kbd>6</kbd>。",
        "apihelp-query+categorymembers-param-type": "包含的分类成员类型。当<kbd>$1sort=timestamp</kbd>被设置时会忽略。",
        "apihelp-upload-param-offset": "块的偏移量(字节)。",
        "apihelp-upload-param-chunk": "大块内容。",
        "apihelp-upload-param-async": "在可能的情况下,使潜在的大文件操作异步进行。",
-       "apihelp-upload-param-asyncdownload": "使取得URL非同步。",
-       "apihelp-upload-param-leavemessage": "如果asyncdownload被使用,当完成时,在用户讨论页留下一条消息。",
-       "apihelp-upload-param-statuskey": "检索此文件密钥的上传状态(通过URL上传)。",
        "apihelp-upload-param-checkstatus": "只检索指定文件密钥的上传状态。",
        "apihelp-upload-example-url": "从URL上传。",
        "apihelp-upload-example-filekey": "完成一次由于警告而失败的上传。",
index 8beae39..89e9356 100644 (file)
@@ -338,7 +338,7 @@ class WikitextContent extends TextContent {
                                $chain = $this->getRedirectChain();
                                $output->setText(
                                        Article::getRedirectHeaderHtml( $title->getPageLanguage(), $chain, false ) .
-                                       $output->getText()
+                                       $output->getRawText()
                                );
                                $output->addModuleStyles( 'mediawiki.action.view.redirectPage' );
                        }
index 16f11ee..3b868a1 100644 (file)
@@ -576,8 +576,9 @@ class RequestContext implements IContextSource, MutableContext {
                        // Get new session, if applicable
                        $session = null;
                        if ( strlen( $params['sessionId'] ) ) { // don't make a new random ID
-                               $session = MediaWiki\Session\SessionManager::singleton()
-                                       ->getSessionById( $params['sessionId'] );
+                               $manager = MediaWiki\Session\SessionManager::singleton();
+                               $session = $manager->getSessionById( $params['sessionId'], true )
+                                       ?: $manager->getEmptySession();
                        }
 
                        // Remove any user IP or agent information, and attach the request
@@ -593,6 +594,7 @@ class RequestContext implements IContextSource, MutableContext {
                        $wgUser = $context->getUser(); // b/c
                        if ( $session && MediaWiki\Session\PHPSessionHandler::isEnabled() ) {
                                session_id( $session->getId() );
+                               MediaWiki\quietCall( 'session_cache_limiter', 'private, must-revalidate' );
                                MediaWiki\quietCall( 'session_start' );
                        }
                        $request = new FauxRequest( array(), false, $session );
index 37ab9ca..25fdea9 100644 (file)
@@ -312,6 +312,90 @@ abstract class LBFactory {
                return $ret;
        }
 
+       /**
+        * Waits for the slave DBs to catch up to the current master position
+        *
+        * Use this when updating very large numbers of rows, as in maintenance scripts,
+        * to avoid causing too much lag. Of course, this is a no-op if there are no slaves.
+        *
+        * By default this waits on all DB clusters actually used in this request.
+        * This makes sense when lag being waiting on is caused by the code that does this check.
+        * In that case, setting "ifWritesSince" can avoid the overhead of waiting for clusters
+        * that were not changed since the last wait check. To forcefully wait on a specific cluster
+        * for a given wiki, use the 'wiki' parameter. To forcefully wait on an "external" cluster,
+        * use the "cluster" parameter.
+        *
+        * Never call this function after a large DB write that is *still* in a transaction.
+        * It only makes sense to call this after the possible lag inducing changes were committed.
+        *
+        * @param array $opts Optional fields that include:
+        *   - wiki : wait on the load balancer DBs that handles the given wiki
+        *   - cluster : wait on the given external load balancer DBs
+        *   - timeout : Max wait time. Default: ~60 seconds
+        *   - ifWritesSince: Only wait if writes were done since this UNIX timestamp
+        * @throws DBReplicationWaitError If a timeout or error occured waiting on a DB cluster
+        * @since 1.27
+        */
+       public function waitForReplication( array $opts = array() ) {
+               $opts += array(
+                       'wiki' => false,
+                       'cluster' => false,
+                       'timeout' => 60,
+                       'ifWritesSince' => null
+               );
+
+               // Figure out which clusters need to be checked
+               /** @var LoadBalancer[] $lbs */
+               $lbs = array();
+               if ( $opts['cluster'] !== false ) {
+                       $lbs[] = $this->getExternalLB( $opts['cluster'] );
+               } elseif ( $opts['wiki'] !== false ) {
+                       $lbs[] = $this->getMainLB( $opts['wiki'] );
+               } else {
+                       $this->forEachLB( function ( LoadBalancer $lb ) use ( &$lbs ) {
+                               $lbs[] = $lb;
+                       } );
+                       if ( !$lbs ) {
+                               return; // nothing actually used
+                       }
+               }
+
+               // Get all the master positions of applicable DBs right now.
+               // This can be faster since waiting on one cluster reduces the
+               // time needed to wait on the next clusters.
+               $masterPositions = array_fill( 0, count( $lbs ), false );
+               foreach ( $lbs as $i => $lb ) {
+                       if ( $lb->getServerCount() <= 1 ) {
+                               // Bug 27975 - Don't try to wait for slaves if there are none
+                               // Prevents permission error when getting master position
+                               continue;
+                       } elseif ( $opts['ifWritesSince']
+                               && $lb->lastMasterChangeTimestamp() < $opts['ifWritesSince']
+                       ) {
+                               continue; // no writes since the last wait
+                       }
+                       $masterPositions[$i] = $lb->getMasterPos();
+               }
+
+               $failed = array();
+               foreach ( $lbs as $i => $lb ) {
+                       if ( $masterPositions[$i] ) {
+                               // The DBMS may not support getMasterPos() or the whole
+                               // load balancer might be fake (e.g. $wgAllDBsAreLocalhost).
+                               if ( !$lb->waitForAll( $masterPositions[$i], $opts['timeout'] ) ) {
+                                       $failed[] = $lb->getServerName( $lb->getWriterIndex() );
+                               }
+                       }
+               }
+
+               if ( $failed ) {
+                       throw new DBReplicationWaitError(
+                               "Could not wait for slaves to catch up to " .
+                               implode( ', ', $failed )
+                       );
+               }
+       }
+
        /**
         * Disable the ChronologyProtector for all load balancers
         *
@@ -378,3 +462,9 @@ class DBAccessError extends MWException {
                        "This is not allowed." );
        }
 }
+
+/**
+ * Exception class for replica DB wait timeouts
+ */
+class DBReplicationWaitError extends Exception {
+}
index 8f943bf..4faa1dd 100644 (file)
@@ -91,16 +91,16 @@ class MWDebug {
        /**
         * Adds a line to the log
         *
-        * @todo Add support for passing objects
-        *
         * @since 1.19
-        * @param string $str
+        * @param mixed $str
         */
        public static function log( $str ) {
                if ( !self::$enabled ) {
                        return;
                }
-
+               if ( !is_string( $str ) ) {
+                       $str = print_r( $str, true );
+               }
                self::$log[] = array(
                        'msg' => htmlspecialchars( $str ),
                        'type' => 'log',
index 808626d..4b19c20 100644 (file)
@@ -4,25 +4,20 @@
  * Deferrable Update for closure/callback
  */
 class MWCallableUpdate implements DeferrableUpdate {
-       /**
-        * @var Closure|callable
-        */
+       /** @var Closure|callable */
        private $callback;
 
        /**
         * @param callable $callback
-        * @throws MWException
+        * @throws InvalidArgumentException
         */
        public function __construct( $callback ) {
                if ( !is_callable( $callback ) ) {
-                       throw new MWException( 'Not a valid callback/closure!' );
+                       throw new InvalidArgumentException( 'Not a valid callback/closure!' );
                }
                $this->callback = $callback;
        }
 
-       /**
-        * Run the update
-        */
        public function doUpdate() {
                call_user_func( $this->callback );
        }
index 9e214f6..82d6a76 100644 (file)
@@ -1119,12 +1119,12 @@ class LocalFile extends File {
         * @param string|bool $timestamp Timestamp for img_timestamp, or false to use the
         *   current time
         * @param User|null $user User object or null to use $wgUser
-        *
+        * @param string[] $tags Change tags to add to the log entry and page revision.
         * @return FileRepoStatus On success, the value member contains the
         *     archive name, or an empty string if it was a new file.
         */
        function upload( $srcPath, $comment, $pageText, $flags = 0, $props = false,
-               $timestamp = false, $user = null
+               $timestamp = false, $user = null, $tags = array()
        ) {
                global $wgContLang;
 
@@ -1166,7 +1166,8 @@ class LocalFile extends File {
                        // It is only *preferable* to avoid leaving such files orphaned.
                        // Once the second operation goes through, then the current version was
                        // updated and we must therefore update the DB too.
-                       if ( !$this->recordUpload2( $status->value, $comment, $pageText, $props, $timestamp, $user ) ) {
+                       $oldver = $status->value;
+                       if ( !$this->recordUpload2( $oldver, $comment, $pageText, $props, $timestamp, $user, $tags ) ) {
                                $status->fatal( 'filenotfound', $srcPath );
                        }
                }
@@ -1216,10 +1217,11 @@ class LocalFile extends File {
         * @param bool|array $props
         * @param string|bool $timestamp
         * @param null|User $user
+        * @param string[] $tags
         * @return bool
         */
        function recordUpload2(
-               $oldver, $comment, $pageText, $props = false, $timestamp = false, $user = null
+               $oldver, $comment, $pageText, $props = false, $timestamp = false, $user = null, $tags = array()
        ) {
                if ( is_null( $user ) ) {
                        global $wgUser;
@@ -1355,6 +1357,7 @@ class LocalFile extends File {
 
                // Add the log entry...
                $logEntry = new ManualLogEntry( 'upload', $reupload ? 'overwrite' : 'upload' );
+               $logEntry->setTimestamp( $this->timestamp );
                $logEntry->setPerformer( $user );
                $logEntry->setComment( $comment );
                $logEntry->setTarget( $descTitle );
@@ -1413,7 +1416,7 @@ class LocalFile extends File {
                # b) They won't cause rollback of the log publish/update above
                $that = $this;
                $dbw->onTransactionIdle( function () use (
-                       $that, $reupload, $wikiPage, $newPageContent, $comment, $user, $logEntry, $logId, $descId
+                       $that, $reupload, $wikiPage, $newPageContent, $comment, $user, $logEntry, $logId, $descId, $tags
                ) {
                        # Update memcache after the commit
                        $that->invalidateCache();
@@ -1476,7 +1479,17 @@ class LocalFile extends File {
                        );
 
                        # Now that the log entry is up-to-date, make an RC entry.
-                       $logEntry->publish( $logId );
+                       $recentChange = $logEntry->publish( $logId );
+
+                       if ( $tags ) {
+                               ChangeTags::addTags(
+                                       $tags,
+                                       $recentChange ? $recentChange->getAttribute( 'rc_id' ) : null,
+                                       $logEntry->getAssociatedRevId(),
+                                       $logId
+                               );
+                       }
+
                        # Run hook for other updates (typically more cache purging)
                        Hooks::run( 'FileUpload', array( $that, $reupload, !$newPageContent ) );
 
index 9ea9702..f26d688 100644 (file)
@@ -91,8 +91,8 @@ abstract class ImageGalleryBase extends ContextSource {
                        $context = RequestContext::getMainAndWarn( __METHOD__ );
                }
                if ( !$mode ) {
-                       $galleryOpions = $context->getConfig()->get( 'GalleryOptions' );
-                       $mode = $galleryOpions['mode'];
+                       $galleryOptions = $context->getConfig()->get( 'GalleryOptions' );
+                       $mode = $galleryOptions['mode'];
                }
 
                $mode = $wgContLang->lc( $mode );
index 3d9ec1f..3ba2156 100644 (file)
@@ -587,7 +587,7 @@ abstract class HTMLFormField {
                        // It might look weird, but it'll work OK.
                        return $this->getFieldLayoutOOUI(
                                new OOUI\Widget( array( 'content' => new OOUI\HtmlSnippet( $this->getDiv( $value ) ) ) ),
-                               array( 'infusable' => false )
+                               array( 'infusable' => false, 'align' => 'top' )
                        );
                }
 
index 2d05704..64f9cb6 100644 (file)
@@ -49,6 +49,7 @@ class HTMLRadioField extends HTMLFormField {
 
                return new OOUI\RadioSelectInputWidget( array(
                        'name' => $this->mName,
+                       'id' => $this->mID,
                        'value' => $value,
                        'options' => $options,
                        'classes' => 'mw-htmlform-flatlist-item',
index f455ced..68d5eaa 100644 (file)
@@ -13,7 +13,7 @@
        "config-localsettings-upgrade": "Беше открит файл <code>LocalSettings.php</code>.\nЗа надграждане на съществуващата инсталация, необходимо е в кутията по-долу да се въведе стойността на <code>$wgUpgradeKey</code>.\nТази информация е налична в <code>LocalSettings.php</code>.",
        "config-localsettings-cli-upgrade": "Беше открит файл <code>LocalSettings.php</code>.\nЗа надграждане на наличната инсталация, необходимо е да се стартира <code>update.php</code>",
        "config-localsettings-key": "Ключ за надграждане:",
-       "config-localsettings-badkey": "Предоставеният ключ е неправилен.",
+       "config-localsettings-badkey": "Ð\9fÑ\80едоÑ\81Ñ\82авениÑ\8fÑ\82 ÐºÐ»Ñ\8eÑ\87 Ð·Ð° Ð½Ð°Ð´Ð³Ñ\80аждане Ðµ Ð½ÐµÐ¿Ñ\80авилен.",
        "config-upgrade-key-missing": "Беше открита съществуваща инсталация на МедияУики.\nЗа надграждане на съществуващата инсталация, необходимо е да се постави следният ред в края на файла <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "Съществуващият файл <code>LocalSettings.php</code> изглежда непълен.\nПроменливата $1 не е зададена.\nНеобходимо е да се редактира файлът <code>LocalSettings.php</code> и да се зададе променливата, след което да се натисне „{{int:Config-continue}}“.",
        "config-localsettings-connection-error": "Възникна грешка при свързване с базата данни чрез посочените настройки в <code>LocalSettings.php</code>. Преди следващ опит за свързване, необходимо е настройките да бъдат коригирани.\n\n$1",
index 6130399..2d34299 100644 (file)
@@ -7,7 +7,8 @@
                        "Astralnet",
                        "Geraki",
                        "Stam.nikos",
-                       "Giorgos456"
+                       "Giorgos456",
+                       "Badseed"
                ]
        },
        "config-desc": "Το πρόγραμμα εγκατάστασης για το MediaWiki",
@@ -26,7 +27,7 @@
        "config-your-language": "Η γλώσσα σας:",
        "config-your-language-help": "Επιλέξτε μία γλώσσα για τη διαδικασία της εγκατάστασης.",
        "config-wiki-language": "Γλώσσα του wiki:",
-       "config-wiki-language-help": "Î\95Ï\80ιλέξÏ\84ε Ï\84η Î³Î»Ï\8eÏ\83Ï\83α Ï\80οÏ\85 Î¸Î± Î³Ï\81αÏ\86εί Ï\84ο wiki Ï\80Ï\81Ï\89Ï\84αÏ\81Ï\87ικά.",
+       "config-wiki-language-help": "Î\95Ï\80ιλέξÏ\84ε Ï\84η Î³Î»Ï\8eÏ\83Ï\83α Ï\83Ï\84ην Î¿Ï\80οία Î¸Î± Î³Ï\81άÏ\86εÏ\84αι ÎºÏ\85Ï\81ίÏ\89Ï\82 Ï\84ο wiki.",
        "config-back": "← Πίσω",
        "config-continue": "Συνέχεια →",
        "config-page-language": "Γλώσσα",
@@ -45,7 +46,7 @@
        "config-page-upgradedoc": "Αναβάθμιση",
        "config-page-existingwiki": "Υπάρχον wiki",
        "config-help-restart": "Θέλετε να καταργήσετε όλα τα αποθηκευμένα δεδομένα που έχετε εισαγάγει και να επανεκκινήσετε τη διαδικασία εγκατάστασης;",
-       "config-restart": "Î\9dαι, ÎºÎ¬Î½Ï\84ε ÎµÏ\80ανεκκίνηÏ\83η",
+       "config-restart": "Ναι, επανεκκίνηση",
        "config-welcome": "=== Περιβαλλοντικοί έλεγχοι ===\nΤώρα θα γίνουν βασικοί έλεγχοι για να δούμε αν αυτό το περιβάλλον είναι κατάλληλο για την εγκατάσταση του MediaWiki.\nΘυμηθείτε να συμπεριλάβετε αυτές τις πληροφορίες εάν αναζητήσετε υποστήριξη για το πώς να ολοκληρώσετε την εγκατάσταση.",
        "config-copyright": "=== Πνευματικά δικαιώματα και Όροι ===\n\n$1\n\nΑυτό το πρόγραμμα είναι ελεύθερο λογισμικό• μπορείτε να το αναδιανείμετε ή και να το τροποποιήσετε υπό τους όρους της Γενικής Άδειας Δημόσιας Χρήσης GNU, όπως αυτή δημοσιεύεται από το Ίδρυμα Ελεύθερου Λογισμικού• είτε της έκδοσης 2 της Άδειας, είτε (κατά την επιλογή σας) οποιασδήποτε μεταγενέστερης έκδοσης.\n\nΑυτό το πρόγραμμα διανέμεται με την ελπίδα ότι θα είναι χρήσιμο, αλλά <strong>χωρίς καμία εγγύηση</strong>• χωρίς καν την υπονοούμενη εγγύηση της <strong>εμπορευσιμότητας</strong> ή της <strong>καταλληλοτότητας για συγκεκριμένο σκοπό</strong>.\nΔείτε την Γενική Άδεια Δημόσιας Χρήσης GNU για περισσότερες λεπτομέρειες.\n\nΘα πρέπει να έχετε λάβει <doclink href=\"Copying\">ένα αντίγραφο της Γενικής Άδειας Δημόσιας Χρήσης GNU</doclink> μαζί με αυτό το πρόγραμμα• αν όχι, γράψτε στο Free Software Foundation,\n51 Franklin Street, Fifth Floor,\nBoston, MA 02110-1335\nUSA ή [http://www.gnu.org/copyleft/gpl.html διαβάστε online].",
        "config-sidebar": "* [//www.mediawiki.org Αρχική MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Οδηγός Χρήστη]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Οδηγός Διαχειριστή]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Συχνές ερωτήσεις]\n----\n* <doclink href=\"Readme\">Διαβάστε με</doclink>\n* <doclink href=\"ReleaseNotes\">Σημειώσεις έκδοσης</doclink>\n* <doclink href=\"Copying\">Αντιγραφή</doclink>\n* <doclink href=\"UpgradeDoc\">Αναβάθμιση</doclink>",
        "config-env-hhvm": "Το HHVM $1 είναι εγκατεστημένο.",
        "config-unicode-using-intl": "Χρησιμοποιώντας την [http://pecl.php.net/intl επέκταση intl PECL] για κανονικοποίηση Unicode.",
        "config-unicode-pure-php-warning": "<strong>Προειδοποίηση:</strong> Η [http://pecl.php.net/intl επέκταση intl PECL] δεν είναι διαθέσιμη για να χειριστεί την κανονικοποίηση Unicode, επιστρέφουμε στην αργή αμιγώς PHP εφαρμογή.\nΕάν λειτουργείτε έναν ιστότοπο υψηλής επισκεψιμότητας, θα πρέπει να ρίξετε μια ματιά στην [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations κανονικοποίηση Unicode].",
-       "config-outdated-sqlite": "<strong>Προειδοποίηση:</strong> έχετε την SQLite $1, που είναι χαμηλότερα απαιτούμενη έκδοση $2. SQLite δεν θα είναι διαθέσιμη.",
-       "config-register-globals-error": "<strong>Σφάλμα: PHP <code>[http://php.net/register_globals τις register_globals]</code> η επιλογή είναι ενεργοποιημένη.\nΘα πρέπει να απενεργοποιηθεί για να συνεχίσετε με την εγκατάσταση.</strong>\nΔείτε [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] για βοήθεια σχετικά με το πώς να το κάνετε.",
-       "config-safe-mode": "<strong>Προειδοποίηση:</strong> Το  PHP [http://www.php.net/features.safe-mode safe mode] είναι ενεργό.\nΑυτό μπορεί να προκαλέσει προβλήματα, ιδιαίτερα εάν η χρήση αρχείων και  υποστήριξη <code>math</code>.",
-       "config-xml-bad": "Το PHP XML module λείπει.\nΤο MediaWiki απαιτεί λειτουργίες σε αυτήν την ενότητα και δεν θα λειτουργήσει με αυτή την παραμετροποίηση. \nΜπορεί να χρειαστεί να εγκαταστήσετε το πακέτο php-xml RPM.",
-       "config-pcre-no-utf8": "<strong>Κρίσιμο:</strong> Το PCRE module της PHP  φαίνεται να είναι μεταγλωτισμένο χωρίς υποσήριξη  PCRE_UTF8.\nΤο MediaWiki απαιτεί υποστήριξη UTF-8 για να λειτουργήσει σωστά.",
+       "config-no-db": "Δεν βρέθηκε κάποιο κατάλληλο πρόγραμμα οδήγησης βάσης δεδομένων! Θα πρέπει να εγκαταστήσετε ένα πρόγραμμα οδήγησης βάσης δεδομένων για  PHP.\nΟ παρακάτω {{PLURAL:$2|τύπος βάσης δεδομένων|τύποι βάσεων δεδομένων}} υποστηρίζονται: $1.\n\nΑν κάνετε compile την PHP μόνοι σας, ρυθμίστε ξανά τις παραμέτρους με κάποιον ενεργοποιημένο εξυπηρετητή βάσεων  δεδομένων, για παράδειγμα, χρησιμοποιώντας την εντολή <code>./configure --with-mysqli</code>.\nΕάν έχετε εγκαταστήσει την PHP από κάποιο πακέτο στο Debian ή στο Ubuntu, τότε θα πρέπει να εγκαταστήσετε επίσης, για παράδειγμα, το πακέτο <code>php5-mysql</code>.",
+       "config-outdated-sqlite": "<strong>Προειδοποίηση:</strong> έχετε την SQLite έκδοση $1, που είναι χαμηλότερη από την ελάχιστη απαιτούμενη έκδοση $2. Η SQLite δεν θα είναι διαθέσιμη.",
+       "config-register-globals-error": "<strong>Σφάλμα: Η επιλογή της PHP <code>[http://php.net/register_globals τις register_globals]</code> είναι ενεργοποιημένη.\nΘα πρέπει να απενεργοποιηθεί για να συνεχιστεί η εγκατάσταση.</strong>\nΔείτε τη σελίδα [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] για βοήθεια σχετικά με αυτήν την ενέργεια.",
+       "config-safe-mode": "<strong>Προειδοποίηση:</strong> Το [http://www.php.net/features.safe-mode safe mode] της PHP είναι ενεργό.\nΑυτό μπορεί να προκαλέσει προβλήματα, ιδιαίτερα εάν γίνεται χρήση φόρτωσης αρχείων και  υποστήριξης <code>math</code>.",
+       "config-xml-bad": "Το PHP XML module λείπει.\nΤο MediaWiki απαιτεί συναρτήσεις που περιλαμβάνονται σε αυτό το module και δεν θα λειτουργήσει με αυτή την παραμετροποίηση. \nΊσως χρειάζεται να εγκαταστήσετε το πακέτο RPM php-xml.",
+       "config-pcre-no-utf8": "<strong>Κρίσιμο:</strong> Το PCRE module της PHP  φαίνεται να έχει μεταγλωττιστεί χωρίς υποστήριξη  PCRE_UTF8.\nΓια τη σωστή λειτουργία του MediaWiki απαιτείται υποστήριξη UTF-8.",
        "config-memory-raised": "Το  <code>memory_limit</code> της PHP είναι  $1 και αυξήθηκε σε  $2.",
-       "config-memory-bad": "<strong>Προειδοποίηση:</strong> η <code>memory_limit</code> της PHP είναι $1.\nΑυτό είναι πιθανώς πολύ χαμηλό.\n\nΗ εγκατάσταση ενδέχεται να αποτύχει!",
+       "config-memory-bad": "<strong>Προειδοποίηση:</strong> το <code>memory_limit</code> της PHP είναι $1.\nΑυτή η τιμή είναι πιθανώς πολύ χαμηλή.\n\nΗ εγκατάσταση ενδέχεται να αποτύχει!",
        "config-xcache": "[http://xcache.lighttpd.net/ Το XCache] είναι εγκατεστημένο",
        "config-apc": "Το [http://www.php.net/apc APC] είναι εγκατεστημένο",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp Το WinCache] είναι εγκατεστημένο",
        "config-diff3-bad": "Το GNU diff3 δεν βρέθηκε.",
        "config-git": "Βρέθηκε η Git έκδοση λογισμικού ελέγχου: <code>$1</code>.",
-       "config-git-bad": "Η Git έκδοση του λογισμικού ελέγχου δε βρέθηκε.",
-       "config-no-uri": "<strong>ΣÏ\86άλμα:</strong> Î\94εν Î¼Ï\80Ï\8cÏ\81εÏ\83ε Î½Î± ÎºÎ±Î¸Î¿Ï\81ίÏ\83ει το τρέχον URI.\nΗ εγκατάσταση ματαιώθηκε.",
-       "config-using-server": "Χρησιμοποιώντας το όνομα του διακομιστή \"<nowiki>$1</nowiki>\".",
+       "config-git-bad": "Η Git έκδοση του λογισμικού ελέγχου δεν βρέθηκε.",
+       "config-no-uri": "<strong>ΣÏ\86άλμα:</strong> Î\94εν Î®Ï\84αν Î´Ï\85ναÏ\84Ï\8c Î½Î± ÎºÎ±Î¸Î¿Ï\81ιÏ\83Ï\84εί το τρέχον URI.\nΗ εγκατάσταση ματαιώθηκε.",
+       "config-using-server": "Χρησιμοποιείται το όνομα διακομιστή \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Χρησιμοποιώντας την διεύθυνση URL του διακομιστή \"<nowiki>$1$2</nowiki>\".",
-       "config-brokenlibxml": "Το σύστημά σας έχει ένα συνδυασμό εκδόσεων της PHP και libxml2 που είναι προβληματικές και μπορεί να προκαλέσει κρυμμένα στοιχεία διαφθοράς στο MediaWiki και άλλες εφαρμογές web.\nΑναβαθμίστε σε libxml2 2.7.3 ή μεταγενέστερο ([https://bugs.php.net/bug.php?id=45996 bug κατατεθεί με την PHP]).\nΗ εγκατάσταση ματαιώθηκε.",
+       "config-brokenlibxml": "Το σύστημά σας έχει έναν συνδυασμό εκδόσεων της PHP και της libxml2 που είναι προβληματικός και μπορεί να προκαλέσει καταστροφή κρυμμένων στοιχείων στο MediaWiki και σε άλλες εφαρμογές ιστού.\nΑναβαθμίστε σε libxml2 2.7.3 ή μεταγενέστερη έκδοση ([https://bugs.php.net/bug.php?id=45996 bug που έχει καταχωριστεί για την PHP]).\nΗ εγκατάσταση ματαιώθηκε.",
        "config-db-type": "Τύπος βάσης δεδομένων:",
        "config-db-host": "Φιλοξενία βάσης δεδομένων:",
        "config-db-host-oracle": "Βάση δεδομένων TNS:",
        "config-db-wiki-settings": "Αναγνώριση αυτού του wiki",
        "config-db-name": "Όνομα βάσης δεδομένων:",
-       "config-db-name-help": "Î\95Ï\80ιλέξÏ\84ε Î­Î½Î± Ï\8cνομα Ï\80οÏ\85 Ï\84αιÏ\81ιάζει Ï\83Ï\84ο  wiki Ï\83αÏ\82. Î\94εν Ï\80Ï\81έÏ\80ει Î½Î± Ï\80εÏ\81ιέÏ\87ει ÎºÎµÎ½Î¬ Î´Î¹Î±Ï\83Ï\84ήμαÏ\84α.\n\nÎ\95άν Ï\87Ï\81ηÏ\83ιμοÏ\80οιείÏ\84ε ÎºÎ¿Î¹Î½Ï\8cÏ\87Ï\81ηÏ\83Ï\84ο web hosting, Î¿ Ï\80άÏ\81οÏ\87οÏ\82 Ï\83αÏ\82 ÎµÎ¯Ï\84ε Î¸Î± Ï\83αÏ\82 Î´Ï\8eÏ\83ει Î­Î½Î± Ï\83Ï\85γκεκÏ\81ιμένο Ï\8cνομα Î²Î¬Ï\83ηÏ\82 Î´ÎµÎ´Î¿Î¼Î­Î½Ï\89ν Î³Î¹Î± Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιήÏ\83εÏ\84ε Î® να δημιουργήσετε βάσεις δεδομένων μέσω ενός πίνακα ελέγχου.",
+       "config-db-name-help": "Î\95Ï\80ιλέξÏ\84ε Î­Î½Î± Ï\8cνομα Ï\80οÏ\85 Ï\84αιÏ\81ιάζει Ï\83Ï\84ο  wiki Ï\83αÏ\82. Î\94εν Ï\80Ï\81έÏ\80ει Î½Î± Ï\80εÏ\81ιέÏ\87ει ÎºÎµÎ½Î¬ Î´Î¹Î±Ï\83Ï\84ήμαÏ\84α.\n\nÎ\95άν Ï\87Ï\81ηÏ\83ιμοÏ\80οιείÏ\84ε ÎºÎ¿Î¹Î½Ï\8cÏ\87Ï\81ηÏ\83Ï\84ο web hosting, Î¿ Ï\80άÏ\81οÏ\87οÏ\82 Ï\86ιλοξενίαÏ\82 ÎµÎ¯Ï\84ε Î¸Î± Ï\83αÏ\82 Î´Ï\8eÏ\83ει Î­Î½Î± Ï\83Ï\85γκεκÏ\81ιμένο Ï\8cνομα Î²Î¬Ï\83ηÏ\82 Î´ÎµÎ´Î¿Î¼Î­Î½Ï\89ν Î³Î¹Î± Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιήÏ\83εÏ\84ε Î® Î¸Î± Ï\83αÏ\82 Î´Ï\8eÏ\83ει Ï\84η Î´Ï\85ναÏ\84Ï\8cÏ\84ηÏ\84α να δημιουργήσετε βάσεις δεδομένων μέσω ενός πίνακα ελέγχου.",
        "config-db-name-oracle": "Σχήμα βάσης δεδομένων:",
        "config-db-install-account": "Λογαριασμός χρήστη για την εγκατάσταση",
        "config-db-username": "Όνομα χρήστη βάσης δεδομένων:",
        "config-db-password": "Κωδικός πρόσβασης βάσης δεδομένων:",
-       "config-db-install-help": "Εισάγετε το όνομα χρήστη και τον κωδικό πρόσβασης που θα χρησιμοποιηθεί για τη σύνδεση με τη βάση δεδομένων κατά τη διάρκεια της διαδικασίας εγκατάστασης.",
-       "config-db-account-lock": "Χρησιμοποιήστε το ίδιο όνομα χρήστη και κωδικό πρόσβασης στη διάρκεια της κανονικής λειτουργίας",
+       "config-db-install-help": "Î\95ιÏ\83αγάγεÏ\84ε Ï\84ο Ï\8cνομα Ï\87Ï\81ήÏ\83Ï\84η ÎºÎ±Î¹ Ï\84ον ÎºÏ\89δικÏ\8c Ï\80Ï\81Ï\8cÏ\83βαÏ\83ηÏ\82 Ï\80οÏ\85 Î¸Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιηθεί Î³Î¹Î± Ï\84η Ï\83Ï\8dνδεÏ\83η Î¼Îµ Ï\84η Î²Î¬Ï\83η Î´ÎµÎ´Î¿Î¼Î­Î½Ï\89ν ÎºÎ±Ï\84ά Ï\84η Î´Î¹Î¬Ï\81κεια Ï\84ηÏ\82 Î´Î¹Î±Î´Î¹ÎºÎ±Ï\83ίαÏ\82 ÎµÎ³ÎºÎ±Ï\84άÏ\83Ï\84αÏ\83ηÏ\82.",
+       "config-db-account-lock": "Χρησιμοποιήστε το ίδιο όνομα χρήστη και κωδικό πρόσβασης μετά την εγκατάσταση",
        "config-db-wiki-account": "Λογαριασμός χρήστη για κανονική λειτουργία",
-       "config-db-wiki-help": "Î\95ιÏ\83άγεÏ\84ε Ï\84ο Ï\8cνομα Ï\87Ï\81ήÏ\83Ï\84η ÎºÎ±Î¹ Ï\84ον ÎºÏ\89δικÏ\8c Ï\80Ï\81Ï\8cÏ\83βαÏ\83ηÏ\82 Ï\80οÏ\85 Î¸Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιηθεί Î³Î¹Î± Ï\84η Ï\83Ï\8dνδεÏ\83η Î¼Îµ Ï\84η Î²Î¬Ï\83η Î´ÎµÎ´Î¿Î¼Î­Î½Ï\89ν ÎºÎ±Ï\84ά Ï\84η Î´Î¹Î¬Ï\81κεια Ï\84ηÏ\82 ÎºÎ±Î½Î¿Î½Î¹ÎºÎ®Ï\82 Î»ÎµÎ¹Ï\84οÏ\85Ï\81γίαÏ\82 Ï\84οÏ\85 wiki.\nÎ\95άν Î¿ Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8cÏ\82 Î´ÎµÎ½ Ï\85Ï\80άÏ\81Ï\87ει, ÎºÎ±Î¹ o Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8cÏ\82 ÎµÎ³ÎºÎ±Ï\84άÏ\83Ï\84αÏ\83ηÏ\82  Î­Ï\87ει ÎµÏ\80αÏ\81κή Î´Î¹ÎºÎ±Î¹Ï\8eμαÏ\84α, Î±Ï\85Ï\84Ï\8cÏ\82 Î¿ Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8cÏ\82 Ï\87Ï\81ήÏ\83Ï\84η Î¸Î± Î´Î·Î¼Î¹Î¿Ï\85Ï\81γηθεί Î¼Îµ Ï\84α ÎµÎ»Î¬Ï\87ιÏ\83Ï\84α Î´Î¹ÎºÎ±Î¹Ï\8eμαÏ\84α Ï\80οÏ\85 Î±Ï\80αιÏ\84οÏ\8dνÏ\84αι Î³Î¹Î± Î½Î± Î»ÎµÎ¹Ï\84οÏ\85Ï\81γήÏ\83εÏ\84ε Ï\84ο wiki.",
+       "config-db-wiki-help": "ΠληκÏ\84Ï\81ολογήÏ\83Ï\84ε Ï\84ο Ï\8cνομα Ï\87Ï\81ήÏ\83Ï\84η ÎºÎ±Î¹ Ï\84ον ÎºÏ\89δικÏ\8c Ï\80Ï\81Ï\8cÏ\83βαÏ\83ηÏ\82 Ï\80οÏ\85 Î¸Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιηθεί Î³Î¹Î± Ï\84η Ï\83Ï\8dνδεÏ\83η Î¼Îµ Ï\84η Î²Î¬Ï\83η Î´ÎµÎ´Î¿Î¼Î­Î½Ï\89ν ÎºÎ±Ï\84ά Ï\84η Î´Î¹Î¬Ï\81κεια Ï\84ηÏ\82 ÎºÎ±Î½Î¿Î½Î¹ÎºÎ®Ï\82 Î»ÎµÎ¹Ï\84οÏ\85Ï\81γίαÏ\82 Ï\84οÏ\85 wiki.\nÎ\95άν Î¿ Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8cÏ\82 Î´ÎµÎ½ Ï\85Ï\80άÏ\81Ï\87ει ÎºÎ±Î¹ o Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8cÏ\82 ÎµÎ³ÎºÎ±Ï\84άÏ\83Ï\84αÏ\83ηÏ\82  Î­Ï\87ει ÎµÏ\80αÏ\81κή Î´Î¹ÎºÎ±Î¹Ï\8eμαÏ\84α, Î±Ï\85Ï\84Ï\8cÏ\82 Î¿ Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8cÏ\82 Ï\87Ï\81ήÏ\83Ï\84η Î¸Î± Î´Î·Î¼Î¹Î¿Ï\85Ï\81γηθεί Î¼Îµ Ï\84α ÎµÎ»Î¬Ï\87ιÏ\83Ï\84α Î´Î¹ÎºÎ±Î¹Ï\8eμαÏ\84α Ï\80οÏ\85 Î±Ï\80αιÏ\84οÏ\8dνÏ\84αι Î³Î¹Î± Ï\84η Î»ÎµÎ¹Ï\84οÏ\85Ï\81γία Ï\84οÏ\85 wiki.",
        "config-db-prefix": "Πρόθεμα πίνακα βάσης δεδομένων:",
-       "config-db-prefix-help": "Î\95άν Ï\87Ï\81ειάζεÏ\83Ï\84ε Î½Î± Î¼Î¿Î¹Ï\81αÏ\83Ï\84είÏ\84ε Î¼Î¯Î± Î²Î¬Ï\83η Î´ÎµÎ´Î¿Î¼Î­Î½Ï\89ν Î¼ÎµÏ\84αξÏ\8d Ï\80ολλαÏ\80λÏ\8eν wikis, Î® Î¼ÎµÏ\84αξÏ\8d Ï\84οÏ\85 MediaWiki ÎºÎ±Î¹ Î¼Î¹Î±Ï\82 Î¬Î»Î»Î·Ï\82 web ÎµÏ\86αÏ\81μογήÏ\82, Î¼Ï\80οÏ\81είÏ\84ε Î½Î± ÎµÏ\80ιλέξεÏ\84ε Î½Î± Ï\80Ï\81οÏ\83θέÏ\83εÏ\84ε Î­Î½Î± Ï\80Ï\81Ï\8cθεμα Ï\8cλα Ï\84α Î¿Î½Ï\8cμαÏ\84α Ï\80ίνακα Î³Î¹Î± Î½Î± Î±Ï\80οÏ\86εÏ\8dγονÏ\84αι Î¿Î¹ Ï\83Ï\85γκÏ\81οÏ\8dÏ\83ειÏ\82.\nÎ\9cην Ï\87Ï\81ηÏ\83ιμοÏ\80οιείÏ\84ε ÎºÎµÎ½Î¬ Î´Î¹Î±Ï\83Ï\84ήμαÏ\84α.\n\nÎ\91Ï\85Ï\84Ï\8c Ï\84ο Ï\80εδίο Î±Ï\86ήνεÏ\84αι Ï\83Ï\85νήθÏ\89Ï\82 Î¬Î´ÎµÎ¹Î¿.",
+       "config-db-prefix-help": "Î\95άν Ï\87Ï\81ειάζεÏ\84αι Î½Î± Î¼Î¿Î¹Ï\81αÏ\83Ï\84είÏ\84ε Î¼Î¯Î± Î²Î¬Ï\83η Î´ÎµÎ´Î¿Î¼Î­Î½Ï\89ν Î¼ÎµÏ\84αξÏ\8d Ï\80ολλαÏ\80λÏ\8eν wikis, Î® Î¼ÎµÏ\84αξÏ\8d Ï\84οÏ\85 MediaWiki ÎºÎ±Î¹ Î¼Î¹Î±Ï\82 Î¬Î»Î»Î·Ï\82 web ÎµÏ\86αÏ\81μογήÏ\82, Î¼Ï\80οÏ\81είÏ\84ε Î½Î± Ï\80Ï\81οÏ\83θέÏ\83εÏ\84ε Î­Î½Î± Ï\80Ï\81Ï\8cθεμα Ï\83ε Ï\8cλα Ï\84α Î¿Î½Ï\8cμαÏ\84α Ï\80ίνακα Î³Î¹Î± Î½Î± Î±Ï\80οÏ\86εÏ\8dγονÏ\84αι Î¿Î¹ Î´Î¹ÎµÎ½Î­Î¾ÎµÎ¹Ï\82.\nÎ\9cην Ï\87Ï\81ηÏ\83ιμοÏ\80οιείÏ\84ε ÎºÎµÎ½Î¬ Î´Î¹Î±Ï\83Ï\84ήμαÏ\84α.\n\nÎ\91Ï\85Ï\84Ï\8c Ï\84ο Ï\80εδίο Î±Ï\86ήνεÏ\84αι Ï\83Ï\85νήθÏ\89Ï\82 ÎºÎµÎ½Ï\8c.",
        "config-db-charset": "Σύνολο χαρακτήρων βάσης δεδομένων",
        "config-charset-mysql5-binary": "MySQL 4.1/5.0 δυαδικό",
        "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "UTF-8 συμβατό προς τα πίσω με MySQL 4.0",
+       "config-charset-mysql4": "UTF-8 συμβατό με MySQL 4.0 και παλαιότερες εκδόσεις",
        "config-mysql-old": "Απαιτείται Microsoft SQL Server $1 ή νεότερο. Εσείς έχετε $2.",
        "config-db-port": "Θύρα βάσης δεδομένων:",
        "config-db-schema": "Σχήμα για MediaWiki:",
-       "config-db-schema-help": "Î\91Ï\85Ï\84Ï\8c Ï\84ο Ï\83Ï\87ήμα Ï\83Ï\85νήθÏ\89Ï\82 Î¸Î± ÎµÎ¯Î½Î±Î¹ ÎµÎ½Ï\84άξει.\nÎ\86λλαξε Ï\84ο Î¼Ï\8cνο Î±Î½ Î¾Î­Ï\81ειÏ\82 Ï\8cÏ\84ι Ï\84ο Ï\87Ï\81ειάζεÏ\83αι.",
+       "config-db-schema-help": "Î\91Ï\85Ï\84Ï\8c Ï\84ο Ï\83Ï\87ήμα Ï\83Ï\85νήθÏ\89Ï\82 Î±Ï\81κεί.\nÎ\91λλάξÏ\84ε Ï\84ο Î¼Ï\8cνο Î±Î½ ÎµÎ¯Ï\83Ï\84ε Î²Î­Î²Î±Î¹Î¿Î¹ Ï\8cÏ\84ι Ï\87Ï\81ειάζεÏ\84αι.",
        "config-pg-test-error": "Δεν μπορεί να συνδεθεί στη βάση δεδομένων <strong>$1</strong>: $2",
        "config-sqlite-dir": "SQLite κατάλογος δεδομένων:",
        "config-oracle-temp-ts": "Προσωρινό tablespace:",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
-       "config-support-info": "To MediaWiki υποστηρίζει τα ακόλουθα συστήματα βάσεων δεδομένων:\n\n$1\n\nΑν δε βλέπεις στο σύστημα βάσεων δεδομένων που θέλεις να χρησιμοποιήσεις να υπάρχει παρακάτω, τότε ακολούθησε τις οδηγίες που δίνονται παραπάνω για να ενεργοποιήσεις την υποστήριξη.",
+       "config-support-info": "To MediaWiki υποστηρίζει τα ακόλουθα συστήματα βάσεων δεδομένων:\n\n$1\n\nΑν δεν εμφανίζεται παρακάτω το σύστημα βάσης δεδομένων που θέλετε να χρησιμοποιήσετε, τότε ακολουθήστε τις οδηγίες στον παραπάνω σύνδεσμο για να ενεργοποιήσετε την υποστήριξη.",
        "config-header-mysql": "Ρυθμίσεις MySQL",
        "config-header-postgres": "Ρυθμίσεις PostgreSQL",
        "config-header-sqlite": "Ρυθμίσεις SQLite",
        "config-email-settings": "Ρυθμίσεις ηλεκτρονικού ταχυδρομείου",
        "config-email-user": "Ενεργοποίηση ηλεκτρονικού ταχυδρομείου από χρήστη σε χρήστη",
        "config-email-usertalk": "Ενεργοποίηση ειδοποίησης σελίδας συζήτησης χρήστη",
+       "config-email-watchlist": "Ενεργοποίηση ειδοποίησης λίστας παρακολούθησης",
+       "config-email-watchlist-help": "Επιτρέψτε στους χρήστες να λαμβάνουν ειδοποιήσεις για τις σελίδες που παρακολουθούν αν το έχουν ενεργοποιήσει στις προτιμήσεις τους.",
        "config-email-auth": "Ενεργοποίηση ταυτοποίησης μέσω ηλεκτρονικού ταχυδρομείου",
        "config-email-sender": "Διεύθυνση ηλεκτρονικού ταχυδρομείου επιστροφής:",
        "config-upload-settings": "Ανέβασμα εικόνων και άλλων αρχείων",
        "config-install-interwiki-exists": "<strong>Προειδοποίηση:</strong> O πίνακας interwiki φαίνεται να έχει ήδη καταχωρηθεί.\nΠαρακάμπτοντας προεπιλεγμένη λίστα.",
        "config-install-stats": "Γίνεται αρχικοποίηση των στατιστικών",
        "config-install-keys": "Γίνεται δημιουργία των μυστικών κλειδιών",
+       "config-install-updates": "Αποτρέψτε αχρειάστες ενημερώσεις",
+       "config-install-updates-failed": "<strong>Σφάλμα:</strong> Η εισαγωγή κλειδιών ενημέρωσης  σε πίνακες απέτυχε με το ακόλουθο σφάλμα: $1",
        "config-install-sysop": "Γίνεται δημιουργία του λογαριασμού χρήστη του διαχειριστή",
        "config-install-subscribe-fail": "Ανίκανος να εγγραφείτε στο mediawiki-ανακοινώση: $1",
        "config-install-subscribe-notpossible": "Το cURL δεν είναι εγκατεστημένο και  το <code>allow_url_fopen</code> δεν είναι διαθέσιμο.",
index f2ec7a7..8d2040d 100644 (file)
@@ -8,7 +8,7 @@
        "config-localsettings-upgrade": "A <code>LocalSettings.php</code> file has been detected.\nTo upgrade this installation, please enter the value of <code>$wgUpgradeKey</code> in the box below.\nYou will find it in <code>LocalSettings.php</code>.",
        "config-localsettings-cli-upgrade": "A <code>LocalSettings.php</code> file has been detected.\nTo upgrade this installation, please run <code>update.php</code> instead",
        "config-localsettings-key": "Upgrade key:",
-       "config-localsettings-badkey": "The key you provided is incorrect.",
+       "config-localsettings-badkey": "The upgrade key you provided is incorrect.",
        "config-upgrade-key-missing": "An existing installation of MediaWiki has been detected.\nTo upgrade this installation, please put the following line at the bottom of your <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "The existing <code>LocalSettings.php</code> appears to be incomplete.\nThe $1 variable is not set.\nPlease change <code>LocalSettings.php</code> so that this variable is set, and click \"{{int:Config-continue}}\".",
        "config-localsettings-connection-error": "An error was encountered when connecting to the database using the settings specified in <code>LocalSettings.php</code>. Please fix these settings and try again.\n\n$1",
index c031466..540826b 100644 (file)
@@ -31,7 +31,7 @@
        "config-localsettings-upgrade": "Un fichier <code>LocalSettings.php</code> a été détecté.\nPour mettre à jour cette installation, veuillez saisir la valeur de <code>$wgUpgradeKey</code> dans le champ ci-dessous.\nVous la trouverez dans <code>LocalSettings.php</code>.",
        "config-localsettings-cli-upgrade": "Un fichier <code>LocalSettings.php</code> a été détecté.\nPour mettre à niveau cette installation, veuillez exécuter <code>update.php</code> à la place",
        "config-localsettings-key": "Clé de mise à jour :",
-       "config-localsettings-badkey": "La clé que vous avez fournie est incorrecte.",
+       "config-localsettings-badkey": "La clé de mise à jour que vous avez fournie n’est pas correcte.",
        "config-upgrade-key-missing": "Une installation existante de MediaWiki a été détectée.\n\nPour mettre à jour cette installation, veuillez ajouter la ligne suivante à la fin de votre fichier <code>LocalSettings.php</code>\n\n$1",
        "config-localsettings-incomplete": "Le fichier <code>LocalSettings.php</code> existant semble être incomplet.\nLa variable $1 n’est pas définie.\nVeuillez modifier <code>LocalSettings.php</code> de sorte que cette variable soit définie, puis cliquer sur « {{int:Config-continue}} ».",
        "config-localsettings-connection-error": "Une erreur est survenue lors de la connexion à la base de données en utilisant la configuration spécifiée dans <code>LocalSettings.php</code>. Veuillez corriger cette configuration puis réessayer.\n\n$1",
index 9458a8f..b46063c 100644 (file)
@@ -13,7 +13,7 @@
        "config-localsettings-upgrade": "Detectouse un ficheiro <code>LocalSettings.php</code>.\nPara actualizar esta instalación, introduza o valor de <code>$wgUpgradeKey</code> na caixa.\nPode atopalo en <code>LocalSettings.php</code>.",
        "config-localsettings-cli-upgrade": "Detectouse un ficheiro <code>LocalSettings.php</code>.\nPara actualizar esta instalación, execute <code>update.php</code>",
        "config-localsettings-key": "Clave de actualización:",
-       "config-localsettings-badkey": "A clave dada é incorrecta.",
+       "config-localsettings-badkey": "A clave de actualización dada é incorrecta.",
        "config-upgrade-key-missing": "Detectouse unha instalación existente de MediaWiki.\nPara actualizar esta instalación, inclúa esta liña ao final do ficheiro <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "Semella que o ficheiro <code>LocalSettings.php</code> existente está incompleto.\nA variable $1 non está establecida.\nModifique o ficheiro <code>LocalSettings.php</code> de xeito que a variable quede establecida e prema en \"{{int:Config-continue}}\".",
        "config-localsettings-connection-error": "Atopouse un erro ao conectar coa base de datos empregando a configuración especificada no ficheiro <code>LocalSettings.php</code>. Corrixa esta configuración e inténteo de novo.\n\n$1",
index b080848..be91270 100644 (file)
@@ -17,7 +17,7 @@
        "config-page-install": "Mopohuli",
        "config-page-complete": "Yilapato",
        "config-page-restart": "Ulangiya instalasi",
-       "config-page-readme": "Pobacawa Wau",
+       "config-page-readme": "Pobacawa wa'u",
        "config-page-releasenotes": "Tuladu mopolopato",
        "config-page-copying": "Mohemi",
        "config-page-upgradedoc": "Mopobohu",
index b8c5102..14f5684 100644 (file)
@@ -1,5 +1,26 @@
 {
-       "@metadata": [],
+       "@metadata": {
+               "authors": [
+                       "Vrhnje"
+               ]
+       },
+       "config-information": "Informacije",
+       "config-your-language": "Vaš jezik:",
+       "config-your-language-help": "Odaberite jezik na kojem će se pojaviti proces instalacije.",
+       "config-wiki-language": "Wiki jezik:",
+       "config-back": "← Povratak",
+       "config-continue": "Dalje →",
+       "config-page-language": "Jezik",
+       "config-page-welcome": "Dobrodošli na MediaWiki!",
+       "config-page-dbconnect": "Spajanje na bazu podataka",
+       "config-page-upgrade": "Ažuriranje postojeće instalacije",
+       "config-page-restart": "Ponovno pokreni instalaciju",
+       "config-page-readme": "Pročitajte više",
+       "config-page-releasenotes": "Informacije o verziji",
+       "config-page-copying": "Kopiranje",
+       "config-page-upgradedoc": "Ažuriranje",
+       "config-page-existingwiki": "Postojeći wiki",
+       "config-restart": "Da, počni iznova",
        "mainpagetext": "'''Softver MediaWiki je uspješno instaliran.'''",
        "mainpagedocfooter": "Pogledajte [//meta.wikimedia.org/wiki/MediaWiki_localisation dokumentaciju o prilagodbi sučelja]\ni [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Vodič za suradnike] za pomoć pri uporabi i podešavanju."
 }
index 572f3af..5a3c0c3 100644 (file)
@@ -24,7 +24,7 @@
        "config-localsettings-upgrade": "È stato rilevato un file <code>LocalSettings.php</code>.\nPer aggiornare questa installazione, si prega di inserire il valore di <code>$wgUpgradeKey</code> nella casella qui sotto.\nLo potete trovare in <code>LocalSettings.php</code>.",
        "config-localsettings-cli-upgrade": "È stato rilevato un file <code>LocalSettings.php</code>.\nPer aggiornare questa installazione, eseguire <code>update.php</code>",
        "config-localsettings-key": "Chiave di aggiornamento:",
-       "config-localsettings-badkey": "La chiave che hai fornito non è corretta.",
+       "config-localsettings-badkey": "La chiave di aggiornamento che hai fornito non è corretta.",
        "config-upgrade-key-missing": "È stata rilevata un'installazione esistente di MediaWiki.\nPer aggiornare questa installazione, si prega di inserire la seguente riga nella parte inferiore del tuo <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "Il file <code>LocalSettings.php</code> esistente sembra essere incompleto.\nLa variabile $1 non è impostata.\nCambia <code>LocalSettings.php</code> in modo che questa variabile sia impostata e fai clic su \"{{int:Config-continue}}\".",
        "config-localsettings-connection-error": "Si è verificato un errore durante la connessione al database utilizzando le impostazioni specificate in <code>LocalSettings.php</code>. Si prega di correggere queste impostazioni e riprovare.\n\n$1",
index 20c8c38..757688f 100644 (file)
@@ -15,7 +15,8 @@
                        "Stultiwikia",
                        "Meelo",
                        "HakanIST",
-                       "McAang"
+                       "McAang",
+                       "Elftrkn"
                ]
        },
        "config-desc": "MediaWiki yükleyicisi",
@@ -24,7 +25,7 @@
        "config-localsettings-upgrade": "Bir <code>LocalSettings.php</code> dosyası algılandı.\nBu kurulumu güncelleştirmek için, lütfen <code>$wgUpgradeKey</code> değerini aşağıdaki kutuya girin.\nBunu <code>LocalSettings.php</code> dosyasında bulabilirsiniz.",
        "config-localsettings-cli-upgrade": "Bir <code>LocalSettings.php</code> dosyası algılandı.\nBu kurulumu güncelleştirmek için, lütfen <code>update.php</code> dosyasını çalıştırın.",
        "config-localsettings-key": "Yükseltme anahtarı:",
-       "config-localsettings-badkey": "Sağladığınız anahtar doğru değil.",
+       "config-localsettings-badkey": "Girdiğiniz güncelleme anahtarı doğru değildir.",
        "config-upgrade-key-missing": "Mevcut bir MediaWiki kurulumu algılandı.\nBu kurulumu güncelleştirmek için, lütfen aşağıdaki satırı <code>LocalSettings.php</code> dosyanızın en altına koyun:\n\n$1",
        "config-localsettings-incomplete": "Mevcut <code>LocalSettings.php</code> eksik gibi görünüyor.\n $1  değişkeni ayarlanmamış.\nLütfen <code>LocalSettings.php</code> dosyasını değiştirin bu değişkenleri kuracak, ve tıklayın  \"{{int:Config-cuntinue}}\".",
        "config-localsettings-connection-error": "<code>LocalSettings.php</code> içinde belirtilen ayarları kullanarak veritabanına bağlanırken bir hatayla karşılaşıldı. Lütfen bu ayarları düzeltin ve yeniden deneyin.\n\n$1",
index d64e7f5..dcfd69a 100644 (file)
@@ -31,7 +31,7 @@
        "config-localsettings-upgrade": "已检测到<code>LocalSettings.php</code>文件。要升级该配置,请在下面的框中输入<code>$wgUpgradeKey</code>的值。您可以在<code>LocalSettings.php</code>中找到它。",
        "config-localsettings-cli-upgrade": "已检测到<code>LocalSettings.php</code>文件。要升级该配置,请直接运行<code>update.php</code>。",
        "config-localsettings-key": "升级密钥:",
-       "config-localsettings-badkey": "您提供的密钥不正确。",
+       "config-localsettings-badkey": "æ\82¨æ\8f\90ä¾\9bç\9a\84å\8d\87级å¯\86é\92¥ä¸\8d正确ã\80\82",
        "config-upgrade-key-missing": "检测到MediaWiki的配置已经存在。若要升级该配置,请将下面一行文本添加到<code>LocalSettings.php</code>的底部:\n\n$1",
        "config-localsettings-incomplete": "当前的<code>LocalSettings.php</code>可能并不完整,因为变量$1没有设置。请在<code>LocalSettings.php</code>设置该变量,并单击“{{int:Config-continue}}”。",
        "config-localsettings-connection-error": "在使用<code>LocalSettings.php</code>中指定的设置连接数据库时发生错误。请修复相应设置并重试。\n\n$1",
diff --git a/includes/jobqueue/jobs/UploadFromUrlJob.php b/includes/jobqueue/jobs/UploadFromUrlJob.php
deleted file mode 100644 (file)
index 28e3c40..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-<?php
-/**
- * Job for asynchronous upload-by-url.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup JobQueue
- */
-
-/**
- * Job for asynchronous upload-by-url.
- *
- * This job is in fact an interface to UploadFromUrl, which is designed such
- * that it does not require any globals. If it does, fix it elsewhere, do not
- * add globals in here.
- *
- * @ingroup JobQueue
- */
-class UploadFromUrlJob extends Job {
-       const SESSION_KEYNAME = 'wsUploadFromUrlJobData';
-
-       /** @var UploadFromUrl */
-       public $upload;
-
-       /** @var User */
-       protected $user;
-
-       public function __construct( Title $title, array $params ) {
-               parent::__construct( 'uploadFromUrl', $title, $params );
-       }
-
-       public function run() {
-               global $wgCopyUploadAsyncTimeout;
-               # Initialize this object and the upload object
-               $this->upload = new UploadFromUrl();
-               $this->upload->initialize(
-                       $this->title->getText(),
-                       $this->params['url'],
-                       false
-               );
-               $this->user = User::newFromName( $this->params['userName'] );
-
-               # Fetch the file
-               $opts = array();
-               if ( $wgCopyUploadAsyncTimeout ) {
-                       $opts['timeout'] = $wgCopyUploadAsyncTimeout;
-               }
-               $status = $this->upload->fetchFile( $opts );
-               if ( !$status->isOk() ) {
-                       $this->leaveMessage( $status );
-
-                       return true;
-               }
-
-               # Verify upload
-               $result = $this->upload->verifyUpload();
-               if ( $result['status'] != UploadBase::OK ) {
-                       $status = $this->upload->convertVerifyErrorToStatus( $result );
-                       $this->leaveMessage( $status );
-
-                       return true;
-               }
-
-               # Check warnings
-               if ( !$this->params['ignoreWarnings'] ) {
-                       $warnings = $this->upload->checkWarnings();
-                       if ( $warnings ) {
-
-                               # Stash the upload
-                               $key = $this->upload->stashFile( $this->user );
-
-                               // @todo FIXME: This has been broken for a while.
-                               // User::leaveUserMessage() does not exist.
-                               if ( $this->params['leaveMessage'] ) {
-                                       $this->user->leaveUserMessage(
-                                               wfMessage( 'upload-warning-subj' )->text(),
-                                               wfMessage( 'upload-warning-msg',
-                                                       $key,
-                                                       $this->params['url'] )->text()
-                                       );
-                               } else {
-                                       $session = MediaWiki\Session\SessionManager::singleton()
-                                               ->getSessionById( $this->params['sessionId'] );
-                                       $this->storeResultInSession( $session, 'Warning',
-                                               'warnings', $warnings );
-                               }
-
-                               return true;
-                       }
-               }
-
-               # Perform the upload
-               $status = $this->upload->performUpload(
-                       $this->params['comment'],
-                       $this->params['pageText'],
-                       $this->params['watch'],
-                       $this->user
-               );
-               $this->leaveMessage( $status );
-
-               return true;
-       }
-
-       /**
-        * Leave a message on the user talk page or in the session according to
-        * $params['leaveMessage'].
-        *
-        * @param Status $status
-        */
-       protected function leaveMessage( $status ) {
-               if ( $this->params['leaveMessage'] ) {
-                       if ( $status->isGood() ) {
-                               // @todo FIXME: user->leaveUserMessage does not exist.
-                               $this->user->leaveUserMessage( wfMessage( 'upload-success-subj' )->text(),
-                                       wfMessage( 'upload-success-msg',
-                                               $this->upload->getTitle()->getText(),
-                                               $this->params['url']
-                                       )->text() );
-                       } else {
-                               // @todo FIXME: user->leaveUserMessage does not exist.
-                               $this->user->leaveUserMessage( wfMessage( 'upload-failure-subj' )->text(),
-                                       wfMessage( 'upload-failure-msg',
-                                               $status->getWikiText(),
-                                               $this->params['url']
-                                       )->text() );
-                       }
-               } else {
-                       $session = MediaWiki\Session\SessionManager::singleton()
-                               ->getSessionById( $this->params['sessionId'] );
-                       if ( $status->isOk() ) {
-                               $this->storeResultInSession( $session, 'Success',
-                                       'filename', $this->upload->getLocalFile()->getName() );
-                       } else {
-                               $this->storeResultInSession( $session, 'Failure',
-                                       'errors', $status->getErrorsArray() );
-                       }
-               }
-       }
-
-       /**
-        * Store a result in the session data. Note that the caller is responsible
-        * for appropriate session_start and session_write_close calls.
-        *
-        * @param MediaWiki\\Session\\Session $session Session to store result into
-        * @param string $result The result (Success|Warning|Failure)
-        * @param string $dataKey The key of the extra data
-        * @param mixed $dataValue The extra data itself
-        */
-       protected function storeResultInSession(
-               MediaWiki\Session\Session $session, $result, $dataKey, $dataValue
-       ) {
-               $data = self::getSessionData( $session, $this->params['sessionKey'] );
-               $data['result'] = $result;
-               $data[$dataKey] = $dataValue;
-               self::setSessionData( $session, $this->params['sessionKey'], $data );
-       }
-
-       /**
-        * Initialize the session data. Sets the initial result to queued.
-        */
-       public function initializeSessionData() {
-               $session = MediaWiki\Session\SessionManager::getGlobalSession();
-               $data = self::getSessionData( $session, $this->params['sessionKey'] );
-               $data['result'] = 'Queued';
-               self::setSessionData( $session, $this->params['sessionKey'], $data );
-       }
-
-       /**
-        * @param MediaWiki\\Session\\Session $session
-        * @param string $key
-        * @return mixed
-        */
-       public static function getSessionData( MediaWiki\Session\Session $session, $key ) {
-               $data = $session->get( self::SESSION_KEYNAME );
-               if ( !is_array( $data ) || !isset( $data[$key] ) ) {
-                       self::setSessionData( $session, $key, array() );
-                       return array();
-               }
-               return $data[$key];
-       }
-
-       /**
-        * @param MediaWiki\\Session\\Session $session
-        * @param string $key
-        * @param mixed $value
-        */
-       public static function setSessionData( MediaWiki\Session\Session $session, $key, $value ) {
-               $data = $session->get( self::SESSION_KEYNAME, array() );
-               if ( !is_array( $data ) ) {
-                       $data = array();
-               }
-               $data[$key] = $value;
-               $session->set( self::SESSION_KEYNAME, $data );
-       }
-}
index db588fd..ddcb636 100644 (file)
@@ -672,11 +672,12 @@ class ManualLogEntry extends LogEntryBase {
         *
         * @param int $newId Id of the log entry.
         * @param string $to One of: rcandudp (default), rc, udp
+        * @return RecentChange|null
         */
        public function publish( $newId, $to = 'rcandudp' ) {
                $log = new LogPage( $this->getType() );
                if ( $log->isRestricted() ) {
-                       return;
+                       return null;
                }
 
                $rc = $this->getRecentChange( $newId );
@@ -694,6 +695,8 @@ class ManualLogEntry extends LogEntryBase {
                        $rc->getAttribute( 'rc_patrolled' ) === 1 ) {
                        PatrolLog::record( $rc, true, $this->getPerformer() );
                }
+
+               return $rc;
        }
 
        public function getType() {
index 98fbde3..9e51b7d 100644 (file)
@@ -295,7 +295,7 @@ class IPTC {
                                        // in iim 4.1, but not in the XMP
                                        // stuff. We're going to just
                                        // extract the first value.
-                                       $con = self::ConvIPTC( $val, $c );
+                                       $con = self::convIPTC( $val, $c );
                                        if ( strlen( $con[0] ) < 5 ) {
                                                wfDebugLog( 'iptc', 'IPTC: '
                                                        . '2:04 too short. '
index 999be92..b04d3c6 100644 (file)
@@ -78,7 +78,7 @@ application/x-stuffit [ARCHIVE]
 application/x-opc+zip  [ARCHIVE]
 application/x-7z-compressed [ARCHIVE]
 
-text/javascript application/x-javascript application/x-ecmascript text/ecmascript      [EXECUTABLE]
+application/javascript text/javascript application/x-javascript application/x-ecmascript text/ecmascript       [EXECUTABLE]
 application/x-bash     [EXECUTABLE]
 application/x-sh       [EXECUTABLE]
 application/x-csh      [EXECUTABLE]
index c3b5190..89c8847 100644 (file)
@@ -36,7 +36,7 @@ application/x-gtar gtar tar
 application/x-gzip gz
 application/x-hdf hdf
 application/x-jar jar
-application/x-javascript js
+application/javascript js
 application/json json
 application/x-koan skp skd skt skm
 application/x-latex latex
index c9af075..f16158b 100644 (file)
@@ -1074,12 +1074,6 @@ class Article implements Page {
                        return false;
                }
 
-               // New page patrol: Get the timestamp of the oldest revison which
-               // the revision table holds for the given page. Then we look
-               // whether it's within the RC lifespan and if it is, we try
-               // to get the recentchanges row belonging to that entry
-               // (with rc_new = 1).
-
                if ( $this->mRevision
                        && !RecentChange::isInRCLifespan( $this->mRevision->getTimestamp(), 21600 )
                ) {
@@ -1103,13 +1097,17 @@ class Article implements Page {
                        __METHOD__
                );
 
-               $cantPatrolNewPage = false;
-               $cantPatrolFile = false;
-
+               // New page patrol: Get the timestamp of the oldest revison which
+               // the revision table holds for the given page. Then we look
+               // whether it's within the RC lifespan and if it is, we try
+               // to get the recentchanges row belonging to that entry
+               // (with rc_new = 1).
+               $recentPageCreation = false;
                if ( $oldestRevisionTimestamp
                        && RecentChange::isInRCLifespan( $oldestRevisionTimestamp, 21600 )
                ) {
                        // 6h tolerance because the RC might not be cleaned out regularly
+                       $recentPageCreation = true;
                        $rc = RecentChange::newFromConds(
                                array(
                                        'rc_new' => 1,
@@ -1123,12 +1121,15 @@ class Article implements Page {
                                // Use generic patrol message for new pages
                                $markPatrolledMsg = wfMessage( 'markaspatrolledtext' );
                        }
-               } else {
-                       $cantPatrolNewPage = true;
                }
 
-               // Allow patrolling of latest file upload
-               if ( !$rc && $wgUseFilePatrol && $this->getTitle()->getNamespace() === NS_FILE ) {
+               // File patrol: Get the timestamp of the latest upload for this page,
+               // check whether it is within the RC lifespan and if it is, we try
+               // to get the recentchanges row belonging to that entry
+               // (with rc_type = RC_LOG, rc_log_type = upload).
+               $recentFileUpload = false;
+               if ( ( !$rc || $rc->getAttribute( 'rc_patrolled' ) ) && $wgUseFilePatrol
+                       && $this->getTitle()->getNamespace() === NS_FILE ) {
                        // Retrieve timestamp of most recent upload
                        $newestUploadTimestamp = $dbr->selectField(
                                'image',
@@ -1140,14 +1141,14 @@ class Article implements Page {
                                && RecentChange::isInRCLifespan( $newestUploadTimestamp, 21600 )
                        ) {
                                // 6h tolerance because the RC might not be cleaned out regularly
+                               $recentFileUpload = true;
                                $rc = RecentChange::newFromConds(
                                        array(
                                                'rc_type' => RC_LOG,
                                                'rc_log_type' => 'upload',
                                                'rc_timestamp' => $newestUploadTimestamp,
                                                'rc_namespace' => NS_FILE,
-                                               'rc_cur_id' => $this->getTitle()->getArticleID(),
-                                               'rc_patrolled' => 0
+                                               'rc_cur_id' => $this->getTitle()->getArticleID()
                                        ),
                                        __METHOD__,
                                        array( 'USE INDEX' => 'rc_timestamp' )
@@ -1156,23 +1157,23 @@ class Article implements Page {
                                        // Use patrol message specific to files
                                        $markPatrolledMsg = wfMessage( 'markaspatrolledtext-file' );
                                }
-                       } else {
-                               $cantPatrolFile = true;
                        }
-               } else {
-                       $cantPatrolFile = true;
                }
 
-               if ( $cantPatrolFile && $cantPatrolNewPage ) {
-                       // Cache the information we gathered above in case we can't patrol
-                       // Don't cache in case we can patrol as this could change
+               if ( !$recentPageCreation && !$recentFileUpload ) {
+                       // Page creation and latest upload (for files) is too old to be in RC
+
+                       // We definitely can't patrol so cache the information
+                       // When a new file version is uploaded, the cache is cleared
                        $cache->set( $key, '1' );
+
+                       return false;
                }
 
                if ( !$rc ) {
                        // Don't cache: This can be hit if the page gets accessed very fast after
-                       // its creation or in case we have high slave lag. In case the revision is
-                       // too old, we will already return above.
+                       // its creation / latest upload or in case we have high slave lag. In case
+                       // the revision is too old, we will already return above.
                        return false;
                }
 
@@ -1187,7 +1188,7 @@ class Article implements Page {
                }
 
                if ( $rc->getPerformer()->equals( $user ) ) {
-                       // Don't show a patrol link for own creations. If the user could
+                       // Don't show a patrol link for own creations/uploads. If the user could
                        // patrol them, they already would be patrolled
                        return false;
                }
index c508abe..92a14af 100644 (file)
@@ -29,10 +29,10 @@ class WikiFilePage extends WikiPage {
        /**
         * @var File
         */
-       protected $mFile = false;                               // !< File object
-       protected $mRepo = null;                            // !<
-       protected $mFileLoaded = false;             // !<
-       protected $mDupes = null;                               // !<
+       protected $mFile = false;
+       protected $mRepo = null;
+       protected $mFileLoaded = false;
+       protected $mDupes = null;
 
        public function __construct( $title ) {
                parent::__construct( $title );
index 7b4a650..5f7e89c 100644 (file)
@@ -5442,18 +5442,18 @@ class Parser {
                                                        if ( $handler->validateParam( $paramName, $match ) ) {
                                                                $handlerOptions[$paramName] = $match;
                                                        } else {
-                                                               // Guess not. Append it to the caption.
+                                                               // Guess not, consider it as caption.
                                                                wfDebug( "$parameterMatch failed parameter validation\n" );
-                                                               $label .= '|' . $parameterMatch;
+                                                               $label = '|' . $parameterMatch;
                                                        }
                                                }
 
                                        } else {
-                                               // concatenate all other pipes
-                                               $label .= '|' . $parameterMatch;
+                                               // Last pipe wins.
+                                               $label = '|' . $parameterMatch;
                                        }
                                }
-                               // remove the first pipe
+                               // Remove the pipe.
                                $label = substr( $label, 1 );
                        }
 
index 72668bf..656e580 100644 (file)
@@ -220,6 +220,17 @@ class ParserOutput extends CacheTime {
                $this->mTitleText = $titletext;
        }
 
+       /**
+        * Get the cacheable text with <mw:editsection> markers still in it. The
+        * return value is suitable for writing back via setText() but is not valid
+        * for display to the user.
+        *
+        * @since 1.27
+        */
+       public function getRawText() {
+               return $this->mText;
+       }
+
        public function getText() {
                $text = $this->mText;
                if ( $this->mEditSectionTokens ) {
index 4ca3a87..817f153 100644 (file)
@@ -237,6 +237,8 @@ class Preprocessor_DOM extends Preprocessor {
                $inHeading = false;
                // True if there are no more greater-than (>) signs right of $i
                $noMoreGT = false;
+               // Map of tag name => true if there are no more closing tags of given type right of $i
+               $noMoreClosingTag = array();
                // True to ignore all input up to the next <onlyinclude>
                $findOnlyinclude = $enableOnlyinclude;
                // Do a line-start run without outputting an LF character
@@ -457,17 +459,21 @@ class Preprocessor_DOM extends Preprocessor {
                                } else {
                                        $attrEnd = $tagEndPos;
                                        // Find closing tag
-                                       if ( preg_match( "/<\/" . preg_quote( $name, '/' ) . "\s*>/i",
+                                       if (
+                                               !isset( $noMoreClosingTag[$name] ) &&
+                                               preg_match( "/<\/" . preg_quote( $name, '/' ) . "\s*>/i",
                                                        $text, $matches, PREG_OFFSET_CAPTURE, $tagEndPos + 1 )
                                        ) {
                                                $inner = substr( $text, $tagEndPos + 1, $matches[0][1] - $tagEndPos - 1 );
                                                $i = $matches[0][1] + strlen( $matches[0][0] );
                                                $close = '<close>' . htmlspecialchars( $matches[0][0] ) . '</close>';
                                        } else {
-                                               // No end tag -- let it run out to the end of the text.
-                                               $inner = substr( $text, $tagEndPos + 1 );
-                                               $i = $lengthText;
-                                               $close = '';
+                                               // No end tag -- don't match the tag, treat opening tag as literal and resume parsing.
+                                               $i = $tagEndPos + 1;
+                                               $accum .= htmlspecialchars( substr( $text, $tagStartPos, $tagEndPos + 1 - $tagStartPos ) );
+                                               // Cache results, otherwise we have O(N^2) performance for input like <foo><foo><foo>...
+                                               $noMoreClosingTag[$name] = true;
+                                               continue;
                                        }
                                }
                                // <includeonly> and <noinclude> just become <ignore> tags
index 50eaefb..28c49fd 100644 (file)
@@ -160,6 +160,8 @@ class Preprocessor_Hash extends Preprocessor {
                $inHeading = false;
                // True if there are no more greater-than (>) signs right of $i
                $noMoreGT = false;
+               // Map of tag name => true if there are no more closing tags of given type right of $i
+               $noMoreClosingTag = array();
                // True to ignore all input up to the next <onlyinclude>
                $findOnlyinclude = $enableOnlyinclude;
                // Do a line-start run without outputting an LF character
@@ -380,17 +382,21 @@ class Preprocessor_Hash extends Preprocessor {
                                } else {
                                        $attrEnd = $tagEndPos;
                                        // Find closing tag
-                                       if ( preg_match( "/<\/" . preg_quote( $name, '/' ) . "\s*>/i",
+                                       if (
+                                               !isset( $noMoreClosingTag[$name] ) &&
+                                               preg_match( "/<\/" . preg_quote( $name, '/' ) . "\s*>/i",
                                                        $text, $matches, PREG_OFFSET_CAPTURE, $tagEndPos + 1 )
                                        ) {
                                                $inner = substr( $text, $tagEndPos + 1, $matches[0][1] - $tagEndPos - 1 );
                                                $i = $matches[0][1] + strlen( $matches[0][0] );
                                                $close = $matches[0][0];
                                        } else {
-                                               // No end tag -- let it run out to the end of the text.
-                                               $inner = substr( $text, $tagEndPos + 1 );
-                                               $i = $lengthText;
-                                               $close = null;
+                                               // No end tag -- don't match the tag, treat opening tag as literal and resume parsing.
+                                               $i = $tagEndPos + 1;
+                                               $accum->addLiteral( substr( $text, $tagStartPos, $tagEndPos + 1 - $tagStartPos ) );
+                                               // Cache results, otherwise we have O(N^2) performance for input like <foo><foo><foo>...
+                                               $noMoreClosingTag[$name] = true;
+                                               continue;
                                        }
                                }
                                // <includeonly> and <noinclude> just become <ignore> tags
index 30be343..0efcebf 100644 (file)
@@ -123,10 +123,10 @@ class IRCColourfulRCFeedFormatter implements RCFeedFormatter {
         * @return string
         */
        public static function cleanupForIRC( $text ) {
-               return Sanitizer::decodeCharReferences( str_replace(
+               return str_replace(
                        array( "\n", "\r" ),
                        array( " ", "" ),
-                       $text
-               ) );
+                       Sanitizer::decodeCharReferences( $text )
+               );
        }
 }
index 1f3085a..74ee6ab 100644 (file)
@@ -41,7 +41,7 @@ class ResourceLoader implements LoggerAwareInterface {
        protected static $debugMode = null;
 
        /** @var array */
-       private static $lessVars = null;
+       private $lessVars = null;
 
        /**
         * Module name/ResourceLoaderModule object pairs
@@ -1589,15 +1589,13 @@ MESSAGE;
        /**
         * Returns LESS compiler set up for use with MediaWiki
         *
-        * @since 1.22
-        * @since 1.27 added $extraVars parameter
-        * @param Config $config
+        * @since 1.27
         * @param array $extraVars Associative array of extra (i.e., other than the
         *   globally-configured ones) that should be used for compilation.
         * @throws MWException
         * @return Less_Parser
         */
-       public static function getLessCompiler( Config $config, $extraVars = array() ) {
+       public function getLessCompiler( $extraVars = array() ) {
                // When called from the installer, it is possible that a required PHP extension
                // is missing (at least for now; see bug 47564). If this is the case, throw an
                // exception (caught by the installer) to prevent a fatal error later on.
@@ -1606,10 +1604,12 @@ MESSAGE;
                }
 
                $parser = new Less_Parser;
-               $parser->ModifyVars( array_merge( self::getLessVars( $config ), $extraVars ) );
-               $parser->SetImportDirs( array_fill_keys( $config->get( 'ResourceLoaderLESSImportPaths' ), '' ) );
+               $parser->ModifyVars( array_merge( $this->getLessVars(), $extraVars ) );
+               $parser->SetImportDirs(
+                       array_fill_keys( $this->config->get( 'ResourceLoaderLESSImportPaths' ), '' )
+               );
                $parser->SetOption( 'relativeUrls', false );
-               $parser->SetCacheDir( $config->get( 'CacheDirectory' ) ?: wfTempDir() );
+               $parser->SetCacheDir( $this->config->get( 'CacheDirectory' ) ?: wfTempDir() );
 
                return $parser;
        }
@@ -1617,16 +1617,15 @@ MESSAGE;
        /**
         * Get global LESS variables.
         *
-        * @param Config $config
-        * @since 1.22
+        * @since 1.27
         * @return array Map of variable names to string CSS values.
         */
-       public static function getLessVars( Config $config ) {
-               if ( !self::$lessVars ) {
-                       $lessVars = $config->get( 'ResourceLoaderLESSVars' );
+       public function getLessVars() {
+               if ( !$this->lessVars ) {
+                       $lessVars = $this->config->get( 'ResourceLoaderLESSVars' );
                        Hooks::run( 'ResourceLoaderGetLessVars', array( &$lessVars ) );
-                       self::$lessVars = $lessVars;
+                       $this->lessVars = $lessVars;
                }
-               return self::$lessVars;
+               return $this->lessVars;
        }
 }
index f5b3bad..98269ae 100644 (file)
@@ -957,7 +957,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        }
                }
 
-               $compiler = ResourceLoader::getLessCompiler( $this->getConfig(), $vars );
+               $compiler = $context->getResourceLoader()->getLessCompiler( $vars );
                $css = $compiler->parseFile( $fileName )->getCss();
                $files = $compiler->AllParsedFiles();
                $this->localFileRefs = array_merge( $this->localFileRefs, $files );
index f92a519..2d01d1d 100644 (file)
@@ -104,7 +104,7 @@ class CookieSessionProvider extends SessionProvider {
 
        public function provideSessionInfo( WebRequest $request ) {
                $info = array(
-                       'id' => $request->getCookie( $this->params['sessionName'], '' )
+                       'id' => $this->getCookie( $request, $this->params['sessionName'], '' )
                );
                if ( !SessionManager::validateSessionId( $info['id'] ) ) {
                        unset( $info['id'] );
@@ -140,7 +140,7 @@ class CookieSessionProvider extends SessionProvider {
                $info += array(
                        'provider' => $this,
                        'persisted' => isset( $info['id'] ),
-                       'forceHTTPS' => $request->getCookie( 'forceHTTPS', '', false )
+                       'forceHTTPS' => $this->getCookie( $request, 'forceHTTPS', '', false )
                );
 
                return new SessionInfo( $this->priority, $info );
@@ -173,10 +173,13 @@ class CookieSessionProvider extends SessionProvider {
                }
 
                $options = $this->cookieOptions;
-               if ( $session->shouldForceHTTPS() || $user->requiresHTTPS() ) {
-                       $response->setCookie( 'forceHTTPS', 'true', $session->shouldRememberUser() ? 0 : null,
-                               array( 'prefix' => '', 'secure' => false ) + $options );
-                       $options['secure'] = true;
+
+               $forceHTTPS = $session->shouldForceHTTPS() || $user->requiresHTTPS();
+               if ( $forceHTTPS ) {
+                       // Don't set the secure flag if the request came in
+                       // over "http", for backwards compat.
+                       // @todo Break that backwards compat properly.
+                       $options['secure'] = $this->config->get( 'CookieSecure' );
                }
 
                $response->setCookie( $this->params['sessionName'], $session->getId(), null,
@@ -199,6 +202,7 @@ class CookieSessionProvider extends SessionProvider {
                        }
                }
 
+               $this->setForceHTTPSCookie( $forceHTTPS, $session, $request );
                $this->setLoggedOutCookie( $session->getLoggedOutTimestamp(), $request );
 
                if ( $sessionData ) {
@@ -227,8 +231,26 @@ class CookieSessionProvider extends SessionProvider {
                        $response->clearCookie( $key, $this->cookieOptions );
                }
 
-               $response->clearCookie( 'forceHTTPS',
-                       array( 'prefix' => '', 'secure' => false ) + $this->cookieOptions );
+               $this->setForceHTTPSCookie( false, null, $request );
+       }
+
+       /**
+        * Set the "forceHTTPS" cookie
+        * @param bool $set Whether the cookie should be set or not
+        * @param SessionBackend|null $backend
+        * @param WebRequest $request
+        */
+       protected function setForceHTTPSCookie(
+               $set, SessionBackend $backend = null, WebRequest $request
+       ) {
+               $response = $request->response();
+               if ( $set ) {
+                       $response->setCookie( 'forceHTTPS', 'true', $backend->shouldRememberUser() ? 0 : null,
+                               array( 'prefix' => '', 'secure' => false ) + $this->cookieOptions );
+               } else {
+                       $response->clearCookie( 'forceHTTPS',
+                               array( 'prefix' => '', 'secure' => false ) + $this->cookieOptions );
+               }
        }
 
        /**
@@ -238,7 +260,7 @@ class CookieSessionProvider extends SessionProvider {
         */
        protected function setLoggedOutCookie( $loggedOut, WebRequest $request ) {
                if ( $loggedOut + 86400 > time() &&
-                       $loggedOut !== (int)$request->getCookie( 'LoggedOut', $this->cookieOptions['prefix'] )
+                       $loggedOut !== (int)$this->getCookie( $request, 'LoggedOut', $this->cookieOptions['prefix'] )
                ) {
                        $request->response()->setCookie( 'LoggedOut', $loggedOut, $loggedOut + 86400,
                                $this->cookieOptions );
@@ -257,7 +279,7 @@ class CookieSessionProvider extends SessionProvider {
        }
 
        public function suggestLoginUsername( WebRequest $request ) {
-                $name = $request->getCookie( 'UserName', $this->cookieOptions['prefix'] );
+                $name = $this->getCookie( $request, 'UserName', $this->cookieOptions['prefix'] );
                 if ( $name !== null ) {
                         $name = User::getCanonicalName( $name, 'usable' );
                 }
@@ -266,17 +288,39 @@ class CookieSessionProvider extends SessionProvider {
 
        /**
         * Fetch the user identity from cookies
-        * @return array (int|null $id, string|null $token)
+        * @param \WebRequest $request
+        * @return array (string|null $id, string|null $username, string|null $token)
         */
        protected function getUserInfoFromCookies( $request ) {
                $prefix = $this->cookieOptions['prefix'];
                return array(
-                       $request->getCookie( 'UserID', $prefix ),
-                       $request->getCookie( 'UserName', $prefix ),
-                       $request->getCookie( 'Token', $prefix ),
+                       $this->getCookie( $request, 'UserID', $prefix ),
+                       $this->getCookie( $request, 'UserName', $prefix ),
+                       $this->getCookie( $request, 'Token', $prefix ),
                );
        }
 
+       /**
+        * Get a cookie. Contains an auth-specific hack.
+        * @param \WebRequest $request
+        * @param string $key
+        * @param string $prefix
+        * @param mixed $default
+        * @return mixed
+        */
+       protected function getCookie( $request, $key, $prefix, $default = null ) {
+               $value = $request->getCookie( $key, $prefix, $default );
+               if ( $value === 'deleted' ) {
+                       // PHP uses this value when deleting cookies. A legitimate cookie will never have
+                       // this value (usernames start with uppercase, token is longer, other auth cookies
+                       // are booleans or integers). Seeing this means that in a previous request we told the
+                       // client to delete the cookie, but it has poor cookie handling. Pretend the cookie is
+                       // not there to avoid invalidating the session.
+                       return null;
+               }
+               return $value;
+       }
+
        /**
         * Return the data to store in cookies
         * @param User $user
index c59cc96..5344321 100644 (file)
@@ -208,7 +208,7 @@ class PHPSessionHandler {
                        throw new \BadMethodCallException( 'Attempt to use PHP session management' );
                }
 
-               $session = $this->manager->getSessionById( $id, true );
+               $session = $this->manager->getSessionById( $id, false );
                if ( !$session ) {
                        return '';
                }
@@ -236,7 +236,15 @@ class PHPSessionHandler {
                        throw new \BadMethodCallException( 'Attempt to use PHP session management' );
                }
 
-               $session = $this->manager->getSessionById( $id );
+               $session = $this->manager->getSessionById( $id, true );
+               if ( !$session ) {
+                       // This can happen under normal circumstances, if the session exists but is
+                       // invalid. Let's emit a log warning instead of a PHP warning.
+                       $this->logger->warning(
+                               __METHOD__ . ": Session \"$id\" cannot be loaded, skipping write."
+                       );
+                       return true;
+               }
 
                // First, decode the string PHP handed us
                $data = \Wikimedia\PhpSessionSerializer::decode( $dataStr );
@@ -331,7 +339,7 @@ class PHPSessionHandler {
                if ( !$this->enable ) {
                        throw new \BadMethodCallException( 'Attempt to use PHP session management' );
                }
-               $session = $this->manager->getSessionById( $id, true );
+               $session = $this->manager->getSessionById( $id, false );
                if ( $session ) {
                        $session->clear();
                }
index 5743b12..95c6f0c 100644 (file)
@@ -408,12 +408,31 @@ final class SessionBackend {
        /**
         * Fetch provider metadata
         * @protected For use by SessionProvider subclasses only
-        * @return mixed
+        * @return array|null
         */
        public function getProviderMetadata() {
                return $this->providerMetadata;
        }
 
+       /**
+        * Set provider metadata
+        * @protected For use by SessionProvider subclasses only
+        * @param array|null $metadata
+        */
+       public function setProviderMetadata( $metadata ) {
+               if ( $metadata !== null && !is_array( $metadata ) ) {
+                       throw new \InvalidArgumentException( '$metadata must be an array or null' );
+               }
+               if ( $this->providerMetadata !== $metadata ) {
+                       $this->providerMetadata = $metadata;
+                       $this->metaDirty = true;
+                       $this->logger->debug(
+                               "SessionBackend $this->id metadata dirty due to provider metadata change"
+                       );
+                       $this->autosave();
+               }
+       }
+
        /**
         * Fetch the session data array
         *
@@ -624,6 +643,7 @@ final class SessionBackend {
                        ) {
                                $this->logger->debug( "SessionBackend $this->id: Taking over PHP session" );
                                session_id( (string)$this->id );
+                               \MediaWiki\quietCall( 'session_cache_limiter', 'private, must-revalidate' );
                                \MediaWiki\quietCall( 'session_start' );
                        }
                }
index 1c8686c..ecc4e54 100644 (file)
@@ -123,7 +123,8 @@ final class SessionManager implements SessionManagerInterface {
                                // Someone used session_id(), so we need to follow suit.
                                // Note this overwrites whatever session might already be
                                // associated with $request with the one for $id.
-                               self::$globalSession = self::singleton()->getSessionById( $id, false, $request );
+                               self::$globalSession = self::singleton()->getSessionById( $id, true, $request )
+                                       ?: $request->getSession();
                        }
                }
                return self::$globalSession;
@@ -177,15 +178,6 @@ final class SessionManager implements SessionManagerInterface {
                $this->logger = $logger;
        }
 
-       public function getPersistedSessionId( WebRequest $request ) {
-               $info = $this->getSessionInfoForRequest( $request );
-               if ( $info && $info->wasPersisted() ) {
-                       return $info->getId();
-               } else {
-                       return null;
-               }
-       }
-
        public function getSessionForRequest( WebRequest $request ) {
                $info = $this->getSessionInfoForRequest( $request );
 
@@ -197,7 +189,7 @@ final class SessionManager implements SessionManagerInterface {
                return $session;
        }
 
-       public function getSessionById( $id, $noEmpty = false, WebRequest $request = null ) {
+       public function getSessionById( $id, $create = false, WebRequest $request = null ) {
                if ( !self::validateSessionId( $id ) ) {
                        throw new \InvalidArgumentException( 'Invalid session ID' );
                }
@@ -217,7 +209,7 @@ final class SessionManager implements SessionManagerInterface {
                        }
                }
 
-               if ( !$noEmpty && $session === null ) {
+               if ( $create && $session === null ) {
                        $ex = null;
                        try {
                                $session = $this->getEmptySessionInternal( $request, $id );
@@ -226,11 +218,6 @@ final class SessionManager implements SessionManagerInterface {
                                        $ex->getMessage() );
                                $session = null;
                        }
-                       if ( $session === null ) {
-                               throw new \UnexpectedValueException(
-                                       'Can neither load the session nor create an empty session', 0, $ex
-                               );
-                       }
                }
 
                return $session;
@@ -500,6 +487,16 @@ final class SessionManager implements SessionManagerInterface {
                \Hooks::run( 'AuthPluginAutoCreate', array( $user ) );
                \Hooks::run( 'LocalUserCreated', array( $user, true ) );
 
+               # Notify AuthPlugin too
+               $tmpUser = $user;
+               $wgAuth->initUser( $tmpUser, true );
+               if ( $tmpUser !== $user ) {
+                       $logger->warning( __METHOD__ . ': ' .
+                               get_class( $wgAuth ) . '::initUser() replaced the user object' );
+               }
+
+               $user->saveSettings();
+
                # Update user count
                \DeferredUpdates::addUpdate( new \SiteStatsUpdate( 0, 0, 0, 0, 1 ) );
 
@@ -662,7 +659,8 @@ final class SessionManager implements SessionManagerInterface {
         * @return bool Whether the session info matches the stored data (if any)
         */
        private function loadSessionInfoFromStore( SessionInfo &$info, WebRequest $request ) {
-               $blob = $this->store->get( wfMemcKey( 'MWSession', $info->getId() ) );
+               $key = wfMemcKey( 'MWSession', $info->getId() );
+               $blob = $this->store->get( $key );
 
                $newParams = array();
 
@@ -670,6 +668,7 @@ final class SessionManager implements SessionManagerInterface {
                        // Sanity check: blob must be an array, if it's saved at all
                        if ( !is_array( $blob ) ) {
                                $this->logger->warning( "Session $info: Bad data" );
+                               $this->store->delete( $key );
                                return false;
                        }
 
@@ -678,6 +677,7 @@ final class SessionManager implements SessionManagerInterface {
                                !isset( $blob['metadata'] ) || !is_array( $blob['metadata'] )
                        ) {
                                $this->logger->warning( "Session $info: Bad data structure" );
+                               $this->store->delete( $key );
                                return false;
                        }
 
@@ -692,6 +692,7 @@ final class SessionManager implements SessionManagerInterface {
                                !array_key_exists( 'provider', $metadata )
                        ) {
                                $this->logger->warning( "Session $info: Bad metadata" );
+                               $this->store->delete( $key );
                                return false;
                        }
 
@@ -701,6 +702,7 @@ final class SessionManager implements SessionManagerInterface {
                                $newParams['provider'] = $provider = $this->getProvider( $metadata['provider'] );
                                if ( !$provider ) {
                                        $this->logger->warning( "Session $info: Unknown provider, " . $metadata['provider'] );
+                                       $this->store->delete( $key );
                                        return false;
                                }
                        } elseif ( $metadata['provider'] !== (string)$provider ) {
index 67d6f5d..14af630 100644 (file)
@@ -34,21 +34,6 @@ use WebRequest;
  * @since 1.27
  */
 interface SessionManagerInterface extends LoggerAwareInterface {
-       /**
-        * Fetch the persisted session ID in a request.
-        *
-        * Note this is not the same thing as whether the session associated with
-        * the request is currently persistent, as the session might have been
-        * first made persistent during this request.
-        *
-        * @param WebRequest $request
-        * @return string|null
-        * @throws \\OverflowException if there are multiple sessions tied for top
-        *  priority in the request. Exception has a property "sessionInfos"
-        *  holding the SessionInfo objects for the sessions involved.
-        */
-       public function getPersistedSessionId( WebRequest $request );
-
        /**
         * Fetch the session for a request
         *
@@ -67,12 +52,13 @@ interface SessionManagerInterface extends LoggerAwareInterface {
        /**
         * Fetch a session by ID
         * @param string $id
-        * @param bool $noEmpty Don't return an empty session
+        * @param bool $create If no session exists for $id, try to create a new one.
+        *  May still return null if a session for $id exists but cannot be loaded.
         * @param WebRequest|null $request Corresponding request. Any existing
         *  session associated with this WebRequest object will be overwritten.
         * @return Session|null
         */
-       public function getSessionById( $id, $noEmpty = false, WebRequest $request = null );
+       public function getSessionById( $id, $create = false, WebRequest $request = null );
 
        /**
         * Fetch a new, empty session
index 74842aa..13dffb4 100644 (file)
@@ -421,13 +421,11 @@ abstract class ChangesListSpecialPage extends SpecialPage {
 
        /**
         * Return the legend displayed within the fieldset
-        * @todo This should not be static, then we can drop the parameter
-        * @todo Not called by anything, should be called by doHeader()
         *
-        * @param IContextSource $context The object available as $this in non-static functions
         * @return string
         */
-       public static function makeLegend( IContextSource $context ) {
+       public function makeLegend() {
+               $context = $this->getContext();
                $user = $context->getUser();
                # The legend showing what the letters and stuff mean
                $legend = Html::openElement( 'dl' ) . "\n";
index 4bdad79..27d2304 100644 (file)
@@ -149,22 +149,23 @@ class MovePageForm extends UnlistedSpecialPage {
                $out->addModuleStyles( 'mediawiki.special.movePage.styles' );
                $this->addHelpLink( 'Help:Moving a page' );
 
+               $out->addWikiMsg( $this->getConfig()->get( 'FixDoubleRedirects' ) ?
+                       'movepagetext' :
+                       'movepagetext-noredirectfixer'
+               );
+
                if ( $this->oldTitle->getNamespace() == NS_USER && !$this->oldTitle->isSubpage() ) {
                        $out->wrapWikiMsg(
-                               "<div class=\"error mw-moveuserpage-warning\">\n$1\n</div>",
+                               "<div class=\"warningbox mw-moveuserpage-warning\">\n$1\n</div>",
                                'moveuserpage-warning'
                        );
                } elseif ( $this->oldTitle->getNamespace() == NS_CATEGORY ) {
                        $out->wrapWikiMsg(
-                               "<div class=\"error mw-movecategorypage-warning\">\n$1\n</div>",
+                               "<div class=\"warningbox mw-movecategorypage-warning\">\n$1\n</div>",
                                'movecategorypage-warning'
                        );
                }
 
-               $out->addWikiMsg( $this->getConfig()->get( 'FixDoubleRedirects' ) ?
-                       'movepagetext' :
-                       'movepagetext-noredirectfixer'
-               );
                $submitVar = 'wpMove';
                $confirm = false;
 
@@ -189,7 +190,10 @@ class MovePageForm extends UnlistedSpecialPage {
                if ( count( $err ) == 1 && isset( $err[0][0] ) && $err[0][0] == 'articleexists'
                        && $newTitle->quickUserCan( 'delete', $user )
                ) {
-                       $out->addWikiMsg( 'delete_and_move_text', $newTitle->getPrefixedText() );
+                       $out->wrapWikiMsg(
+                               "<div class='warningbox'>\n$1\n</div>\n",
+                               array( 'delete_and_move_text', $newTitle->getPrefixedText() )
+                       );
                        $submitVar = 'wpDeleteAndMove';
                        $confirm = true;
                        $err = array();
@@ -198,7 +202,13 @@ class MovePageForm extends UnlistedSpecialPage {
                if ( count( $err ) == 1 && isset( $err[0][0] ) && $err[0][0] == 'file-exists-sharedrepo'
                        && $user->isAllowed( 'reupload-shared' )
                ) {
-                       $out->addWikiMsg( 'move-over-sharedrepo', $newTitle->getPrefixedText() );
+                       $out->wrapWikiMsg(
+                               "<div class='warningbox'>\n$1\n</div>\n",
+                               array(
+                                       'move-over-sharedrepo',
+                                       $newTitle->getPrefixedText()
+                               )
+                       );
                        $submitVar = 'wpMoveOverSharedFile';
                        $err = array();
                }
@@ -228,7 +238,7 @@ class MovePageForm extends UnlistedSpecialPage {
                }
 
                if ( count( $err ) ) {
-                       $out->addHTML( "<div class='error'>\n" );
+                       $out->addHTML( "<div class='errorbox'>\n" );
                        $action_desc = $this->msg( 'action-move' )->plain();
                        $out->addWikiMsg( 'permissionserrorstext-withaction', count( $err ), $action_desc );
 
index 4848d01..f030231 100644 (file)
@@ -396,7 +396,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                $nondefaults = $opts->getChangedValues();
 
                $panel = array();
-               $panel[] = self::makeLegend( $this->getContext() );
+               $panel[] = $this->makeLegend();
                $panel[] = $this->optionsPanel( $defaults, $nondefaults, $numRows );
                $panel[] = '<hr />';
 
index 24e1675..9473dff 100644 (file)
@@ -1566,10 +1566,12 @@ class LoginForm extends SpecialPage {
         * @return bool
         */
        function hasSessionCookie() {
-               global $wgDisableCookieCheck;
+               global $wgDisableCookieCheck, $wgInitialSessionId;
 
-               return $wgDisableCookieCheck ||
-                       SessionManager::singleton()->getPersistedSessionId( $this->getRequest() ) !== null;
+               return $wgDisableCookieCheck || (
+                       $wgInitialSessionId &&
+                       $this->getRequest()->getSession()->getId() === (string)$wgInitialSessionId
+               );
        }
 
        /**
index c894a79..6ebe9a8 100644 (file)
@@ -422,13 +422,15 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                $this->setTopText( $opts );
 
                $lang = $this->getLanguage();
-               $wlInfo = '';
                if ( $opts['days'] > 0 ) {
-                       $timestamp = wfTimestampNow();
-                       $wlInfo = $this->msg( 'wlnote' )->numParams( $numRows, round( $opts['days'] * 24 ) )->params(
-                               $lang->userDate( $timestamp, $user ), $lang->userTime( $timestamp, $user )
-                       )->parse() . "<br />\n";
+                       $days = $opts['days'];
+               } else {
+                       $days = $this->getConfig()->get( 'RCMaxAge' ) / ( 3600 * 24 );
                }
+               $timestamp = wfTimestampNow();
+               $wlInfo = $this->msg( 'wlnote' )->numParams( $numRows, round( $days * 24 ) )->params(
+                       $lang->userDate( $timestamp, $user ), $lang->userTime( $timestamp, $user )
+               )->parse() . "<br />\n";
 
                $nondefaults = $opts->getChangedValues();
                $cutofflinks = $this->msg( 'wlshowtime' ) . ' ' . $this->cutoffselector( $opts );
@@ -530,9 +532,19 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        $days[] = $userWatchlistOption;
                }
 
+               $maxDays = (string)( $this->getConfig()->get( 'RCMaxAge' ) / ( 3600 * 24 ) );
+               // add the maximum possible value, if it isn't available already
+               if ( !in_array( $maxDays, $days ) ) {
+                       $days[] = $maxDays;
+               }
+
                $selected = (string)$options['days'];
+               if ( $selected <= 0 ) {
+                       $selected = $maxDays;
+               }
+
                // add the currently selected value, if it isn't available already
-               if ( !in_array( $selected, $days ) && $selected !== '0' ) {
+               if ( !in_array( $selected, $days ) ) {
                        $days[] = $selected;
                }
 
@@ -548,11 +560,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        $select->addOption( $name, $value );
                }
 
-               // 'all' option
-               $name = $this->msg( 'watchlistall2' )->text();
-               $value = '0';
-               $select->addOption( $name, $value );
-
                return $select->getHTML() . "\n<br />\n";
        }
 
@@ -605,7 +612,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        array( 'id' => 'mw-watchlist-options' )
                );
 
-               $form .= SpecialRecentChanges::makeLegend( $this->getContext() );
+               $form .= $this->makeLegend();
 
                $this->getOutput()->addHTML( $form );
        }
index f8624d0..ad26f7d 100644 (file)
@@ -692,10 +692,10 @@ abstract class UploadBase {
         * @param string $pageText
         * @param bool $watch
         * @param User $user
-        *
+        * @param string[] $tags Change tags to add to the log entry and page revision.
         * @return Status Indicating the whether the upload succeeded.
         */
-       public function performUpload( $comment, $pageText, $watch, $user ) {
+       public function performUpload( $comment, $pageText, $watch, $user, $tags = array() ) {
                $this->getLocalFile()->load( File::READ_LATEST );
 
                $status = $this->getLocalFile()->upload(
@@ -705,7 +705,8 @@ abstract class UploadBase {
                        File::DELETE_SOURCE,
                        $this->mFileProps,
                        false,
-                       $user
+                       $user,
+                       $tags
                );
 
                if ( $status->isGood() ) {
index 75540c1..1276842 100644 (file)
@@ -178,17 +178,10 @@ class UploadFromStash extends UploadBase {
        }
 
        /**
-        * Perform the upload, then remove the database record afterward.
-        * @param string $comment
-        * @param string $pageText
-        * @param bool $watch
-        * @param User $user
-        * @return Status
+        * Remove the database record after a successful upload.
         */
-       public function performUpload( $comment, $pageText, $watch, $user ) {
-               $rv = parent::performUpload( $comment, $pageText, $watch, $user );
+       public function postProcessUpload() {
+               parent::postProcessUpload();
                $this->unsaveUploadedFile();
-
-               return $rv;
        }
 }
index 23a4962..f6d538b 100644 (file)
@@ -29,8 +29,7 @@
  * @author Michael Dale
  */
 class UploadFromUrl extends UploadBase {
-       protected $mAsync, $mUrl;
-       protected $mIgnoreWarnings = true;
+       protected $mUrl;
 
        protected $mTempPath, $mTmpHandle;
 
@@ -130,21 +129,12 @@ class UploadFromUrl extends UploadBase {
         *
         * @param string $name
         * @param string $url
-        * @param bool|string $async Whether the download should be performed
-        * asynchronous. False for synchronous, async or async-leavemessage for
-        * asynchronous download.
         * @throws MWException
         */
-       public function initialize( $name, $url, $async = false ) {
-               global $wgAllowAsyncCopyUploads;
-
+       public function initialize( $name, $url ) {
                $this->mUrl = $url;
-               $this->mAsync = $wgAllowAsyncCopyUploads ? $async : false;
-               if ( $async ) {
-                       throw new MWException( 'Asynchronous copy uploads are no longer possible as of r81612.' );
-               }
 
-               $tempPath = $this->mAsync ? null : $this->makeTemporaryFile();
+               $tempPath = $this->makeTemporaryFile();
                # File size and removeTempFile will be filled in later
                $this->initializePathInfo( $name, $tempPath, 0, false );
        }
@@ -186,9 +176,9 @@ class UploadFromUrl extends UploadBase {
        }
 
        /**
-        * Download the file (if not async)
+        * Download the file
         *
-        * @param array $httpOptions Array of options for MWHttpRequest. Ignored if async.
+        * @param array $httpOptions Array of options for MWHttpRequest.
         *   This could be used to override the timeout on the http request.
         * @return Status
         */
@@ -203,11 +193,7 @@ class UploadFromUrl extends UploadBase {
                if ( !self::isAllowedUrl( $this->mUrl ) ) {
                        return Status::newFatal( 'upload-copy-upload-invalid-url' );
                }
-               if ( !$this->mAsync ) {
-                       return $this->reallyFetchFile( $httpOptions );
-               }
-
-               return Status::newGood();
+               return $this->reallyFetchFile( $httpOptions );
        }
 
        /**
@@ -311,91 +297,4 @@ class UploadFromUrl extends UploadBase {
 
                return $status;
        }
-
-       /**
-        * Wrapper around the parent function in order to defer verifying the
-        * upload until the file really has been fetched.
-        * @return array|mixed
-        */
-       public function verifyUpload() {
-               if ( $this->mAsync ) {
-                       return array( 'status' => UploadBase::OK );
-               }
-
-               return parent::verifyUpload();
-       }
-
-       /**
-        * Wrapper around the parent function in order to defer checking warnings
-        * until the file really has been fetched.
-        * @return array
-        */
-       public function checkWarnings() {
-               if ( $this->mAsync ) {
-                       $this->mIgnoreWarnings = false;
-
-                       return array();
-               }
-
-               return parent::checkWarnings();
-       }
-
-       /**
-        * Wrapper around the parent function in order to defer checking protection
-        * until we are sure that the file can actually be uploaded
-        * @param User $user
-        * @return bool|mixed
-        */
-       public function verifyTitlePermissions( $user ) {
-               if ( $this->mAsync ) {
-                       return true;
-               }
-
-               return parent::verifyTitlePermissions( $user );
-       }
-
-       /**
-        * Wrapper around the parent function in order to defer uploading to the
-        * job queue for asynchronous uploads
-        * @param string $comment
-        * @param string $pageText
-        * @param bool $watch
-        * @param User $user
-        * @return Status
-        */
-       public function performUpload( $comment, $pageText, $watch, $user ) {
-               if ( $this->mAsync ) {
-                       $sessionKey = $this->insertJob( $comment, $pageText, $watch, $user );
-
-                       return Status::newFatal( 'async', $sessionKey );
-               }
-
-               return parent::performUpload( $comment, $pageText, $watch, $user );
-       }
-
-       /**
-        * @param string $comment
-        * @param string $pageText
-        * @param bool $watch
-        * @param User $user
-        * @return string
-        */
-       protected function insertJob( $comment, $pageText, $watch, $user ) {
-               $sessionKey = $this->stashSession();
-               $job = new UploadFromUrlJob( $this->getTitle(), array(
-                       'url' => $this->mUrl,
-                       'comment' => $comment,
-                       'pageText' => $pageText,
-                       'watch' => $watch,
-                       'userName' => $user->getName(),
-                       'leaveMessage' => $this->mAsync == 'async-leavemessage',
-                       'ignoreWarnings' => $this->mIgnoreWarnings,
-                       'sessionId' => MediaWiki\Session\SessionManager::getGlobalSession()->getId(),
-                       'sessionKey' => $sessionKey,
-               ) );
-               $job->initializeSessionData();
-               JobQueueGroup::singleton()->push( $job );
-
-               return $sessionKey;
-       }
 }
index 286538b..6f713f1 100644 (file)
@@ -102,6 +102,12 @@ class BotPassword implements IDBAccessObject {
         * @return BotPassword|null
         */
        public static function newFromCentralId( $centralId, $appId, $flags = self::READ_NORMAL ) {
+               global $wgEnableBotPasswords;
+
+               if ( !$wgEnableBotPasswords ) {
+                       return null;
+               }
+
                list( $index, $options ) = DBAccessObjectUtils::getDBOptions( $flags );
                $db = self::getDB( $index );
                $row = $db->selectRow(
@@ -334,6 +340,12 @@ class BotPassword implements IDBAccessObject {
         * @return bool Whether any passwords were invalidated
         */
        public static function invalidateAllPasswordsForCentralId( $centralId ) {
+               global $wgEnableBotPasswords;
+
+               if ( !$wgEnableBotPasswords ) {
+                       return false;
+               }
+
                $dbw = self::getDB( DB_MASTER );
                $dbw->update(
                        'bot_passwords',
@@ -362,6 +374,12 @@ class BotPassword implements IDBAccessObject {
         * @return bool Whether any passwords were removed
         */
        public static function removeAllPasswordsForCentralId( $centralId ) {
+               global $wgEnableBotPasswords;
+
+               if ( !$wgEnableBotPasswords ) {
+                       return false;
+               }
+
                $dbw = self::getDB( DB_MASTER );
                $dbw->delete(
                        'bot_passwords',
index 4c2b5b7..4b833ba 100644 (file)
@@ -23,6 +23,8 @@
 /**
  * The CentralIdLookup service allows for connecting local users with
  * cluster-wide IDs.
+ *
+ * @since 1.27
  */
 abstract class CentralIdLookup implements IDBAccessObject {
        // Audience options for accessors
index 58892ea..c0f9c05 100644 (file)
@@ -28,6 +28,7 @@
  *  $wgSharedDB and $wgSharedTables set, and that all wikis involved in the
  *  sharing are listed in $wgLocalDatabases, and that no wikis not involved in
  *  the sharing are listed in $wgLocalDatabases.
+ * @since 1.27
  */
 class LocalIdLookup extends CentralIdLookup {
 
index 6ec0ff0..2fadd6b 100644 (file)
@@ -327,7 +327,9 @@ class User implements IDBAccessObject {
                // If this is called too early, things are likely to break.
                if ( $this->mFrom === 'session' && empty( $wgFullyInitialised ) ) {
                        \MediaWiki\Logger\LoggerFactory::getInstance( 'session' )
-                               ->warning( 'User::loadFromSession called before the end of Setup.php' );
+                               ->warning( 'User::loadFromSession called before the end of Setup.php', array(
+                                       'exception' => new Exception( 'User::loadFromSession called before the end of Setup.php' ),
+                               ) );
                        $this->loadDefaults();
                        $this->mLoadedItems = $oldLoadedItems;
                        return;
@@ -1085,8 +1087,7 @@ class User implements IDBAccessObject {
                $this->mOptionOverrides = null;
                $this->mOptionsLoaded = false;
 
-               $request = $this->getRequest();
-               $loggedOut = $request ? $request->getSession()->getLoggedOutTimestamp() : 0;
+               $loggedOut = $this->mRequest ? $this->mRequest->getSession()->getLoggedOutTimestamp() : 0;
                if ( $loggedOut !== 0 ) {
                        $this->mTouched = wfTimestamp( TS_MW, $loggedOut );
                } else {
@@ -1252,9 +1253,14 @@ class User implements IDBAccessObject {
                        $all = false;
                }
 
+               if ( isset( $row->user_touched ) ) {
+                       $this->mTouched = wfTimestamp( TS_MW, $row->user_touched );
+               } else {
+                       $all = false;
+               }
+
                if ( isset( $row->user_email ) ) {
                        $this->mEmail = $row->user_email;
-                       $this->mTouched = wfTimestamp( TS_MW, $row->user_touched );
                        $this->mToken = $row->user_token;
                        if ( $this->mToken == '' ) {
                                $this->mToken = null;
index 4881e68..9ac5009 100644 (file)
@@ -135,7 +135,7 @@ class UIDGenerator {
                        $time = $info[0];
                        $counter = $info[1];
                }
-               // Take the 46 MSBs of "milliseconds since epoch"
+               // Take the 46 LSBs of "milliseconds since epoch"
                $id_bin = $this->millisecondsSinceEpochBinary( $time );
                // Add a 10 bit counter resulting in 56 bits total
                $id_bin .= str_pad( decbin( $counter ), 10, '0', STR_PAD_LEFT );
@@ -191,7 +191,7 @@ class UIDGenerator {
                        $counter = $info[1];
                        $clkSeq = $info[2];
                }
-               // Take the 46 bits of "milliseconds since epoch"
+               // Take the 46 LSBs of "milliseconds since epoch"
                $id_bin = $this->millisecondsSinceEpochBinary( $time );
                // Add a 20 bit counter resulting in 66 bits total
                $id_bin .= str_pad( decbin( $counter ), 20, '0', STR_PAD_LEFT );
@@ -526,7 +526,7 @@ class UIDGenerator {
 
        /**
         * @param array $time Result of UIDGenerator::millitime()
-        * @return string 46 MSBs of "milliseconds since epoch" in binary (rolls over in 4201)
+        * @return string 46 LSBs of "milliseconds since epoch" in binary (rolls over in 4201)
         * @throws RuntimeException
         */
        protected function millisecondsSinceEpochBinary( array $time ) {
index 5a14003..c27755e 100644 (file)
        'iu' => 'ᐃᓄᒃᑎᑐᑦ/inuktitut', # Inuktitut (macro language, see ike/ikt, falls back to ike-cans)
        'ja' => '日本語',    # Japanese
        'jam' => 'Patois',      # Jamaican Creole English
-       'jbo' => 'Lojban',              # Lojban
+       'jbo' => 'la .lojban.',         # Lojban
        'jut' => 'jysk',        # Jutish / Jutlandic
        'jv' => 'Basa Jawa',    # Javanese
        'ka' => 'ქართული',        # Georgian
index e2dea1d..80cf694 100644 (file)
@@ -53,7 +53,7 @@ class LanguageLa extends Language {
                                '/u[ms]$/',                     # 2nd declension singular
                                '/ommunia$/',                   # 3rd declension neuter plural (partly)
                                '/a$/',                         # 1st declension singular
-                               '/libri$/', '/nuntii$/',        # 2nd declension plural (partly)
+                               '/libri$/', '/nuntii$/', '/datae$/', # 2nd declension plural (partly)
                                '/tio$/', '/ns$/', '/as$/',     # 3rd declension singular (partly)
                                '/es$/'                         # 5th declension singular
                        );
@@ -61,7 +61,7 @@ class LanguageLa extends Language {
                                'i',
                                'ommunium',
                                'ae',
-                               'librorum', 'nuntiorum',
+                               'librorum', 'nuntiorum', 'datorum',
                                'tionis', 'ntis', 'atis',
                                'ei'
                        );
@@ -72,7 +72,7 @@ class LanguageLa extends Language {
                                '/u[ms]$/',                     # 2nd declension singular
                                '/a$/',                         # 1st declension singular
                                '/ommuniam$/',              # 3rd declension neuter plural (partly)
-                               '/libri$/', '/nuntii$/',        # 2nd declension plural (partly)
+                               '/libri$/', '/nuntii$/', '/datam$/', # 2nd declension plural (partly)
                                '/tio$/', '/ns$/', '/as$/',     # 3rd declension singular (partly)
                                '/es$/'                         # 5th declension singular
                        );
@@ -80,7 +80,7 @@ class LanguageLa extends Language {
                                'um',
                                'am',
                                'ommunia',
-                               'libros', 'nuntios',
+                               'libros', 'nuntios', 'data',
                                'tionem', 'ntem', 'atem',
                                'em'
                        );
@@ -91,7 +91,7 @@ class LanguageLa extends Language {
                                '/u[ms]$/',                     # 2nd declension singular
                                '/ommunia$/',                   # 3rd declension neuter plural (partly)
                                '/a$/',                         # 1st declension singular
-                               '/libri$/', '/nuntii$/',        # 2nd declension plural (partly)
+                               '/libri$/', '/nuntii$/', '/data$/', # 2nd declension plural (partly)
                                '/tio$/', '/ns$/', '/as$/',     # 3rd declension singular (partly)
                                '/es$/'                         # 5th declension singular
                        );
@@ -99,7 +99,7 @@ class LanguageLa extends Language {
                                'o',
                                'ommunibus',
                                'a',
-                               'libris', 'nuntiis',
+                               'libris', 'nuntiis', 'datis',
                                'tione', 'nte', 'ate',
                                'e'
                        );
index 51e930c..59c868c 100644 (file)
        "passwordreset-emailtext-ip": "Iemand, waarskynlik u vanaf die IP-adres $1, het u gebruikersgegewens vir {{SITENAME}} ($4) opgevra.\nDie volgende {{PLURAL:$3|gebruiker is|gebruikers is}} aan die e-posadres gekoppel:\n\n$2\n\n{{PLURAL:$3|Die tydelike wagwoord verval|Hierdie tydelike wagwoorde verval}} oor {{PLURAL:$5|een dag|$5 dae}}.\nMeld asseblief nou aan en wysig u wagwoord. As u dit nie versoek het nie, of as u die oorspronklike wagwoord nog ken en dit nie wil verander nie, ignoreer die berig en hou aan om u ou wagwoord te gebruik.",
        "passwordreset-emailtext-user": "Gebruiker $1 op die webtuiste {{SITENAME}} het u gebruikersgegewens vir {{SITENAME}} ($4) opgevra.\nDie volgende {{PLURAL:$3|gebruiker is|gebruikers is}} aan die e-posadres gekoppel:\n\n$2\n\n{{PLURAL:$3|Die tydelike wagwoord verval|Hierdie tydelike wagwoorde verval}} oor {{PLURAL:$5|een dag|$5 dae}}.\nMeld asseblief aan en verander u wagwoord nou. As u dit nie versoek het nie, of as u die oorspronklike wagwoord nog ken en dit nie wil verander nie, ignoreer die berig en hou aan om u ou wagwoord te gebruik.",
        "passwordreset-emailelement": "Gebruikersnaam: \n$1\n\nTydelike wagwoord: \n$2",
-       "passwordreset-emailsent": "'n E-pos is gestuur om u wagwoord te herstel.",
+       "passwordreset-emailsentemail": "'n E-pos is gestuur om u wagwoord te herstel.",
        "passwordreset-emailsent-capture": "'n E-pos vir die herstel van 'n wagwoord is gestuur. Dit word hieronder vertoon.",
        "passwordreset-emailerror-capture": "'n E-pos vir die herstel van 'n wagwoord is saamgestel. Dit word hieronder vertoon. Die uitstuur daarvan na die {{GENDER:$2|gebruiker}} het egter gefaal: $1",
        "changeemail": "Wysig E-posadres",
        "prefs-displayrc": "Vertoonopsies",
        "prefs-displaywatchlist": "Weergaweopsies",
        "prefs-diffs": "Verskille",
-       "email-address-validity-valid": "Die e-posadres lyk geldig",
-       "email-address-validity-invalid": "Verskaf 'n geldige e-posadres",
        "userrights": "Bestuur gebruikersregte",
        "userrights-lookup-user": "Beheer gebruikersgroepe",
        "userrights-user-editname": "Voer gebruikersnaam in:",
        "right-blockemail": "Ontneem 'n gebruiker die reg om E-pos te stuur",
        "right-hideuser": "Blokkeer 'n gebruiker, versteek dit van die publiek",
        "right-ipblock-exempt": "Omseil IP-blokkades",
-       "right-proxyunbannable": "Blokkades vir instaanbedieners (proxy's) geld nie",
        "right-unblockself": "Eie gebruiker deblokkeer",
        "right-protect": "Verander beveiligingsvlakke en wysig kaskade-beskermde bladsye",
        "right-editprotected": "Wysig bladsye beskermd as \"{{int:protect-level-sysop}}\"",
        "watchthisupload": "Hou die lêer dop",
        "filewasdeleted": "'n Lêer met hierdie naam is al voorheen opgelaai en daarna geskrap.\nKyk asseblief na die $1 voor u aangaan om dit weer op te laai.",
        "filename-bad-prefix": "Die naam van die lêer wat u besig is om op te laai begin met '''\"$1\"''', wat 'n nie-beskrywende term is, gewoonlik outomaties toegedien deur digitale kameras.\nKies asseblief 'n meer beskrywende naam vir die lêer.",
-       "upload-success-subj": "Laai suksesvol",
-       "upload-success-msg": "U het [$2] suksesvol opgelaai. Dit is nou beskikbaar by: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Oplaaiprobleem",
-       "upload-failure-msg": "Daar was 'n probleem met u oplaai van [$2]:\n\n$1",
-       "upload-warning-subj": "Oplaai-waarskuwing",
-       "upload-warning-msg": "Daar was 'n probleem met u oplaai van [$2].\nGaan terug na die [[Special:Upload/stash/$1|oplaaivorm]] om die probleem op te los.",
        "upload-proto-error": "Verkeerde protokol",
        "upload-proto-error-text": "Oplaaie via hierdie metode vereis dat die URL met <code>http://</code> of <code>ftp://</code> begin.",
        "upload-file-error": "Interne fout",
        "activeusers-hidebots": "Versteek bots",
        "activeusers-hidesysops": "Versteek administrateurs",
        "activeusers-noresult": "Geen gebruikers gevind nie.",
+       "activeusers-submit": "Wys",
        "listgrouprights": "Gebruikersgroepregte",
        "listgrouprights-summary": "Hier volg 'n lys van gebruikersgroepe met hulle ooreenstemmende regte wat op die wiki gedefinieer is.\nDaar kan [[{{MediaWiki:Listgrouprights-helppage}}|extra inligting]] oor individuele regte aanwesig wees.",
        "listgrouprights-key": "Sleutel:\n* <span class=\"listgrouprights-granted\">Toegekende regte</span>\n* <span class=\"listgrouprights-revoked\">Teruggetrekte regte</span>",
        "wlheader-showupdated": "Bladsye wat verander is sedert u hulle laas besoek het word in '''vetdruk''' uitgewys.",
        "wlnote": "Hier volg die laaste {{PLURAL:$1|verandering|'''$1''' veranderings}} binne die laaste {{PLURAL:$2|uur|'''$2''' ure}}, soos vanaf $3 om $4.",
        "wlshowlast": "Wys afgelope $1 ure, $2 dae of",
-       "watchlistall2": "alles",
        "watchlist-hide": "Versteek",
        "wlshowtime": "Wys laaste:",
        "wlshowhideminor": "klein wysigings",
        "contributions": "{{GENDER:$1|Gebruikersbydraes}}",
        "contributions-title": "$1 se bydraes",
        "mycontris": "Bydraes",
+       "anoncontribs": "Bydraes",
        "contribsub2": "Vir {{GENDER:$3|$1}} ($2)",
        "contributions-userdoesnotexist": "Die gebruiker \"$1\" is nie geregistreer nie.",
        "nocontribs": "Geen veranderinge wat by hierdie kriteria pas, is gevind nie.",
        "javascripttest-pagetext-frameworks": "Kies een van die volgende toetsraamwerke: $1",
        "javascripttest-pagetext-skins": "Kies 'n omslag waarmee die toets uitgevoer moet word:",
        "javascripttest-qunit-intro": "Sien die [$1 toetsdokumentasie] op mediawiki.org.",
-       "tooltip-pt-userpage": "My gebruikerbladsy",
+       "tooltip-pt-userpage": "{{GENDER:|My}} gebruikerbladsy",
        "tooltip-pt-anonuserpage": "Die gebruikersbladsy vir die IP-adres waaronder u wysigings aanbring",
-       "tooltip-pt-mytalk": "My besprekingsbladsy",
+       "tooltip-pt-mytalk": "{{GENDER:|My}} besprekingsbladsy",
        "tooltip-pt-anontalk": "Bespreking oor bydraes van hierdie IP-adres",
-       "tooltip-pt-preferences": "My voorkeure",
+       "tooltip-pt-preferences": "{{GENDER:|My}} voorkeure",
        "tooltip-pt-watchlist": "Die lys bladsye wat u vir veranderinge dophou",
-       "tooltip-pt-mycontris": "Lys van my bydraes",
+       "tooltip-pt-mycontris": "Lys van {{GENDER:|my}} bydraes",
        "tooltip-pt-login": "U word aangemoedig om aan te meld. Dit is egter nie verpligtend nie.",
        "tooltip-pt-logout": "Meld af",
        "tooltip-pt-createaccount": "U word aangemoedig om 'n gebruiker te skep en aan te meld, hoewel dit nie verpligtend is nie.",
        "tooltip-t-recentchangeslinked": "Onlangse wysigings aan bladsye wat vanaf hierdie bladsy geskakel is",
        "tooltip-feed-rss": "RSS-voed vir hierdie bladsy",
        "tooltip-feed-atom": "Atoomvoer vir hierdie bladsy",
-       "tooltip-t-contributions": "Bekyk 'n lys van bydraes deur hierdie gebruiker",
+       "tooltip-t-contributions": "Bekyk 'n lys van bydraes deur {{GENDER:$1|hierdie gebruiker}}",
        "tooltip-t-emailuser": "Stuur 'n e-pos aan hierdie gebruiker",
        "tooltip-t-upload": "Laai lêers op",
        "tooltip-t-specialpages": "'n Lys van al die spesiale bladsye",
index 31bb696..47d10c2 100644 (file)
        "virus-scanfailed": "فشل المسح (كود $1)",
        "virus-unknownscanner": "مضاد فيروسات غير معروف:",
        "logouttext": "<strong>أنت الآن غير مسجل الدخول.</strong> قد ترى بعض الصفحات كما لو أنك ما زلت مسجل الدخول، وذلك حتى تفرغ التخزين المؤقت في متصفحك.",
+       "cannotlogoutnow-title": "لا يمكن تسجيل الخروج الآن",
+       "cannotlogoutnow-text": "لا يمكن تسجيل الخروج عند استخدام $1",
        "welcomeuser": "أهلاً بك يا $1!",
        "welcomecreation-msg": "تم إنشاء حسابك.\nلا تنس تعديل [[Special:Preferences|تفضيلاتك في {{SITENAME}}]].",
        "yourname": "اسم المستخدم:",
        "remembermypassword": "تذكر دخولي بهذا المتصفح (لمدة أقصاها {{PLURAL:$1||يوم واحد|يومان|$1 أيام|$1 يوما|$1 يوم}})",
        "userlogin-remembermypassword": "أبقني مسجلا للدخول",
        "userlogin-signwithsecure": "الولوج باتصّال مؤمّن",
+       "cannotloginnow-title": "لا يمكن تسجيل الدخول الآن",
+       "cannotloginnow-text": "لا يمكن تسجيل الدخول عند استخدام $1.",
        "yourdomainname": "نطاقك:",
        "password-change-forbidden": "أنت لا يمكنك تغيير كلمات السر على هذا الويكي.",
        "externaldberror": "هناك إما خطأ في دخول قاعدة البيانات الخارجية أو أنه غير مسموح لك بتحديث حسابك الخارجي.",
        "resetpass_submit": "ضبط كلمة السر والدخول",
        "changepassword-success": "تم تغيير كلمة السر بنجاح!",
        "changepassword-throttled": "لديك محاولات تسجيل دخول كثيرة حديثة. من فضلك انتظر $1 قبل المحاولة ثانية.",
+       "botpasswords-label-cancel": "ألغ",
+       "botpasswords-label-delete": "احذف",
+       "botpasswords-label-resetpassword": "أعد ضبط كلمة السر",
        "resetpass_forbidden": "كلمات السر لا يمكن تغييرها",
        "resetpass-no-info": "يجب أن تكون مسجل الدخول للوصول إلى هذه الصفحة مباشرة.",
        "resetpass-submit-loggedin": "تغيير كلمة السر",
        "filewasdeleted": "تم رفع ثم حذف ملف بهذا الاسم من قبل.\nمن الأفضل مراجعة $1 قبل رفعه مرة أخرى.",
        "filename-bad-prefix": "اسم الملف الذي ترفعه يبدأ ب'''\"$1\"'''، وهو اسم غير وصفي غالباً ما تخصصه الكاميرات الرقمية تلقائياً.\nمن فضلك اختر اسماً يصف ملفك بوضوح أكثر.",
        "filename-prefix-blacklist": " #<!-- اترك هذا السطر تماما كما هو --> <pre>\n# الصيغة كالتالي:\n#   * كل شيء من علامة \"#\" إلى آخر السطر هو تعليق\n#   * كل سطر غير فارغ هو بادئة لأسماء الملفات النمطية التي توضع تلقائيا بواسطة الكاميرات الرقمية\nCIMG # كاسيو\nDSC_ # نيكون\nDSCF # فوجي\nDSCN # نيكون\nDUW # بعض الهواتف المحمولة\nIMG # عام\nJD # جينوبتيك\nMGP # بينتاكس\nPICT # متنوع\n #</pre> <!-- اترك هذا السطر تماما كما هو -->",
-       "upload-success-subj": "تم رفع الملف بنجاح",
-       "upload-success-msg": "مرفوعك من [$2] قد نجح، وهو متوفر هنا: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "مشكلة رفع",
-       "upload-failure-msg": "توجد مشكلة في مرفوعك من [$2]:\n\n$1",
-       "upload-warning-subj": "تحذير رفع",
-       "upload-warning-msg": "ثمة مشكلة في مرفوعك من [$2]. يمكنك الرجوع إلى [[Special:Upload/stash/$1|نموذج الرفع]] لتصحيح المشكلة.",
        "upload-proto-error": "بروتوكول غير صحيح",
        "upload-proto-error-text": "الرفع عن بعد يتطلب مساراً يبدأ بـ <code>http://</code> أو <code>ftp://</code>.",
        "upload-file-error": "خطأ داخلي",
        "log-title-wildcard": "ابحث عن عناوين تبدأ بهذا النص",
        "showhideselectedlogentries": "غير رؤية مدخلات السجل المختارة",
        "log-edit-tags": "عدل وسوم مدخلات السجل المختار",
+       "checkbox-select": "اختر: $1",
+       "checkbox-all": "الكل",
+       "checkbox-none": "لا شيء",
+       "checkbox-invert": "اعكس",
        "allpages": "كل الصفحات",
        "nextpage": "الصفحة التالية ($1)",
        "prevpage": "الصفحة السابقة ($1)",
        "wlheader-showupdated": "الصفحات التي تم تحريرها بعد مطالعتك إياها آخر مرة عناوينها بالخط '''الغليظ'''",
        "wlnote": "بالأسفل {{PLURAL:$1|لا توجد تغييرات|التغيير الأخير|آخر تغييرين|آخر '''$1''' تغييرات|آخر '''$1''' تغييرا|آخر '''$1''' تغيير}} في {{PLURAL:$2||'''الساعة''' الماضية|'''الساعتين''' الماضيتين|ال'''$2''' ساعات الماضية|ال'''$2''' ساعة الماضية}} وفقاً ل$3، $4.",
        "wlshowlast": "عرض آخر $1 ساعات $2 يوما",
-       "watchlistall2": "الكل",
        "watchlist-hide": "إخفاء",
        "watchlist-submit": "أظهر",
        "wlshowtime": "الفترة الزمنية للعرض:",
        "redirect-page": "معرف الصفحة",
        "redirect-revision": "مراجعة صفحة",
        "redirect-file": "اسم ملف",
+       "redirect-logid": "معرف السجل",
        "redirect-not-exists": "المطلوب غير موجود",
        "fileduplicatesearch": "بحث عن ملفات مكررة",
        "fileduplicatesearch-summary": "ابحث عن الملفات المكررة بناء على قيم الهاش.",
        "mw-widgets-dateinput-no-date": "لا تاريخ تم اختياره",
        "mw-widgets-titleinput-description-new-page": "الصفحة غير موجودة بعد",
        "mw-widgets-titleinput-description-redirect": "تحويل إلى $1",
-       "api-error-blacklisted": "اختر عنوانا مختلفا ومفهوما."
+       "api-error-blacklisted": "اختر عنوانا مختلفا ومفهوما.",
+       "randomrootpage": "صفحة جذر عشوائية"
 }
index 138696f..e5320cc 100644 (file)
        "filewasdeleted": "فيه فايل بنفس الاسم دا اتأپلود قبل كدا و بعدين اتمسح.\nلازم تشيّك على $1 قبل ما تأپلود الفايل كمان مره.",
        "filename-bad-prefix": "اسم الملف اللى بتحمله بيبتدى بـ'''\"$1\"'''، واللى هو اسم مش وصفى بيتحط غالبا من الكاميرات الديجيتال اوتوماتيكي.\nلو سمحت تختار اسم يكون بيوصف الملف بتاعك احسن من كدا.",
        "filename-prefix-blacklist": " #<!-- سيب السطر ده زى ما هوه --> <pre>\n# الصيغة كدا:\n#   * كل حاجة من أول علامة \"#\" لحد أخر السطر هى تعليق\n#   * كل سطر مش فاضى هو بريفيكس لأسماء الملفات النمطية اللى بتحطها اوتوماتيكى  الكاميرات الديجيتال\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # بعض التليفونات المحمولة\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- سيب السطر ده زى ما هوه -->",
-       "upload-success-subj": "التحميل ناجح",
-       "upload-warning-subj": "تحذير التحميل",
        "upload-proto-error": "بروتوكول مش صحيح",
        "upload-proto-error-text": "االتحميل عن بعد لازمله يوأرإل بيبتدى بـ <code>http://</code> أو <code>ftp://</code>.",
        "upload-file-error": "غلط داخلي",
        "wlheader-showupdated": "الصفحات اللى اتغيرت  بعد زيارتك ليها اخر مرة معروضة بالخط '''العريض'''",
        "wlnote": "تحت فى {{PLURAL:$1|آخر تغيير|آخر '''$1''' تغيير}} فى آخر {{PLURAL:$2|ساعه|'''$2''' ساعه}}، من الوقت $3، $4.",
        "wlshowlast": "عرض اخر $1 ساعات $2 ايام",
-       "watchlistall2": "الكل",
        "watchlist-options": "اختيارات قايمة المراقبة",
        "watching": "بيراقب...",
        "unwatching": "بيبطل مراقبه...",
index f9572d1..4d13aab 100644 (file)
        "filename-thumb-name": "Esto paez un títulu de miniatura. Por favor, nun xubas miniatures a la mesma wiki de la que salieron. D'otra manera, igua'l nome del ficheru pa que tenga más significáu, y que nun tenga'l prefixu de miniatura.",
        "filename-bad-prefix": "El nome del ficheru que tas xubiendo entama con '''\"$1\"''', que ye un nome non descriptivu que de vezu conseñen automáticamente les cámares dixitales.\nPor favor escueyi un nome más descriptivu pal to ficheru.",
        "filename-prefix-blacklist": " #<!-- dexa esta llinia exactamente como ta --> <pre>\n# La sintaxis ye la siguiente:\n#   * Lo que va del caráuter \"#\" al fin de llinia ye un comentariu\n#   * Toa llinia non-balera ye un prefixu pa los nomes de ficheru típicos que ponen les cámares dixitales\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # dellos teléfonos móviles\nIMG # xenéricu\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- dexa esta llinia exactamente como ta -->",
-       "upload-success-subj": "Xubida correuta",
-       "upload-success-msg": "La xubía de [$2] foi correuta. Ta disponible equí: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problema na xubía",
-       "upload-failure-msg": "Hebo un problema cola to xubía de [$2]:\n\n$1",
-       "upload-warning-subj": "Avisu de xubía",
-       "upload-warning-msg": "Hebo un problema cola to xubía de [$2]. Pues volver al [[Special:Upload/stash/$1|formulariu de xubía]] pa iguar esti problema.",
        "upload-proto-error": "Protocolu incorreutu",
        "upload-proto-error-text": "La xubida remota requier que l'URL entame por <code>http://</code> o <code>ftp://</code>.",
        "upload-file-error": "Error internu",
        "upload-too-many-redirects": "La URL contenía demasiaes redireiciones",
        "upload-http-error": "Hebo un error HTTP: $1",
        "upload-copy-upload-invalid-domain": "La xubida de copies nun ta disponible dende esti dominiu.",
+       "upload-foreign-cant-upload": "Esta wiki nun ta configurada pa xubir ficheros al estoyu de ficheros esternu solicitáu.",
        "upload-dialog-title": "Xubir ficheru",
        "upload-dialog-button-cancel": "Encaboxar",
        "upload-dialog-button-done": "Fecho",
        "wlheader-showupdated": "Les páxines que camudaron dende que les visitasti anteriormente amuesense en '''negrina'''",
        "wlnote": "Abaxo {{PLURAL:$1|tá'l caberu cambiu|tan los caberos <strong>$1</strong> cambios}} {{PLURAL:$2|na cabera hora|nes caberes <strong>$2</strong> hores}}, a día $3, a les $4.",
        "wlshowlast": "Amosar les últimes $1 hores, los últimos $2 díes",
-       "watchlistall2": "toos",
        "watchlist-hide": "Anubrir",
        "watchlist-submit": "Amosar",
        "wlshowtime": "Periodu de tiempu a amosar:",
        "lockedbyandtime": "(por $1 el $2 a les $3)",
        "move-page": "Treslladar $1",
        "move-page-legend": "Treslladar páxina",
-       "movepagetext": "Usando'l siguiente formulariu vas renomar una páxina, treslladando'l so historial al nuevu nome.\nEl nome vieyu va convertise nuna páxina de redireición al títulu nuevu.\nPues actualizar les redireiciones qu'enllacien al títulu orixinal automáticamente.\nSi prefieres nun lo facer, asegúrate de que nun dexes [[Special:DoubleRedirects|redireiciones dobles]] o [[Special:BrokenRedirects|rotes]].\nTu yes el responsable de facer que los enllaces queden apuntando au se supón que tienen d'apuntar.\n\nRecuerda que la páxina '''nun''' va movese si yá hai una páxina col nuevu títulu, a nun ser que la mesma seya una redireición y nun tenga historial.\nEsto significa que pues volver a renomar una páxina col nome orixinal si t'enquivoques, y nun pues sobreescribir una páxina yá esistente.\n\n¡Avisu!'''\nEsti pue ser un cambéu importante ya inesperáu pa una páxina popular;\npor favor, asegúrate d'entender les consecuencies de lo que vas facer enantes de siguir.",
-       "movepagetext-noredirectfixer": "Usando'l siguiente formulariu vas renomar una páxina, treslladando'l so historial al nuevu nome.\nEl nome vieyu va convertise nuna redireición al nuevu.\nAsegúrate de que nun dexes [[Special:DoubleRedirects|redireiciones dobles]] o [[Special:BrokenRedirects|rotes]].\nTu yes el responsable de facer que los enllaces queden apuntando au se supón qu'han apuntar.\n\nRecuerda que la páxina '''nun''' va movese si yá hai una páxina col nuevu títulu, a nun ser que tea balera o seya una redireición que nun tenga historial.\nEsto significa que pues volver a renomar una páxina col nome orixinal si t'enquivoques, y que nun pues sobreescribir una páxina yá esistente.\n\n¡AVISU!'''\nEsti pue ser un cambéu importante y inesperáu pa una páxina popular;\npor favor, asegúrate d'entender les consecuencies de lo que vas facer enantes de siguir.",
+       "movepagetext": "Usando'l siguiente formulariu vas renomar una páxina, treslladando'l so historial al nuevu nome.\nEl nome vieyu va convertise nuna páxina de redireición al títulu nuevu.\nPues actualizar les redireiciones qu'enllacien al títulu orixinal automáticamente.\nSi prefieres nun lo facer, asegúrate de que nun dexes [[Special:DoubleRedirects|redireiciones dobles]] o [[Special:BrokenRedirects|rotes]].\nTu yes el responsable de facer que los enllaces queden apuntando au se supón que tienen d'apuntar.\n\nRecuerda que la páxina <strong>nun</strong> va movese si yá hai una páxina col nuevu títulu, a nun ser que la mesma seya una redireición y nun tenga historial.\nEsto significa que pues volver a renomar una páxina col nome orixinal si t'enquivoques, y nun pues sobreescribir una páxina yá esistente.\n\n<strong>Nota:</strong>\nEsti pue ser un cambéu importante ya inesperáu pa una páxina popular;\npor favor, asegúrate d'entender les consecuencies de lo que vas facer enantes de siguir.",
+       "movepagetext-noredirectfixer": "Usando'l siguiente formulariu vas renomar una páxina, treslladando'l so historial al nuevu nome.\nEl nome vieyu va convertise nuna redireición al nuevu.\nAsegúrate de que nun dexes [[Special:DoubleRedirects|redireiciones dobles]] o [[Special:BrokenRedirects|rotes]].\nTu yes el responsable de facer que los enllaces queden apuntando au se supón qu'han apuntar.\n\nRecuerda que la páxina <strong>nun</strong> va movese si yá hai una páxina col nuevu títulu, a nun ser que tea balera o seya una redireición que nun tenga historial.\nEsto significa que pues volver a renomar una páxina col nome orixinal si t'enquivoques, y que nun pues sobreescribir una páxina yá esistente.\n\n<strong>Nota:</strong>\nEsti pue ser un cambéu importante y inesperáu pa una páxina popular;\npor favor, asegúrate d'entender les consecuencies de lo que vas facer enantes de siguir.",
        "movepagetalktext": "Si marques esti cuadru, la páxina d'alderique asociada va treslladase automáticamente al títulu nuevu, a nun ser que yá esista una páxina d'alderique non vacia allí.\n\nNesti casu tendrás que treslladar o fusionar la páxina manualmente si lo desees.",
        "moveuserpage-warning": "'''Atención:''' Tas a piques de mover una páxina d'usuariu. Atalanta que namái se va mover la páxina y que ''nun'' se va renomar l'usuariu.",
        "movecategorypage-warning": "<strong>Avisu:</strong> Tas a piques de treslladar una páxina de categoría. Ten en cuenta que sólo se treslladará la páxina y que cualquier páxina que tuviera na categoría antigua <em>nun</em> se recategorizará na nueva.",
        "movenosubpage": "Esta páxina nun tien subpáxines.",
        "movereason": "Motivu:",
        "revertmove": "revertir",
-       "delete_and_move_text": "==Necesítase esborrar==\n\nLa páxina de destín \"[[:$1]]\" yá esiste. ¿Quies esborrala pa dexar sitiu pal treslláu?",
+       "delete_and_move_text": "==Necesítase esborrar==\n\nLa páxina de destín «[[:$1]]» yá esiste. ¿Quies desaniciala pa dexar sitiu pal treslláu?",
        "delete_and_move_confirm": "Sí, esborrar la páxina",
        "delete_and_move_reason": "Desaniciada pa facer sitiu pa treslladar dende «[[$1]]»",
        "selfmove": "Los nomes d'orixe y destín son los mesmos, nun se pue treslladar una páxina sobre ella mesma.",
        "move-leave-redirect": "Dexar una redireición detrás",
        "protectedpagemovewarning": "'''Avisu: Esta páxina ta candada pa que sólo los alministradores puedan treslladala.'''\nLa cabera entrada del rexistru s'ufre darréu pa referencia:",
        "semiprotectedpagemovewarning": "'''Nota:''' Esta páxina ta candada pa que namái los usuarios rexistraos puedan treslladala.\nLa cabera entrada del rexistru s'ufre darréu pa referencia:",
-       "move-over-sharedrepo": "== Ficheru esistente ==\n[[:$1]] esiste nun repositoriu compartíu. Si mueves un ficheru a esti títulu se saltará el ficheru compartíu.",
+       "move-over-sharedrepo": "\n[[:$1]] esiste nun estoyu compartíu. Si mueves un ficheru a esti títulu saltaráse'l ficheru compartíu.",
        "file-exists-sharedrepo": "El nome de ficheru qu'escoyisti yá ta n'usu nun repositoriu compartíu.\nEscueyi otru nome, por favor.",
        "export": "Esportar páxines",
        "exporttext": "Pues esportar el testu y l'historial d'ediciones d'una páxina en particular o d'una\nriestra páxines endolcaes nun documentu XML. Esti se pue importar depués n'otra wiki\nqu'use MediaWiki al traviés de la páxina [[Special:Import|importar]].\n\nPa esportar páxines, pon los títulos na caxa de testu d'embaxo, un títulu por llinia,\ny seleiciona si quies la versión actual xunto con toles versiones antigües, xunto col\nso historial, o namái la versión actual cola información de la postrer edición.\n\nPor último, tamién pues usar un enllaz: p.e. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] pa la páxina \"[[{{MediaWiki:Mainpage}}]]\".",
        "lastmodifiedatby": "L'últimu cambiu d'esta páxina foi el $1, a les $2, por $3.",
        "othercontribs": "Basao nel trabayu fechu por $1.",
        "others": "otros",
-       "siteusers": "{{SITENAME}} {{PLURAL:$2|usuariu|usuarios}} $1",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|{{GENDER:$1|usuariu|usuaria}}|usuarios}} $1",
        "anonusers": "{{PLURAL:$2|Usuariu anónimu|usuarios anónimos}} de {{SITENAME}} $1",
        "creditspage": "Páxina de creitos",
        "nocredits": "Nun hai disponible información de creitos pa esta páxina.",
index 31dd377..c915329 100644 (file)
        "watchthisupload": "بو فايلی ایزله",
        "filewasdeleted": "بو آددا بیر فایل یاخین زاماندا یوکلندی و سونرا ایداره‌چی‌لر طرفین‌دن سیلیندی. فای‌لی یوکلئمئدئن اول، $1 صحیفه‌سینه بیر گؤز آتین.",
        "filename-bad-prefix": "یوکلمکده اولدوغونوز فایلین آدی، عمومی اولا‌راق رقمسال کامئرا‌لار طرفین‌دن آوتوماتیک اولا‌راق ائکئلئنئن و آچیقلاییجی اولمایان '\"$1\"' ایله باشلاییر.\nخاهیش ائدیریک فایلینیز اوچون داها آچیقلاییجی بیر آد سئچین.\n\nیوکلمکده اولدوغونوز فایلین آدی، عمومی اولا‌راق رقمسال کامئرا‌لار طرفین‌دن آوتوماتیک اولا‌راق باغلانان و آچیقلاییجی اولمایان '\"$1\"' ایله باشلاییر.\nخاهیش ائدیریک فایلینیز اوچون داها آچیقلاییجی بیر آد سئچین.",
-       "upload-success-subj": "یوکلمه گوتولدو",
-       "upload-success-msg": "[$2] یوکلمه‌نیز موفقیت‌لی اولدو. یوکلمه‌نیز بورادا مؤوجود: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "یوکلمه پروبلئمی",
-       "upload-failure-msg": "[$2]-دن یوکله‌دیگینیزده بیر ایشکال قاباغا گلدی:\n\n$1",
-       "upload-warning-subj": "یوکلمه خبردارلیغی",
-       "upload-warning-msg": "[$2]-دن یوکله‌دیگینیزده بیر ایشکال قاباغا گلدی. بو ایشکالی دوزلدمک اوچون، [[Special:Upload/stash/$1|یوکلمه فورمو]]نا قاییدا بیلرسینیز.",
        "upload-proto-error": "یانلیش پروتوکول",
        "upload-proto-error-text": "اوزاقدان یوکلمه، <code>http://</code> یوخسا <code>ftp://</code> ایله باشلانان آدرس ایسته‌ییر.",
        "upload-file-error": "ایچ خطاسی",
        "linksearch-text": "«*.wikipedia.org» کیمی نیشانلاری ایشلده بیلرسینیز.\nآزی بیر دنه «*.org» کیمی یوخاری دامنه لازیم‌دیر.<br />\nدستلکلنمیش {{PLURAL:$2|پروتوکول|پروتوکول‌لار}}: $1 (بوش بیراخیلسا، http:// نظرده آلیناجاقدیر).",
        "linksearch-line": "$1، $2-دن باغلانیب‌دیر",
        "linksearch-error": "نیشانلار یالنیز آدی اولینده گله بیلرلر.",
-       "listusersfrom": "بÙ\88Ù\86داÙ\86 Ø¨Ø§Ø´Ù\84اÛ\8cاراÙ\82 Ø§Û\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8cÙ\84رÛ\8c Ú¯Ø¤Ø³ØªØ±:",
+       "listusersfrom": "بÛ\87Ù\86داÙ\86 Ø¨Ø§Ø´Ù\84اÛ\8cاÙ\86 Ø§Û\8cØ´Ù\84دÙ\86â\80\8cÙ\84رÛ\8c Ú¯Ø¤Ø³ØªØ±:",
        "listusers-submit": "گؤستر",
        "listusers-noresult": "هئچ ایستیفاده‌چی تاپیلمادی.",
        "listusers-blocked": "(باغلانیب)",
-       "activeusers": "چالیشان ایستیفاده‌چیلرین لیستی",
-       "activeusers-intro": "بوردا سون {{PLURAL:$1|بیر|$1}} گون‌ده بیر ایشلر گؤرن ایستیفاده‌چیلرین لیستی گؤستریلیر.",
+       "activeusers": "چالیشقان ایشلدنلرین لیستی",
+       "activeusers-intro": "بۇرادا سوْن {{PLURAL:$1|بیر|$1}} گۆن‌ده دَییشدیرمه ائدن ایشلدن‌لرین لیستی گؤروشور.",
        "activeusers-count": "سون {{PLURAL:$3|گون|$3 گون}}‌ده، {{PLURAL:$1|$1}} چالیشما",
-       "activeusers-from": "بÙ\88Ù\86داÙ\86 Ø¨Ø§Ø´Ù\84اÛ\8cاراÙ\82 Ø§Û\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8cÙ\84رÛ\8c Ú¯Ø¤Ø³ØªØ±:",
+       "activeusers-from": "بÛ\87Ù\86داÙ\86 Ø¨Ø§Ø´Ù\84اÛ\8cاÙ\86 Ø§Û\8cØ´Ù\84دÙ\86â\80\8cÙ\84رÛ\8c Ú¯Ø¤Ø³ØªØ±:",
        "activeusers-hidebots": "روْبات‌لاری گیزلت",
        "activeusers-hidesysops": "ایداره‌چیلری گیزلت",
        "activeusers-noresult": "هئچ ایشلدن تاپیلمادی.",
+       "activeusers-submit": "چالیشقان ایشلدن‌لری گؤستر",
        "listgrouprights": "ایستیفاده‌چی قروپ حاقلاری",
        "listgrouprights-summary": "آشاغیدا، بو ویکی‌ده تانیلان ایستیفاده‌چی گروپلاری و اونلارین حاقلاری گؤستریلیر.\nتک حاقلار اوچون ده، [[{{MediaWiki:Listgrouprights-helppage}}|آرتیق بیلگیلر]] اولا بیلر.",
        "listgrouprights-key": "یوْل گؤستری:\n* <span class=\"listgrouprights-granted\">وئریلمیش حاق</span>\n* <span class=\"listgrouprights-revoked\">قایتاریلمیش حاق</span>",
        "wlheader-showupdated": "سون گؤروشونوزدن سوْنرا ائدیلن دییشیکلیکلر '''قالین''' گؤرسدیلیب‌دیر.",
        "wlnote": "آشاغیداکی {{PLURAL:$1|بیر ديَیشیک‌لیک|<strong>$1</strong> ديَیشیک‌لیک}}  سون {{PLURAL:$2|ساعتدا|<strong>$2</strong> ساعتدا}} ائدیلمیشدیر. $3، $4",
        "wlshowlast": "سون $1 ساعات $2 گون گؤستر",
-       "watchlistall2": "بوتون",
        "watchlist-options": "ایزله‌دیکلر سئچمه‌لری",
        "watching": "ایزله‌نیلیر...",
        "unwatching": "ایزله‌مه...",
index b00e6dd..c8e00f8 100644 (file)
        "watchthisupload": "Файлды күҙәтергә",
        "filewasdeleted": "Бындай исемле файл бығаса булған һәм юйылған. Зинһар, ҡабаттан тейәр алдынан $1 битен ҡарағыҙ.",
        "filename-bad-prefix": "Тейәлә торған файлдың исеме ''«$1»''' менән башлана һәм ул цифрлы камераларҙа файлдарға уҙенән-үҙе бирелә торған исемгә оҡшаған.\nЗинһар, файлды яҡшыраҡ тасуирлаған исем һайлағыҙ.",
-       "upload-success-subj": "Файл тейәү уңышлы тамамланды",
-       "upload-success-msg": "Һеҙҙең [$2] адресынан тейәүегеҙ уңышлы тамаланды. Файлды ошонда ҡарай алаһығыҙ: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Тейәү уңышлы түгел",
-       "upload-failure-msg": "[$2] адресынан тейәгән ваҡытта ҡыйынлыҡтар тыуҙы:\n$1",
-       "upload-warning-subj": "Тейәү ваҡытында киҫәтеү",
-       "upload-warning-msg": "[$2] адресынан тейәгән ваҡытта ҡыйынлыҡтар тыуҙы. Хатаны төҙәтеү өсөн [[Special:Upload/stash/$1|файл тейәү формаһына]] кире ҡайта алаһығыҙ.",
        "upload-proto-error": "Протокол дөрөҫ түгел",
        "upload-proto-error-text": "Алыҫтан тейәү өсөн <code>http://</code> йәки <code>ftp://</code> менән башланған адрес кәрәк.",
        "upload-file-error": "Эске хата",
        "wlheader-showupdated": "Һеҙҙең аҙаҡҡы кереүегеҙҙән һуң үҙгәргән биттәр '''ҡалын''' шрифт менән күрһәтелгән.",
        "wlnote": "Түбәндә $3 $4 ваҡытына тиклем аҙаҡҡы {{PLURAL:$2|1=сәғәт|'''$2''' сәғәт}} эсендә эшләнгән {{PLURAL:$1|1=үҙгәртеү|'''$1''' үҙгәртеү}} күрһәтелгән.",
        "wlshowlast": "Һуңғы $1 сәғәт $2 көн өсөн күрһәт",
-       "watchlistall2": "бөтә",
        "watchlist-options": "Күҙәтеү исемлеге көйләүҙәре",
        "watching": "Күҙәтеү исемлегенә өҫтәү...",
        "unwatching": "Күҙәтеү исемлегенән сығарыу...",
index 3b4c16c..ab31ff0 100644 (file)
        "botpasswords-summary": "<em>Паролі робатаў</em> дазваляюць доступ да рахунку ўдзельніка праз API без выкарыстаньня лагіну і паролю асноўнага рахунку. Правы ўдзельніка пры выкарыстаньні паролю робата могуць быць абмежаваныя.\n\nКалі вы ня ведаеце, навошта вам гэта, мабыць, не рабіце гэтага. Ніхто не павінен прасіць вас згенэраваць такі пароль і перадаць гэты пароль яму.",
        "botpasswords-disabled": "Паролі робатаў адключаныя.",
        "botpasswords-no-central-id": "Для ўжываньня пароляў робатаў вы мусіце ўвайсьці ў свой глябальны рахунак.",
+       "botpasswords-existing": "Існыя паролі робатаў",
+       "botpasswords-createnew": "Стварыць новы пароль робата",
+       "botpasswords-editexisting": "Рэдагаваць існы пароль робата",
+       "botpasswords-label-appid": "Назва робата:",
        "botpasswords-label-create": "Стварыць",
        "botpasswords-label-update": "Абнавіць",
        "botpasswords-label-cancel": "Скасаваць",
        "botpasswords-label-delete": "Выдаліць",
        "botpasswords-label-resetpassword": "Ачысьціць пароль",
+       "botpasswords-label-grants": "Прыдатныя дазволы:",
+       "botpasswords-label-restrictions": "Абмежаваньні на выкарыстаньне:",
        "resetpass_forbidden": "Пароль ня можа быць зьменены",
        "resetpass-no-info": "Для непасрэднага доступу да гэтай старонкі Вам неабходна ўвайсьці ў сыстэму.",
        "resetpass-submit-loggedin": "Зьмяніць пароль",
        "filewasdeleted": "Файл з такой назвай загружаўся, але быў выдалены.\nВам трэба праверыць $1 перад новай загрузкай.",
        "filename-thumb-name": "Гэта выглядае як назва мініятуры. Калі ласка, не загружайце мініятуры назад у тую ж вікі. Калі вам неабходны гэты файл, выпраўце назву на больш зразумелую, каб яна ня ўтрымлівала прэфікс мініятуры.",
        "filename-bad-prefix": "Назва файла, які Вы загружаеце, пачынаецца з '''«$1»'''. Падобныя бессэнсоўныя назвы звычайна ствараюцца аўтаматычна лічбавымі фотаапаратамі. Калі ласка, абярыце больш зразумелую назву для Вашага файла.",
-       "upload-success-subj": "Загрузка пасьпяхова скончылася",
-       "upload-success-msg": "Вашая загрузка з [$2] была пасьпяховая. Яна даступная тут: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Праблема загрузкі",
-       "upload-failure-msg": "Узьнікла праблема пад час Вашай загрузкі з [$2]:\n\n$1",
-       "upload-warning-subj": "Папярэджаньне загрузкі",
-       "upload-warning-msg": "Узьнікла праблема з Вашай загрузкай з [$2]. Вы можаце вярнуцца на [[Special:Upload/stash/$1|форму загрузкі]] для вырашэньня гэтай праблемы.",
        "upload-proto-error": "Няслушны пратакол",
        "upload-proto-error-text": "Аддаленая загрузка файлаў патрабуе URL-адрас, які пачынаецца з <code>http://</code> альбо <code>ftp://</code>.",
        "upload-file-error": "Унутраная памылка",
        "querypage-disabled": "Гэта спэцыяльная старонка адключаная для падвышэньня прадукцыйнасьці",
        "apihelp": "Даведка API",
        "apihelp-no-such-module": "Модуль «$1» ня знойдзены.",
-       "booksources": "Ð\9fоÑ\88Ñ\83к кніг",
+       "booksources": "Ð\9aÑ\80Ñ\8bнÑ\96Ñ\86Ñ\8b кніг",
        "booksources-search-legend": "Пошук кніг",
        "booksources-isbn": "ISBN:",
        "booksources-search": "Шукаць",
        "log-title-wildcard": "Шукаць назвы, якія пачынаюцца з гэтага тэксту",
        "showhideselectedlogentries": "Паказаць/схаваць выбраныя запісы ў журнале",
        "log-edit-tags": "Рэдагаваць меткі да абраных запісаў у журнале падзеяў",
+       "checkbox-all": "Усе",
        "allpages": "Усе старонкі",
        "nextpage": "Наступная старонка ($1)",
        "prevpage": "Папярэдняя старонка ($1)",
        "wlheader-showupdated": "Старонкі, зьмененыя з часу вашага апошняга візыту, вылучаныя '''тоўстым''' шрыфтам.",
        "wlnote": "Ніжэй {{PLURAL:$1|паказаная <strong>$1</strong> апошняя зьмена|паказаныя <strong>$1</strong> апошнія зьмены|паказаныя <strong>$1</strong> апошніх зьменаў}} за <strong>$2</strong> {{PLURAL:$2|гадзіну|гадзіны|гадзінаў}}, па стане на $4 $3.",
        "wlshowlast": "Паказаць за апошнія $1 гадзінаў, $2 дзён",
-       "watchlistall2": "усё",
        "watchlist-hide": "Схаваць",
        "watchlist-submit": "Паказаць",
        "wlshowtime": "Пэрыяд часу для паказу:",
        "lockedbyandtime": "($1 $2 у $3)",
        "move-page": "Перанесьці $1",
        "move-page-legend": "Перанесьці старонку",
-       "movepagetext": "З дапамогай гэтай формы Вы можаце перанесьці старонку, і разам зь ёй усю гісторыю.\nСтарая назва будзе перанакіроўваць на новую.\nВы можаце аўтаматычна абнавіць перанакіраваньні на першапачатковую назву.\nКалі вы адмовіцеся, упэўніцеся ў адсутнасьці [[Special:DoubleRedirects|падвойных]] ці [[Special:BrokenRedirects|няслушных перанакіраваньняў]].\nАдказнасьць за дакладнасьць спасылак ляжыць на тым, хто перанёс старонку.\n\nЗаўважце, што старонка '''ня будзе''' перанесеная, калі пад новай назвай ужо існуе іншая старонка, за выключэньнем выпадкаў, калі яна пустая альбо зьяўляецца перанакіраваньнем і ня мае гісторыі рэдагаваньняў. Гэта азначае, што існуе магчымасьць скасаваць зьмену назвы, калі Вы памыліліся, але немагчыма выдаліць існую старонку.\n\n'''Увага!'''\nЗьмена назвы папулярных старонак можна стацца вельмі нечаканай і рэзкай;\nкалі ласка, упэўніцеся, што Вы разумееце наступствы такіх зьменаў.",
-       "movepagetext-noredirectfixer": "Скарыстаўшыся гэтай формай, Вы перанесяце старонку з усёй гісторыяй зьменаў да новай назвы.\nСтаронка са старой назвай будзе перанакіроўваць на старонку з новай.\nКалі ласка, праверце існаваньне [[Special:DoubleRedirects|падвоеных]] і [[Special:BrokenRedirects|няслушных перанакіраваньняў]].\nВы адказныя за тое, каб спасылкі працягвалі весьці туды, куды яны павінны.\n\nЗаўважце, калі ласка, што старонка '''ня будзе''' перанесеная, калі ўжо існуе старонка з новай назвай, акрамя выпадкаў, калі яна пустая ці зьмяшчае перанакіраваньне, а таксама ня мае папярэдняй гісторыі рэдагаваньняў.\nГэта значыць, што Вы можаце перанесьці старонку назад, калі зробіце памылку, але ня можаце выпадкова перазапісаць існуючую старонку.\n\n'''Папярэджаньне!'''\nПеранос можа быць маштабным і нечаканым для ''папулярных'' старонак.\nУпэўніцеся, калі ласка, што Вы разумееце ўсе магчымыя наступствы пераносу.",
+       "movepagetext": "З дапамогай гэтай формы Вы можаце перанесьці старонку, і разам зь ёй усю гісторыю.\nСтарая назва будзе перанакіроўваць на новую.\nВы можаце аўтаматычна абнавіць перанакіраваньні на першапачатковую назву.\nКалі вы адмовіцеся, упэўніцеся ў адсутнасьці [[Special:DoubleRedirects|падвойных]] ці [[Special:BrokenRedirects|няслушных перанакіраваньняў]].\nАдказнасьць за дакладнасьць спасылак ляжыць на тым, хто перанёс старонку.\n\nЗаўважце, што старонка <strong>ня будзе</strong> перанесеная, калі пад новай назвай ужо існуе іншая старонка, за выключэньнем выпадкаў, калі яна пустая альбо зьяўляецца перанакіраваньнем і ня мае гісторыі рэдагаваньняў. Гэта азначае, што існуе магчымасьць скасаваць зьмену назвы, калі Вы памыліліся, але немагчыма выдаліць існую старонку.\n\n<strong>Заўвага:</strong>\nЗьмена назвы папулярных старонак можна стацца вельмі нечаканай і рэзкай;\nкалі ласка, упэўніцеся, што Вы разумееце наступствы такіх зьменаў.",
+       "movepagetext-noredirectfixer": "Скарыстаўшыся гэтай формай, Вы перанесяце старонку з усёй гісторыяй зьменаў да новай назвы.\nСтаронка са старой назвай будзе перанакіроўваць на старонку з новай.\nКалі ласка, праверце існаваньне [[Special:DoubleRedirects|падвоеных]] і [[Special:BrokenRedirects|няслушных перанакіраваньняў]].\nВы адказныя за тое, каб спасылкі працягвалі весьці туды, куды яны павінны.\n\nЗаўважце, калі ласка, што старонка <strong>ня будзе</strong> перанесеная, калі ўжо існуе старонка з новай назвай, акрамя выпадкаў, калі яна зьмяшчае перанакіраваньне, а таксама ня мае папярэдняй гісторыі рэдагаваньняў.\nГэта значыць, што Вы можаце перанесьці старонку назад, калі зробіце памылку, але ня можаце выпадкова перазапісаць існую старонку.\n\n<strong>Заўвага:</strong>\nПеранос можа быць маштабным і нечаканым для папулярных старонак.\nУпэўніцеся, калі ласка, што Вы разумееце ўсе магчымыя наступствы пераносу.",
        "movepagetalktext": "Калі вы адзначыце гэтае поле, старонка абмеркаваньня будзе аўтаматычна перанесеная пад новую назву разам з асноўнай старонкай, за выключэньнем выпадку, калі не пустая старонка абмеркаваньня ўжо існуе пад новай назвай.\n\nУ такім выпадку вы можаце перанесьці ці аб’яднаць старонку абмеркаваньня самастойна.",
        "moveuserpage-warning": "'''Папярэджаньне:''' Вы зьбіраецеся перанесьці старонку ўдзельніка. Калі ласка заўважце, што старонка будзе перанесеная, але імя ўдзельніка ''ня'' будзе зьмененае.",
        "movecategorypage-warning": "<strong>Увага:</strong> вы зьбіраецеся перанесьці старонку катэгорыі. Калі ласка, заўважце, што будзе перанесеная толькі гэтая старонка, а ўсе старонкі з старой катэгорыі <em>ня</em> будуць перанесеныя ў новую.",
        "movenosubpage": "Гэтая старонка ня мае падстаронак.",
        "movereason": "Прычына:",
        "revertmove": "адкат",
-       "delete_and_move_text": "==Патрабуецца выдаленьне==\nМэтавая старонка «[[:$1]]» ужо існуе.\nЦі жадаеце Вы яе выдаліць, каб вызваліць месца для пераносу?",
+       "delete_and_move_text": "Ужо існуе мэтавая старонка «[[:$1]]».\nЦі жадаеце Вы яе выдаліць, каб вызваліць месца для пераносу?",
        "delete_and_move_confirm": "Так, выдаліць старонку",
        "delete_and_move_reason": "Выдаленая, каб вызваліць месца для пераносу «[[$1]]»",
        "selfmove": "Крынічная і мэтавая назвы супадаюць;\nнемагчыма перанесьці старонку саму на сябе.",
        "move-leave-redirect": "Пакінуць перанакіраваньне",
        "protectedpagemovewarning": "'''Папярэджаньне:''' Гэтая старонка была абароненая, і яе могуць пераносіць толькі ўдзельнікі з правамі адміністратара.\nАпошні запіс з журнала пададзены ніжэй для даведкі:",
        "semiprotectedpagemovewarning": "'''Заўвага:''' Гэта старонка была абароненая, і яе могуць пераносіць толькі зарэгістраваныя ўдзельнікі.\nАпошні запіс з журнала пададзены ніжэй для даведкі:",
-       "move-over-sharedrepo": "== Файл існуе ==\n\n[[:$1]] існуе ў агульным сховішчы. Перайменаваньне файла ў гэтую назву закрые агульны файл.",
+       "move-over-sharedrepo": "[[:$1]] існуе ў агульным сховішчы. Перайменаваньне файла ў гэтую назву закрые агульны файл.",
        "file-exists-sharedrepo": "Выбраная назва файла ўжо выкарыстоўваецца ў агульным сховішчы.\nКалі ласка, выберыце іншую назву.",
        "export": "Экспартаваць старонкі",
        "exporttext": "Вы можаце экспартаваць тэкст і гісторыю рэдагаваньняў асобнай старонкі ці набору старонак у XML-фармаце.\nГэта потым можа быць імпартаванае ў іншую вікі, якая выкарыстоўвае MediaWiki праз [[Special:Import|старонку імпартаваньня]].\n\nКаб экспартаваць старонкі, увядзіце назвы старонак у тэкставае поле ніжэй, адну назву ў адзін радок, і абярыце жадаеце Вы цяперашнюю вэрсію разам з усімі папярэднімі вэрсіямі і гісторыяй рэдагаваньняў, ці толькі цяперашнюю вэрсію з інфармацыяй пра апошняе рэдагаваньне.\n\nУ апошнім выпадку Вы можаце таксама скарыстацца спасылкай, напрыклад, [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] для «[[{{MediaWiki:Mainpage}}]]».",
        "lastmodifiedatby": "Гэтую старонку апошні раз рэдагаваў $3 $2, $1.",
        "othercontribs": "На аснове працы $1.",
        "others": "іншыя",
-       "siteusers": "{{PLURAL:$2|1=Удзельнік|Удзельнікі}} {{GRAMMAR:родны|{{SITENAME}}}} $1",
+       "siteusers": "{{PLURAL:$2|1={{GENDER:$1|Удзельнік|Удзельніца}}|Удзельнікі}} {{GRAMMAR:родны|{{SITENAME}}}} $1",
        "anonusers": "{{PLURAL:$2|1=Ананімны ўдзельнік|Ананімныя ўдзельнікі}} {{GRAMMAR:родны|{{SITENAME}}}} $1",
        "creditspage": "Падзякі",
        "nocredits": "Няма інфармацыі пра аўтараў гэтай старонкі.",
index 73012b5..c17f252 100644 (file)
        "title-invalid-utf8": "Назва запытанай старонкі ўтрымлівае недапушчальную ў UTF-8 паслядоўнасць.",
        "title-invalid-interwiki": "Запытаны загаловак зьмяшчае інтэрвікі-спасылку, якую нельга ўжываць у назвах.",
        "title-invalid-talk-namespace": "Запытаная назва старонкі адпавядае старонцы размоў, якая не можа існаваць.",
+       "title-invalid-characters": "Запытаная назва старонкі ўтрымлівае недапушчальныя сімвалы: \"$1\".",
+       "title-invalid-magic-tilde": "Запытаная назва старонкі ўтрымлівае недапушчальную паслядоўнасць тыльдаў (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Запытаная назва старонкі занадта доўгая. Яна павінна быць не даўжэй за $1 {{PLURAL:$1|байт|байты|байтаў}} у кадаванні UTF-8.",
+       "title-invalid-leading-colon": "Запытаная назва старонкі ўтрымлівае недапушчальнае двухкроп'е ў пачатку.",
        "perfcached": "Гэта ўзятыя з кэшу звесткі, і яны могуць не быць актуальнымі. У кэшы захоўваецца не больш за {{PLURAL:$1|адзін вынік|$1 вынікі|$1 вынікаў}}.",
        "perfcachedts": "Наступныя звесткі кэшаваныя і апошні раз былі абноўленыя $1. У кэшы {{PLURAL:$4|даступны|даступныя}} не больш за $4 {{PLURAL:$4|вынік|вынікі|вынікаў}}.",
        "querypage-no-updates": "Абнаўленне гэтай старонкі цяпер адключана.\nПаказаныя тут звесткі зараз не абновяцца.",
        "viewsource": "Паказаць зыходны тэкст",
        "viewsource-title": "Прагляд зыходнага тэксту старонкі $1",
        "actionthrottled": "Дзеянне прыгашана",
-       "actionthrottledtext": "Дзеля абароны ад спаму, вам не дазваляецца выконваць гэтае дзеянне занадта часта за пэўны адрэзак часу, і вы гэты ліміт перасягнулі. Паспрабуйце ізноў праз некалькі мінут.",
+       "actionthrottledtext": "Дзеля абароны ад спаму, вам не дазваляецца выконваць гэтае дзеянне занадта часта за пэўны адрэзак часу, і вы гэты ліміт перасягнулі.\nПаспрабуйце ізноў праз некалькі мінут.",
        "protectedpagetext": "Старонка ахоўваецца, каб нельга было яе правіць ці яшчэ што рабіць.",
-       "viewsourcetext": "Можна бачыць і капіраваць зыходны тэкст гэтай старонкі:",
-       "viewyourtext": "Вы можаце праглядзець і скапіяваць зыходны тэкст '''вашых правак''' на гэтай старонцы:",
+       "viewsourcetext": "Можна бачыць і капіраваць зыходны тэкст гэтай старонкі.",
+       "viewyourtext": "Вы можаце праглядзець і скапіяваць зыходны тэкст <strong>вашых правак</strong> на гэтай старонцы.",
        "protectedinterface": "Старонка ўтрымлівае інтэрфейснае паведамленне праграмнага забеспячэння гэтага вікі-праекта і ахоўваецца, каб прадухіліць вандалізм.\nКаб дабавіць ці змяніць пераклады ва ўсіх вікі-праектах, калі ласка, выкарыстоўвайце сайт лакалізацыі MediaWiki [//translatewiki.net/ translatewiki.net].",
-       "editinginterface": "<strong>Увага:</strong> Вы правіце старонку, якая ўтрымлівае тэкст карыстальніцкага інтэрфейсу.\nЯе змяненне паўплывае на вонкавы выгляд праграмы для ўсіх удзельнікаў гэтай вікі.\nПраект лакалізацыі MediaWiki: [//translatewiki.net/wiki/ translatewiki.net].",
-       "cascadeprotected": "Старонка знаходзіцца пад аховай ад правак, таму што яна ўлучана ў наступн{{PLURAL:$1|ую старонку|ыя старонкі}}, якія ахоўваюцца з магчымасцю \"каскаднага распаўсюджвання\" аховы:\n$2",
+       "editinginterface": "<strong>Увага:</strong> Вы правіце старонку, якая ўтрымлівае тэкст карыстальніцкага інтэрфейсу.\nЯе змяненне паўплывае на вонкавы выгляд праграмы для ўсіх удзельнікаў гэтай вікі.",
+       "translateinterface": "Каб дабавіць ці змяніць пераклады ва ўсіх вікі-праектах, калі ласка, выкарыстоўвайце сайт лакалізацыі MediaWiki [//translatewiki.net/ translatewiki.net].",
+       "cascadeprotected": "Старонка знаходзіцца пад аховай ад правак, таму што яна ўлучана ў наступн{{PLURAL:$1|ую старонку, якая ахоўваецца|ыя старонкі, якія ахоўваюцца}} з магчымасцю \"каскаднага распаўсюджання\" аховы:\n$2",
        "namespaceprotected": "Вам не дазволена правіць старонкі ў прасторы назваў <strong>$1</strong>.",
        "customcssprotected": "У вас няма дазволу рэдагаваць гэтую CSS-старонку, бо яна ўтрымлівае асабістыя настройкі іншага ўдзельніка.",
        "customjsprotected": "У вас няма дазволу рэдагаваць гэтую JavaScript-старонку, таму што яна ўтрымлівае асабістыя настройкі іншага ўдзельніка.",
        "mypreferencesprotected": "Вам не дазволена рэдагаваць свае настройкі.",
        "ns-specialprotected": "Не дазволена правіць старонкі ў прасторы назваў {{ns:special}}.",
        "titleprotected": "Назва засцерагаецца ад стварэння; ахова пастаўлена ўдзельнікам: [[User:$1|$1]].\nТлумачэнне пастаноўкі пад ахову: \"<em>$2</em>\".",
-       "filereadonlyerror": "Ð\9dемагÑ\87Ñ\8bма Ð·Ð¼Ñ\8fнÑ\96Ñ\86Ñ\8c Ñ\84айл \"$1\", Ñ\82амÑ\83 Ñ\88Ñ\82о Ñ\84айлавае Ñ\81Ñ\85овÑ\96Ñ\88Ñ\87а \"$2\" Ð·Ð°Ñ\80аз Ñ\83 Ñ\80Ñ\8dжÑ\8bме \"Ñ\82олÑ\8cкÑ\96 Ð´Ð»Ñ\8f Ñ\87Ñ\8bÑ\82аннÑ\8f\".\n\nÐ\90дміністратар, які абмежаваў доступ, патлумачыў гэта так: \"$3\".",
+       "filereadonlyerror": "Ð\9dемагÑ\87Ñ\8bма Ð·Ð¼Ñ\8fнÑ\96Ñ\86Ñ\8c Ñ\84айл \"$1\", Ñ\82амÑ\83 Ñ\88Ñ\82о Ñ\84айлавае Ñ\81Ñ\85овÑ\96Ñ\88Ñ\87а \"$2\" Ð·Ð°Ñ\80аз Ñ\83 Ñ\80Ñ\8dжÑ\8bме \"Ñ\82олÑ\8cкÑ\96 Ð´Ð»Ñ\8f Ñ\87Ñ\8bÑ\82аннÑ\8f\".\n\nСÑ\96Ñ\81Ñ\82Ñ\8dмнÑ\8b Ð°дміністратар, які абмежаваў доступ, патлумачыў гэта так: \"$3\".",
        "invalidtitle-knownnamespace": "Недапушчальны загаловак з прасторай імёнаў \"$2\" і тэкстам \"$3\"",
        "invalidtitle-unknownnamespace": "Недапушчальны загаловак з невядомым лікам прасторы імён $1 і тэкстам \"$2\"",
        "exception-nologin": "Вы не ўвайшлі ў сістэму",
        "virus-scanfailed": "не ўдалося праверыць (код $1)",
        "virus-unknownscanner": "невядомы антывірус:",
        "logouttext": "<strong>Вы выйшлі з сістэмы.</strong>\n\nЗаўважце, што некаторыя старонкі могуць паказвацца так, быццам вы яшчэ не выйшлі; у такім разе трэба ачысціць кэш вашага браўзера.",
+       "cannotlogoutnow-title": "Зараз немагчыма выйсці",
+       "cannotlogoutnow-text": "Пры выкарыстанні $1 выхад з сістэмы немагчымы.",
        "welcomeuser": "Вітаем, $1!",
        "welcomecreation-msg": "Ваш рахунак быў створаны.\nНе забудзьцеся ажыццявіць [[Special:Preferences|настройку]] для {{SITENAME}}.",
        "yourname": "Імя ўдзельніка:",
        "remembermypassword": "Памятаць мяне на гэтым камп'ютары (не даўжэй за $1 {{PLURAL:$1|дзень|дні|дзён}})",
        "userlogin-remembermypassword": "Заставацца ў сістэме",
        "userlogin-signwithsecure": "Выкарыстоўваць абароненае злучэнне",
+       "cannotloginnow-title": "Зараз немагчыма ўвайсці",
+       "cannotloginnow-text": "Пры выкарыстанні $1 немагчыма прадставіцца сістэме.",
        "yourdomainname": "Ваш дамен:",
        "password-change-forbidden": "Вы не можаце змяняць паролі на гэтай Вікі.",
        "externaldberror": "Або памылка вонкавай аўтэнтыкацыі ў базе дадзеных, або вам не дазволена абнаўляць свой вонкавы рахунак.",
        "createacct-benefit-body2": "{{PLURAL:$1|старонка|старонкі|старонак}}",
        "createacct-benefit-body3": "{{PLURAL:$1|апошні \nўкладальнік|апошнія \nўкладальнікі|апошніх \nукладальнікаў}}",
        "badretype": "Уведзеныя паролі не аднолькавыя.",
+       "usernameinprogress": "Стварэнне рахунку для гэтага імені ўдзельніка ўжо ў працэсе.\nКалі ласка, пачакайце.",
        "userexists": "Такое імя ўдзельніка ўжо занятае.\nКалі ласка, выбярыце іншае імя.",
        "loginerror": "Памылка ўваходу",
        "createacct-error": "Памылка стварэння ўліковага запісу",
        "wrongpassword": "Уведзены няправільны пароль. Паспрабуйце нанова.",
        "wrongpasswordempty": "Быў уведзены пусты пароль. Паспрабуйце нанова.",
        "passwordtooshort": "Трэба, каб у паролі было найменей {{PLURAL:$1|1 знак|$1 знакаў}}.",
+       "passwordtoolong": "Пароль не можа быць даўжэй за {{PLURAL:$1|1 сімвал|1 сімвалы|$1 сімвалаў}}.",
+       "passwordtoopopular": "Нельга выкарыстоўваць часта ўжываныя паролі. Калі ласка, выберыце больш унікальны пароль.",
        "password-name-match": "Ваш пароль павінен адрознівацца ад імя карыстальніка.",
        "password-login-forbidden": "Выкарыстанне гэтага імя карыстальніка і пароля было забаронена.",
        "mailmypassword": "Скінуць пароль",
        "createaccount-text": "На пляцоўцы {{SITENAME}} ($4) быў створаны рахунак удзельніка з гэтым адрасам эл.пошты. Назва рахунка \"$2\", пароль \"$3\". Варта адразу ўвайсці ў сістэму і змяніць пароль.\n\nКалі рахунак быў створаны памылкова, то на гэтае паведамленне можна не звяртаць увагі.",
        "login-throttled": "Занадта многа нядаўніх спроб увайсці пад гэтым уліковым запісам. \nПачакайце $1 перад тым, як спрабаваць ізноў.",
        "login-abort-generic": "Няўдалая спроба ўвайсці ў сістэму",
+       "login-migrated-generic": "Ваш уліковы запіс быў перанесены, ваша імя карыстальніка больш не існуе ў гэтай вікі.",
        "loginlanguagelabel": "Мова: $1",
        "suspicious-userlogout": "Ваш запыт на выхад быў адмоўлены, паколькі ён выглядае як накіраваны са зламанага браўзера або кэшаванне проксі-сервераў.",
        "createacct-another-realname-tip": "Сапраўднае імя паведамляць неабавязкова.\nКалі вы паведаміце яго, яно будзе выкарыстоўвацца для пазначэння вашага ўкладу.",
        "resetpass_submit": "Наставіць пароль і ўвайсці",
        "changepassword-success": "Ваш пароль паспяхова зменены!",
        "changepassword-throttled": "Занадта многа нядаўніх спроб увайсці пад гэтым уліковым запісам. \nПачакайце $1 перад тым, як спрабаваць ізноў.",
+       "botpasswords": "Паролі робатаў",
        "resetpass_forbidden": "Не дазволена мяняць паролі",
        "resetpass-no-info": "Трэба ўвайсці ў сістэму, каб звяртацца да гэтай старонкі наўпрост.",
        "resetpass-submit-loggedin": "Змяніць пароль",
        "watchthisupload": "Назіраць за файлам",
        "filewasdeleted": "Файл з такою назвай быў раней укладзены сюды, а потым сцёрты. Варта паглядзець у $1 перад тым, як укладаць яго нанова.",
        "filename-bad-prefix": "Назва файла, які вы ўкладаеце, пачынаецца з <strong>\"$1\"</strong>, што падобна на аўтаматычныя, неінфарматыўныя назвы файлаў, якія робяць лічбавыя фотаапараты. Калі ласка, змяніце назву на больш зразумелую.",
-       "upload-success-subj": "Паспяховае ўкладанне",
-       "upload-success-msg": "Ваша загрузка [$2] прайшла паспяхова. Вы можаце паглядзець вынік тут: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Праблема загрузкі",
-       "upload-failure-msg": "Выяўлена праблема з вашай загрузкай з [$2]:\n\n$1",
-       "upload-warning-subj": "Дадаць папярэджанне",
-       "upload-warning-msg": "Пры ўкладанні з [$2] адбылася памылка. Для выпраўлення памылкі вярніцеся ў [[Special:Upload/stash/$1|форму ўкладання]].",
        "upload-proto-error": "Няправільны пратакол",
        "upload-proto-error-text": "Укладанне файла зводдаль патрабуе URL, які пачынаецца з <code>http://</code> або <code>ftp://</code>.",
        "upload-file-error": "Унутраная памылка",
        "wlheader-showupdated": "Старонкі, якія былі зменены пасля вашага апошняга наведвання, паказаны <strong>абрысам шрыфту</strong>.",
        "wlnote": "Ніжэй {{PLURAL:$1|паказана апошняя <strong>$1</strong> змена|паказаны апошнія <strong>$1</strong> змены|паказаны апошнія <strong>$1</strong> змен}} за {{PLURAL:$2|апошнюю|апошнія|апошнія}} <strong>$2</strong> {{PLURAL:$2|гадзіну|гадзіны|гадзін}}, на момант часу $3 $4.",
        "wlshowlast": "Паказваць апошнія $1 гадз. $2 дзён",
-       "watchlistall2": "усе",
        "watchlist-options": "Магчымасці назірання",
        "watching": "Дапісваецца ў спіс назірання...",
        "unwatching": "Спыняем назіранне...",
index e7bfb22..fb49e5c 100644 (file)
        "resetpass_submit": "Избиране на парола и влизане",
        "changepassword-success": "Паролата ви беше променена успешно!",
        "changepassword-throttled": "Направили сте твърде много опити да въведете паролата за тази сметка.\nНеобходимо е да изчакате $1 преди да опитате отново.",
+       "botpasswords-label-appid": "Име на бота:",
+       "botpasswords-label-create": "Създаване",
+       "botpasswords-label-update": "Обновяване",
+       "botpasswords-label-cancel": "Отказване",
+       "botpasswords-label-delete": "Изтриване",
+       "botpasswords-label-resetpassword": "Възстановяване на парола",
        "resetpass_forbidden": "Не е разрешена смяна на паролата",
        "resetpass-no-info": "За да достъпвате тази страница директно, необходимо е да влезете в системата.",
        "resetpass-submit-loggedin": "Промяна на паролата",
        "right-override-export-depth": "Изнасяне на страници, включително свързаните с тях в дълбочина до пето ниво",
        "right-sendemail": "Изпращане на е-писма до другите потребители",
        "right-passwordreset": "Преглеждане на е-писма за възстановяване на парола",
+       "grant-delete": "Изтриване на страници, редакции и записи в дневника",
+       "grant-editmyoptions": "Редактиране на вашите потребителски настройки",
+       "grant-editmywatchlist": "редактиране на списъка ви за наблюдение",
+       "grant-editpage": "Редактиране на съществуващи страници",
+       "grant-editprotected": "Редактиране на защитени страници",
+       "grant-basic": "Основни права",
+       "grant-viewdeleted": "Преглед на изтрити файлове и страници",
+       "grant-viewmywatchlist": "преглед на списъка ви за наблюдение",
        "newuserlogpage": "Дневник на регистрациите",
        "newuserlogpagetext": "В този дневник се записват регистрациите на потребители.",
        "rightslog": "Дневник на потребителските права",
        "watchthisupload": "Наблюдаване на файла",
        "filewasdeleted": "Файл в този име е съществувал преди време, но е бил изтрит. Проверете $1 преди да го качите отново.",
        "filename-bad-prefix": "Името на файла, който качвате, започва с '''„$1“''', което е неописателно име, типично задавано по автоматичен начин от цифровите камери или апарати. Изберете по-описателно име на файла.",
-       "upload-success-subj": "Качването беше успешно",
-       "upload-success-msg": "Качването ви от [$2] е успешно. Достъпно е тук: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Проблем при качване",
-       "upload-failure-msg": "Имаше проблем с вашето качване от [$2]: \n\n$1",
-       "upload-warning-subj": "Предупреждение за качването",
-       "upload-warning-msg": "Имаше проблем с качването ви от [$2]. Може да се върнете към [[Special:Upload/stash/$1|страницата за качване]], за да поправите проблема.",
        "upload-proto-error": "Неправилен протокол",
        "upload-proto-error-text": "Изисква се адрес започващ с <code>http://</code> или <code>ftp://</code>.",
        "upload-file-error": "Вътрешна грешка",
        "wlheader-showupdated": "Страниците, които са били променени след последния път, когато сте ги посетили, са показани в '''получер'''.",
        "wlnote": "{{PLURAL:$1|Показана е последната промяна|Показани са последните '''$1''' промени}} през {{PLURAL:$2|последния час|последните '''$2''' часа}}.",
        "wlshowlast": "Показване на последните $1 часа $2 дни",
-       "watchlistall2": "всички",
        "watchlist-hide": "Скриване",
        "watchlist-submit": "Показване",
        "wlshowtime": "Период от време за показване:",
index 55f58ad..2df341f 100644 (file)
        "october-date": "অক্টোবর $1",
        "november-date": "নভেম্বর $1",
        "december-date": "ডিসেম্বর $1",
+       "period-am": "পূর্বাহ্ণ",
+       "period-pm": "অপরাহ্ণ",
        "pagecategories": "{{PLURAL:$1|বিষয়শ্রেণী|বিষয়শ্রেণীসমূহ}}",
        "category_header": "\"$1\" বিষয়শ্রেণীতে অন্তর্ভুক্ত পাতাগুলি",
        "subcategories": "উপবিষয়শ্রেণীসমূহ",
        "virus-scanfailed": "স্ক্যান করা যাচ্ছে না (কোড $1)",
        "virus-unknownscanner": "অজানা এন্টিভাইরাস:",
        "logouttext": "'''আপনি এখন আপনার অ্যাকাউন্ট থেকে প্রস্থান করেছেন।'''\n\nনোট করুন যে কিছু পাতায় আপনাকে এখনও প্রবেশ অবস্থায় দেখাবে, যতক্ষণ না আপনি ব্রাউজার ক্যাশ পরিষ্কার করছেন।",
+       "cannotlogoutnow-title": "এখন প্রস্থান করা যাবে না",
+       "cannotlogoutnow-text": "$1 ব্যবহার করার সময় প্রস্থান করা সম্ভব নয়।",
        "welcomeuser": "স্বাগতম, $1!",
        "welcomecreation-msg": "আপনার অ্যাকাউন্ট তৈরী হয়েছে।\nআপনার [[Special:Preferences|{{SITENAME}} পছন্দসমূহ]]  পরিবর্তন করে নিতে ভুলবেন না।",
        "yourname": "ব্যবহারকারী নাম:",
        "remembermypassword": "এই ব্রাউজারে আমার প্রবেশ মনে রাখা হোক (সর্বোচ্চ $1 {{PLURAL:$1|দিনের}} জন্য)",
        "userlogin-remembermypassword": "আমাকে প্রবেশ অবস্থায় রাখো",
        "userlogin-signwithsecure": "নিরাপদ সংযোগ ব্যবহার করুন",
+       "cannotloginnow-title": "এখন প্রবেশ করা যাবে না",
+       "cannotloginnow-text": "$1 ব্যবহার করার সময় প্রবেশ করা সম্ভব নয়।",
        "yourdomainname": "আপনার ডোমেইন:",
        "password-change-forbidden": "আপনি এই উইকিতে পাসওয়ার্ড পরিবর্তন করতে পারবেন না।",
        "externaldberror": "হয় কোন বহিঃস্থ যাচাইকরণ ডাটাবেজ ত্রুটি ঘটেছে অথবা আপনার বহিঃস্থ অ্যাকাউন্ট হালনাগাদ করার অনুমতি নেই।",
        "wrongpasswordempty": "পাসওয়ার্ড প্রবেশের ঘরটি খালি ছিল। দয়া করে আবার চেষ্টা করুন।",
        "passwordtooshort": "পাসওয়ার্ড কমপক্ষে {{PLURAL:$1|১ অক্ষরের|$1 অক্ষরের}} হতে হবে।",
        "passwordtoolong": "পাসওয়ার্ড {{PLURAL:$1|১|$1}} অক্ষরের চেয়ে দীর্ঘ হতে পারবে না।",
+       "passwordtoopopular": "সাধারণভাবে নির্বাচিত পাসওয়ার্ড ব্যবহার করা যাবে না। দয়া করে একটি অনন্য পাসওয়ার্ড নির্বাচন করুন।",
        "password-name-match": "আপনার পাসওয়ার্ড আপনার ব্যবহারকারী নাম থেকে আলাদা হতে হবে।",
        "password-login-forbidden": "এই ব্যবহারকারীর নাম এবং পাসওয়ার্ডটি ব্যবহার নিষিদ্ধ করা হয়েছে।",
        "mailmypassword": "পাসওয়ার্ড পুনঃস্থাপন",
        "resetpass_submit": "পাসওয়ার্ড দাও এবং লগ-ইন করো",
        "changepassword-success": "আপনার পাসওয়ার্ড সাফলভাবে পরিবর্তীত হয়েছে।",
        "changepassword-throttled": "আপনি সম্প্রতি পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।",
+       "botpasswords": "বট পাসওয়ার্ড",
+       "botpasswords-label-appid": "বটের নাম:",
+       "botpasswords-label-create": "তৈরি করো",
+       "botpasswords-label-update": "হালনাগাদ",
+       "botpasswords-label-cancel": "বাতিল",
+       "botpasswords-label-delete": "অপসারণ",
+       "botpasswords-label-resetpassword": "পাসওয়ার্ড পুনঃস্থাপন",
+       "botpasswords-label-grants": "প্রয়োগযোগ্য মঞ্জুরি:",
        "resetpass_forbidden": "পাসওয়ার্ড পরিবর্তন করা সম্ভব নয়",
        "resetpass-no-info": "এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই লগইন করতে হবে।",
        "resetpass-submit-loggedin": "পাসওয়ার্ড পরিবর্তন",
        "userrights": "ব্যবহারকারী অধিকার ব্যবস্থাপনা",
        "userrights-lookup-user": "ব্যবহারকারী দল ব্যবস্থাপনা করুন",
        "userrights-user-editname": "ব্যবহারকারীর নাম লিখুন:",
-       "editusergroup": "ব্যবহারকারীর দল সম্পাদনা করো",
+       "editusergroup": "{{GENDER:$1|ব্যবহারকারীর}} দল সম্পাদনা করো",
        "editinguser": "<strong>[[User:$1|$1]]</strong> $2 {{GENDER:$1|ব্যবহারকারীর}} জন্য ব্যবহারকারী অধিকার পরিবর্তন করছেন",
        "userrights-editusergroup": "ব্যবহারকারীর দল সম্পাদনা করো",
-       "saveusergroups": "ব্যবহারকারীর দল সংরক্ষণ করো",
+       "saveusergroups": "{{GENDER:$1|ব্যবহারকারীর}} দল সংরক্ষণ করো",
        "userrights-groupsmember": "সদস্য:",
        "userrights-groupsmember-auto": "শর্তহীন সদস্য",
        "userrights-groups-help": "আপনি এই ব্যবহারকারীর বর্তমান দল পরিবর্তন করতে পারবেন:\n* টিক চিহ্ন দেওয়া ঘরের অর্থ ব্যবহারকারী এখন ঐ দলের অন্তর্ভুক্ত।\n* টিক চিহ্ন বিহীন ঘরের অর্থ ব্যবহারকারী ঐ দলের অন্তর্ভুক্ত নন।\n* একটি তারকা চিহ্ন (*) দ্বারা বোঝানো হচ্ছে এই দলের অন্তর্ভুক্তির পর আপনি আর তা বাতিল করতে পারবেন না।",
        "watchthisupload": "এই ফাইলটি নজরে রাখুন",
        "filewasdeleted": "এই নামের একটি ফাইল পূর্বে আপলোড করা হয়েছিল এবং তারপর মুছে ফেলা হয়েছিল। আপনি ফাইলটি আবার আপলোড করার আগে $1 পরীক্ষা করে দেখুন।",
        "filename-bad-prefix": "আপনি যে ফাইলটি আপলোড করছেন, তার নাম '''\"$1\"''' দিয়ে শুরু হয়েছে। এ ধরনের নাম সাধারণত ডিজিটাল ক্যামেরাগুলি স্বয়ংক্রিয়ভাবে দিয়ে থাকে এবং এগুলি ব্যাখ্যামূলক নয়। অনুগ্রহ করে আপনার ফাইলের জন্য আরও ব্যাখ্যামূলক একটি নাম পছন্দ করুন।",
-       "upload-success-subj": "আপলোড সফল হয়েছে",
-       "upload-success-msg": "[$2] থেকে আপনার আপলোড সফল হয়েছে। এটি এখানে: [[:{{ns:file}}:$1]] পাওয়া যাবে",
-       "upload-failure-subj": "আপলোড সমস্যা",
-       "upload-failure-msg": "আপনার আপলোড ফর্ম [$2]-এ একটি সমস্যা হয়েছে:\n\n$1",
-       "upload-warning-subj": "আপলোড সতর্কীকরণ",
-       "upload-warning-msg": "[$2] থেকে করা আপনার আপলোডে সমস্যা হয়েছে। সমস্যার সমাধানকল্পে আপনাকে সম্ভবত [[Special:Upload/stash/$1|আপলোড ফর্ম]]-এ ফিরে যেতে হবে।",
        "upload-proto-error": "ভুল প্রোটোকল",
        "upload-proto-error-text": "দূরবর্তী আপলোডের জন্য URLগুলি <code>http://</code> বা <code>ftp://</code> দিয়ে শুরু হওয়া আবশ্যক।",
        "upload-file-error": "আভ্যন্তরীণ ত্রুটি",
        "logempty": "মিলে যায় এমন কিছু লগে পাওয়া যায়নি।",
        "log-title-wildcard": "এই টেক্সট দিয়ে শুরু হওয়া শিরোনামগুলি অনুসন্ধান করা হোক",
        "showhideselectedlogentries": "নির্বাচিত লগগুলো দেখাও/লুকাও",
+       "checkbox-select": "নির্বাচন: $1",
+       "checkbox-all": "সব",
+       "checkbox-none": "কোনটিই নয়",
+       "checkbox-invert": "ব্যুত্ক্রমে",
        "allpages": "সব পাতা",
        "nextpage": "পরবর্তী পাতা ($1)",
        "prevpage": "পূর্ববর্তী পাতা ($1)",
        "listgrouprights-removegroup-self-all": "নিজের অ্যাকাউন্ট থেকে সকল দল অপসারণ",
        "listgrouprights-namespaceprotection-header": "নামস্থান নিষেধাজ্ঞাসমূহ",
        "listgrouprights-namespaceprotection-namespace": "নামস্থান",
-       "listgrants-rights": "অধিকার",
+       "listgrants-rights": "অধিকারসমূহ",
        "trackingcategories": "বিষয়শ্রেণীসমূহ অনুসরণ করা হচ্ছে",
        "trackingcategories-msg": "বিষয়শ্রেণী অনুসরণ করা হচ্ছে",
        "trackingcategories-name": "বার্তা নাম",
        "wlheader-showupdated": "আপনার শেষ আগমনের পর থেকে যেসব পাতায় পরিবর্তন হয়েছে সেগুলি '''গাঢ়''' করে দেখানো হয়েছে।",
        "wlnote": "নিচে $3, $4 তারিখ থেকে বিগত {{PLURAL:$2|১ ঘন্টায়|<strong>$2</strong> ঘন্টায়}} সংঘটিত {{PLURAL:$1|শেষ ১টি পরিবর্তন|শেষ <strong>$1টি</strong> পরিবর্তন}} দেখানো হল।",
        "wlshowlast": "সর্বশেষ $1 ঘণ্টা $2 দিনে দেখাও",
-       "watchlistall2": "সমস্ত",
        "watchlist-hide": "আড়াল করো",
        "watchlist-submit": "দেখাও",
        "wlshowtime": "প্রদর্শনের সময় কাল:",
        "javascripttest-pagetext-frameworks": "অনুগ্রহ করে নিচের কোনো একটি ফ্রেমওয়ার্ক নির্ধারণ করুন: $1",
        "javascripttest-pagetext-skins": "পরীক্ষার জন্য একটি স্কীন নির্ধারণ করুন:",
        "javascripttest-qunit-intro": "mediawiki.org থেকে [$1 পরীক্ষার ডলুমেন্টেশন] দেখুন।",
-       "tooltip-pt-userpage": "আপনার ব্যবহারকারী পাতা",
+       "tooltip-pt-userpage": "{{GENDER:|আপনার ব্যবহারকারী}} পাতা",
        "tooltip-pt-anonuserpage": "যে আইপি ঠিকানা থেকে আপনি সম্পাদনা করছেন, তার ব্যবহারকারী পাতা",
-       "tooltip-pt-mytalk": "আপনার আলাপের পাতা",
+       "tooltip-pt-mytalk": "{{GENDER:|আপনার}} আলাপ পাতা",
        "tooltip-pt-anontalk": "এই আইপি ঠিকানা থেকে করা সম্পাদনার উপর আলোচনা",
-       "tooltip-pt-preferences": "আমার পছন্দ",
+       "tooltip-pt-preferences": "{{GENDER:|আপনার}} পছন্দ",
        "tooltip-pt-watchlist": "যে পাতাগুলির পরিবর্তন আপনি নজরে রেখেছেন, তাদের তালিকা",
-       "tooltip-pt-mycontris": "আপনার অবদানগুলোর তালিকা",
+       "tooltip-pt-mycontris": "{{GENDER:|আপনার}} অবদানগুলোর একটি তালিকা",
        "tooltip-pt-anoncontribs": "এই আইপি ঠিকানা থেকে করা সম্পাদনার একটি তালিকা",
        "tooltip-pt-login": "আপনার প্রবেশ করাটা বাঞ্চনীয়, কিন্তু তা বাধ্যতামূলক নয়।",
        "tooltip-pt-logout": "প্রস্থান",
        "tooltip-t-recentchangeslinked": "এই পাতা থেকে সংযোগ আছে, এমন পাতাগুলিতে সাম্প্রতিক পরিবর্তন",
        "tooltip-feed-rss": "এই পাতার জন্য আরএসএস ফিড",
        "tooltip-feed-atom": "এই পাতার জন্য অ্যাটম ফিড",
-       "tooltip-t-contributions": "এই ব্যবহারকারীর অবদানগুলির তালিকা দেখুন",
-       "tooltip-t-emailuser": "এই ব্যবহারকারীকে একটি ই-মেইল পাঠান",
+       "tooltip-t-contributions": "{{GENDER:|এই ব্যবহারকারীর}} অবদানগুলির একটি তালিকা",
+       "tooltip-t-emailuser": "{{GENDER:|এই ব্যবহারকারীকে}} একটি ই-মেইল পাঠান",
        "tooltip-t-info": "এই পাতা সম্পর্কে আরো তথ্য",
        "tooltip-t-upload": "ফাইল আপলোড করুন",
        "tooltip-t-specialpages": "সব বিশেষ পাতার তালিকা",
        "hebrew-calendar-m12": "এলুল",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|আলাপ]])",
        "timezone-utc": "ইউটিসি",
+       "timezone-local": "স্থানীয়",
        "duplicate-defaultsort": "' ' ' সাবধান: ' ' '  ডিফল্ট সাজানোর কীঃ \"$2\" পূর্বে ডিফল্ট সাজানোর কীঃ \"$1\" কে অগ্রাহ্য করে।",
        "duplicate-displaytitle": "<strong>সতর্কীকরণ:</strong> প্রদর্শন শিরোনাম \"$2\" আগের প্রদর্শন শিরোনাম \"$1\" অগ্রাহ্য করবে।",
        "invalid-indicator-name": "<strong>ত্রুটি:</strong> পাতার অবস্থা নির্দেশক <code>name</code> অ্যাট্রিবিউট খালি হতে পারবে না।",
        "expand_templates_generate_xml": "XML পার্স বৃক্ষ দেখাও",
        "expand_templates_generate_rawhtml": "এইচটিএমএল দেখাও",
        "expand_templates_preview": "প্রাকদর্শন",
-       "pagelanguage": "পাতার à¦­à¦¾à¦·à¦¾ à¦¨à¦¿à¦°à§\8dবাà¦\9aà¦\95",
+       "pagelanguage": "পাতার à¦­à¦¾à¦·à¦¾ à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦\95রà§\81ন",
        "pagelang-name": "পাতা",
        "pagelang-language": "ভাষা",
        "pagelang-use-default": "ডিফল্ট ভাষা ব্যবহার করুন",
        "pagelang-select-lang": "ভাষা নির্বাচন করুন",
+       "pagelang-submit": "জমা দাও",
        "right-pagelang": "পাতার ভাষা পরিবর্তন করুন",
        "action-pagelang": "পাতার ভাষা পরিবর্তন করুন",
        "log-name-pagelang": "ভাষা পরিবর্তন লগ",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''নিষ্ক্রিয় করা''')",
        "mediastatistics": "মিডিয়া পরিসংখ্যান",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 বাইট}} ($2; $3%)",
-       "mediastatistics-bytespertype": "এই অনুচ্ছেদের জন্য মোট ফাইলের আকার: $1 বাইট।",
-       "mediastatistics-allbytes": "সব ফাইলের জন্য মোট ফাইলের আকার: $1 বাইট।",
+       "mediastatistics-bytespertype": "এই অনুচ্ছেদের জন্য মোট ফাইলের আকার: {{PLURAL:$1|$1 বাইট}} ($2; $3%)।",
+       "mediastatistics-allbytes": "সব ফাইলের জন্য মোট ফাইলের আকার: {{PLURAL:$1|$1 বাইট}} ($2)।",
        "mediastatistics-table-mimetype": "MIME ধরন",
        "mediastatistics-table-extensions": "সম্ভাব্য এক্সটেনশন",
        "mediastatistics-table-count": "ফাইলের সংখ্যা",
        "mediastatistics-header-video": "ভিডিও",
        "mediastatistics-header-office": "অফিস",
        "mediastatistics-header-archive": "সংকুচিত বিন্যাস",
+       "mediastatistics-header-total": "সকল ফাইল",
        "json-error-unknown": "JSON-এ একটি সমস্যা রয়েছে। ত্রুটি: $1",
        "json-error-state-mismatch": "অকার্যকর বা ত্রুটিপূর্ণ JSON",
        "json-error-ctrl-char": "অক্ষর নিয়ন্ত্রণ ত্রুটি, সম্ভবত ভুল এনকোডকৃত",
        "mw-widgets-dateinput-placeholder-month": "বববব-মম",
        "mw-widgets-titleinput-description-new-page": "পাতা এখনো বিদ্যমান নয়",
        "mw-widgets-titleinput-description-redirect": "$1-এ পুনঃনির্দেশিত",
-       "api-error-blacklisted": "অনুগ্রহ করে অপর কোনো বর্ণনামূলক নাম ব্যবহার করুন।"
+       "api-error-blacklisted": "অনুগ্রহ করে অপর কোনো বর্ণনামূলক নাম ব্যবহার করুন।",
+       "sessionprovider-generic": "$1টি সেশন",
+       "sessionprovider-mediawiki-session-cookiesessionprovider": "কুকি-ভিত্তিক সেশন",
+       "randomrootpage": "অজানা মূল পাতা"
 }
index 7b59b50..b3dae32 100644 (file)
        "resetpass_submit": "Cheñch ar ger-tremen ha kevreañ",
        "changepassword-success": "Cheñchet eo bet ho ker-tremen !",
        "changepassword-throttled": "Betek re hoc'h heus klasket kevreañ en aner.\nGortozit $1, mar plij, a-raok esaeañ en-dro.",
+       "botpasswords-label-create": "Krouiñ",
+       "botpasswords-label-cancel": "Nullañ",
+       "botpasswords-label-delete": "Dilemel",
        "resetpass_forbidden": "N'haller ket cheñch ar gerioù-termen",
        "resetpass-no-info": "Ret eo deoc'h bezañ kevreet a-benn mont d'ar bajenn-se war-eeun.",
        "resetpass-submit-loggedin": "Cheñch ger-tremen",
        "filewasdeleted": "Ur restr gant an anv-mañ zo bet enporzhiet dija ha diverket goude-se. Mat e vefe deoc'h gwiriañ an $1 a-raok hec'h enporzhiañ en-dro.",
        "filename-bad-prefix": "Anv ar restr emaoc'h oc'h enporzhiañ a grog gant '''\"$1\"''', da lavaret eo un anv dizeskrivus roet alies ent emgefre gant luc'hskeudennerezioù niverel. Dibabit un anv splannoc'h evit deskrivañ ar restr.",
        "filename-prefix-blacklist": " #<!-- lezel al linenn-mañ tre ha tre evel m'emañ --> <pre>\n# Setu penaos emañ an ereadur :\n#   * Pep tra adal un arouezenn \"#\" betek dibenn al linenn a ya d'ober un notenn\n#   * Pep linenn n'eo ket goullo zo ur rakger evit anvioù restroù heverk roet ent emgefre gant luc'hskeudennerezioù niverel\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # pellgomzerioù hezoug zo\nIMG # jenerik\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- leave this line exactly as it is -->",
-       "upload-success-subj": "Eiladenn kaset da benn vat",
-       "upload-success-msg": "Ho kargadenn eus [$2] a zo bet graet. Gellout a rit kavout anezhi amañ : [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Kudenn kargañ",
-       "upload-failure-msg": "Ur gudenn 'zo bet e-pad ho kargadenn adalek [$2] :\n\n$1",
-       "upload-warning-subj": "Kemenn diwall en ur ezporzhiañ",
-       "upload-warning-msg": "Ur gudenn zo bet e-kerzh hoc'h ezporzhiadur eus [$2]. Gallout a c'heller distreiñ d'ar [[Special:Upload/stash/$1|furmskrid ezporzhiañ]] evit renkañ ar gudenn.",
        "upload-proto-error": "Protokol direizh",
        "upload-proto-error-text": "Rekis eo an URLoù a grog gant <code>http://</code> pe <code>ftp://</code> evit enporzhiañ.",
        "upload-file-error": "Fazi diabarzh",
        "wlheader-showupdated": "E '''tev''' emañ merket ar pajennoù bet kemmet abaoe ar wezh ziwezhañ hoc'h eus sellet outo",
        "wlnote": "Setu aze {{PLURAL:$1|ar c'hemm diwezhañ|ar '''$1''' kemm diwezhañ}} c'hoarvezet e-kerzh an {{PLURAL:$2|eurvezh|'''$2''' eurvezh}} diwezhañ, d'an $3 da $4.",
        "wlshowlast": "Diskouez an $1 eurvezh $2 devezh diwezhañ",
-       "watchlistall2": "pep tra",
        "wlshowhidemine": "ma c'hemmoù",
        "watchlist-options": "Dibarzhioù ar roll evezhiañ",
        "watching": "Heuliet...",
index 6c34312..daf4207 100644 (file)
        "virus-scanfailed": "сканиран гӀалат (код $1)",
        "virus-unknownscanner": "йозуш йоцу антивирус:",
        "logouttext": "'''Ахьа болх дӀаберзийна.'''\n\nЦхьайолу агӀонаш чохь хьо хьай цӀарца болх беш сана хила тарло ишта ца хилийта керлаякха браузеран кэш.",
+       "cannotlogoutnow-title": "ХӀинца чудаха таро яц",
        "welcomeuser": "Марша ДогӀийла, $1!",
        "welcomecreation-msg": "Хьан декъашхочун дӀаяздар кхоьлина.\nДиц ма делахь {{SITENAME}} сайтан [[Special:Preferences|декъашхочун гӀирс]].",
        "yourname": "Декъашхочун цӀе:",
        "remembermypassword": "Даглаца сан дӀаяздар хӀокху компьютеран тӀехь (цхьан $1 {{PLURAL:$1|дийнахь}})",
        "userlogin-remembermypassword": "Системин чохь Ӏойла",
        "userlogin-signwithsecure": "Ларийна цхьаьнакхетар",
+       "cannotloginnow-title": "ХӀинца чудаха таро яц",
        "yourdomainname": "Хьан машан меттиг:",
        "password-change-forbidden": "Хьан йиш яц хӀокху вики чохь пароль хийца.",
        "externaldberror": "Арахьара хаамийн базан гӀоьнца аутентификаци ечу хенахь гӀалат даьлла я хьа дӀаяздаран хийцам бан бакъонаш яц.",
        "resetpass_submit": "Пароль дӀахӀоттийна а системин чугӀо",
        "changepassword-success": "Хьан пароль кхиамца хийцина!",
        "changepassword-throttled": "Хьо дукха гӀиртира.\nДехар до, собар де $1 юха гӀортале.",
+       "botpasswords": "Ботийн парольш",
+       "botpasswords-editexisting": "Тае ботан йолуш йолу пароль",
+       "botpasswords-label-appid": "Ботан цӀе:",
+       "botpasswords-label-create": "Кхолла",
+       "botpasswords-label-update": "Карлаяккха",
+       "botpasswords-label-cancel": "Юхаяккха",
+       "botpasswords-label-delete": "ДӀаяккхар",
+       "botpasswords-label-restrictions": "Лелоран доза тохар:",
+       "botpasswords-label-grants-column": "Магийна",
+       "botpasswords-bad-appid": "«$1» ботан цӀе магийна яц.",
+       "botpasswords-created-body": "Ботан «$1» пароль кхиамца кхоьллина.",
        "resetpass_forbidden": "Пароль хийца йиш яц",
        "resetpass-no-info": "ХӀара агӀо лело системин чугӀо.",
        "resetpass-submit-loggedin": "Хийца пароль",
        "filewasdeleted": "Иштта цӀе йолуш файл хьалха чуяьккхина хила, амма дӀаяьккхина. Дехар до, юху чуяккхале $1 хьажа.",
        "filename-bad-prefix": "Чуйоккхучу файлан цӀе йолалуш ю «'''$1'''» и сурт доккхучу хӀумнан кепан цӀе хилла мега. Дехар до, хьаржа файлан йогӀуш йолу цӀе.",
        "filename-prefix-blacklist": "#<!-- битийша хlара могlа ша мабарра --> <pre>\n# Бухасиз шолгlа:\n#  * Массо, саболчунтlийра йуьлалуш ерш «#» хуьлу хетаме дерг (могlа чекх балац)\n#  * Хlора баьсса боцу могlа — хlман цlе лораш йу, терахьца сурт доккхучо луш ма хиллар\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # ишта цхьаболу лера гlирс а\nIMG # еригге\nJD # Jenoptik\nMGP # Pentax\nPICT # тайп тайпан\n #</pre> <!-- битийша хlара могlа ша мабарра -->",
-       "upload-success-subj": "Чуяккхар кхиамца чекхделира.",
-       "upload-success-msg": "Хьа чуяккхар [$2] кхиамца чекхделира. Хиллачуьнга хьажа йиш ю кхузахь: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Чуяккхаран бала",
-       "upload-failure-msg": "Хьа чуяккхаран бала карина [$2]:\n\n$1",
-       "upload-warning-subj": "ДӀахьедар",
-       "upload-warning-msg": "Чуйоккхуш [$2] гӀалат даьлла. И нисдан юхагӀо [[Special:Upload/stash/$1|upload form]] чу.",
        "upload-proto-error": "Нийса йоцу протокол",
        "upload-file-error": "Чоьхьара гӀалат",
        "upload-misc-error": "Чуяккхаран цадевза гӀалат",
        "logempty": "Тептарш чохь хӀокху агӀона дӀаяздарш дац.",
        "log-title-wildcard": "ХӀокху символашца болалуш болу кортанаш карабе",
        "showhideselectedlogentries": "Гайта/къайлаяха хаьржина башхонаш",
+       "checkbox-select": "Харжар: $1",
+       "checkbox-all": "Массо",
+       "checkbox-none": "ХӀума а",
+       "checkbox-invert": "Инверт ян",
        "allpages": "Массо агӀонаш",
        "nextpage": "ТӀаьхьа йогӀу агӀо ($1)",
        "prevpage": "Хьалха йоьду агӀо ($1)",
        "listgrouprights-namespaceprotection-header": "ЦӀеран анан бехкам",
        "listgrouprights-namespaceprotection-namespace": "ЦӀерийн ана",
        "listgrouprights-namespaceprotection-restrictedto": "Декъашхочун хийцамаш бан таро хуьлуьйту бакъонаш",
+       "listgrants": "Бакъо",
        "listgrants-grant": "Бакъо",
        "listgrants-rights": "Бакъонаш",
        "trackingcategories": "Хьожуш йолу категореш",
        "wlheader-showupdated": "Хийцам бина агӀонаш '''Ӏаьржа''' шрифтцан билгальяха ю.",
        "wlnote": "Гойту <strong>$2</strong> {{plural:$2|сахьтчохь}} бина {{PLURAL:$1|тӀеххьара '''$1''' хийцам}}, хан $3 $4",
        "wlshowlast": "Гайта тӀаьххьара $1 сахьт $2 де",
-       "watchlistall2": "массо",
        "watchlist-hide": "Къайлаяккха",
        "watchlist-submit": "Гайта",
        "wlshowtime": "Гаран хенан мур:",
        "block-log-flags-hiddenname": "декъашхочун цӀе къайлаяьккхина",
        "range_block_disabled": "Куьйгалхошна диапазонашна блоктоха цамага до.",
        "ipb_expiry_invalid": "Дешдерг дан нийса йоцу хан.",
+       "ipb_expiry_old": "Хан чаккхе — хьалхалера.",
        "ipb_already_blocked": "«$1» хӀинцале блоктоьхна ю.",
        "ipb-needreblock": "ХӀокху $1 декъашхочун {{GENDER:$1|блоктоьхна ю}}. Лаьий хьуна блоктохаран параметраш хийца?",
        "ipb-otherblocks-header": "{{PLURAL:$1|Кхин блоктохар|Кхин блоктохарш}}",
        "allmessagescurrent": "Карарчу хенан йоза",
        "allmessagestext": "ХӀара «MediaWiki» цӀерийн меттигера системан хаамийн могӀа бу.\nХьайна MediaWiki тая лууш делахь, дехар до, проект [//translatewiki.net translatewiki.net] [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation юьйцучу хьажа].",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' дӀаяйина хилар бахьнехь хӀара агӀо дӀачӀаьгӀна ю.",
-       "allmessages-filter-legend": "Литтар",
-       "allmessages-filter": "Литтар оцу хьола хийцамца:",
+       "allmessages-filter-legend": "Луьттург",
+       "allmessages-filter": "Луьттург оцу хьола хийцамца:",
        "allmessages-filter-unmodified": "Хийцан йоцурш",
        "allmessages-filter-all": "Массо",
        "allmessages-filter-modified": "Хийцнарш",
-       "allmessages-prefix": "Литтар оцу дешахьалхе:",
+       "allmessages-prefix": "Луьттург оцу дешахьалхе:",
        "allmessages-language": "Мотт:",
        "allmessages-filter-submit": "Дехьа гӀо",
        "allmessages-filter-translate": "Гочйе",
        "anonusers": "{{PLURAL:$2|1=цӀе хьулйина декъашхо|цӀе хьулйина декъашхой}} {{grammar:genitive|{{SITENAME}}}} $1",
        "creditspage": "Баркаллаш",
        "nocredits": "Бац декъашхойн могӀам хӀокху яззамца",
-       "spamprotectiontitle": "СовбилаÑ\80на Ð»Ð¸Ñ\82Ñ\82аÑ\80",
+       "spamprotectiontitle": "Спам-лÑ\83Ñ\8cÑ\82Ñ\82Ñ\83Ñ\80г",
        "spamprotectiontext": "Хьо дӀаязъян гӀерта агӀо спам-литтаро дӀакъоьвлина.\nЦуна бахьана хила там бу агӀона чохь зулам литтаран чутоьхна йолу хьажорг хилар.",
        "spambot_username": "Спам дӀацӀаняр",
        "pageinfo-title": "Хаамаш цу «$1»",
        "file-info-png-frames": "$1 {{PLURAL:$1|кадр|кадраш}}",
        "newimages": "Керлачу файлийн галерей",
        "newimages-summary": "ХӀокху белхан агӀона чохь гойтуш ю дукха хан йоццуш чуяьхна файлаш.",
-       "newimages-legend": "Литтар",
+       "newimages-legend": "Луьттург",
        "newimages-showbots": "Гайта боташ чуяьхна файлаш",
        "newimages-hidepatrolled": "Къайлаяха патруль йина файлаш",
        "noimages": "Суьрташ дац.",
        "watchlisttools-edit": "Хьажа/нисбé могӀам",
        "watchlisttools-raw": "Йоза санна тае",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|дийцаре]])",
+       "timezone-local": "Меттигера",
        "version": "Верси MediaWiki",
        "version-extensions": "ДӀахӀоттийна шордарш",
        "version-skins": "ДӀахӀоттийна кечяран темаш",
        "redirect-page": "АгӀона ID",
        "redirect-revision": "АгӀона верси",
        "redirect-file": "Файлан цӀе",
+       "redirect-logid": "Тептаран ID",
        "redirect-not-exists": "МаьӀна цакарий",
        "fileduplicatesearch": "Лаха цхьатерра йолу файлаш",
        "fileduplicatesearch-summary": "Хэш-кодаца цхьатерра файлаш лахар.",
        "specialpages-group-spam": "Спаман дуьхьала гӀирсаш",
        "blankpage": "Еса агӀо",
        "tags": "Болш болу хийцаман къастам",
-       "tag-filter": "Къастам [[Special:Tags|хьажар]]:",
+       "tag-filter": "[[Special:Tags|Билгалонаш]] луьттург:",
        "tag-filter-submit": "Литта",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|1=Билгало|Билгалонаш}}]]: $2)",
        "tags-title": "Билгалонаш",
        "special-characters-title-emdash": "деха сиз",
        "special-characters-title-minus": "хьаьрк минус",
        "mw-widgets-titleinput-description-redirect": "ДӀасхьажорг $1 тӀе",
+       "sessionprovider-generic": "$1 сесси",
        "randomrootpage": "Цахууш нисъелла ораман агӀо"
 }
index 1a083ca..3ee81bd 100644 (file)
@@ -50,7 +50,7 @@
        "tog-watchlisthidebots": "دەستکارییەکانی بات بشارەوە لە لیستی چاودێری",
        "tog-watchlisthideminor": "دەستکارییە بچووکەکان لە لیستی چاودێریدا بشارەوە",
        "tog-watchlisthideliu": "دەستکارییەکانی ئەو بەکارهێنەرانەی لە ژوورەوەن بشارەوە لە لیستی چاودێری",
-       "tog-watchlisthideanons": "دەستکارییەکانی بەکارهێنەرانی نەناسراو بشارەوە لە لیستی چاودێری",
+       "tog-watchlisthideanons": "دەستکارییەکانی بەکارهێنەرە نەناسراوەکان لە لیستی چاودێریدا بشارەوە",
        "tog-watchlisthidepatrolled": "لە پێرستی چاودێرییەکاندا دەستکارییە پاس دراوەکان بشارەوە",
        "tog-ccmeonemails": "کۆپییەک لەو ئیمەیلانە کە بۆ بەکارھێنەرانی تر دەنێرم بۆ خۆشم بنێرە",
        "tog-diffonly": "ناوەرۆکی پەڕە لە ژێرەوەی جیاوازییەکاندا نیشان مەدە",
        "loginsuccesstitle": "سەرکەوتی بۆ چوونە ژوورەوە",
        "loginsuccess": "'''ئێستا بە ناوی «$1»ەوە لە {{SITENAME}} چوویتەتەژوورەوە.'''",
        "nosuchuser": "بەکارھێنەرێک بە ناوی «$1» نیە.\nناوی بەکارھێنەر بە گەورە و بچووک بوونی پیتەکان ھەستیارە.\nڕێنووسەکەت چاولێکەرەوە، یان [[Special:UserLogin/signup|ھەژمارێکی نوێ دروست بکە]].",
-       "nosuchusershort": "بەکارهێنەر بە ناوی \"$1\" نیە.\nچاو لە ڕێنووسەکە بکە.",
-       "nouserspecified": "دەبێ ناوی بەکارهێنەر دابین‌ بکەی.",
+       "nosuchusershort": "بەکارھێنەرێک بە ناوی «$1»ەوە نیە.\nبە نووسراوەکەتدا بچۆرەوە.",
+       "nouserspecified": "دەبێت ناوێکی بەکارھێنەری دەستنیشان بکەیت.",
        "login-userblocked": "ئەم بەکارهێنەرە بڵۆک کراوە. چوونەژوورەوە ڕێگەپێنەدراوە.",
        "wrongpassword": "تێپەڕوشەی ھەڵە.\nتکایە دووبارە تێبکۆشە.",
        "wrongpasswordempty": "تێپەڕەوشەی لێدراو بەتاڵبوو.\nتکایە هەوڵ بدەوە.",
        "password-login-forbidden": "بەکارهێنانی ئەم ناوی بەکارهێنەر و تێپەڕەووشەیە قەدەغەکراوە.",
        "mailmypassword": "تێپەڕوشەکە ڕێک بخەوە",
        "passwordremindertitle": "تێپەڕوشەیەکی نوێی کاتی بۆ  {{SITENAME}}",
-       "passwordremindertext": "کەسێک (لەوانەیە خۆت، لە ئای‌پی ئەدرەسی $1) داوای تێپەڕوشەیەکی نوێی کردووە بۆ {{SITENAME}} ($4). تێپەڕوشەیەکی کاتی بۆ بەکارهێنەر «$2» دروستکراو و وەک «$3» دانراوه. ئەگەر ئەمە داخوازی تۆ بووە، پێویستت بەوەیە ئێستا بچیتە ژوورەوە و تێپەڕوشەیەکی نوێ هەڵبژێریت. ماوەی‌ تێپەڕوشە کاتییەکەت لە {{PLURAL:$5|یەک ڕۆژدا|$5 ڕۆژدا}} بەسەردەچێت.\n\nئەگەر کەسێکی تر ئەم داوایەی کردووە یان تێپەڕوشەکەت هاتووەتەوە بیرت و ئیتر پێویستت بە گۆڕانی نییە، دەتوانی گوێ بەم پەیامە نەدەیت و لە تێپەڕوشە کۆنەکەت کەڵک وەربگری.",
+       "passwordremindertext": "کەسێک (لەوانەیە خۆت، لە ناونیشانی IPی $1ـەوە) داوای تێپەڕوشەیەکی نوێی کردووە بۆ {{SITENAME}} ($4). تێپەڕوشەیەکی کاتی بۆ بەکارھێنەر «$2» دروست کراوە و بە «$3» دانراوه. ئەگەر ئەمە داخوازی تۆ بووە، پێویستت بەوەیە ئێستا بچیتە ژوورەوە و تێپەڕوشەیەکی نوێ هەڵبژێریت. ماوەی‌ تێپەڕوشە کاتییەکەت لە {{PLURAL:$5|یەک ڕۆژدا|$5 ڕۆژدا}} بەسەر دەچێت.\n\nئەگەر کەسێکی تر ئەم داوایەی کردووە یان تێپەڕوشەکەت هاتووەتەوە بیرت و ئیدی پێویستت بە گۆڕینی نییە، دەتوانیت گوێ بەم پەیامە نەدەیت و لە تێپەڕوشە کۆنەکەت کەڵک وەربگریت.",
        "noemail": "ھیچ ئەدرەسێکی ئیمەیل تۆمار نەکراوە بۆ بەکارھێنەر « $1 ».",
        "noemailcreate": "دەبێ ناونیشانێکی دروستی ئیمەیل بنووسی",
        "passwordsent": "تێپەڕوشەیەکی نوێ نێررا بۆ ئەدرەسی ئیمێلی تۆمارکراوی «$1».\nتکایە دوای وەرگرتنی، دیسان بچۆ ژوورەوە.",
        "userrights-lookup-user": "بەڕێوەبردنی گرووپەکانی بەکارھێنەر",
        "userrights-user-editname": "ناوی بەکارهێنەرێک بنووسە:",
        "editusergroup": "گرووپەکانی بەکارھێنەر دەستکاری بکە",
-       "editinguser": "گۆڕینی مافەکانی بەکارهێنەر {{GENDER:$1|بەکارھێنەر}} <strong>[[User:$1|$1]]</strong> $2",
-       "userrights-editusergroup": "دەستکاریی گرووپەکانی بەکارهێنەر",
+       "editinguser": "گۆڕینی مافە بەکارھێنەرییەکانی {{GENDER:$1|بەکارھێنەر}} <strong>[[User:$1|$1]]</strong> $2",
+       "userrights-editusergroup": "گرووپە بەکارھێنەرییەکان دەستکاری بکە",
        "saveusergroups": "گرووپەکانی بەکارھێنەر پاشەکەوت بکە",
        "userrights-groupsmember": "ئەندامە لە:",
        "userrights-groupsmember-auto": "ئەندامی ناڕاشکاوە لە:",
        "watchthisupload": "ئەم پەڕگەیە بخە ژێر چاودێری",
        "filewasdeleted": "پەڕگەیەک بەم ناوە لەم دواییانەدا بارکرا و بە خێرایی سڕایەوە.\nباشتر وایە پێش هەوڵی دووبارە بۆ بارکردن سەرنجی $1 بدەی.",
        "filename-bad-prefix": "دەستپێکی ناوی ئەو پەڕگەی باری دەکەی '''\"$1\"'''، کە ناوێکی ناسێنەر نیە؛ ئەو جۆرە ناوە زۆربەی کات کامێرا دیجیتاڵەکان خۆکار بەکاری‌دەبەن.\nتکایە ناوێک هەڵبژێرە کە زانیاریی زیاتر بدات سەبارەت بە پەڕگەکەت.",
-       "upload-success-subj": "بارکردنی سەرکەوتوو",
-       "upload-success-msg": "بارکردنی [$2] سەرکەوتووانە جێبەجێکرا. لێرە لەبەردەستدایە: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "کێشەی بارکردن",
-       "upload-failure-msg": "کێشەیەک لەگەڵ بارکردنی [$2]دا ھەبوو:\n\n$1",
-       "upload-warning-subj": "ئاگاداریی بارکردن",
        "upload-proto-error": "پرۆتۆکۆڵی هەڵە",
        "upload-proto-error-text": "بۆ بارکردن لە تۆڕ، URL دەبێ بە <code>http://</code>  یان <code>ftp://</code> دەست‌پێ‌بکات.",
        "upload-file-error": "ھەڵەی ناوخۆیی",
        "listgrouprights-rights": "مافەکان",
        "listgrouprights-helppage": "Help:مافەکانی گرووپ",
        "listgrouprights-members": "(پێرستی ئەندامەکان)",
-       "listgrouprights-addgroup": "زیادکردنی {{PLURAL:$2|گرووپ|گرووپ}}: $1",
-       "listgrouprights-removegroup": "لابردنی {{PLURAL:$2|گرووپ|گرووپ}}: $1",
+       "listgrouprights-addgroup": "زیادکردنی {{PLURAL:$2|گرووپی|گرووپەکانی}}: $1",
+       "listgrouprights-removegroup": "لابردنی {{PLURAL:$2|گرووپی|گرووپەکانی}}: $1",
        "listgrouprights-addgroup-all": "زیادکردنی هەموو گرووپەکان",
        "listgrouprights-removegroup-all": "لابردنی هەموو گرووپەکان",
        "listgrouprights-addgroup-self": "زیادکردنی {{PLURAL:$2|گرووپ|گرووپەکان}} بۆ سەر ھەژماری خۆی: $1",
        "wlheader-showupdated": "‏ئەو پەڕانە کە لە پاش دوایین سەردانت دەستکاری کراون بە <strong>ئەستوور</strong> نیشان دراون.",
        "wlnote": "خوارەوە {{PLURAL:$1|دوایین گۆڕانکارییە|دوایین <strong>$1</strong> گۆڕانکارییە}} لە دوایین {{PLURAL:$2|کاتژمێر|<strong>$2</strong> کاتژمێر}}دا ھەتا $4ی $3.",
        "wlshowlast": "دوایین $1 کاتژمێری $2 ڕۆژ نیشان بدە",
-       "watchlistall2": "ھەموو",
        "watchlist-options": "ھەڵبژاردەکانی لیستی چاودێری",
        "watching": "چاودێری...",
        "unwatching": "لابردنی چاودێری...",
        "sp-contributions-uploads": "بارکردنەکان",
        "sp-contributions-logs": "لۆگەکان",
        "sp-contributions-talk": "لێدوان",
-       "sp-contributions-userrights": "بەڕێوبەرایەتی مافەکانی بەکارهێنەر",
+       "sp-contributions-userrights": "بەڕێوەبەرایەتیی مافە بەکارهێنەرییەکان",
        "sp-contributions-blocked-notice": "ھەنووکە ئەم بەکارھێنەرە بەربەست کراوە.\nدوایین بابەتی لۆگی بەربەستن لە ژێرەوە ھاتووە:",
        "sp-contributions-blocked-notice-anon": "ھەنووکە ئەم ناونیشانەی IPیە بەربەست کراوە.\nدوایین بابەتی لۆگی بەربەستن لە ژێرەوە ھاتووە:",
        "sp-contributions-search": "گەڕان بۆ بەشدارییەکان",
        "ipbsubmit": "بەربەستکردنی ئەم بەکارھێنەرە",
        "ipbother": "کاتی‌ دیکە:",
        "ipboptions": "٢ کاتژمێر:2 hours,١ ڕۆژ:1 day,٣ ڕۆژ:3 days,١ ھەفتە:1 week,٢ ھەفتە:2 weeks,١ مانگ:1 month,٣ مانگ:3 months,٦ مانگ:6 months,١ ساڵ:1 year,بێ‌سنوور:infinite",
-       "ipbhidename": "شاردنەوەی ناوی‌ بەکارهێنەر لە دەستکاری و لیستەکان",
+       "ipbhidename": "ناوی‌ بەکارھێنەر لە دەستکارییەکان و لیستەکاندا بشارەوە",
        "ipbwatchuser": "پەڕەکانی بەکارھێنەر و لێدوانی ئەم بەکارهێنەرە بخە ژێر چاودێری",
        "ipb-disableusertalk": "بەرگری ئەم بەکارھێنەرە بکە لە دستکاریکردنی پەڕەی لێدوانەکەی کاتێک بەربەست کراوە",
        "ipb-change-block": "دیسان بەربەست‌کردنەوەی ئەم بەکارهێنەرە بەم هەڵبژاردانە",
        "tooltip-undo": "«پووچەڵکردنەوە» ئەم گۆڕانکارییە دەگەڕێنێتەوە و فۆرمی دەستکاریکردن لە شێوەی پێشبینیندا دەکاتەوە. بەم جۆرە دەکرێ ھۆکارێک لە کورتەی دەستکاریدا بنووسرێ.",
        "tooltip-preferences-save": "هەڵبژاردنەکانت بپارێزە",
        "tooltip-summary": "پوختەیەکی کورتی تێبخە",
-       "anonymous": "{{PLURAL:$1|بەکارهێنەری|بەکارهێنەرانی}} نەناسراوی {{SITENAME}}",
+       "anonymous": "{{PLURAL:$1|بەکارھێنەری نەناسراوی|بەکارھێنەرە نەناسراوەکانی}} {{SITENAME}}",
        "siteuser": "بەکارھێنەری {{SITENAME}}، $1",
        "anonuser": "$1، بەکارھێنەری نامۆی {{SITENAME}}",
        "lastmodifiedatby": "ئەم پەڕە دواجار لە $2ی $1 بە دەستی $3 گۆڕدراوە.",
        "othercontribs": "لەسەر بنەمای کاری $1.",
        "others": "ئەوانی دیکە",
-       "siteusers": "{{PLURAL:$2|بەکارهێنەری|بەکارهێنەرانی}} {{SITENAME}} $1",
+       "siteusers": "{{PLURAL:$2|بەکارھێنەری|بەکارھێنەرانی}} {{SITENAME}} $1",
        "anonusers": "{{PLURAL:$2|بەکارھێنەر|بەکارھێنەر}}ی نامۆی {{SITENAME}} $1",
        "creditspage": "بایەخەکانی لاپەڕە",
        "nocredits": "هیچ زانیارییەکی بایەخ لەبەردەست‌دا نیە بۆ ئەم لاپەڕە.",
        "exif-colorspace": "بۆشایی ره‌نگ",
        "exif-pixelydimension": "پانی وێنە",
        "exif-pixelxdimension": "بەرزی وێنە",
-       "exif-usercomment": "بۆچوونەکانی بەکارهێنەر",
+       "exif-usercomment": "بۆچوونەکانی بەکارھێنەر",
        "exif-relatedsoundfile": "فایلی ده‌نگی لێکچوو",
        "exif-datetimeoriginal": "ڕێکەوت و کاتی بەرھەمھێنانی داتا",
        "exif-datetimedigitized": "ڕێکەوت و کاتی بە دیجیتاڵی کردن",
index 3e3ab4d..c2b161f 100644 (file)
        "filename-thumb-name": "Tohle vypadá jako název souboru s náhledem obrázku. Nenačítejte prosím náhledy zpět na stejnou wiki. Případně opravte název, aby byl smysluplnější a neobsahoval prefix jako náhledy.",
        "filename-bad-prefix": "Jméno souboru, který načítáte, začíná na '''„$1“''', což je nevhodné jméno, obvykle automaticky přiřazované digitálním fotoaparátem. Zvolte jméno, které váš soubor popíše lépe.",
        "filename-prefix-blacklist": " #<!-- tuto řádku ponechte beze změny --> <pre>\n# Používá se následující syntaxe:\n#   * Cokoli od znaku „#“ až do konce řádky je komentář\n#   * Každá neprázdná řádka je prefix typických jmen souborů automaticky generovaných digitálními fotoaparáty\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # některé mobilní telefony\nIMG # obecné\nJD # Jenoptik\nMGP # Pentax\nPICT # různé\n #</pre> <!-- tuto řádku ponechte beze změny -->",
-       "upload-success-subj": "Načtení úspěšně provedeno!",
-       "upload-success-msg": "Soubor vámi načtený z [$2] je dostupný na [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problém s načítaným souborem",
-       "upload-failure-msg": "U souboru vámi načítaného z [$2] se vyskytl problém:\n\n$1",
-       "upload-warning-subj": "Upozornění k načítání",
-       "upload-warning-msg": "Při vašem načítání souboru z [$2] nastal problém. Pokud ho chcete vyřešit, můžete se vrátit do [[Special:Upload/stash/$1|načítacího formuláře]].",
        "upload-proto-error": "Neplatný protokol",
        "upload-proto-error-text": "Nahrání vzdáleného souboru vyžaduje zadání URLs začínající na <code>http://</code> nebo <code>ftp://</code>.",
        "upload-file-error": "Vnitřní chyba",
        "wlheader-showupdated": "Stránky, které se změnily od vaší poslední návštěvy, jsou zobrazeny '''tučně'''.",
        "wlnote": "Níže {{PLURAL:$1|je poslední změna|jsou poslední <strong>$1</strong> změny|je posledních <strong>$1</strong> změn}} za {{PLURAL:$2|poslední hodinu|poslední <strong>$2</strong> hodiny|posledních <strong>$2</strong> hodin}} do $4, $3.",
        "wlshowlast": "Ukázat posledních $1 hodin $2 dnů",
-       "watchlistall2": "všechno",
        "watchlist-hide": "Skrýt",
        "watchlist-submit": "Zobrazit",
        "wlshowtime": "Zobrazené období:",
        "lockedbyandtime": "({{gender:$1|zamkl|zamkla|zamkl}} $1 $2 v $3)",
        "move-page": "Přesunout „$1“",
        "move-page-legend": "Přesunout stránku",
-       "movepagetext": "Použitím tohoto formuláře změníte název stránky a přesunete i celou její historii na nový název.\nPůvodní název se stane přesměrováním na nový název.\nPřesměrování na původní název můžete nechat aktualizovat automaticky.\nPokud nenecháte, nezapomeňte poté zkontrolovat [[Special:DoubleRedirects|dvojitá]] nebo [[Special:BrokenRedirects|přerušená]] přesměrování.\nJe vaší zodpovědností zajistit, aby odkazy stále vedly tam, kam mají.\n\nStránku '''není možno''' přejmenovat, pokud pod cílovým názvem již nějaká stránka existuje, s výjimkou situace, kdy je cílová stránka přesměrováním na tuto stránku a nemá žádnou historii editací.\nTo znamená, že stránku můžete přesunout zpět na původní název, pokud uděláte chybu, a že nemůžete přepsat existující stránku.\n\n'''Upozornění!'''\nPřejmenování oblíbené stránky může být drastická a nečekaná změna;\npředtím, než změnu provedete, se ujistěte, že chápete důsledky svého kroku.",
-       "movepagetext-noredirectfixer": "Použitím tohoto formuláře změníte název stránky a přesunete i celou její historii na nový název.\nPůvodní název se stane přesměrováním na nový název.\nNezapomeňte poté zkontrolovat [[Special:DoubleRedirects|dvojitá]] nebo [[Special:BrokenRedirects|přerušená]] přesměrování.\nJe vaší zodpovědností zajistit, aby odkazy stále vedly tam, kam mají.\n\nStránku '''není možno''' přejmenovat, pokud pod cílovým názvem již nějaká stránka existuje, s výjimkou situace, kdy je cílová stránka prázdná nebo je přesměrováním na tuto stránku a nemá žádnou historii editací.\nTo znamená, že stránku můžete přesunout zpět na původní název, pokud uděláte chybu, a že nemůžete přepsat existující stránku.\n\n'''Upozornění!'''\nPřejmenování oblíbené stránky může být drastická a nečekaná změna; předtím, než změnu provedete, se prosím ujistěte, že chápete důsledky svého kroku.",
+       "movepagetext": "Použitím tohoto formuláře změníte název stránky a přesunete i celou její historii na nový název.\nPůvodní název se stane přesměrováním na nový název.\nPřesměrování na původní název můžete nechat aktualizovat automaticky.\nPokud nenecháte, nezapomeňte poté zkontrolovat [[Special:DoubleRedirects|dvojitá]] nebo [[Special:BrokenRedirects|přerušená]] přesměrování.\nJe vaší zodpovědností zajistit, aby odkazy stále vedly tam, kam mají.\n\nStránku <strong>není možné</strong> přejmenovat, pokud pod cílovým názvem již nějaká stránka existuje, s výjimkou situace, kdy je cílová stránka přesměrováním na tuto stránku a nemá žádnou historii editací.\nTo znamená, že stránku můžete přesunout zpět na původní název, pokud uděláte chybu, a že nemůžete přepsat existující stránku.\n\n<strong>Poznámka:</strong>\nPřejmenování oblíbené stránky může být drastická a nečekaná změna;\npředtím, než změnu provedete, se ujistěte, že chápete důsledky svého kroku.",
+       "movepagetext-noredirectfixer": "Použitím tohoto formuláře změníte název stránky a přesunete i celou její historii na nový název.\nPůvodní název se stane přesměrováním na nový název.\nNezapomeňte poté zkontrolovat [[Special:DoubleRedirects|dvojitá]] nebo [[Special:BrokenRedirects|přerušená]] přesměrování.\nJe vaší zodpovědností zajistit, aby odkazy stále vedly tam, kam mají.\n\nStránku <strong>není možno</strong> přejmenovat, pokud pod cílovým názvem již nějaká stránka existuje, s výjimkou situace, kdy je cílová stránka prázdná nebo je přesměrováním na tuto stránku a nemá žádnou historii editací.\nTo znamená, že stránku můžete přesunout zpět na původní název, pokud uděláte chybu, a že nemůžete přepsat existující stránku.\n\n<strong>Poznámka:</strong>\nPřejmenování oblíbené stránky může být drastická a nečekaná změna; předtím, než změnu provedete, se prosím ujistěte, že chápete důsledky svého kroku.",
        "movepagetalktext": "Pokud zaškrtnete toto pole, přidružená diskusní stránka bude automaticky přesunuta na nový název, leda by tam již neprázdná diskusní stránka existovala.\n\nV takovém případě musíte stránky přesunout nebo sloučit ručně, přejete-li si to.",
        "moveuserpage-warning": "'''Upozornění:''' Chystáte se přesunout uživatelskou stránku. Uvědomte si prosím, že bude přesunuta pouze tato stránka, ale uživatel ''nebude'' přejmenován.",
        "movecategorypage-warning": "<strong>Upozornění:</strong> Chystáte se přesunout stránku kategorie. Uvědomte si, že bude přesunuta pouze tato stránka a že žádné stránky v původní kategorii <em>nebudou</em> do nové překategorizovány.",
        "movenosubpage": "Tato stránka nemá žádné podstránky.",
        "movereason": "Důvod:",
        "revertmove": "vrátit",
-       "delete_and_move_text": "==Je potřeba smazání==\n\nCílová stránka „[[:$1]]“ již existuje. Přejete si ji smazat pro uvolnění místa pro přesun?",
+       "delete_and_move_text": "Cílová stránka „[[:$1]]“ již existuje.\nPřejete si ji smazat pro uvolnění místa pro přesun?",
        "delete_and_move_confirm": "Ano, smazat cílovou stránku",
        "delete_and_move_reason": "Smazáno pro umožnění přesunu z „[[$1]]“",
        "selfmove": "Původní a nový název jsou stejné; nelze stránku přesunout na sebe samu.",
        "move-leave-redirect": "Ponechat přesměrování",
        "protectedpagemovewarning": "'''Varování:''' Tato stránka byla zamčena, takže ji mohou přesouvat pouze správci.\nNíže je pro přehled zobrazen nejnovější protokolovací záznam:",
        "semiprotectedpagemovewarning": "'''Poznámka:''' Tato stránka byla zamčena, takže ji mohou přesouvat pouze registrovaní uživatelé.\nNíže je pro přehled zobrazen nejnovější protokolovací záznam:",
-       "move-over-sharedrepo": "== Soubor existuje ==\n[[:$1]] existuje ve sdíleném úložišti. Přesun souboru na tento název způsobí potlačení sdíleného souboru.",
+       "move-over-sharedrepo": "[[:$1]] existuje ve sdíleném úložišti. Přesun souboru na tento název způsobí potlačení sdíleného souboru.",
        "file-exists-sharedrepo": "Vybrané jméno souboru je již používáno ve sdíleném úložišti.\nProsíme, vyberte jiné jméno.",
        "export": "Exportovat stránky",
        "exporttext": "Můžete exportovat text a historii editací některé stránky nebo sady stránek zabalené v XML. Výsledný soubor lze naimportovat do jiné wiki, která běží na software MediaWiki, pomocí [[Special:Import|importovací stránky]].\n\nDo níže uvedeného editačního pole zadejte názvy stránek, které chcete exportovat; každý řádek jeden název. Zvolte také, zda se mají exportovat i starší verze stránky včetně informací v historii editací, nebo jen aktuální verze s informací o poslední editaci.\n\nV druhém případě můžete také používat přímý odkaz, např. pomocí [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] se vyexportuje „[[{{MediaWiki:Mainpage}}]]“.",
index 3e1bdb3..44b8704 100644 (file)
        "upload-source": "источьно дѣло",
        "sourcefilename": "источьна дѣла имꙗ :",
        "watchthisupload": "си дѣла блюдєниѥ",
-       "upload-success-subj": "дѣло положєно ѥстъ",
        "upload-dialog-button-cancel": "отъмѣтаниѥ",
        "license": "прощєниѥ :",
        "license-header": "прощєниѥ",
        "watch": "блюдєниѥ",
        "watchthispage": "си страницѧ блюдєниѥ",
        "unwatch": "остави блюдєниѥ",
-       "watchlistall2": "вьсꙗ",
        "watchlist-options": "блюдєниѩ строи",
        "watching": "блюдєниѥ ...",
        "unwatching": "оставьлєниѥ блюдєниꙗ ...",
index ac70c5a..4f3b094 100644 (file)
        "qbmyoptions": "Сирĕн ĕнĕрлевсем",
        "faq": "ЫйХу",
        "faqpage": "Project:ЫйХу",
+       "namespaces": "Ят хушшисем",
        "variants": "Вариантсем",
        "errorpagetitle": "Йăнăш",
        "returnto": "$1 таврăн.",
        "sourcefilename": "Файлăн чăн ячĕ",
        "watchthisupload": "Ку файла сăнав списокне кĕртмелле",
        "filewasdeleted": "Ку ятла файл малтан пулнă, анчах та ăна кăларса пăрахнă. Тархасшăн, $1 кĕртес умĕн тĕрĕслĕр.",
-       "upload-success-subj": "Файла ăнăçлă тултартăмăр",
        "upload-proto-error": "Йăнăш протокол",
        "upload-file-error": "Шалти йăнăш",
        "upload-misc-error": "Файла кĕртнĕ чухне паллă мар йăнăш пулчĕ",
        "special-categories-sort-count": "шучĕ тăрăх йĕркеле",
        "special-categories-sort-abc": "алфавит тăрăх йĕркеле",
        "deletedcontributions": "Тулашран тунă ӳсĕм",
+       "linksearch-ns": "Ят хушши:",
        "linksearch-ok": "Шырамалли",
        "listusers-submit": "Кăтарт",
        "listusers-noresult": "Хутшăнакансем тупăнмарĕç.",
        "unwatch": "ан сăна",
        "unwatchthispage": "Сăнама пăрах",
        "notanarticle": "Ку статья мар",
-       "watchlistall2": "пурте",
        "watchlist-submit": "Кăтарт",
        "watching": "Сăнамаллисем шутне хушасси…",
        "unwatching": "Сăнав ят-йышĕнчен кăларса пăрахасси…",
        "rollbackfailed": "Каялла куçарнă çухна йăнăш тухнă",
        "protectlogpage": "Хӳтĕленин логĕ",
        "protectlogtext": "Аяларах эсир статьясене хӳтĕленин тата хӳтĕлев паллине пăрахаçланин журналне куратăр.",
-       "protectedarticle": "«[[$1]]» страницăна хӳтĕлерĕмĕр",
+       "protectedarticle": "хӳтĕлерĕ \"[[$1]]\"",
        "unprotectedarticle": "«[[$1]]» страницăн хӳтĕлевне пăрахăçланă",
        "prot_1movedto2": "$1 $2 çине куçарнă",
        "protectcomment": "Сăлтавĕ",
        "undeletedfiles": "{{PLURAL:$1|1 файл|$1 файлсене}} тавăрнă",
        "undelete-search-box": "Кăларса пăрахнă страницăсен хушшинчи шырав",
        "undelete-search-submit": "Шыра",
+       "namespace": "Ят хушши:",
        "blanknamespace": "(Тĕп)",
        "contributions": "{{GENDER:$1|Усă куракан}} ӳсĕмĕсем",
        "contributions-title": "Усă куракан $1 хушни",
index f07ee92..de2d1f7 100644 (file)
        "right-blockemail": "Blokere en brugers mulighed for at sende mail",
        "right-hideuser": "Blokere et brugernavn og skjule navnet",
        "right-ipblock-exempt": "Redigere fra blokerede IP-adresser",
-       "right-proxyunbannable": "Redigere gennem automatisk blokeret proxy",
        "right-unblockself": "Fjerne blokering af dig selv",
        "right-protect": "Ændre beskyttelsesniveauer og redigere cascade-beskyttede sider",
        "right-editprotected": "Redigere sider beskyttet som \"{{int:protect-level-sysop}}\"",
        "filewasdeleted": "En fil med dette navn er tidligere uploadet og i mellemtiden slettet igen. Kontroller først indførslen i $1, før du gemmer filen.",
        "filename-bad-prefix": "Navnet på filen du er ved at lægge op begynder med '''\"$1\"'''. Dette er et ikkebeskrivende navn, der typisk er skabt automatisk af et digitalkamera. Vær venlig at vælge et mere beskrivende navn på dit billede.",
        "filename-prefix-blacklist": " #<!-- efterlad denne linje præcis som den er --> <pre>\n# Syntax is as follows:\n#   * Alt fra at \"#\" tegn til slutningen af linjen er en kommentar\n#   * Hver ikke tom linje er et præfiks for typiske filnavne automatisk tildelt af digitalkameraer\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # nogen mobil telefoner\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # div.\n #</pre> <!-- efterlad denne linje præcis som den er -->",
-       "upload-success-subj": "Oplægningen er gennemført",
-       "upload-success-msg": "Din upload fra [$2] lykkedes. Den er tilgængelig her: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Upload problem",
-       "upload-failure-msg": "Der var et problem med din upload fra [$2]:\n\n$1",
-       "upload-warning-subj": "Uploadadvarsel",
-       "upload-warning-msg": "Der var et problem med din upload fra [$2]. Du kan vende tilbage til [[Special:Upload/stash/$1|upload form]] for at løse dette problem.",
        "upload-proto-error": "Forkert protokol",
        "upload-proto-error-text": "Adressen skal begynde med <code>http://</code> eller <code>ftp://</code>.",
        "upload-file-error": "Intern fejl",
        "mimetype": "MIME-type:",
        "download": "DownloadHerunterladen",
        "unwatchedpages": "Ikke overvågede sider",
-       "listredirects": "Henvisningsliste",
+       "listredirects": "Liste over omdirigeringer",
        "listduplicatedfiles": "Liste over filer med dubletter",
        "listduplicatedfiles-summary": "Dette er en liste over filer, hvor den seneste version af filen er en kopi af den seneste version af en anden fil. Kun lokale filer er taget i betragtning.",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] har [[$3|{{PLURAL:$2|en dublet|$2 dubletter}}]].",
        "wlheader-showupdated": "Sider, der er ændret siden dit sidste besøg, er vist med '''fed skrift'''.",
        "wlnote": "Nedenfor ses {{PLURAL:$1|den seneste ændring|de seneste <strong>$1</strong> ændringer}} i {{PLURAL:$2|den sidste time|de sidste <strong>$2</strong> timer}} op til den $3 kl. $4.",
        "wlshowlast": "Vis de seneste $1 timer $2 dage",
-       "watchlistall2": "alle",
        "watchlist-hide": "Skjul",
        "wlshowtime": "Vis seneste:",
        "wlshowhideminor": "mindre ændringer",
        "special-characters-title-minus": "minustegn",
        "mw-widgets-dateinput-placeholder-day": "ÅÅÅÅ-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "ÅÅÅÅ-MM",
-       "api-error-blacklisted": "Vælg venligst en anden, beskrivende titel."
+       "api-error-blacklisted": "Vælg venligst en anden, beskrivende titel.",
+       "randomrootpage": "Tilfældig stamside"
 }
index 0ab314e..36e8ab8 100644 (file)
        "filename-thumb-name": "Dies scheint ein Titel für Vorschaubilder zu sein. Lade bitte keine Vorschaubilder zurück auf das gleiche Wiki hoch. Anderenfalls ändere bitte den Dateinamen ab, so dass er aussagekräftiger ist und kein Vorschaubild-Präfix hat.",
        "filename-bad-prefix": "Der Dateiname beginnt mit '''„$1“'''. Dies ist im allgemeinen der von einer Digitalkamera vorgegebene Dateiname und daher nicht sehr aussagekräftig.\nBitte gib der Datei einen Namen, der den Inhalt besser beschreibt.",
        "filename-prefix-blacklist": " #<!-- Diese Zeile darf nicht verändert werden! --> <pre>\n#  Syntax:\n#   * Alles von einem #-Zeichen bis zum Ende der Zeile ist ein Kommentar.\n#   * Jede nicht-leere Zeile ist der Anfang eines typischen Dateinamens, der automatisch von einer Digitalkamera erzeugt wird.\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # einige Mobiltelefone\nIMG # allgemein\nJD # Jenoptik\nMGP # Pentax\nPICT # verschiedene\n #</pre> <!-- Diese Zeile darf nicht verändert werden!-->",
-       "upload-success-subj": "Erfolgreich hochgeladen",
-       "upload-success-msg": "Das Hochladen von [$2] war erfolgreich. Sie ist hier verfügbar: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Hochladefehler",
-       "upload-failure-msg": "Es gab ein Problem mit deiner hochgeladenen Datei von [$2]:\n\n$1",
-       "upload-warning-subj": "Hochladewarnung",
-       "upload-warning-msg": "Es gab ein Problem beim Hochladen von [$2]. Bitte zum [[Special:Upload/stash/$1|Hochladeformular]] zurückkehren, um dieses Problem zu beheben.",
        "upload-proto-error": "Falsches Protokoll",
        "upload-proto-error-text": "Die URL muss mit <code>http://</code> oder <code>ftp://</code> beginnen.",
        "upload-file-error": "Interner Fehler",
        "upload-too-many-redirects": "Die URL beinhaltete zu viele Weiterleitungen",
        "upload-http-error": "Ein HTTP-Fehler ist aufgetreten: $1",
        "upload-copy-upload-invalid-domain": "Als Kopie hochladbare Dateien sind über diese Domain nicht verfügbar.",
+       "upload-foreign-cant-upload": "Dieses Wiki ist nicht konfiguriert, um Dateien auf das gewünschte fremde Dateirepositorium hochzuladen.",
        "upload-dialog-title": "Datei hochladen",
        "upload-dialog-button-cancel": "Abbrechen",
        "upload-dialog-button-done": "Schließen",
        "wlheader-showupdated": "Seiten mit noch nicht gesehenen Änderungen werden '''fett''' dargestellt.",
        "wlnote": "Es {{PLURAL:$1|folgt die letzte Änderung|folgen die letzten <strong>$1</strong> Änderungen}} der letzten {{PLURAL:$2|Stunde|<strong>$2</strong> Stunden}}. Stand: $3, $4 Uhr.",
        "wlshowlast": "Zeige die Änderungen der letzten $1 Stunden, $2 Tage.",
-       "watchlistall2": "alle",
        "watchlist-hide": "Ausblenden",
        "watchlist-submit": "Anzeigen",
        "wlshowtime": "Anzuzeigende Zeitperiode:",
        "lockedbyandtime": "(von $1 am $2 um $3 Uhr)",
        "move-page": "Verschieben von „$1“",
        "move-page-legend": "Seite verschieben",
-       "movepagetext": "Mit untenstehendem Formular kannst du eine Seite umbenennen, indem du sie mitsamt allen Versionen auf einen neuen Titel verschiebst.\nDer alte Titel wird danach zum neuen weiterleiten.\nDu kannst Weiterleitungen, die auf den Originaltitel verlinken, automatisch korrigieren lassen.\nStelle sicher, dass du im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfst.\nDu bist dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.\n\nDie Seite wird '''nicht''' verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, letztere ist eine Weiterleitung ohne Versionsgeschichte.\nDies bedeutet, dass du die Umbenennung rückgängig machen kannst, sofern du einen Fehler gemacht hast. Du kannst hingegen keine existierende Seite überschreiben.\n\n'''Warnung!'''\nDie Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.\nDu solltest daher die Konsequenzen verstanden haben, bevor du jetzt fortfährst.",
-       "movepagetext-noredirectfixer": "Mit untenstehendem Formular kannst du eine Seite umbenennen, indem du sie mitsamt allen Versionen auf einen neuen Titel verschiebst.\nDer alte Titel wird danach zum neuen weiterleiten.\nStelle sicher, dass du im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfst.\nDu bist dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.\n\nDie Seite wird '''nicht''' verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, diese ist eine Weiterleitung ohne Versionsgeschichte.\nDies bedeutet, dass du die Umbenennung rückgängig machen kannst, sofern du einen Fehler gemacht hast. Du kannst hingegen keine existierende Seite überschreiben.\n\n'''Warnung!'''\nDie Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.\nDu solltest daher die Konsequenzen verstanden haben, bevor du jetzt fortfährst.",
+       "movepagetext": "Mit untenstehendem Formular kannst du eine Seite umbenennen, indem du sie mitsamt allen Versionen auf einen neuen Titel verschiebst.\nDer alte Titel wird danach zum neuen weiterleiten.\nDu kannst Weiterleitungen, die auf den Originaltitel verlinken, automatisch korrigieren lassen.\nStelle sicher, dass du im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfst.\nDu bist dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.\n\nDie Seite wird <strong>nicht</strong> verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, letztere ist eine Weiterleitung ohne Versionsgeschichte.\nDies bedeutet, dass du die Umbenennung rückgängig machen kannst, sofern du einen Fehler gemacht hast. Du kannst hingegen keine existierende Seite überschreiben.\n\n<strong>Hinweis:</strong>\nDie Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.\nDu solltest daher die Konsequenzen verstanden haben, bevor du jetzt fortfährst.",
+       "movepagetext-noredirectfixer": "Mit untenstehendem Formular kannst du eine Seite umbenennen, indem du sie mitsamt allen Versionen auf einen neuen Titel verschiebst.\nDer alte Titel wird danach zum neuen weiterleiten.\nStelle sicher, dass du im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfst.\nDu bist dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.\n\nDie Seite wird <strong>nicht</strong> verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, diese ist eine Weiterleitung ohne Versionsgeschichte.\nDies bedeutet, dass du die Umbenennung rückgängig machen kannst, sofern du einen Fehler gemacht hast. Du kannst hingegen keine existierende Seite überschreiben.\n\n<strong>Hinweis:</strong>\nDie Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.\nDu solltest daher die Konsequenzen verstanden haben, bevor du jetzt fortfährst.",
        "movepagetalktext": "Falls du dieses Kästchen aktivierst, wird die dazugehörige Diskussionsseite automatisch auf den neuen Titel verschoben, sofern nicht bereits eine nicht-leere Diskussionsseite dort vorhanden ist.\n\nIn diesem Fall musst du die Seite manuell verschieben oder zusammenführen, falls erforderlich.",
        "moveuserpage-warning": "'''Warnung:''' Du bist dabei, eine Benutzerseite zu verschieben. Bitte bedenke, dass dadurch nur die Benutzerseite verschoben, '''nicht''' aber der Benutzer umbenannt wird.",
        "movecategorypage-warning": "<strong>Warnung:</strong> Du bist gerade dabei, eine Kategorieseite zu verschieben. Bitte sei dir bewusst, dass nur die Seite verschoben wird. Alle Seiten in der alten Kategorie werden <em>nicht</em> neu kategorisiert.",
        "movenosubpage": "Diese Seite hat keine Unterseiten.",
        "movereason": "Grund:",
        "revertmove": "zurück verschieben",
-       "delete_and_move_text": "== Löschung erforderlich ==\n\nDie Seite „[[:$1]]“ existiert bereits. Möchtest du diese löschen, um die Seite verschieben zu können?",
+       "delete_and_move_text": "Die Seite „[[:$1]]“ existiert bereits.\nMöchtest du diese löschen, um die Seite verschieben zu können?",
        "delete_and_move_confirm": "Ja, Seite löschen",
        "delete_and_move_reason": "gelöscht, um Platz für die Verschiebung von „[[$1]]“ zu machen",
        "selfmove": "Ursprungs- und Zielname sind gleich.\nEine Seite kann nicht auf sich selbst verschoben werden.",
        "move-leave-redirect": "Weiterleitung erstellen",
        "protectedpagemovewarning": "'''Warnung:''' Diese Seite wurde so geschützt, dass sie nur von Benutzern mit Administratorenrechten verschoben werden kann.\nZur Information folgt der aktuelle Logbucheintrag:",
        "semiprotectedpagemovewarning": "'''Hinweis:''' Diese Seite wurde so geschützt, dass sie nur von angemeldeten Benutzern verschoben werden kann.\nZur Information folgt der aktuelle Logbucheintrag:",
-       "move-over-sharedrepo": "==Datei existiert==\n[[:$1]] existiert in einem gemeinsam genutzten Repositorium. Das Verschieben einer Datei zu diesem Titel überschreibt die gemeinsam genutzte Datei.",
+       "move-over-sharedrepo": "[[:$1]] existiert in einem gemeinsam genutzten Repositorium. Das Verschieben einer Datei zu diesem Titel überschreibt die gemeinsam genutzte Datei.",
        "file-exists-sharedrepo": "Der gewählte Dateiname wird bereits in einem gemeinsam genutzten Repositorium verwendet.\nBitte wähle einen anderen Namen.",
        "export": "Seiten exportieren",
        "exporttext": "Mit dieser Spezialseite kannst du den Text inklusive der Versionsgeschichte einzelner Seiten in eine XML-Datei exportieren.\nDie Datei kann in ein anderes MediaWiki-Wiki über die [[Special:Import|Importfunktion]] eingespielt werden.\n\nTrage den oder die entsprechenden Seitentitel in das folgende Textfeld ein (pro Zeile jeweils nur eine Seite).\n\nAlternativ ist der Export auch mit der Syntax [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] möglich, beispielsweise für die [[{{MediaWiki:Mainpage}}]].",
        "lastmodifiedatby": "Diese Seite wurde zuletzt am $1 um $2 Uhr von $3 geändert.",
        "othercontribs": "Basierend auf der Arbeit von $1.",
        "others": "anderen",
-       "siteusers": "{{SITENAME}}-{{PLURAL:$2|Benutzer}} $1",
+       "siteusers": "{{SITENAME}}-{{PLURAL:$2|{{GENDER:$1|Benutzer|Benutzerin}}|Benutzer}} $1",
        "anonusers": "{{PLURAL:$2|unangemeldetem|unangemeldeten}} {{SITENAME}}-{{PLURAL:$2|Benutzer|Benutzern}} $1",
        "creditspage": "Seitenzuschreibung",
        "nocredits": "Für diese Seite sind keine Zuschreibungen vorhanden.",
        "expand_templates_preview_fail_html": "<em>Da {{SITENAME}} rohes HTML aktiviert hat und es einen Verlust deiner Sitzungsdaten gab, ist die Vorschau als Vorsichtsmaßnahme gegen JavaScript-Angriffe versteckt.</em>\n\n<strong>Falls dies ein zulässiger Vorschauversuch ist, versuche es bitte erneut.</strong>\nFalls dieses Problem weiterhin bestehen bleibt, versuche dich [[Special:UserLogout|abzumelden]] und erneut anzumelden.",
        "expand_templates_preview_fail_html_anon": "<em>Da {{SITENAME}} rohes HTML aktiviert hat und du nicht angemeldet bist, ist die Vorschau als Vorsichtsmaßnahme gegen JavaScript-Angriffe versteckt.</em>\n\n<strong>Falls dies ein zulässiger Vorschauversuch ist, [[Special:UserLogin|melde dich bitte an]] und versuche es erneut.</strong>",
        "expand_templates_input_missing": "Du musst mindestens einen Eingabetext angeben.",
-       "pagelanguage": "Seitensprachenauswahl",
+       "pagelanguage": "Seitensprache ändern",
        "pagelang-name": "Seite",
        "pagelang-language": "Sprache",
        "pagelang-use-default": "Standardsprache verwenden",
        "action-pagelang": "die Seitensprache zu ändern",
        "log-name-pagelang": "Sprachenänderungs-Logbuch",
        "log-description-pagelang": "Dies ist ein Logbuch mit Änderungen an Seitensprachen.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|änderte}} die Seitensprache für $3 von $4 nach $5.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|änderte}} die Sprache für $3 von $4 nach $5.",
        "default-skin-not-found": "Hoppla! Die mit <code>$wgDefaultSkin</code> als <code>$1</code>&nbsp;für dein Wiki definierte Standardbenutzeroberfläche ist nicht verfügbar.\n\n{{PLURAL:$4|Die folgende Benutzeroberfläche scheint|Die folgenden Benutzeroberflächen scheinen}} vorhanden zu sein:\n\n$2\n\nSiehe hierzu das [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Benutzerhandbuch zur Konfiguration von Benutzeroberflächen].\n\n; Sofern du MediaWiki gerade installiert hast\n: Du hast MediaWiki vermutlich mit Hilfe von Git oder den Quellcode direkt anhand einer anderen Methode installiert. Das aktuelle Problem war deshalb zu erwarten. Installiere zumindest eine im [https://www.mediawiki.org/wiki/Category:All_skins Verzeichnis der Benutzeroberflächen] enthaltene Benutzeroberfläche indem du:\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git zum Herunterladen von Benutzeroberflächen verwendest].\n:* die Dateiveröffentlichungen einzelner Benutzeroberflächen aus [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] herunterlädst und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopierst,\n:* die [https://www.mediawiki.org/wiki/Download/de Dateiveröffentlichung von MediaWiki] herunterlädst, die verschiedene Benutzeroberflächen sowie Erweiterungen enthält. Du kannst das dort enthaltene Verzeichnis <code>skins/</code> Verzeichnis nutzen und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopieren.\n\n; Sofern du MediaWiki gerade aktualisiert hast\n: Bei MediaWiki 1.24 und neueren Versionen werden die installierten Benutzeroberflächen nicht mehr automatisch aktiviert (siehe das [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Benutzerhandbuch]). Du kannst die {{PLURAL:$5|folgende Zeile|folgenden Zeilen}} in die Datei <code>LocalSettings.php</code> einfügen, um {{PLURAL:$5|die installierte Benutzeroberfläche|alle installierten Benutzeroberflächen}} zu aktivieren:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Falls du gerade die Datei <code>LocalSettings.php</code> geändert hast\n: Überprüfe die Namen der Benutzeroberflächen auf Tippfehler.",
        "default-skin-not-found-no-skins": "Hoppla! Die mit <code>$wgDefaultSkin</code> als <code>$1</code>&nbsp;für dein Wiki definierte Standardbenutzeroberfläche ist nicht verfügbar.\n\nDu hast keine Benutzeroberfläche installiert.\n\n; Sofern du MediaWiki gerade installiert oder aktualisiert hast\n: Du hast MediaWiki vermutlich mit Hilfe von Git oder den Quellcode direkt anhand einer anderen Methode installiert. Das aktuelle Problem war deshalb zu erwarten, da MediaWiki 1.24 und neuere Versionen keine Benutzeroberflächen im Hauptrepositorium enthalten. Installiere zumindest eine im [https://www.mediawiki.org/wiki/Category:All_skins Verzeichnis der Benutzeroberflächen] enthaltene Benutzeroberfläche indem du:\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git zum Herunterladen von Benutzeroberflächen verwendest].\n:* die Dateiveröffentlichungen einzelner Benutzeroberflächen aus [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] herunterlädst und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopierst,\n:* die [https://www.mediawiki.org/wiki/Download/de Dateiveröffentlichung von MediaWiki] herunterlädst, die verschiedene Benutzeroberflächen sowie Erweiterungen enthält. Du kannst das dort enthaltene Verzeichnis <code>skins/</code> Verzeichnis nutzen und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopieren.\n: Siehe hierzu das [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Benutzerhandbuch zur Konfiguration von Benutzeroberflächen].",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (aktiviert)",
index f2370d6..b46381d 100644 (file)
        "resetpass-wrong-oldpass": "parolayo parola maqbul niyo.\nşıma ya parolaye xo vurnayo ya zi parolayo muwaqqat waşto.",
        "resetpass-recycled": "Parolaya şımaya newiye wa paroloya şımaya verêne ra ferqıne bo.",
        "resetpass-temp-password": "parolayo muweqet:",
-       "resetpass-abort-generic": "Parola vurnayış jew derganey ra tepya ibtal biyo",
+       "resetpass-abort-generic": "Vurnayışê parola terefê yew niçıki ra texeliya.",
        "passwordreset": "Parola reset ke",
        "passwordreset-text-one": "Na form de parola reset kerdış temamiye",
        "passwordreset-text-many": "{{PLURAL:$1|Qande parola yana e-posta reset kerdışi cayanra taynın pırkeri.}}",
        "right-blockemail": "Yew karberê erşawıtışê/rıştena e-maili ra bloke bıke",
        "right-hideuser": "Yew nameyê karberi şari ra miyanki bloke bıke",
        "right-ipblock-exempt": "Blokanê IPi, oto-blokan u blokanê menzıli ra ravêre",
-       "right-proxyunbannable": "Blokanê otomatikiê proksiyan ra ravêre",
        "right-unblockself": "Blokeyınan ake",
        "right-protect": "Sewiyanê pawıtışi (mıhafezey) bıvurne u pelanê kılitbiyaiyan sero bıgureye.",
        "right-editprotected": "Pera pawıtiyan sero bıxebteye (bê pawıtena kaskadi (game be game))",
        "filewasdeleted": "no name de yew dosya yew wexto nızdi de bar biya u dıma zi serkaran hewn a kerdo. wexya ke şıma dosya bar keni bıewnê no pel $1.",
        "filename-bad-prefix": "name yo ke şıma bar keni zey nameyê kamerayê dijital î, pê ney '''\"$1\"''' destpêkeno .\nkerem kere yewna nameyo eşkera bıvicinê.",
        "filename-prefix-blacklist": " #<!-- leave this line exactly as it is --> <pre>\n# Syntax is as follows:\n#   * Everything from a \"#\" character to the end of the line is a comment\n#   * Every non-blank line is a prefix for typical file names assigned automatically by digital cameras\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # some mobile phones\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- leave this line exactly as it is -->",
-       "upload-success-subj": "bar biyo",
-       "upload-success-msg": "[$2] barkerdışê şıma qebul bı. Barkerdışê şımayo itado: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problem bar ke",
-       "upload-failure-msg": "[$1] delal: $2 ra barkerdıştê şıman ra jew xelat vıcyayo.",
-       "upload-warning-subj": "İqazê barkerdışi",
-       "upload-warning-msg": "Barkerdış dê [$2] de xırabey vıcyê. Xırabi timar kerdışi re  peyser şırê  [[Special:Upload/stash/$1|heruna barkerdışi]].",
        "upload-proto-error": "Porotokol raşt ni yo.",
        "upload-proto-error-text": "Bar kerdişê durî gani  URLî estbiye ke pe <code>http://</code> ya zi <code>ftp://</code> başli beno.",
        "upload-file-error": "Xeta daxılkiye",
        "wlheader-showupdated": "ziyaretê şıma ye peyini de vuryayişê peli pê '''nuşteyo qalıni''' mocyayo.",
        "wlnote": "$3 seate u bahde $4 deqa dıma {{PLURAL:$2|ju seate dı|'''$2''' ju seate dı}} {{PLURAL:$1|vurnayışe peyeni|vurnayışe '''$1''' peyeni}} cêrdeyê",
        "wlshowlast": "Peyni de vurnayışan ra  $1 seata u $2 roca  bımocnê",
-       "watchlistall2": "pêro",
        "watchlist-hide": "Bınımne",
        "wlshowtime": "Peyênan bımocne:",
        "wlshowhideminor": "vurnayışê werdiyi",
        "allmessages": "Mesacê sistemi",
        "allmessagesname": "Name",
        "allmessagesdefault": "Metnê mesacê hesabiyayey",
-       "allmessagescurrent": "Nuşteyê mesacê rocaney",
+       "allmessagescurrent": "Nuşteyê mesacê rocaneyi",
        "allmessagestext": "na liste, listeya mesajê cayê nameyê wikimedya yo.\neke şıma qayili paşt bıdi mahalli kerdışê wikimedyayi, kerem kerê pelê [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation mahalli kerdışê wikimedyayi] u [//translatewiki.net translatewiki.net] ziyaret bıkerê.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' qefelnaye yo u ey ra '''{{ns:special}}:Allmessages''' karkerdışi re akerde niyo.",
        "allmessages-filter-legend": "Avrêc",
        "feedback-submit": "Bırışe",
        "feedback-thanks": "Teşekkur kemê! Vatışê şıma pela da \"[$2 $1]\" esta.",
        "searchsuggest-search": "Cı geyre",
-       "searchsuggest-containing": "Estên...",
+       "searchsuggest-containing": "estebiyaye...",
        "api-error-badaccess-groups": "Ena wiki de dosya barkerdışi rê mısade nêdeyêno.",
        "api-error-badtoken": "Xetaya zerreki: Antışo xırabın.",
        "api-error-copyuploaddisabled": "URL barkerdış ena waster dı qefılyayo.",
index a54a88b..639af0f 100644 (file)
        "filename-thumb-name": "This looks like a thumbnail title. Please do not upload thumbnails back to the same wiki. Otherwise, please fix the filename so it is more meaningful, and does not have the thumbnail prefix.",
        "filename-bad-prefix": "The name of the file you are uploading begins with <strong>\"$1\"</strong>, which is a non-descriptive name typically assigned automatically by digital cameras.\nPlease choose a more descriptive name for your file.",
        "filename-prefix-blacklist": " #<!-- leave this line exactly as it is --> <pre>\n# Syntax is as follows:\n#   * Everything from a \"#\" character to the end of the line is a comment\n#   * Every non-blank line is a prefix for typical filenames assigned automatically by digital cameras\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # some mobile phones\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- leave this line exactly as it is -->",
-       "upload-success-subj": "Successful upload",
-       "upload-success-msg": "Your upload from [$2] was successful. It is available here: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Upload problem",
-       "upload-failure-msg": "There was a problem with your upload from [$2]:\n\n$1",
-       "upload-warning-subj": "Upload warning",
-       "upload-warning-msg": "There was a problem with your upload from [$2]. You may return to the [[Special:Upload/stash/$1|upload form]] to correct this problem.",
        "upload-proto-error": "Incorrect protocol",
        "upload-proto-error-text": "Remote upload requires URLs beginning with <code>http://</code> or <code>ftp://</code>.",
        "upload-file-error": "Internal error",
        "upload-too-many-redirects": "The URL contained too many redirects",
        "upload-http-error": "An HTTP error occurred: $1",
        "upload-copy-upload-invalid-domain": "Copy uploads are not available from this domain.",
+       "upload-foreign-cant-upload": "This wiki is not configured to upload files to the requested foreign file repository.",
        "upload-dialog-title": "Upload file",
        "upload-dialog-button-cancel": "Cancel",
        "upload-dialog-button-done": "Done",
        "wlheader-showupdated": "Pages that have been changed since you last visited them are shown in <strong>bold</strong>.",
        "wlnote": "Below {{PLURAL:$1|is the last change|are the last <strong>$1</strong> changes}} in the last {{PLURAL:$2|hour|<strong>$2</strong> hours}}, as of $3, $4.",
        "wlshowlast": "Show last $1 hours $2 days",
-       "watchlistall2": "all",
        "watchlist-hide": "Hide",
        "watchlist-submit": "Show",
        "wlshowtime": "Period of time to display:",
        "move-page": "Move $1",
        "movepage-summary": "",
        "move-page-legend": "Move page",
-       "movepagetext": "Using the form below will rename a page, moving all of its history to the new name.\nThe old title will become a redirect page to the new title.\nYou can update redirects that point to the original title automatically.\nIf you choose not to, be sure to check for [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].\nYou are responsible for making sure that links continue to point where they are supposed to go.\n\nNote that the page will <strong>not</strong> be moved if there is already a page at the new title, unless the latter is a redirect and has no past edit history.\nThis means that you can rename a page back to where it was renamed from if you make a mistake, and you cannot overwrite an existing page.\n\n<strong>Warning!</strong>\nThis can be a drastic and unexpected change for a popular page;\nplease be sure you understand the consequences of this before proceeding.",
-       "movepagetext-noredirectfixer": "Using the form below will rename a page, moving all of its history to the new name.\nThe old title will become a redirect page to the new title.\nBe sure to check for [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].\nYou are responsible for making sure that links continue to point where they are supposed to go.\n\nNote that the page will <strong>not</strong> be moved if there is already a page at the new title, unless it is a redirect and has no past edit history.\nThis means that you can rename a page back to where it was renamed from if you make a mistake, and you cannot overwrite an existing page.\n\n<strong>Warning!</strong>\nThis can be a drastic and unexpected change for a popular page;\nplease be sure you understand the consequences of this before proceeding.",
+       "movepagetext": "Using the form below will rename a page, moving all of its history to the new name.\nThe old title will become a redirect page to the new title.\nYou can update redirects that point to the original title automatically.\nIf you choose not to, be sure to check for [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].\nYou are responsible for making sure that links continue to point where they are supposed to go.\n\nNote that the page will <strong>not</strong> be moved if there is already a page at the new title, unless the latter is a redirect and has no past edit history.\nThis means that you can rename a page back to where it was renamed from if you make a mistake, and you cannot overwrite an existing page.\n\n<strong>Note:</strong>\nThis can be a drastic and unexpected change for a popular page;\nplease be sure you understand the consequences of this before proceeding.",
+       "movepagetext-noredirectfixer": "Using the form below will rename a page, moving all of its history to the new name.\nThe old title will become a redirect page to the new title.\nBe sure to check for [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].\nYou are responsible for making sure that links continue to point where they are supposed to go.\n\nNote that the page will <strong>not</strong> be moved if there is already a page at the new title, unless it is a redirect and has no past edit history.\nThis means that you can rename a page back to where it was renamed from if you make a mistake, and you cannot overwrite an existing page.\n\n<strong>Note:</strong>\nThis can be a drastic and unexpected change for a popular page;\nplease be sure you understand the consequences of this before proceeding.",
        "movepagetalktext": "If you check this box, the associated talk page will be automatically moved to new title, unless a non-empty talk page already exists there.\n\nIn this case, you will have to move or merge the page manually if desired.",
        "moveuserpage-warning": "<strong>Warning:</strong> You are about to move a user page. Please note that only the page will be moved and the user will <em>not</em> be renamed.",
        "movecategorypage-warning": "<strong>Warning:</strong> You are about to move a category page. Please note that only the page will be moved and any pages in the old category will <em>not</em> be recategorized into the new one.",
        "move-redirect-text": "",
        "category-move-redirect-override": "-",
        "revertmove": "revert",
-       "delete_and_move_text": "== Deletion required ==\nThe destination page \"[[:$1]]\" already exists.\nDo you want to delete it to make way for the move?",
+       "delete_and_move_text": "The destination page \"[[:$1]]\" already exists.\nDo you want to delete it to make way for the move?",
        "delete_and_move_confirm": "Yes, delete the page",
        "delete_and_move_reason": "Deleted to make way for move from \"[[$1]]\"",
        "selfmove": "Source and destination titles are the same;\ncannot move a page over itself.",
        "move-leave-redirect": "Leave a redirect behind",
        "protectedpagemovewarning": "<strong>Warning:</strong> This page has been protected so that only users with administrator privileges can move it.\nThe latest log entry is provided below for reference:",
        "semiprotectedpagemovewarning": "<strong>Note:</strong> This page has been protected so that only registered users can move it.\nThe latest log entry is provided below for reference:",
-       "move-over-sharedrepo": "== File exists ==\n[[:$1]] exists on a shared repository. Moving a file to this title will override the shared file.",
+       "move-over-sharedrepo": "[[:$1]] exists on a shared repository. Moving a file to this title will override the shared file.",
        "file-exists-sharedrepo": "The filename chosen is already in use on a shared repository.\nPlease choose another name.",
        "export": "Export pages",
        "export-summary": "",
        "lastmodifiedatby": "This page was last modified $2, $1 by $3.",
        "othercontribs": "Based on work by $1.",
        "others": "others",
-       "siteusers": "{{SITENAME}} {{PLURAL:$2|user|users}} $1",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|{{GENDER:$1|user}}|users}} $1",
        "anonusers": "{{SITENAME}} anonymous {{PLURAL:$2|user|users}} $1",
        "creditspage": "Page credits",
        "nocredits": "There is no credits info available for this page.",
        "expand_templates_preview_fail_html": "<em>Because {{SITENAME}} has raw HTML enabled and there was a loss of session data, the preview is hidden as a precaution against JavaScript attacks.</em>\n\n<strong>If this is a legitimate preview attempt, please try again.</strong>\nIf it still does not work, try [[Special:UserLogout|logging out]] and logging back in.",
        "expand_templates_preview_fail_html_anon": "<em>Because {{SITENAME}} has raw HTML enabled and you are not logged in, the preview is hidden as a precaution against JavaScript attacks.</em>\n\n<strong>If this is a legitimate preview attempt, please [[Special:UserLogin|log in]] and try again.</strong>",
        "expand_templates_input_missing": "You need to provide at least some input text.",
-       "pagelanguage": "Page language selector",
+       "pagelanguage": "Change page language",
        "pagelang-name": "Page",
        "pagelang-language": "Language",
        "pagelang-use-default": "Use default language",
        "pagelang-submit": "Submit",
        "right-pagelang": "Change page language",
        "action-pagelang": "change the page language",
-       "log-name-pagelang": "Change language log",
+       "log-name-pagelang": "Language change log",
        "log-description-pagelang": "This is a log of changes in page languages.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|changed}} page language for $3 from $4 to $5.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|changed}} the language of $3 from $4 to $5",
        "default-skin-not-found": "Whoops! The default skin for your wiki, defined in <code dir=\"ltr\">$wgDefaultSkin</code> as <code>$1</code>, is not available.\n\nYour installation seems to include the following {{PLURAL:$4|skin|skins}}. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable {{PLURAL:$4|it|them and choose the default}}.\n\n$2\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: Doing this should not interfere with your git repository if you're a MediaWiki developer.\n\n; If you have just upgraded MediaWiki:\n: MediaWiki 1.24 and newer no longer automatically enables installed skins (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following {{PLURAL:$5|line|lines}} into <code>LocalSettings.php</code> to enable {{PLURAL:$5|the|all}} installed {{PLURAL:$5|skin|skins}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; If you have just modified <code>LocalSettings.php</code>:\n: Double-check the skin names for typos.",
        "default-skin-not-found-no-skins": "Whoops! The default skin for your wiki, defined in <code>$wgDefaultSkin</code> as <code>$1</code>, is not available.\n\nYou have no installed skins.\n\n; If you have just installed or upgraded MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. MediaWiki 1.24 and newer doesn't include any skins in the main repository. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: Doing this should not interfere with your git repository if you're a MediaWiki developer. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable skins and choose the default.\n",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (enabled)",
index 5468580..9abcabe 100644 (file)
        "watchthisupload": "Atenti ĉi tiun dosieron",
        "filewasdeleted": "Dosiero de ĉi tiu nomo estis antaŭe alŝutita kaj poste forigita. Bonvolu kontroli en la $1 antaŭ alŝuti ĝin denove.",
        "filename-bad-prefix": "La nomo de la dosiero kiun vi alŝutas komencas kun '''\"$1\"''', kiu estas nepriskriba nomo ofte aŭtomate donata de ciferecaj fotiloj. Bonvolu elekti pli priskriban nomon por via bildo.",
-       "upload-success-subj": "Alŝuto sukcesis!",
-       "upload-success-msg": "Via alŝuto el [$2] sukcesis. Ĝi disponeblas ĉi tie [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Alŝuta problemo",
-       "upload-failure-msg": "Estis problemo kun via alŝuto de [$2]:\n\n$1",
-       "upload-warning-subj": "Averto pri alŝutado",
-       "upload-warning-msg": "Okazis problemo pro via alŝuto el [$2]. Vi povas reveni al la [[Special:Upload/stash/$1|alŝutan formularon]] por korektigi ĉi tiun problemon.",
        "upload-proto-error": "Malvalida protokolo",
        "upload-proto-error-text": "Fora alŝuto devas URL-on komence de <code>http://</code> aŭ <code>ftp://</code>.",
        "upload-file-error": "Interna eraro",
        "foreign-structured-upload-form-label-own-work": "Tio estas mia propra laboro",
        "foreign-structured-upload-form-label-infoform-categories": "Kategorioj",
        "foreign-structured-upload-form-label-infoform-date": "Dato",
+       "foreign-structured-upload-form-3-label-yes": "Jes",
+       "foreign-structured-upload-form-3-label-no": "Ne",
        "backend-fail-stream": "Ne povis fluigi dosieron $1.",
        "backend-fail-backup": "Ne povis enarkivigi dosieron $1.",
        "backend-fail-notexists": "La dosiero $1 ne ekzistas.",
        "protectedpages-performer": "Protektinto",
        "protectedpages-params": "Ecoj de protekto",
        "protectedpages-reason": "Kialo",
+       "protectedpages-submit": "Montri paĝojn",
        "protectedpages-unknown-timestamp": "Nekonata",
        "protectedpages-unknown-performer": "Nekonata uzanto",
        "protectedtitles": "Protektitaj titoloj",
        "protectedtitles-summary": "Ĉi tiu paĝo listigas titolojn, kiuj estas nuntempe protektitaj kontraŭ kreado. Por listo de ekzistantaj paĝoj, kiuj estas protektitaj, vidu [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Neniuj titoloj estas nune protektitaj kun ĉi parametroj.",
+       "protectedtitles-submit": "Montri titolojn",
        "listusers": "Uzantaro",
        "listusers-editsonly": "Montri uzantojn kun redaktoj nur",
        "listusers-creationsort": "Ordigi laŭ dato de kreado",
        "wlheader-showupdated": "Paĝoj montriĝis per '''dikaj literoj''' kiuj estis ŝanĝitaj ekde vi laste vizitis.",
        "wlnote": "Jen la {{PLURAL:$1|lasta redakto|lastaj <strong>$1</strong> redaktoj}} dum la {{PLURAL:$2|lasta horo|lastaj <strong>$2</strong> horoj}}, ekde $3, $4.",
        "wlshowlast": "Montri el lastaj $1 horoj $2 tagoj",
-       "watchlistall2": "ĉiuj",
        "watchlist-hide": "Kaŝi",
        "watchlist-submit": "Montri",
        "wlshowhideminor": "Etaj redaktoj",
        "tooltip-ca-move": "Alinomigi tiun ĉi paĝon",
        "tooltip-ca-watch": "Aldoni tiun ĉi paĝon al via atentaro",
        "tooltip-ca-unwatch": "Forigi tiun ĉi paĝon el via atentaro",
-       "tooltip-search": "Traserĉi {{SITENAME}}",
+       "tooltip-search": "Traserĉi {{SITENAME}}n",
        "tooltip-search-go": "Iru al paĝo kun ĉi preciza nomo se ĝi ekzistas",
        "tooltip-search-fulltext": "Serĉi la paĝojn por ĉi tiu teksto",
        "tooltip-p-logo": "Ĉefpaĝo",
index fa60975..7b2d632 100644 (file)
                        "Rodm23",
                        "Yllelder",
                        "Syum90",
-                       "Cindie.Capel"
+                       "Cindie.Capel",
+                       "ElGatoSaez",
+                       "Joaquin1001"
                ]
        },
        "tog-underline": "Subrayar los enlaces:",
        "tog-numberheadings": "Numerar automáticamente los encabezados",
        "tog-showtoolbar": "Mostrar la barra de edición",
        "tog-editondblclick": "Editar páginas al hacer doble clic",
-       "tog-editsectiononrightclick": "Permitir modificar secciones al pulsar con el botón secundario del ratón en sus títulos",
+       "tog-editsectiononrightclick": "Permitir las modificaciones por sección al hacer clic derecho en sus títulos",
        "tog-watchcreations": "Añadir las páginas que cree y los archivos que suba a mi lista de seguimento",
        "tog-watchdefault": "Añadir las páginas y archivos que edite a mi lista de seguimiento",
        "tog-watchmoves": "Añadir las páginas y archivos que mueva a mi lista de seguimiento",
        "databaseerror-query": "Consulta: $1",
        "databaseerror-function": "Función: $1",
        "databaseerror-error": "Error: $1",
+       "transaction-duration-limit-exceeded": "Para evitar la creación de lentitud alta de respuesta, la transacción fue abortada porque la duración de escritura ($1) excedió el límite de $2 {{PLURAL:$2|segundo|segundos}}.\nSi estás cambiando muchos elementos a la vez, trata de hacer operaciones similares más pequeñas.",
        "laggedslavemode": "<strong>Advertencia:</strong> puede que falten las actualizaciones más recientes en esta página.",
        "readonly": "Base de datos bloqueada",
        "enterlockreason": "Explica el motivo del bloqueo, incluyendo una estimación de cuándo se producirá el desbloqueo",
-       "readonlytext": "La base de datos no permite nuevas entradas u otras modificaciones de forma temporal, probablemente por mantenimiento rutinario, tras lo cual volverá a la normalidad.\n\nLa explicación dada por el administrador que la bloqueó fue: $1",
+       "readonlytext": "Actualmente la base de datos no permite nuevas entradas u otras modificaciones, probablemente por mantenimiento rutinario, tras lo cual volverá a la normalidad.\n\nLa explicación dada por el administrador que la bloqueó fue: $1",
        "missing-article": "La base de datos no ha encontrado el texto de la página «$1» $2, cuando debería haberse hallado.\n\nLa causa de esto suele ser un ''diff'' anacrónico o un enlace al historial de una página que ha sido borrada.\n\nSi no fuera el caso, puede que hayas encontrado un fallo en el software.\n\nPor favor, informa de esto a [[Special:ListUsers/sysop|administrador]], y anota la URL actual.",
        "missingarticle-rev": "(revisión: $1)",
        "missingarticle-diff": "(diferencia: $1, $2)",
        "readonly_lag": "La base de datos se ha bloqueado automáticamente mientras sus servidores esclavos se sincronizan con el maestro.",
+       "nonwrite-api-promise-error": "El encabezado HTTP 'Promise-Non-Write-API-Action' ha sido enviado pero la petición fue hacia un módulo de escritura de la API.",
        "internalerror": "Error interno",
        "internalerror_info": "Error interno: $1",
        "internalerror-fatal-exception": "Excepción grave de tipo \"$1\"",
        "userlogin-remembermypassword": "Mantener mi sesión iniciada",
        "userlogin-signwithsecure": "Usar conexión segura",
        "cannotloginnow-title": "No se puede iniciar sesión ahora",
+       "cannotloginnow-text": "No se puede iniciar sesión cuando se usa $1.",
        "yourdomainname": "Tu dominio:",
        "password-change-forbidden": "No puedes cambiar las contraseñas en este wiki.",
        "externaldberror": "Hubo un error de autenticación en la base de datos, o bien no tienes autorización para actualizar tu cuenta externa.",
        "wrongpasswordempty": "No has escrito una contraseña.\nInténtalo de nuevo.",
        "passwordtooshort": "Las contraseñas deben tener al menos {{PLURAL:$1|1 carácter|$1 caracteres}}.",
        "passwordtoolong": "Las contraseñas no deben tener más de {{PLURAL:$1|1 carácter|$1 caracteres}}.",
+       "passwordtoopopular": "No se pueden usar las contraseñas más comunes. Elige una menos popular.",
        "password-name-match": "Tu contraseña debe ser diferente de tu nombre de usuario.",
        "password-login-forbidden": "El uso de este nombre de usuario y contraseña han sido prohibidos.",
        "mailmypassword": "Restablecer la contraseña",
        "changepassword-success": "La contraseña se modificó correctamente.",
        "changepassword-throttled": "Has intentado acceder demasiadas veces recientemente.\nEspera $1 antes de intentarlo de nuevo.",
        "botpasswords": "Contraseñas de bots",
+       "botpasswords-summary": "Las <em>contraseñas de bots</em> permiten el acceso a una cuenta de usuario mediante la API sin usar las credenciales principales de la cuenta. Los derechos de un usuario mientras haya iniciado sesión con una contraseña de bot pueden estar restringidos.\n\nSi no sabes por qué querrías hacer esto, probablemente no deberías hacerlo. Nadie debería pedirte que generes una de estas claves y que se la entregues.",
        "botpasswords-disabled": "Las contraseñas de bot están desactivadas.",
+       "botpasswords-no-central-id": "Para usar una contraseña de bot, debes estar conectado a una cuenta centralizada.",
        "botpasswords-existing": "Contraseñas de bots existentes",
+       "botpasswords-createnew": "Crear una nueva contraseña de bot",
+       "botpasswords-editexisting": "Editar una contraseña de bot existente",
        "botpasswords-label-appid": "Nombre del bot:",
        "botpasswords-label-create": "Crear",
        "botpasswords-label-update": "Actualizar",
        "botpasswords-label-cancel": "Cancelar",
        "botpasswords-label-delete": "Borrar",
        "botpasswords-label-resetpassword": "Restablecer la contraseña",
+       "botpasswords-label-grants": "Permisos aplicables:",
        "botpasswords-label-restrictions": "Restricciones de uso:",
        "botpasswords-label-grants-column": "Concedido",
        "botpasswords-bad-appid": "El nombre del bot \"$1\" no es válido.",
+       "botpasswords-insert-failed": "No se pudo agregar el nombre del bot \"$1\". ¿Ya ha sido añadido?",
+       "botpasswords-update-failed": "No se pudo actualizar el nombre del bot \"$1\". ¿Ha sido borrado?",
        "botpasswords-created-title": "Se creó la contraseña de bot",
        "botpasswords-created-body": "La contraseña de bot \"$1\" se creó correctamente.",
+       "botpasswords-updated-title": "La contraseña de bot ha sido actualizada",
+       "botpasswords-updated-body": "La contraseña de bot\"$1\" se actualizó correctamente.",
+       "botpasswords-deleted-title": "La contraseña de bot ha sido eliminada",
+       "botpasswords-deleted-body": "La contraseña de bot \"$1\" ha sido eliminada.",
+       "botpasswords-newpassword": "La nueva contraseña para iniciar sesión con <strong>$1</strong> es <strong>$2</strong>. <em>Conserva estos datos para usos futuros.</em>",
        "botpasswords-no-provider": "BotPasswordsSessionProvider no está disponible.",
+       "botpasswords-restriction-failed": "Las restricciones de la contraseña de bot impiden este inicio de sesión.",
        "botpasswords-invalid-name": "El nombre de usuario especificado no contiene el separador de contraseña de bot (\"$1\").",
+       "botpasswords-not-exist": "El usuario \"$1\" no tiene una contraseña de bot llamada \"$2\".",
        "resetpass_forbidden": "No se pueden cambiar las contraseñas",
        "resetpass-no-info": "Debes iniciar sesión para acceder directamente a esta página.",
        "resetpass-submit-loggedin": "Cambiar contraseña",
        "changeemail-no-info": "Debes iniciar sesión para acceder directamente a esta página.",
        "changeemail-oldemail": "Dirección de correo electrónico actual:",
        "changeemail-newemail": "Dirección de correo electrónico nueva:",
+       "changeemail-newemail-help": "Este campo debería dejarse en blanco si quieres quitar tu dirección de correo electrónico. No podrás restablecer una contraseña olvidada y no recibirás correos de esta wiki si se quita la dirección de correo electrónico.",
        "changeemail-none": "(ninguna)",
        "changeemail-password": "Tu contraseña en {{SITENAME}}:",
        "changeemail-submit": "Cambiar correo electrónico",
        "filewasdeleted": "Un archivo con este nombre se subió con anterioridad y posteriormente ha sido borrado. Deberías revisar el $1 antes de subirlo de nuevo.",
        "filename-bad-prefix": "El nombre del archivo que estás subiendo comienza por <strong>«$1»</strong>, un nombre nada descriptivo de su contenido. Es un típico nombre de los que asignan automáticamente las cámaras digitales.\nElige un nombre más descriptivo para tu archivo.",
        "filename-prefix-blacklist": " #<!-- deja esta línea exactamente como está --> <pre>\n# La sintaxis de esta página es la siguiente:\n#   * Todo texto que se encuentre después del carácter \"#\" hasta el final de la línea se tratará como un comentario y será ignorado\n#   * Cualquier línea que no esté en blanco será interpretada como un prefijo típico en nombres de archivo que suelen asignar automáticamente las cámaras digitales\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # algunos teléfonos móviles / celulares\nIMG # genérico\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- deja esta línea exactamente como está -->",
-       "upload-success-subj": "Subida con éxito",
-       "upload-success-msg": "La subida desde [$2] se realizó correctamente. Está disponible aquí: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problema en la subida",
-       "upload-failure-msg": "Hubo un problema durante la subida desde [$2]:\n\n$1",
-       "upload-warning-subj": "Alerta de subida",
-       "upload-warning-msg": "Hubo un problema con tu subida desde [$2]. Puedes regresar al [[Special:Upload/stash/$1|formulario de subida]] para corregir este problema.",
        "upload-proto-error": "Protocolo incorrecto",
        "upload-proto-error-text": "Para subir archivos desde otra página la URL debe comenzar por <code>http://</code> o <code>ftp://</code>.",
        "upload-file-error": "Error interno",
        "upload-too-many-redirects": "La URL contenía demasiadas redirecciones",
        "upload-http-error": "Ha ocurrido un error HTTP: $1",
        "upload-copy-upload-invalid-domain": "No se pueden realizar subidas remotas desde este dominio.",
+       "upload-foreign-cant-upload": "Este wiki no está configurado para subir archivos al repositorio de archivos externo solicitado.",
        "upload-dialog-title": "Subir archivo",
        "upload-dialog-button-cancel": "Cancelar",
        "upload-dialog-button-done": "Hecho",
        "log-title-wildcard": "Buscar títulos que empiecen con este texto",
        "showhideselectedlogentries": "Cambiar la visibilidad de las entradas del registro seleccionadas",
        "log-edit-tags": "Editar las etiquetas de las entradas del registro seleccionadas",
-       "checkbox-select": "Seleccione:$1",
-       "checkbox-all": "Todos",
-       "checkbox-none": "Ninguno",
-       "checkbox-invert": "invertir",
+       "checkbox-select": "Seleccionar: $1",
+       "checkbox-all": "Todas",
+       "checkbox-none": "Ninguna",
+       "checkbox-invert": "Invertir",
        "allpages": "Todas las páginas",
        "nextpage": "Siguiente página ($1)",
        "prevpage": "Página anterior ($1)",
        "listgrouprights-namespaceprotection-header": "Restricciones del espacio de nombres",
        "listgrouprights-namespaceprotection-namespace": "Espacio de nombres",
        "listgrouprights-namespaceprotection-restrictedto": "Derechos de usuario para editar",
+       "listgrants-grant": "Conceder",
        "listgrants-rights": "Conceder",
        "trackingcategories": "Categorías de seguimiento",
        "trackingcategories-summary": "Esta página lista categorías de seguimiento que han sido generadas automáticamente por el software MediaWiki. Sus nombres pueden cambiarse editando su mensaje correspondiente en el espacio de nombres {{ns:8}}.",
        "wlheader-showupdated": "Las páginas modificadas desde tu última visita aparecen en <strong>negrita</strong>.",
        "wlnote": "A continuación {{PLURAL:$1|se muestra el último cambio|se muestran los últimos <strong>$1</strong> cambios}} en {{PLURAL:$2|la última hora|las últimas <strong>$2</strong> horas}} a fecha de $4 $3.",
        "wlshowlast": "Ver los cambios de las últimas $1 horas, $2 días",
-       "watchlistall2": "todos",
        "watchlist-hide": "Ocultar",
        "watchlist-submit": "Mostrar",
        "wlshowtime": "Período de tiempo para mostrar:",
        "lockedbyandtime": "(por {{GENDER:$1|$1}} el $2 a las $3)",
        "move-page": "Trasladar $1",
        "move-page-legend": "Renombrar página",
-       "movepagetext": "Mediante el siguiente formulario puedes renombrar una página, moviendo todo su historial al nombre nuevo.\nEl título anterior redirigirá al 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|rotas]].\nTú eres responsable de asegurar que los enlaces continúen funcionando correctamente.\n\nNota que la página <strong>no</strong> se moverá si ya hay una página con el título nuevo, a menos de que ésta sea una redirección y no tenga historial de ediciones pasadas.\nEsto significa que puedes deshacer el renombrado en caso de un error, y que no puedes sobreescribir una página existente.\n\n<strong>Aviso</strong>\nEsto puede representar un cambio drástico e inesperado para una página popular;\nasegúrate de entender las consecuencias de esta acción antes de proceder.",
-       "movepagetext-noredirectfixer": "Usando el siguiente formulario se renombrará una página, trasladando todo su historial al nuevo nombre.\nEl título anterior se convertirá en una redirección al nuevo título.\nAsegúrate de no dejar [[Special:DoubleRedirects|redirecciones dobles]] o [[Special:BrokenRedirects|rotas]].\nTú eres responsable de hacer que los enlaces sigan apuntando adonde se supone que deberían hacerlo.\n\nRecuerda que la página '''no''' será renombrada si ya existe una página con el nuevo título, a no ser que sea una página vacía o una redirección sin historial.\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'''¡Aviso!'''\nEste puede ser un cambio drástico e inesperado para una página popular;\npor favor, asegúrate de entender las consecuencias del procedimiento antes de seguir adelante.",
+       "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.",
        "movenosubpage": "Esta página no tiene subpáginas.",
        "movereason": "Motivo:",
        "revertmove": "revertir",
-       "delete_and_move_text": "==Se necesita borrado==\n\nLa página de destino (\"[[:$1]]\") ya existe. ¿Quiere borrarla para permitir al traslado?",
+       "delete_and_move_text": "La página de destino «[[:$1]]» ya existe.\n¿Quieres borrarla para permitir el traslado?",
        "delete_and_move_confirm": "Sí, borrar la página",
        "delete_and_move_reason": "Borrada para permitir el traslado de \"[[$1]]\"",
        "selfmove": "Los títulos de origen y destino son los mismos;\nno se puede trasladar una página sobre sí misma.",
        "move-leave-redirect": "Dejar una redirección",
        "protectedpagemovewarning": "<strong>Advertencia:</strong> esta página ha sido protegida de tal manera que solamente usuarios con privilegios de administrador puedan trasladarla.\nA continuación se muestra la última entrada de registro como referencia:",
        "semiprotectedpagemovewarning": "<strong>Nota:</strong> esta página ha sido protegida de tal manera que solamente usuarios registrados puedan trasladarla.\nA continuación se muestra la última entrada de registro como referencia:",
-       "move-over-sharedrepo": "== El archivo existe ==\n[[:$1]] existe en un repositorio compartido. El traslado a este título invalidará la compartición del archivo.",
+       "move-over-sharedrepo": "[[:$1]] existe en un repositorio compartido. Trasladar el archivo a este título sobrescribirá el archivo compartido.",
        "file-exists-sharedrepo": "El nombre de archivo elegido ya está siendo usado en un repositorio compartido.\nPor favor, elige otro nombre.",
        "export": "Exportar páginas",
        "exporttext": "Puedes exportar el texto y el historial de ediciones de una página en particular o de un conjunto de páginas a un texto XML. En el futuro, este texto podría importarse en otro wiki que ejecutase MediaWiki a través de [[Special:Import|importar página]].\n\nPara exportar páginas, escribe los títulos en la caja de texto de abajo, un título por línea, y selecciona si quieres la versión actual junto a las versiones anteriores, con las líneas del historial, o sólo la versión actual con la información sobre la última edición.\n\nEn el último caso también puedes usar un enlace, por ejemplo [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] para la página \"[[{{MediaWiki:Mainpage}}]]\".",
        "expand_templates_ok": "Aceptar",
        "expand_templates_remove_comments": "Eliminar comentarios (<!-- ... -->)",
        "expand_templates_remove_nowiki": "Suprimir etiquetas <nowiki> en el resultado",
-       "expand_templates_generate_xml": "Mostrar el árbol XML.",
+       "expand_templates_generate_xml": "Mostrar el árbol XML",
        "expand_templates_generate_rawhtml": "Mostrar HTML en crudo",
        "expand_templates_preview": "Previsualización",
        "expand_templates_preview_fail_html": "<em>Se ha ocultado la previsualización como precaución frente a ataques JavaScript. Esto se debe a que {{SITENAME}} tiene habilitada la característica de código HTML en bruto, y se perdieron los datos de la sesión.</em>\n\n<strong>Si se trata de un intento de previsualización legítimo, inténtalo de nuevo.</strong>\nSi aun así no funciona, intenta [[Special:UserLogout|cerrar sesión]] y volver a acceder.",
        "mw-widgets-titleinput-description-new-page": "la página aún no existe",
        "mw-widgets-titleinput-description-redirect": "redirigir a $1",
        "api-error-blacklisted": "Elige un título diferente, más descriptivo.",
+       "sessionmanager-tie": "No se pueden combinar múltiples tipos de autentificación de solicitudes: $1",
        "sessionprovider-generic": "sesiones $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sesiones basadas en cookies",
        "sessionprovider-nocookies": "Puede que las cookies estén desactivadas. Actívalas y comienza de nuevo.",
index b80513d..0071de3 100644 (file)
        "october-date": "urriak $1",
        "november-date": "azaroak $1",
        "december-date": "abenduak $1",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Kategoria|Kategoriak}}",
        "category_header": "«$1» kategoriako artikuluak",
        "subcategories": "Azpikategoriak",
        "resetpass_submit": "Pasahitza definitu eta saioa hasi",
        "changepassword-success": "Zure pasahitza ondo aldatu da!",
        "changepassword-throttled": "Saioa hasteko saiakera gehiegi egin berri dituzu.\nBerriro saiatu aurretik $1 itxoin, mesedez.",
+       "botpasswords-label-create": "Sortu",
+       "botpasswords-label-update": "Eguneratu",
+       "botpasswords-label-delete": "Ezabatu",
        "resetpass_forbidden": "Ezin dira pasahitzak aldatu",
        "resetpass-no-info": "Orrialde honetara zuzenean sartzeko izena eman behar duzu.",
        "resetpass-submit-loggedin": "Pasahitza aldatu",
        "watchthisupload": "Fitxategi hau jarraitu",
        "filewasdeleted": "Izen hau duen fitxategi bat igo eta ezabatu da jada. $1 aztertu beharko zenuke berriz igo aurretik.",
        "filename-bad-prefix": "Igotzen ari zaren fitxategiaren izena '''\"$1\"'''ekin hasten da, normalki kamera digitalek automatikoki ezartzen duten izen ez deskriptibo bat.\nAukera ezazu, mesedez, fitxategi izen deskriptiboago bat.",
-       "upload-success-subj": "Igoera arrakastatsua",
-       "upload-success-msg": "Zure [$2] igoera arrakastatsua izan da. Hemen duzu eskuragarri: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Igoera-arazoa",
-       "upload-failure-msg": "Hurrengo arazoa egon da zure [$2] igoerarekin:\n\n$1",
-       "upload-warning-subj": "Igoera oharra",
        "upload-proto-error": "Protokolo ezegokia",
        "upload-proto-error-text": "Kanpo igoerak <code>http://</code> edo <code>ftp://</code> hasiera duen URLa izan behar du.",
        "upload-file-error": "Barne errorea",
        "wlheader-showupdated": "Bisitatu zenituen azken alditik aldaketak izan dituzten orrialdeak '''beltzez''' nabarmenduta daude.",
        "wlnote": "Jarraian {{PLURAL:$2|ikus daiteke azken orduko|ikus daitezke azken '''$2''' orduetako}} azken {{PLURAL:$1|aldaketa|'''$1''' aldaketak}}, $3, $4 gisa.",
        "wlshowlast": "Erakutsi azken $1 orduak, azken $2 egunak",
-       "watchlistall2": "guztia",
        "watchlist-hide": "Ezkutatu",
        "watchlist-submit": "Erakutsi",
        "wlshowtime": "Erakutsi azkenak:",
index db32ba6..645dca9 100644 (file)
@@ -59,7 +59,7 @@
        "tog-extendwatchlist": "گسترش فهرست پیگیری‌ها برای نمایش همهٔ تغییرات، نه فقط جدیدترین‌ها",
        "tog-usenewrc": "گروه‌بندی تغییرات بر پایهٔ صفحه‌ در تغییرات اخیر و فهرست پیگیری‌ها",
        "tog-numberheadings": "شماره‌گذاری خودکار عنوان‌ها",
-       "tog-showtoolbar": "نامیش نوار ابزار ویرایش",
+       "tog-showtoolbar": "نمایش نوار ابزار ویرایش",
        "tog-editondblclick": "ویرایش صفحات با دو کلیک",
        "tog-editsectiononrightclick": "فعال کردن ویرایش بخش‌ها با کلیک راست روی عنوان بخش‌ها",
        "tog-watchcreations": "افزودن صفحه‌هایی که می‌سازم و پرونده‌هایی که بارگذاری می‌کنم به فهرست پیگیری‌های من",
        "changepassword-success": "گذرواژهٔ شما با موفقیت تغییر داده شد!",
        "changepassword-throttled": "شما به تازگی چندین‌بار برای ثبت ورود تلاش کرده‌اید.\nلطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.",
        "botpasswords": "گذرواژه ربات",
+       "botpasswords-summary": "<em>گذرواژه‌های رباتی</em> اجازه دسترسی به یک حساب کاربری با ای‌پی‌آی بدون استفاده از رمز اصلی حساب را می‌دهد. دسترسی‌های کاربری موجود هنگامی که با گذرواژهٔ رباتیک وارد می‌شوید ممکن است محدود باشند.\n\nاگر نمی‌دانید که ممکن است با این چه کنید، احتمالاً نباید هیچ کاری کنید. هیچ‌کس نباید از شما خواسته باشد که یکی از این‌ها درست کنید به آن‌ها بدهید.",
        "botpasswords-disabled": "گذرواژه‌های ربات غیرفعال شده‌است.",
+       "botpasswords-no-central-id": "برای استفاده از گذرواژه‌های رباتی، شما ابتدا می‌بایست به یک حساب متمرکز وارد شود.",
        "botpasswords-existing": "گذرواژه‌های موجود ربات",
        "botpasswords-createnew": "ایجاد گذرواژه ربات",
        "botpasswords-editexisting": "ویرایش گذرواژه موجود ربات",
        "botpasswords-label-delete": "حذف",
        "botpasswords-label-resetpassword": "بازگردانی گذرواژه",
        "botpasswords-label-grants": "اعطاهای اجرا شدنی:",
+       "botpasswords-help-grants": "هر اجازه به حقوق کاربری که یک حساب کاربری دارد. [[Special:ListGrants|table of grants]] را برای اطلاعات بیشتر مشاهده کنید.",
        "botpasswords-label-restrictions": "محدودیت استفاده:",
        "botpasswords-label-grants-column": "اعطا شد",
        "botpasswords-bad-appid": "نام ربات \"$1\" معتبر نیست.",
+       "botpasswords-insert-failed": "شکست در افزودن نام ربات «$1». در حال حاضر اضافه شده است؟",
+       "botpasswords-update-failed": "شکست در به‌روزرسانی نام رباتی «$1». حذف شده است؟",
        "botpasswords-created-title": "گذرواژه ربات ایجاد شد",
+       "botpasswords-created-body": "گذرواژهٔ رباتی «$1» با موفقیت ایجاد شد.",
        "botpasswords-updated-title": "گذرواژه ربات به‌روز شد",
+       "botpasswords-updated-body": "گذرواژهٔ رباتی «$1» با موفقیت به‌روز شد.",
        "botpasswords-deleted-title": "گذرواژه ربات حذف شد",
+       "botpasswords-deleted-body": "گذرواژهٔ رباتی «$1» حذف شد.",
+       "botpasswords-newpassword": "<strong>$2</strong> گذرواژهٔ جدید برای ورود با <strong>$1</strong> است. <em>لطفاً این را برای ارجاع در آینده ذخیره کنید.</em>",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider موجود نیست.",
+       "botpasswords-restriction-failed": "محدودیت‌های گذرواژهٔ ربات از این ورود جلوگیری می‌کند.",
+       "botpasswords-invalid-name": "نام کاربری مشخص شده دارای جداکنندهٔ گذرواژهٔ رباتی نیست (\"$1\").",
+       "botpasswords-not-exist": "کاربر «$1» گذرواژهٔ رباتی نام‌دهی شدهٔ «$2» ندارد.",
        "resetpass_forbidden": "نمی‌توان گذرواژه‌ها را تغییر داد",
        "resetpass-no-info": "برای دسترسی مستقیم به این صفحه شما باید به سامانه وارد شده باشید.",
        "resetpass-submit-loggedin": "تغییر گذرواژه",
        "right-createpage": "ایجاد صفحه (در مورد صفحه‌های غیر بحث)",
        "right-createtalk": "ایجاد صفحه‌های بحث",
        "right-createaccount": "ایجاد حساب‌های کاربری",
+       "right-autocreateaccount": "ورود خودکار با یک حساب کاربری خارجی",
        "right-minoredit": "علامت زدن ویرایش‌ها به عنوان جزئی",
        "right-move": "انتقال صفحه",
        "right-move-subpages": "انتقال صفحات به همراه زیر‌صفحات‌شان",
        "filewasdeleted": "پرونده‌ای با همین نام پیشتر بارگذاری و پس از آن پاک شده‌است.\nشما باید $1 را قبل از بارگذاری مجدد آن ببینید.",
        "filename-thumb-name": "به نظر می رسد که عنوان thumbnail است. لطفاً تصویر thumbnail  از دیگر ویکی‌ها را بارگذاری نکنید. عنوان پرونده را اصلاح کنید به صورتی که پیشوند thumbnail نداشته باشد.",
        "filename-bad-prefix": "نام پرونده‌ای که بارگذاری می‌کنید با '''$1''' آغاز می‌شود که یک پیشوند مخصوص تصاویر ثبت شده توسط دوربین‌های دیجیتال است.\nلطفاً نامی بهتر برای پرونده برگزینید.",
-       "upload-success-subj": "بارگذاری با موفقیت انجام شد",
-       "upload-success-msg": "بارگذاری شما از [$2] موفق بود. این پرونده در اینجا قابل دسترسی است: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "مشکل در بارگذاری",
-       "upload-failure-msg": "مشکلی در بارگذاری شما از [$2] وجود داشت:\n\n$1",
-       "upload-warning-subj": "هشدار بارگذاری",
-       "upload-warning-msg": "فرم بارگذاری مشکلی داشت [$2]. شما می‌توانید به [[Special:Upload/stash/$1|فرم بارگذاری]] بازگردید تا این اشکال را رفع کنید.",
        "upload-proto-error": "پروتکل نادرست",
        "upload-proto-error-text": "بارگذاری از دوردست به نشانی‌هایی که با <code dir=ltr>http://</code> یا <code dir=ltr>ftp://</code> آغاز شوند نیاز دارد.",
        "upload-file-error": "خطای داخلی",
        "wlheader-showupdated": "صفحه‌هایی که پس از آخرین بازدید شما تغییر کرده‌اند '''پررنگ''' نمایش داده شده‌اند.",
        "wlnote": "در زیر {{PLURAL:$1|تغییری|<strong>$1</strong> تغییری}} که در {{PLURAL:$2|ساعت|<strong>$2</strong> ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4",
        "wlshowlast": "نمایش آخرین $1 ساعت $2 روز",
-       "watchlistall2": "همه",
        "watchlist-hide": "نهفتن",
        "watchlist-submit": "نمایش",
        "wlshowtime": "نمایش بازهٔ زمانی:",
        "mw-widgets-titleinput-description-new-page": "این صفحه هنوز وجود ندارد",
        "mw-widgets-titleinput-description-redirect": "تغییر مسیر به $1",
        "api-error-blacklisted": "لطفاً یک عنوان توصیفی متفاوت انتخاب کنید.",
+       "sessionmanager-tie": "نمی‌توان چندین نوع درخواست هویت‌سنجی را ترکیب کرد: $1.",
        "sessionprovider-generic": "$1 فصل",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "فصل‌های کوکی‌محور",
+       "sessionprovider-nocookies": "کوکی‌ها ممکن است غیر فعال شده باشند. اطمینان کسب کنید که کوکی‌ها را فعال کرده‌اید و دوباره آغاز کنید.",
        "randomrootpage": "صفحهٔ ریشهٔ تصادفی"
 }
index e2cc9ea..9795daf 100644 (file)
        "passwordreset-emailtext-ip": "Joku (todennäköisesti sinä, IP-osoitteesta $1) pyysi salasanasi\nvaihtamista sivustolla {{SITENAME}} ($4). {{PLURAL:$3|Seuraava käyttäjätunnus on|Seuraavat käyttäjätunnukset ovat}}\nyhdistettynä tähän sähköpostiosoitteeseen:\n\n$2\n\n{{PLURAL:$3|Tämä väliaikainen salasana vanhentuu|Nämä väliaikaiset salasanat vanhentuvat}} {{PLURAL:$5|yhden päivän|$5 päivän}} kuluttua.\nKirjaudu sisään nyt ja valitse uusi salasana heti. Jos joku toinen teki tämän pyynnön \ntai jos muistitkin vanhan salasanasi etkä halua enää muuttaa sitä,\nvoit jättää tämän viestin huomiotta ja jatkaa vanhan salasanasi käyttämistä.",
        "passwordreset-emailtext-user": "Käyttäjä $1 pyysi muistutusta tunnuksesi tiedoista sivustolla {{SITENAME}} ($4).\n{{PLURAL:$3|Seuraava käyttäjätunnus on|Seuraavat käyttäjätunnukset ovat}} liitetty tähän sähköpostiosoitteeseen:\n\n$2\n\n{{PLURAL:$3|Tämä väliaikainen salasana vanhentuu|Nämä väliaikaiset salasanat vanhentuvat}} {{PLURAL:$5|yhden päivän|$5 päivän}} kuluttua.\nSinun kannattaa kirjautua sisään ja valita uusi salasana. Jos joku toinen teki tämän\npyynnön, tai muistat sittenkin vanhan salasanasi, etkä halua muuttaa sitä,\nvoit jättää tämän viestin huomiotta ja jatkaa vanhan salasanan käyttöä.",
        "passwordreset-emailelement": "Käyttäjätunnus: \n$1\n\nVäliaikainen salasana: \n$2",
-       "passwordreset-emailsentemail": "Mikäli tämä sähköpostiosoite on liitetty tiliisi, salasanan nollaamisviesti lähetetään.",
-       "passwordreset-emailsentusername": "Mikäli tähän käyttäjänimeen liitetty sähköpostiosoite löytyy, salasanan nollaamisviesti lähetetään.",
+       "passwordreset-emailsentemail": "Jos tämä on sinun tunnuksellesi rekisteröity sähköpostiosoite, salasanan uudistamisesta kertova viesti lähetetään.",
+       "passwordreset-emailsentusername": "Jos on olemassa vastaava rekisteröity sähköpostiosoite, salasanan uudistamisesta kertova viesti lähetetään.",
        "passwordreset-emailsent-capture": "Salasanan uudistamisesta kertova sähköpostiviesti on lähetetty, ja se näkyy myös alla.",
        "passwordreset-emailerror-capture": "Allaoleva sähköpostiviesti luotiin, mutta sen lähettäminen {{GENDER:$2|käyttäjälle}} epäonnistui: $1",
        "changeemail": "Muuta tai poista sähköpostiosoite",
        "filename-thumb-name": "Tämä vaikuttaa olevan esikatselukuvan nimi. Älä tallenna esikatselukuvia takaisin samaan wikiin. Muussa tapauksessa korjaa tiedoston nimi sellaiseksi, joka on mielekkäämpi ja joka ei sisällä esikatselun etuliitettä.",
        "filename-bad-prefix": "Tallentamasi tiedoston nimi alkaa merkkijonolla '''$1''', joka on yleensä digitaalikameroiden automaattisesti antama nimi, joka ei kuvaa tiedoston sisältöä. Anna tiedostolle kuvaavampi nimi.",
        "filename-prefix-blacklist": " #<!-- älä muokkaa tätä riviä --> <pre>\n# Syntaksi on seuraava:\n#   * #-merkki aloittaa kommentin, joka jatkuu rivin loppuun\n#   * Jokainen epätyhjä rivi on tiedostonimien etuliite digitaalikameroiden yleisesti käyttämille tiedostonimille\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # jotkut matkapuhelimet\nIMG # yleinen\nJD # Jenoptik\nMGP # Pentax\nPICT # muut\n #</pre> <!-- älä muokkaa tätä riviä -->",
-       "upload-success-subj": "Tallennus onnistui",
-       "upload-success-msg": "Tallennuksesi [$2] onnistui. Tiedosto on saatavilla täällä: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Tallennusongelma",
-       "upload-failure-msg": "Tiedoston tallentaminen osoitteesta [$2] ei onnistunut:\n\n$1",
-       "upload-warning-subj": "Tallennusvaroitus",
-       "upload-warning-msg": "Tiedoston tallennuksessasi oli ongelmia [$2]. Voit palata [[Special:Upload/stash/$1|tallennussivulle]] ja korjata ongelman.",
        "upload-proto-error": "Virheellinen protokolla",
        "upload-proto-error-text": "Etälähetys on mahdollista vain osoitteista, jotka alkavat merkkijonolla <code>http://</code> tai <code>ftp://</code>.",
        "upload-file-error": "Sisäinen virhe",
        "log-title-wildcard": "Haun kohteet alkavat tällä tekstillä",
        "showhideselectedlogentries": "Muuta valittujen lokitapahtumien näkyvyyttä",
        "log-edit-tags": "Muuta merkkauksia valituissa lokimerkinnöissä",
+       "checkbox-select": "Valitse: $1",
+       "checkbox-all": "Kaikki",
+       "checkbox-none": "Ei mitään",
+       "checkbox-invert": "Päinvastoin",
        "allpages": "Kaikki sivut",
        "nextpage": "Seuraava sivu ($1)",
        "prevpage": "Edellinen sivu ($1)",
        "wlheader-showupdated": "Sivut, joita on muokattu viimeisen käyntisi jälkeen, on '''lihavoitu'''.",
        "wlnote": "Alla {{PLURAL:$1|on viimeisin muutos|ovat viimeisimmät <strong>$1</strong> muutosta}} edellisen {{PLURAL:$2|tunnin|<strong>$2</strong> tunnin}} ajalta $3 kello $4 lukien.",
        "wlshowlast": "Näytä edelliset $1 tuntia tai $2 päivää",
-       "watchlistall2": "kaikki",
        "watchlist-hide": "Piilota",
        "watchlist-submit": "Näytä",
        "wlshowtime": "Näytettävä aikajakso:",
        "lastmodifiedatby": "Tätä sivua muokkasi viimeksi $3 $1 kello $2.",
        "othercontribs": "Perustuu seuraavien tekijöiden työhön: $1.",
        "others": "muut",
-       "siteusers": "{{GRAMMAR:genitive|{{SITENAME}}}} {{PLURAL:$2|käyttäjä|käyttäjät}} $1",
+       "siteusers": "{{GRAMMAR:genitive|{{SITENAME}}}} {{PLURAL:$2|{{GENDER:$1|käyttäjä}}|käyttäjät}} $1",
        "anonusers": "{{GRAMMAR:genitive|{{SITENAME}}}} {{PLURAL:$2|anonyymi käyttäjä|anonyymit käyttäjät}} $1",
        "creditspage": "Sivun tekijäluettelo",
        "nocredits": "Tämän sivun tekijäluettelotietoja ei löydy.",
        "expand_templates_preview_fail_html": "<em>Koska sivustolla {{SITENAME}} on käytössä puhdas HTML-koodi ja koska istunnon tiedot ovat kadonneet, esikatselu on piilotettu JavaScript-hyökkäyksien torjumiseksi.</em>\n\n<strong>Jos olet oikealla asialla, yritä uudestaan.</strong>\nJos esikatselu ei vieläkään toimi, kokeile [[Special:UserLogout|kirjautua ulos]] ja sen jälkeen kirjaudu uudestaan sisään.",
        "expand_templates_preview_fail_html_anon": "<em>Koska sivustolla {{SITENAME}} on käytössä puhdas HTML-koodi ja koska et ole kirjautunut sisään, esikatselu on piilotettu JavaScript-hyökkäyksien torjumiseksi.</em>\n\n<strong>Jos olet oikealla asialla, [[Special:UserLogin|kirjaudu sisään]] ja yritä uudestaan.</strong>",
        "expand_templates_input_missing": "Sinun on annettava edes jotakin tekstiä syötteeksi.",
-       "pagelanguage": "Sivun kielen valinta",
+       "pagelanguage": "Vaihda sivun kieltä",
        "pagelang-name": "Sivu",
        "pagelang-language": "Kieli",
        "pagelang-use-default": "Käytä oletuskieltä",
        "action-pagelang": "muuttaa sivun kieliasetuksia",
        "log-name-pagelang": "Kielenvaihtoloki",
        "log-description-pagelang": "Tämä on loki, johon merkitään muutokset sivujen kieliasetuksissa.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|muutti}} sivun kieltä sivulla $3 kielestä $4 kieleksi $5.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|muutti}} kielen sivulla $3 kielestä $4 kieleksi $5.",
        "default-skin-not-found": "Hupsista! Oletuksena tuleva ulkoasu sinun wikillesi, joka on määritelty koodissa <code dir=\"ltr\">$wgDefaultSkin</code> muotoon <code>$1</code>, ei ole saatavilla.\n\nAlla on ohjeet englannin kielellä:\n\nYour installation seems to include the following {{PLURAL:$4|skin|skins}}. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable {{PLURAL:$4|it|them and choose the default}}.\n\n$2\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: Doing this should not interfere with your git repository if you're a MediaWiki developer.\n\n; If you have just upgraded MediaWiki:\n: MediaWiki 1.24 and newer no longer automatically enables installed skins (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following {{PLURAL:$5|line|lines}} into <code>LocalSettings.php</code> to enable {{PLURAL:$5|the|all}} installed {{PLURAL:$5|skin|skins}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; If you have just modified <code>LocalSettings.php</code>:\n: Double-check the skin names for typos.",
        "default-skin-not-found-no-skins": "Hupsista! Oletusulkoasua sinun wikillesi ei ole saatavilla. Se on määritelty ulkoasuksi <code>$1</code> kohteessa <code>$wgDefaultSkin</code>.\n\nAlla on ohjeet englannin kielellä:\n\nYou have no installed skins.\n\n; If you have just installed or upgraded MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. MediaWiki 1.24 and newer doesn't include any skins in the main repository. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: Doing this should not interfere with your git repository if you're a MediaWiki developer. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable skins and choose the default.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (käytössä)",
index a7905ec..99ea8c9 100644 (file)
        "filename-thumb-name": "Ce titre ressemble à celui d’une vignette. Évitez d’importer des vignettes d’une image déjà présente sur le wiki. Si ce n’est pas le cas, veuillez corriger le nom de fichier afin qu’il soit plus descriptif et qu’il ne commence pas comme un titre de vignette.",
        "filename-bad-prefix": "Le nom du fichier commence par '''« $1 »''' qui est typiquement un nom attribué automatiquement par les appareils photo numériques.\nVeuillez choisir un nom de fichier descriptif.",
        "filename-prefix-blacklist": " #<!-- laisser cette ligne telle quelle --><pre>\n# La syntaxe est la suivante :\n#  * Tout ce qui figure entre un caractère \"#\" jusqu’à la fin de la ligne est un commentaire ;\n#  * Toute ligne non vide est un préfixe typique de nom de fichier assigné automatiquement par les appareils numériques :\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # certains téléphones mobiles\nIMG # générique\nJD # Jenoptik\nMGP # Pentax\nPICT # divers\n #</pre><!-- laisser cette ligne telle quelle -->",
-       "upload-success-subj": "Import effectué avec succès",
-       "upload-success-msg": "Votre import depuis [$2] a réussi. Il est disponible ici : [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problème d'import",
-       "upload-failure-msg": "Il y a eu un problème avec votre import depuis [$2] :\n\n$1",
-       "upload-warning-subj": "Avertissement lors de l’import",
-       "upload-warning-msg": "Un problème est survenu lors de l’import depuis [$2]. Vous pouvez revenir au [[Special:Upload/stash/$1|formulaire d’import]] pour le résoudre.",
        "upload-proto-error": "Protocole incorrect",
        "upload-proto-error-text": "L’import requiert des URL commençant par <code>http://</code> ou <code>ftp://</code>.",
        "upload-file-error": "Erreur interne",
        "upload-too-many-redirects": "L’URL contient trop de redirections.",
        "upload-http-error": "Une erreur HTTP est survenue : $1",
        "upload-copy-upload-invalid-domain": "La copie des téléversements n’est pas disponible depuis ce domaine.",
+       "upload-foreign-cant-upload": "Ce wiki n’est pas configuré pour télécharger des fichiers vers le dépôt de fichiers externe demandé.",
        "upload-dialog-title": "Téléverser un fichier",
        "upload-dialog-button-cancel": "Annuler",
        "upload-dialog-button-done": "Fait",
        "watchlist-details": "{{PLURAL:$1|$1 page|$1 pages}} dans votre liste de suivi, sans compter les pages de discussion.",
        "wlheader-enotif": "La notification par courriel est activée.",
        "wlheader-showupdated": "Les pages qui ont été modifiées depuis votre dernière visite sont affichées en '''gras'''.",
-       "wlnote": "Ci-dessous {{PLURAL:$1|figure la dernière modification effectuée|figurent les <strong>$1</strong> dernières modifications effectuées}} durant {{PLURAL:$2|la dernière heure|les <strong>$2</strong> dernières heures}}, depuis $3, $4.",
+       "wlnote": "Ci-dessous {{PLURAL:$1|figure la dernière modification effectuée|figurent les <strong>$1</strong> dernières modifications effectuées}} durant {{PLURAL:$2|la dernière heure|les <strong>$2</strong> dernières heures}}, jusqu'au $3, $4.",
        "wlshowlast": "Montrer les dernières $1 heures, les derniers $2 jours",
-       "watchlistall2": "tout",
        "watchlist-hide": "Masquer",
        "watchlist-submit": "Lister",
        "wlshowtime": "Période affichée :",
        "lockedbyandtime": "(par $1 le $2 à $3)",
        "move-page": "Renommer $1",
        "move-page-legend": "Renommer une page",
-       "movepagetext": "Utilisez le formulaire ci-dessous pour renommer une page, en déplaçant tout son historique vers le nouveau nom. L'ancien titre deviendra une page de redirection vers le nouveau titre. Vous pouvez mettre à jour automatiquement les redirections actuelles qui pointent vers le titre original. Si vous choisissez de ne pas le faire, assurez-vous de vérifier toute [[Special:DoubleRedirects|double redirection]] ou [[Special:BrokenRedirects|redirection cassée]]. Vous avez la responsabilité de vous assurer que les liens continuent de pointer vers leur destination supposée.\n\nNotez que la page ne sera '''pas''' renommée s'il existe déjà une page avec le nouveau titre, sauf si cette dernière est une simple redirection avec un historique de modifications vierge. Ceci permet de renommer une page vers sa position d'origine si le déplacement s'avère erroné.\n\n'''Attention !'''\nCeci peut provoquer un changement radical et imprévu pour une page souvent consultée ; assurez-vous d'en avoir compris les conséquences avant de continuer.",
-       "movepagetext-noredirectfixer": "Utilisez le formulaire ci-dessous pour renommer une page, en déplaçant tout son historique vers le nouveau nom.\nL'ancien titre deviendra une page de redirection vers le nouveau titre.\nVérifiez bien les [[Special:DoubleRedirects|doubles redirections]] ou les [[Special:BrokenRedirects|redirections cassées]].\nVous avez la responsabilité de vous assurer que les liens continuent de pointer vers leur destination supposée.\n\nNotez que la page ne sera '''pas''' déplacée s'il existe déjà une page avec le nouveau titre, sauf si cette dernière a un historique de modifications vierge et est soit vide, soit une simple redirection. Ceci permet de renommer une page vers sa position d'origine si le déplacement s'avère erroné, et il est impossible d'écraser une page existante.\n\n'''Attention !'''\nCeci peut provoquer un changement radical et imprévu pour une page souvent consultée ; assurez-vous d'en avoir compris les conséquences avant de continuer.",
+       "movepagetext": "Utilisez le formulaire ci-dessous pour renommer une page, en déplaçant tout son historique vers le nouveau nom. L’ancien titre deviendra une page de redirection vers le nouveau titre. Vous pouvez mettre à jour automatiquement les redirections actuelles qui pointent vers le titre original. Si vous choisissez de ne pas le faire, assurez-vous de vérifier toute [[Special:DoubleRedirects|double redirection]] ou [[Special:BrokenRedirects|redirection cassée]]. Vous avez la responsabilité de vous assurer que les liens continuent de pointer vers leur destination supposée.\n\nNotez que la page ne sera <string>pas</strong> renommée s’il existe déjà une page avec le nouveau titre, sauf si cette dernière est une simple redirection avec un historique de modifications vierge. Ceci permet de renommer une page vers sa position d’origine si le déplacement s’avère erroné.\n\n<strong>Attention !</strong>\nCeci peut provoquer un changement radical et imprévu pour une page souvent consultée ; assurez-vous d’en avoir compris les conséquences avant de continuer.",
+       "movepagetext-noredirectfixer": "Utilisez le formulaire ci-dessous pour renommer une page, en déplaçant tout son historique vers le nouveau nom.\nL’ancien titre deviendra une page de redirection vers le nouveau titre.\nVérifiez bien les [[Special:DoubleRedirects|doubles redirections]] ou les [[Special:BrokenRedirects|redirections cassées]].\nVous avez la responsabilité de vous assurer que les liens continuent de pointer vers leur destination supposée.\n\nNotez que la page ne sera <strong>pas</stong> déplacée s’il existe déjà une page avec le nouveau titre, sauf si cette dernière a un historique de modifications vierge et est soit vide, soit une simple redirection. Ceci permet de renommer une page vers sa position d’origine si le déplacement s’avère erroné, et il est impossible d’écraser une page existante.\n\n<strong>Attention !</stong>\nCeci peut provoquer un changement radical et imprévu pour une page souvent consultée ; assurez-vous d’en avoir compris les conséquences avant de continuer.",
        "movepagetalktext": "Si vous cochez cette case, la page de discussion associée sera automatiquement renommée, à moins qu’une page de discussion non vide existe déjà sous ce nouveau nom.\n\nDans ce cas, vous devrez renommer ou fusionner cette page de discussion manuellement si vous le désirez.",
        "moveuserpage-warning": "'''Attention :''' Vous êtes sur le point de renommer une page d’utilisateur. Veuillez noter que seule la page sera renommée et que l’utilisateur '''ne''' sera '''pas''' renommé.",
        "movecategorypage-warning": "<strong>Avertissement :</strong> Vous êtes sur le point de renommer une page de catégorie. Veuillez noter que seule la catégorie sera renommée et <em>qu’aucune</em> des pages de l’ancienne catégorie ne sera transférée dans la nouvelle.",
        "movenosubpage": "Cette page n'a aucune sous-page.",
        "movereason": "Motif :",
        "revertmove": "rétablir",
-       "delete_and_move_text": "== Suppression requise ==\nLa page de destination « [[:$1]] » existe déjà.\nÊtes-vous certain{{GENDER:||e|}} de vouloir la supprimer pour permettre ce renommage ?",
+       "delete_and_move_text": "La page de destination « [[:$1]] » existe déjà.\nÊtes-vous certain{{GENDER:||e|}} de vouloir la supprimer pour permettre ce renommage ?",
        "delete_and_move_confirm": "Oui, supprimer la page de destination",
        "delete_and_move_reason": "Page supprimée pour permettre le renommage depuis « [[$1]] »",
        "selfmove": "Les titres d'origine et de destination sont les mêmes ;\nimpossible de renommer une page sur elle-même.",
        "move-leave-redirect": "Laisser une redirection vers le nouveau titre",
        "protectedpagemovewarning": "'''Attention :''' Cette page a été protégée afin que seuls les utilisateurs possédant les droits d'administrateur puissent la renommer. La dernière entrée du journal est affichée ci-dessous pour référence :",
        "semiprotectedpagemovewarning": "'''Note :''' Cette page a été protégée afin que seuls les utilisateurs enregistrés puissent la renommer. La dernière entrée du journal est affichée ci-dessous pour référence :",
-       "move-over-sharedrepo": "== Le fichier existe ==\n[[:$1]] existe déjà sur un dépôt partagé. Renommer ce fichier rendra le fichier sur le dépôt partage inaccessible.",
+       "move-over-sharedrepo": "[[:$1]] existe déjà sur un dépôt partagé. Renommer ce fichier rendra le fichier sur le dépôt partagé inaccessible.",
        "file-exists-sharedrepo": "Le nom choisi est déjà utilisé par un fichier sur un dépôt partagé.\nChoisissez un autre nom.",
        "export": "Exporter des pages",
        "exporttext": "Vous pouvez exporter en XML le texte et l’historique d’une page ou d’un ensemble de pages ; le résultat peut alors être importé dans un autre wiki utilisant le logiciel MediaWiki via la [[Special:Import|page d’importation]].\n\nPour exporter des pages, entrez leurs titres dans la boîte de texte ci-dessous, à raison d’un titre par ligne. Sélectionnez si vous désirez la version actuelle avec toutes les anciennes versions, avec les lignes de l’historique de la page, ou simplement la page actuelle avec des informations sur la dernière modification.\n\nDans ce dernier cas vous pouvez aussi utiliser un lien, tel que [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] pour la page [[{{MediaWiki:Mainpage}}]].",
        "lastmodifiedatby": "Cette page a été modifiée pour la dernière fois le $1 à $2 par $3.",
        "othercontribs": "Basé sur le travail de $1.",
        "others": "autres",
-       "siteusers": "{{PLURAL:$2|l'utilisateur|les utilisateurs}} $1 de {{SITENAME}}",
+       "siteusers": "{{PLURAL:$2|{{GENDER:$1|l’utilisateur|l’utilisatrice}}|{{Gender:$1|les utilisateurs|les utilisatrices}}}} $1 de {{SITENAME}}",
        "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.",
        "version-libraries-license": "Licence",
        "version-libraries-description": "Description",
        "version-libraries-authors": "Auteurs",
-       "redirect": "Redirigé par ID de fichier, utilisateur, page, révision ou journal",
+       "redirect": "Rediriger par ID de fichier, utilisateur, page, révision ou journal",
        "redirect-legend": "Rediriger vers une page ou un fichier",
        "redirect-summary": "Cette page spéciale redirige vers un fichier (nom de fichier fourni), une page (ID de révision ou de page fourni), une page d’utilisateur (identifiant numérique de l’utilisateur fourni), ou une entrée de journal (ID du journal fourni). Utilisation : [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], ou [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Valider",
index bce3e94..2a4e4a0 100644 (file)
        "right-blockemail": "Cead cleachdaiche a bhacadh o chur phost-d",
        "right-hideuser": "Cead ainm-chleachdaiche a bhacadh 's fhalach on t-sealladh phoblach",
        "right-ipblock-exempt": "Cead bacaidhean IP, bacaidhean fèin-obrachail 's bacaidhean rainse a leigeil seachad",
-       "right-proxyunbannable": "Cead bacadh fèin-obrachail phrogsaidhean a leigeil seachad",
        "right-unblockself": "Cead bacadh a thoirt uaithe fhèin",
        "right-protect": "Cead leibheilean an dìona atharrachadh 's duilleagan le dìon o bhith mar eas a dheasachadh",
        "right-editprotected": "Cead gus duilleagan le dìon \"{{int:protect-level-sysop}}\" a dheasachadh",
        "filewasdeleted": "Chaidh faidhle air a bheil an t-ainm seo a luchdadh suas roimhe 's a sguabadh às an uairsin.\nBu chòir dhut sùil a thoirt air $1 mur luchdaich thu suas e a-rithist.",
        "filename-bad-prefix": "Tha ainm an fhaidhle a tha thu a' luchdadh suas a' tòiseachadh le <strong>\"$1\"</strong> na tha 'na ainm fhaidhle gun mhìneachadh a chruthaicheas camara digiteach gu fèin-obrachail mar as trice.\nFeuch an tagh thu ainm eile airson an fhaidhle agad a mhìnicheas dè th' ann.",
        "filename-prefix-blacklist": " #<!-- fàg an loidhne seo dìreach mar a tha i --> <pre>\n# Seo an co-chàradh:\n#   * 'Se facal-mìneachaidh a th' anns gach rud on charactar \"#\" gu deireadh na loidhne\n#   * Tha gach loidhne nach eil bàn 'na ro-leasachan airson ainm faidhle àbhaisteach a thèid a thoirt seachad le camara digiteach gu fèin-obrachail\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # cuid a dh'fhònaichean-làimhe\nIMG # coitcheann\nJD # Jenoptik\nMGP # Pentax\nPICT # measgaichte\n #</pre> <!-- fàg an loidhne seo dìreach mar a tha i -->",
-       "upload-success-subj": "Shoirbhich leis an luchdadh suas",
-       "upload-success-msg": "Shoirbhich leis an luchdadh suas agad o [$2]. Seo far a bheil e ri làimh: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Duilgheadas leis an luchdadh suas",
-       "upload-failure-msg": "Thachair duilgheadas leis an luchdadh suas agad o [$2]:\n\n$1",
-       "upload-warning-subj": "Rabhadh luchdaidh suas",
-       "upload-warning-msg": "Thachair duilgheadas leis an luchdadh suas agad o [$2]. 'S urrainn dhut tilleadh gu [[Special:Upload/stash/$1|foirm an luchdaidh suas]] gus an duilgheadas seo a chàradh.",
        "upload-proto-error": "Pròtacal nach eil mar bu chòir",
        "upload-proto-error-text": "Iarraidh an luchdadh suas cèin URLan a thòisicheas le <code>http://</code> no <code>ftp://</code>.",
        "upload-file-error": "Mearachd inntearnail",
        "booksources": "Tùsan a tha 'nan leabhraichean",
        "booksources-search-legend": "Lorg tùsan a tha 'nan leabhraichean",
        "booksources-isbn": "ISBN:",
+       "booksources-search": "Lorg",
        "booksources-text": "Chì thu liosta dhe cheanglaichean gu làraichean eile a reiceas leabhraichean ùra 's cleachdte gu h-ìosal 's ma dh'fhaoidte gum faigh thu barrachd fiosrachaidh orra mu leabhraichean a tha thu a' sireadh:",
        "booksources-invalid-isbn": "Tha coltas mì-dhligheach air an ISBN a chaidh a thoirt seachad; dearbhaich gun deach lethbhreac a dhèanamh dheth on tùs gun mhearachd.",
        "specialloguserlabel": "Cò rinn e:",
        "wlheader-showupdated": "Tha clò <strong>trom</strong> air duilleagan a chaidh atharrachadh on turas mu dheireadh a thadhail thu orra.",
        "wlnote": "Chì thu gu h-ìosal {{PLURAL:$1|a' $1 mhùthadh|an $1 mhùthadh|na $1 mùthaidhean|am $1 mùthadh}} mu dheireadh san {{PLURAL:$2|$2 uair a thìde|$2 uair a thìde|$2 uairean a thìde|$2 uair a thìde}} mu dheireadh, mar a bha e $3, $4.",
        "wlshowlast": "Seall na $1 uairean a thìde mu dheireadh $2 làithean mu dheireadh",
-       "watchlistall2": "na h-uile",
        "watchlist-options": "Roghainnean mo chlàir-faire",
        "watching": "'Ga chur air a' chlàr-fhaire...",
        "unwatching": "A' toirt far a' chlàir-fhaire...",
        "contributions": "Obair a' chleachdaiche",
        "contributions-title": "Obair a rinn $1",
        "mycontris": "M' obair",
+       "anoncontribs": "M’ obair",
        "contribsub2": "Airson $1 ($2)",
        "contributions-userdoesnotexist": "Cha deach an cunntas cleachdaiche \"$1\" a chlàradh.",
        "nocontribs": "Cha deach atharrachadh a lorg a dh'fhreagradh ris na cuspairean-luirg seo.",
        "javascripttest-pagetext-frameworks": "Feuch an tagh thu aon dhe na frameworks deuchainn seo: $1",
        "javascripttest-pagetext-skins": "Tagh craiceann airson ruith nan deuchainnean:",
        "javascripttest-qunit-intro": "Faic [$1 docamaideadh nan deuchainnean] air mediawiki.org.",
-       "tooltip-pt-userpage": "An duilleag phearsanta agad",
+       "tooltip-pt-userpage": "An duilleag phearsanta {{GENDER:|agad}}",
        "tooltip-pt-anonuserpage": "Duilleag a' chleachdaiche airson an t-seòlaidh IP leis a bheil thu a' deasachadh",
-       "tooltip-pt-mytalk": "Duilleag do dheasbaireachd",
+       "tooltip-pt-mytalk": "An duilleag deasbaireachd {{GENDER:|agad}}",
        "tooltip-pt-anontalk": "deasbaireachd mu dheasachaidhean on t-seòladh IP seo",
-       "tooltip-pt-preferences": "Do roghainnean",
+       "tooltip-pt-preferences": "Na roghainnean {{GENDER:|agad}}",
        "tooltip-pt-watchlist": "Seo liosta nan duilleagan a tha thu a' cumail sùil orra a thaobh mhùthaidhean a nithear orra",
-       "tooltip-pt-mycontris": "Liosta na h-obrach a rinn thu",
+       "tooltip-pt-mycontris": "Liosta na h-obrach a rinn {{GENDER:|thu}}",
        "tooltip-pt-login": "Mholamaidh dhut logadh a-steach; ge-tà, cha leig thu leas seo a dhèanamh",
        "tooltip-pt-logout": "Log a-mach",
        "tooltip-pt-createaccount": "Ged nach eil e riatanach, tha e nas fhearr ma chruthaicheas tu cunntas agus ma logas tu air.",
        "tooltip-t-recentchangeslinked": "Mùthaidhean a rinneadh o chionn ghoirid air duilleagan a tha ceangal ann thuca on duilleag seo",
        "tooltip-feed-rss": "Inbhir RSS airson na duilleige seo",
        "tooltip-feed-atom": "Inbhir Atom airson na duilleige seo",
-       "tooltip-t-contributions": "Seall liosta na h-obrach a rinn an cleachdaiche seo",
+       "tooltip-t-contributions": "Seall liosta na h-obrach a rinn {{GENDER:$1|an cleachdaiche}} seo",
        "tooltip-t-emailuser": "Cuir post-dealain dhan chleachdaiche seo",
        "tooltip-t-upload": "Luchdaich suas faidhle",
        "tooltip-t-specialpages": "Liosta de gach duilleag shònraichte",
index 2449c72..e7b1da7 100644 (file)
        "resettokens-watchlist-token": "Pase para a fonte de novas (Atom/RSS) web dos [[Special:Watchlist|cambios feitos nas páxinas da súa lista de vixilancia]]",
        "resettokens-done": "Restablecéronse os pases.",
        "resettokens-resetbutton": "Restablecer os pases seleccionados",
-       "bold_sample": "Texto en negra",
-       "bold_tip": "Texto en negra",
+       "bold_sample": "Texto en letra grosa",
+       "bold_tip": "Texto en letra grosa",
        "italic_sample": "Texto en cursiva",
        "italic_tip": "Texto en cursiva",
        "link_sample": "Título da ligazón",
        "filename-thumb-name": "Semella que este título é dunha miniatura. Non cargue miniaturas no wiki do que as sacou. Se non é así, corrixa o nome do ficheiro para que sexa máis significativo e non teña o prefixo das miniaturas.",
        "filename-bad-prefix": "O nome do ficheiro que está cargando comeza con '''\"$1\"''', que é un típico nome non descritivo asignado automaticamente polas cámaras dixitais.\nPor favor, escolla un nome máis descritivo para o seu ficheiro.",
        "filename-prefix-blacklist": " #<!-- Deixe esta liña tal e como está --> <pre>\n# A sintaxe é a seguinte:\n#   * Todo o que vaia despois dun carácter \"#\" ata o final da liña é un comentario\n#   * Toda liña que non estea en branco é un prefixo para os nomes típicos dos ficheiros asignados automaticamente polas cámaras dixitais\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # algúns teléfonos móbiles\nIMG # xenérico\nJD # Jenoptik\nMGP # Pentax\nPICT # varios\n #</pre> <!-- Deixe esta liña tal e como está -->",
-       "upload-success-subj": "A carga realizouse correctamente",
-       "upload-success-msg": "A súa carga desde [$2] rematou correctamente e está dispoñible aquí: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problema ao cargar",
-       "upload-failure-msg": "Houbo un problema durante a carga desde [$2]:\n\n$1",
-       "upload-warning-subj": "Advertencia ao cargar",
-       "upload-warning-msg": "Houbo un problema durante a carga desde [$2]. Pode volver ao [[Special:Upload/stash/$1|formulario de subidas]] para corrixilo.",
        "upload-proto-error": "Protocolo incorrecto",
        "upload-proto-error-text": "A carga remota require enderezos URL que comecen por <code>http://</code> ou <code>ftp://</code>.",
        "upload-file-error": "Erro interno",
        "wlheader-showupdated": "As páxinas que cambiaron desde a súa última visita móstranse en '''negra'''.",
        "wlnote": "A continuación {{PLURAL:$1|está a última modificación|están as últimas <strong>$1</strong> modificacións}} {{PLURAL:$2|na última hora|nas últimas <strong>$2</strong> horas}} ata o $3 ás $4.",
        "wlshowlast": "Mostrar as últimas $1 horas e os últimos $2 días",
-       "watchlistall2": "todo",
        "watchlist-hide": "Agochar",
        "watchlist-submit": "Mostrar",
        "wlshowtime": "Periodo de tempo a amosar:",
        "lockedbyandtime": "(por $1 o $2 ás $3)",
        "move-page": "Mover \"$1\"",
        "move-page-legend": "Mover unha páxina",
-       "movepagetext": "Ao usar o formulario inferior vai cambiar o nome da páxina, movendo todo o seu historial ao novo nome.\nO título vello vaise converter nunha páxina de redirección ao novo título.\nPode actualizar automaticamente as redireccións que van dar ao título orixinal.\nSe escolle non facelo, asegúrese de verificar que non hai redireccións [[Special:DoubleRedirects|dobres]] ou [[Special:BrokenRedirects|crebadas]].\nVostede é responsable de asegurarse de que as ligazóns continúan a apuntar cara a onde se supón que deberían.\n\nTeña en conta que a páxina '''non''' será trasladada se xa existe unha páxina co novo título, a menos que esta última sexa unha redirección e non teña historial de edicións.\nIsto significa que pode volver renomear unha páxina ao seu nome antigo se comete un erro, e que non pode sobrescribir unha páxina que xa existe.\n\n'''Atención!'''\nEste cambio nunha páxina popular pode ser drástico e inesperado;\npor favor, asegúrese de que entende as consecuencias disto antes de proseguir.",
-       "movepagetext-noredirectfixer": "Ao usar o formulario inferior vai cambiar o nome da páxina, movendo todo o seu historial ao novo nome.\nO título vello vaise converter nunha páxina de redirección ao novo título.\nAsegúrese de verificar que non hai redireccións [[Special:DoubleRedirects|dobres]] ou [[Special:BrokenRedirects|crebadas]].\nVostede é responsable de asegurarse de que as ligazóns continúan a apuntar cara a onde se supón que deberían.\n\nTeña en conta que a páxina '''non''' será trasladada se xa existe unha páxina co novo título, a menos que esta última sexa unha redirección e non teña historial de edicións.\nIsto significa que pode volver renomear unha páxina ao seu nome antigo se comete un erro, e que non pode sobrescribir unha páxina que xa existe.\n\n'''Atención!'''\nEste cambio nunha páxina popular pode ser drástico e inesperado;\npor favor, asegúrese de que entende as consecuencias disto antes de proseguir.",
+       "movepagetext": "Ao usar o formulario inferior vai cambiar o nome da páxina, movendo todo o seu historial ao novo nome.\nO título vello vaise converter nunha páxina de redirección ao novo título.\nPode actualizar automaticamente as redireccións que van dar ao título orixinal.\nSe escolle non facelo, asegúrese de verificar que non hai redireccións [[Special:DoubleRedirects|dobres]] ou [[Special:BrokenRedirects|crebadas]].\nVostede é responsable de asegurarse de que as ligazóns continúan a apuntar cara a onde se supón que deberían.\n\nTeña en conta que a páxina <strong>non</strong> será trasladada se xa existe unha páxina co novo título, a menos que esta última sexa unha redirección e non teña historial de edicións.\nIsto significa que pode volver renomear unha páxina ao seu nome antigo se comete un erro, e que non pode sobrescribir unha páxina que xa existe.\n\n<strong>Nota:</strong>\nEste cambio nunha páxina popular pode ser drástico e inesperado;\npor favor, asegúrese de que entende as consecuencias disto antes de proseguir.",
+       "movepagetext-noredirectfixer": "Ao usar o formulario inferior vai cambiar o nome da páxina, movendo todo o seu historial ao novo nome.\nO título vello vaise converter nunha páxina de redirección ao novo título.\nAsegúrese de verificar que non hai redireccións [[Special:DoubleRedirects|dobres]] ou [[Special:BrokenRedirects|crebadas]].\nVostede é responsable de asegurarse de que as ligazóns continúan a apuntar cara a onde se supón que deberían.\n\nTeña en conta que a páxina <strong>non</strong> será trasladada se xa existe unha páxina co novo título, a menos que esta última sexa unha redirección e non teña historial de edicións.\nIsto significa que pode volver renomear unha páxina ao seu nome antigo se comete un erro, e que non pode sobrescribir unha páxina que xa existe.\n\n<strong>Nota:</strong>\nEste cambio nunha páxina popular pode ser drástico e inesperado;\npor favor, asegúrese de que entende as consecuencias disto antes de proseguir.",
        "movepagetalktext": "Se marca esta caixa, a páxina de conversa asociada moverase automaticamente ó título novo a menos que xa exista unha páxina de conversa non baleira alí.\n\nNeste caso, deberá trasladar ou fusionar manualmente a páxina se así o desexa.",
        "moveuserpage-warning": "'''Aviso:''' Está a piques de mover unha páxina de usuario. Por favor, teña en conta que só se trasladará a páxina e que o usuario '''non''' será renomeado.",
        "movecategorypage-warning": "'''Aviso:''' Está a piques de mover unha páxina de categoría. Por favor, teña en conta que só se trasladará a páxina e que as páxinas presentes na categoría vella '''non''' serán recategorizadas na categoría nova.",
        "movenosubpage": "Esta páxina non ten subpáxinas.",
        "movereason": "Motivo:",
        "revertmove": "reverter",
-       "delete_and_move_text": "== Cómpre borrar ==\nA páxina de destino, chamada \"[[:$1]]\", xa existe.\nQuérea borrar para deixar sitio para facer o traslado?",
+       "delete_and_move_text": "A páxina de destino, chamada \"[[:$1]]\", xa existe.\nQuérea borrar para deixar sitio para facer o traslado?",
        "delete_and_move_confirm": "Si, borrar a páxina",
        "delete_and_move_reason": "Eliminado para facer sitio para mover \"[[$1]]\"",
        "selfmove": "O título de orixe e o de destino é o mesmo; non se pode mover unha páxina sobre si mesma.",
        "move-leave-redirect": "Deixar unha redirección detrás",
        "protectedpagemovewarning": "'''Aviso:''' Esta páxina foi protexida de xeito que só os usuarios con privilexios de administrador a poidan mover.\nVelaquí está a última entrada no rexistro, por se quere consultala:",
        "semiprotectedpagemovewarning": "'''Nota:''' Esta páxina foi protexida de xeito que só os usuarios rexistrados a poidan mover.\nVelaquí está a última entrada no rexistro, por se quere consultala:",
-       "move-over-sharedrepo": "== O ficheiro xa existe ==\n\"[[:$1]]\" xa existe nun repositorio compartido. Ao mover un ficheiro a este título sobrescribirase o ficheiro compartido.",
+       "move-over-sharedrepo": "\"[[:$1]]\" xa existe nun repositorio compartido. Ao mover un ficheiro a este título sobrescribirase o ficheiro compartido.",
        "file-exists-sharedrepo": "O nome que elixiu para o ficheiro xa está en uso nun repositorio compartido.\nPor favor, escolla outro nome.",
        "export": "Exportar páxinas",
        "exporttext": "Pode exportar o texto e o historial de edición dunha páxina calquera ou un conxunto de páxinas agrupadas nalgún ficheiro XML. Este pódese importar noutro wiki que utilice o programa MediaWiki mediante a [[Special:Import|páxina de importación]].\n\nPara exportar páxinas, insira os títulos na caixa de texto que está máis abaixo, poñendo un título por liña, e se quere seleccione a versión actual e todas as versións vellas, coas liñas do historial da páxina, ou só a versión actual con información sobre a última edición.\n\nNo último caso, pode usar tamén unha ligazón, por exemplo [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]], para a páxina \"[[{{MediaWiki:Mainpage}}]]\".",
index e4f19df..04b85f1 100644 (file)
        "filewasdeleted": "E Datei mit däm Name isch scho mol uffeglade wore un isch in dr Zwischezyt wider glescht wore. Bitte prief zerscht dr Yytrag im $1, voreb Du die Datei wirkli spycheresch.",
        "filename-thumb-name": "Das gseht uus wi’ne Titel für’nes Vorschoubildli. Bitte lad kener Vorschoubildli zrügg ufen uf ds glyche Wiki. We’s nid eso isch, de tue bitte der Dateinamen eso ändere, das er ussagchräftiger isch u nid ds Präfix vomene Vorschoubildli het.",
        "filename-bad-prefix": "Dr Dateiname fangt mit '''„$1“''' aa. Des isch isch normalerwyys dr Dateiname, wu vun ere Digitalkamera vorgee wird un d Datei nit bschryybt.\nBitte gib dr Datei e Name, wu dr Inhalt besser bschryybt.",
-       "upload-success-subj": "Erfolgryych uffegelade",
-       "upload-success-msg": "Dyyni vu [$2] uffeglade Datei isch jetz do verfiegbar: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Fähler bim Uffelade",
-       "upload-failure-msg": "S het e Probläm gee mit Dyyre vu [$2] uffegladene Datei:\n\n$1",
-       "upload-warning-subj": "Warnig bim Uffelade",
-       "upload-warning-msg": "S het e Probläm gee bim Uffelade vu [$2]. Du chasch zruckgoh zum [[Special:Upload/stash/$1|Ufffeladformular]] go des Probläm lese.",
        "upload-proto-error": "Falschs Protokoll",
        "upload-proto-error-text": "D URL muess mit <code>http://</code> oder <code>ftp://</code> aafange.",
        "upload-file-error": "Interne Fähler",
        "wlheader-showupdated": "Syte, wo syt em letste Bsuech hei g’änderet, sy <strong>fett</strong> dargstellt.",
        "wlnote": "Unde {{PLURAL:$1|steit di letsti Änderig|stöh di letste <strong>$1</strong> Änderigen}} us {{PLURAL:$2|der letste Stund|de letste <strong>$2</strong> Stunde}}. Stand: $3, $4 Uhr.",
        "wlshowlast": "Zeig di letste $1 Stunden und $2 Täg",
-       "watchlistall2": "alli",
        "watchlist-options": "Aazeigoptione",
        "watching": "Am beobachte …",
        "unwatching": "Nümm am beobachten …",
index 5112bf8..5f43e1e 100644 (file)
        "watchthisupload": "આ પાનાને ધ્યાનમાં રાખો",
        "filewasdeleted": "આ નામે ફાઇલ ચડાવાઇ હતી અને પછે થી ભૂંસાડી દેવાઇ હતી.\nફરીથી ફાઇલ ચડાવતા પહેલા $1 ચકાસો.",
        "filename-bad-prefix": "તમે ચડાવેલી ફાઇલનું નામ '''\"$1\"''' થી શરૂ થાય છે, જેમાં ફાઇલની માહિતી વિષે વર્ણન નથી. લાગે ચે તે ડિજીટલ કેમેરા દ્વારા સામાન્ય રીતે સ્વયંચાલિત રીતે અપાતું છબીનું નામ છે.\nકૃપયા તમે ચડાવેલી ફાઇલ માટે એક વર્ણનાત્મક નામ આપો.",
-       "upload-success-subj": "ફાઇલ ચડાવ સફળ",
-       "upload-success-msg": "[$2]થી તમારુઁ ફાઇલ ચડાવ સફળ રહ્યો. તે અહીઁ ઉપલબ્ધ છે. : [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "ફાઇલ ચઢાવ મુશ્કેલી",
-       "upload-failure-msg": "તમરા ફાઇલ ચડાવવામાં [$2]થી અડચણ થઇ:\n\n$1",
-       "upload-warning-subj": "ફાઇલ ચઢાવ ચેતવણી",
-       "upload-warning-msg": "[$2]થી કરાયેલ તમારા ચડાવા માં તકલીફ હતી. તમે [[Special:Upload/stash/$1|upload form]]  પર ફરી જઇ આ ત્રુટિ હટાવી ફરી ફાઇલ ચડાવો",
        "upload-proto-error": "ખોટો શિષ્ટાચાર",
        "upload-proto-error-text": "દુરના ફાઇલ ચઢાવના  URL ની શરૂઆત <code>http://</code> કે <code>ftp://</code>થી થવી જોઇએ.",
        "upload-file-error": "આંતરિક ત્રુટિ",
index 50c52e3..23edb04 100644 (file)
        "filename-thumb-name": "נראה שכותרת הקובץ היא כותרת של תמונה מוקטנת (ממוזערת). יש להימנע מהעלאת תמונות ממוזערות בחזרה לאותו אתר ויקי. אם זו אינה תמונה ממוזערת, יש לתקן את שם הקובץ כך שיהיה משמעותי יותר ושלא יכלול את הקידומת של תמונה ממוזערת.",
        "filename-bad-prefix": "שם הקובץ שאתם מעלים מתחיל ב־<strong>\"$1\"</strong>, שהוא שם שאינו מתאר את הקובץ ובדרך כלל מוקצה אוטומטית על־ידי מצלמות דיגיטליות.\nיש לבחור שם מתאים יותר לקובץ, שיתאר את תכניו.",
        "filename-prefix-blacklist": " #<!-- נא להשאיר שורה זו בדיוק כפי שהיא --> <pre>\n# התחביר הוא כדלקמן:\n#   * כל דבר מתו \"#\" לסוף השורה הוא הערה\n#   * כל שורה לא ריקה היא קידומת לשמות קבצים טיפוסיים שמצלמות דיגיטליות נותנות אוטומטית\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # מספר טלפונים סלולריים\nIMG # כללי\nJD # Jenoptik\nMGP # Pentax\nPICT # שונות\n #</pre> <!-- נא להשאיר שורה זו בדיוק כפי שהיא -->",
-       "upload-success-subj": "ההעלאה הושלמה בהצלחה",
-       "upload-success-msg": "ההעלאה מהכתובת [$2] הושלמה בהצלחה. הקובץ שהעליתם זמין כאן: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "בעיה בהעלאה",
-       "upload-failure-msg": "הייתה בעיה עם הקובץ שהעלית מהכתובת [$2]:\n\n$1",
-       "upload-warning-subj": "אזהרה בהעלאה",
-       "upload-warning-msg": "הייתה בעיה עם הקובץ שהעליתם מהכתובת [$2]. באפשרותכם לחזור ל[[Special:Upload/stash/$1|טופס ההעלאה]] כדי לתקן בעיה זו.",
        "upload-proto-error": "פרוטוקול שגוי",
        "upload-proto-error-text": "בהעלאה מרוחקת, יש להשתמש בכתובות URL המתחילות עם <code>http://</code> או <code>ftp://</code>.",
        "upload-file-error": "שגיאה פנימית",
        "upload-too-many-redirects": "הכתובת מכילה הפניות רבות מדי",
        "upload-http-error": "התרחשה שגיאת HTTP‏: $1",
        "upload-copy-upload-invalid-domain": "העלאת קבצים משרת זה אינה אפשרית.",
+       "upload-foreign-cant-upload": "בוויקי הזה לא מוגדר איך להעלות קבצים למאגר קבצים זר.",
        "upload-dialog-title": "העלאת קובץ",
        "upload-dialog-button-cancel": "ביטול",
        "upload-dialog-button-done": "בוצע",
        "wlheader-showupdated": "דפים שהשתנו מאז ביקורך האחרון בהם מוצגים ב'''הדגשה'''.",
        "wlnote": "להלן {{PLURAL:$1|השינוי האחרון|<strong>$1</strong> השינויים האחרונים}} {{PLURAL:$2|בשעה האחרונה|בשעתיים האחרונות|ב־<strong>$2</strong> השעות האחרונות}}, עד $4, $3.",
        "wlshowlast": "הצגת $1 שעות אחרונות $2 ימים אחרונים",
-       "watchlistall2": "הכול",
        "watchlist-hide": "הסתרה",
        "watchlist-submit": "הצגה",
        "wlshowtime": "תקופת זמן לצפייה:",
        "lockedbyandtime": "(על־ידי $1 ב־$3, $2)",
        "move-page": "העברת $1",
        "move-page-legend": "העברת דף",
-       "movepagetext": "שימוש בטופס שלהלן ישנה את שמו של דף, ויעביר את כל ההיסטוריה שלו לשם חדש.\nהשם הישן יהפוך לדף הפניה אל הדף עם השם החדש.\nבאפשרותכם לעדכן אוטומטית דפי הפניה לכותרת המקורית.\nאם תבחרו לא לעשות זאת, אנא ודאו שאין [[Special:DoubleRedirects|הפניות כפולות]] או [[Special:BrokenRedirects|שבורות]].\nאתם אחראים לוודא שכל הקישורים ימשיכו להצביע למקום שאליו הם אמורים להצביע.\n\nשימו לב: הדף '''לא''' יועבר אם כבר יש דף תחת השם החדש, אלא אם הדף השני הוא הפניה ואין לו היסטוריית עריכות קודמות.\nפירוש הדבר שאפשר לשנות חזרה את שמו של דף לשם המקורי אם נעשתה טעות, ושלא ניתן לדרוס דף קיים.\n\n'''אזהרה!'''\nשינוי זה עשוי להיות שינוי דרסטי ובלתי צפוי לדף פופולרי;\nאנא ודאו שאתם מבינים את השלכות המעשה לפני שאתם ממשיכים.",
-       "movepagetext-noredirectfixer": "שימוש בטופס שלהלן ישנה את שמו של דף, ויעביר את כל ההיסטוריה שלו לשם חדש.\nהשם הישן יהפוך לדף הפניה אל הדף עם השם החדש.\nאנא ודאו שאין [[Special:DoubleRedirects|הפניות כפולות]] או [[Special:BrokenRedirects|שבורות]].\nאתם אחראים לוודא שכל הקישורים ימשיכו להצביע למקום שאליו הם אמורים להצביע.\n\nשימו לב: הדף '''לא''' יועבר אם כבר יש דף תחת השם החדש, אלא אם הדף הזה הוא הפניה ואין לו היסטוריית עריכות קודמות.\nפירוש הדבר שאפשר לשנות חזרה את שמו של דף לשם המקורי אם נעשתה טעות, ושלא ניתן לדרוס דף קיים.\n\n'''אזהרה!'''\nשינוי זה עשוי להיות שינוי דרסטי ובלתי צפוי לדף פופולרי;\nאנא ודאו שאתם מבינים את השלכות המעשה לפני שאתם ממשיכים.",
+       "movepagetext": "שימוש בטופס שלהלן ישנה את שמו של דף, ויעביר את כל ההיסטוריה שלו לשם חדש.\nהשם הישן יהפוך לדף הפניה אל הדף עם השם החדש.\nבאפשרותכם לעדכן אוטומטית דפי הפניה לכותרת המקורית.\nאם תבחרו לא לעשות זאת, אנא ודאו שאין [[Special:DoubleRedirects|הפניות כפולות]] או [[Special:BrokenRedirects|שבורות]].\nאתם אחראים לוודא שכל הקישורים ימשיכו להצביע למקום שאליו הם אמורים להצביע.\n\nשימו לב: הדף <strong>לא</strong> יועבר אם כבר יש דף תחת השם החדש, אלא אם הדף השני הוא הפניה ואין לו היסטוריית עריכות קודמות.\nפירוש הדבר שאפשר לשנות חזרה את שמו של דף לשם המקורי אם נעשתה טעות, ושלא ניתן לדרוס דף קיים.\n\n<strong>לתשומת לבכם:</strong>\nשינוי זה עשוי להיות שינוי דרסטי ובלתי צפוי לדף פופולרי;\nאנא ודאו שאתם מבינים את השלכות המעשה לפני שאתם ממשיכים.",
+       "movepagetext-noredirectfixer": "שימוש בטופס שלהלן ישנה את שמו של דף, ויעביר את כל ההיסטוריה שלו לשם חדש.\nהשם הישן יהפוך לדף הפניה אל הדף עם השם החדש.\nאנא ודאו שאין [[Special:DoubleRedirects|הפניות כפולות]] או [[Special:BrokenRedirects|שבורות]].\nאתם אחראים לוודא שכל הקישורים ימשיכו להצביע למקום שאליו הם אמורים להצביע.\n\nשימו לב: הדף <strong>לא</strong> יועבר אם כבר יש דף תחת השם החדש, אלא אם הדף הזה הוא הפניה ואין לו היסטוריית עריכות קודמות.\nפירוש הדבר שאפשר לשנות חזרה את שמו של דף לשם המקורי אם נעשתה טעות, ושלא ניתן לדרוס דף קיים.\n\n<strong>לתשומת לבכם:</strong>\nשינוי זה עשוי להיות שינוי דרסטי ובלתי צפוי לדף פופולרי;\nאנא ודאו שאתם מבינים את השלכות המעשה לפני שאתם ממשיכים.",
        "movepagetalktext": "אם התיבה הזאת מסומנת, דף השיחה של דף זה יועבר אוטומטית לכותרת החדשה, אלא אם קיים שם דף שיחה שאינו ריק.\n\nבמקרה הזה, תצטרכו להעביר או לשלב את הדפים באופן ידני, אם תרצו.",
        "moveuserpage-warning": "'''אזהרה:''' אתם עומדים להעביר דף משתמש. שימו לב שרק הדף יועבר וששם המשתמש '''לא''' ישתנה.",
        "movecategorypage-warning": "<strong>אזהרה:</strong> אתם עומדים להעביר דף קטגוריה. שימו לב שרק הדף יועבר ושכל הדפים בקטגוריה הישנה <strong>לא</strong> יסווגו לקטגוריה החדשה.",
        "movenosubpage": "לדף זה אין דפי משנה.",
        "movereason": "סיבה:",
        "revertmove": "החזרה",
-       "delete_and_move_text": "== בקשת מחיקה ==\nדף היעד, \"[[:$1]]\", כבר קיים.\nהאם ברצונך למחוק אותו כדי לאפשר את ההעברה?",
+       "delete_and_move_text": "דף היעד, \"[[:$1]]\", כבר קיים.\nהאם ברצונך למחוק אותו כדי לאפשר את ההעברה?",
        "delete_and_move_confirm": "אישור מחיקת הדף",
        "delete_and_move_reason": "מחיקה כדי לאפשר העברה מהשם \"[[$1]]\"",
        "selfmove": "כותרות המקור והיעד זהות; לא ניתן להעביר דף לעצמו.",
        "move-leave-redirect": "השארת הפניה בדף המקורי",
        "protectedpagemovewarning": "'''אזהרה:''' דף זה מוגן כך שרק מפעילי מערכת יכולים להעביר אותו.\nפעולת היומן האחרונה מוצגת להלן:",
        "semiprotectedpagemovewarning": "'''הערה:''' דף זה מוגן כך שרק משתמשים רשומים יכולים להעביר אותו.\nפעולת היומן האחרונה מוצגת להלן:",
-       "move-over-sharedrepo": "== הקובץ קיים ==\n[[:$1]] כבר קיים כקובץ משותף. העברת הקובץ לכותרת זו תדרוס את הקובץ המשותף.",
+       "move-over-sharedrepo": "[[:$1]] כבר קיים במאגר משותף. העברת הקובץ לכותרת זו תדרוס את הקובץ המשותף.",
        "file-exists-sharedrepo": "קובץ בשם שנבחר כבר קיים כקובץ משותף.\nיש לבחור שם אחר.",
        "export": "ייצוא דפים",
        "exporttext": "באפשרותכם לייצא את התוכן ואת היסטוריית העריכה של דף אחד או של מספר דפים, בתבנית של קובץ XML.\nניתן לייבא את הקובץ למיזם ויקי אחר המשתמש בתוכנת מדיה־ויקי באמצעות [[Special:Import|דף הייבוא]].\n\nכדי לייצא דפים, הקישו את שמותיהם בתיבת הטקסט שלהלן, כל שם בשורה נפרדת, ובחרו האם לייצא גם את הגרסה הנוכחית וגם את היסטוריית השינויים של הדפים, או רק את הגרסה הנוכחית עם מידע על העריכה האחרונה.\n\nבנוסף, ניתן להשתמש בקישור, כגון [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] לדף [[{{MediaWiki:Mainpage}}]] ללא היסטוריית השינויים שלו.",
        "lastmodifiedatby": "דף זה שונה לאחרונה ב־$2, $1 על־ידי $3.",
        "othercontribs": "מבוסס על העבודה של $1.",
        "others": "אחרים",
-       "siteusers": "{{PLURAL:$2|משתמש|משתמשי}} {{SITENAME}} $1",
+       "siteusers": "{{PLURAL:$2|{{GENDER:$1|משתמש}}|משתמשי}} {{SITENAME}} $1",
        "anonusers": "{{PLURAL:$2|משתמש אנונימי|משתמשים אנונימיים}} של {{SITENAME}} $1",
        "creditspage": "קרדיטים בדף",
        "nocredits": "אין קרדיטים זמינים בדף זה.",
        "expand_templates_preview_fail_html": "<em>מכיוון שב{{GRAMMAR:תחילית|{{SITENAME}}}} מופעלת הצגת HTML גולמית ואירע אבדן מידע כניסה, התצוגה המקדימה מוסתרת, וזאת כאמצעי זהירות מפני התקפות JavaScript.</em>\n\n<strong>אם זה ניסיון תקין להציג תצוגה מקדימה, יש לנסות שוב.</strong>\nאם זה עדיין לא עובד, יש לנסות [[Special:UserLogout|לצאת מהחשבון]] ולהיכנס שוב.",
        "expand_templates_preview_fail_html_anon": "<em>מכיוון שב{{GRAMMAR:תחילית|{{SITENAME}}}} מופעלת הצגת HTML גולמית ולא נכנסת לחשבון, התצוגה המקדימה מוסתרת, וזאת כאמצעי זהירות מפני התקפות JavaScript.</em>\n\n<strong>אם זה ניסיון תקין להציג תצוגה מקדימה, יש [[Special:UserLogin|להיכנס לחשבון]] ולנסות שוב.</strong>",
        "expand_templates_input_missing": "יש לכתוב טקסט (לפחות טקסט קצר).",
-       "pagelanguage": "×\91×\95רר שפת הדף",
+       "pagelanguage": "ש×\99× ×\95×\99 שפת הדף",
        "pagelang-name": "דף",
        "pagelang-language": "שפה",
        "pagelang-use-default": "להשתמש בשפה הרגילה",
        "action-pagelang": "לשנות את שפת הדף",
        "log-name-pagelang": "יומן שינוי שפה",
        "log-description-pagelang": "זהו יומן של שינויים בשפות של הדפים.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ש×\99× ×\94|ש×\99נת×\94}} ×\90ת ×©×¤×ª ×\94×\93×£ $3 מ$4 ל$5.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ש×\99× ×\94|ש×\99נת×\94}} ×\90ת ×\94שפ×\94 ×©×\9c $3 מ$4 ל$5.",
        "default-skin-not-found": "אופס! עיצוב ברירת המחדל עבור אתר הוויקי שלכם, שמוגדר ב־<code dir=\"ltr\">$wgDefaultSkin</code> כ־<code>$1</code>, אינו זמין.\n\nנראה שההתקנה שלכם כוללת את {{PLURAL:$4|העיצוב|העיצובים}} הבאים. ראו מידע בדף [https://www.mediawiki.org/wiki/Manual:Skin_configuration \"הגדרת עיצובים\" במדריך] על האפשרות להפעיל {{PLURAL:$4|אותו|אותם ולבחור את עיצוב ברירת המחדל}}.\n\n$2\n\n; אם כרגע התקנתם את מדיה־ויקי:\n: נראה שזו התקנה מ־git, או ישירות מקוד המקור בשיטה אחרת כלשהי. במקרה הזה, בעיה זו צפויה. נסו להתקין כמה עיצובים מ[https://www.mediawiki.org/wiki/Category:All_skins ספריית העיצובים של mediawiki.org], על־ידי:\n:* הורדת [https://www.mediawiki.org/wiki/Download קובץ ה־tar להתקנה], שכולל מספר עיצובים והרחבות. באפשרותכם להעתיק ולהדביק מתוכו את תיקיית ה‏‏־<code>skins/</code>.\n:* הורדת קבצי tar של עיצובים ספציפיים מ־[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins שימוש ב־Git כדי להוריד עיצובים].\n: אם תעשו זאת, זה לא אמור להפריע ל‏‏מאגר ה־git שלכם אם אתם מפתחים של מדיה־ויקי.\n\n; אם כרגע שדרגתם את מדיה־ויקי:\n: מדיה־ויקי 1.24 וגרסאות חדשות יותר כבר לא מפעילות עיצובים מותקנים באופן אוטומטי (ראו [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery \"גילוי אוטומטי של עיצובים\" במדריך]). תוכלו להעתיק את {{PLURAL:$5|השורה הבאה|השורות הבאות}} לתוך הקובץ <code>LocalSettings.php</code> כדי להפעיל את {{PLURAL:$5|העיצוב המותקן|כל העיצובים המותקנים}}.\n\n<pre dir=\"ltr\">$3</pre>\n\n; אם כרגע שיניתם את <code>LocalSettings.php</code>:\n: בדקו שנית האם עשיתם שגיאות הקלדה בשמות העיצובים.",
        "default-skin-not-found-no-skins": "אופס! עיצוב ברירת המחדל עבור אתר הוויקי שלכם, שמוגדר ב־<code dir=\"ltr\">$wgDefaultSkin</code> כ־<code>$1</code>, אינו זמין.\n\nאין לכם עיצובים מותקנים.\n\n; אם כרגע התקנתם או שדרגתם את מדיה־ויקי:\n: נראה שזו התקנה מ־git, או ישירות מקוד המקור בשיטה אחרת כלשהי. במקרה הזה, בעיה זו צפויה. מדיה־ויקי 1.24 וגרסאות חדשות יותר אינן כוללות עיצובים ב־git repository הראשי. נסו להתקין כמה עיצובים מ[https://www.mediawiki.org/wiki/Category:All_skins ספריית העיצובים של mediawiki.org], על־ידי:\n:* הורדת [https://www.mediawiki.org/wiki/Download קובץ ה‏‏־tar להתקנה], שכולל מספר עיצובים והרחבות. באפשרותכם להעתיק ולהדביק מתוכו את תיקיית ה‏‏־<code>skins/</code>.\n:* הורדת קבצי tar של עיצובים ספציפיים מ־[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins שימוש ב־Git כדי להוריד עיצובים].\n: אם תעשו זאת, זה לא אמור להפריע ל‏‏מאגר ה־git שלכם (אם אתם מפתחים של מדיה־ויקי). ראו מידע בדף [https://www.mediawiki.org/wiki/Manual:Skin_configuration \"הגדרת עיצובים\" במדריך] על האפשרות להפעיל עיצובים ולבחור את עיצוב ברירת המחדל.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (מופעל)",
index e396039..8fc539e 100644 (file)
        "pool-servererror": "पूल काउंटर सेवा उपलब्ध नहीं है ($1)।",
        "poolcounter-usage-error": "उपयोग त्रुटि: $1",
        "aboutsite": "{{SITENAME}} के बारे में",
-       "aboutpage": "Project:परिचय",
+       "aboutpage": "परियोजना:परिचय",
        "copyright": "उपलब्ध सामग्री $1 के अधीन है जब तक अलग से उल्लेख ना किया गया हो।",
        "copyrightpage": "{{ns:project}}:कॉपीराइट",
        "currentevents": "हाल की घटनाएँ",
        "filename-thumb-name": "यह एक थंबनेल शीर्षक की तरह लग रहा है। कृपया थंबनेल  वापस विकि पर अपलोड न करें। अन्यथा, कृपया फ़ाइल नाम ठीक करें।",
        "filename-bad-prefix": "आप जो फ़ाइल अपलोड कर रहे हैं उसका नाम '''\"$1\"''' से शुरू होता है, जो डिजिटल कैमेरे द्वारा दिया गया नाम है।\nकृपया इस फ़ाइल के लिये कोई दूसरा अधिक जानकारीयुक्त नाम चुनें।",
        "filename-prefix-blacklist": "#<!-- leave this line exactly as it is --> <pre>\n# रूपरेखा इस प्रकार हैं:\n#   *  \"#\" अक्षर से शुरू होने वाली लाइनें टिप्पणीयाँ हैं।\n#   *हर नई लाइन कैमेरा उत्पादक द्वारा लगाये जाने वाले उपपदों की सूची है।\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # some mobil phones\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- leave this line exactly as it is -->",
-       "upload-success-subj": "अपलोड हो गई",
-       "upload-success-msg": "आपका [$2] से अपलोड असफल रहा। यह [[:{{ns:file}}:$1]] पर उपलब्ध है",
-       "upload-failure-subj": "अपलोड समस्या",
-       "upload-failure-msg": "[$2] से आपके अपलोड में एक समस्या थी:\n\n$1",
-       "upload-warning-subj": "अपलोड चेतावनी",
-       "upload-warning-msg": "आपके [$2] से अपलोड के साथ एक समस्या थी। आप इस समस्या को ठीक करने के लिए [[Special:Upload/stash/$1|अपलोड फ़ॉर्म]] पर लौट सकते हैं।",
        "upload-proto-error": "गलत प्रोटोकॉल",
        "upload-proto-error-text": "रिमोट अपलोड के लिये यू॰आर॰एल का नाम <code>http://</code> या <code>ftp://</code> से शुरू होना आवश्यक है।",
        "upload-file-error": "आतंरिक त्रुटि",
        "log-title-wildcard": "इस पाठ से शुरू होने वाले शीर्षक खोजें",
        "showhideselectedlogentries": "चयनित लॉग प्रविष्टियाँ दिखाएँ/छुपाएँ",
        "log-edit-tags": "चुने गए लॉग प्रविक्तियों एक सम्पादन टैग",
+       "checkbox-select": "चुनें: $1",
+       "checkbox-all": "सभी",
        "allpages": "सभी पृष्ठ",
        "nextpage": "अगला पृष्ठ ($1)",
        "prevpage": "पिछला पृष्ठ ($1)",
        "wlheader-showupdated": "पृष्ठ जो आपके द्वारा देखे जाने के बाद बदले गये हैं '''बोल्ड''' दिखेंगे।",
        "wlnote": "$3 को $4 बजे तक पिछले <strong>$2</strong> {{PLURAL:$2|घंटे|घंटों}} में {{PLURAL:$1|हुआ एक|हुए <strong>$1</strong>}} परिवर्तन निम्न {{PLURAL:$1|है|हैं}}।",
        "wlshowlast": "पिछले $1 घंटे $2 दिन  देखें",
-       "watchlistall2": "सभी",
        "wlshowtime": "अंतिम दिखाएँ:",
        "wlshowhideminor": "छोटा संपादन",
        "wlshowhidebots": "बॉट",
        "contributions": "{{GENDER:$1|सदस्य}} योगदान",
        "contributions-title": "$1 के योगदान",
        "mycontris": "योगदान",
+       "anoncontribs": "योगदान",
        "contribsub2": "{{GENDER:$3|$1}} ($2) के लिये",
        "contributions-userdoesnotexist": "उपयोगकर्ता खाता  \"$1\" पंजीकृत नहीं है।",
        "nocontribs": "इन कसौटियों से मिलनेवाले बदलाव मिले नहीं।",
        "javascripttest-pagetext-frameworks": "कृपया निम्न परीक्षण ढाँचों में से एक चुनें: $1",
        "javascripttest-pagetext-skins": "परीक्षण करने के लिए त्वचा चुनें:",
        "javascripttest-qunit-intro": "mediawiki.org पर [$1 परीक्षण के प्रलेखन] देखें।",
-       "tooltip-pt-userpage": "आपका प्रयोक्ता पृष्ठ",
+       "tooltip-pt-userpage": "{{GENDER:|आपका प्रयोक्ता}} पृष्ठ",
        "tooltip-pt-anonuserpage": "आप जिस आईपी से बदलाव कर रहें हैं उसका सदस्य पान",
-       "tooltip-pt-mytalk": "आपका वार्ता पृष्ठ",
+       "tooltip-pt-mytalk": "{{GENDER:|आपका}} वार्ता पृष्ठ",
        "tooltip-pt-anontalk": "इस आईपी एड्रेससे हुए बदलावों के बारे में वार्ता",
-       "tooltip-pt-preferences": "आपकी वरीयताएँ",
+       "tooltip-pt-preferences": "{{GENDER:|आपकी}} वरीयताएँ",
        "tooltip-pt-watchlist": "आपने ध्यान दिये हुए पन्नोंकी सूची",
        "tooltip-pt-mycontris": "आपके योगदानों की सूची",
        "tooltip-pt-login": "आपको सत्रारम्भ करने के लिए प्रोत्साहित किया जाता है; लेकिन यह अनिवार्य नहीं है",
        "tooltip-t-recentchangeslinked": "यहाँ जुड़े हुए सभी पन्नों में हुए हाल के बदलाव",
        "tooltip-feed-rss": "इस पृष्ठ की आरएसएस फ़ीड",
        "tooltip-feed-atom": "इस पृष्ठ की अणु फ़ीड",
-       "tooltip-t-contributions": "इस सदस्यके योगदानकी सूची देखियें",
+       "tooltip-t-contributions": "इस सदस्य के योगदान की सूची",
        "tooltip-t-emailuser": "इस सदस्य को इमेल भेजें",
        "tooltip-t-info": "इस पृष्ठ के बारे में अधिक जानकारी",
        "tooltip-t-upload": "फ़ाइल अपलोड करें",
index 59428e1..59cc6fb 100644 (file)
                        "Fraxinus",
                        "Srdjan m",
                        "Teoo3",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Vrhnje"
                ]
        },
        "tog-underline": "Podcrtane poveznice",
        "tog-hideminor": "Sakrij manje izmjene u nedavnim promjenama",
        "tog-hidepatrolled": "Sakrij pregledane izmjene u nedavnim promjenama",
        "tog-newpageshidepatrolled": "Sakrij pregledane stranice iz popisa novih stranica",
+       "tog-hidecategorization": "Sakrij kategorizaciju stranica",
        "tog-extendwatchlist": "Proširi popis praćenih stranica tako da prikaže sve promjene, ne samo najnovije",
        "tog-usenewrc": "Grupne promjene po stranici u popisu nedavnih izmjena i popisu praćenih stranica (zahtijeva JavaScript)",
        "tog-numberheadings": "Automatski označi naslove brojevima",
        "tog-watchlisthidebots": "Sakrij uređivanja botova s popisa praćenja",
        "tog-watchlisthideminor": "Sakrij manje promjene s popisa praćenja",
        "tog-watchlisthideliu": "Sakrij uređivanja prijavljenih s popisa praćenja",
+       "tog-watchlistreloadautomatically": "Automatski ponovno pokreni nadzornu listu kad god dođe do promjene filtra (potreban JavaScript)",
        "tog-watchlisthideanons": "Sakrij uređivanja neprijavljenih s popisa praćenja",
        "tog-watchlisthidepatrolled": "Sakrij pregledane izmjene u popisu praćenja",
+       "tog-watchlisthidecategorization": "Sakrij kategorizaciju stranica",
        "tog-ccmeonemails": "Pošalji mi kopiju e-maila kojeg pošaljem drugim suradnicima",
        "tog-diffonly": "Ne prikazuj sadržaj stranice prilikom usporedbe inačica",
        "tog-showhiddencats": "Prikaži skrivene kategorije",
        "october-date": "$1. listopada",
        "november-date": "$1. studenoga",
        "december-date": "$1. prosinca",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Kategorija|Kategorije|Kategorija}}",
        "category_header": "Članci u kategoriji \"$1\"",
        "subcategories": "Potkategorije",
        "pool-timeout": "Istek vremena (''timeout'') čekajući zaključavanje",
        "pool-queuefull": "Red čekanja je pun",
        "pool-errorunknown": "Nepoznata pogrješka",
+       "poolcounter-usage-error": "Greška korištenja: $1",
        "aboutsite": "O projektu {{SITENAME}}",
        "aboutpage": "Project:O_projektu_{{SITENAME}}",
        "copyright": "Sadržaji se koriste u skladu s $1.",
        "delete-hook-aborted": "Brisanje prekinuto softverskim priključkom (hook).\nNema obrazloženja ili poruke o pogrješci.",
        "badtitle": "Loš naslov",
        "badtitletext": "Navedeni naslov stranice nepravilan ili loše formirana interwiki poveznica.",
+       "title-invalid-empty": "Naslov tražene stranice je prazan ili sadrži samo naziv prostora imena.",
+       "title-invalid-utf8": "Traženi naziv stranice koristi nevažeću UTF-8 sekvencu.",
+       "title-invalid-interwiki": "Traženi naziv stranice sadrži interwiki poveznicu koja se ne može koristiti u nazivima.",
+       "title-invalid-talk-namespace": "Traženi naziv stranice odnosi se na stranicu rasprave koja ne može postojati.",
+       "title-invalid-characters": "Traženi naziv stranice sadrži nevažeće znakove: \"$1\"",
        "perfcached": "Sljedeći podaci su iz međuspremnika i možda nisu najsvježiji. Međuspremnik sadrži $1 {{PLURAL:$1|rezultat|rezultata}} pretraživanja.",
        "perfcachedts": "Sljedeći podaci su iz međuspremnika i posljednji puta su ažurirani u $1. Međuspremnik sadrži $4 {{PLURAL:$4|rezultat|rezultata}} pretraživanja.\n\nViše o ovoj [[Wikipedija:Posebne stranice|posebnoj stranici]] na [[Razgovor Wikipedija:Special:{{PAGENAME}}]].",
        "querypage-no-updates": "Osvježavanje ove stranice je trenutačno onemogućeno. Nove promjene neće biti vidljive.",
        "virus-scanfailed": "skeniranje neuspješno (kod $1)",
        "virus-unknownscanner": "nepoznati antivirus:",
        "logouttext": "'''Odjavili ste se.'''\n\nNeke se stranice mogu prikazivati kao da ste još uvijek prijavljeni, sve dok ne očistite međuspremnik svog preglednika.",
+       "cannotlogoutnow-title": "Odjava trenutno nije moguća.",
        "welcomeuser": "Dobrodošli, $1!",
        "welcomecreation-msg": "Vaš je suradnički račun otvoren.\nNe zaboravite prilagoditi Vaše [[Special:Preferences|{{SITENAME}} postavke]].",
        "yourname": "Suradničko ime",
        "remembermypassword": "Zapamti moju lozinku na ovom računalu (najduže $1 {{PLURAL:$1|dan|dana}})",
        "userlogin-remembermypassword": "Zapamti me",
        "userlogin-signwithsecure": "Rabi sigurnu vezu",
+       "cannotloginnow-title": "Prijava trenutno nije moguća.",
        "yourdomainname": "Vaša domena",
        "password-change-forbidden": "Ne možete promjeniti zaporku na ovom projektu.",
        "externaldberror": "Došlo je do pogreške s vanjskom autorizacijom ili Vam nije dopušteno osvježavanje vanjskog suradničkog računa.",
        "createacct-reason": "Razlog",
        "createacct-reason-ph": "Zašto stvarate drugi račun",
        "createacct-submit": "Stvorite svoj suradnički račun",
-       "createacct-another-submit": "Stvori još jedan račun",
+       "createacct-another-submit": "Otvori račun",
        "createacct-benefit-heading": "{{SITENAME}} su stvorili ljudi poput Vas.",
        "createacct-benefit-body1": "{{PLURAL:$1|uređivanje|uređivanja}}",
        "createacct-benefit-body2": "{{PLURAL:$1|stranica|stranice|stranica}}",
        "resetpass_submit": "Postavite lozinku i prijavite se",
        "changepassword-success": "Zaporka je uspješno postavljena!",
        "changepassword-throttled": "Nedavno ste se previše puta pokušali prijaviti.\nMolimo Vas pričekajte $1 prije nego što pokušate ponovno.",
+       "botpasswords-label-create": "Stvori",
+       "botpasswords-label-update": "Ažuriraj",
+       "botpasswords-label-cancel": "Odustani",
+       "botpasswords-label-resetpassword": "Reset lozinke",
+       "botpasswords-insert-failed": "Nije moguće dodavanje imena bota \"$1\". Možda je već dodano?",
        "resetpass_forbidden": "Lozinka ne može biti promijenjena",
        "resetpass-no-info": "Morate biti prijavljeni da biste izravno pristupili ovoj stranici.",
        "resetpass-submit-loggedin": "Promijeni lozinku",
        "passwordreset-emailsentemail": "E-mail podsjetnik zaporke je poslan.",
        "passwordreset-emailsent-capture": "Poslan Vam je podsjetnik kao e-pošta (tekst je prikazan dolje).",
        "passwordreset-emailerror-capture": "Napravljena je e-poruka za ponovno postavljanje zaporke (prikazana ispod), ali njeno slanje suradniku nije uspjelo: $1",
-       "changeemail": "Promijeni e-mail adresu",
+       "changeemail": "Promijeni ili izbriši e-mail adresu",
        "changeemail-header": "Promijeni adresu e-pošte računa",
        "changeemail-no-info": "Morate biti prijavljeni da biste izravno pristupili ovoj stranici.",
        "changeemail-oldemail": "Trenutačna adresa e-pošte:",
        "sig_tip": "Vaš potpis s datumom",
        "hr_tip": "Vodoravna crta (koristiti rijetko)",
        "summary": "Sažetak:",
-       "subject": "Predmet:",
+       "subject": "Tema:",
        "minoredit": "Ovo je manja promjena",
        "watchthis": "Prati ovu stranicu",
        "savearticle": "Sačuvaj stranicu",
        "right-override-export-depth": "Izvezi stranice uključujući i povezane stranice do dubine od 5",
        "right-sendemail": "Slanje e-pošte drugim suradnicima",
        "right-passwordreset": "Vidi poruku e-pošte o ponovnom postavljanju lozinke",
+       "grant-group-email": "Pošalji e-mail",
+       "grant-blockusers": "Blokiraj i odblokiraj korisnike",
+       "grant-createaccount": "Otvori račune",
+       "grant-createeditmovepage": "Stvori, uredi i premjesti stranice",
+       "grant-editmyoptions": "Izmjeni korisničke postavke",
        "grant-highvolume": "Uređivanja velikog opsega",
+       "grant-basic": "Osnovna prava",
+       "grant-viewdeleted": "Prikaz izbrisanih datoteka i stranica",
+       "grant-viewmywatchlist": "Pregled popisa praćenih stranica",
        "newuserlogpage": "Evidencija novih suradnika",
        "newuserlogpagetext": "Ispod je popis nedavno otvorenih suradničkih imena.",
        "rightslog": "Evidencija suradničkih prava",
        "rcshowhidemine-show": "prikaži",
        "rcshowhidemine-hide": "sakrij",
        "rcshowhidecategorization-show": "Prikaži",
+       "rcshowhidecategorization-hide": "Sakrij",
        "rclinks": "Prikaži posljednjih $1 promjena {{PLURAL:$2|prethodni dan|u posljednja $2 dana|u posljednjih $2 dana}}<br />$3",
        "diff": "razl",
        "hist": "pov",
        "newpageletter": "N",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|suradnik|suradnika|suradnika}} prati ovu stranicu]",
-       "rc_categories": "Ograniči na kategorije (odvojene znakom  \"|\")",
-       "rc_categories_any": "Sve",
+       "rc_categories": "Ograniči na kategorije (odvoji sa \"|\")",
+       "rc_categories_any": "Bilo koji od odabranih",
        "rc-change-size-new": "$1 {{PLURAL:$1|bajt|bajta|bajtova}} poslije uređivanja",
        "newsectionsummary": "/* $1 */ novi odlomak",
        "rc-enhanced-expand": "Pokaži detalje (potreban JavaScript)",
        "recentchangeslinked-summary": "Ova posebna stranica pokazuje nedavne promjene na povezanim stranicama (ili stranicama određene kategorije). Stranice koje su na [[Special:Watchlist|Vašem popisu praćenja]] su '''podebljane'''.",
        "recentchangeslinked-page": "Naslov stranice:",
        "recentchangeslinked-to": "Pokaži promjene na stranicama s poveznicom na ovu stranicu",
+       "recentchanges-page-added-to-category": "[[:$1]] dodana u kategoriju",
+       "recentchanges-page-removed-from-category": "[[:$1]] uklonjeno iz kategorije",
        "upload": "Postavi datoteku",
        "uploadbtn": "Postavi datoteku",
        "reuploaddesc": "Vratite se u obrazac za postavljanje.",
        "watchthisupload": "Prati ovu datoteku",
        "filewasdeleted": "Datoteka istog imena već je bila postavljena, a kasnije i obrisana. Trebali bi provjeriti $1 prije nego što ponovno postavite datoteku.",
        "filename-bad-prefix": "Ime datoteke koju snimate počinje s '''\"$1\"''', što je ime koje slikama tipično dodjeljuju digitalni fotoaparati. Molimo izaberite bolje ime (neko koje bolje opisuje sliku nego $1).",
-       "upload-success-subj": "Postavljanje uspješno.",
-       "upload-success-msg": "Vaša datoteka iz [$2] je uspješno postavljena. Dostupna je ovdje: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Greška pri postavljanju",
-       "upload-failure-msg": "Došlo je do problema s Vašim postavljanjem datoteke [$2]:\n\n$1",
-       "upload-warning-subj": "Upozorenje kod postavljanja",
-       "upload-warning-msg": "Došlo je do problema s Vašim postavljanjem datoteke iz [$2]. Možete se vratiti u [[Special:Upload/stash/$1|obrazac za postavljanje]] i ispraviti problem.",
        "upload-proto-error": "Protokol nije valjan",
        "upload-proto-error-text": "Udaljeno snimanje zahtijeva URL-ove koji počinju sa <code>http://</code> ili <code>ftp://</code>.",
        "upload-file-error": "Interna pogrješka",
        "upload-dialog-button-save": "Spremi",
        "upload-dialog-button-upload": "Postavi",
        "upload-form-label-select-file": "Odaberi datoteku",
+       "upload-form-label-infoform-title": "Detalji",
+       "upload-form-label-infoform-name": "Ime",
+       "upload-form-label-infoform-description": "Opis",
+       "upload-form-label-usage-title": "Korištenje",
+       "upload-form-label-usage-filename": "Ime datoteke",
        "foreign-structured-upload-form-label-own-work": "Ovo je moje djelo",
+       "foreign-structured-upload-form-label-infoform-categories": "Kategorije",
+       "foreign-structured-upload-form-label-infoform-date": "Datum",
        "foreign-structured-upload-form-label-not-own-work-local-default": "Možete pokušati [[Special:Upload|postaviti datoteku na projektu {{SITENAME}}]], pod uvjetom da može biti tamo postavljena, sukladno pravilima projekta.",
        "foreign-structured-upload-form-label-own-work-message-shared": "Potvrđujem da posjedujem autorska prava ove datoteke i slažem se da je nepozivo postavljam na Zajednički poslužitelj pod licencijom  [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0], i pristajem na [https://wikimediafoundation.org/wiki/Terms_of_Use Uvjete uporabe].",
        "foreign-structured-upload-form-label-not-own-work-message-shared": "Ako ne posjedujete autorska prava za ovu datoteku, ili je želite objaviti pod drugom licencijom, razmislite o uporabi [https://commons.wikimedia.org/wiki/Special:UploadWizard Čarobnjaka za postavljanje] na Zajedničkom poslužitelju.",
        "foreign-structured-upload-form-label-not-own-work-local-shared": "Možete pokušati [[Special:Upload|postaviti datoteku na projektu {{SITENAME}}]], pod uvjetom da je dopušteno postavljanje ove datoteke, sukladno pravilima projekta.",
+       "foreign-structured-upload-form-3-label-yes": "Da",
        "backend-fail-stream": "Ne mogu prikazati datoteku $1.",
        "backend-fail-backup": "Izrada sigurnosne kopije datoteke \"$1\" nije uspjela.",
        "backend-fail-notexists": "Datoteka $1 ne postoji.",
        "protectedpagesempty": "Nema zaštićenih stranica koje ispunjavaju uvjete koje ste postavili.",
        "protectedpages-page": "Stranica",
        "protectedpages-expiry": "Istječe",
+       "protectedpages-performer": "Zaštita suradnika",
        "protectedpages-params": "Stupanj zaštite",
        "protectedpages-reason": "Razlog",
+       "protectedpages-submit": "Prikaži stranice",
+       "protectedpages-unknown-timestamp": "Nepoznato",
+       "protectedpages-unknown-performer": "Nepoznati korisnik",
        "protectedtitles": "Zaštićeni naslovi",
        "protectedtitlesempty": "Nijedan naslov nije trenutačno zaštićen s tim parametrima.",
+       "protectedtitles-submit": "Prikaži nazive",
        "listusers": "Popis suradnika",
        "listusers-editsonly": "Prikaži samo suradnike s uređivanjem",
        "listusers-creationsort": "Razvrstaj po datumu stvaranja",
        "pager-older-n": "{{PLURAL:$1|starija $1|starije $1|starijih $1}}",
        "suppress": "Nadzor",
        "querypage-disabled": "Ova posebna stranica onemogućena je jer bi usporila funkcioniranje projekta.",
+       "apihelp": "Pomoć za API",
        "booksources": "Pretraživanje po ISBN-u",
        "booksources-search-legend": "Traženje izvora za knjigu",
        "booksources-search": "Traži",
        "logempty": "Nema pronađenih stavki.",
        "log-title-wildcard": "Traži stranice koje počinju s navedenim izrazom",
        "showhideselectedlogentries": "Otkrij/sakrij odabrane evidencije",
+       "checkbox-select": "Odaberite: $1",
+       "checkbox-all": "Sve",
+       "checkbox-none": "Nijedan",
        "allpages": "Sve stranice",
        "nextpage": "Sljedeća stranica ($1)",
        "prevpage": "Prethodna stranica ($1)",
        "activeusers-hidebots": "Sakrij botove",
        "activeusers-hidesysops": "Sakrij administratore",
        "activeusers-noresult": "Niti jedan suradnik nije nađen.",
+       "activeusers-submit": "Prikaz aktivnih sudionika",
        "listgrouprights": "Prava suradničkih skupina",
        "listgrouprights-summary": "Ovo je popis suradničkih skupina određenih na ovoj wiki, s njihovim pripadajućim pravima.\nDodatne informacije o pojedinim pravim se mogu pronaći [[{{MediaWiki:Listgrouprights-helppage}}|ovdje]].",
        "listgrouprights-key": "* <span class=\"listgrouprights-granted\">Dodijeljeno pravo</span>\n* <span class=\"listgrouprights-revoked\">Ukinuto pravo</span>",
        "listgrouprights-removegroup-self": "Ukloni {{PLURAL:$2|skupinu|skupine}} iz vlastitog računa: $1",
        "listgrouprights-addgroup-self-all": "Dodaj sve skupine vlastitom računu",
        "listgrouprights-removegroup-self-all": "Uklonite sve skupine iz vlastitog računa",
+       "listgrouprights-namespaceprotection-header": "Ograničenja prostora imena",
        "listgrouprights-namespaceprotection-namespace": "Imenski prostor",
        "trackingcategories-nodesc": "Opis nije dostupan.",
        "mailnologin": "Nema adrese pošiljatelja",
        "wlheader-showupdated": "Stranice koje su promijenjene od Vašeg posljednjeg posjeta prikazane su '''podebljano'''.",
        "wlnote": "Ovdje {{PLURAL:$1|je posljednja $1 promjena|su posljednje $1 promjene|je posljednjih $1 promjena}} u {{PLURAL:$2|posljednjem <strong>$2</strong> satu|posljednja '''$2''' sata|posljednjih <strong>$2</strong> sati}}, od $3, $4.",
        "wlshowlast": "Prikaži posljednjih $1 sati $2 dana",
-       "watchlistall2": "sve",
        "watchlist-hide": "Sakrij",
        "watchlist-submit": "Prikaži",
        "wlshowtime": "Prikaži posljednjih:",
        "rollback-success": "uklonjeno uređivanje {{GENDER:$1|suradnika|suradnice}} $1\nvraćeno na posljednju inačicu {{GENDER:$2|suradnika|suradnice}} $2.",
        "sessionfailure-title": "Prekid sesije",
        "sessionfailure": "Uočili smo problem s Vašom prijavom. Zadnja naredba nije izvršena kako bi se izbjegla zloupotreba. Molimo Vas da se u pregledniku vratite natrag na prethodnu stranicu, ponovno je učitate i zatim pokušate opet.",
+       "changecontentmodel-legend": "Promjeni model sadržaja",
+       "changecontentmodel-title-label": "Naziv stranice",
+       "changecontentmodel-model-label": "Novi model sadržaja",
+       "changecontentmodel-reason-label": "Razlog:",
+       "changecontentmodel-success-title": "Sadržaj modela je promijenjen",
        "protectlogpage": "Evidencija zaštićivanja",
        "protectlogtext": "Ispod je evidencija zaštićivanja i uklanjanja zaštite pojedinih stranica.\nPogledajte [[Special:ProtectedPages|zaštićene stranice]] za popis trenutačno zaštićenih stranica.",
        "protectedarticle": "članak \"[[$1]]\" je zaštićen",
        "movenotallowedfile": "Nemate ovlasti za premještanje datoteka.",
        "cant-move-user-page": "Nemate dopuštenja za premještanje root suradničkih stranica.",
        "cant-move-to-user-page": "Nemate dopuštenje za premještanje stranice na suradničku stranicu (osim kao podstranicu)",
-       "newtitle": "Na novi naslov",
+       "newtitle": "Novi naziv:",
        "move-watch": "Prati ovu stranicu",
        "movepagebtn": "Premjesti stranicu",
        "pagemovedsub": "Premještanje uspjelo",
        "allmessages-prefix": "Filtriraj prema prefiksu:",
        "allmessages-language": "Jezik:",
        "allmessages-filter-submit": "Idi",
+       "allmessages-filter-translate": "Prevedi",
        "thumbnail-more": "Povećaj",
        "filemissing": "Nedostaje datoteka",
        "thumbnail_error": "Pogreška pri izradbi sličice: $1",
        "javascripttest-pagetext-frameworks": "Molimo izaberite jednu od sljedećih testnih okolina: $1",
        "javascripttest-pagetext-skins": "Izaberite temu (''skin'') za testiranje:",
        "javascripttest-qunit-intro": "Pogledajte [$1 testnu dokumentaciju] na mediawiki.org.",
-       "tooltip-pt-userpage": "Moja suradnička stranica",
+       "tooltip-pt-userpage": "Stranica suradnika {{GENDER:|Your user}}",
        "tooltip-pt-anonuserpage": "Suradnička stranica za IP adresu pod kojom uređujete",
        "tooltip-pt-mytalk": "Moja stranica za razgovor",
        "tooltip-pt-anontalk": "Razgovor o suradnicima s ove IP adrese",
-       "tooltip-pt-preferences": "Moje postavke",
+       "tooltip-pt-preferences": "Vaše postavke",
        "tooltip-pt-watchlist": "Popis stranica koje pratite.",
        "tooltip-pt-mycontris": "Popis mojih doprinosa",
        "tooltip-pt-login": "Predlažemo Vam da se prijavite, ali nije obvezno.",
        "tooltip-t-recentchangeslinked": "Nedavne promjene na stranicama na koje vode ovdašnje poveznice",
        "tooltip-feed-rss": "RSS feed za ovu stranicu",
        "tooltip-feed-atom": "Atom feed za ovu stranicu",
-       "tooltip-t-contributions": "Pogledaj popis suradnikovih doprinosa",
+       "tooltip-t-contributions": "Pogledaj popis doprinosa suradnika  {{GENDER:$1|this user}}",
        "tooltip-t-emailuser": "Pošalji suradniku e-mail",
        "tooltip-t-info": "Više informacija o ovoj stranici",
        "tooltip-t-upload": "Postavi slike i druge medije",
        "version-entrypoints-header-entrypoint": "Početna adresa",
        "version-entrypoints-header-url": "URL",
        "version-libraries": "Instalirane biblioteke",
+       "version-libraries-library": "Knjižnica",
        "version-libraries-version": "Inačica",
        "redirect-submit": "Idi",
        "redirect-value": "Vrijednost:",
        "fileduplicatesearch-result-n": "Datoteka \"$1\" ima {{PLURAL:$2|1 identičnu kopiju|$2 identične kopije}}.",
        "fileduplicatesearch-noresults": "Nije pronađena datoteka s imenom \"$1\".",
        "specialpages": "Posebne stranice",
+       "specialpages-note-top": "Legenda",
        "specialpages-note": "* Normalne posebne stranice\n* <span class=\"mw-specialpagerestricted\">Posebne stranice s ograničenim pristupom.</span>",
        "specialpages-group-maintenance": "Izvještaji za održavanje",
        "specialpages-group-other": "Ostale posebne stranice",
        "tags-deactivate-reason": "Razlog:",
        "tags-deactivate-not-allowed": "Nije moguće isključiti oznaku \"$1\".",
        "tags-deactivate-submit": "Isključi",
+       "tags-edit-title": "Uredi oznake",
+       "tags-edit-manage-link": "Upravljaj oznakama",
+       "tags-edit-existing-tags": "Postojeće oznake:",
+       "tags-edit-existing-tags-none": "\"Nema\"",
+       "tags-edit-new-tags": "Nove oznake:",
+       "tags-edit-add": "Dodaj ove oznake:",
+       "tags-edit-remove": "Ukloni ove oznake:",
+       "tags-edit-chosen-placeholder": "Odaberite neke oznake",
+       "tags-edit-chosen-no-results": "Nisu pronađene odgovarajuće oznake",
+       "tags-edit-reason": "Razlog:",
        "comparepages": "Usporedite stranice",
        "compare-page1": "Stranica 1",
        "compare-page2": "Stranica 2",
        "expand_templates_remove_nowiki": "Ukloni <nowiki> tagove u rezultatima.",
        "expand_templates_generate_xml": "Prikaži XML stablo",
        "expand_templates_preview": "Vidi kako će izgledati",
+       "pagelang-name": "Stranica",
+       "pagelang-language": "Jezik",
+       "pagelang-use-default": "Koristi zadani jezik",
        "pagelang-select-lang": "Odaberi jezik",
+       "pagelang-submit": "Pošalji",
+       "right-pagelang": "Promijeni jezik stranice",
        "mediastatistics": "Statistika datoteka",
        "mediastatistics-summary": "Slijede statistike postavljenih datoteka koje pokazuju zadnju inačicu datoteke. Starije ili izbrisane inačice nisu prikazane.",
+       "mediastatistics-header-drawing": "Crteži (vektorske slike)",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Videozapisi",
+       "mediastatistics-header-office": "Ured",
+       "mediastatistics-header-text": "Tekst",
+       "mediastatistics-header-total": "Sve datoteke",
        "headline-anchor-title": "Poveznica na ovaj odlomak",
        "special-characters-group-latin": "latinica",
        "special-characters-group-latinextended": "proširena latinica",
index 0eeb6d5..fd73fca 100644 (file)
        "resetpass_submit": "Add meg a jelszót és jelentkezz be",
        "changepassword-success": "A jelszavad megváltoztatása sikeresen befejeződött!",
        "changepassword-throttled": "Túl sok hibás bejelentkezés.\nVárj $1, mielőtt újra próbálkozol.",
+       "botpasswords-label-appid": "A Bot neve:",
+       "botpasswords-label-create": "Létrehozás",
+       "botpasswords-label-update": "Frissítés",
+       "botpasswords-label-cancel": "Mégsem",
        "botpasswords-label-delete": "Törlés",
+       "botpasswords-label-resetpassword": "Új jelszó kérése",
+       "botpasswords-label-restrictions": "Használati korlátozások:",
+       "botpasswords-created-title": "Bot jelszó létrehozva",
+       "botpasswords-updated-title": "Bot jelszó frissítve",
+       "botpasswords-deleted-title": "Bot jelszó törölve",
        "resetpass_forbidden": "A jelszavak nem változtathatók meg",
        "resetpass-no-info": "Be kell jelentkezned, hogy közvetlenül elérd ezt a lapot.",
        "resetpass-submit-loggedin": "Jelszó megváltoztatása",
        "filewasdeleted": "Korábban valaki már feltöltött ilyen néven egy fájlt, amelyet később töröltünk. Ellenőrizd a $1 bejegyzését, nehogy újra feltöltsd ugyanezt a fájlt.",
        "filename-bad-prefix": "Annak a fájlnak a neve, amelyet fel akarsz tölteni '''„$1”''' karakterekkel kezdődik. Ilyeneket általában a digitális kamerák adnak a fájloknak, automatikusan, azonban ezek nem írják le annak tartalmát. Válassz egy leíró nevet!",
        "filename-prefix-blacklist": " #<!-- ezt a sort hagyd így --> <pre>\n#A szintaktika a következő:\n#   * Minden a „#” karaktertől a sor végéig megjegyzésnek számít\n#   * Minden nemüres sor egy, a digitális fényképezőképek által fájlok neveként használt előtag\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # néhány mobiltelefon\nIMG # általános\nJD # Jenoptik\nMGP # Pentax\nPICT # ált.\n #</pre> <!-- ezt a sort hagyd így -->",
-       "upload-success-subj": "A feltöltés sikerült",
-       "upload-success-msg": "A feltöltés (innen $2) sikeres volt. A feltöltésed itt érhető el: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Feltöltési hiba",
-       "upload-failure-msg": "Probléma történt a feltöltéseddel (innen: $2):\n\n$1",
-       "upload-warning-subj": "Feltöltési figyelmeztetés",
-       "upload-warning-msg": "Hiba történt a feltöltéseddel innen: [$2]. Visszatérhetsz a [[Special:Upload/stash/$1|feltöltéshez]], hogy orvosold a hibát.",
        "upload-proto-error": "Hibás protokoll",
        "upload-proto-error-text": "A távoli feltöltéshez <code>http://</code> vagy <code>ftp://</code> kezdetű URL-ekre van szükség.",
        "upload-file-error": "Belső hiba",
        "wlheader-showupdated": "Azok a lapok, amelyek megváltoztak, mióta utoljára megnézted őket, '''vastagítva''' láthatók.",
        "wlnote": "Alább {{PLURAL:$1|az utolsó változás|az utolsó <strong>$1</strong> változás}} látható az elmúlt {{PLURAL:$2|órában|<strong>$2</strong> órában}}, $3 $4-kor.",
        "wlshowlast": "Az elmúlt $1 órában | $2 napon történt változtatások legyenek láthatóak",
-       "watchlistall2": "bármikor",
        "watchlist-hide": "Elrejtés",
        "watchlist-submit": "Megjelenítés",
        "wlshowtime": "Időszak:",
        "expand_templates_preview": "Előnézet",
        "expand_templates_preview_fail_html": "<em>Mivel a(z) {{SITENAME}} engedélyezi a nyers HTML használatát, és a kapcsolati adatok elvesztek, az előnézet el van rejtve a JavaScript támadások megelőzése érdekében.</em>\n\n<strong>Ha ez egy ligitim előnézet kérés, akkor próbáld meg újra!</strong>\nHa nem működik, akkor próbálj meg [[Special:UserLogout|kijelentkezni]] és újra bejelentkezni!",
        "expand_templates_preview_fail_html_anon": "<em>Mivel a(z) {{SITENAME}} engedélyezi a nyers HTML használatát, és a kapcsolati adatok elvesztek, az előnézet el van rejtve a JavaScript támadások megelőzése érdekében.</em>\n\n<strong>Ha ez egy legitim előnézet kérés, akkor próbálj meg [[Special:UserLogin|bejelentkezni]] és újra próbálni!</strong>",
-       "pagelanguage": "Oldalnyelv-választó",
+       "pagelanguage": "Oldal nyelvének megváltoztatása",
        "pagelang-name": "Oldal",
        "pagelang-language": "Nyelv",
        "pagelang-use-default": "Alapértelmezett nyelv használata",
        "action-pagelang": "oldal nyelvének módosítása",
        "log-name-pagelang": "Nyelvváltoztatások naplója",
        "log-description-pagelang": "Ebben a naplóban a lap nyelvének változásait követheted nyomon.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|megváltoztatta}} a(z) $3 lap nyelvét $4 nyelvről $5 nyelvre.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|megváltoztatta}} a(z) $3 lap nyelvét $4 nyelvről $5 nyelvre",
        "default-skin-not-found": "Upsz! A wiki alapértelmezett felülete, amely a <code dir=\"ltr\">$wgDefaultSkin</code> szerint <code>$1</code>, nem áll rendelkezésre.\n\nA telepítés az alábbi {{PLURAL:$4|felületet|felületeket}} tartalmazza.\nTovábbi információkat a felület konfigurálásáról és az alapértelmezett felület beállításáról a [https://www.mediawiki.org/wiki/Manual:Skin_configuration Kézikönyv: Felület konfigurálása] helyen találsz.\n\n$2\n\n; Ha frissen telepítetted a MediaWikit:\n: Valószínűleg a gitről telepítetted, vagy közvetlenül forráskódból más módon. Ebben az esetben ez várható. Próbálj telepíteni felületeket a [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org felületkönyvtárából], az alábbi módokon:\n:* Töltsd le a [https://www.mediawiki.org/wiki/Download tarball telepítőt], amely számos felületet és kiegészítést tartalmaz. Simán másold át belőle a <code>skins/</code> könyvtárat.\n:* Tölts le az egyedi felülettelepítő-készleteket a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] helyről.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Felület letöltése Git segítségével].\n: Ez nem ütközik a git repository-val, ha MediaWiki fejlesztő vagy.\n\n; Ha most frissítetted a MediaWikit:\n: A MediaWiki 1.24 és újabb verziók már nem engedélyezik automatikusan a telepített felületeket (lásd [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Kézikönyv: Felület automatikus felderítése]). Illeszd be az alábbi {{PLURAL:$5|sort|sorokat}} a <code>LocalSettings.php</code> fájlba, ha engedélyezni akarod {{PLURAL:$5|a|az összes}} telepített felületet:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Ha most módosítottad a <code>LocalSettings.php</code> fájlt:\n: Ellenőrizd a felületneveket, mert lehet, hogy elírtad!",
        "default-skin-not-found-no-skins": "Upsz! A wiki alapértelmezett felülete, amely a <code dir=\"ltr\">$wgDefaultSkin</code> szerint <code>$1</code>, nem áll rendelkezésre.\n\nNincs telepített felület\n\n; Ha frissen telepítetted a MediaWikit:\n: Valószínűleg a git-ről telepítetted, vagy forrás kódból más módon. Ebben az esetben ez várható. Próbálj telepíteni felületeket a [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org felület könyvtárából], az alábbi módokon:\n:* Töltsd le a [https://www.mediawiki.org/wiki/Download tarball telepítőt], amely számos felületet és kiegészítést tartalmaz. Simán másold ki és beilleszt be a <code>skins/</code> könyvtárat belőle.\n:* Töltsd le az egyedi felület telepítő készleteket a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] helyről.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Felület letöltése Git segítségével].\n: Ez nem ütközik a git repository-val, ha MediaWiki fejlesztő vagy.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (engedélyezve)",
index cca5512..c804823 100644 (file)
        "filename-thumb-name": "Questo sembra essere il titolo di una miniatura. Non caricare le miniature sulla stessa wiki. Oppure, modifica il nome del file in modo che sia più significativo e non abbia il prefisso della miniatura.",
        "filename-bad-prefix": "Il nome del file che si sta caricando inizia con '''\"$1\"''', che è un nome generico simile a quelli assegnati automaticamente dalle fotocamere digitali. Si prega di scegliere un nome più descrittivo per il file.",
        "filename-prefix-blacklist": " #<!-- lascia questa riga esattamente com'è --> <pre>\n# La sintassi è la seguente:\n#   * Tutto ciò che segue il carattere \"#\" sino alla fine della riga è un commento\n#   * Ogni riga non vuota è un prefisso per nomi di file tipici assegnati automaticamente da fotocamere digitali\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # alcuni telefonini\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- lascia questa riga esattamente com'è -->",
-       "upload-success-subj": "Caricamento completato",
-       "upload-success-msg": "L'upload da [$2] è riuscito. Il file è disponibile qui: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problema nell'upload",
-       "upload-failure-msg": "Si è verificato un problema con il caricamento da [$2]:\n\n$1",
-       "upload-warning-subj": "Avviso di caricamento",
-       "upload-warning-msg": "C'è stato un problema con il caricamento da [$2]. Si può tornare al [[Special:Upload/stash/$1|form di upload]] per correggere questo problema.",
        "upload-proto-error": "Protocollo errato",
        "upload-proto-error-text": "Per l'upload remoto è necessario specificare URL che iniziano con <code>http://</code> oppure <code>ftp://</code>.",
        "upload-file-error": "Errore interno",
        "upload-too-many-redirects": "L'URL conteneva troppi redirect",
        "upload-http-error": "Si è verificato un errore HTTP: $1",
        "upload-copy-upload-invalid-domain": "Non è consentito il caricamento di copie da questo dominio.",
+       "upload-foreign-cant-upload": "Questo wiki non è configurato per caricare i file nel repository di file esterno richiesto.",
        "upload-dialog-title": "Carica file",
        "upload-dialog-button-cancel": "Annulla",
        "upload-dialog-button-done": "Fatto",
        "wlheader-showupdated": "Le pagine che sono state modificate dopo l'ultima visita sono evidenziate in '''grassetto'''.",
        "wlnote": "Di seguito {{PLURAL:$1|è elencata la modifica più recente apportata|sono elencate le <strong>$1</strong> modifiche più recenti apportate}} {{PLURAL:$2|nella scorsa ora|nelle scorse <strong>$2</strong> ore}}; i dati sono aggiornati alle $4 del $3.",
        "wlshowlast": "Mostra le ultime $1 ore $2 giorni",
-       "watchlistall2": "tutte",
        "watchlist-hide": "Nascondi",
        "watchlist-submit": "Mostra",
        "wlshowtime": "Periodo di tempo da visualizzare:",
        "lockedbyandtime": "(da $1 il $2 alle $3)",
        "move-page": "Spostamento di $1",
        "move-page-legend": "Spostamento di pagina",
-       "movepagetext": "Questo modulo consente di rinominare una pagina, spostando tutta la sua cronologia al nuovo nome. La pagina attuale diverrà automaticamente un redirect al nuovo titolo. Puoi aggiornare automaticamente i redirect che puntano al titolo originale. Puoi decidere di non farlo, ma ricordati di verificare che lo spostamento non abbia creato [[Special:DoubleRedirects|doppi redirect]] o [[Special:BrokenRedirects|redirect errati]]. L'onere di garantire che i collegamenti alla pagina restino corretti spetta a chi la sposta.\n\nSi noti che la pagina '''non''' sarà spostata se ne esiste già una con il nuovo nome, a meno che quest'ultima non sia costituita solo da un redirect alla vecchia e sia priva di versioni precedenti. In caso di spostamento errato si può quindi tornare subito al vecchio titolo, e non è possibile sovrascrivere per errore una pagina già esistente.\n\n'''ATTENZIONE:'''\nUn cambiamento così drastico può creare contrattempi e problemi, soprattutto per le pagine più visitate. Accertarsi di aver valutato le conseguenze dello spostamento prima di procedere.",
-       "movepagetext-noredirectfixer": "Questo modulo consente di rinominare una pagina, spostando tutta la sua cronologia al nuovo nome. La pagina attuale diverrà automaticamente un redirect al nuovo titolo. Controlla che lo spostamento non abbia creato [[Special:DoubleRedirects|doppi redirect]] o [[Special:BrokenRedirects|redirect errati]]. L'onere di garantire che i collegamenti alla pagina restino corretti spetta a chi la sposta.\n\nSi noti che la pagina '''non''' sarà spostata se ne esiste già una con il nuovo nome, a meno che non sia vuota o costituita solo da un redirect alla vecchia e sia priva di versioni precedenti. In caso di spostamento errato si può quindi tornare subito al vecchio titolo, e non è possibile sovrascrivere per errore una pagina già esistente.\n\n'''ATTENZIONE:'''\nUn cambiamento così drastico può creare contrattempi e problemi, soprattutto per le pagine più visitate. Accertarsi di aver valutato le conseguenze dello spostamento prima di procedere.",
+       "movepagetext": "Questo modulo consente di rinominare una pagina, spostando tutta la sua cronologia al nuovo nome. La pagina attuale diverrà automaticamente un redirect al nuovo titolo. Puoi aggiornare automaticamente i redirect che puntano al titolo originale. Puoi decidere di non farlo, ma ricordati di verificare che lo spostamento non abbia creato [[Special:DoubleRedirects|doppi redirect]] o [[Special:BrokenRedirects|redirect errati]]. L'onere di garantire che i collegamenti alla pagina restino corretti spetta a chi la sposta.\n\nSi noti che la pagina <strong>non</strong> sarà spostata se ne esiste già una con il nuovo nome, a meno che quest'ultima non sia costituita solo da un redirect e sia priva di versioni precedenti. In caso di spostamento errato si può quindi tornare subito al vecchio titolo, e non è possibile sovrascrivere per errore una pagina già esistente.\n\n<strong>Nota:</strong>\nUn cambiamento così drastico può creare contrattempi e problemi, soprattutto per le pagine più visitate. Accertarsi di aver valutato le conseguenze dello spostamento prima di procedere.",
+       "movepagetext-noredirectfixer": "Questo modulo consente di rinominare una pagina, spostando tutta la sua cronologia al nuovo nome. La pagina attuale diverrà automaticamente un redirect al nuovo titolo. Controlla che lo spostamento non abbia creato [[Special:DoubleRedirects|doppi redirect]] o [[Special:BrokenRedirects|redirect errati]]. L'onere di garantire che i collegamenti alla pagina restino corretti spetta a chi la sposta.\n\nSi noti che la pagina <strong>non</strong> sarà spostata se ne esiste già una con il nuovo nome, a meno che non sia costituita solo da un redirect e sia priva di versioni precedenti. In caso di spostamento errato si può quindi tornare subito al vecchio titolo, e non è possibile sovrascrivere per errore una pagina già esistente.\n\n<strong>Nota:</strong>\nUn cambiamento così drastico può creare contrattempi e problemi, soprattutto per le pagine più visitate. Accertarsi di aver valutato le conseguenze dello spostamento prima di procedere.",
        "movepagetalktext": "Se selezioni questa casella, la corrispondente pagina di discussione sarà spostata automaticamente al nuovo titolo, a meno che esiste già una pagina di discussione non vuota.\n\nIn questi casi, dovrai spostare o unire manualmente la pagina, se lo si ritiene opportuno.",
        "moveuserpage-warning": "'''Attenzione:''' Si sta per spostare una pagina utente. Nota che verrà spostata solamente la pagina. L'utente ''non'' sarà rinominato.",
        "movecategorypage-warning": "<strong>Attenzione:</strong> si sta per spostare una categoria. Solo questa pagina verrà spostata: tutte le pagine nella vecchia categoria <em>non</em> saranno inserite nella nuova.",
        "movenosubpage": "Questa pagina non ha sottopagine.",
        "movereason": "Motivo:",
        "revertmove": "ripristina",
-       "delete_and_move_text": "==Cancellazione richiesta==\n\nLa pagina specificata come destinazione \"[[:$1]]\" esiste già. Vuoi cancellarla per proseguire con lo spostamento?",
+       "delete_and_move_text": "La pagina specificata come destinazione \"[[:$1]]\" esiste già. Vuoi cancellarla per proseguire con lo spostamento?",
        "delete_and_move_confirm": "Sì, sovrascrivi la pagina esistente",
        "delete_and_move_reason": "Cancellata per rendere possibile lo spostamento da \"[[$1]]\"",
        "selfmove": "Il titolo di destinazione è uguale a quello di provenienza, non è possibile spostare una pagina su sé stessa.",
        "move-leave-redirect": "Crea un redirect con lo spostamento",
        "protectedpagemovewarning": "'''Attenzione: Questa pagina è stata bloccata in modo che solo gli utenti con privilegi di amministratore possano spostarla.'''\nL'ultimo elemento del registro è riportato di seguito per informazione:",
        "semiprotectedpagemovewarning": "'''Nota:''' Questa pagina è stata bloccata in modo che solo gli utenti registrati possano spostarla.\nL'ultimo elemento del registro è riportato di seguito per informazione:",
-       "move-over-sharedrepo": "== File già esistente ==\n[[:$1]] è già presente in una struttura condivisa. Spostare un file a questo titolo comporterà la sovrascrittura del file condiviso.",
+       "move-over-sharedrepo": "[[:$1]] esiste già in un archivio condiviso. Lo spostamento di un file a questo titolo comporterà la sovrascrittura del file condiviso.",
        "file-exists-sharedrepo": "Il nome che hai scelto per il file è già utilizzato.\nPer favore, scegli un nome diverso.",
        "export": "Esporta pagine",
        "exporttext": "È possibile esportare il testo e la cronologia delle modifiche di una pagina o di un gruppo di pagine in formato XML per importarle in altri siti che utilizzano il software MediaWiki, attraverso la [[Special:Import|pagina delle importazioni]].\n\nPer esportare le pagine indicare i titoli nella casella di testo sottostante, uno per riga, e specificare se si desidera ottenere l'ultima versione e tutte le versioni precedenti, con i dati della cronologia della pagina, oppure soltanto l'ultima versione e i dati corrispondenti all'ultima modifica.\n\nIn quest'ultimo caso si può anche utilizzare un collegamento, ad esempio [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] per esportare \"[[{{MediaWiki:Mainpage}}]]\".",
        "lastmodifiedatby": "Questa pagina è stata modificata per l'ultima volta il $1 alle $2 da $3.",
        "othercontribs": "Il testo attuale è basato su contributi di $1.",
        "others": "altri",
-       "siteusers": "$1, {{PLURAL:$2|utente|utenti}} di {{SITENAME}}",
+       "siteusers": "$1, {{PLURAL:$2|{{GENDER:$1|utente}}|utenti}} di {{SITENAME}}",
        "anonusers": "$1, {{PLURAL:$2|utente anonimo|utenti anonimi}} di {{SITENAME}}",
        "creditspage": "Autori della pagina",
        "nocredits": "Nessuna informazione sugli autori disponibile per questa pagina.",
index 59112e6..99b44a4 100644 (file)
        "tog-watchlisthidebots": "ボットによる編集をウォッチリストに表示しない",
        "tog-watchlisthideminor": "細部の編集をウォッチリストに表示しない",
        "tog-watchlisthideliu": "ログイン利用者による編集をウォッチリストに表示しない",
-       "tog-watchlistreloadautomatically": "ã\83\95ã\82£ã\83«ã\82¿ã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\81\9fã\81³ã\81«ã\80\81ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\82\92è\87ªå\8b\95ç\9a\84ã\81«å\86\8d読ã\81¿è¾¼ã\81¿ã\81\97ã\81¾ã\81\99(JavaScript が必要)",
+       "tog-watchlistreloadautomatically": "ã\83\95ã\82£ã\83«ã\82¿ã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\81\9fã\81³ã\81«ã\80\81ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\82\92è\87ªå\8b\95ç\9a\84ã\81«å\86\8d読ã\81¿è¾¼ã\81¿ã\81\99ã\82\8b(JavaScript が必要)",
        "tog-watchlisthideanons": "匿名利用者による編集をウォッチリストに表示しない",
        "tog-watchlisthidepatrolled": "巡回済みの編集をウォッチリストに表示しない",
        "tog-watchlisthidecategorization": "ページのカテゴリ化を隠す",
        "october-date": "10月$1日",
        "november-date": "11月$1日",
        "december-date": "12月$1日",
+       "period-am": "午前",
+       "period-pm": "午後",
        "pagecategories": "{{PLURAL:$1|カテゴリ}}",
        "category_header": "カテゴリ「$1」にあるページ",
        "subcategories": "下位カテゴリ",
        "virus-scanfailed": "スキャンに失敗しました (コード $1)",
        "virus-unknownscanner": "不明なウイルス対策ソフトウェア:",
        "logouttext": "<strong>ログアウトしました。</strong>\n\nページによっては、ブラウザーのキャッシュをクリアするまで、ログインしているかのように表示され続ける場合があるためご注意ください。",
+       "cannotlogoutnow-title": "今はログアウトできません",
+       "cannotlogoutnow-text": "$1 使用中には、ログアウトは不可能です。",
        "welcomeuser": "ようこそ、$1さん!",
        "welcomecreation-msg": "アカウントが作成されました。\nお好みで[[Special:Preferences|{{SITENAME}}の個人設定]]を変更できます。",
        "yourname": "利用者名:",
        "remembermypassword": "このブラウザーにログイン情報を保存 (最長 $1 {{PLURAL:$1|日|日間}})",
        "userlogin-remembermypassword": "ログイン状態を保持",
        "userlogin-signwithsecure": "安全な接続の使用",
+       "cannotloginnow-title": "今はログインできません",
        "yourdomainname": "あなたのドメイン:",
        "password-change-forbidden": "このウィキではパスワードを変更できません。",
        "externaldberror": "認証データベースでエラーが発生したか、または外部アカウントの更新が許可されていません。",
        "resetpass_submit": "再設定してログイン",
        "changepassword-success": "パスワードを変更しました!",
        "changepassword-throttled": "最近のログインの試行回数が多すぎます。\n$1待ってから再度試してください。",
+       "botpasswords": "ボットのパスワード",
+       "botpasswords-disabled": "ボットのパスワードは無効です。",
+       "botpasswords-existing": "既存のボットのパスワード",
+       "botpasswords-createnew": "ボットのパスワードの新規作成",
+       "botpasswords-label-appid": "ボット名:",
+       "botpasswords-label-create": "作成",
+       "botpasswords-label-update": "更新",
+       "botpasswords-label-cancel": "中止",
+       "botpasswords-label-delete": "削除",
+       "botpasswords-label-resetpassword": "パスワードをリセット",
+       "botpasswords-bad-appid": "ボット「$1」は有効ではありません。",
+       "botpasswords-insert-failed": "ボット「$1」の追加に失敗しました。既に追加されていないか確認してください。",
+       "botpasswords-update-failed": "ボット「$1」の更新に失敗しました。削除されていないか確認してください。",
+       "botpasswords-created-title": "ボットのパスワードが作成されました",
+       "botpasswords-created-body": "ボット「$1」のパスワードが作成されました。",
+       "botpasswords-updated-title": "ボットのパスワードが更新されました",
+       "botpasswords-updated-body": "ボット「$1」のパスワードを更新しました。",
+       "botpasswords-deleted-title": "ボットのパスワードが削除されました",
+       "botpasswords-deleted-body": "ボット「$1」のパスワードを削除しました。",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider が有効ではありません。",
+       "botpasswords-invalid-name": "指定された利用者名には、ボットのパスワードに区切り (「$1」) が含まれていません。",
+       "botpasswords-not-exist": "利用者「$1」はボット「$2」のパスワードを所持していません。",
        "resetpass_forbidden": "パスワードは変更できません",
        "resetpass-no-info": "このページに直接アクセスするためにはログインしている必要があります。",
        "resetpass-submit-loggedin": "パスワードを変更",
        "userrights": "利用者権限を管理",
        "userrights-lookup-user": "利用者グループを管理",
        "userrights-user-editname": "利用者名を入力:",
-       "editusergroup": "利用者グループを編集",
+       "editusergroup": "{{GENDER:$1|利用者}}グループを編集",
        "editinguser": "利用者<strong> [[User:$1|$1]]</strong> $2 の権限を変更",
        "userrights-editusergroup": "利用者グループを編集",
-       "saveusergroups": "利用者グループを保存",
+       "saveusergroups": "{{GENDER:$1|利用者}}グループを保存",
        "userrights-groupsmember": "所属グループ:",
        "userrights-groupsmember-auto": "自動的に付与される権限:",
        "userrights-groupsmember-type": "$1",
        "filename-thumb-name": "これはサムネイルのタイトルのように見えます。けっして同じウィキに戻ってサムネイルをアップロードしないでください。そうでなければ、それはより多くの意味があるので、ファイル名を修正し、サムネイル接頭辞を持たなくしてください。",
        "filename-bad-prefix": "アップロードしようとしているファイルの名前が<strong>「$1」</strong>から始まっていますが、これはデジタルカメラによって自動的に付与されるような具体性を欠いた名前です。\nファイルの内容をより具体的に説明する名前を使用してください。",
        "filename-prefix-blacklist": " #<!-- この行はそのままにしておいてください --> <pre>\n# 構文は以下の通り:\n#   * \"#\" 記号から行末まではすべてがコメント\n#   * 空ではない行はすべてデジタルカメラによって自動的に付けられる典型的なファイル名の接頭辞\nCIMG # カシオ\nDSC_ # ニコン\nDSCF # 富士フイルム\nDSCN # ニコン\nDUW # 一部の携帯電話\nIMG # 一般\nJD # Jenoptik\nMGP # ペンタックス\nPICT # その他\n #</pre> <!-- この行はそのままにしておいてください -->",
-       "upload-success-subj": "アップロード成功",
-       "upload-success-msg": "[$2] からアップロードしました。こちらで利用できます: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "アップロード失敗",
-       "upload-failure-msg": "[$2] からアップロードする際に問題が発生しました:\n\n$1",
-       "upload-warning-subj": "アップロードの警告",
-       "upload-warning-msg": "[$2] からアップロードしようとしたデータに問題があります。 [[Special:Upload/stash/$1|アップロードのフォーム]]に戻って問題を修正してください。",
        "upload-proto-error": "無効なプロトコル",
        "upload-proto-error-text": "遠隔アップロード機能では、URLが<code>http://</code>または<code>ftp://</code>で始まっている必要があります。",
        "upload-file-error": "内部エラー",
        "log-title-wildcard": "この文字列で始まるページ名を検索",
        "showhideselectedlogentries": "選択した記録項目を表示/非表示",
        "log-edit-tags": "選択した記録項目のタグを編集",
+       "checkbox-select": "選択: $1",
+       "checkbox-all": "すべて",
+       "checkbox-none": "なし",
+       "checkbox-invert": "反転",
        "allpages": "全ページ",
        "nextpage": "次のページ ($1)",
        "prevpage": "前のページ ($1)",
        "wlheader-showupdated": "最終訪問以降に変更されたページは、<strong>太字</strong>で表示されます。",
        "wlnote": "$3 $4 までの{{PLURAL:$2|<strong>$2</strong>時間}}になされた{{PLURAL:$1|<strong>$1</strong>件の変更}}は以下の通りです。",
        "wlshowlast": "表示する期間: $1時間、$2日間",
-       "watchlistall2": "すべて",
        "watchlist-hide": "非表示",
        "watchlist-submit": "表示",
        "wlshowtime": "表示範囲:",
        "unblock": "利用者のブロックを解除",
        "blockip": "{{GENDER:$1|利用者}}をブロック",
        "blockip-legend": "利用者をブロック",
-       "blockiptext": "以下のフォームを使用して、指定したIPアドレスまたは利用者からの書き込みアクセスをブロックできます。\nこのような措置は、荒らしからの防御の目的のみに行われるべきで、また[[{{MediaWiki:Policy-url}}|方針]]に沿ったものであるべきです。\n以下にブロックの理由を具体的に書いてください (例えば、荒らされたページへの言及など)。",
+       "blockiptext": "以下のフォームを使用して、指定したIPアドレスまたは利用者からの書き込みアクセスをブロックできます。\nこのような措置は、荒らしからの防御の目的のみに行われるべきで、また[[{{MediaWiki:Policy-url}}|方針]]に沿ったものであるべきです。\n以下にブロックの理由を具体的に書いてください (例えば、荒らされたページへの言及など)。\n[https://ja.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] 構文を使用して、IP 範囲をブロックできます。許可された最大の範囲は、IPv4 の場合は /$1、IPv6 の場合は /$2 です。",
        "ipaddressorusername": "IPアドレスまたは利用者名:",
        "ipbexpiry": "有効期限:",
        "ipbreason": "理由:",
        "lockedbyandtime": "($1 が $2 $3 から)",
        "move-page": "「$1」の移動",
        "move-page-legend": "ページの移動",
-       "movepagetext": "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。\n移動元のページは移動先への転送ページになります。\n移動元のページへの転送ページを自動的に修正できます。\n[[Special:DoubleRedirects|二重転送]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。\nリンクを正しく維持するのは移動した人の責任です。\n\n移動先のページが既に存在する場合は、その移動先が転送ページであり、かつ過去の版を持たない場合以外は移動<strong>できません</strong>。\nつまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。\n\n<strong>注意!</strong>\nよく閲覧されるページや、他の多くのページからリンクされているページを移動すると予期しない結果が起こるかもしれません。\nページの移動に伴う影響をよく考えてから踏み切るようにしてください。",
-       "movepagetext-noredirectfixer": "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。\n移動元のページは移動先への転送ページになります。\n自動的な修正を選択しない場合は、[[Special:DoubleRedirects|二重転送]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。\nつながるべき場所にリンクがつながるよう維持するのは移動した人の責任です。\n\n移動先が既に存在する場合は、そのページが転送ページであり、かつ過去の版を持たない場合を除いて移動<strong>できません</strong>。\nつまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。\n\n<strong>警告!</strong>\n多く閲覧されるページや多くリンクされているページを移動すると、予期しない大きな変化が起こるかもしれないことにご注意ください。\nページの移動に伴う影響をよく考えてから移動してください。",
+       "movepagetext": "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。\n移動元のページは移動先への転送ページになります。\n移動元のページへの転送ページを自動的に修正できます。\n[[Special:DoubleRedirects|二重転送]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。\nリンクを正しく維持するのは移動した人の責任です。\n\n移動先のページが既に存在する場合は、その移動先が転送ページであり、かつ過去の版を持たない場合以外は移動<strong>できません</strong>。\nつまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。\n\n<strong>注意</strong>\nよく閲覧されるページや、他の多くのページからリンクされているページを移動すると予期しない結果が起こるかもしれません。\nページの移動に伴う影響をよく考えてから踏み切るようにしてください。",
+       "movepagetext-noredirectfixer": "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。\n移動元のページは移動先への転送ページになります。\n自動的な修正を選択しない場合は、[[Special:DoubleRedirects|二重転送]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。\nつながるべき場所にリンクがつながるよう維持するのは移動した人の責任です。\n\n移動先が既に存在する場合は、そのページが転送ページであり、かつ過去の版を持たない場合を除いて移動<strong>できません</strong>。\nつまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。\n\n<strong>注意</strong>\n多く閲覧されるページや多くリンクされているページを移動すると、予期しない大きな変化が起こるかもしれないことにご注意ください。\nページの移動に伴う影響をよく考えてから移動してください。",
        "movepagetalktext": "ここにチェックを付けると、関連付けられたトークページも一緒に、自動的に新しいページ名に移動されます。ただし、移動先に空ではないトークページが既に存在する場合を除きます。\n\nこの場合、手動でトークページを移動または統合する必要があります。",
        "moveuserpage-warning": "<strong>警告:</strong> 利用者ページを移動しようとしています。この操作ではページのみが移動され、利用者名は<em>変更されない</em>点に注意してください。",
        "movecategorypage-warning": "<strong>警告:</strong> カテゴリのページを移動させようとしています。カテゴリのページのみが移動するため、元のカテゴリに属していたどのページも新しいカテゴリには移動 <em>しない</em> ことにご注意ください。",
        "movenosubpage": "このページに下位ページはありません。",
        "movereason": "理由:",
        "revertmove": "差し戻し",
-       "delete_and_move_text": "== 削除が必要です ==\n移動先「[[:$1]]」は既に存在します。\n移動のためにこのページを削除しますか?",
+       "delete_and_move_text": "移動先「[[:$1]]」は既に存在します。\n移動のためにこのページを削除しますか?",
        "delete_and_move_confirm": "はい、ページを削除します",
        "delete_and_move_reason": "「[[$1]]」からの移動のために削除",
        "selfmove": "移動元と移動先のページ名が同じです。\n自分自身には移動できません。",
        "move-leave-redirect": "移動元に転送ページを作成する",
        "protectedpagemovewarning": "<strong>警告:</strong> このページは保護されているため、管理者権限を持つ利用者のみが移動できます。\n参考として以下に最後の記録を表示します:",
        "semiprotectedpagemovewarning": "<strong>注意:</strong> このページは保護されているため、登録利用者のみが移動できます。\n参考として以下に最後の記録を表示します:",
-       "move-over-sharedrepo": "== ファイルが存在します ==\n[[:$1]]は共有リポジトリ上に存在します。ファイルをこの名前に移動すると共有ファイルを上書きします。",
+       "move-over-sharedrepo": "[[:$1]]は共有リポジトリ上に存在します。ファイルをこの名前に移動すると共有ファイルを上書きします。",
        "file-exists-sharedrepo": "選ばれたファイル名は既に共有リポジトリ上で使用されています。\n別の名前を選んでください。",
        "export": "ページの書き出し",
        "exporttext": "ここでは単独あるいは複数のページの本文と編集履歴を、XMLの形で書き出しができます。\nこのXMLは、他のMediaWikiを使用しているウィキで[[Special:Import|取り込みページ]]を使用して取り込みができます。\n\nページを書き出すには、下の入力ボックスに一行に一つずつ書き出したいページの名前を記入してください。また、編集履歴とともにすべての過去版を含めて書き出すのか、最新版のみを書き出すのか選択してください。\n\n後者の場合ではリンクの形で使うこともできます。例えば、[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]はページ「[[{{MediaWiki:Mainpage}}]]」が対象になります。",
        "javascripttest-pagetext-frameworks": "以下のテストフレームワークから1つ選択してください: $1",
        "javascripttest-pagetext-skins": "テストを実行する外装を選択してください:",
        "javascripttest-qunit-intro": "mediawiki.org上の[$1 テストのドキュメント]を参照してください。",
-       "tooltip-pt-userpage": "自分の利用者ページ",
+       "tooltip-pt-userpage": "{{GENDER:|自分の利用者}}ページ",
        "tooltip-pt-anonuserpage": "自分が編集しているIPアドレスの利用者ページ",
        "tooltip-pt-mytalk": "自分のトークページ",
        "tooltip-pt-anontalk": "このIPアドレスからなされた編集についての議論",
        "tooltip-feed-rss": "このページのRSSフィード",
        "tooltip-feed-atom": "このページのAtomフィード",
        "tooltip-t-contributions": "{{GENDER:$1|この利用者}}による投稿の一覧",
-       "tooltip-t-emailuser": "この利用者にメールを送信する",
+       "tooltip-t-emailuser": "{{GENDER:$1|この利用者}}にメールを送信します",
        "tooltip-t-info": "このページについての詳細情報",
        "tooltip-t-upload": "ファイルをアップロードする",
        "tooltip-t-specialpages": "特別ページの一覧",
        "hebrew-calendar-m11-gen": "アブ",
        "hebrew-calendar-m12-gen": "エルール",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|トーク]])",
+       "timezone-local": "ローカル",
        "duplicate-defaultsort": "<strong>警告:</strong> 既定のソートキー「$2」が、その前に書かれている既定のソートキー「$1」を上書きしています。",
        "duplicate-displaytitle": "<strong>警告:</strong> DISPLAYTITLE「$2」が、その前に書かれているDISPLAYTITLE「$1」を上書きしています。",
        "invalid-indicator-name": "<strong>エラー:</strong> ページ・ステータス・インディケーターの <code>name</code> 属性は空であってはいけません。",
        "version-libraries-license": "ライセンス",
        "version-libraries-description": "説明",
        "version-libraries-authors": "作者",
-       "redirect": "ファイル名、利用者ID、ページID、版IDでの転送",
+       "redirect": "ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\80\81å\88©ç\94¨è\80\85IDã\80\81ã\83\9aã\83¼ã\82¸IDã\80\81ç\89\88IDã\80\81è¨\98é\8c²IDã\81§ã\81®è»¢é\80\81",
        "redirect-legend": "ファイルまたはページヘの転送",
-       "redirect-summary": "ã\81\93ã\81®ç\89¹å\88¥ã\83\9aã\83¼ã\82¸ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83« (ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\82\92æ\8c\87å®\9a\80\81ã\83\9aã\83¼ã\82¸ (ç\89\88 ID ã\81¾ã\81\9fã\81¯ã\83\9aã\83¼ã\82¸ ID ã\82\92æ\8c\87å®\9a\80\81å\88©ç\94¨è\80\85ã\83\9aã\83¼ã\82¸ (å\88©ç\94¨è\80\85 ID ã\82\92æ\95´æ\95°ã\81§æ\8c\87å®\9a) ã\81«è»¢é\80\81ã\81\95ã\82\8cã\81¾ã\81\99ã\80\82使ç\94¨ä¾\8b: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]]",
+       "redirect-summary": "ã\81\93ã\81®ç\89¹å\88¥ã\83\9aã\83¼ã\82¸ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83« (ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\82\92æ\8c\87å®\9a\80\81ã\83\9aã\83¼ã\82¸ (ç\89\88 ID ã\81¾ã\81\9fã\81¯ã\83\9aã\83¼ã\82¸ ID ã\82\92æ\8c\87å®\9a\80\81å\88©ç\94¨è\80\85ã\83\9aã\83¼ã\82¸ (å\88©ç\94¨è\80\85 ID ã\82\92æ\95´æ\95°ã\81§æ\8c\87å®\9a) ã\80\81è¨\98é\8c²é \85ç\9b® (è¨\98é\8c² ID ã\82\92æ\8c\87å®\9a) ã\81«è»¢é\80\81ã\81\95ã\82\8cã\81¾ã\81\99ã\80\82使ç\94¨ä¾\8b: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], [[{{#Special:Redirect}}/logid/186]]",
        "redirect-submit": "実行",
        "redirect-lookup": "検索の種類:",
        "redirect-value": "値:",
        "redirect-page": "ページ ID",
        "redirect-revision": "ページの版 ID",
        "redirect-file": "ファイル名",
+       "redirect-logid": "記録 ID",
        "redirect-not-exists": "値が見つかりません",
        "fileduplicatesearch": "重複ファイルの検索",
        "fileduplicatesearch-summary": "重複ファイルをハッシュ値に基づいて検索します。",
index ac1921e..905ea2f 100644 (file)
@@ -6,7 +6,8 @@
                        "Yocahuna",
                        "គីមស៊្រុន",
                        "아라",
-                       "Chabi1"
+                       "Chabi1",
+                       "Katxis"
                ]
        },
        "tog-underline": "Lingk andalainin",
        "block-log-flags-nocreate": "akount krieshan disiebl",
        "movepagetext": "Yuuz di faam biluo fi riniem a piej, ahn muuv aal a i'ischri tu di nyuu niem.\nDi uol taikl wi bikomz a riidirek piej tu di nyuu taikl.\nYu kiahn opdiet riidirek wa paint tu di orijinal taikl aatamatikali.\nEf yu no chuuz fi dwiit, bi shuor fi chek fi [[Special:DoubleRedirects|dobl]] ar [[Special:BrokenRedirects|brok riidirek]].\nYu rispans fi mek shuor se lingk kantiniu fi paint we dehn supuoz fi go.\n\nNuot se di piej '''naa''' go muuv ef piej de aredi a di nyuu taikl, anles iempti ar a riidirek ahn no ha no paas edit ischri.\nDis miin se yu kiahn riiniem a piej bak tu wa iriiniem fram ef yu mek mistiek, ahn yu kyaahn uovarait a egzistin piej.\n\n'''Waanin!'''\nDis kiahn bi a jrastik ahn anexpektid chienj fi a papiula piej;\nbegyu mek shuor yu andastan di kansikwens a dis bifuo yu prosiid.",
        "movepagetalktext": "Di asuosietid taak piej wi aatamatikali muuv alangx widi '''anles:'''\n* A nan-emti taak piej egzis aredi anda di nyuu niem, ar\n*Yu anchel di bax biluo.\n\nIna demde kies, yu wi afi muuv ar moerj di piej manyuali ef yu dizaya.",
-       "movearticle": "Muuv piej",
        "newtitle": "Tu nyuu taikl:",
        "move-watch": "Wach suos piej ahn taagit piej",
        "movepagebtn": "Muuv piej",
index 230697a..8f554fc 100644 (file)
@@ -32,6 +32,7 @@
        "tog-hideminor": "დამალე მცირე რედაქტირება ბოლო ცვლილებებში",
        "tog-hidepatrolled": "დამალეთ შესწორებული რედაქტირებები ბოლო ცვლილებებში",
        "tog-newpageshidepatrolled": "დამალეთ შემოწმებული გვერდები ახალი გვერდების სიიდან",
+       "tog-hidecategorization": "გვერდების კატეგორიზაციის დამალვა",
        "tog-extendwatchlist": "გავრცობილი კონტროლის სია ყველა დაკავშირებული ცვლილების ჩვენების ჩათვლით",
        "tog-usenewrc": "ბოლო ცვლილებების და კონტროლის სიის ცვლილებების დაჯგუფება",
        "tog-numberheadings": "ავტომატურად დანომრე ქვესათაურები",
        "tog-watchlisthidebots": "დამალე რობოტის რედაქტირება კონტროლის სიაში",
        "tog-watchlisthideminor": "დამალეთ საკონტროლო სიიდან მცირე რედაქტირებები",
        "tog-watchlisthideliu": "დამალეთ დარეგისტრირებულ მოხმარებელთა ცვლილებები ჩემი კონტროლის სიიდან",
+       "tog-watchlistreloadautomatically": "გადატვირთე კონტროლის სია ავტომატურად, როგორც კი ფილტრი შეიცვლება (საჭიროა JavaScript)",
        "tog-watchlisthideanons": "დამალეთ ანონიმურ მომხმარებელთა შესწორებები ჩემი კონტროლის სიიდან",
        "tog-watchlisthidepatrolled": "დამალეთ საკონტროლო სიიდან პატრულირებული რედაქტირებები",
+       "tog-watchlisthidecategorization": "გვერდების კატეგორიზაციის დამალვა",
        "tog-ccmeonemails": "გამომიგზავნე ელფოსტების ასლები, რომლებსაც მე სხვა მომხმარებლებს ვუგზავნი",
        "tog-diffonly": "დამალე გვერდის შიგთავსი ცვლილების ქვევით",
        "tog-showhiddencats": "დამალული კატეგორიების ჩვენება",
        "october-date": "$1 ოქტომბერი",
        "november-date": "$1 ნოემბერი",
        "december-date": "$1 დეკემბერი",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|კატეგორია|კატეგორიები}}",
        "category_header": "სტატიები კატეგორიაში „$1“",
        "subcategories": "ქვეკატეგორიები",
        "morenotlisted": "ეს არასრული სიაა.",
        "mypage": "გვერდი",
        "mytalk": "განხილვა",
-       "anontalk": "á\83\90á\83\9b IP-á\83¡ á\83\92á\83\90á\83\9cá\83®á\83\98á\83\9aá\83\95á\83\90",
+       "anontalk": "განხილვა",
        "navigation": "ნავიგაცია",
        "and": "&#32;და",
        "qbfind": "მოძებნე",
        "laggedslavemode": "ყურადღება: გვერდი შესაძლოა არ შეიცავდეს ბოლო ცვლილებებს.",
        "readonly": "მონაცემთა ბაზა დახურულია",
        "enterlockreason": "მიუთიეთ ბლოკირების მიზეზი და ხანგრძლივობის ვადა",
-       "readonlytext": "მონაცემთა ბაზა ამჟამად დახურული ახალი რედაქტირებისთვის და სხვა ცვლილებებისთვის, სავარაუდოდ პერიოდული ბაზის გამართვის სამუშაოების გამო, რის შემდეგაც ის კვლავ ნორმალურ ფუნქციას დაუბრუნდება.\n\nადმინისტრატორმა, რომელმაც ის დაბლოკა, შემდეგი მიზეზი მოიყვანა: $1",
+       "readonlytext": "მონაცემთა ბაზა ამჟამად დახურულია ახალი რედაქტირებისთვის და სხვა ცვლილებებისთვის, სავარაუდოდ პერიოდული ბაზის გამართვის სამუშაოების გამო, რის შემდეგაც ის კვლავ ნორმალურ ფუნქციონირებას დაუბრუნდება.\n\nსისტემურმა ადმინისტრატორმა, რომელმაც ის დაბლოკა, შემდეგი მიზეზი მოიყვანა: $1",
        "missing-article": "სისტემამ ვერ აღმოაჩინა მოთხოვნილი გვერდის ტექსტი მონაცემთა ბაზაში,  „$1“ $2.\n\nამგვარი სიტუაცია შესაძლოა წარმოიშვა იმ გვერდის ისტორიის სანახავად, რომელიც უკვე წაშლილი იყო.\n\nიმ შემთხვევაში, თუ საქმე ამაში არ არის, სავარაუდოდ თქვენ აღმოაჩინეთ შეცდომა პროგრამულ კოდში.\nგთხოვთ შეატყობინოთ [[Special:ListUsers/sysop|ადმინისტრატორს]],  URL-ის მითითებით.",
        "missingarticle-rev": "(ჩასწორება#: $1)",
        "missingarticle-diff": "(ცვლილება: $1, $2)",
        "viewsource": "იხილე წყარო",
        "viewsource-title": "იხილეთ წყარო გვერდისთვის $1",
        "actionthrottled": "სიჩქარის შეზღუდვა.",
-       "actionthrottledtext": "á\83¡á\83\9eá\83\90á\83\9bá\83\97á\83\90á\83\9c á\83\91á\83 á\83«á\83\9dá\83\9aá\83\90á\83¡á\83\97á\83\90á\83\9c á\83\93á\83\90á\83\99á\83\90á\83\95á\83¨á\83\98á\83 á\83\94á\83\91á\83\98á\83\97 á\83\90á\83\99á\83 á\83«á\83\90á\83\9aá\83£á\83\9aá\83\98á\83\90 á\83¨á\83\94á\83\9bá\83\93á\83\94á\83\92á\83\98 á\83\9bá\83\9dá\83\9cá\83\90á\83ªá\83\94á\83\9bá\83\94á\83\91á\83\98á\83¡ á\83\9bá\83 á\83\90á\83\95á\83\90á\83\9aá\83¯á\83\94á\83  á\83\92á\83\90á\83\9bá\83\94á\83\9dá\83 á\83\94á\83\91á\83\90. á\83\92á\83\97á\83®á\83\9dá\83\95á\83\97 á\83\92á\83\90á\83\98á\83\9bá\83\94á\83\9dá\83 á\83\9dá\83\97 á\83\98á\83\92á\83\98 á\83\9bá\83\9dá\83\92á\83\95á\83\98á\83\90á\83\9cá\83\94á\83\91á\83\98á\83\97.",
+       "actionthrottledtext": "á\83¡á\83\9eá\83\90á\83\9bá\83\97á\83\90á\83\9c á\83\91á\83 á\83«á\83\9dá\83\9aá\83\90á\83¡á\83\97á\83\90á\83\9c á\83\93á\83\90á\83\99á\83\90á\83\95á\83¨á\83\98á\83 á\83\94á\83\91á\83\98á\83\97 á\83\90á\83\99á\83 á\83«á\83\90á\83\9aá\83£á\83\9aá\83\98á\83\90 á\83\90á\83\9b á\83\9bá\83\9dá\83¥á\83\9bá\83\94á\83\93á\83\94á\83\91á\83\98á\83¡ á\83\9bá\83 á\83\90á\83\95á\83\90á\83\9aá\83¯á\83\94á\83  á\83\92á\83\90á\83\9bá\83\94á\83\9dá\83 á\83\94á\83\91á\83\90 á\83\93á\83 á\83\9dá\83\98á\83¡ á\83\9bá\83\9dá\83\99á\83\9aá\83\94 á\83\9bá\83\9dá\83\9cá\83\90á\83\99á\83\95á\83\94á\83\97á\83¨á\83\98. á\83\97á\83¥á\83\95á\83\94á\83\9c á\83\9aá\83\98á\83\9bá\83\98á\83¢á\83¡ á\83\92á\83\90á\83\93á\83\90á\83\90á\83­á\83\90á\83 á\83\91á\83\94á\83\97. á\83\92á\83\97á\83®á\83\9dá\83\95á\83\97, á\83\92á\83\90á\83\98á\83\9bá\83\94á\83\9dá\83 á\83\9dá\83\97 á\83 á\83\90á\83\9bá\83\93á\83\94á\83\9cá\83\98á\83\9bá\83\94 á\83¬á\83£á\83\97á\83¨á\83\98.",
        "protectedpagetext": "ეს გვერდი დაბლოკილია რედაქტირებისათვის ან სხვა მოქმედებისათვის.",
        "viewsourcetext": "თქვენ შეგიძლიათ ნახოთ ამ გვერდის საწყისი ფაილი და მისი ასლი შექმნათ.",
        "viewyourtext": "თქვენ შეგიძლიათ იხილოთ და დააკოპიროთ  <strong>თქვენი რედაქტირებების</strong> საწყისი ტექსტი ამ გვერდზე:",
        "virus-scanfailed": "სკანირების შეცდომა  (კოდი $1)",
        "virus-unknownscanner": "უცნობი ანტივირუსი:",
        "logouttext": "'''თქვენ ამჟამად გასული ხართ სისტემიდან.'''\n\nზოგიერთმა გვერდმა შესაძლოა ისევ ისე გააგრძელოს ჩვენება თითქოს თქვენ ჯერ კიდევ სისტემაში იყოთ. ამის მოსაგვარებლად საჭიროა თქვენი ბრაუზერის მეხსიერების გაწმენდა.",
+       "cannotlogoutnow-title": "ამჟამად გასვლა შეუძლებელია",
+       "cannotlogoutnow-text": "გასვლა შეუძლებელია, როდესაც იყენებთ $1-ს.",
        "welcomeuser": "მოგესალმებით, $1!",
        "welcomecreation-msg": "თქვენი ანგარიში შექმნილია.\nარ დაგავიწყდეთ თქვენი [[Special:Preferences|{{SITENAME}}-ის კონფიგურაციის]] შეცვლა.",
        "yourname": "მომხმარებელი:",
        "remembermypassword": "დამიმახსოვრე ამ კომპიუტერზე (მაქსიმუმ $1 {{PLURAL:$1|დღე}})",
        "userlogin-remembermypassword": "დამიმახსოვრე",
        "userlogin-signwithsecure": "უსაფრთხო კავშირის გამოყენება",
+       "cannotloginnow-title": "ამჟამად შესვლა შუეძლებელია",
+       "cannotloginnow-text": "შესვლა შეუძლებელია, როდესაც იყენებთ $1-ს.",
        "yourdomainname": "თქვენი დომენი",
        "password-change-forbidden": "თქვენ არ შეგიძლიათ ამ ვიკიში პაროლის შეცვლა.",
        "externaldberror": "საგარეო მონაცემთა ბაზაში აუტენტიფიკაციის შეცდომაა, ან თქვენ არ გაქვთ საკმარისი უფლებები საგარეო ანგარიშში ცვლილებების შესატანად.",
        "createacct-benefit-body2": "{{PLURAL:$1|გვერდი|გვერდი}}",
        "createacct-benefit-body3": "ბოლო {{PLURAL:$1|მომხმარებელი|მომხმარებელი}}",
        "badretype": "თქვენს მიერ შეყვანილი პაროლები ერთმანეთს არ ემთხვევა.",
+       "usernameinprogress": "ამ მომხმარებლისათვის ანგარიში იქმნება. გთხოვთ, დაიცადეთ.",
        "userexists": "ეს სახელი უკვე გამოყენებულია.\nგთხოვთ, აირჩიეთ სხვა.",
        "loginerror": "შეცდომა შესვლაში",
        "createacct-error": "ანგარიშის შექმნის შეცდომა",
        "wrongpasswordempty": "პაროლი არ არის შეყვანილი. სცადეთ განმეორებით.",
        "passwordtooshort": "შეტანილი პაროლი ძალიან მოკლეა.\nიგი უნდა შეიცავდეს მინიმუმ $1 სიმბოლოს.",
        "passwordtoolong": "პაროლი არ შეიძლება აღემატებოდეს {{PLURAL:$1|1 სიმბოლო|$1 სიმბოლოები|$1 სიმბოლოს}}.",
+       "passwordtoopopular": "ფართოდ გავრცელებული პაროლის დაყენება შეუძლებელია. გთოხვთ, აირჩიეთ უფრო უნიკალური პაროლი.",
        "password-name-match": "შეტანილი პაროლი უნდა განსხვავდებოდეს მომხმარებლის სახელისგან.",
        "password-login-forbidden": "ამ მომხმარებლის სახელისა და პაროლის გამოყენება აკრძალულია.",
        "mailmypassword": "ახალი პაროლის დაყენება",
        "resetpass_submit": "მიუთითეთ პაროლი და დარეგისტრირდით",
        "changepassword-success": "თქვენი პაროლი წარმატებით შეიცვალა!",
        "changepassword-throttled": "თქვენ განახორციელეთ ანგარიშში შესვლის ზედმეტად ბევრი მცდელობა. გამორებით შეყვანამდე გთხოვთ დაიცადოთ $1.",
+       "botpasswords": "ბოტის პაროლები",
+       "botpasswords-disabled": "ბოტის პაროლები გათიშულია.",
+       "botpasswords-no-central-id": "ბოტის პაროლების გამოსაყენებლად, საჭიროა ცენტრალიზებული ანგარიშით შესვლა.",
+       "botpasswords-existing": "არსებული ბოტის პაროლები",
+       "botpasswords-createnew": "ახალი ბოტის პაროლის შექმნა",
+       "botpasswords-editexisting": "არსებული ბოტის პაროლის შეცვლა",
+       "botpasswords-label-appid": "ბოტის სახელი:",
+       "botpasswords-label-create": "შექმნა",
+       "botpasswords-label-update": "განახლება",
+       "botpasswords-label-cancel": "გაუქმება",
+       "botpasswords-label-delete": "წაშლა",
+       "botpasswords-label-resetpassword": "პაროლის აღდგენა",
+       "botpasswords-label-grants": "გამოყენებადი ნებართვები:",
+       "botpasswords-help-grants": "ყოველი ნებართვა იძლევა წვდომას ჩამოთვლილ მომხმარებელთა უფლებებზე, რომელიც მომხმარებელს აქვს. იხილეთ [[Special:ListGrants|ნებართვების ცხრილი]] მეტი ინფორმაციისთვის.",
+       "botpasswords-label-restrictions": "გამოყენების შეზღუდვები:",
+       "botpasswords-label-grants-column": "მინიჭებულია",
+       "botpasswords-bad-appid": "ბოტის სახელი \"$1\" არ არის მართებული.",
+       "botpasswords-insert-failed": "ბოტის სახელის $1\" დამატება შეუძლებელია. უკვე დამატებულია?",
+       "botpasswords-update-failed": "ბოტის სახელის \"$1\" განახლება შეუძლებელია. წაშლილია?",
+       "botpasswords-created-title": "ბოტის პაროლი შექმნილია",
+       "botpasswords-created-body": "ბოტის პაროლი \"$1\" წარმატებით შეიქმნა.",
+       "botpasswords-updated-title": "ბოტის პაროლი განახლდა",
+       "botpasswords-updated-body": "ბოტის პაროლი \"$1\" წარმატებით განახლდა.",
+       "botpasswords-deleted-title": "ბოტის პაროლი წაშლილია",
+       "botpasswords-deleted-body": "ბოტის პაროლი \"$1\" წაიშალა.",
+       "botpasswords-newpassword": "ახალი პაროლი <strong>$1</strong>-ით შესასვლელად არის <strong>$2</strong>. <em>გთხოვთ დაიმახსოვრეთ ან ჩაიწერეთ.</em>",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider არ არის ხელმისაწვდომი.",
+       "botpasswords-restriction-failed": "ბოტის პაროლის შეზღუდვები არ უშვებს ამ ავტორიზაციას.",
+       "botpasswords-invalid-name": "მითითებული მომხმარებელი ბოტის პაროლის გამყოფს (\"$1\").",
+       "botpasswords-not-exist": "მომხმარებელ \"$1\"-ს არ აქვს ბოტის პაროლი, სახელად \"$2\".",
        "resetpass_forbidden": "პაროლის შეცვლა შეუძლებელია",
        "resetpass-no-info": "კონკრეტულად ამ გვერდთან სამუშაოდ თქვენ უნდა წარადგინოთ თავი სისტემისადმი.",
        "resetpass-submit-loggedin": "პაროლის შეცვლა",
        "passwordreset-emailtext-ip": "ვიღაცამ (შესაძლოა თქვენ, ამ IP-მისამართიდან $1) მოითხოვა თქვენი \nპაროლის თავიდან დაყენება საიტისათვის {{SITENAME}} ($4).\n{{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:\n\n$2\n\n{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.\nთქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.\nთუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი\nდა აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას\nდა გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.",
        "passwordreset-emailtext-user": "მომხმარებელმა $1 პროექტიდან {{SITENAME}} მოითხოვა თქვენი \nპაროლის თავიდან დაყენება საიტისათვის {{SITENAME}} ($4).\n{{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:\n\n$2\n\n{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.\nთქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.\nთუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი\nდა აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას\nდა გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.",
        "passwordreset-emailelement": "მომხმარებლის სახელი: \n$1\n\nდროებითი პაროლი: \n$2",
-       "passwordreset-emailsentemail": "პაროლის თავიდან დასაყენებელი ელ.ფოსტა გაიგზავნა.",
+       "passwordreset-emailsentemail": "თუ ეს მეილი თქვენს ანგარიშთანაა დაკავშირებული, გაიგზავნება პაროლის თავიდან დასაყენებელი ელექტრონული ფოსტა.",
+       "passwordreset-emailsentusername": "თუ არსებობს მეილი, რომელიც ამ ანგარიშთანაა დაკავშირებული, გაიგზავნება პაროლის თავიდან დასაყენებელი ელექტრონული ფოსტა.",
        "passwordreset-emailsent-capture": "ქვემოთ ნაჩვენები პაროლის თავიდან დასაყენებელი წერილი გაიგზავნა.",
        "passwordreset-emailerror-capture": "ქვემოთ მოცემულია შექმნილი პაროლის დასაყენებელი წერილი, რომლის გაგზავნაც {{GENDER:$2|მომხმარებელთან}} ვერ მოხერხდა: $1 გამო",
        "changeemail": "ელ-ფოსტის მისამართის შეცვლა ან წაშლა",
-       "changeemail-header": "ანგარიშის ელ-ფოსტის მისამართის შეცვლა",
+       "changeemail-header": "შეავსეთ ეს ფორმა მეილის შესაცვლელად. თუ გსურთ თქვენი ანგარიში არ იყოს დაკავშირებული არცერთ მეილთან, ახალი მეილის მისამართის ველი დატოვეთ ცარიელი.",
+       "changeemail-passwordrequired": "ამ ცვლილების დასადასტურებლად დაგჭირდებათ პაროლის შეყვანა.",
        "changeemail-no-info": "თქვენ ავტირიზებული უნდა იყოთ ამ გვერდთან უშუალო წვდომისთვის.",
        "changeemail-oldemail": "ელ-ფოსტის ამჟამინდელი მისამართი:",
        "changeemail-newemail": "ახალი ელ-ფოსტის მისამართი:",
+       "changeemail-newemail-help": "თუ გსურთ მეილის წაშლა, ეს ველი ცარიელი უნდა დარჩეს. თუ მეილი წაიშლება, თქვენ ვერ შეძლებთ დავიწყებული პაროლის აღდგენას, ასევე არ მიიღებთ ელექტრონულ შეტყობინებებს ამ პროექტიდან.",
        "changeemail-none": "(არაფერი)",
        "changeemail-password": "თქვენი პაროლი პროექტში {{SITENAME}}:",
        "changeemail-submit": "ელ-ფოსტის შეცვლა",
        "copyrightwarning2": "*გაითვალისწინეთ, რომ ნებისმიერი წვლილი {{SITENAME}}-ში შეიძლება ჩასწორდეს, შეიცვალოს ან წაიშალოს სხვა რედაქტორების მიერ.\n*თუ არ გსურთ, რომ თქვენი ნამუშევარი შეუზღუდავად იქნეს რედაქტირებული, მას აქ ნუ განათავსებთ.<br />\n*თქვენ აგრეთვე პირობას დებთ, რომ თქვენს მიერ განთავსებული ტექსტი თქვენი დაწერილია, ან გადმოწერილია საზოგადოებრივი დომენიდან ან მსგავსი თავისუფალი წყაროდან. (იხ. $1 დეტალებისთვის).\n*'''ნუ შემოიტანთ საავტორო უფლებებით დაცულ ნაშრომს ავტორის ნებართვის გარეშე!'''",
        "editpage-cannot-use-custom-model": "ამ გვერდის მასალის მოდელი არ შეიძლება, რომ შეიცვალოს.",
        "longpageerror": "'''შეცდომა: თქვენს მიერ აკრეფილი ტექსტის ზომა {{PLURAL:$1|$1 კილობაიტია}}, რაც აღემატება, დადგენილ {{PLURAL:$2|$2 კილობაიტიან}} ზღვარს. გვერდის შენახვა შეუძლებელია.'''",
-       "readonlywarning": "'''გაფრთხილება: მონაცემთა ბაზა დახურულია პერიოდული შემოწმებისთვის, შესაბამისად თქვენ ვერ შეძლებთ რედაქტირებას ამ მომენტში.'''\nსასურველია ტექსტის ასლი შეინახოთ ტექსტურ რედაქტორში და მოგვიანებით შემოიტანოთ.\n\nმონაცემთა ბაზის დამბლოკველმა ადმინისტრატორმა შემდეგი კომენტარი დატოვა: $1",
+       "readonlywarning": "<strong>გაფრთხილება: მონაცემთა ბაზა დახურულია პერიოდული შემოწმებისთვის, შესაბამისად თქვენ ვერ შეძლებთ რედაქტირებას ამ მომენტში.</strong>\nსასურველია ტექსტის ასლი შეინახოთ ტექსტურ რედაქტორში და მოგვიანებით შემოიტანოთ.\n\nსისტემურმა ადმინისტრატორმა შემდეგი კომენტარი დატოვა: $1",
        "protectedpagewarning": "'''ყურადღება:  ეს გვერდი დაბლოკილია და მისი რედაქტირება შეუძლიათ მხოლოდ მომხმარებლებს ადმინისტრატორის უფლებებით'''\nიხილეთ დაცვის ჟურნალის ჩანაწერი",
        "semiprotectedpagewarning": "'''ყურადღება:''' ეს გვერდი დაბლოკილია და მისი რედაქტირება მხოლოდ რეგისტრირებულ მომხმარებლებს შეუძლიათ.\nიხილეთ ჟურნალი დამატებითი ინფორმაციისთვის:",
-       "cascadeprotectedwarning": "'''გაფრთხილება:''' ეს გვერდი ჩაკეტილია ისე რომ მისი რედაქტირება მხოლოდ ადმინისტრატორებს შეუძლია, რადგან იგი ეკუთვნის შემდეგ კასკადურად დაცვის {{PLURAL:$1|გვერდს|გვერდებს}}:",
+       "cascadeprotectedwarning": "<strong>გაფრთხილება:</strong> ეს გვერდი დაცულია ისე, რომ მისი რედაქტირება მხოლოდ ადმინისტრატორებს შეუძლია, რადგან იგი ეკუთვნის შემდეგ კასკადურად დაცვის {{PLURAL:$1|გვერდს|გვერდებს}}:",
        "titleprotectedwarning": "'''ყურადღება! გვერდი ამ სათაურით დაცულია, მისი რედაქტირება შეუძლიათ მხოლოდ [[Special:ListGroupRights|სპეციალური უფლებების]] მქონე მომხმარებლებს.'''\nიხილეთ ჟურნალი დამატებითი ინფორმაციისთვის:",
        "templatesused": "ამ გვერდზე გამოყენებული {{PLURAL:$1|თარგი|თარგები}}:",
        "templatesusedpreview": "{{PLURAL:$1|თარგი, რომელიც|თარგები, რომლებიც}} წინასწარ გადახედვის გვერდზეა გამოყენებული:",
        "mergehistory-go": "აჩვენეთ გაერთიანებული ცვლილებები",
        "mergehistory-submit": "ცვლილებების შერწყმა",
        "mergehistory-empty": "რაიმე ცვლილების შერწყმა შეუძლებელია.",
-       "mergehistory-done": "$3 {{PLURAL:$3|შესწორება|შესწორებები|შესწორებების}}  $1-დან წარმატებით {{PLURAL:$3|გადაიტანა|გადაიტანნენ|გადატანილი იქნენ}}  [[:$2]]-ში.",
+       "mergehistory-done": "$3 {{PLURAL:$3|შესწორება|შესწორებები}} $1-დან წარმატებით {{PLURAL:$3|შეერწყა|შეერწყა}} [[:$2]]-ს.",
        "mergehistory-fail": "ვერ მოხერხდა გვერდების ისტორიის გაერთიანება, გთხოვთ შეამოწმოთ გვერდის პაარამეტრები და დრო.",
        "mergehistory-fail-toobig": "არ ხერხდება ისტორიების შერწყმა, რამეთუ აუცილებელია დაშვებული ლიმიტის მეტი ნაწილის გადატანა $1 ვერსიაში.",
        "mergehistory-no-source": "დანიშნულების გვერდი $1 არ არსებობს.",
        "showingresultsinrange": "ქვემოთ მოცემულია $1-მდე შედეგი, $2-იდან $3-მდე დიაპაზონში.",
        "search-showingresults": "{{PLURAL:$4|შედეგი <strong>$1</strong> დან <strong>$3</strong>|შედეგი <strong>$1 - $2</strong> დან <strong>$3</strong>}}",
        "search-nonefound": "მსგავსი მოთხოვნით გვერდი ვერ მოიძებნა.",
+       "search-nonefound-thiswiki": "მსგავსი მოთხოვნით გვერდი ვერ მოიძებნა.",
        "powersearch-legend": "გაფართოებული ძიება",
        "powersearch-ns": "ძიება სახელთა სივრცეებში:",
        "powersearch-togglelabel": "მონიშვნა:",
        "userrights": "მომხმარებელთა უფლებების მართვა",
        "userrights-lookup-user": "მომხმარებელთა ჯგუფების მართვა",
        "userrights-user-editname": "შეიტანეთ მომხმარებლის სახელი:",
-       "editusergroup": "მომხმარებელთა ჯგუფების რედაქტირება",
+       "editusergroup": "{{GENDER:$1|მომხმარებელთა}} ჯგუფების რედაქტირება",
        "editinguser": "უფლებების შეცვლა {{GENDER:$1|მომხმარებლისთვის}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "დაარედაქტირეთ მომხმარებელთა ჯგუფები",
-       "saveusergroups": "მომხმარებელთა ჯგუფების შენახვა",
+       "saveusergroups": "{{GENDER:$1|მომხმარებელთა}} ჯგუფების შენახვა",
        "userrights-groupsmember": "ჯგუფის წევრი:",
        "userrights-groupsmember-auto": "ნაგულისხმევი წევრი:",
        "userrights-groupsmember-type": "$1",
        "right-createpage": "გვერდების შექმნა (არა განხილვის გვერდებისა)",
        "right-createtalk": "განხილვის გვერდების შექმნა",
        "right-createaccount": "მომხმარებლების ახალი ანგარიშების შექმნა",
+       "right-autocreateaccount": "ავტომატურად შესვლა გარე მომხმარებლის ანგარიშით",
        "right-minoredit": "ცვლილებების მითითება, როგორც „მცირე რედაქტირება“",
        "right-move": "გვერდების გადატანა",
        "right-move-subpages": "გვერდები გადამისამართდეს ქვეგვერდებთან ერთად",
        "right-managechangetags": "[[Special:Tags|tags]] შექმნა და წაშლა მონაცემთა ბაზიდან",
        "right-applychangetags": "[[Special:Tags|tags]] მიღება თქვენ ცვლილებებთან ერთად",
        "right-changetags": "თვითნებური [[Special:Tags|tags]] დამატება ან წაშლა ცალკეულ ცვლილებებსა და ჟურნალის ჩანაწერებში",
-       "grant-group-email": "ელ.ფოსტის გაგზავნა",
+       "grant-generic": "\"$1\" უფლებები",
+       "grant-group-page-interaction": "კავშირი გვერდებთან",
+       "grant-group-file-interaction": "კავშირი მედია-ფაილებთან",
+       "grant-group-watchlist-interaction": "კავშირი კონტროლის სიასთან",
+       "grant-group-email": "ელექტრონული ფოსტის გაგზავნა",
+       "grant-group-customization": "კონფიგურაცია",
+       "grant-group-administration": "ადმინისტრაციული მოქმედებების შესრულება",
+       "grant-blockusers": "მომხმარებლების დაბლოკვა და ბლოკის მოხსნა",
+       "grant-createaccount": "ანგარიშების შექმნა",
+       "grant-createeditmovepage": "გვერდის შექმნა, რედაქტირება და გადატანა",
+       "grant-delete": "გვერდების, რედაქტირებების და ჟურნალის ჩანაწერების წაშლა",
+       "grant-editinterface": "მედიავიკის სახელთა სივრცისა და მომხმარებლის CSS/JavaScript-ის რედაქტირება",
+       "grant-editmycssjs": "თქვენი მომხმარებლის CSS/JavaScript-ის რედაქტირება",
        "grant-editmyoptions": "თქვენი საკუთარი კონფიგურაციის რედაქტირება",
        "grant-editmywatchlist": "თქვენი კონტროლის სიის რედაქტირება",
+       "grant-editpage": "არსებული გვერდების რედაქტირება",
+       "grant-editprotected": "დაცული გვერდების რედაქტირება",
+       "grant-oversight": "მომხმარებლებისა და შესწორებების დამალვა",
+       "grant-patrol": "გვერდების რედაქტირებების შემოწმება",
+       "grant-protect": "გვერდების და დაცვა და დაცვის მოხსნა",
+       "grant-rollback": "გვერდების რედაქტირებების სწრაფი გაუქმება",
+       "grant-sendemail": "გაგუგზავნე ელექტრონული ფოსტა სხვა მომხმარებლებს",
+       "grant-uploadeditmovefile": "ფაილების ატვირთვა, ჩანაცვლება და გადატანა",
+       "grant-uploadfile": "ახალი ფაილების ატვირთვა",
+       "grant-basic": "ძირითადი უფლებები",
+       "grant-viewdeleted": "წაშლილი ფაილებისა და გვერდების ნახვა",
+       "grant-viewmywatchlist": "თქვენი კონტროლის სიის ხილვა",
        "newuserlogpage": "მომხმარებლის რეგისტრაციის ჟურნალი",
        "newuserlogpagetext": "ბოლო დროს დარეგისტრირებულ მომხმარებელთა სია",
        "rightslog": "მომხმარებლის უფლებების ჟურნალი",
        "action-createpage": "გვერდების შექმნა",
        "action-createtalk": "განხილვის გვერდების შექმნა",
        "action-createaccount": "ამ ანგარიშის შექმნა",
+       "action-autocreateaccount": "გარე მომხმარებლის ანგარიშის ავტომატურად შექმნა",
        "action-history": "ამ გვერდის ისტორიის ნახვა",
        "action-minoredit": "მონიშვნა, როგორც მცირე რედაქტირება",
        "action-move": "ამ გვერდის გადატანა",
        "recentchanges-legend-heading": "'''ლეგენდა:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (იხ. აგრეთვე [[Special:NewPages|ახალი გვერდების სია]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
+       "recentchanges-submit": "ჩვენება",
        "rcnotefrom": "ქვემოთ {{PLURAL:$5|ნაჩვენებია ცვლილება|ნაჩვენებია ცვლილებები}} <strong>$3, $4</strong>-დან (ნაჩვენებია არაუმეტეს <strong>$1</strong>).",
        "rclistfrom": "ახალი ცვლილებების ჩვენება დაწყებული $3 $2-დან",
        "rcshowhideminor": "მცირე რედაქტირების $1",
        "rcshowhidemine": "ჩემი რედაქტირების $1",
        "rcshowhidemine-show": "ჩვენება",
        "rcshowhidemine-hide": "დამალვა",
+       "rcshowhidecategorization": "$1 გვერდის კატეგორიზაცია",
        "rcshowhidecategorization-show": "ჩვენება",
        "rcshowhidecategorization-hide": "დამალვა",
        "rclinks": "ბოლო $1 ცვლილების ჩვენება უკანასკნელი $2 დღის მანძილზე<br />$3",
        "recentchangeslinked-summary": "ეს არის მითითებულ გვერდთან (ან მითითებული კატეგორიის წევრებთან) დაკავშირებულ გვერდებში ბოლო დროს განხორციელებული ცვლილებების სია.\nგვერდები [[Special:Watchlist|თქვენი კონტროლის სიაში]] გამოყოფილია '''სქლად'''.",
        "recentchangeslinked-page": "გვერდის დასახელება:",
        "recentchangeslinked-to": "საპირისპიროდ აჩვენეთ ამ გვერდზე ბმულის მქონე გვერდების ცვლილებები",
+       "recentchanges-page-added-to-category": "[[:$1]] დამატებულია კატეგორიაში",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] და {{PLURAL:$2|ერთი გვერდი|$2 გვერდი}} დამატებულია კატეგორიაში",
+       "recentchanges-page-removed-from-category": "[[:$1]] წაიშალა კატეგორიიდან",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] და {{PLURAL:$2|ერთი გვერდი|$2 გვერდი}} წაიშალა კატეგორიიდან",
+       "autochange-username": "მედიავიკის ავტომატური ცვლილება",
        "upload": "ფაილის დამატება",
        "uploadbtn": "ფაილის დამატება",
        "reuploaddesc": "გააუქმეთ ატვირთვა და დაუბრუნდით ატვირთვის ფორმას.",
        "uploaddisabledtext": "ფაილების ატვირთვა შეუძლებელია.",
        "php-uploaddisabledtext": "ფაილების ატვირთვა შეჩერებულია PHP-ით. გთხოვთ შეამოწმოთ file_uploads-ის მნიშვნელობა.",
        "uploadscripted": "ფაილი შეიცავს HTML-კოდს, ან სკრიპტს, რომელიც ბროუზერმა შეიძლება არასწორედ გაანალიზოს.",
+       "uploaded-hostile-svg": "ატვირთულ SVG-ფაილის style ელემენტში ნაპოვნია საფრთხის შემცვლელი CSS-ის კოდი.",
        "uploadscriptednamespace": "ეს SVG ფაილი შეიცავს სახელთა არაკორექტულ სივრცეს \"$1\".",
        "uploadinvalidxml": "XML ჩატვირთულ ფაილში არ შეიძლება იყოს ანალიზირებული",
        "uploadvirus": "ფაილი ვირუსს შეიცავს! დეტალები: $1",
        "watchthisupload": "უთვალთვალე ამ ფაილს",
        "filewasdeleted": "ამ სახელწოდების ფაილი უკვე არსებობდა, მაგრამ წაშლილ იქნა. ხელმეორედ ჩატვირთვამდე იხილეთ $1.",
        "filename-bad-prefix": "ასატვირთვი ფაილი იწყება '''„$1“''', რაც არის ფოტოკამერის მიერ სურათებისთვის მიცემული სტანდარტული სახელი. გთხოვთ აირჩიოთ ფაილის აღმწერი უკეთესი სახელი.",
-       "upload-success-subj": "წარმატებული გადატვირთვა",
-       "upload-success-msg": "თქვენი ატვირთვა [$2] შეგიძლიათ იხილოთ აქ: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "ატვირთვის პრობლემა",
-       "upload-failure-msg": "ატვირთვისას პრობლემა შეიქმნა [$2]:\n\n$1",
-       "upload-warning-subj": "ატვირთვისთვის გაფრთხილება",
-       "upload-warning-msg": "[$2]-ის ატვირთვისას დაფიქსირდა შეცდომა. შეცდომის გამოსასწორებლად დაბრუნდით [[Special:Upload/stash/$1|ატვირთვის ფორმა]]ზე.",
        "upload-proto-error": "არასწორი პროტოკოლი",
        "upload-proto-error-text": "ატვირთვის წასაშლელად საჭიროა მისამართი, რომელიც იწყება <code>http://</code> or <code>ftp://</code>-ით.",
        "upload-file-error": "შიდა შეცდომა",
        "foreign-structured-upload-form-label-infoform-categories": "კატეგორიები",
        "foreign-structured-upload-form-label-infoform-date": "თარიღი",
        "foreign-structured-upload-form-label-own-work-message-shared": "მე ვადასტურებ, რომ ამ ფაილზე საავტორო უფლებების მფლობელი ვარ და ვთანხმდები ამ ფაილის შეუქცევადად განთავსებაზე ვიკისაწყობში [https://creativecommons.org/licenses/by-sa/4.0/deed.ka Creative Commons Attribution-ShareAlike 4.0] ლიცენზიით, აგრეთვე ვეთანხმები [https://wikimediafoundation.org/wiki/Terms_of_Use გამოყენების წესებს].",
+       "foreign-structured-upload-form-3-label-yes": "დიახ",
+       "foreign-structured-upload-form-3-label-no": "არა",
        "backend-fail-stream": "ფაილი $1 ტრანსლირება ვერ მოხერხდა.",
        "backend-fail-backup": "ფაილი $1 სარეზერვო ასლის გაკეთება ვერ მოხერხდა.",
        "backend-fail-notexists": "ფაილი $1 არ არსებობს.",
        "mostrevisions": "ყველაზე მეტად რედაქტირებული სტატიები",
        "prefixindex": "ყველა გვერდი (პრეფიქსით)",
        "prefixindex-namespace": "ყველა პრეფიქსიანი გვერდი ($1 სახელთა სივრცე)",
+       "prefixindex-submit": "ჩვენება",
        "prefixindex-strip": "პრეფიქსის დამალვა შედეგების სიაში",
        "shortpages": "მოკლე გვერდები",
        "longpages": "გრძელი გვერდები",
        "protectedpages-performer": "მომხმარებლის დაცვა",
        "protectedpages-params": "დაცვის პარამეტრები",
        "protectedpages-reason": "მიზეზი",
+       "protectedpages-submit": "გვერდების ჩვენება",
        "protectedpages-unknown-timestamp": "უცნობი",
        "protectedpages-unknown-performer": "უცნობი მომხმარებელი",
        "protectedtitles": "დაცული სათაურები",
        "protectedtitles-summary": "ამ გვერდზე ჩამოთვლიია სახელწოდებები, რომლებიც შექმნისგანაა დაცული. არსებული გვერდების სიისთვის რომლებიც ამჟამად დაცულია, იხ. [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "ამ დროისთვის არ არსებობს მოთხოვნილი გვერდები მოცემული პარამეტრებით.",
+       "protectedtitles-submit": "სათაურების ჩვენება",
        "listusers": "მომხმარებლების სია",
        "listusers-editsonly": "აჩვენთ მხოლოდ ის მომხმარებლები, რომლებსაც ერთი შესწორება აქვს გაკეთებული.",
        "listusers-creationsort": "დაალაგეთ შექმნის თარიღის მიხედვით.",
        "usereditcount": "$1 რედაქტირება",
        "usercreated": "{{GENDER:$3|შექმნილია}} $2-ზე $1-ში",
        "newpages": "ახალი გვერდები",
+       "newpages-submit": "ჩვენება",
        "newpages-username": "მომხმარებლის სახელი:",
        "ancientpages": "უძველესი გვერდები",
        "move": "გადატანა",
        "specialloguserlabel": "შემსრულებელი:",
        "speciallogtitlelabel": "მიზანი (სათაური, ან {{ns:user}}:მომხმარებლის სახელი):",
        "log": "ჟურნალები",
+       "logeventslist-submit": "ჩვენება",
        "all-logs-page": "ყველა საზოგადო ჟურნალი",
        "alllogstext": "{{SITENAME}}-ის ყველა არსებული ჩანაწერის კომბინირებული ჩვენება.\nშეგიძლიათ გაცხრილოთ იგი ჩანაწერის ტიპის, მომხმარებლის სახელის, ან დაკავშირებული გვერდის შერჩევით.",
        "logempty": "შედეგები არ არის სიაში.",
        "log-title-wildcard": "სათაურების ძებნა, რომლებიც იწყება ამ ტექსტით",
        "showhideselectedlogentries": "არჩეული ჟურნალის ჩანაწერის ჩვენება/დამალვა",
        "log-edit-tags": "ტეგების რედაქტირება ამორჩეული ჟურნალის ჩანაწერებიდან",
+       "checkbox-select": "აირჩიეთ: $1",
+       "checkbox-all": "ყველა",
+       "checkbox-none": "არაფერი",
+       "checkbox-invert": "ჩასმა",
        "allpages": "ყველა გვერდი",
        "nextpage": "შემდეგი გვერდი ($1)",
        "prevpage": "წინა გვერდი ($1)",
        "activeusers-hidebots": "რობოტების დამალვა",
        "activeusers-hidesysops": "ადმინისტრატორების დამალვა",
        "activeusers-noresult": "მომხმარებლები არ არიან ნაპოვნი.",
+       "activeusers-submit": "აქტიური მომხმარებლების ჩვენება",
        "listgrouprights": "მომხმარებელთა ჯგუფების უფლებები",
        "listgrouprights-summary": "ქვემოთ წარმოდგენილია ამ ვიკიში გარკვეულ ჯგუფთა სია და მათი უფლებები.\nშესაძლოა არსებობს [[{{MediaWiki:Listgrouprights-helppage}}|დამატებითი ინფორმაცია]] ინდივიდუალურ უფლებებთან დაკავშირებით.",
        "listgrouprights-key": "ლეგენდა:\n* <span class=\"listgrouprights-granted\">მიცემული უფლებები</span>\n* <span class=\"listgrouprights-revoked\">ჩამორთმეული უფლებები</span>",
        "listgrouprights-namespaceprotection-header": "სახელთა სივრცის შეზღუდვები",
        "listgrouprights-namespaceprotection-namespace": "სახელთა სივრცე",
        "listgrouprights-namespaceprotection-restrictedto": "უფლება, რომელიც მომხმარებელს რედაქტირების უფლებას აძლევს",
+       "listgrants": "ანიჭებს",
+       "listgrants-grant": "ნებართვა",
+       "listgrants-rights": "უფლებები",
        "trackingcategories": "კატეგორიის მიდევნება",
        "trackingcategories-summary": "ამ გვერდზე ჩამოთვლილია სადამკვირებლო კატეგორიები, რომლებიც ავტომატურად იმსებიან MediaWiki-ის პროგრამული უზრუნველყოფით. მათი გადარქმევა შეიძლება, თუკი შეიცვლება შესაბამისი სისტემური შეტყობინება, MediaWiki-ის სახელთა სივრცეში.",
        "trackingcategories-msg": "კატეგორიის მიდევნება",
        "emailccsubject": "შეტყობინების ასლი გაუგზავნეთ $1: $2",
        "emailsent": "ელ. ფოსტა გაგზავნილია",
        "emailsenttext": "თქვენი ელ. შეტყობინება გაგზავნილია.",
-       "emailuserfooter": "ეს ელ. შეტყობინება $1-მა გაუგზავნა $2-ს „გაუგზავნეთ მომხმარებელს ელ. შეტყობინება“ ფუნქციით {{SITENAME}}-დან.",
+       "emailuserfooter": "ეს ელ. შეტყობინება $1-მა {{GENDER:$1|გაუგზავნა}} {{GENDER:$2|$2}}-ს ფუნქციით „გაუგზავნეთ მომხმარებელს ელ. შეტყობინება“ {{SITENAME}}-დან.",
        "usermessage-summary": "სისტემური შეტყობინების დატოვება.",
        "usermessage-editor": "სისტემური მესენჯერი",
        "usermessage-template": "MediaWiki:მომხმარებლის შეტყობინება",
        "watchlistanontext": "იხილეთ ან რედაქტირება გაუკეთეთ თქვენი კონტროლის სიაში შეტანილ ერთეულებს:",
        "watchnologin": "რეგისტრაცია ვერ შესრულდა",
        "addwatch": "კონტროლის სიაში დამატება",
-       "addedwatchtext": "გვერდი „[[:$1]]“ დაემატა თქვენს [[Special:Watchlist|კონტროლის სიას]].\nამ და მასთან დაკავშირებული განხილვის გვერდის შემდგომი ცვლილებები აისახება იქ.",
+       "addedwatchtext": "„[[:$1]]“ და მისი განხილვის გვერდი დაემატა თქვენს [[Special:Watchlist|კონტროლის სიას]].",
        "addedwatchtext-short": "გვერდი „$1“ დაემატა თქვენი კონტროლის სიას.",
        "removewatch": "კონტროლის სიიდან წაშლა",
-       "removedwatchtext": "გვერდი „[[:$1]]“ ამოღებულია თქვენი [[Special:Watchlist|კონტროლის სიიდან]].",
+       "removedwatchtext": "„[[:$1]]“ და მისი განხილვის გვერდი ამოღებულია თქვენი [[Special:Watchlist|კონტროლის სიიდან]].",
        "removedwatchtext-short": "გვერდი „$1“ წაიშალა თქვენი კონტროლის სიიდან.",
        "watch": "კონტროლი",
        "watchthispage": "ამ გვერდის კონტროლი",
        "wlheader-showupdated": "თქვენი ბოლო ვიზიტის შემდეგ შეცვლილი გვერდები, აღნიშნულია '''მუქად'''.",
        "wlnote": "ქვემოთ {{PLURAL:$1|ნაჩვენებია ბოლო ცვლილება|ნაჩვენებია ბოლო '''$1''' ცვლილება}} უკანასკნელი {{PLURAL:$2|საათის|'''$2''' საათის}} მანძილზე, $3, $4 მდგომარეობით.",
        "wlshowlast": "ბოლო $1 საათის $2 დღის ჩვენება",
-       "watchlistall2": "ყველა",
-       "wlshowtime": "აჩვენე უკანასკნელი:",
+       "watchlist-hide": "დამალვა",
+       "watchlist-submit": "ჩვენება",
+       "wlshowtime": "აჩვენე დროის პერიოდი:",
        "wlshowhideminor": "მცირე რედაქტირების",
        "wlshowhidebots": "რობოტების",
        "wlshowhideliu": "რეგისტრირებული მომხმარებლების",
        "wlshowhideanons": "ანონიმური მომხმარებლების",
+       "wlshowhidepatr": "შემოწმებული რედაქტირებები",
        "wlshowhidemine": "ჩემი რედაქტირება",
+       "wlshowhidecategorization": "გვერდის კატეგორიზაცია",
        "watchlist-options": "კონტროლის სიის პარამეტრები",
        "watching": "კონტროლებადი...",
        "unwatching": "არაკონტროლირებადი...",
        "deletepage": "გვერდის წაშლა",
        "confirm": "დადასტურება",
        "excontent": "შინაარსი იყო: „$1“",
-       "excontentauthor": "შინაარსი იყო: „$1“ (და ერთადერთი ავტორი იყო „[[Special:Contributions/$2|$2]]“)",
+       "excontentauthor": "შინაარსი იყო: „$1“ და ერთადერთი ავტორი იყო „[[Special:Contributions/$2|$2]]“ ([[User talk:$2|განხილვა]])",
        "exbeforeblank": "გვერდის შინაარსი წაშლამდე იყო შემდეგი: „$1“",
        "delete-confirm": "„$1“-ის წაშლა",
        "delete-legend": "წაშლა",
        "rollback-success": "გაუქმდა რედაქტირება $1; დაბრუნება ვერსიაზე $2.",
        "sessionfailure-title": "სეანსის შეცდომა",
        "sessionfailure": "ჩანს, რომ პრობლემაა თქვენი რეგისტრაციის სესიისათვის;\nეს მოქმედება შეჩერდა თქვენი სესიაში შემოჭრის თავიდან ასაცილებლად.\nგთხოვთ, დააწკაპუნოთ ღილაკს „უკან“ და თავიდან ჩართოთ გვერდი, რომლიდანაც შემოხვედით და სცადოთ განმეორებით.",
+       "changecontentmodel": "გვერდის კონტენტური მოდელის შეცვლა",
        "changecontentmodel-legend": "შინაარსის მოდელის შეცვლა",
        "changecontentmodel-title-label": "გვერდის სათაური",
        "changecontentmodel-model-label": "შინაარსის ახალი მოდელი",
        "changecontentmodel-reason-label": "მიზეზი:",
        "changecontentmodel-success-title": "შინაარსის მოდელი შეიცვალა",
+       "changecontentmodel-success-text": "[[:$1]]-ის კონტენტის ტიპი შეიცვალა.",
+       "changecontentmodel-cannot-convert": "[[:$1]]-ის შინაარსის $2-ის ტიპზე კონვერტაცია შეუძლებელია.",
        "logentry-contentmodel-change-revertlink": "დაბრუნება",
        "logentry-contentmodel-change-revert": "დაბრუნება",
        "protectlogpage": "დაცვის ისტორია",
        "whatlinkshere-hidelinks": "ბმულების $1",
        "whatlinkshere-hideimages": "$1 სურათის ბმულები",
        "whatlinkshere-filters": "ფილტრები",
+       "whatlinkshere-submit": "წინ",
        "autoblockid": "ავტომატური ბლოკირება #$1",
        "block": "მომხმარებლის დაბლოკვა",
        "unblock": "მომხმარებელზე ბლოკის მოხსნა",
        "blockip": "მომხმარებელ {{GENDER:$1|დაბლოკვა}}",
        "blockip-legend": "მომხმარებლის დაბლოკვა",
-       "blockiptext": "გამოიყენეთ ქვემოთ მოყვანილი ფორმა სპეციფიური IP მისამართის\nან მომხმარებლისთვის რედაქტირების ბლოკირებისთვის.\nამის გაკეთება შეიძლება მხოლოდ ვანდალიზმის ასარიდებლად,\nდა [[{{MediaWiki:Policy-url}}|პოლიტიკასთან]] თანხმობაში.\nჩაწერეთ სპეციფიური მიზეზი ქვემოთ (მაგ. მიუთითეთ გვერდები,\nრომლებზეც ვანდალიზმი განხორციელდა).",
+       "blockiptext": "გამოიყენეთ ქვემოთ მოყვანილი ფორმა სპეციფიური IP მისამართის\nან მომხმარებლისთვის რედაქტირების ბლოკირებისთვის.\nამის გაკეთება შეიძლება მხოლოდ ვანდალიზმის ასარიდებლად,\nდა [[{{MediaWiki:Policy-url}}|პოლიტიკასთან]] თანხმობაში.\nჩაწერეთ სპეციფიური მიზეზი ქვემოთ (მაგ. მიუთითეთ გვერდები,\nრომლებზეც ვანდალიზმი განხორციელდა).\nშეგიძლიათ დაბლოკოთ კონკრეტუყლი IP დიაპაზონი [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] სინტაქსის გამოყენებით; უდიდესი შესაძლო დიაპაზონია /$1 IPv4-თვის და /$2 IPv6-თვის.",
        "ipaddressorusername": "IP მისამართი ან მომხმარებლის სახელი",
        "ipbexpiry": "ვადა",
        "ipbreason": "მიზეზი:",
        "block-log-flags-hiddenname": "მომხმარებლის სახელი დაფარულია",
        "range_block_disabled": "ადმინთათვის დაბლოკვათა აკრძალული დიაპაზონი",
        "ipb_expiry_invalid": "მოქმედების მიუღებელი პერიოდი",
+       "ipb_expiry_old": "ვადის გასვლის დრო წარსულშია.",
        "ipb_expiry_temp": "ბლოკირება მომხმარებლის სახელის დამალვით უვადო უნდა იყოს",
        "ipb_hide_invalid": "შეუძლებელია მოცემული ანგარიშის დამალვა, მისგან განხორციელებულია {{PLURAL:$1|ერთი რედაქტირება|$1 რედაქტირებები}}.",
        "ipb_already_blocked": "„$1“ უკვე ბლოკირებულია",
        "export-download": "შეინახე როგორც ფაილი",
        "export-templates": "ჩართეთ თარგები",
        "export-pagelinks": "ჩართეთ დაკავშირებული გვერდები სიღრმით:",
+       "export-manual": "დაამატეთ გვერდები ხელით:",
        "allmessages": "ყველა სისტემური შეტყობინება",
        "allmessagesname": "დასახელება",
        "allmessagesdefault": "სტანდარტული ტექსტი",
        "javascripttest-pagetext-frameworks": "გთხოვთ, აირჩიეთ ტესტირების ერთ-ერთი შემდეგი გარემო: $1",
        "javascripttest-pagetext-skins": "ტესტების გასაშვებად აირჩიეთ გაფორმების თემა:",
        "javascripttest-qunit-intro": "იხილეთ [$1 ტესტირების დოკუმენტები] mediawiki.org-ზე.",
-       "tooltip-pt-userpage": "თქვენი მომხმარებლის გვერდი",
+       "tooltip-pt-userpage": "{{GENDER:|თქვენი მომხმარებლის}} გვერდი",
        "tooltip-pt-anonuserpage": "ჩემი IP-ის მქონე მომხმარებლის გვერდი",
-       "tooltip-pt-mytalk": "თქვენი განხილვის გვერდი",
+       "tooltip-pt-mytalk": "{{GENDER:|თქვენი}} განხილვის გვერდი",
        "tooltip-pt-anontalk": "ჩემი  IP-ის განხილვის გვერდი",
-       "tooltip-pt-preferences": "თქვენი კონფიგურაცია",
+       "tooltip-pt-preferences": "{{GENDER:|თქვენი}} კონფიგურაცია",
        "tooltip-pt-watchlist": "გვერდების სია, რომელთა ცვლილებებს თქვენ უთვალთვალებთ",
-       "tooltip-pt-mycontris": "თქვენი წვლილის სია",
+       "tooltip-pt-mycontris": "{{GENDER:|თქვენი}} წვლილის სია",
        "tooltip-pt-anoncontribs": "რედაქტირებების სია შესრულებული ამ IP მისამართიდან",
        "tooltip-pt-login": "სასურველია დარეგისტრირდეთ, თუმცა აუცილებელია არაა.",
        "tooltip-pt-logout": "გასვლა",
        "tooltip-t-recentchangeslinked": "ბოლო ცვლილებები ამ გვერდთან დაკავშირებულ გვერდებზე",
        "tooltip-feed-rss": "მოცემული გვერდის RSS არხის ტრანსალაცია",
        "tooltip-feed-atom": "მოცემული გვერდის Atom არხის ტრანსალაცია",
-       "tooltip-t-contributions": "იხილეთ ამ მომხმარებლის წვლილის სია",
-       "tooltip-t-emailuser": "გაუგზავნე ელ. ფოსტა ამ მომხმარებელს",
+       "tooltip-t-contributions": "იხილეთ {{GENDER:$1|ამ მომხმარებლის}} წვლილის სია",
+       "tooltip-t-emailuser": "გაუგზავნე ელ. ფოსტა {{GENDER:$1|ამ მომხმარებელს}}",
        "tooltip-t-info": "მეტი ინფორმაცია ამ გვერდის შესახებ",
        "tooltip-t-upload": "ჩატვირთეთ მედიაფაილები",
        "tooltip-t-specialpages": "ყველა სპეციალური გვერდის სია",
        "pageinfo-robot-index": "დაშვებულია",
        "pageinfo-robot-noindex": "არ არის დაშვებული",
        "pageinfo-watchers": "გვერდის დამკვირვებელთა რაოდენობა",
+       "pageinfo-visiting-watchers": "გვერდის მნახველთა სია, რომლებიც ესტუმრნენ უკანასკნელ ცვლილებებს",
        "pageinfo-few-watchers": "სულ მცირე $1 {{PLURAL:$1|დამკვირვებელი|დამკვირვებელი}}",
        "pageinfo-redirects-name": "გადამისამართებების რაოდენობა ამ გვერდზე",
        "pageinfo-redirects-value": "$1",
        "pageinfo-category-files": "ფაილების რაოდენობა",
        "markaspatrolleddiff": "მონიშნე როგორც პატრულირებული",
        "markaspatrolledtext": "მონიშნე ეს სტატია როგორც პატრულირებული",
+       "markaspatrolledtext-file": "მონიშნეთ ამ ფაილის ვერსია, როგორც პატრულირებული",
        "markedaspatrolled": "მონიშნულია როგორც პატრულირებული",
        "markedaspatrolledtext": "არჩეული ვერსია [[:$1]] მონიშნულია როგორც პატრულირებული",
        "rcpatroldisabled": "ბოლო ცვლილებების პატრულირება აკრძალულია",
        "exif-compression-34712": "JPEG2000",
        "exif-copyrighted-true": "საავტორო უფლებებით დაცული",
        "exif-copyrighted-false": "საავტორო უფლებები არ არის არჩეული",
+       "exif-photometricinterpretation-1": "შავი და თეთრი (შავი არის 0)",
        "exif-photometricinterpretation-2": "RGB",
        "exif-photometricinterpretation-6": "YCbCr",
        "exif-unknowndate": "უცნობი თარიღი",
        "watchlisttools-raw": "კონტროლის სიის რედაქტირება ტექსტის ფორმატში",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|განხილვა]])",
        "timezone-utc": "UTC",
+       "timezone-local": "ლოკალური",
        "duplicate-defaultsort": "'''ყურადღება.'''სორტირების გასაღებს «$2»-ს გააჭრის წინა გასაღებს «$1»-ს.",
        "duplicate-displaytitle": "<strong>ყურადღება:</strong> დისპლეის სათაური \"$2\" განსაზღვრავს ადრე გაცემულ დისპლეის სათაურს \"$1\".",
        "invalid-indicator-name": "<strong>შეცდომა:</strong> გვერდის სტატუსის ინდიკატორი <code>name</code> ატრიბუტი არ უნდა იყოს ცარიელი.",
        "version-libraries-license": "ლიცენზია",
        "version-libraries-description": "აღწერა",
        "version-libraries-authors": "ავტორები",
-       "redirect": "გადამისამართება ფაილიდან, მომხმარებლიდან, გვერდიდან ან ვერსიის იდენტიფიკატორიდან",
+       "redirect": "გადამისამართება ფაილიდან, მომხმარებლიდან, გვერდიდან, ვერსიის ან ავტორიზაციის იდენტიფიკატორიდან",
        "redirect-legend": "გადამისამართება ფაილზე ან გვერდზე",
        "redirect-summary": "ეს დამხმარე გვერდი ამისამართებს ფაილის (ფაილის სახელიდან) გვერდზე, (გვერდის ან ვერსიის იდენტიფიკატორიდან) ან მომხმარებლის გვერდზე (მომხმარებლის რაოდენობრივი იდენტიფიკატორიდან). გამოყენება: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] ან [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "მიდი",
        "redirect-page": "გვერდის ID",
        "redirect-revision": "გვერდის ვერსია",
        "redirect-file": "ფაილის სახელი",
+       "redirect-logid": "შესვლის ID",
        "redirect-not-exists": "მნიშვნელობა ვერ მოიძებნა",
        "fileduplicatesearch": "ერთნაირი ფაილების ძიება",
        "fileduplicatesearch-summary": "ერთნაირი ფაილების ძიება ჰეშ-კოდის მიხედვით.",
        "htmlform-cloner-create": "მეტის დამატება",
        "htmlform-cloner-delete": "წაშლა",
        "htmlform-cloner-required": "აუცილებელია სულ მცირე ერთი მნიშვნელობა.",
+       "htmlform-title-badnamespace": "[[:$1]] არ მდებარეობს \"{{ns:$2}}\"-ის სახელთა სივრცეში.",
        "htmlform-title-not-exists": "$1 არ არსებობს.",
        "htmlform-user-not-exists": "<strong>$1</strong> არ არსებობს.",
        "htmlform-user-not-valid": "<strong>$1</strong> არ არის სწორი მომხმარებლის სახელი.",
        "api-error-badaccess-groups": "თქვენ არ გაქვთ ამ ვიკიში ფაილების ატვირთვის უფლება.",
        "api-error-badtoken": "შიდა შეცდომა: ცუდი ტოკენი.",
        "api-error-copyuploaddisabled": "ამ სერვერზე URL-მისამართის საშუალებით ატვირთვა გამორთულია.",
-       "api-error-duplicate": "á\83£á\83\99á\83\95á\83\94 {{PLURAL:$1|á\83\90á\83 á\83¡á\83\94á\83\91á\83\9dá\83\91á\83¡ á\83¡á\83®á\83\95á\83\90 á\83¤á\83\90á\83\98á\83\9aá\83\98\83\90á\83 á\83¡á\83\94á\83\91á\83\9dá\83\91á\83¡ á\83¡á\83®á\83\95á\83\90 á\83\9bá\83¡á\83\92á\83\90á\83\95á\83¡á\83\98 á\83¤á\83\90á\83\98á\83\9aი}} ანალოგიური შინაარსით.",
+       "api-error-duplicate": "á\83¡á\83\90á\83\98á\83¢á\83\96á\83\94 á\83£á\83\99á\83\95á\83\94 {{PLURAL:$1|á\83\90á\83 á\83¡á\83\94á\83\91á\83\9dá\83\91á\83¡ á\83¡á\83®á\83\95á\83\90 á\83¤á\83\90á\83\98á\83\9aá\83\98\83\90á\83 á\83¡á\83\94á\83\91á\83\9dá\83\91á\83¡ á\83¡á\83®á\83\95á\83\90 á\83¤á\83\90á\83\98á\83\9aá\83\94á\83\91ი}} ანალოგიური შინაარსით.",
        "api-error-duplicate-archive": "საიტზე ადრე {{PLURAL:$1|უკვე იყო ფაილი}} ანალოგიური შინაარსით, მაგრამ {{PLURAL:$1|ის წაიშალა|ისინი წაიშალა}}.",
        "api-error-empty-file": "არჩეული ფაილი ცარიელია.",
        "api-error-emptypage": "ახალი, ცარიელი გვერდების შექმნა აკრძალულია.",
        "expand_templates_preview": "წინა",
        "expand_templates_preview_fail_html": "რადგან translatewiki.net-ზე ჩართული დაუმუშავებელი HTML-ის  მონაცემთა სესიის დაკარვა მოხდა, წინასწარი გადახედვა დამალულია უსაფრთხოების მიზნით, JavaScript-შეტევების საწინააღმდეგოდ.  \n\nთუ ეს იყო წინასწარი გადახედვის სწორი ცდა, გთხოვთ, კიდევ ერთხელ სცადეთ. თუკი თქვენ ისევ და ისევ არ გამოგდით, სცადეთ [[Special:UserLogout|სამუშაო სეანსის დასრულება]] და ხელახალი ავტორიზება.",
        "expand_templates_preview_fail_html_anon": "რადგან translatewiki.net-ზე ჩართული დაუმუშავებელი HTML და თქვენ არ გაქვთ გავლილი ავტორიზაცია, წინასწარი გადახედვა დამალულია უსაფრთხოების მიზნით, JavaScript-შეტევების საწინააღმდეგოდ.  \n\nთუ ეს იყო წინასწარი გადახედვის სწორი ცდა, გთხოვთ, [[Special:UserLogin|შედით]] და ხელმეორედ სცადეთ.",
-       "pagelanguage": "გვერდის ენის არჩევა",
+       "expand_templates_input_missing": "თქვენ უნდა შეიყვანოთ მცირე ტექსტი მაინც.",
+       "pagelanguage": "გვერდის ენის შეცვლა",
        "pagelang-name": "გვერდი",
        "pagelang-language": "ენა",
        "pagelang-use-default": "საწყისი ენის გამოყენება",
        "pagelang-select-lang": "აირჩიეთ ენა",
+       "pagelang-submit": "გაგზავნა",
        "right-pagelang": "გვერდის ენის შეცვლა",
        "action-pagelang": "გვერდის ენის შეცვლა",
        "log-name-pagelang": "ენის ცვლილებების ჟურნალი",
        "log-description-pagelang": "ეს არის გვერდის ენის ცვლილებების ჟურნალი",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|შეცვლილი}} ენის გვერდი $3-დან $4 $5-მდე.",
+       "logentry-pagelang-pagelang": "$1-მა {{GENDER:$2|შეცვალა}} $3-ის ენის გვერდი $4-დან $5-ზე.",
        "default-skin-not-found": "უფს! გაფორმების თემა ნაგულისხმევად თქვენი ვიკისთვის <code dir=\"ltr\">$wgDefaultSkin</code> როგორც <code>$1</code>, მიუწვდომელია.\n\nთქვენი დაყენება, როგორც ჩანს, შეიცავს გაფორმების შემდეგ თემებს. {{PLURAL:$4|skin|skins}}. იხ. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] იმ ინფორმაციასთან ერთად, თუ როგორ ჩაირთოს და აირჩიოს თემა ნაგულისხმევად {{PLURAL:$4|it|them and choose the default}}.\n\n$2\n\n; თუ თქვენ ახლახან დააყენეთ MediaWiki:\n: თქვენ როგორც ჩანს ეს შეასრულეთ Git ან უშუალოდ საწყისი კოდიდან სხვა მეთოდის გამოყენებით. მაშინ ეს შესაძლებელია. შეეცადეთ დააყენოთ ზოგიერთი თემა [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory]:\n:* გადმოწერით [https://www.mediawiki.org/wiki/Download tarball installer], რომელიც შეიცავს გაფორმების თემებსა და გაფართოებებს. თქვენ შეგიძლიათ დააკოპიროთ მისგან ფოლდერი <code>skins/</code>.\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]-დან ცალკეული გაფორმების თემების არქივიდან.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: ამან არ უნდა ავნოს თქვენ Git რეპოზიტორიას, თუ თქვენ MediaWiki შემმუშავებელი ხართ.\n\n; თუ თქვენ ახლახან განაახლეთ MediaWiki:\n: MediaWiki 1.24 და სხვა აღარ შეიცავენ ავტომატურად დაყენებულ თემებს (იხ. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). თქვენ შეგიძლიათ {{PLURAL:$5|line|lines}} <code>LocalSettings.php</code>-ში {{PLURAL:$5|the|all}} რათა ჩართოთ გაფორმების თემები  {{PLURAL:$5|skin|skins}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; თუ თქვენ ამ წუთას შეცვალეთ <code>LocalSettings.php</code>:\n: გადასინჯეთ თემების სახელწოდებები შეცდომების მაგალითზე..",
        "default-skin-not-found-no-skins": "უფს! გაფორმების თემა ნაგულისხმევად თქვენი ვიკისთვის <code>$wgDefaultSkin</code> როგორც <code>$1</code>, მიუწვდომელია.\n\nთქვენ არ გაქვთ დაყენებული გაფორმების თემები.\n\n; თუ თქვენ ახლახან დააყენეთ ან განაახლეთ MediaWiki:\n: თქვენ შესაძლოა ეს გააკეთეთ Git-იდან ან უშუალოდ სხვა მეთოდის გამოყენების საწყისი კოდიდან. მაშინ ეს შესაძლებელია. MediaWiki 1.24 არ შეიცავს გაფორმების თემებს ძირითად რეპოზიტორიაში. შეეცადეთ დააყენოთ ზოგიერთი თემა [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory]:\n:* გადმოწერით [https://www.mediawiki.org/wiki/Download tarball installer], რომელიც შეიცავს გაფორმების თემებსა და გაფართოებებს. თქვენ შეგიძლიათ დააკოპიროთ და ჩასვათ <code>skins/</code>.\n:* ცალკეული გაფორმების თემების არქივების გადმოწერით [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]-დან.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: ამან არ უნდა ავნოს თქვენ Git რეპოზიტორიას, თუ თქვენ MediaWiki შემმუშავებელი ხართ. იხ. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] ინფორმაცია იმის შესახებ თუ როგორ უნდა ჩაირთოს გაფორმების თემები და აირჩეს თემა ნაგულისხმევად.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ჩართულია)",
        "mediastatistics": "მედია-სტატისტიკა",
        "mediastatistics-summary": "სტატისტიკური მონაცემები ჩატვირთული ფაილების ტიპების შესახებ. იგი შეიცავს ინფორმაციას მხოლოდ ფაილების ბოლო ვერსიის შესახებ. ფაილების უფრო ძველი ან წაშლილი ვერსიები არ ითვლება.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 ბაიტი|$1 ბაიტი}} ($2; $3%)",
+       "mediastatistics-bytespertype": "სრული ფაილის ზომა ამ სექციისთვის: {{PLURAL:$1|$1 ბაიტი|$1 ბაიტი}} ($2; $3%).",
+       "mediastatistics-allbytes": "სრული ფაილის ზომა ყველა ფაილისთვის: {{PLURAL:$1|$1 ბაიტი|$1 ბაიტი}} ($2).",
        "mediastatistics-table-mimetype": "MIME-ტიპი",
        "mediastatistics-table-extensions": "შესაძლო გაფართოებები",
        "mediastatistics-table-count": "ფაილების რაოდენობა",
        "mediastatistics-header-text": "ტექსტური",
        "mediastatistics-header-executable": "შესრულებადი",
        "mediastatistics-header-archive": "შეკუმშული ფორმატები",
+       "mediastatistics-header-total": "ყველა ფაილი",
        "json-warn-trailing-comma": "$1 {{PLURAL:$1|ბოლოში არსებული ზედმეტი მძიმე წაიშალა|ბოლოში არსებული ზედმეტი მძიმეები წაიშალა|ბოლოში არსებული ზედმეტი მძიმე წაიშალა}} JSON-დან",
        "json-error-unknown": "არსებობს პრობლემა JSON-სთან დაკავშირებით, შეცდომა: $1",
        "json-error-depth": "მომატებულია სტეკის მაქსიმალური სიღრმე",
        "mw-widgets-titleinput-description-new-page": "გვერდი ჯერ არ არსებობს",
        "mw-widgets-titleinput-description-redirect": "გადამისამართება $1-ზე",
        "api-error-blacklisted": "გთხოვთ, აირჩიეთ სხვა, აღწერილობითი სათაური.",
+       "sessionprovider-generic": "$1 სესიები",
+       "sessionprovider-mediawiki-session-cookiesessionprovider": "cookie-სთან დაკავშირებული სესიები",
        "randomrootpage": "შემთხვევითი ძირეული გვერდი"
 }
index 78ec4c8..0446d66 100644 (file)
        "filewasdeleted": "같은 이름을 가진 파일이 올라온 적이 있었고 그 후에 삭제되었습니다.\n올리기 전에 $1을 확인해 주시기 바랍니다.",
        "filename-bad-prefix": "올리려고 하는 파일 이름이 '''\"$1\"''' 이름으로 시작합니다. \"$1\" 이름은 디지털 사진기가 자동으로 붙이는 의미없는 이름입니다.\n파일에 대해 알기 쉬운 이름을 골라주세요.",
        "filename-prefix-blacklist": " #<!-- 이 줄은 그대로 두십시오 --> <pre>\n# 문법은 다음과 같습니다:\n#   * \"#\" 문자에서 줄의 끝까지는 주석입니다\n#   * 비어 있지 않은 줄은 디지털 카메라에서 자동적으로 부여하는 파일 접두어입니다\nCIMG # 카시오\nDSC_ # 니콘\nDSCF # 후지\nDSCN # 니콘\nDUW # 일부 휴대폰\nIMG # 일반\nJD # 제놉틱\nMGP # 펜탁스\nPICT # 기타\n #</pre> <!-- 이 줄은 그대로 두십시오 -->",
-       "upload-success-subj": "올리기 성공",
-       "upload-success-msg": "파일을 [$2]에서 성공적으로 올렸습니다. 올린 파일은 여기 있습니다: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "올리기 실패",
-       "upload-failure-msg": "[$2]에서 파일을 올리는 중 문제가 발생했습니다:\n\n$1",
-       "upload-warning-subj": "파일 올리기 경고",
-       "upload-warning-msg": "[$2]에서 파일을 올리는 데 문제가 있습니다. 이 문제를 해결하려면 [[Special:Upload/stash/$1|올리기 양식]]으로 되돌아가십시오.",
        "upload-proto-error": "잘못된 프로토콜",
        "upload-proto-error-text": "파일을 URL로 올리려면 <code>http://</code>이나 <code>ftp://</code>로 시작해야 합니다.",
        "upload-file-error": "내부 오류",
index a54b02a..9f43b61 100644 (file)
        "filename-thumb-name": "Dä Nahme süht wi en Övverschreff för e Minnibelldsche uß. Donn kein Minnibelldscher retuhr en et sällve Wikki huhlahde. Söns kam_mer och dä Nahme för di Datteij änndere, datt_e mih Senn hät un keijne tüppesche Aanfang vun enem Minnibelldsche.",
        "filename-bad-prefix": "Dä Datei ier Name fängk met '''„$1“''' aan. dat eß fä jewöhnlesch ene Name, dä en dijjitaale Kammerra iere Belder jitt. Esu en Name donn uns esu winnisch verzälle, dat mer se nit jän em Wiki han wulle.\nBes esu joot un jiff dä enne Name, wo mer mieh met aanfange, öm ze wesse, wat en dä Datei dren es.",
        "filename-prefix-blacklist": " #<!-- Lohß di Reih jenou esu wie se es! --> <pre>\n#  Syntax:\n#   * Alles zwesche em #-Zeiche bes nohm Engk vun de Reih es ene Kommäntaa\n#   * Jede Reih met jet dren es ene typpesche Aanfang för ene Datteiname,\n#   * dä automattesch vun ene Dijjitahlkammera kütt\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # - et ein udder andere mobile Tellefohn -\nIMG # - alljemein üplesch -\nJD # Jenoptik\nMGP # Pentax\nPICT # - diverse -\n #</pre> <!-- Lohß di Reih jenou esu wie se es! -->",
-       "upload-success-subj": "Et Huhlade hät jeflupp",
-       "upload-success-msg": "Ding vun [$2] huhjelaade Dattei es jäz och hee: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Probleem bem Huhlaade",
-       "upload-failure-msg": "Mer hatte e Probleem met Dinge huhjelaade Dattei vun [$2]:\n\n$1",
-       "upload-warning-subj": "Warnung beim Huhlade",
-       "upload-warning-msg": "Met däm Huhlaade vun [$2] es jet donevve jejange, Do kanns retuur jon op et [[Special:Upload/stash/$1|Fommulaa zom Huhlaade]] öm dat ze repareere.",
        "upload-proto-error": "Verkihrt Protokoll",
        "upload-proto-error-text": "Ene URL för en Datei fun huhzelade moß met <code>http://</code> uder <code>ftp://</code> aafange.",
        "upload-file-error": "Fääler em Wiki beim Huhlade",
        "wlheader-showupdated": "Wann se Einer jeändert hätt, zickdäm De se et letzte Mol aanjeluurt häs, sin di Sigge <strong>extra markeet</strong>.",
        "wlnote": "{{PLURAL:$1|Hee es de läzde Änderong uß|Hee sin de läzde <strong>$1</strong> Änderonge uß|Mer han kein Änderonge en}} de läzde {{PLURAL:$2|Stund|<strong>$2</strong> Stunde|<strong>noll</strong> Stunde}} zigg em $3 öm $4 Uhr.",
        "wlshowlast": "Zeisch de läzde $1 Schtunde, $2 Dähsch aan.",
-       "watchlistall2": "all",
        "watchlist-hide": "Verschtisch",
        "wlshowhideminor": "klein Minni-Änderonge",
        "wlshowhidebots": "de Bots ehr Änderonge",
        "javascripttest-pagetext-frameworks": "Bes esu jood un söök eine vun dä Prööfömjävvonge us: $1",
        "javascripttest-pagetext-skins": "Sööke en Bovverfläsch udder et Ußsinn uß, öm di Prööfonge domet ze maache:",
        "javascripttest-qunit-intro": "Loor noh dä [$1 Dokemäntation övver et Prööfe] op mediawiki.org.",
-       "tooltip-pt-userpage": "Don Ding eije Metmaachersigg aanzeije",
+       "tooltip-pt-userpage": "Don Ding eije Metmaachersigg aanzeije{{GENDER:|}}",
        "tooltip-pt-anonuserpage": "Metmaachersigg för di <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß, vun wo uß De jraad Ding Ännderonge un Äjännzonge aam Wiki am maache bes",
-       "tooltip-pt-mytalk": "Dun Ding eije Klaafsigg aanzeije",
+       "tooltip-pt-mytalk": "Dun Ding eije Klaafsigg aanzeije{{GENDER:|}}",
        "tooltip-pt-anontalk": "Klaaf övver Änderunge, di vun dä IP-Adress uß jemaat wodte",
-       "tooltip-pt-preferences": "De eije Ennschtällonge",
+       "tooltip-pt-preferences": "De eije Ennschtällonge{{GENDER:|}}",
        "tooltip-pt-watchlist": "De Leß met de Sigge en Dinge eije Oppaßleß",
-       "tooltip-pt-mycontris": "en Leß met Dinge eije Beijdrähsch",
+       "tooltip-pt-mycontris": "En Leß met Dinge eije Beijdrähsch{{GENDER:|}}",
        "tooltip-pt-login": "Do moß Desch nit Enlogge, kannz_E ävver jähn maache!",
        "tooltip-pt-logout": "Ußlogge",
        "tooltip-pt-createaccount": "mer schlonn vör, dat De Desch aanmällde deihs un ennloggs, ävver müüdesch es et nit.",
        "tooltip-t-recentchangeslinked": "De neuste Änderonge aan Sigge, wo vun heh dä Sigg uß Lengks drop jon",
        "tooltip-feed-rss": "Dä RSS-Abonnomang-Kannal (Feed) för heh di Sigg",
        "tooltip-feed-atom": "Dä Atom-Abonnomang-Kannal (Feed) för heh di Sigg",
-       "tooltip-t-contributions": "Donn en Leß met dä Bedrähsch vun däm Metmaacher belooere",
+       "tooltip-t-contributions": "Donn en Leß met dä Bedrähsch {{GENDER:$1|vun heh däm|vun heh dämm|vun heh dämm Metmaacher|vun heh dä|vun heh däm}} belohre",
        "tooltip-t-emailuser": "Scheck en E-Mail aan dä Metmaacher",
        "tooltip-t-info": "Mih Aanjahbe övver heh di Sigg",
        "tooltip-t-upload": "Dateie huhlade",
index 253d1ed..b274dfe 100644 (file)
        "prefs-personal": "Proprietates",
        "prefs-rc": "Nuper mutata",
        "prefs-watchlist": "Paginae observandae",
-       "prefs-watchlist-days": "Per quot dies mutationes porrigendae sint:",
+       "prefs-watchlist-days": "Quot dies index respiciat:",
        "prefs-watchlist-days-max": "Numerus maximus: $1 {{PLURAL:$1|dies|dies}}",
-       "prefs-watchlist-edits": "Quot mutationes maxime porrigendae sint:",
+       "prefs-watchlist-edits": "Quot mutationes index summum respiciat:",
        "prefs-watchlist-edits-max": "Numerus maximus: 1000",
        "prefs-misc": "Misc",
        "prefs-resetpass": "Tesseram mutare",
        "rows": "Lineae:",
        "columns": "Columnae:",
        "searchresultshead": "Figuratio eventorum investigationis",
-       "recentchangesdays": "Per quot dies mutationes porrigendae sint:",
-       "recentchangescount": "Quot mutationes porrigendae sint:",
+       "recentchangesdays": "Quot dies index respiciat:",
+       "recentchangescount": "Quot mutationes index respiciat:",
        "savedprefs": "Praeferentiae tuae servatae sunt.",
        "timezonelegend": "Zona temporis:",
        "localtime": "Hora indigena:",
        "prefs-preview": "Prospectus",
        "prefs-advancedrc": "Modi speciales",
        "prefs-advancedwatchlist": "Indicis modi speciales",
-       "prefs-displayrc": "Praeferentiae vultus",
-       "prefs-displaywatchlist": "Praeferentiae vultus",
+       "prefs-displayrc": "Modi generales",
+       "prefs-displaywatchlist": "Modi generales",
        "prefs-diffs": "Differentiae",
        "userrights": "Usorum potestates",
        "userrights-lookup-user": "Greges usorum regere",
        "destfilename": "Nomen fasciculi petitum:",
        "upload-maxfilesize": "Maxima fasciculi magnitudo: $1",
        "watchthisupload": "Observare hunc fasciculum",
-       "upload-success-subj": "Impositum est perfectum",
        "upload-proto-error": "Protocollum incorrectum",
        "upload-file-error": "Erratum internum",
        "upload-misc-error": "Erratum impositionis ignotum",
        "wlheader-showupdated": "Paginae nondum a te inspectae <strong>typis crassioribus</strong> ostenduntur.",
        "wlnote": "{{PLURAL:$1|Indicatur mutatio novissima|Indicantur '''$1''' mutationes novissimae}} abhinc {{PLURAL:$2|superiorem horam|superiores '''$2''' horas}} (ab $3, $4) factae.",
        "wlshowlast": "Monstrare proximas $1 horas $2 dies",
-       "watchlistall2": "omnes",
        "watchlist-hide": "Supprimere recensiones",
        "watchlist-submit": "Porrige",
        "wlshowtime": "Temporis spatium porrigendum:",
index 89d169c..6abfcc5 100644 (file)
        "badsig": "D'Syntax vun Ärer Ënnerschrëft ass net korrekt; iwwerpréift w.e.g. den HTML Code.",
        "badsiglength": "Är Ënnerschrëft ass ze laang.\nSi muss manner wéi $1 {{PLURAL:$1|Zeechen|Zeechen}} hunn.",
        "yourgender": "Wéi wëllt Dir beschriwwe ginn?",
-       "gender-unknown": "Wann Dir ernimmt gëtt da benotzt d'Software do wou et méiglech ass geschlechtsneutral Wierder",
+       "gender-unknown": "Wann Dir ernimmt gitt da benotzt d'Software do wou et méiglech ass geschlechtsneutral Wierder",
        "gender-male": "Hien ännert Wikisäiten",
        "gender-female": "Si ännert Wikisäiten",
        "prefs-help-gender": "Fakultativ:\nD'Software benotzt seng Wäerter fir Iech unzeschwätzen a fir vun Iech vis-a-vis vun Aneren grammatesch ''Gender-korrekt'' ze schwätzen. \n\nDës Informatioun ass ëffentlech.",
        "grant-sendemail": "Anere Benotzer E-Maile schécken",
        "grant-uploadeditmovefile": "Fichieren eroplueden, ersetzen a réckelen",
        "grant-uploadfile": "Nei Fichieren eroplueden",
+       "grant-basic": "Basisrechter",
        "grant-viewdeleted": "Geläscht Fichieren a Säite weisen",
        "grant-viewmywatchlist": "Kuckt Är Iwwerwaachungslëscht",
        "newuserlogpage": "Logbuch vun den neien Umeldungen",
        "watchthisupload": "Dëse Fichier iwwerwaachen",
        "filewasdeleted": "E Fichier mat dësem Numm gouf schonn eemol eropgelueden an duerno nees geläscht. Kuckt w.e.g op $1 no, ier Dir dee Fichier nach eng Kéier eropluet.",
        "filename-bad-prefix": "Den Numm vum Fichier fänkt mat '''„$1“''' un. Dësen Numm krut en automatesch vun der Kamera a seet näischt iwwer dat aus, wat drop ass. Gitt dem Fichier w.e.g. en Numm, deen den Inhalt besser beschreift, an deen net verwiesselt ka ginn.",
-       "upload-success-subj": "Eroplueden erfollegräich",
-       "upload-success-msg": "Äert Eropluede vun [$2] huet funktionéiert. De Fichier ass hei disponibel: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problem beim Eroplueden",
-       "upload-failure-msg": "Et gouf e Problem mam Fichier vu(n) [$2] deen Dir eropgelueden hutt:\n\n$1",
-       "upload-warning-subj": "Warnung beim Eroplueden",
-       "upload-warning-msg": "Et gouf e Problem beim Eropluede vun [$2]. Dir kënnt op de [[Special:Upload/stash/$1|Formulaire fir eropzelueden]] goe fir de Problem ze léisen.",
        "upload-proto-error": "Falsche Protokoll",
        "upload-proto-error-text": "D'URL muss mat <code>http://</code> oder <code>ftp://</code> ufänken.",
        "upload-file-error": "Interne Feeler",
        "wlheader-showupdated": "Säiten déi zanter Ärer leschter Visite geännert goufen, si '''fett''' geschriwwen",
        "wlnote": "Hei {{PLURAL:$1|ass déi lescht Ännerung|sinn déi lescht <strong>$1</strong> Ännerunge}} vun {{PLURAL:$2|der leschter Stonn|de leschte(n) <strong>$2</strong> Stonnen}}, Stand: $3 ëm $4 Auer.",
        "wlshowlast": "Déi lescht $1 Stonnen $2 Deeg weisen",
-       "watchlistall2": "all",
        "watchlist-hide": "Verstoppen",
        "watchlist-submit": "Weisen",
        "wlshowtime": "Zäitraum dee gewise gëtt:",
index 78dc9e0..a765f3f 100644 (file)
@@ -7,7 +7,7 @@
                        "Mjbmr"
                ]
        },
-       "tog-underline": ":خط کیشائن ئۀ ژئر پئؤن",
+       "tog-underline": "کڕ(خط)کیشائن ژێر پیوندەل:",
        "tog-hideminor": "آشاردن دەسکاریەل گؤجەر  إژ گؤەڕیال(تغییرات) ایسە(اخیر)",
        "tog-hidepatrolled": "دسکاریۀل گه دیار بینۀ ئژ فئرست-رزگ تغییرات اخیر بشارا",
        "tog-newpageshidepatrolled": "وڵگۀل گه دیار بینۀ ئژ فئرست-رزگ ولگۀل تازۀ بشارا",
@@ -16,7 +16,7 @@
        "tog-usenewrc": "تنیا آڵؤن(آلشتی)کریال تازۀ ؤ لیست پئگیریۀل رزگ بنی-گروه بندی کۀ",
        "tog-numberheadings": "شؤمارۀ  نئ خودکار سروڵگۀل-عناوین",
        "tog-showtoolbar": "دیار دائن ابزار دسکاری",
-       "tog-editondblclick": "دسکاری ولگۀل ئۀ دؤ گل کلیک کردن",
+       "tog-editondblclick": "دەسکاری وەڵگەل وە دۆگل کلیک کردن",
        "tog-editsectiononrightclick": "دسکاری کردن راسال-بخشۀل ئۀ کلیک راست کردن ئۀرؤی سرولگۀل باج کار",
        "tog-watchcreations": "وڵگۀلئ گه مَسازم ؤ پرؤندۀلئ گه مۀنم اضافۀ که فئرست سئرکردنۀل",
        "tog-watchdefault": "ولگۀل ؤ پرؤندۀلئ گه دسکاری مۀکم بنه نؤم فئرست سئرکردن",
@@ -25,7 +25,7 @@
        "tog-watchrollback": "ولگۀل گه ماره ما-بازگردانی مۀکم بنه نؤم فئرست سئرکردن",
        "tog-minordefault": "کؤڵ دسکاری بیۀل به عنؤان پئش فرض عڵامت بۀرن",
        "tog-previewontop": "پیش نمایش وهِ رئ جعبۀ نمایش نیشؤن به",
-       "tog-previewonfirst": "پئش نمایش-ورئ سئرکردن ئۀ اؤڵئن دسکاری نیشؤن به",
+       "tog-previewonfirst": "پێش دئین وە اوەڵێن دەسکاری نیشۆن دە",
        "tog-enotifwatchlistpages": "ئۀر وڵگۀ یا پرؤندئه ئژ فئرست-رزگ پی‌گیری‌ۀلم دسکاری بی نامه ئۀرا مه کِلّ کۀ",
        "tog-enotifusertalkpages": "هۀنئگه-وختئ گه ئۀ وڵگۀ گپ کابریم تغییر کریا نامه ئۀرا مه کِل کۀ",
        "tog-enotifminoredits": "ئۀر تغییرۀل-آڵؤنۀل(آلشتۀل)گؤجۀریجی ئۀر وڵگۀل ؤ پرؤندۀلم کریا نامه ئۀرا مه کِل کۀ",
        "tog-watchlisthideown": "دسکاریۀل ووژم ئژ فئرست سئرکردن بشارآ",
        "tog-watchlisthidebots": "دسکاریۀل ربات ئژ فئرست سئرکردن بشآرا",
        "tog-watchlisthideminor": "دسکاریۀل گؤجۀر ئژ فئرست سئرکردن بشارآ",
-       "tog-watchlisthideliu": "دسکاری کاربرۀلئ گه هۀتۀنئ نؤم سیستم ئۀ فئرست سئرکردن بشارآ",
+       "tog-watchlisthideliu": "دەسکاری کاربرەل إنۆم هەتێ سیستم وە لیست پیگیریەل بشارآ",
        "tog-watchlistreloadautomatically": "Reload the watchlist automatically whenever a filter is changed (JavaScript required)",
        "tog-watchlisthideanons": "دةسکاری کاربرةل ناشنا ئة لیست نمائش بشارآ",
        "tog-watchlisthidepatrolled": "دسکاریۀل گشت خورده-سئرکریا ئژ فئرست سئرکردن بشآرا",
        "tog-watchlisthidecategorization": "نهفتن رده‌بندی صفحه‌ها",
-       "tog-ccmeonemails": "رؤی نؤیسیائ  ئژ نامۀلئگه کِلۀ مِه هۀم کاربرۀل-بهرۀگرۀل ئۀرا ووژم کِل که",
+       "tog-ccmeonemails": "کپی إژ ایمیلێ گإ أڕا کاربەرەل کِلە مەکەم أڕا ووژم کِل کە",
        "tog-diffonly": "نۆم جِک(محتوا)وەڵگە، أ ژێر تفاوت دیار ناوو(نمایش ندهد)",
        "tog-showhiddencats": "دسۀل-رزگۀل آشاریآ نیشؤن دۀ",
        "tog-norollbackdiff": "دؤما واگردانی تفاوت نیشؤن نه",
        "tog-prefershttps": "همؤیشۀ ئۀرا ئۀ نؤم سیستم هۀتن ئژ اتصالۀل امن بهرۀ بگر-استفادۀ کۀ",
        "underline-always": "همؤیشۀ",
        "underline-never": "هؤیچ وخت",
-       "underline-default": "Ù¾Ù\88ستÙ\87 Û\8cا Ù\85Ù\90Ù\87 Ù\86Ù\90Û\8c Ú©Û\80ر پیش‌فرض",
+       "underline-default": "Ù¾Ù\88ستÙ\87 Û\8cا Ù\85Ù\90Ù\86Ù\90Û\8c Ú©Û\95ر پیش‌فرض",
        "editfont-style": ":شئؤۀ قلم جعبهٔ دسکاری",
-       "editfont-default": "Ù¾Û\8cØ´Ù\81رض Ù\85Ù\90Ù\87 Ù\86Ù\90Û\8c Ú©Û\80ر",
-       "editfont-monospace": "قلم ئۀ ۋاصلۀ ثابت",
+       "editfont-default": "Ù¾Û\8cØ´Ù\81رض Ù\85Ù\90Ù\86Ù\90Û\8c Ú©Û\95ر",
+       "editfont-monospace": "قلم وە فاصلۀ ثابت",
        "editfont-sansserif": "قلم بئ گوشۀ",
        "editfont-serif": "قلم گوشۀ دار",
        "sunday": "یشۀمۀ",
        "redirectedfrom": "(تغییرمسیر إژ $1)",
        "redirectpagesub": "وةڵگة تغییرمسیر",
        "redirectto": ":تغییر مسیر به",
-       "lastmodifiedat": ".ئئ Ù\88Û\80Ù\84Ú¯Û\80آخرÛ\8cÙ\86 Ú¯Ù\90Ù\84 Ø¦Û\80 $1 Ø³Ø§Øª $2 ØªÛ\80غÛ\8cر Ú¯Ù\90رتÛ\8cÛ\80سئ",
+       "lastmodifiedat": ".اÛ\8e Ù\88Û\95ÚµÚ¯Û\95آخرÛ\8cÙ\86 Ú¯Ù\90Ù\84 Ù\88Û\95 $1 Ø³Ø§Øª $2 Ú¯Ø¤Û\95Ú\95Û\8cائÛ\95(تغÛ\8cÛ\8cرÛ\8cاÙ\81تÙ\87)",
        "viewcount": "إژ ئئ وةڵگة  {{PLURAL:$1|یإ گِل|$1$1چةن گِل}} بازدید بیة.",
        "protectedpage": "وەڵگە پڵۆم بیە",
        "jumpto": ":وازآ کردن/پریدن وۀ",
        "welcomeuser": "خؤةش هةتینة/هاتینة $1!",
        "welcomecreation-msg": "حساوو کاربری هۆمە دؤرس بی.\nویرتان نەچوو(فراموش نشە) گإ [[Special:Preferences|تمارزووەل(ترجیحات) {{SITENAME}}]] ووِژت بگؤەڕنین( تغییر دهی).",
        "yourname": ":نۆم کاربەری",
-       "userlogin-yourname": "نؤم بهرۀگر-کاربر",
+       "userlogin-yourname": "نۆم کاربەری",
        "userlogin-yourname-ph": "نۆم کاربەری ووژت وارد کە",
        "createacct-another-username-ph": "نام کاربۀری تؤن وارد کۀن",
        "yourpassword": ":رمز عبور",
        "nocookieslogin": "{{SITENAME}} برای ورود کاربران به سامانه از کوکی‌ها استفاده می‌کند.\nشما کوکی‌ها را از کار انداخته‌اید.\nلطفاً کوکی‌ها را به کار بیندازید و دوباره امتحان کنید.",
        "nocookiesfornew": "حساوو کاربةری نةسازریا، زیرا نتوانستیم منبع آن را تأیید کنیم.\nمطمئن شوید که کوکی‌ها فعال هستند، آن‌گاه صفحه را از نو بارگیری کنید و دوباره امتحان کنید.",
        "noname": ".هؤمة نام کاربةری معتبری دیاری نکردئة",
-       "loginsuccesstitle": "موفق بین چینإ سیستم",
+       "loginsuccesstitle": "إنۆم سیستم هەتن انجۆم گرت",
        "loginsuccess": "هؤمة ایسة هةتیإ نؤم سیستم {{SITENAME}} وۀ نام\"$1\".'",
        "nosuchuser": "کاربةری وۀ نام «$1» ئة ائرة نیة.\nنام کاربةری وة کةڵنگی و گؤجةری حروف حساسة .\nاملای نام را بررسی کنید، یا [[Special:UserLogin/signup|یک حساب کاربری تازه بسازید]].",
        "nosuchusershort": "هؤیچ کاربةری وة نام ''$1'' ئة ائرة نیة.\nاملایتان را وارسی کنید.",
        "nextrevision": "نسخهٔ جدیدتر ←",
        "currentrevisionlink": "نمایش نسخهٔ فعلی",
        "cur": "فعلی",
-       "next": "بچؤ نووا/بعدی",
+       "next": "بچۆ نووآ",
        "last": "قبلی/دؤمائن",
        "page_first": "إژ أؤةل",
        "page_last": "دؤمائن/آخرین",
        "textmatches": "تطبیق متن مقاله",
        "notextmatches": "متن هیچ مقاله‌ای مطابقت ندارد",
        "prevn": "تای قبلی{{PLURAL:$1|$1}}",
-       "nextn": "تای بعدی{{PLURAL:$1|$1}}",
+       "nextn": "گلە نووآ تر{{PLURAL:$1|$1}}",
        "prev-page": "صفحهٔ قبلی",
-       "next-page": "وةڵگة تِر/بعدی",
+       "next-page": "وەڵگە تِر(هەنی)",
        "prevn-title": "پيشتر $1 {{PLURAL:$1|نتيجه|نتيجةل}}",
        "nextn-title": "Next $1 {{PLURAL:$1|result|results}}",
        "shown-title": "نمایش$1 {{PLURAL:$1|نتیجه|نتایج}} وۀ هۀر وۀلگۀ",
        "search-interwiki-more": "(فرةتر)",
        "search-relatedarticle": "مرتبط",
        "searchrelated": "مرتبط",
-       "searchall": "کؤل",
+       "searchall": "کؤل(گشت)",
        "showingresults": "نمایش حداکثر {{PLURAL:$1|'''۱''' نتیجه|'''$1''' نتیجه}} در پایین، آغاز از شماره '''$2'''.",
        "showingresultsinrange": "نمایش در پائین تا {{PLURAL:$1|<strong>1</strong> نتیجه|<strong>$1</strong> نتیجه}} در محدودهٔ #<strong>$2</strong> تا #<strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|نتایج <strong>$1</strong> از <strong>$3</strong>|نتایج <strong>$1 - $2</strong> از <strong>$3</strong>}}",
        "powersearch-legend": "مِنِی کردن پیشرفته",
        "powersearch-ns": "جستجو در فضاهای نام:",
        "powersearch-togglelabel": "بررسی:",
-       "powersearch-toggleall": "کۆل",
+       "powersearch-toggleall": "کؤل(گشت)",
        "powersearch-togglenone": "هؤیچ کام",
        "powersearch-remember": "انتخاب را برای جستجوهای بعدی به خاطر داشته‌باش",
        "search-external": "جستجوی خارجی",
        "servertime": "زمان سرور:",
        "guesstimezone": "از مرورگر گرفته شود",
        "timezoneregion-africa": "ئافریقا",
-       "timezoneregion-america": "ئامریکا",
+       "timezoneregion-america": "Ø¢مریکا",
        "timezoneregion-antarctica": "قطب جنوبی",
        "timezoneregion-arctic": "قطب شمالی",
        "timezoneregion-asia": "ئاسیا",
        "group-sysop": "مدیران",
        "group-bureaucrat": "دیوان‌سالاران",
        "group-suppress": "فرونشانندگان",
-       "group-all": "(کۆل)",
+       "group-all": "(کؤل(گشت))",
        "group-user-member": "{{GENDER:$1|کاربةر}}",
        "group-autoconfirmed-member": "{{GENDER:$1|کاربةر تأیید بی}}",
        "group-bot-member": "ربات",
        "filewasdeleted": "پرونده‌ای با همین نام پیشتر بارگذاری و پس از آن پاک شده‌است.\nشما باید $1 را قبل از بارگذاری مجدد آن ببینید.",
        "filename-thumb-name": "به نظر می رسد که عنوان thumbnail است. لطفاً تصویر thumbnail  از دیگر ویکی‌ها را بارگذاری نکنید. عنوان پرونده را اصلاح کنید به صورتی که پیشوند thumbnail نداشته باشد.",
        "filename-bad-prefix": "نام پرونده‌ای که بارگذاری می‌کنید با '''$1''' آغاز می‌شود که یک پیشوند مخصوص تصاویر ثبت شده توسط دوربین‌های دیجیتال است.\nلطفاً نامی بهتر برای پرونده برگزینید.",
-       "upload-success-subj": "بارگذاری با موفقیت انجام شد",
-       "upload-success-msg": "بارگذاری شما از [$2] موفق بود. این پرونده در اینجا قابل دسترسی است: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "مشکل در بارگذاری",
-       "upload-failure-msg": "مشکلی در بارگذاری شما از [$2] وجود داشت:\n\n$1",
-       "upload-warning-subj": "هشدار بارگذاری",
-       "upload-warning-msg": "فرم بارگذاری مشکلی داشت [$2]. شما می‌توانید به [[Special:Upload/stash/$1|فرم بارگذاری]] بازگردید تا این اشکال را رفع کنید.",
        "upload-proto-error": "پروتکل نادرست",
        "upload-proto-error-text": "بارگذاری از دوردست به نشانی‌هایی که با <code dir=ltr>http://</code> یا <code dir=ltr>ftp://</code> آغاز شوند نیاز دارد.",
        "upload-file-error": "خطای داخلی",
        "file-anchor-link": "فایل",
        "filehist": "تاریخ پۀروۀندۀ",
        "filehist-help": ".روی تاریخ/زمان‌ها کلیک کنید تا نسخهٔ مربوط به آن هنگام را ببینید",
-       "filehist-deleteall": "حذف کۆل",
+       "filehist-deleteall": "کؤل(گشت) پاکآکە",
        "filehist-deleteone": "حۀذف کردن/پاک کردن",
        "filehist-revert": "واگردانی/گِلآ دائن",
        "filehist-current": "نؤسخهٔ ایسه",
        "mostimages": "پرونده‌هایی که بیشتر از همه به آن‌ها پیوند داده شده‌است",
        "mostinterwikis": "صفحه‌های دارای بیشترین میان‌ویکی",
        "mostrevisions": "صفحه‌های دارای بیشترین نسخه",
-       "prefixindex": "کۆل وةڵگةل با پیشوند",
-       "prefixindex-namespace": "کۆل وةڵگةل دارای پیشوند (فضای‌نام $1)",
+       "prefixindex": "کؤل(گشت)وەڵگەل پێشؤەند دار",
+       "prefixindex-namespace": "کؤل(گشت)وەڵگەل پیشوند دار(فضای‌نۆم $1)",
        "prefixindex-submit": "نیشان دائن",
        "prefixindex-strip": "حذف پیشوند در فهرست",
        "shortpages": "وةڵگةل کؤِڵ/کوتاه",
        "log-title-wildcard": "صفحه‌هایی را جستجو کن که عنوانشان با این عبارت آغاز می‌شود",
        "showhideselectedlogentries": "تغییر پدیداری موارد انتخاب‌شده سیاهه",
        "log-edit-tags": "ویرایش برچسب سیاههٔ انتخاب شده",
-       "allpages": "کۆل وةڵگةل",
+       "allpages": "کؤل(گشت)وەڵگەل",
        "nextpage": "وةڵگةبعد ($1)",
        "prevpage": "وةڵگة قبلی ($1)",
        "allpagesfrom": "نمایش وةڵگةل با شروع إژ:",
        "wlheader-showupdated": "صفحه‌هایی که پس از آخرین بازدید شما تغییر کرده‌اند '''پررنگ''' نمایش داده شده‌اند.",
        "wlnote": "در زیر {{PLURAL:$1|تغییری|<strong>$1</strong> تغییری}} که در {{PLURAL:$2|ساعت|<strong>$2</strong> ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4",
        "wlshowlast": "نمایش آخرین $1 ساعت $2 روز",
-       "watchlistall2": "کؤل",
        "watchlist-hide": "ئآشاردن-پنهان کردن",
        "watchlist-submit": "نیشان دائن",
        "wlshowtime": "دوره زمانی نمایش:",
        "allmessages-filter-legend": "پالانۀل/فیلترۀل",
        "allmessages-filter": "پالودن بر اساس وضعیت شخصی‌سازی:",
        "allmessages-filter-unmodified": "نگؤەڕیائە/تغییرنیافته",
-       "allmessages-filter-all": "کۆل",
+       "allmessages-filter-all": "کؤل(گشت)",
        "allmessages-filter-modified": "گؤەڕیائە/تغییریافته",
        "allmessages-prefix": "پالودن بر اساس پسوند:",
        "allmessages-language": ":زوون",
        "exif-urgency-low": "کم ($1)",
        "exif-urgency-high": "فِرة/زیاد ($1)",
        "exif-urgency-other": "اولویت تعریف شده توسط کاربر ($1)",
-       "namespacesall": "کؤل",
-       "monthsall": "کؤل",
+       "namespacesall": "کؤل(گشت)",
+       "monthsall": "کؤل(گشت)",
        "confirmemail": "نیشانی ایمیل ووژتان تأئید کةن",
        "confirmemail_noemail": "شما در صفحهٔ [[Special:Preferences|تمارزووەل(ترجیحات)  کاربەری]] خود آدرس ایمیل معتبری وارد نکرده‌اید.",
        "confirmemail_text": "این ویکی، شما را ملزم به تأیید آدرس ایمیل خود، پیش از استفاده از خدمات ایمیل در اینجا می‌کند. دکمهٔ زیرین را فعال کنید تا ایمیلی تأییدی به آدرس ایمیل شما فرستاده شود. این ایمیل دربردارندهٔ پیوندی خواهد بود که حاوی یک کد است. پیوند را در مرورگر خود بار کنید کنید تا آدرس ایمیل شما تأیید شود.",
        "semicolon-separator": "؛&#32;",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "&rarr; وەڵگە دؤماێن",
-       "imgmultipagenext": "وةڵگة تِر/بعدی→",
+       "imgmultipagenext": "وەڵگە تِر(هەنی)→",
        "imgmultigo": "بِچۆ!",
        "imgmultigoto": "بچۆ وةڵگة $1",
        "img-lang-default": "(زوون پئش فرض)",
        "img-lang-go": "بِچۆ",
        "ascending_abbrev": "ورِ بِڵِنگی/صعودی",
        "descending_abbrev": "ورِ هووار/نزولی",
-       "table_pager_next": "Ù\88Û\95ÚµÚ¯Û\95 Ø¨Ø¹Ø¯Û\8c",
+       "table_pager_next": "Ù\88Û\95ÚµÚ¯Û\95 ØªÙ\90ر(Ù\87Û\95Ù\86Û\8c)",
        "table_pager_prev": "وەڵگە دؤماێن",
        "table_pager_first": "وةڵگة أؤةڵئن",
        "table_pager_last": "وەڵگە دؤمائن(آخر)",
        "logentry-import-upload": "$1 $3 را توسط بارگذار پرونده {{GENDER:$2|درون‌ریزی کرد}}",
        "logentry-import-upload-details": "$1 {{GENDER:$2|imported}} $3 by file upload ($4 {{PLURAL:$4|revision|revisions}})",
        "logentry-import-interwiki": "$1 $3 را از ویکی دیگر {{GENDER:$2|درون‌ریز کرد}}",
-       "logentry-import-interwiki-details": "$1 {{GENDER:$2|imported}} $3 from $5 ($4 {{PLURAL:$4|revision|revisions}})",
+       "logentry-import-interwiki-details": "$1 $3 را از $5 {{GENDER:$2|درون‌ریزی کرد}} ($4 {{PLURAL:$4|نسخه}})",
        "logentry-merge-merge": "$1  $3  را به  $4 {{GENDER:$2| ادغام کرد}} (نسخه تا  $5)",
        "logentry-move-move": "$1 صفحهٔ $3 را به $4 {{GENDER:$2|منتقل کرد}}",
        "logentry-move-move-noredirect": "$1 وةڵگة $3 را بدون برجای‌گذاشتن تغییرمسیر به $4 {{GENDER:$2|منتقل کرد}}",
        "mediastatistics-header-text": "متنی",
        "mediastatistics-header-executable": "اجرایی",
        "mediastatistics-header-archive": "قالب‌های فشرده",
-       "mediastatistics-header-total": "کۆل فایلةل",
+       "mediastatistics-header-total": "کؤل(گشت)پەروەندەل",
        "json-warn-trailing-comma": "$1 کامای در انتها از جی‌سن {{PLURAL:$1|حذف شد}}.",
        "json-error-unknown": "مشکلی با جی‌سن بود. خطا: $1",
        "json-error-depth": "بیشینهٔ عمق پشته رد شده است",
index 389f02a..1086375 100644 (file)
        "filewasdeleted": "Failas šiuo vardu anksčiau buvo įkeltas, o paskui ištrintas. Jums reikėtų patikrinti $1 prieš bandant įkelti jį vėl.",
        "filename-thumb-name": "Tai panašu į miniatiūros pavadinimą. Prašome neįkėlinėti miniatiūrų atgal į tą patį vikį. Kitu atveju, prašome pataisyti failo pavadinimą taip, kad jis būtų prasmingesnis ir neturėtų miniatiūros prefikso.",
        "filename-bad-prefix": "Jūsų įkeliamas failas prasideda su '''„$1“''', bet tai yra neapibūdinantis pavadinimas, dažniausiai priskirtas skaitmeninių kamerų. Prašome suteikti labiau apibūdinantį pavadinimą savo failui.",
-       "upload-success-subj": "Įkelta sėkmingai",
-       "upload-success-msg": "Jūsų įkėlimas iš [$2] buvo sėkmingas. Jį galima rasti čia: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Įkėlimo problema",
-       "upload-failure-msg": "Įvyko įkėlimo iš [$2] problema:\n\n$1",
-       "upload-warning-subj": "Įkėlimo įspėjimas",
-       "upload-warning-msg": "Įvyko įkėlimo iš [$2] problema. Jums reikėtų grįžti į [[Special:Upload/stash/$1|įkėlimo formą]], norint išspręsti šią problemą.",
        "upload-proto-error": "Neteisingas protokolas",
        "upload-proto-error-text": "Nuotoliniai įkėlimas reikalauja, kad URL prasidėtų <code>http://</code> arba <code>ftp://</code>.",
        "upload-file-error": "Vidinė klaida",
        "foreign-structured-upload-form-2-label-noderiv": "Jame <strong>neturi būti kieno nors kito darbo</strong>, arba įkvėpto kitų",
        "foreign-structured-upload-form-2-label-useful": "Tai turėtų būti <strong>edukaciška ir naudinga</strong> mokyti kitus",
        "foreign-structured-upload-form-2-label-ccbysa": "Jis turi būti <strong>tinkamas publikuoti visam laikui</strong> internete su [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0] licencija",
+       "foreign-structured-upload-form-2-label-alternative": "Jeigu ne viskas viršuje yra tiesa, jūs dar galite pabandyti įkelti šį failą naudodamiesi [https://commons.wikimedia.org/wiki/Special:UploadWizard Bendrybių įkėlimo vedliu], kol jis prieinamas pagal laisvąją licenciją.",
+       "foreign-structured-upload-form-2-label-termsofuse": "Įkeldami failą, jūs patvirtinate, kad jums priklauso autorinės šio failo teisės ir sutinkate besąlygiškai išleisti šį failą į Wikimedia Commons pagal Creative Commons Attribution-ShareAlike 4.0 licenciją, ir jūs sutinkate su [https://wikimediafoundation.org/wiki/Terms_of_Use Naudojimosi sąlygomis].",
        "foreign-structured-upload-form-3-label-question-website": "Ar atsisiuntėte šį paveikslėlį iš tinklapio, ar gavote jį iš paveikslėlių paieškos?",
        "foreign-structured-upload-form-3-label-question-ownwork": "Ar jūs sukūrėte šį paveikslėlį (nufotografavote, nupiešėte, kt.) pats?",
        "foreign-structured-upload-form-3-label-question-noderiv": "Ar jame yra, arba jis įkvėptas, kitiems priklausančio darbo, kaip pavyzdžiui logotipas?",
        "log-title-wildcard": "Ieškoti pavadinimų, prasidedančių šiuo tekstu",
        "showhideselectedlogentries": "Rodyti/slėpti pasirinktus sąrašo elementus",
        "log-edit-tags": "Redaguoti žymes pasirinktuose žurnalo įrašuose",
+       "checkbox-select": "Pasirinkti: $1",
+       "checkbox-all": "Visi",
+       "checkbox-none": "Nieko",
+       "checkbox-invert": "Invertuoti",
        "allpages": "Visi puslapiai",
        "nextpage": "Kitas puslapis ($1)",
        "prevpage": "Ankstesnis puslapis ($1)",
        "listgrouprights-namespaceprotection-namespace": "Vardų sritis",
        "listgrouprights-namespaceprotection-restrictedto": "Teisė(s), leidžiančios naudotojui atlikti keitimus",
        "listgrants": "Leidimai",
+       "listgrants-summary": "Toliau pateiktas leidimų sąrašas su susietomis naudotojo teisėmis. Naudotojai gali įgalioti programėles naudoti jų paskyras, bet su apribotais leidimais, kuriuos naudotojas suteikė programėlei. Programėlė veikianti naudotojo vardu negali naudotis teisėmis, kurių neturi pats naudotojas.\nGali būti [[{{MediaWiki:Listgrouprights-helppage}}|papildomos informacijos]] apie individualias teises.",
        "listgrants-grant": "Leisti",
        "listgrants-rights": "Teisės",
        "trackingcategories": "Sekimo kategorijos",
        "wlheader-showupdated": "Puslapiai pakeisti nuo tada, kai paskutinį kartą apsilankėte juose, yra pažymėti '''pastorintai'''",
        "wlnote": "{{PLURAL:$1|Rodomas '''$1''' paskutinis pakeitimas, atliktas|Rodomi '''$1''' paskutiniai pakeitimai, atlikti|Rodoma '''$1''' paskutinių pakeitimų, atliktų}} per '''$2''' {{PLURAL:$2|paskutinę valandą|paskutines valandas|paskutinių valandų}}, nuo $3 $4.",
        "wlshowlast": "Rodyti paskutinių $1 valandų, $2 dienų",
-       "watchlistall2": "visi",
        "watchlist-hide": "Slėpti",
        "watchlist-submit": "Rodyti",
        "wlshowtime": "Laiko trukmė, kurią rodyti:",
        "version-libraries-authors": "Autoriai",
        "redirect": "Nukreiptas iš failo, naudotojo, versijos arba žurnalo įrašo ID",
        "redirect-legend": "Nukreipti į failą ar puslapį",
-       "redirect-summary": "Šis specialus puslapis peradresuoją į failą (nurodant failo pavadinimą), puslapį (nurodant versijos ID ar puslapio ID), arba vartotojo puslapį (nurodant skaitinį vartotojo ID).\nNaudojimas: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
+       "redirect-summary": "Šis specialus puslapis peradresuoją į failą (nurodant failo pavadinimą), puslapį (nurodant versijos ID ar puslapio ID), naudotojo puslapį (nurodant skaitinį naudotojo ID), arba žurnalo įrašą (nurodant žurnalo įrašo ID).\nNaudojimas: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], arba[[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Eiti",
        "redirect-lookup": "Peržvalgos:",
        "redirect-value": "Vertė:",
index ece560a..018bc88 100644 (file)
        "morenotlisted": "Šis saraksts nav pilnīgs.",
        "mypage": "Lapa",
        "mytalk": "Diskusijas",
-       "anontalk": "Šīs IP adreses diskusija",
+       "anontalk": "Diskusijas",
        "navigation": "Navigācija",
        "and": "&#32;un",
        "qbfind": "Meklēšana",
        "laggedslavemode": "Uzmanību: Iespējams, šajā lapā nav redzami nesen izdarītie papildinājumi.",
        "readonly": "Datubāze bloķēta",
        "enterlockreason": "Ievadiet bloķēšanas iemeslu, ieskaitot aplēses, kad bloķēšana tiks beigta.",
-       "readonlytext": "Datubāze šobrīd ir bloķēta jaunu ierakstu izveidošanai un citām izmaiņām, visticamāk, kārtējā datubāzes uzturēšanas pasākuma dēļ, pēc kura tā tiks atjaunota normālā stāvoklī.\n\nAdministrators, kurš nobloķēja datubāzi, norādīja šādu iemeslu: $1",
+       "readonlytext": "Datubāze šobrīd ir bloķēta jaunu ierakstu izveidošanai un citām izmaiņām, visticamāk, kārtējā datubāzes uzturēšanas pasākuma dēļ, pēc kura tā tiks atjaunota normālā stāvoklī.\n\nSistēmas administrators, kurš nobloķēja datubāzi, norādīja šādu iemeslu: $1",
        "missing-article": "Teksts lapai ar nosaukumu \"$1\" $2 datubāzē nav atrodams.\n\nTas parasti notiek novecojušu saišu gadījumā: pieprasot izmaiņas vai hronoloģiju lapai, kas ir izdzēsta.\n\nJa lapai ir jābūt, tad, iespējams, ir kļūda programmā.\nPar to varat ziņot [[Special:ListUsers/sysop|kādam administratoram]], norādot arī URL.",
        "missingarticle-rev": "(Pārskatīšana #: $1)",
        "missingarticle-diff": "(Salīdz.: $1, $2)",
        "title-invalid-interwiki": "Pieprasītais lapas nosaukums satur interwiki saiti, bet tās nevar lietot nosaukumos.",
        "title-invalid-talk-namespace": "Pieprasītais lapas nosaukums norāda uz diskusijas lapu, kas nevar pastāvēt.",
        "title-invalid-characters": "Pieprasītais lapas nosaukums satur nederīgus simbolus: \"$1\".",
+       "title-invalid-leading-colon": "Pieprasītās lapas nosaukums satur neatļautu kolu tā sākumā.",
        "perfcached": "Šie dati ir no servera kešatmiņas un var būt novecojuši. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
        "perfcachedts": "Šie dati ir no servera kešatmiņas (''cache''), kas pēdējo reizi bija atjaunota $1. Kešatmiņā {{PLURAL:$4|pieejami|pieejams|pieejami}} ne vairāk kā {{PLURAL:$4|$4 rezultāti|viens rezultāts|$4 rezultāti}}.",
        "querypage-no-updates": "Šīs lapas atjaunošana pagaidām ir atslēgta. Te esošie dati tuvākajā laikā netiks atjaunoti.",
        "viewsource-title": "Apskatīt $1 izejas kodu",
        "actionthrottled": "Darbība netika atļauta",
        "protectedpagetext": "Šī lapa ir aizsargāta, lai novērstu tās izmainīšanu vai citas darbības.",
-       "viewsourcetext": "Tu vari apskatīt un nokopēt šīs lapas vikitekstu:",
+       "viewsourcetext": "Tu vari apskatīt un nokopēt šīs lapas vikitekstu.",
        "protectedinterface": "Šī lapa satur programmatūras interfeisā lietotu tekstu un ir bloķēta pret izmaiņām, lai pasargātu no bojājumiem.\nLai pievienotu izmaiņas tulkojumā visās ''wiki'', lūdzam izmantot ''MediaWiki'' lokalizēšanas projektu [//translatewiki.net/ translatewiki.net].",
        "editinginterface": "'''Brīdinājums:''' Tu izmaini lapu, kuras saturu izmanto wiki programmatūras lietotāja saskarnē (''interfeisā''). Šīs lapas izmaiņas ietekmēs lietotāja saskarni citiem lietotājiem. Pēc modificēšanas šīs izmaiņas būtu lietderīgi pievienot arī ''MediaWiki'' lokalizēšanas projektā [//translatewiki.net/ translatewiki.net].",
        "namespaceprotected": "Tev nav atļaujas izmainīt lapas, kas atrodas '''$1''' ''namespacē''.",
        "throttled-mailpassword": "Paroles atgādinājums jau ir ticis nosūtīts {{PLURAL:$1|pēdējās stundas|pēdējo $1 stundu}} laikā.\nLai novērstu šīs funkcijas ļaunprātīgu izmantošanu, iespējams nosūtīt tikai vienu paroles atgādinājumu, {{PLURAL:$1|katru stundu|katras $1 stundas}}.",
        "mailerror": "E-pasta sūtīšanas kļūda: $1",
        "acct_creation_throttle_hit": "Lietotāji no tavas IP adreses šajā viki pēdējo 24 stundu laikā jau ir izveidojuši {{PLURAL:$1|$1 kontus|1 kontu|$1 kontus}}, kas ir maksimālais atļautais skaits šajā laika periodā.\nTādēļ šobrīd no šīs IP adreses vairs nevar izveidot jaunus kontus.",
-       "emailauthenticated": "Tava e-pasta adrese tika apstiprināta $2, $3.",
-       "emailnotauthenticated": "Tava e-pasta adrese <strong>vēl nav apstiprināta</strong> un zemāk norādītās iespējas nav pieejamas.",
+       "emailauthenticated": "Tava e-pasta adrese tika apstiprināta $2 $3.",
+       "emailnotauthenticated": "Tava e-pasta adrese vēl nav apstiprināta.\nE-pasts netiks sūtīts, izmantojot šīs funkcijas.",
        "noemailprefs": "Norādi e-pasta adresi, lai lietotu šīs iespējas.",
        "emailconfirmlink": "Apstiprināt tavu e-pasta adresi",
        "invalidemailaddress": "E-pasta adrese nevar tikt apstiprināta, jo izskatās nederīga. Lūdzu ievadi korekti noformētu e-pasta adresi, vai arī atstāj to lauku tukšu.",
        "retypenew": "Atkārto jauno paroli",
        "resetpass_submit": "Uzstādīt paroli un ieiet",
        "changepassword-success": "Jūsu parole tika nomainīta veiksmīgi!",
+       "botpasswords-label-appid": "Bota nosaukums:",
+       "botpasswords-label-create": "Izveidot",
+       "botpasswords-label-update": "Atjaunināt",
+       "botpasswords-label-cancel": "Atcelt",
+       "botpasswords-label-delete": "Dzēst",
+       "botpasswords-label-resetpassword": "Atiestatīt paroli",
+       "botpasswords-label-restrictions": "Lietošanas ierobežojumi:",
+       "botpasswords-label-grants-column": "Piešķirts",
        "resetpass_forbidden": "Paroles nav iespējams nomainīt",
        "resetpass-no-info": "Jums ir nepieciešams ieiet, lai tūlīt piekļūtu šai lapai.",
        "resetpass-submit-loggedin": "Mainīt paroli",
        "watchthisupload": "Uzraudzīt šo failu",
        "filewasdeleted": "Fails ar šādu nosaukumu jau ir bijis augšupielādēts un pēc tam izdzēsts.\nApskatiet $1 pirms turpiniet šo failu augšupielādēt atkārtoti.",
        "filename-bad-prefix": "Faila vārds failam, kuru tu mēģini augšpulādēt, sākas ar '''\"$1\"''', kas ir neaprakstošs vārds, kādu parasti uzģenerē digitālais fotoaparāts.\nLūdzu izvēlies aprakstošāku vārdu šim failam.",
-       "upload-success-subj": "Augšupielāde veiksmīga",
-       "upload-success-msg": "Jūsu augšupielādēt no [$2] bija veiksmīga. Tā ir pieejama šeit: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Augšupielādes problēma",
-       "upload-failure-msg": "Radās problēma ar jūsu augšupielādi no [$2]:\n\n$1",
-       "upload-warning-subj": "Augšupielādes brīdinājums",
-       "upload-warning-msg": "Radās problēma ar jūsu augšupielādi no [$2]. Lai labotu šo problēmu, jūs varat atgriezties uz [[Special:Upload/stash/$1|augšupielādes formu]].",
        "upload-proto-error": "Nepareizs protokols",
        "upload-proto-error-text": "Attālinātai augšupielādei URL ir jāsākas ar <code>http://</code> vai <code>ftp://</code>.",
        "upload-file-error": "Iekšējā kļūda",
        "wlheader-enotif": "E-pasta paziņojumi ir ieslēgti.",
        "wlheader-showupdated": "Lapas, kuras ir tikušas izmainītas, kopš tu tās pēdējoreiz apskatījies, te rādās ar '''pustrekniem''' burtiem",
        "wlshowlast": "Parādīt izmaiņas pēdējo $1 stundu laikā vai $2 dienu laikā, vai arī .",
-       "watchlistall2": "visas",
        "watchlist-options": "Uzraugāmo rakstu saraksta opcijas",
        "watching": "Uzrauga...",
        "unwatching": "Neuzrauga...",
        "tooltip-pt-anontalk": "Diskusija par labojumiem, kas izdarīti no šīs IP adreses",
        "tooltip-pt-preferences": "Tavas izvēles",
        "tooltip-pt-watchlist": "Tevis uzraudzītās lapas",
-       "tooltip-pt-mycontris": "Tavs devums",
+       "tooltip-pt-mycontris": "{{GENDER:|Tavs}} devums",
        "tooltip-pt-anoncontribs": "Labojumi, kas veikti no šīs IP adreses",
        "tooltip-pt-login": "Aicinām tevi ieiet {{grammar:lokatīvs|{{SITENAME}}}}, tomēr tas nav obligāti.",
        "tooltip-pt-logout": "Iziet",
        "tooltip-t-recentchangeslinked": "Izmaiņas, kas nesen izdarītas lapās, kurās ir saites uz šo lapu",
        "tooltip-feed-rss": "Šīs lapas RSS barotne",
        "tooltip-feed-atom": "Šīs lapas Atom barotne",
-       "tooltip-t-contributions": "Apskatīt šā lietotāja ieguldījumu uzskaitījumu.",
-       "tooltip-t-emailuser": "Sūtīt e-pastu šim lietotājam",
+       "tooltip-t-contributions": "{{GENDER:$1|Šī dalībnieka|Šīs dalībnieces}} ieguldījumu uzskaitījums",
+       "tooltip-t-emailuser": "Sūtīt e-pastu {{GENDER:$1|šim dalībniekam|šai dalībniecei}}",
        "tooltip-t-upload": "Augšupielādēt failus",
        "tooltip-t-specialpages": "Visu īpašo lapu uzskaitījums",
        "tooltip-t-print": "Drukājama lapas versija",
        "compare-revision-not-exists": "Norādītā versija neeksistē.",
        "dberr-problems": "Atvainojiet!\nŠai vietnei ir radušās tehniskas problēmas.",
        "dberr-again": "Uzgaidiet dažas minūtes un pārlādējiet šo lapu.",
-       "dberr-info": "(Nevar sazināties ar datubāzes serveri: $1)",
-       "dberr-info-hidden": "(Nevar sazināties ar datubāzes serveri)",
+       "dberr-info": "(Nevar piekļūt datubāzei: $1)",
+       "dberr-info-hidden": "(Nevar piekļūt datubāzei)",
        "dberr-usegoogle": "Pa to laiku Jūs varat izmantot Google meklēšanu.",
        "dberr-outofdate": "Ņemiet vērā, ka mūsu satura indeksācija var būt novecojusi.",
        "dberr-cachederror": "Šī ir lapas agrāk saglabātā kopija, tā var nebūt atjaunināta.",
index a92dfea..280a99c 100644 (file)
        "watchthisupload": "ऐ पृष्ठपर नजरि राखू",
        "filewasdeleted": "ऐ नामक एकटा संचिका पहिने उपारोपित कएल गेल आ फेर मेटा देल गेल।\nअहाँ फेरसँ एकरा उपारोपित करबासँ पहिने ई $1 जाँचू।",
        "filename-bad-prefix": "जे संचिका अहाँ उपारोपित कऽ रहल छी से '''\"$1\"''' सँ शुरू होइए, ई बिन विवरणक नाम अछि जे मूल रूपेँ अंकीय कैमरा द्वारा स्वचालित रूपेँ देल जाइत अछि।\nकृपा कऽ ऐ संचिका लेल एकटा बेसी वर्णनात्मक नाम चुनू।",
-       "upload-success-subj": "सफलतापूर्वक उपारोपित",
-       "upload-success-msg": "[$2] सँ उपारोपन सफल भेल। ई एतए अछि: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "उपारोपण समस्या",
-       "upload-failure-msg": "[$2] सँ उपारोपणमे समस्या अछि:\n$1",
-       "upload-warning-subj": "उपारोपण चेतौनी",
-       "upload-warning-msg": "[$2] सँ उपारोपणमे समस्या छल। अहाँ घुरि सकै छी [[Special:Upload/stash/$1|उपारोपण आवेदन]] ऐ समस्याकेँ ठीक करबा लेल।",
        "upload-proto-error": "गलत संविद",
        "upload-proto-error-text": "दूरसँ उपारोपण लेल <code>http://</code> or <code>ftp://</code> सँ प्रारम्भ होएबला सार्वत्रिक विभव संकेत चाही।",
        "upload-file-error": "आन्तरिक भ्रम",
        "wlheader-showupdated": "पन्ना सभ जे अहाँक एतए अन्तिम बेर अएलाक बाद बदलल अछि तकर सूची देल अछि '''गाढ़''' मे",
        "wlnote": "नीचाँ {{PLURAL:$1|is the last change|are the last '''$1''' changes}} अन्तिम {{PLURAL:$2|hour|'''$2''' hours}} $3, $4 जेना।",
        "wlshowlast": "देखाउ अन्तिम $1 घण्टा $2 दिन",
-       "watchlistall2": "सभ",
        "watchlist-options": "साकांक्षसूचीक विकल्प सभ",
        "watching": "ताकिमे...",
        "unwatching": "छोड़ल ...",
index aed8c33..5c5c1db 100644 (file)
        "virus-scanfailed": "неуспешно скенирање (код $1)",
        "virus-unknownscanner": "непознат антивирус:",
        "logouttext": "<strong>Сега сте одјавени.</strong>\n\nДа напоменеме дека некои страници може да продолжат да се прикажуваат како да сте најавени, сè додека не го исчистите меѓускладот на вашиот прелистувач.",
+       "cannotlogoutnow-title": "Во моментов не можам да ве одјавам",
+       "cannotlogoutnow-text": "Не можам да ве одјавам кога се користи $1.",
        "welcomeuser": "Добр едојдовте, $1!",
        "welcomecreation-msg": "Вашата корисничка сметка е создадена.\nНе заборавајте да ги измените вашите [[Special:Preferences|{{SITENAME}} нагодувања]].",
        "yourname": "Корисничко име:",
        "remembermypassword": "Запомни ме на овој сметач (највеќе $1 {{PLURAL:$1|ден|дена}})",
        "userlogin-remembermypassword": "Запомни ме",
        "userlogin-signwithsecure": "Користи безбеден опслужувач",
+       "cannotloginnow-title": "Во моментов не можам да ве најавм",
        "yourdomainname": "Вашиот домен:",
        "password-change-forbidden": "Не можете да ја менувате лозинката на ова вики.",
        "externaldberror": "Настана грешка при надворешното најавување на базата или пак немате дозвола да ја подновите вашата надворешна сметка.",
        "filename-thumb-name": "Изгледа дека ова е наслов на минијатура. Не подигајте минијатури од слики на истово вики. Ако ова не е така, исправете го името на податотеката за да биде поописно и да нема претставка на минијатура.",
        "filename-bad-prefix": "Името на податотеката која ја подигате започнува со '''„$1“''', типично за неописните називи кои дигиталните фотоапарати автоматски ги создаваат, што впрочем е недоволно описно.\nВе молиме одберете подобро описно име за вашата податотека.",
        "filename-prefix-blacklist": " #<!-- Не менувајте ја содржината на овој ред - оставете ја како што е --> <pre>\n# Опис на ситнаксата:\n#   * Било што по знакот „#“, па до крајот на редот претставува коментар\n#   * Секој ред означува претставка на типични имиња на податотеки што ги доделуваат дигиталните апарати\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # некои мобилни телефони\nIMG # општо\nJD # Jenoptik\nMGP # Pentax\nPICT # разни\n #</pre> <!-- Не менувајте ја содржината на овој ред - оставете ја како што е -->",
-       "upload-success-subj": "Подигањето е успешно",
-       "upload-success-msg": "Подигањето од [$2] заврши успешно. Подигнатото можете да го видите тука: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Проблем при подигањето",
-       "upload-failure-msg": "Се појави проблем со вашето подигање од [$2]:\n\n$1",
-       "upload-warning-subj": "Предупредување за подигањето",
-       "upload-warning-msg": "Се јави проблем при подигањето од [$2]. Можете да се вратите на [[Special:Upload/stash/$1|образецот]] за да го поправите проблемот.",
        "upload-proto-error": "Погрешен протокол",
        "upload-proto-error-text": "За далечинско подигање потребно е URL-то да почнува со <code>http://</code> или <code>ftp://</code>.",
        "upload-file-error": "Внатрешна грешка",
        "wlheader-showupdated": "Страниците што се изменети од вашата последна посета се прикажани со '''задебелени''' букви",
        "wlnote": "Подолу {{PLURAL:$1|е прикажана последната промена|се прикажани последните <strong>$1</strong> промени}} во {{PLURAL:$2|последниов час|последниве <strong>$2</strong> часа}}, заклучно со $3, $4 ч.",
        "wlshowlast": "Прикажи ги последните $1 часа, $2 дена,",
-       "watchlistall2": "сè",
        "watchlist-hide": "Скриј",
        "watchlist-submit": "Прикажи",
        "wlshowtime": "Период за приказ:",
        "exif-bitspersample": "Длабочина на бојата",
        "exif-compression": "Вид на набивање",
        "exif-photometricinterpretation": "Пикселски состав",
-       "exif-orientation": "Ð\9eÑ\80иенÑ\82аÑ\86иÑ\98а",
+       "exif-orientation": "Ð\9dаÑ\81оÑ\87еноÑ\81Ñ\82",
        "exif-samplesperpixel": "Број на сост. делови",
        "exif-planarconfiguration": "Распоред на податоците",
        "exif-ycbcrsubsampling": "Однос на величината на Y спрема C",
index 8a2845f..2b53d20 100644 (file)
        "filewasdeleted": "ഈ പേരിലുള്ള ഒരു പ്രമാണം ഇതിനു മുൻപ് അപ്‌ലോഡ് ചെയ്യുകയും പിന്നീട് മായ്ക്കുകയും ചെയ്തിട്ടുള്ളതാണ്‌. ഈ പ്രമാണം തുടർന്നും അപ്‌ലോഡ് ചെയ്യുന്നതിനു മുൻപ് $1 പരിശോധിക്കേണ്ടതാണ്‌.",
        "filename-thumb-name": "ഇത് കണ്ടിട്ട് ലഘുചിത്രത്തിന്റെ തലക്കെട്ട് പോലെയുണ്ട്. ദയവായി ഇതേ വിക്കിയിലെ ചിത്രങ്ങളുടെ ലഘുചിത്രം തന്നെ അപ്‌ലോഡ് ചെയ്യരുത്. അങ്ങനെയല്ലെങ്കിൽ, ലഘുചിത്രമെന്ന പൂർവ്വപദഭാഗമില്ലാതെ, കൂടുതൽ അർത്ഥപൂർണ്ണമായ പേര് നൽകുക.",
        "filename-bad-prefix": "താങ്കൾ അപ്‌ലോഡ് ചെയ്യുവാൻ ശ്രമിക്കുന്ന പ്രമാണത്തിന്റെ പേര്‌ '''\"$1\"''' എന്നാണ്‌ തുടങ്ങുന്നത്. ഇതു ഡിജിറ്റൽ ക്യാമറയിൽ പടങ്ങൾക്കു യാന്ത്രികമായി ചേർക്കുന്ന പേരാണ്‌. ദയവു ചെയ്തു താങ്കൾ അപ്‌ലോഡ് ചെയ്യുന്ന പ്രമാണത്തെ വിശദീകരിക്കുന്ന അനുയോജ്യമായ ഒരു പേരു തിരഞ്ഞെടുക്കുക.",
-       "upload-success-subj": "അപ്‌ലോഡ് വിജയിച്ചിരിക്കുന്നു",
-       "upload-success-msg": "താങ്കളുടെ [$2]-ൽ നിന്നും വിജയകരമായി അപ്‌ലോഡ് ചെയ്തിരിക്കുന്നു. [[:{{ns:file}}:$1]] കാണുക",
-       "upload-failure-subj": "അപ്‌‌ലോഡിൽ പിഴവുണ്ട്",
-       "upload-failure-msg": "[$2] എന്നതിൽ നിന്നും താങ്കൾ നടത്തിയ അപ്‌‌ലോഡിൽ ഒരു പ്രശ്നമുണ്ട്:\n\n$1",
-       "upload-warning-subj": "അപ്‌ലോഡ് മുന്നറിയിപ്പ്",
-       "upload-warning-msg": "താങ്കൾ [$2]-ൽ നിന്നും ചെയ്ത അപ്‌ലോഡിൽ പിഴവുണ്ടായിരിക്കുന്നു. [[Special:Upload/stash/$1|അപ്‌ലോഡ് ഫോമിലേക്ക്]] തിരിച്ചുപോയി താങ്കൾക്ക് ഈ പ്രശ്നം പരിഹരിക്കാവുന്നതാണ്.",
        "upload-proto-error": "തെറ്റായ പ്രോട്ടോക്കോൾ",
        "upload-proto-error-text": "റിമോട്ട് അപ്‌ലോഡിനു <code>http://</code> അഥവാ <code>ftp://</code> എന്നു തുടങ്ങുന്ന URL വേണം.",
        "upload-file-error": "ആന്തരികപ്രശ്നം",
        "wlheader-showupdated": "താങ്കളുടെ അവസാന സന്ദർശനത്തിനു ശേഷം മാറ്റം വന്ന താളുകൾ  '''കടുപ്പിച്ച്''' കാണിച്ചിരിക്കുന്നു",
        "wlnote": "$3, $4-നു കഴിഞ്ഞ {{PLURAL:$2|മണിക്കൂറിൽ|<strong>$2</strong> മണിക്കൂറിൽ}} നടന്ന {{PLURAL:$1|ഒരു പുതിയ മാറ്റം|<strong>$1</strong> പുതിയ മാറ്റങ്ങൾ}} താഴെ പ്രദർശിപ്പിച്ചിരിക്കുന്നു.",
        "wlshowlast": "ഒടുവിലത്തെ $1 മണിക്കൂറുകൾ $2 ദിനങ്ങൾ പ്രദർശിപ്പിക്കുക",
-       "watchlistall2": "എല്ലാം",
        "watchlist-hide": "മറയ്ക്കുക",
        "watchlist-submit": "പ്രദർശിപ്പിക്കുക",
        "wlshowtime": "പ്രദർശിപ്പിക്കേണ്ട കാലാവധി:",
        "lockedbyandtime": "($3 $2-നു $1 ചെയ്തത്)",
        "move-page": "$1 മാറ്റുക",
        "move-page-legend": "താൾ മാറ്റുക",
-       "movepagetext": "താഴെയുള്ള ഫോം ഒരു താളിനെ പുനർനാമകരണം ചെയ്യാനുള്ളതാണ്, താളിന്റെ നാൾവഴിയും അക്കൂടെ പുതിയ പേരിലേയ്ക്ക് മാറുന്നതാണ്.\nപഴയ തലക്കെട്ട്, പുതിയ തലക്കെട്ടുള്ള താളിലേക്കുള്ള ഒരു തിരിച്ചുവിടൽ താളായി മാറും.\nപഴയ തലക്കെട്ടിലേക്കുള്ള തിരിച്ചുവിടലുകൾ യന്ത്രങ്ങൾ ഉപയോഗിച്ച് താങ്കൾക്ക് ശരിയാക്കാവുന്നതാണ്.\nഅങ്ങനെ വേണ്ട എന്നാണ് താങ്കളാഗ്രഹിക്കുന്നതെങ്കിൽ [[Special:DoubleRedirects|ഇരട്ട തിരിച്ചുവിടലുകളോ]], [[Special:BrokenRedirects|ഫലപ്രദമല്ലാത്ത തിരിച്ചുവിടലുകളോ]] ഉണ്ടാകുന്നുണ്ടോയെന്ന് ദയവായി പരിശോധിക്കുക.\nലിങ്കുകൾ ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് പരിശോധിച്ച് ഉറപ്പു വരുത്തേണ്ടത് താങ്കളുടെ ചുമതലയാണ്.\n\nതാങ്കൾ പുതിയതായി ഉദ്ദേശിക്കുന്ന തലക്കെട്ടിൽ ഒരു താൾ നേരത്തേ നിലവിലുണ്ടെങ്കിൽ '''പുനർനാമകരണം സാധിക്കില്ല'''.\nഅല്ലെങ്കിൽ അതൊരു തിരിച്ചുവിടൽ താളോ, ശൂന്യമായ താളോ അതിനു മറ്റു പഴയരൂപങ്ങൾ ഇല്ലാതിരിക്കുകയോ ചെയ്യണം.\nഅതായത് താങ്കൾ ഒരു താൾ തെറ്റായി പുനർനാമകരണം ചെയ്താൽ മാത്രമേ അതിനേ തിരിച്ചാക്കാൻ സാധിക്കുകയുള്ളു.\nനിലവിലുള്ള ഒരു താളിന്റെ മുകളിൽ അതേ തലക്കെട്ടിൽ മറ്റൊരു താളുണ്ടാക്കാൻ സാധിക്കില്ല.\n\n'''മുന്നറിയിപ്പ്!:'''\nഈ പ്രവൃത്തി ഒരു നല്ലതാളിൽ അപ്രതീക്ഷിതവും, ഉഗ്രവുമായ ഫലങ്ങൾ ഉണ്ടാക്കിയേക്കാം.\nമുന്നോട്ടു പോകുന്നതിനു മുമ്പ് താങ്കൾ ചെയ്യുന്നതെന്താണെന്ന് വ്യക്തമായി മനസ്സിലാക്കുക.",
-       "movepagetext-noredirectfixer": "താഴെയുള്ള ഫോം ഒരു താളിനെ പുനർനാമകരണം ചെയ്യാനുള്ളതാണ്.\nതാളിന്റെ പഴയരൂപങ്ങളും ഈ മാറ്റത്തിന് വിധേയമാക്കപ്പെടും.\nപഴയ തലക്കെട്ട്, പുതിയ തലക്കെട്ടുള്ള താളിലേക്കുള്ള ഒരു തിരിച്ചുവിടൽ താളായി മാറും.\nപഴയതാളിലേക്കുള്ള ലിങ്കുകൾ ഈ മാറ്റത്തിൽ മാറുകയില്ല.\n[[Special:DoubleRedirects|ഇരട്ട തിരിച്ചുവിടലുകളോ]], [[Special:BrokenRedirects|ഫലപ്രദമല്ലാത്ത തിരിച്ചുവിടലുകളോ]] ഉണ്ടാകുന്നുണ്ടോയെന്ന് ദയവായി പരിശോധിക്കുക.\nലിങ്കുകൾ ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് പരിശോധിച്ച് ഉറപ്പു വരുത്തേണ്ടത് താങ്കളുടെ ചുമതലയാണ്.\n\nതാങ്കൾ പുതിയതായി ഉദ്ദേശിക്കുന്ന തലക്കെട്ടിൽ ഒരു താൾ നേരത്തേ നിലവിലുണ്ടെങ്കിൽ '''പുനർനാമകരണം സാധിക്കില്ല'''.\nഅല്ലെങ്കിൽ അതൊരു തിരിച്ചുവിടൽ താളോ, ശൂന്യമായ താളോ അതിനു മറ്റു പഴയരൂപങ്ങൾ ഇല്ലാതിരിക്കുകയോ ചെയ്യണം.\nഅതായത് താങ്കൾ ഒരു താൾ തെറ്റായി പുനർനാമകരണം ചെയ്താൽ മാത്രമേ അതിനേ തിരിച്ചാക്കാൻ സാധിക്കുകയുള്ളു.\nനിലവിലുള്ള ഒരു താളിന്റെ മുകളിൽ അതേ തലക്കെട്ടിൽ മറ്റൊരു താളുണ്ടാക്കാൻ സാധിക്കില്ല.\n\n'''മുന്നറിയിപ്പ്!:'''\nഈ പ്രവൃത്തി ഒരു നല്ലതാളിൽ അപ്രതീക്ഷിതവും, ഉഗ്രവുമായ ഫലങ്ങൾ സൃഷ്ടിച്ചേക്കാം.\nമുന്നോട്ടു പോകുന്നതിനു മുമ്പ് താങ്കൾ ചെയ്യുന്നതെന്താണെന്ന് വ്യക്തമായി മനസ്സിലാക്കുക.",
+       "movepagetext": "താഴെയുള്ള ഫോം ഒരു താളിനെ പുനർനാമകരണം ചെയ്യാനുള്ളതാണ്, താളിന്റെ നാൾവഴിയും അക്കൂടെ പുതിയ പേരിലേയ്ക്ക് മാറുന്നതാണ്.\nപഴയ തലക്കെട്ട്, പുതിയ തലക്കെട്ടുള്ള താളിലേക്കുള്ള ഒരു തിരിച്ചുവിടൽ താളായി മാറും.\nപഴയ തലക്കെട്ടിലേക്കുള്ള തിരിച്ചുവിടലുകൾ യന്ത്രങ്ങൾ ഉപയോഗിച്ച് താങ്കൾക്ക് ശരിയാക്കാവുന്നതാണ്.\nഅങ്ങനെ വേണ്ട എന്നാണ് താങ്കളാഗ്രഹിക്കുന്നതെങ്കിൽ [[Special:DoubleRedirects|ഇരട്ട തിരിച്ചുവിടലുകളോ]], [[Special:BrokenRedirects|ഫലപ്രദമല്ലാത്ത തിരിച്ചുവിടലുകളോ]] ഉണ്ടാകുന്നുണ്ടോയെന്ന് ദയവായി പരിശോധിക്കുക.\nലിങ്കുകൾ ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് പരിശോധിച്ച് ഉറപ്പു വരുത്തേണ്ടത് താങ്കളുടെ ചുമതലയാണ്.\n\nതാങ്കൾ പുതിയതായി ഉദ്ദേശിക്കുന്ന തലക്കെട്ടിൽ ഒരു താൾ നേരത്തേ നിലവിലുണ്ടെങ്കിൽ <strong>പുനർനാമകരണം സാധിക്കില്ല</strong>.\nഅല്ലെങ്കിൽ അതൊരു തിരിച്ചുവിടൽ താളോ, ശൂന്യമായ താളോ അതിനു മറ്റു പഴയരൂപങ്ങൾ ഇല്ലാതിരിക്കുകയോ ചെയ്യണം.\nഅതായത് താങ്കൾ ഒരു താൾ തെറ്റായി പുനർനാമകരണം ചെയ്താൽ മാത്രമേ അതിനേ തിരിച്ചാക്കാൻ സാധിക്കുകയുള്ളു.\nനിലവിലുള്ള ഒരു താളിന്റെ മുകളിൽ അതേ തലക്കെട്ടിൽ മറ്റൊരു താളുണ്ടാക്കാൻ സാധിക്കില്ല.\n\n<strong>മുന്നറിയിപ്പ്!:</strong>\nഈ പ്രവൃത്തി ഒരു നല്ലതാളിൽ അപ്രതീക്ഷിതവും, ഉഗ്രവുമായ ഫലങ്ങൾ ഉണ്ടാക്കിയേക്കാം.\nമുന്നോട്ടു പോകുന്നതിനു മുമ്പ് താങ്കൾ ചെയ്യുന്നതെന്താണെന്ന് വ്യക്തമായി മനസ്സിലാക്കുക.",
+       "movepagetext-noredirectfixer": "താഴെയുള്ള ഫോം ഒരു താളിനെ പുനർനാമകരണം ചെയ്യാനുള്ളതാണ്.\nതാളിന്റെ പഴയരൂപങ്ങളും ഈ മാറ്റത്തിന് വിധേയമാക്കപ്പെടും.\nപഴയ തലക്കെട്ട്, പുതിയ തലക്കെട്ടുള്ള താളിലേക്കുള്ള ഒരു തിരിച്ചുവിടൽ താളായി മാറും.\nപഴയതാളിലേക്കുള്ള ലിങ്കുകൾ ഈ മാറ്റത്തിൽ മാറുകയില്ല.\n[[Special:DoubleRedirects|ഇരട്ട തിരിച്ചുവിടലുകളോ]], [[Special:BrokenRedirects|ഫലപ്രദമല്ലാത്ത തിരിച്ചുവിടലുകളോ]] ഉണ്ടാകുന്നുണ്ടോയെന്ന് ദയവായി പരിശോധിക്കുക.\nലിങ്കുകൾ ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് പരിശോധിച്ച് ഉറപ്പു വരുത്തേണ്ടത് താങ്കളുടെ ചുമതലയാണ്.\n\nതാങ്കൾ പുതിയതായി ഉദ്ദേശിക്കുന്ന തലക്കെട്ടിൽ ഒരു താൾ നേരത്തേ നിലവിലുണ്ടെങ്കിൽ <strong>പുനർനാമകരണം സാധിക്കില്ല</strong>.\nഅല്ലെങ്കിൽ അതൊരു തിരിച്ചുവിടൽ താളോ, ശൂന്യമായ താളോ അതിനു മറ്റു പഴയരൂപങ്ങൾ ഇല്ലാതിരിക്കുകയോ ചെയ്യണം.\nഅതായത് താങ്കൾ ഒരു താൾ തെറ്റായി പുനർനാമകരണം ചെയ്താൽ മാത്രമേ അതിനേ തിരിച്ചാക്കാൻ സാധിക്കുകയുള്ളു.\nനിലവിലുള്ള ഒരു താളിന്റെ മുകളിൽ അതേ തലക്കെട്ടിൽ മറ്റൊരു താളുണ്ടാക്കാൻ സാധിക്കില്ല.\n\n<strong>മുന്നറിയിപ്പ്!:</strong>\nഈ പ്രവൃത്തി ഒരു നല്ലതാളിൽ അപ്രതീക്ഷിതവും, ഉഗ്രവുമായ ഫലങ്ങൾ സൃഷ്ടിച്ചേക്കാം.\nമുന്നോട്ടു പോകുന്നതിനു മുമ്പ് താങ്കൾ ചെയ്യുന്നതെന്താണെന്ന് വ്യക്തമായി മനസ്സിലാക്കുക.",
        "movepagetalktext": "ഇവിടെ ശരിയിട്ട് നൽകിയിട്ടുണ്ടെങ്കിൽ, അതേ പേരിൽ തന്നെ ശൂന്യമല്ലാത്ത ഒരു സം‌വാദത്താൾ നിലവിലില്ലാത്ത പക്ഷം ബന്ധപ്പെട്ട സം‌വാദത്താൾ പുതിയ തലക്കെട്ടിലേക്ക് സ്വയം മാറപ്പെടുന്നതാണ്.\n\nഅത്തരം സന്ദർഭങ്ങളിൽ സം‌വാദത്താളുകൾ താങ്കൾ സ്വയം ലയിപ്പിക്കേണ്ടതാണ്.",
        "moveuserpage-warning": "'''മുന്നറിയിപ്പ്:''' ഉപയോക്താവിനുള്ള താളാണ് താങ്കൾ മാറ്റാൻ പോകുന്നത്. താൾ മാത്രമേ മാറുകയുള്ളു എന്നും ഉപയോക്താവിന്റെ പേര് ''മാറുകയില്ലെന്നും'' ദയവായി ഓർക്കുക.",
        "movecategorypage-warning": "<strong>മുന്നറിയിപ്പ്:</strong> താങ്കൾ ഒരു വർഗ്ഗതാൾ മാറ്റാൻ പോവുകയാണ്. ഈ താൾ മാത്രമേ മാറുകയുള്ളുവെന്നും പഴയ വർഗ്ഗത്തിൽ ഉണ്ടായിരുന്ന താളുകളൊന്നും പുനർവർഗ്ഗീകരണം ചെയ്യാത്ത പക്ഷം പുതിയതിലേക്ക് <em>മാറില്ലെന്നും</em> ഓർക്കുക.",
        "movenosubpage": "ഈ താളിന്‌ ഉപതാളുകൾ ഇല്ല",
        "movereason": "കാരണം:",
        "revertmove": "പൂർവ്വസ്ഥിതിയിലാക്കുക",
-       "delete_and_move_text": "==താൾ മായ്ക്കേണ്ടിയിരിക്കുന്നു==\n\nമാറ്റാനായി നൽകിയ \"[[:$1]]\" എന്ന താൾ നിലവിലുണ്ട്. ഈ മാറ്റം നടത്തുന്നതിനുവേണ്ടി ആ താൾ മായ്ക്കേണ്ടതുണ്ടോ?",
+       "delete_and_move_text": "മാറ്റത്തിനു ലക്ഷ്യമായി നൽകിയ \"[[:$1]]\" എന്ന താൾ നിലവിലുണ്ട്. ഈ മാറ്റം നടത്തുന്നതിനുവേണ്ടി ആ താൾ മായ്ക്കേണ്ടതുണ്ടോ?",
        "delete_and_move_confirm": "ശരി, താൾ നീക്കം ചെയ്യുക",
        "delete_and_move_reason": "\"[[$1]]\" എന്നതിൽ നിന്നും മാറ്റാനുള്ള സൗകര്യത്തിനായി മായ്ച്ചു",
        "selfmove": "പഴയ തലക്കെട്ടു തന്നെയാണ് മാറ്റാനായി നൽകിയിരിക്കുന്നത്; അതിനാൽ തലക്കെട്ടുമാറ്റം സാദ്ധ്യമല്ല.",
        "move-leave-redirect": "പിന്നിൽ ഒരു തിരിച്ചുവിടൽ നിലനിർത്തുക",
        "protectedpagemovewarning": "'''മുന്നറിയിപ്പ്:'''  കാര്യനിർവാഹക പദവിയുള്ളവർക്കു മാത്രം മാറ്റാൻ കഴിയുന്ന വിധത്തിൽ ഈ താൾ സംരക്ഷിക്കപ്പെട്ടിരിക്കുന്നു. അവലംബമായി രേഖകളിലെ ഏറ്റവും പുതിയ വിവരം താഴെ നൽകിയിരിക്കുന്നു:",
        "semiprotectedpagemovewarning": "'''കുറിപ്പ്:''' അംഗത്വമെടുത്ത ഉപയോക്താക്കൾക്കു മാത്രം മാറ്റാൻ കഴിയുന്ന വിധത്തിൽ ഈ താൾ സംരക്ഷിക്കപ്പെട്ടിരിക്കുന്നു. അവലംബമായി രേഖകളിലെ ഏറ്റവും പുതിയ വിവരം താഴെ കൊടുത്തിരിക്കുന്നു:",
-       "move-over-sharedrepo": "==പ്രമാണം നിലനിൽക്കുന്നുണ്ട്==\nപങ്ക് ‌‌വെച്ചുപയോഗിക്കുന്ന ശേഖരണിയൊന്നിൽ [[:$1]] നിലനിൽക്കുന്നു. ഈ തലക്കെട്ടിലേയ്ക്ക് ഒരു പ്രമാണത്തെ മാറ്റുന്നത് പങ്ക് വെച്ചുപയോഗിക്കുന്ന പ്രമാണത്തെ അതിലംഘിക്കുന്നതാണ്.",
+       "move-over-sharedrepo": "പങ്ക് ‌‌വെച്ചുപയോഗിക്കുന്ന ശേഖരണിയൊന്നിൽ [[:$1]] നിലനിൽക്കുന്നു. ഈ തലക്കെട്ടിലേയ്ക്ക് ഒരു പ്രമാണത്തെ മാറ്റുന്നത് പങ്ക് വെച്ചുപയോഗിക്കുന്ന പ്രമാണത്തെ അതിലംഘിക്കുന്നതാണ്.",
        "file-exists-sharedrepo": "താങ്കൾ തിരഞ്ഞെടുത്ത പ്രമാണ നാമം പങ്ക് വെയ്ക്കപ്പെട്ടുപയോഗിക്കുന്ന റെപ്പോസിറ്ററിയിൽ ഉപയോഗിക്കുന്നു.\nദയവായി മറ്റൊരു നാമം സ്വീകരിക്കുക.",
        "export": "താളുകൾ കയറ്റുമതി ചെയ്യുക",
        "exporttext": "ഒരു പ്രത്യേക താളിന്റേയോ താളുകളുടെ ഗണത്തിലേയോ എഴുത്തും നാൾവഴിയും എക്സ്.എം.എല്ലിൽ പൊതിഞ്ഞ് താങ്കൾക്ക് കയറ്റുമതി ചെയ്യാവുന്നതാണ്.\nഇത് മീഡിയവിക്കി ഉപയോഗിച്ചുള്ള മറ്റൊരു വിക്കിയിൽ [[Special:Import|ഇറക്കുമതി താൾ]] ഉപയോഗിച്ച് ഇറക്കുമതി ചെയ്യാവുന്നതാണ്.\n\nതാളുകൾ കയറ്റുമതി ചെയ്യാൻ, താഴെ കൊടുത്തിരിക്കുന്ന പെട്ടിയിൽ തലക്കെട്ടുകൾ, ഒരു വരിയിൽ ഒന്നു വീതം നൽകി, എല്ലാ നാൾപ്പതിപ്പും വേണോ അവസാനത്തെ തിരുത്തലിന്റെ വിവരങ്ങൾ ഉൾപ്പെടെയുള്ള ഇപ്പോഴുള്ള പതിപ്പ് മാത്രം മതിയോ എന്ന് തിരഞ്ഞെടുത്ത് നൽകുക.\n\nപിന്നീട് ഇതിനായി താങ്കൾക്ക് ഒരു കണ്ണി, ഉദാഹരണത്തിന് \"[[{{MediaWiki:Mainpage}}]]\" എന്ന താളിന് [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]], ഉപയോഗിക്കാവുന്നതാണ്.",
        "lastmodifiedatby": "$2, $1 നു $3 ആണ്‌ ഈ താൾ അവസാനം പുതുക്കിയത്.",
        "othercontribs": "$1 നടത്തിയ സൃഷ്ടിയെ അധികരിച്ച്.",
        "others": "മറ്റുള്ളവർ",
-       "siteusers": "{{SITENAME}} {{PLURAL:$2|ഉപയോക്താവ്‌|ഉപയോക്താക്കൾ}} $1",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|{{GENDER:$1|ഉപയോക്താവ്‌}}|ഉപയോക്താക്കൾ}} $1",
        "anonusers": "{{SITENAME}} പദ്ധതിയിലെ അജ്ഞാത {{PLURAL:$2|ഉപയോക്താവ്|ഉപയോക്താക്കൾ}} $1",
        "creditspage": "താളിനുള്ള കടപ്പാട്",
        "nocredits": "ഈ താളിന്റെ കടപ്പാട് വിവരങ്ങൾ ലഭ്യമല്ല.",
        "mw-widgets-titleinput-description-new-page": "താൾ ഇപ്പോൾ നിലവിലില്ല",
        "mw-widgets-titleinput-description-redirect": "$1 എന്ന താളിലേക്കുള്ള തിരിച്ചുവിടൽ",
        "api-error-blacklisted": "ദയവായി മറ്റൊരു വിവരണാത്മകമായ തലക്കെട്ട് തിരഞ്ഞെടുക്കുക.",
+       "sessionmanager-tie": "വ്യത്യസ്ത തരത്തിലുള്ള അനുമതി നൽകൽ തരങ്ങൾ സംയോജിപ്പിക്കാനാവില്ല: $1.",
        "sessionprovider-generic": "$1 സെഷനുകൾ",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "കൂക്കി-അധിഷ്ഠിത സെഷനുകൾ",
        "sessionprovider-nocookies": "കൂക്കികൾ സജ്ജമല്ലായിരിക്കാം. കൂക്കികൾ സജ്ജമാണോയെന്ന് ഉറപ്പാക്കിയ ശേഷം വീണ്ടും തുടങ്ങുക.",
index b03830e..ba28a76 100644 (file)
        "edit-conflict": "အငြင်းပွားမှုကို တည်းဖြတ်ရန်။",
        "edit-no-change": "စာသားကို အပြောင်းအလဲ မလုပ်ခဲ့သောကြောင့် တည်းဖြတ်မှုကို လျစ်လျူရှုလိုက်သည်။",
        "edit-already-exists": "စာမျက်နှာအသစ်တစ်ခု မဖန်တီးနိုင်ပါ။\nယင်းစာမျက်နှာ တည်ရှိပြီး ဖြစ်သည်။",
+       "duplicate-args-category": "တမ်းပလိတ်တွင်းရှိ arguments ထပ်နေသော စာမျက်နှာများ",
        "post-expand-template-inclusion-warning": "'''သတိပေးချက် -''' တမ်းပလိတ်အရွယ်အစား ကြီးလွန်းနေသည်။\nအချို့တမ်းပလိတ်တို့ ပါဝင်မည်မဟုတ်။",
        "post-expand-template-inclusion-category": "ထည့်သွင်းနိုင်သော တမ်းပလိတ်အရွယ်အစားပြည့်သွားပြီဖြစ်သော စာမျက်နှာများ",
        "post-expand-template-argument-warning": "'''သတိပေးချက် -''' ဤစာမျက်နှာတွင် ပမာဏအားဖြင့် ကြီးမားကျယ်ပြန့်သော template argument တစ်ခုပါဝင်သည်။\nယင်း arguments များကို ဖယ်ထုတ်လိုက်သည်။",
        "upload-description": "ဖိုင်ဖော်ပြချက်",
        "upload-options": "Upload တင်သည့် ရွေးချယ်မှုများ",
        "watchthisupload": "ဤဖိုင်အား စောင့်ကြည့်ရန်",
-       "upload-success-subj": "အောင်မြင်စွာ ့စူသေိ တင်လိုက်သည်",
-       "upload-failure-subj": "Upload တင်ရာတွင် တွေ့သည့် ပြဿနာ",
-       "upload-warning-subj": "Upload တင်ရာတွင် သတ်ပေးချက်",
        "upload-misc-error": "upload တင်ရာတွင် အမည်မသိ အမှား",
        "img-auth-accessdenied": "ဝင်ရောက်ခြင်းကို ငြင်းပယ်လိုက်သည်",
        "img-auth-nofile": "\"$1\" ဟူသည့်ဖိုင် မရှိပါ။",
        "allinnamespace": "စာမျက်နှာအားလုံး (အမည်ညွှန်း $1)",
        "allpagessubmit": "သွား​ပါ​",
        "allpages-hide-redirects": "ပြန်ညွှန်းများအား ဝှက်ရန်",
-       "categories": "á\80¡á\80\99á\80»á\80­á\80¯á\80¸á\80¡á\80\85á\80¬á\80¸များ",
+       "categories": "á\80\80á\80\8fá\80¹á\80\8dများ",
        "categories-submit": "ပြသရန်",
        "categoriesfrom": "ဤမှစသော အမျိုးအစားများကို ပြရန် -",
        "special-categories-sort-count": "အနည်းအများအလိုက်စီရန်",
        "watchlist-details": "{{PLURAL:$1|စာမျက်နှာ $1 ခု|စာမျက်နှာ $1 ခု}} သည် သင့်စောင့်ကြည့်စာရင်းတွင် ရှိပြီး ဆွေးနွေးချက်စာမျက်နှာများကို ထည့်တွက် မထားပါ။",
        "wlheader-showupdated": "သင် နောက်ဆုံးကြည့်ရှုခဲ့ပြီးနောက် ပြောင်းလဲမှုရှိခဲ့သော စာမျက်နှာများကို <strong>စာလုံးမဲ</strong> ဖြင့် ပြသထားသည်",
        "wlshowlast": "နောက်ဆုံး $1 နာရီ $2 ရက်  ကိုပြရန်",
-       "watchlistall2": "အားလုံး",
        "watchlist-hide": "ဝှက်",
        "watchlist-submit": "ပြသရန်",
        "wlshowhideminor": "အရေးမကြီးသော ပြင်ဆင်မှုများ",
index db2a66f..a38d0b3 100644 (file)
        "filewasdeleted": "Nu file ca se chiamave cumm'a chillo c'avete primma carrecato e pò è stato scancellato.\nVedite 'e cuntrullà 'o $1 apprimma ca cuntinuate c' 'a carreca.",
        "filename-thumb-name": "Chesto pare nu titolo 'e miniatura. Pe' piacere nun carrecate miniature 'a stessa wiki. 'E n'atu modo, cagnate pe' piacere 'o nomme d' 'o file, facenno chesto cchiù significativo e senza prefisso 'e miniatura.",
        "filename-bad-prefix": "'O nomme d' 'o file ca state a carrecà accummencia pe' ''\"$1\"''', ca nurmalmente è 'o nomme c'assegnasse na machina fotografeca automatecamente ed è nu nomme nun descrittivo.\nPe' piacere scigliete n'atu nomme ca fosse cchiù descrittivo.",
-       "upload-success-subj": "Carreca ngarrata",
-       "upload-success-msg": "'A carreca tuja d' 'o [$2] è asciuta bona. Mò è a disposizione ccà: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Probblema c' 'a carreca",
-       "upload-failure-msg": "Ce steva nu probblema c' 'a carreca 'a [$2]:\n\n$1",
-       "upload-warning-subj": "Avviso 'e carreca",
-       "upload-warning-msg": "Ce steva nu probblema c' 'a carreca 'a [$2]. Putite turnà arreto a 'o [[Special:Upload/stash/$1|module 'e carreche]] pe pruvà d'aggiustà stu prubblema.",
        "upload-proto-error": "Prutucollo sbagliato",
        "upload-proto-error-text": "'E carreche remote hann'abbesuogno 'e l'URL c'accummencieno c' 'a parola <code>http://</code> o <code>ftp://</code>.",
        "upload-file-error": "Errore 'nterno",
        "wlheader-showupdated": "* 'E paggene cca so' state cagnate a l'urdema visita avevano so' nzignate ccà 'n '''grassetto'''.",
        "wlnote": "Ccà abbascio {{PLURAL:$1|è elencato 'o cagnamiento cchiù ricente|songo elencate 'e <strong>$1</strong> cagnamiente cchiù recente}} {{PLURAL:$2|int'a ll'urdema ora|int' 'e ll'urdeme <strong>$2</strong> ore}}; 'e date songo agghiurnate 'o $3, $4.",
        "wlshowlast": "Mmusta ll'urdeme $1 ore $2 ghiuorne",
-       "watchlistall2": "tuttuquante",
        "watchlist-hide": "Annascunne",
        "watchlist-submit": "Faje vedé",
        "wlshowtime": "Periodo 'e tiempo a mmustà:",
index 6826c54..86971d1 100644 (file)
        "october-date": "$1. oktober",
        "november-date": "$1. november",
        "december-date": "$1. desember",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Kategori|Kategorier}}",
        "category_header": "Sider i kategorien «$1»",
        "subcategories": "Underkategorier",
        "databaseerror-query": "Spørring: $1",
        "databaseerror-function": "Funksjon: $1",
        "databaseerror-error": "Feil: $1",
+       "transaction-duration-limit-exceeded": "For å unngå høye replikeringsforsinkelser ble denne transaksjonen avsluttet på grunn av at tiden det tok å lagre ($1) oversteg maksimumsgrensen på $2 {{PLURAL:$2|sekund|sekunder}}.\nHvis du endrer på mange ting på en gang, prøv å dele dette opp i mindre operasjoner.",
        "laggedslavemode": "'''Advarsel:''' Dette kan være en eldre versjon av siden.",
        "readonly": "Databasen er skrivebeskyttet",
        "enterlockreason": "Skriv en begrunnelse for skrivebeskyttelsen, inkludert et estimat for når den blir opphevet",
        "resetpass_submit": "Angi passord og logg inn",
        "changepassword-success": "Passordet ditt ble korrekt endret!",
        "changepassword-throttled": "Du har foretatt for mange nylige innloggingsforsøk.\nVær vennlig å vente $1 før du prøver igjen.",
+       "botpasswords": "Robotpassord",
+       "botpasswords-summary": "<em>Robotpassord</em> gir tilgang til en brukerkonto via API uten å bruke hovedpassordet til kontoen. Brukerrettighetene kan bli begrenset ved bruk av dette passordet.\n\nHvis du ikke vet om du vil benytte dette, er det sannsynlig at du ikke bør fylle det ut. Det skal ikke være nødvendig for andre personer å be deg om å fylle ut dette for å gi det til de.",
+       "botpasswords-disabled": "Robotpassord er deaktivert.",
+       "botpasswords-no-central-id": "For å bruke robotpassord må du være logget inn med en sentralisert konto.",
+       "botpasswords-existing": "Eksisterende robotpassord",
+       "botpasswords-createnew": "Opprett et nytt robotpassord",
+       "botpasswords-editexisting": "Redigere et eksisterende robotpassord",
+       "botpasswords-label-appid": "Robotnavn:",
+       "botpasswords-label-create": "Opprett",
+       "botpasswords-label-update": "Oppdater",
+       "botpasswords-label-cancel": "Avbryt",
+       "botpasswords-label-delete": "Slett",
+       "botpasswords-label-resetpassword": "Tilbakestill passord",
+       "botpasswords-label-grants": "Tilgjengelige tildelinger:",
+       "botpasswords-help-grants": "Hver tildeling gir tilgang til opplistede brukerrettigheter som brukerkontoen allerede har. Se [[Special:ListGrants|tildelingstabellen]] for mer informasjon.",
+       "botpasswords-label-restrictions": "Bruksbegrensninger:",
+       "botpasswords-label-grants-column": "Bevilget",
+       "botpasswords-bad-appid": "Robotnavnet \"$1\" er ikke gyldig.",
+       "botpasswords-insert-failed": "Kunne ikke legge til robotnavnet \"$1\". Har det allerede blitt lagt til?",
+       "botpasswords-update-failed": "Kunne ikke oppdatere robotnavnet \"$1\". Er det slettet?",
+       "botpasswords-created-title": "Robotpassord opprettet",
+       "botpasswords-created-body": "Robotpassordet \"$1\" ble opprettet.",
+       "botpasswords-updated-title": "Robotpassord oppdatert",
+       "botpasswords-updated-body": "Robotpassordet \"$1\" ble oppdatert.",
+       "botpasswords-deleted-title": "Robotpassord slettet",
+       "botpasswords-deleted-body": "Robotpassordet \"$1\" ble slettet.",
+       "botpasswords-newpassword": "Det nye passordet for å logge inn med <strong>$1</strong> er <strong>$2</strong>. <em>Vennligst lagre dette for fremtidig referanse.</em>",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider er ikke tilgjengelig.",
+       "botpasswords-restriction-failed": "Begrensninger for robotpassord tillater ikke denne innloggingen.",
+       "botpasswords-invalid-name": "Det angitte brukernavnet inneholder ikke separasjonstegnet for robotpassord (\"$1\").",
+       "botpasswords-not-exist": "Brukeren \"$1\" har ikke noe robotpassord for \"$2\".",
        "resetpass_forbidden": "Passord kan ikke endres",
        "resetpass-no-info": "Du må være logget inn for å gå til denne siden direkte",
        "resetpass-submit-loggedin": "Endre passord",
        "passwordreset-emailtext-user": "Brukeren $1 på {{SITENAME}} ba om en tilbakestilling av passordet ditt for {{SITENAME}}\n($4). {{PLURAL:$3|Den følgende brukerkontoen|De følgende brukerkontoene}} er tilknyttet denne e-postadressen:\n\n$2\n\n{{PLURAL:$3|Dette midlertidige passordet|Disse midlertidige passordene}} utløper om {{én dag|$5 dager}}.\nDu bør logge på og velge et nytt passord nå. Dersom noen andre kom med denne\nforespørselen, eller du har kommet på ditt opprinnelige passord, og ikke lenger\nønsker å endre det, kan du ignorere denne meldingen og fortsette å bruke ditt gamle\npassord.",
        "passwordreset-emailelement": "Brukernavn: \n$1\n\nMidlertidig passord: \n$2",
        "passwordreset-emailsentemail": "Hvis dette er en registrert epostadresse for din konto, vil det bli sendt ut en passordtilbakestillingsepost.",
+       "passwordreset-emailsentusername": "Hvis det finnes en epostadresse knyttet til dette brukernavnet, vil en epost med informasjon om tilbakestilling av passord bli sendt.",
        "passwordreset-emailsent-capture": "Passordtilbakestillingseposten vist under har blitt sendt ut.",
        "passwordreset-emailerror-capture": "En passordtilbakestillingsepost ble laget, men det lyktes ikke å sende denne til {{GENDER:$2|brukeren}}: $1",
        "changeemail": "Endre eller fjerne epostadresse",
        "userrights": "Brukerrettighetskontroll",
        "userrights-lookup-user": "Ordne brukergrupper",
        "userrights-user-editname": "Fyll inn et brukernavn:",
-       "editusergroup": "Endre brukergrupper",
+       "editusergroup": "Endre {{GENDER:$1|brukergrupper}}",
        "editinguser": "Endrer brukerrettighetene for {{GENDER:$1|bruker}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Rediger brukergrupper",
-       "saveusergroups": "Lagre brukergrupper",
+       "saveusergroups": "Lagre {{GENDER:$1|brukergrupper}}",
        "userrights-groupsmember": "Medlem av:",
        "userrights-groupsmember-auto": "Implisitt medlem av:",
        "userrights-groups-help": "Du kan endre hvilke grupper denne brukeren er medlem av.\n* En avkrysset boks betyr at brukeren er medlem av gruppen.\n* En uavkrysset boks betyr at brukeren ikke er medlem av gruppen.\n* En * betyr at du ikke kan fjerne gruppemedlemskapet når du har lagt det til, eller vice versa.",
        "right-createpage": "Opprette sider (som ikke er diskusjonssider)",
        "right-createtalk": "Opprette diskusjonssider",
        "right-createaccount": "Opprette nye kontoer",
+       "right-autocreateaccount": "Logg inn automatisk med en ekstern brukerkonto",
        "right-minoredit": "Markere endringer som mindre",
        "right-move": "Flytte sider",
        "right-move-subpages": "Flytte sider med undersider",
        "filename-thumb-name": "Dette ser ut som tittelen til et miniatyrbilde (thumbnail). Miniatyrbilder skal ikke lastes opp igjen til den samme wikien. Hvis det ikke er et miniatyrbilde må du endre filnavnet til noe mer meningsfullt og fjerne miniatyrbilde-prefikset.",
        "filename-bad-prefix": "Navnet på filen du laster opp begynner med '''«$1»''', hvilket er et ikke-beskrivende navn som vanligvis brukes automatisk av digitalkameraer. Vennligst bruk et mer beskrivende navn på filen.",
        "filename-prefix-blacklist": " #<!-- leave this line exactly as it is --> <pre>\n# Syntaksen er som følger:\n#   * Alt fra tegnet «#» til slutten av linja er en kommentar\n#   * Alle linjer som ikke er blanke er et prefiks som vanligvis brukes automatisk av digitale kameraer\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # noen mobiltelefontyper\nIMG # generisk\nJD # Jenoptik\nMGP # Pentax\nPICT # div.\n #</pre> <!-- leave this line exactly as it is -->",
-       "upload-success-subj": "Opplastingen er gjennomført",
-       "upload-success-msg": "Din opplasting fra [$2] var vellykket. Den er tilgjengelig her: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Opplastingsproblem",
-       "upload-failure-msg": "Det oppsto et problem med opplastingen din fra [$2]:\n\n$1",
-       "upload-warning-subj": "Opplastingsadvarsel",
-       "upload-warning-msg": "Det oppsto et problem med opplastingen din fra [$2]. Du kan gå tilbake til [[Special:Upload/stash/$1|opplastingsskjemaet]] for å løse dette problemet.",
        "upload-proto-error": "Gal protokoll",
        "upload-proto-error-text": "Fjernopplasting behøver adresser som begynner med <code>http://</code> eller <code>ftp://</code>.",
        "upload-file-error": "Intern feil",
        "wlheader-showupdated": "Sider som har blitt endret siden du besøkte dem sist vises med '''fet skrift'''.",
        "wlnote": "Nedenfor er {{PLURAL:$1|den siste endringen|de siste <strong>$1</strong> endringene}} {{PLURAL:$2|den siste timen|de siste <strong>$2</strong> timene}}, per $3 kl. $4",
        "wlshowlast": "Vis siste $1 timer $2 dager",
-       "watchlistall2": "alle",
        "watchlist-hide": "Skjul",
        "watchlist-submit": "Vis",
        "wlshowtime": "Tidsperiode som skal vises:",
index eb98058..fc37e41 100644 (file)
        "watchthisupload": "यो पृष्ठ निगरानी गर्नुहोस्",
        "filewasdeleted": "यस नामको एक फाइल पहिले पनि अपलोड गरे पछि हटाई सकिएको छ।\nपुनः अपलोड गर्नु पूर्व तपाईं $1 लाई राम्रोसँग जाँच गर्नुहोला।",
        "filename-bad-prefix": "तपाईं जुन फाइल अपलोड गर्दै हुनुहुन्छ त्यसको नाम <strong>\"$1\"</strong>बाट शुरू हुन्छ, जुन डिजिटल क्यामराद्वारा दिइएको नाम हो।\nकृपया यस फाइलको लागि कुनै दोश्रो अधिक जानकारीयुक्त नाम छान्नुहोस्।",
-       "upload-success-subj": "उर्ध्वभरण सफल",
-       "upload-success-msg": "[$2]बाट त्पाईंको उर्ध्वभरण सफल भयो। त्यो यहाँ पाउन सकिनेछ: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "उर्ध्वभरण समस्या",
-       "upload-failure-msg": "तपाईंको उर्ध्वभरण [$2]बाट समस्या आएकोछ:\n\n$1",
-       "upload-warning-subj": "उर्ध्वभरण चेतावनी",
-       "upload-warning-msg": "तपाईंको [$2] अपलोड सँग एक समस्या थियो। तपाईं यस समस्यालाई ठिक गर्नका लागि [[Special:Upload/stash/$1|अपलोड फ़र्म]]मा फर्किन सक्नुहुन्छ।",
        "upload-proto-error": "दूषित प्रोटोकल",
        "upload-proto-error-text": "दुर उर्ध्वभरण ठेगाना URLs  <code>http://</code> or <code>ftp://</code> बाट सुरु भएको हुनु पर्छ ।",
        "upload-file-error": "आन्तरिक त्रुटि",
        "log-title-wildcard": "पाठबाट सुरुहुने शीर्षकहरु खोज्नुहोस्",
        "showhideselectedlogentries": "चयन गरिएका लग प्रविष्टिहरूको दृश्यता परिवर्तन गर्ने",
        "log-edit-tags": "चयन गरिएको लग प्रविष्टिहरूको ट्यागहरू सम्पादन",
+       "checkbox-select": "छनौट:$1",
+       "checkbox-all": "सबै",
+       "checkbox-none": "कोहीपनि हैन",
+       "checkbox-invert": "ठाडो",
        "allpages": "सबै पृष्ठहरू",
        "nextpage": "अर्को पृष्ठ ($1)",
        "prevpage": "पहिलो पृष्ठ ($1)",
        "wlheader-showupdated": "तपाईँले पछिल्लो पल्ट भ्रमण गरेपछि परिवर्तन भएका पृष्ठहरूलाई <strong>गाढा<strong> गरेर देखाइएको छ ।",
        "wlnote": "$3 र $4 अनुसार विगत {{PLURAL:$2|घण्टामा|'''$2''' घण्टाहरूमा}} {{PLURAL:$1|गरिएको अन्तिम परिवर्तन तल दिइएकोछ|गरिएका अन्तिम  '''$1''' परिवर्तनहरू तल दिइएका छन्}}।",
        "wlshowlast": "पछिल्ला $2 दिनहरू $1 घण्टाहरू देखाउनुहोस्",
-       "watchlistall2": "सबै",
        "watchlist-hide": "लुकाउनुहोस्",
        "watchlist-submit": "देखाउनुहोस्",
        "wlshowhideminor": "सामान्य सम्पादनहरू",
index b658c69..e0e6be6 100644 (file)
        "filename-thumb-name": "Dit ziet eruit als de naam van een miniatuurbestand. Upload alstublieft geen miniaturen opnieuw in de wiki. Is dit niet het geval, corrigeer dan de bestandsnaam naar een meer betekenisvolle naam zonder het voorvoegsel voor miniaturen.",
        "filename-bad-prefix": "De naam van het bestand dat u aan het uploaden bent begint met '''\"$1\"''', wat een niet-beschrijvende naam is die meestal automatisch door een digitale camera wordt gegeven.\nKies een duidelijke naam voor uw bestand.",
        "filename-prefix-blacklist": " #<!-- leave this line exactly as it is --> <pre>\n# De syntaxis is als volgt:\n#   * Alle tekst vanaf het karakter \"#\" tot het einde van de regel wordt gezien als opmerking\n#   * Iedere niet-lege regel is een voorvoegsel voor bestandsnamen die vaak automatisch worden toegekend door digitale camera's\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # sommige mobiele telefoons\nIMG # algemeen\nJD # Jenoptik\nMGP # Pentax\nPICT # overig\n #</pre> <!-- leave this line exactly as it is -->",
-       "upload-success-subj": "Het bestand is toegevoegd",
-       "upload-success-msg": "Uw upload van [$2] is geslaagd en is beschikbaar: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Uploadprobleem",
-       "upload-failure-msg": "Er was een probleem met uw upload van [$2]:\n\n$1",
-       "upload-warning-subj": "Uploadwaarschuwing",
-       "upload-warning-msg": "Er was een probleem met uw upload van [$2].\nGa terug naar het [[Special:Upload/stash/$1|uploadformulier]] om dit probleem te verhelpen.",
        "upload-proto-error": "Verkeerd protocol",
        "upload-proto-error-text": "Uploads via deze methode vereisen URL's die beginnen met <code>http://</code> of <code>ftp://</code>.",
        "upload-file-error": "Interne fout",
        "checkbox-select": "Selecteer: $1",
        "checkbox-all": "Alle",
        "checkbox-none": "Geen",
+       "checkbox-invert": "Omkeren",
        "allpages": "Alle pagina's",
        "nextpage": "Volgende pagina ($1)",
        "prevpage": "Vorige pagina ($1)",
        "wlheader-showupdated": "Pagina's die zijn bewerkt sinds uw laatste bezoek worden '''vet''' weergegeven.",
        "wlnote": "Hieronder {{PLURAL:$1|staat de laaste wijziging|staan de laatste $1 wijzigingen}} in {{PLURAL:$2|het laatste uur|de laatste $2 uur}} per $3 om $4.",
        "wlshowlast": "Laatste $1 uur, $2 dagen bekijken",
-       "watchlistall2": "alles",
        "watchlist-hide": "Verbergen",
        "watchlist-submit": "Weergeven",
        "wlshowtime": "Periode om te weergeven:",
        "movenosubpage": "Deze pagina heeft geen subpagina's.",
        "movereason": "Reden:",
        "revertmove": "terugdraaien",
-       "delete_and_move_text": "==Verwijdering nodig==\nOnder de naam \"[[:$1]]\" bestaat al een pagina.\nWilt u deze verwijderen om plaats te maken voor de te hernoemen pagina?",
+       "delete_and_move_text": "Onder de naam \"[[:$1]]\" bestaat al een pagina.\nWilt u deze verwijderen om plaats te maken voor de te hernoemen pagina?",
        "delete_and_move_confirm": "Ja, de pagina verwijderen",
        "delete_and_move_reason": "Verwijderd in verband met hernoeming van \"[[$1]]\"",
        "selfmove": "U kunt een pagina niet hernoemen naar dezelfde paginanaam.",
        "move-leave-redirect": "Een doorverwijzing achterlaten",
        "protectedpagemovewarning": "'''Waarschuwing:''' deze pagina kan alleen door beheerders hernoemd worden.\nDe laatste logboekregel staat hieronder:",
        "semiprotectedpagemovewarning": "'''Let op:''' deze pagina kan alleen door geregistreerde gebruikers hernoemd worden.\nDe laatste logboekregel staat hieronder:",
-       "move-over-sharedrepo": "== Het bestand bestaat al ==\n[[:$1]] bestaat al in een gedeelde mediadatabank.\nDoor een bestand te hernoemen naar deze naam, is het bestand uit de gedeelde mediadatabank niet langer te gebruiken.",
+       "move-over-sharedrepo": "[[:$1]] bestaat al in een gedeelde mediadatabank. Door een bestand te hernoemen naar deze naam, is het bestand uit de gedeelde mediadatabank niet langer te gebruiken.",
        "file-exists-sharedrepo": "Deze bestandsnaam bestaat al in een gedeelde mediadatabank.\nKies een andere bestandsnaam.",
        "export": "Exporteren",
        "exporttext": "U kunt de tekst en geschiedenis van een pagina of pagina's exporteren naar XML.\nDit exportbestand is daarna te importeren in een andere MediaWiki via de [[Special:Import|importpagina]].\n\nGeef in het onderstaande veld de namen van de te exporteren pagina's op, één pagina per regel, en geef aan of u alle versies met de bewerkingssamenvatting of alleen de huidige versies met de bewerkingssamenvatting wilt exporteren.\n\nIn het laatste geval kunt u ook een koppeling gebruiken, bijvoorbeeld [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] voor de pagina \"[[{{MediaWiki:Mainpage}}]]\".",
index 0bb4726..d214eec 100644 (file)
        "confirmable-no": "Nei",
        "thisisdeleted": "Sjå eller attopprett $1?",
        "viewdeleted": "Sjå historikk for $1?",
-       "restorelink": "{{PLURAL:$1|Ã\89in sletta versjon|$1 sletta versjonar}}",
+       "restorelink": "{{PLURAL:$1|éin sletta versjon|$1 sletta versjonar}}",
        "feedlinks": "Abonnementskjelde:",
        "feed-invalid": "Ugyldig abonnementstype.",
        "feed-unavailable": "Det er ingen kjelder til abonnement",
        "right-blockemail": "Blokkere brukarar frå å sende e-post",
        "right-hideuser": "Blokkere eit brukarnamn og skjule det frå ålmenta.",
        "right-ipblock-exempt": "Kan gjere endringar frå blokkerte IP-adresser",
-       "right-proxyunbannable": "Kan gjere endringar frå blokkerte proxyar",
        "right-unblockself": "Avblokkera seg sjølve",
        "right-protect": "Endra vernenivå og verna sider",
        "right-editprotected": "Endre verna sider",
        "filewasdeleted": "Ei fil med same namnet er tidlegare vorte lasta opp og sletta. Du bør sjekke $1 før du prøver å laste henne opp att.",
        "filename-bad-prefix": "Namnet på fila du lastar opp byrjar med '''«$1»''', som er eit inkjeseiande namn som vanlegvis vert gjeve til bilete automatisk av digitale kamera. Ver venleg og vel eit meir skildrande namn på fila di.",
        "filename-prefix-blacklist": " #<!-- leave this line exactly as it is --> <pre>\n# Syntaksen er som følgjer:\n#  * Alt frå teiknet «#» til slutten av linja er ein kommentar\n#  * Alle linjer som ikkje er blanke er ei forstaving som vanlegvis vert nytta automatisk av digitale kamera\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # nokre mobiltelefontypar\nIMG # generisk\nJD # Jenoptik\nMGP # Pentax\nPICT # div.\n  #</pre> <!-- leave this line exactly as it is -->",
-       "upload-success-subj": "Opplastinga er ferdig",
-       "upload-success-msg": "Opplastinga di frå [$2] var vellukka. Han er tilgjengeleg her: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Opplastingsproblem",
-       "upload-failure-msg": "Det oppstod eit problem med opplastinga di frå [$2]:\n\n$1",
-       "upload-warning-subj": "Opplastingsåtvaring",
-       "upload-warning-msg": "Det oppstod eit problem med opplastinga di frå [$2]. Du kan gå attende til [[Special:Upload/stash/$1|opplastingsskjemaet]] for å løysa dette problemet.",
        "upload-proto-error": "Feil protokoll",
        "upload-proto-error-text": "Fjernopplasting krev nettadresser som byrjar med <code>http://</code> eller <code>ftp://</code>.",
        "upload-file-error": "Intern feil",
        "wlheader-showupdated": "Sider som har vorte endra sidan du sist såg på dei er '''utheva'''",
        "wlnote": "Nedanfor er {{PLURAL:$1|den siste endringa|dei siste '''$1''' endringane}} {{PLURAL:$2|den siste timen|dei siste '''$2''' timane}}, for $3, kl. $4.",
        "wlshowlast": "Vis siste $1 timane $2 dagane",
-       "watchlistall2": "alt",
        "watchlist-hide": "Gøym",
        "wlshowtime": "Vis siste:",
        "wlshowhideminor": "småplukk",
        "special-characters-group-gujarati": "Gujarati",
        "mw-widgets-dateinput-placeholder-day": "ÅÅÅÅ-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "ÅÅÅÅ-MM",
-       "api-error-blacklisted": "Vel eit anna namn som er meir skildrande."
+       "api-error-blacklisted": "Vel eit anna namn som er meir skildrande.",
+       "randomrootpage": "Tilfeldig rotsida"
 }
index 6216f61..0460e0e 100644 (file)
        "upload-description": "ਫਾਈਲ ਵੇਰਵਾ",
        "upload-options": "ਅੱਪਲੋਡ ਚੋਣਾਂ",
        "watchthisupload": "ਇਸ ਫ਼ਾਈਲ ’ਤੇ ਨਜ਼ਰ ਰੱਖੋ",
-       "upload-success-subj": "ਸਫ਼ਲ ਅੱਪਲੋਡ",
-       "upload-failure-subj": "ਅੱਪਲੋਡ ਸਮੱਸਿਆ",
-       "upload-warning-subj": "ਅੱਪਲੋਡ ਚੇਤਾਵਨੀ",
        "upload-proto-error": "ਗਲਤ ਪਰੋਟੋਕਾਲ",
        "upload-file-error": "ਅੰਦਰੂਨੀ ਗਲਤੀ",
        "upload-misc-error": "ਅਣਪਛਾਤੀ ਅੱਪਲੋਡ ਗਲਤੀ",
        "logempty": "ਚਿੱਠੇ ’ਚ ਮੇਲ ਖਾਂਦੀ ਕੋਈ ਚੀਜ਼ ਨਹੀਂ ਹੈ।",
        "log-title-wildcard": "ਇਸ ਲਿਖਤ ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ ਸਿਰਲੇਖ ਖੋਜੋ",
        "showhideselectedlogentries": "ਚਿੱਠੇ ਦੇ ਚੁਣੇ ਹੋਏ ਦਾਖ਼ਲੇ ਵਖਾਓ/ਲੁਕਾਓ",
+       "checkbox-select": "ਚੁਣੋ: $1",
+       "checkbox-all": "ਸਾਰੇ",
+       "checkbox-none": "ਕੋਈ ਨਹੀਂ",
        "allpages": "ਸਭ ਸਫ਼ੇ",
        "nextpage": "ਅਗਲਾ ਸਫ਼ਾ ($1)",
        "prevpage": "ਪਿਛਲਾ ਸਫ਼ਾ ($1)",
        "wlheader-enotif": "ਈਮੇਲ ਸੂਚਨਾ ਚਾਲੂ ਹੈ।",
        "wlnote": "$3, $4 ਮੁਤਾਬਕ ਆਖ਼ਰੀ {{PLURAL:$2|ਘੰਟੇ|'''$2''' ਘੰਟਿਆਂ}} ਵਿਚ {{PLURAL:\n$1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ}}, ਹੇਠਾਂ ਵੇਖੋ।",
        "wlshowlast": "ਪਿਛਲੇ $1 ਘੰਟੇ $2 ਦਿਨ  ਵਖਾਓ",
-       "watchlistall2": "ਸਭ",
        "watchlist-submit": "ਦਿਖਾਓ",
        "watchlist-options": "ਨਿਗਰਾਨੀ-ਲਿਸਟ ਦੀਆਂ ਚੋਣਾਂ",
        "watching": "ਨਿਗ੍ਹਾ (ਵਾਚ) ਰੱਖੀ ਜਾ ਰਹੀ ਹੈ...",
index d078d70..114e694 100644 (file)
        "viewyourtext": "Tekst źródłowy <strong>zmodyfikowanej przez Ciebie</strong> strony możesz podejrzeć i skopiować.",
        "protectedinterface": "Ta strona zawiera tekst interfejsu oprogramowania wiki i jest zabezpieczona przed nadużyciami.\nBy dodać lub zmienić tłumaczenia wszystkich serwisów wiki, użyj [//translatewiki.net/ translatewiki.net], projektu lokalizacji MediaWiki.",
        "editinginterface": "<strong>Ostrzeżenie:</strong> Edytujesz stronę, która zawiera tekst interfejsu oprogramowania.\nZmiany na tej stronie zmienią wygląd interfejsu dla innych użytkowników tej wiki.",
-       "translateinterface": "Aby dodać lub zmienić tłumaczenia wszystkich wiki, użyj [//translatewiki.net/ translatewiki.net], projekt lokalizacji oprogramowania MediaWiki.",
+       "translateinterface": "Aby dodać lub zmienić tłumaczenia wszystkich wiki, użyj [//translatewiki.net/ translatewiki.net], projektu lokalizacji oprogramowania MediaWiki.",
        "cascadeprotected": "Ta strona została zabezpieczona przed edycją, ponieważ jest ona zawarta na {{PLURAL:$1|następującej stronie, która została zabezpieczona|następujących stronach, które zostały zabezpieczone}} z włączoną opcją dziedziczenia:\n$2",
        "namespaceprotected": "Nie masz uprawnień do edytowania stron w przestrzeni nazw '''$1'''.",
        "customcssprotected": "Nie jesteś uprawniony do edytowania tej strony CSS, ponieważ zawiera ona ustawienia osobiste innego użytkownika.",
        "virus-scanfailed": "skanowanie nieudane (błąd $1)",
        "virus-unknownscanner": "nieznany antivirus:",
        "logouttext": "'''Nie jesteś już zalogowany.'''\n\nZauważ, że do momentu wyczyszczenia pamięci podręcznej przeglądarki niektóre strony mogą wyglądać tak, jakbyś wciąż był zalogowany.",
+       "cannotlogoutnow-title": "Nie możesz się teraz wylogować",
+       "cannotlogoutnow-text": "Podczas używania $1 wylogowanie nie jest niemożliwe.",
        "welcomeuser": "Witaj, $1!",
        "welcomecreation-msg": "Twoje konto zostało utworzone.\nMożesz zmienić swoje [[Special:Preferences|preferencje]], jeśli chcesz.",
        "yourname": "Nazwa {{GENDER:|użytkownika|użytkowniczki}}:",
        "filename-thumb-name": "Nazwa pliku wskazuje na to, że próbujesz przesłać miniaturkę obrazka. Prosimy nie przesyłać miniaturek w ramach tej samej wiki. Jeśli jest to konieczne, to zmień nazwę na bardziej opisową (w szczególności taką, w której nie ma prefiksu typowego dla miniaturek).",
        "filename-bad-prefix": "Nazwa pliku, który przesyłasz, zaczyna się od '''„$1”'''. Jest to nazwa zazwyczaj przypisywana automatycznie przez cyfrowe aparaty fotograficzne, która nie informuje o zawartości pliku.\nZmień nazwę pliku na bardziej opisową.",
        "filename-prefix-blacklist": " #<!-- nie modyfikuj tej linii --> <pre>\n# Składnia jest następująca:\n#  * Wszystko od znaku \"#\" do końca linii uznawane jest za komentarz\n#  * Każda niepusta linia zawiera początek nazwy pliku domyślnie wykorzystywany przez aparaty cyfrowe\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # niektóre telefony komórkowe\nIMG # ogólny\nJD # Jenoptik\nMGP # Pentax\nPICT # wiele różnych\n  #</pre> <!-- nie modyfikuj tej linii -->",
-       "upload-success-subj": "Przesłanie pliku powiodło się",
-       "upload-success-msg": "Przesłano plik z [$2]. Jest dostępny tutaj – [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problem z przesłaniem pliku",
-       "upload-failure-msg": "Wystąpił problem przy przesyłaniu pliku z [$2]:\n\n$1",
-       "upload-warning-subj": "Ostrzeżenie dotyczące przesyłania",
-       "upload-warning-msg": "Wystąpił problem z przesyłaniem z [$2]. Możesz wrócić do [[Special:Upload/stash/$1|formularza przesłania]] w celu rozwiązania tego problemu.",
        "upload-proto-error": "Nieprawidłowy protokół",
        "upload-proto-error-text": "Zdalne przesyłanie plików wymaga podania adresu URL zaczynającego się od <code>http://</code> lub <code>ftp://</code>.",
        "upload-file-error": "Błąd wewnętrzny",
        "log-title-wildcard": "Szukaj tytułów zaczynających się od tego tekstu",
        "showhideselectedlogentries": "Zmień widoczność wybranych wpisów rejestru",
        "log-edit-tags": "Edytuj znaczniki wybranych wpisów rejestru",
+       "checkbox-select": "Zaznacz: $1",
        "checkbox-all": "Wszystko",
        "checkbox-none": "Nic",
        "checkbox-invert": "Odwróć",
        "wlheader-showupdated": "'''Wytłuszczone''' zostały strony, które zostały zmodyfikowane od Twojej ostatniej wizyty na nich.",
        "wlnote": "Poniżej pokazano {{PLURAL:$1|zmianę wykonaną|<strong>$1</strong> zmiany wykonane|<strong>$1</strong> zmian wykonanych}} w ciągu {{PLURAL:$2|ostatniej godziny|ostatnich <strong>$2</strong> godzin}}, licząc od $4 dnia $3.",
        "wlshowlast": "Pokaż ostatnie $1 godzin, $2 dni",
-       "watchlistall2": "wszystkie",
        "watchlist-hide": "Ukryj",
        "watchlist-submit": "Pokaż",
-       "wlshowtime": "Okres czasu do wyświetlania:",
+       "wlshowtime": "Okres do wyświetlenia:",
        "wlshowhideminor": "drobne edycje",
        "wlshowhidebots": "boty",
        "wlshowhideliu": "zarejestrowanych",
        "block-log-flags-hiddenname": "nazwa użytkownika jest ukryta",
        "range_block_disabled": "Możliwość blokowania zakresu adresów IP została wyłączona.",
        "ipb_expiry_invalid": "Błędny czas wygaśnięcia blokady.",
+       "ipb_expiry_old": "Czas wygaśnięcia blokady już minął.",
        "ipb_expiry_temp": "Ukryte blokowanie nazwy użytkownika należy wykonać trwale.",
        "ipb_hide_invalid": "Ukrycie konta tego użytkownika nie jest możliwe, wykonał on więcej niż {{PLURAL:$1|jedną edycję|$1 edycje|$1 edycji}}.",
        "ipb_already_blocked": "„$1” jest już zablokowany",
        "lockedbyandtime": "(przez $1 dnia $2 o $3)",
        "move-page": "Przenieś $1",
        "move-page-legend": "Przeniesienie strony",
-       "movepagetext": "Za pomocą poniższego formularza zmienisz nazwę strony, przenosząc jednocześnie jej historię.\nPod starym tytułem zostanie umieszczona strona przekierowująca.\nMożesz automatycznie zaktualizować przekierowania wskazujące na tytuł przed zmianą.\nJeśli nie wybierzesz tej opcji, upewnij się po przeniesieniu strony, czy nie powstały [[Special:DoubleRedirects|podwójne]] lub [[Special:BrokenRedirects|zerwane przekierowania]].\nJesteś odpowiedzialny za to, by linki w dalszym ciągu prowadziły tam, gdzie powinny.\n\nStrona '''nie''' zostanie przeniesiona, jeśli strona o nowej nazwie już istnieje, chyba że jest pusta lub jest przekierowaniem i ma pustą historię edycji.\nTo oznacza, że błędną operację zmiany nazwy można bezpiecznie odwrócić, zmieniając nową nazwę strony na poprzednią, i że nie można nadpisać istniejącej strony.\n\n'''UWAGA!'''\nMoże to być drastyczna lub nieprzewidywalna zmiana w przypadku popularnych stron.\nUpewnij się co do konsekwencji tej operacji, zanim się na nią zdecydujesz.",
-       "movepagetext-noredirectfixer": "Za pomocą poniższego formularza zmienisz nazwę strony, przenosząc jednocześnie jej historię.\nPod starym tytułem zostanie umieszczona strona przekierowująca.\nUpewnij się po przeniesieniu strony, czy nie powstały [[Special:DoubleRedirects|podwójne]] lub [[Special:BrokenRedirects|zerwane przekierowania]].\nJesteś odpowiedzialny za to, by linki w dalszym ciągu pokazywały tam, gdzie powinny.\n\nStrona '''nie''' zostanie przeniesiona, jeśli strona o nowej nazwie już istnieje, chyba że jest pusta lub jest przekierowaniem i ma pustą historię edycji.\nTo oznacza, że błędną operację zmiany nazwy można bezpiecznie odwrócić, zmieniając nową nazwę strony na poprzednią, i że nie można nadpisać istniejącej strony.\n\n'''UWAGA!'''\nMoże to być drastyczna lub nieprzewidywalna zmiana w przypadku popularnych stron.\nUpewnij się co do konsekwencji tej operacji, zanim się na nią zdecydujesz.",
+       "movepagetext": "Za pomocą poniższego formularza zmienisz nazwę strony, przenosząc jednocześnie jej historię.\nPod starym tytułem zostanie umieszczona strona przekierowująca.\nMożesz automatycznie zaktualizować przekierowania wskazujące na tytuł przed zmianą.\nJeśli nie wybierzesz tej opcji, upewnij się po przeniesieniu strony, czy nie powstały [[Special:DoubleRedirects|podwójne]] lub [[Special:BrokenRedirects|zerwane przekierowania]].\nJesteś odpowiedzialny za to, by linki w dalszym ciągu prowadziły tam, gdzie powinny.\n\nStrona <strong>nie</strong> zostanie przeniesiona, jeśli strona o nowej nazwie już istnieje, chyba że jest pusta lub jest przekierowaniem i ma pustą historię edycji.\nOznacza to, że błędną operację zmiany nazwy można bezpiecznie odwrócić, zmieniając nową nazwę strony na poprzednią, i że nie można nadpisać istniejącej strony.\n\n<strong>UWAGA!</strong>\nW przypadku popularnych stron może to być drastyczna lub nieprzewidywalna zmiana.\nUpewnij się co do konsekwencji tej operacji, zanim się na nią zdecydujesz.",
+       "movepagetext-noredirectfixer": "Za pomocą poniższego formularza zmienisz nazwę strony, przenosząc jednocześnie jej historię.\nPod starym tytułem zostanie umieszczona strona przekierowująca.\nPo przeniesieniu strony upewnij się, czy nie powstały [[Special:DoubleRedirects|podwójne]] lub [[Special:BrokenRedirects|zerwane przekierowania]].\nJesteś odpowiedzialny za to, by linki w dalszym ciągu pokazywały tam, gdzie powinny.\n\nStrona <strong>nie</strong> zostanie przeniesiona, jeśli strona o nowej nazwie już istnieje, chyba że jest pusta lub jest przekierowaniem i ma pustą historię edycji.\nOznacza to, że błędną operację zmiany nazwy można bezpiecznie odwrócić, zmieniając nową nazwę strony na poprzednią, i że nie można nadpisać istniejącej strony.\n\n<strong>UWAGA!</strong>\nW przypadku popularnych stron może to być drastyczna lub nieprzewidywalna zmiana.\nUpewnij się co do konsekwencji tej operacji, zanim się na nią zdecydujesz.",
        "movepagetalktext": "Jeżeli zaznaczysz to pole, powiązana strona dyskusji zostanie przeniesiona automatycznie, chyba że już istnieje niepusta strona pod nową nazwą.\n\nW takim przypadku stronę dyskusji należy ręcznie przenieść bądź scalić.",
        "moveuserpage-warning": "'''Uwaga!''' Masz zamiar przenieść stronę użytkownika. Miej na uwadze, że zostanie przeniesiona tylko strona, a '''nazwa użytkownika pozostanie niezmieniona'''.",
        "movecategorypage-warning": "<strong>Uwaga!</strong> Masz zamiar przenieść stronę kategorii. Miej na uwadze, że strony, które należały do starej kategorii, <em>nie</em> zostaną przeniesione do nowej.",
        "movenosubpage": "Ta strona nie posiada podstron.",
        "movereason": "Powód:",
        "revertmove": "cofnij",
-       "delete_and_move_text": "== Przeniesienie wymaga usunięcia innej strony ==\nStrona docelowa „[[:$1]]” istnieje.\nCzy chcesz ją usunąć, by zrobić miejsce dla przenoszonej strony?",
+       "delete_and_move_text": "Strona docelowa „[[:$1]]” już istnieje.\nCzy chcesz ją usunąć, by zrobić miejsce dla przenoszonej strony?",
        "delete_and_move_confirm": "Tak, usuń stronę",
        "delete_and_move_reason": "Usunięto, by zrobić miejsce dla przenoszonej strony „[[$1]]”",
        "selfmove": "Nazwy stron źródłowej i docelowej są takie same.\nStrony nie można przenieść na nią samą.",
        "scarytranscludefailed-httpstatus": "[Pobranie szablonu dla $1 nie powiodło się: HTTP $2]",
        "scarytranscludetoolong": "[zbyt długi adres URL]",
        "deletedwhileediting": "'''Uwaga!''' Ta strona została usunięta po tym, jak rozpoczął{{GENDER:|eś|aś|eś(‐aś)}} jej edycję!",
-       "confirmrecreate": "[[User:$1|$1]] ([[User talk:$1|dyskusja]]) usun{{GENDER:$1|ął|ęła|ął(‐ęła)}} tę stronę po tym, jak rozpoczął{{GENDER:|eś|aś|eś(‐aś)}} jego edycję, podając jako powód usunięcia:\n: ''$2''\nCzy na pewno chcesz ją ponownie utworzyć?",
-       "confirmrecreate-noreason": "Użytkownik [[User:$1|$1]] ([[User talk:$1|dyskusja]]) usunął tę stronę po rozpoczęciu przez Ciebie edycji. Potwierdź, czy naprawdę chcesz, ponownie utworzyć tę stronę.",
+       "confirmrecreate": "{{GENDER:$1|Użytkownik|Użytkowniczka}} [[User:$1|$1]] ([[User talk:$1|dyskusja]]) {{GENDER:$1|usunął|usunęła}} tę stronę po tym, jak rozpocząłeś/rozpoczęłaś jego edycję, podając jako powód usunięcia:\n: <em>$2</em>\nPotwierdź, że na pewno chcesz odtworzyć tę stronę.",
+       "confirmrecreate-noreason": "{{GENDER:$1|Użytkownik|Użytkowniczka}} [[User:$1|$1]] ([[User talk:$1|dyskusja]]) {{GENDER:$1|usunął|usunęła}} tę stronę po tym, jak rozpocząłeś/rozpoczęłaś jego edycję. Potwierdź, że naprawdę chcesz odtworzyć tę stronę.",
        "recreate": "Utwórz powtórnie",
        "confirm_purge_button": "Wyczyść",
        "confirm-purge-top": "Wyczyścić pamięć podręczną dla tej strony?",
index 755f4b5..94f20a7 100644 (file)
        "content-model-css": "CSS",
        "content-model-json": "JSON",
        "content-json-empty-object": "تش څيز",
+       "duplicate-args-category-desc": "دا هغه مخ دی چې د کينډيو استدعاگانې لري او دوه ځلي آرگومنټونه کاروي، لکه <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> يا <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "post-expand-template-inclusion-warning": "'''گواښنه:''' دا کينډۍ د خپل ټاکلي بريد نه ډېره لويه ده.\nځينې کينډۍ به په کې گډې نه شي.",
        "post-expand-template-inclusion-category": "هغه مخونه چې په کې د کارېدلو کينډيو شمېر له ټاکلې کچې ډېر دی",
        "post-expand-template-argument-warning": "'''گواښنه:''' دا مخ لږ تر لږه د يوې کينډۍ عاملين لري چې بې حده لوی دی.\nدا عاملين ړنگ شول.",
        "upload-description": "د دوتنې څرگندونې",
        "upload-options": "د پورته کولو خوښنې",
        "watchthisupload": "همدا دوتنه کتل",
-       "upload-success-subj": "دوتنه پورته کېدل په برياليتوب سره ترسره شو",
-       "upload-failure-subj": "د پورته کېدو ستونزه",
-       "upload-warning-subj": "د پورته کولو گواښ",
        "upload-proto-error": "ناسم پروتوکول",
        "upload-file-error": "کورنۍ ستونزه",
        "upload-misc-error": "د پورته کېدنې نامالومه تېروتنه",
        "morelinkstoimage": "همدې دوتنې سره [[Special:WhatLinksHere/$1|نورې تړنې]] کتل.",
        "linkstoimage-redirect": "$1 (دوتنه مخ گرځېدنه) $2",
        "duplicatesoffile": "دا لاندينۍ {{PLURAL:$1| دوتنه د همدې دوتنې غبرګونې لمېسه ده|$1 دوتنې د همدې دوتنې غبرګونې لمېسې دي}} ([[Special:FileDuplicateSearch/$2|نور تفصيل]]):",
-       "sharedupload": "دا دوتنه د $1 لخوا نه ده او کېدای شي چې نورې پروژې به يې هم کاروي.",
+       "sharedupload": "دا دوتنه د $1 لخوا څخه ده او کېدای شي چې نورې پروژې به يې هم کاروي.",
+       "sharedupload-desc-there": "دا دوتنه د $1 څخه ده او کېدای شي چې په نورو پروژو به هم کارېږي.\nد نورو مالوماتو لپاره لطفاً [د $2 دوتنې د څرگندونو مخ] وگورئ.",
        "sharedupload-desc-here": "دا دوتنه د $1 لخوا خپرېږې او کېدای شي چې دا په نورو پروژو هم کارېدلې وي.\nد دوتنې د کارېدنې لا نور مالومات د [$2 دوتنې د څرگندنو په مخ] کې لاندې ښودل شوی.",
+       "sharedupload-desc-create": "دا دوتنه د $1 لخوا خپرېږې او کېدای شي چې دا په نورو پروژو هم کارېدلې وي.\nکېدای شي تاسو به غواړئ چې څرگندونې يې د دې دوتنې [د $2 دوتنې د څرگندنو په مخ] کې سمې کړئ.",
        "filepage-nofile": "په دې نوم کومه دوتنه نشته.",
        "filepage-nofile-link": "په دې نوم کومه دوتنه نشته، خو تاسې يې [$1 پورته کولی شی].",
        "uploadnewversion-linktext": "د همدغې دوتنې نوې بڼه پورته کول",
        "trackingcategories-name": "پيغام نوم",
        "trackingcategories-desc": "د وېشنيزې ورگډونې معيارونه",
        "noindex-category-desc": "دا مخ د روباټونو لخوا په ليکلړ کې نه دی راغلی دا ځکه چې دا مخ د <code><nowiki>__NOINDEX__</nowiki></code> کوډگريزه وييکه لري او په هغه نومتشيال کې دی چې رپی يې پرېښل شوی.",
+       "index-category-desc": "دا مخ يو <code><nowiki>__INDEX__</nowiki></code> لري (او په داسې يو نومتشيال کې دی چې هغه رپی پکې پرېښودل شوی)، او په همدې خاطر د روبوټانو له لارې ليکلړ کې کښل شوی چې په عادي توگه دا نه ترسره کېږي.",
        "trackingcategories-nodesc": "کومې څرگندونې نشته.",
        "trackingcategories-disabled": "وېشنيزه ناچارنه شوه",
        "mailnologin": "د لېږلو پته نشته",
        "wlheader-showupdated": "هغه مخونه چې ستاسې د کتلو نه وروسته بدلون موندلی په '''روڼ''' ليک په نښه شوي.",
        "wlnote": "دلته لاندې {{PLURAL:$1|وروستی بدلون دی|وروستي '''$1''' بدلونونه دي}} چې په {{PLURAL:$2|تېر ساعت|تېرو '''$2''' ساعتونو}} کې تر $3 نېټې او $4 بجو پېښ شوي.",
        "wlshowlast": "وروستي $1 ساعتونه $2 ورځې ښکاره کول",
-       "watchlistall2": "ټول",
        "watchlist-hide": "پټول",
        "watchlist-submit": "ښکاره کول",
        "wlshowtime": "وروستی ښکاره کول:",
        "databasenotlocked": "توکبنسټ نه دی تړل شوی.",
        "move-page": "$1 لېږدول",
        "move-page-legend": "مخ لېږدول",
-       "movepagetext": "د لاندينۍ فورمې په کارولو سره تاسې د يوه مخ نوم بدلولی شی، چې په همدې توگه به د يوه مخ ټول پېښليک د هغه د نوي نوم سرليک ته ولېږدېږي.\nد يوه مخ، پخوانی نوم به د نوي نوم ورگرځونکی مخ وگرځي او نوي سرليک ته به وگرځولی شي.\nهغه تړنې چې په زاړه مخ کې دي په هغو کې به هېڅ کوم بدلون را نه شي;\n[[Special:BrokenRedirects|د ماتو مخ گرځونو]] يا [[Special:DoubleRedirects|دوه ځلي مخ گرځونو]] د ستونزو د پېښېدو په خاطر ځان ډاډه کړی چې ستاسې مخ گرځونې ماتې يا دوه ځله نه وي.\nدا ستاسې پازه ده چې ځان په دې هم ډاډمن کړی چې آيا هغه تړنې کوم چې د يو مخ سره پکار دي چې وي، همداسې په پرله پسې توگه پېيلي او خپل موخن ځايونو سره اړونده دي.\n\nپه ياد مو اوسه چې يو مخ به '''هېڅکله''' و نه لېږدېږي که چېرته د پخوا نه په هماغه نوم يو مخ شتون ولري، خو که چېرته يو مخ تش وه او يا هم يوه مخ گرځونه چې پېښليک کې يې بدلون نه وي راغلی. نو دا په دې مانا ده چې تاسې کولای شی چې د يو مخ نوم بېرته هماغه پخواني نوم ته بدل کړی چې د پخوا نه يې درلوده، که چېرته تاسې تېرووځۍ نو په داسې حال کې تاسې نه شی کولای چې د يوه مخ پر سر يو څه وليکۍ.\n\n'''گواښنه!'''\nيوه نوي نوم ته د مخونو د نوم بدلون کېدای شي چې په نامتو مخونو کې بنسټيزه او نه اټکل کېدونکی بدلونونه رامېنځ ته کړي;\nمخکې له دې نه چې پرمخ ولاړ شی، لطفاُ لومړی خپل ځان په دې ډاډه کړی چې تاسې ددغې کړنې په پايلو ښه پوهېږۍ.",
-       "movepagetext-noredirectfixer": "د لاندينۍ فورمې په کارولو سره تاسې د يوه مخ نوم بدلولی شی، چې په همدې توگه به د يوه مخ ټول پېښليک د هغه د نوي نوم سرليک ته ولېږدېږي.\nد يوه مخ، پخوانی نوم به د نوي نوم ورگرځونکی مخ وگرځي او نوي سرليک ته به وگرځولی شي.\n\n[[Special:BrokenRedirects|د ماتو مخ گرځونو]] يا [[Special:DoubleRedirects|دوه ځلي مخ گرځونو]] د ستونزو د پېښېدو په خاطر ځان ډاډه کړی چې ستاسې مخ گرځونې ماتې يا دوه ځله نه وي.\nدا ستاسې پازه ده چې ځان په دې هم ډاډمن کړی چې آيا هغه تړنې کوم چې د يو مخ سره پکار دي چې وي، همداسې په پرله پسې توگه پېيلي او خپل د موخې ځايونو سره اړونده دي که نه.\n\nپه ياد مو اوسه چې يو مخ به '''هېڅکله''' و نه لېږدېږي که چېرته د پخوا نه په هماغه نوم يو بل مخ شتون ولري، خو که چېرته يو مخ تش وه او يا هم يوه مخ گرځونه چې پېښليک کې يې بدلون نه وي راغلی. نو دا په دې مانا ده چې تاسې کولای شی چې د يو مخ نوم بېرته هماغه پخواني نوم ته بدل کړی چې د پخوا نه يې درلوده، که چېرته تاسې تېرووځۍ نو په داسې حال کې تاسې نه شی کولای چې د يوه مخ پر سر يو څه وليکۍ.\n\n'''گواښنه!'''\nيوه نوي نوم ته د مخونو د نوم بدلون کېدای شي چې په نامتو مخونو کې بنسټيزه او نه اټکل کېدونکي بدلونونه رامېنځ ته کړي; مخکې له دې نه چې پرمخ ولاړ شی، لطفاُ لومړی خپل ځان په دې ډاډه کړی چې تاسې ددغې کړنې په پايلو ښه پوهېږۍ.",
+       "movepagetext": "د لاندينۍ فورمې په کارولو سره تاسې د يوه مخ نوم بدلولی شی، چې په همدې توگه به د يوه مخ ټول پېښليک د هغه د نوي نوم سرليک ته ولېږدېږي.\nد يوه مخ، پخوانی نوم به د نوي نوم ورگرځونکی مخ وگرځي او نوي سرليک ته به وگرځولی شي.\nهغه تړنې چې په زاړه مخ کې دي په هغو کې به هېڅ کوم بدلون را نه شي;\n[[Special:BrokenRedirects|د ماتو مخ گرځونو]] يا [[Special:DoubleRedirects|دوه ځلي مخ گرځونو]] د ستونزو د پېښېدو په خاطر ځان ډاډه کړی چې ستاسې مخ گرځونې ماتې يا دوه ځله نه وي.\nدا ستاسې پازه ده چې ځان په دې هم ډاډمن کړی چې آيا هغه تړنې کوم چې د يو مخ سره پکار دي چې وي، همداسې په پرله پسې توگه پېيلي او خپل موخن ځايونو سره اړونده دي.\n\nپه ياد مو اوسه چې يو مخ به <strong>هېڅکله</strong> و نه لېږدېږي که چېرته د پخوا نه په هماغه نوم يو مخ شتون ولري، خو که چېرته يو مخ تش وه او يا هم يوه مخ گرځونه چې پېښليک کې يې بدلون نه وي راغلی. نو دا په دې مانا ده چې تاسې کولای شی چې د يو مخ نوم بېرته هماغه پخواني نوم ته بدل کړی چې د پخوا نه يې درلوده، که چېرته تاسې تېرووځۍ نو په داسې حال کې تاسې نه شی کولای چې د يوه مخ پر سر يو څه وليکۍ.\n\n<strong>گواښنه:</strong>\nيوه نوي نوم ته د مخونو د نوم بدلون کېدای شي چې په نامتو مخونو کې بنسټيزه او نه اټکل کېدونکی بدلونونه رامېنځ ته کړي;\nمخکې له دې نه چې پرمخ ولاړ شی، لطفاُ لومړی خپل ځان په دې ډاډه کړی چې تاسې ددغې کړنې په پايلو ښه پوهېږۍ.",
+       "movepagetext-noredirectfixer": "د لاندينۍ فورمې په کارولو سره تاسې د يوه مخ نوم بدلولی شی، چې په همدې توگه به د يوه مخ ټول پېښليک د هغه د نوي نوم سرليک ته ولېږدېږي.\nد يوه مخ، پخوانی نوم به د نوي نوم ورگرځونکی مخ وگرځي او نوي سرليک ته به وگرځولی شي.\n\n[[Special:BrokenRedirects|د ماتو مخ گرځونو]] يا [[Special:DoubleRedirects|دوه ځلي مخ گرځونو]] د ستونزو د پېښېدو په خاطر ځان ډاډه کړی چې ستاسې مخ گرځونې ماتې يا دوه ځله نه وي.\nدا ستاسې پازه ده چې ځان په دې هم ډاډمن کړی چې آيا هغه تړنې کوم چې د يو مخ سره پکار دي چې وي، همداسې په پرله پسې توگه پېيلي او خپل د موخې ځايونو سره اړونده دي که نه.\n\nپه ياد مو اوسه چې يو مخ به <strong>هېڅکله</strong> و نه لېږدېږي که چېرته د پخوا نه په هماغه نوم يو بل مخ شتون ولري، خو که چېرته يو مخ تش وه او يا هم يوه مخ گرځونه چې پېښليک کې يې بدلون نه وي راغلی. نو دا په دې مانا ده چې تاسې کولای شی چې د يو مخ نوم بېرته هماغه پخواني نوم ته بدل کړی چې د پخوا نه يې درلوده، که چېرته تاسې تېرووځۍ نو په داسې حال کې تاسې نه شی کولای چې د يوه مخ پر سر يو څه وليکۍ.\n\n<strong>پاملرنه:</strong>\nيوه نوي نوم ته د مخونو د نوم بدلون کېدای شي چې په نامتو مخونو کې بنسټيزه او نه اټکل کېدونکي بدلونونه رامېنځ ته کړي; مخکې له دې نه چې پرمخ ولاړ شی، لطفاُ لومړی خپل ځان په دې ډاډه کړی چې تاسې ددغې کړنې په پايلو ښه پوهېږۍ.",
        "movepagetalktext": "همدې مخ ته اړونده د خبرواترو مخ هم په اتوماتيک ډول لېږدول کېږي '''خو که چېرته:'''\n*په نوي نوم د پخوا نه د خبرواترو يو مخ شتون ولري، او يا هم\n*تاسې ته لاندې ورکړ شوی څلورڅنډی په نښه شوی وي.\n\nنو په هغه وخت کې پکار ده چې د خبرواترو د مخ لېږدونه او د نوي مخ سره د يوځای کولو کړنه په لاسي توگه ترسره کړی.",
        "moveuserpage-warning": "'''گواښنه:''' تاسې د يو کارن مخ د لېږدولو په حال کې ياست. لطفاً دا مه هېروۍ چې يوازې همدا مخ به ولېږدول شي او د کارن نوم به ''نه'' بدلېږي.",
        "movenologintext": "ددې لپاره چې يو مخ ولېږدوی، نو تاسې بايد يو ثبت شوی کارن او غونډال کې [[Special:UserLogin|ننوتي]] اوسۍ.",
        "movenosubpage": "دا مخ کوم څېرمه مخونه نه لري.",
        "movereason": "سبب:",
        "revertmove": "په څټ گرځول",
-       "delete_and_move_text": "== د ړنگولو اړتيا ==\nد \"[[:$1]]\" په نوم مخ له پخوا څخه شته.\nآيا د دې په ړنگولو سره لېږدولو ته لاره هوارول غواړۍ؟",
+       "delete_and_move_text": "د \"[[:$1]]\" په نوم مخ له پخوا څخه شته.\nآيا د دې په ړنگولو سره لېږدولو ته لاره هوارول غواړئ؟",
        "delete_and_move_confirm": "هو, دا مخ ړنگ کړه",
        "immobile-source-page": "دا مخ نه لېږدېدنونکی دی",
        "imageinvalidfilename": "د موخنې دوتنې نوم سم نه دی",
        "move-leave-redirect": "يو ورگرځونکی مخ پر ځای پرېښودل",
-       "move-over-sharedrepo": "== دوتنه شته ==\nد [[:$1]] دوتنه په يو گډ زېرمتون کې شته. دې نوم ته د يوې دوتنې لېږدون به د گډې دوتنې د باطلېدلو سبب شي.",
+       "move-over-sharedrepo": "د [[:$1]] دوتنه په يو گډ زېرمتون کې شته. نوي نوم ته د يوې دوتنې لېږدون به د شريکې دوتنې د باطلېدلو سبب وگرځي.",
        "export": "مخونه صادرول",
        "exportall": "ټول مخونه صادرول",
        "export-submit": "صادرول",
        "mediastatistics-summary": "د پورته شويو دوتنو اړونده شمارنې. په دې ځای کې د يوې دوتنې يوازې تر ټولو تازه بڼې شاملې شوي. د دوتنو زړې يا ړنگې شوې بڼې په دې شمارنو کې نه دي شاملې شوي.",
        "mediastatistics-nfiles": "$1 ($2%)",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 بايټ|$1 بايټونه}} ($2; $3%)",
+       "mediastatistics-bytespertype": "د دې برخې د ټولټال دوتنو کچه: {{PLURAL:$1|$1 بايټ|$1 بايټونه}} ($2; $3%).",
+       "mediastatistics-allbytes": "د ټولو دوتنو ټولټال کچه: {{PLURAL:$1|$1 بايټ|$1 بايټونه}} ($2).",
        "mediastatistics-table-mimetype": "MIME بڼه",
        "mediastatistics-table-extensions": "ممکنه شاتاړي",
        "mediastatistics-table-count": "د دوتنو شمېر",
        "special-characters-group-hebrew": "عبراني",
        "special-characters-group-bangla": "بنگالي",
        "special-characters-group-tamil": "تاميلي",
-       "special-characters-group-telugu": "تÛ\90Ù\84Ù\88Ú«و",
+       "special-characters-group-telugu": "تÛ\90Ù\84Ù\88Ú¯و",
        "special-characters-group-sinhala": "سېنهالي",
        "special-characters-group-gujarati": "گوجراتي",
        "special-characters-group-devanagari": "دېواناگري",
index 8b260c8..3230f75 100644 (file)
        "october-date": "$1 de outubro",
        "november-date": "$1 de novembro",
        "december-date": "$1 de dezembro",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Categoria|Categorias}}",
        "category_header": "Páginas na categoria \"$1\"",
        "subcategories": "Subcategorias",
        "morenotlisted": "Esta lista não está completa.",
        "mypage": "Página",
        "mytalk": "Discussão",
-       "anontalk": "Discussão para este endereço IP",
+       "anontalk": "Discussão",
        "navigation": "Navegação",
        "and": "&#32;e",
        "qbfind": "Procurar",
        "databaseerror-query": "Consulta: $1",
        "databaseerror-function": "Função: $1",
        "databaseerror-error": "Erro: $1",
+       "transaction-duration-limit-exceeded": "Para evitar a criação de lag replicação alta, esta operação foi abortada porque a duração de gravação ($1) excedeu o $2 {{PLURAL:$2|second|seconds}} limite.Se você está mudando muitos itens de uma vez, tente fazer várias operações menores em vez.",
        "laggedslavemode": "Aviso: a página poderá não conter atualizações recentes.",
        "readonly": "Banco de dados disponível no modo \"somente leitura\"",
        "enterlockreason": "Entre com um motivo para trancá-lo, incluindo uma estimativa de quando poderá novamente ser destrancado",
-       "readonlytext": "O banco de dados está atualmente bloqueado para novas entradas e outras modificações, provavelmente por uma manutenção rotineira; mais tarde voltará ao normal.\n\nO administrador que fez o bloqueio ofereceu a seguinte explicação: $1",
+       "readonlytext": "O banco de dados está atualmente bloqueado para novos artigos e outras modificações, provavelmente por uma manutenção de rotina de banco de dados, após o que estará de volta ao normal.\n\nO administrador do sistema que fez o bloqueio oferece a seguinte explicação: $1",
        "missing-article": "O banco de dados não encontrou o texto de uma página que deveria ter encontrado, com o nome \"$1\" $2.\n\nIsso normalmente é causado ao acessar um link de diferença (dif) desatualizado ou para o histórico de uma página que foi apagada.\n\nSe este não for o caso, você pode ter encontrado um defeito (bug) no software.\nAnote a URL e reporte o ocorrido a um [[Special:ListUsers/sysop|administrador]].",
        "missingarticle-rev": "(revisão#: $1)",
        "missingarticle-diff": "(Dif.: $1, $2)",
        "virus-scanfailed": "a verificação falhou (código $1)",
        "virus-unknownscanner": "antivírus desconhecido:",
        "logouttext": "'''Agora você encontra-se desautenticado.'''\n\nNote que algumas páginas podem continuar sendo exibidas como se você ainda estivesse autenticado até que você limpe a ''cache'' do seu navegador.",
+       "cannotlogoutnow-title": "Não é possível encerrar a sessão agora",
        "welcomeuser": "Bem-vindo, $1!",
        "welcomecreation-msg": "A sua conta foi criada.\nNão se esqueça de personalizar as suas [[Special:Preferences|preferências no wiki {{SITENAME}}]].",
        "yourname": "Nome de usuário:",
        "remembermypassword": "Lembrar meu login neste navegador (por no máximo $1 {{PLURAL:$1|dia|dias}})",
        "userlogin-remembermypassword": "Mantenha-me conectado",
        "userlogin-signwithsecure": "Use a conexão segura",
+       "cannotloginnow-title": "Não é possível iniciar a sessão agora",
        "yourdomainname": "Seu domínio:",
        "password-change-forbidden": "Você não pode alterar senhas nessa wiki.",
        "externaldberror": "Ocorreu ou um erro no banco de dados durante a autenticação ou não lhe é permitido atualizar a sua conta externa.",
        "resetpass_submit": "Definir senha e entrar",
        "changepassword-success": "Sua senha foi alterada com sucesso!",
        "changepassword-throttled": "Você realizou demasiadas tentativas de se registrar.\nPor favor, aguarde $1 antes de tentar novamente.",
+       "botpasswords-existing": "Senhas bot existentes",
+       "botpasswords-createnew": "Crie uma nova senha bot",
+       "botpasswords-editexisting": "Editar uma senha existente bot",
+       "botpasswords-label-appid": "Nome do robô:",
+       "botpasswords-label-create": "Criar",
+       "botpasswords-label-update": "Atualizar",
+       "botpasswords-label-cancel": "Cancelar",
+       "botpasswords-label-delete": "Apagar",
+       "botpasswords-label-resetpassword": "Redefinir a sua senha",
+       "botpasswords-label-grants": "Permissões aplicáveis",
+       "botpasswords-label-restrictions": "Restrições de uso:",
+       "botpasswords-label-grants-column": "Concedido",
+       "botpasswords-created-title": "Password Bot criado",
+       "botpasswords-updated-title": "Password Bot atualizado",
+       "botpasswords-deleted-title": "Bot senha excluído",
        "resetpass_forbidden": "As senhas não podem ser alteradas",
        "resetpass-no-info": "Você precisa estar autenticado para acessar esta página diretamente.",
        "resetpass-submit-loggedin": "Alterar senha",
        "passwordreset-emailtext-user": "O usuário $1 da {{SITENAME}} pediu a recuperação dos detalhes da sua conta na {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta está associada|As seguintes contas estão associadas}} a este e-mail:\n\n$2\n\n{{PLURAL:$3|Esta senha temporária irá|Estas senhas temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}. Deve autenticar-se e escolher uma senha nova agora. Se este pedido não foi feito por si, ou se entretanto se recordou da sua senha original e já não deseja alterá-la, pode ignorar esta mensagem e continuar a usar a senha antiga.",
        "passwordreset-emailelement": "Usuário: \n$1\n\nSenha temporária: \n$2",
        "passwordreset-emailsentemail": "Se este é um endereço de e-mail registrado para a sua conta, em seguida, um e-mail de redefinição de senha será enviada.",
+       "passwordreset-emailsentusername": "Se houver um endereço de email associado a esta conta, ser-lhe-á enviada uma mensagem para redefinir a sua senha.",
        "passwordreset-emailsent-capture": "Foi enviado um e-mail de lembrete, que é mostrado abaixo.",
        "passwordreset-emailerror-capture": "Foi gerado um e-mail de recuperação da senha, conforme mostrado abaixo, mas o envio {{GENDER:$2|ao usuário|à usuária}} falhou. $1",
        "changeemail": "Alterar ou remover endereço de email",
        "showingresultsinrange": "Apresenta-se abaixo {{PLURAL:$1|<strong>1</strong> resultado|até <strong>$1</strong> resultados}} no intervalo #<strong>$2</strong> a #<strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Resultado <strong>$1</strong> de <strong>$3</strong>|Resultados <strong>$1 - $2</strong> de <strong>$3</strong>}}",
        "search-nonefound": "Não há resultados que correspondam à consulta.",
+       "search-nonefound-thiswiki": "Não há resultados que correspondam à consulta.",
        "powersearch-legend": "Pesquisa avançada",
        "powersearch-ns": "Pesquisar nos espaços nominais:",
        "powersearch-togglelabel": "Selecionar:",
        "userrights": "Gestão de privilégios {{GENDER:{{BASEPAGENAME}}|do usuário|da usuária|de usuário(a)}}",
        "userrights-lookup-user": "Administrar grupos de usuários",
        "userrights-user-editname": "Forneça um nome de usuário:",
-       "editusergroup": "Editar grupos de usuários",
+       "editusergroup": "Editar {{GENDER:$1|usuário}} grupos",
        "editinguser": "Modificando privilégios d{{GENDER:$1|o usuário|a usuária|o(a) usuário(a)}} <strong>[[User:$1|$1]]</Strong> $2",
        "userrights-editusergroup": "Editar grupos do usuário",
-       "saveusergroups": "Salvar grupos do usuário",
+       "saveusergroups": "Salvar grupos de{{GENDER:$1|usuário}}",
        "userrights-groupsmember": "Membro de:",
        "userrights-groupsmember-auto": "Membro implícito de:",
        "userrights-groups-help": "É possível alterar os grupos em que {{GENDER:$1|este usuário|esta usuária|este(a) usuário(a)}} se encontra:\n* Uma caixa de seleção selecionada significa que {{GENDER:$1|o usuário|a usuária|o(a) usuário(a)}} encontra-se no grupo.\n* Uma caixa de seleção não selecionada significa que {{GENDER:$1|o usuário|a usuária|o(a) usuário(a)}} não se encontra no grupo.\n* Um * indica que não pode remover o grupo depois de o adicionar, ou vice-versa.",
        "right-createpage": "Criar páginas (que não sejam páginas de discussão)",
        "right-createtalk": "Criar páginas de discussão",
        "right-createaccount": "Criar novas contas de usuário",
+       "right-autocreateaccount": "Iniciar a sessão automaticamente com uma conta de usuário externa",
        "right-minoredit": "Marcar edições como menores",
        "right-move": "Mover páginas",
        "right-move-subpages": "Mover páginas com as suas subpáginas",
        "right-blockemail": "Impedir um usuário de enviar email",
        "right-hideuser": "Bloquear um nome de usuário, escondendo-o do público",
        "right-ipblock-exempt": "Contornar bloqueios de IP, automáticos e de intervalo",
-       "right-proxyunbannable": "Contornar bloqueios automáticos de proxies",
        "right-unblockself": "Desbloquear a si mesmo",
        "right-protect": "Mudar níveis de proteção e editar páginas protegidas em cascata",
        "right-editprotected": "Editar páginas protegidas como \"{{int:protect-level-sysop}}\"",
        "grant-group-other": "Atividade diversa",
        "grant-blockusers": "Bloquear e desbloquear usuários",
        "grant-createaccount": "Criar contas",
-       "grant-createeditmovepage": "Fazer alterações nas páginas",
+       "grant-createeditmovepage": "Criar, editar e mover páginas",
        "grant-delete": "Excluir páginas, revisões e entradas de registro",
        "grant-editmyoptions": "Editar suas preferências de usuário",
        "grant-editmywatchlist": "Editar sua lista de páginas vigiadas",
        "grant-editprotected": "Editar páginas protegidas",
        "grant-highvolume": "Edição de grandes volumes",
        "grant-oversight": "Ocultar usuários e revisões suprimidas",
+       "grant-patrol": "Patrulhar as alterações nas páginas",
        "grant-protect": "Proteger e desproteger páginas",
        "grant-rollback": "Reverter alterações nas páginas",
        "grant-sendemail": "Enviar e-mail a outros usuários",
        "grant-uploadeditmovefile": "Enviar, substituir e mover arquivos",
        "grant-uploadfile": "Enviar novos arquivos",
+       "grant-basic": "Direitos básicos",
        "grant-viewdeleted": "Ver páginas e arquivos excluídos",
        "grant-viewmywatchlist": "Veja sua lista de páginas vigiadas",
        "newuserlogpage": "Registro de criação de usuários",
        "action-createpage": "criar páginas",
        "action-createtalk": "criar páginas de discussão",
        "action-createaccount": "criar esta conta de usuário",
+       "action-autocreateaccount": "Criar uma conta de usuário externa automaticamente",
        "action-history": "Ver o histórico desta página",
        "action-minoredit": "marcar esta edição como uma edição menor",
        "action-move": "mover esta página",
        "recentchanges-legend-heading": "'''Legenda''':",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (veja também a [[Special:NewPages|lista de páginas novas]])",
        "recentchanges-legend-plusminus": "(''±123'')",
+       "recentchanges-submit": "Exibir",
        "rcnotefrom": "Abaixo {{PLURAL:$5|é a mudança|são as mudanças}} desde <strong>$3, $4</strong> (up to <strong>$1</strong> shown).",
        "rclistfrom": "Mostrar as novas alterações a partir das $2 de $3",
        "rcshowhideminor": "$1 edições menores",
        "rcshowhidemine": "$1 minhas edições",
        "rcshowhidemine-show": "Exibir",
        "rcshowhidemine-hide": "Ocultar",
+       "rcshowhidecategorization-show": "Exibir",
+       "rcshowhidecategorization-hide": "Esconder",
        "rclinks": "Exibir as $1 alterações recentes feitas nos últimos $2 dias<br />$3",
        "diff": "dif",
        "hist": "his",
        "recentchangeslinked-page": "Nome da página:",
        "recentchangeslinked-to": "Inversamente, mostrar mudanças nas páginas que contêm ligações para esta",
        "recentchanges-page-added-to-category": "[[:$1]]adicionada à categoria",
+       "autochange-username": "Alteração automática do MediaWiki",
        "upload": "Enviar arquivo",
        "uploadbtn": "Enviar arquivo",
        "reuploaddesc": "Cancelar o envio e retornar ao formulário de upload",
        "filewasdeleted": "Um arquivo com este nome foi enviado anteriormente e eliminado.\nVerifique o $1 antes de enviar novamente.",
        "filename-bad-prefix": "O nome do arquivo que você está enviando começa com '''\"$1\"''', um nome pouco esclarecedor, comumente associado de forma automática por câmeras digitais.\nEscolha um nome de arquivo mais explicativo.",
        "filename-prefix-blacklist": " #<!-- deixe esta linha exatamente como está --> <pre>\n# A sintaxe é a seguinte:\n#   * Tudo a partir do caractere \"#\" até ao fim da linha é um comentário\n#   * Todas as linhas não vazias são um prefixo para nomes de arquivos típicos atribuídos automaticamente por câmaras digitais\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # alguns telefones móveis\nIMG # genérico\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- deixe esta linha exatamente como está -->",
-       "upload-success-subj": "Enviado com sucesso",
-       "upload-success-msg": "O envio feito a partir de [$2] foi bem sucedido. Ele está disponível aqui: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problema no envio",
-       "upload-failure-msg": "Ocorreu um problema com envio a partir de [$2]:\n\n$1",
-       "upload-warning-subj": "Aviso de envio",
-       "upload-warning-msg": "Houve um problema com o envio a partir de [$2]. Retorne ao [[Special:Upload/stash/$1|formulário]] para corrigir este problema.",
        "upload-proto-error": "Protocolo incorreto",
        "upload-proto-error-text": "O envio de arquivos remotos requer endereços (URLs) que iniciem com <code>http://</code> ou <code>ftp://</code>.",
        "upload-file-error": "Erro interno",
        "upload-form-label-infoform-description": "Descrição",
        "upload-form-label-usage-title": "Uso",
        "upload-form-label-usage-filename": "Nome do arquivo",
+       "foreign-structured-upload-form-label-own-work": "Isto é o meu próprio trabalho",
        "foreign-structured-upload-form-label-infoform-categories": "Categorias",
        "foreign-structured-upload-form-label-infoform-date": "Data",
+       "foreign-structured-upload-form-label-not-own-work-local-local": "Você pode também querer tentar [[Special:Upload|the default upload page]]",
+       "foreign-structured-upload-form-2-label-useful": "Deve ser <strong>educativo e útil</strong> para ensinar a outros.",
+       "foreign-structured-upload-form-3-label-yes": "Sim",
+       "foreign-structured-upload-form-3-label-no": "Não",
        "backend-fail-stream": "Não foi possível transmitir o arquivo  $1.",
        "backend-fail-backup": "Não foi possível fazer backup do arquivo  $1 .",
        "backend-fail-notexists": "O arquivo $1 não existe.",
        "mostrevisions": "Páginas de conteúdo com mais revisões",
        "prefixindex": "Todas as páginas com prefixo",
        "prefixindex-namespace": "Todas as páginas com prefixo (espaço nominal $1)",
+       "prefixindex-submit": "Exibir",
        "prefixindex-strip": "Remover prefixo",
        "shortpages": "Páginas curtas",
        "longpages": "Páginas longas",
        "protectedpages-performer": "Usuário que protegeu",
        "protectedpages-params": "Parâmetros de proteção.",
        "protectedpages-reason": "Motivo",
+       "protectedpages-submit": "Exibir páginas",
        "protectedpages-unknown-timestamp": "Desconhecido",
        "protectedpages-unknown-performer": "Usuário desconhecido",
        "protectedtitles": "Títulos protegidos",
        "protectedtitles-summary": "Esta página lista títulos cuja criação está impossibilitada. Para ver uma lista de páginas protegidas, consulte [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Neste momento, nenhum dos títulos está protegido com estes parâmetros.",
+       "protectedtitles-submit": "Mostrar títulos",
        "listusers": "Lista de usuários",
        "listusers-editsonly": "Mostrar apenas usuários com edições",
        "listusers-creationsort": "Ordenar por data de criação",
        "usereditcount": "$1 {{PLURAL:$1|edição|edições}}",
        "usercreated": "{{GENDER:$3|criado|criada|criado(a)}} em $1 às $2",
        "newpages": "Páginas novas",
+       "newpages-submit": "Exibir",
        "newpages-username": "Nome de usuário:",
        "ancientpages": "Páginas mais antigas",
        "move": "Mover",
        "specialloguserlabel": "Executor:",
        "speciallogtitlelabel": "Alvo (título da página ou {{ns:user}}:'nomedeusuário' para usuários):",
        "log": "Registros",
+       "logeventslist-submit": "Exibir",
        "all-logs-page": "Todos os registros públicos",
        "alllogstext": "Exibição combinada de todos registros disponíveis para o {{SITENAME}}.\nVocê pode diminuir a lista escolhendo um tipo de registro, um nome de usuário (sensível a maiúsculas e minúsculas), ou uma página afetada (também sensível a maiúsculas e minúsculas).",
        "logempty": "Nenhum item correspondente no registro.",
        "log-title-wildcard": "Procurar por títulos que sejam iniciados com o seguinte texto",
        "showhideselectedlogentries": "Exibir/ocultar os itens de registros selecionados",
        "log-edit-tags": "Editar etiquetas das entradas selecionadas",
+       "checkbox-select": "Selecionar: $1",
+       "checkbox-all": "Tudo",
+       "checkbox-none": "Nenhum",
+       "checkbox-invert": "Inverter",
        "allpages": "Todas as páginas",
        "nextpage": "Próxima página ($1)",
        "prevpage": "Página anterior ($1)",
        "cachedspecial-viewing-cached-ts": "Você está visualizando uma versão de cache desta página que pode estar desatualizada.",
        "cachedspecial-refresh-now": "Ver a mais recente.",
        "categories": "Categorias",
+       "categories-submit": "Exibir",
        "categoriespagetext": "{{PLURAL:$1|A seguinte categoria contém|As seguintes contém}} páginas ou mídia.\n[[Special:UnusedCategories|Categorias não utilizadas]] não são mostradas aqui.\nVeja também [[Special:WantedCategories|categorias pedidas]].",
        "categoriesfrom": "Listar categorias começando por:",
        "special-categories-sort-count": "ordenar por contagem",
        "activeusers-hidebots": "Esconder robôs",
        "activeusers-hidesysops": "Esconder administradores",
        "activeusers-noresult": "Nenhum usuário encontrado.",
+       "activeusers-submit": "Mostrar usuários ativos",
        "listgrouprights": "Privilégios de grupos de usuários",
        "listgrouprights-summary": "O que segue é uma lista dos grupos de usuários definidos neste wiki, com os seus privilégios de acessos associados.\nPode haver [[{{MediaWiki:Listgrouprights-helppage}}|informações adicionais]] sobre privilégios individuais.",
        "listgrouprights-key": "Legenda:\n* <span class=\"listgrouprights-granted\">Privilégio concedido</span>\n* <span class=\"listgrouprights-revoked\">Privilégio revogado</span>",
        "listgrouprights-namespaceprotection-header": "Restrições de namespace",
        "listgrouprights-namespaceprotection-namespace": "Namespace",
        "listgrouprights-namespaceprotection-restrictedto": "Direito(s) permitindo edições do usuário",
+       "listgrants": "Permissões",
+       "listgrants-grant": "Permissão",
+       "listgrants-rights": "Direitos",
        "trackingcategories": "Categorias de rastreamento",
        "trackingcategories-summary": "Esta página lista categorias de monitoramento que são preenchidas automaticamente pelo software MediaWiki. Seus nomes podem ser alterados através da alteração das mensagens de sistema relevantes no namespace {{ns: 8}}.",
        "trackingcategories-msg": "Categoria de monitoramento",
        "wlheader-showupdated": "Páginas modificadas desde a sua última visita são mostradas em '''negrito'''",
        "wlnote": "A seguir {{PLURAL:$1|está a última alteração ocorrida|estão as últimas <strong>$1</strong> alterações ocorridas}} {{PLURAL:$2|na última hora|nas últimas <strong>$2</strong> horas}} até $3, $4.",
        "wlshowlast": "Ver últimas $1 horas $2 dias",
-       "watchlistall2": "todas",
        "watchlist-hide": "Ocultar",
+       "watchlist-submit": "Exibir",
+       "wlshowtime": "Período de tempo a mostrar:",
        "wlshowhideminor": "edições menores",
        "wlshowhidebots": "robôs",
        "wlshowhideliu": "usuários registrados",
        "wlshowhideanons": "usuários anônimos",
        "wlshowhidepatr": "edições patrulhadas",
        "wlshowhidemine": "minhas edições",
+       "wlshowhidecategorization": "categorização de páginas",
        "watchlist-options": "Opções da lista de páginas vigiadas",
        "watching": "Vigiando...",
        "unwatching": "Deixando de vigiar...",
        "delete-confirm": "Eliminar \"$1\"",
        "delete-legend": "Eliminar",
        "historywarning": "<strong>Aviso:</strong> A página que está prestes a eliminar tem um histórico com aproximadamente $1 {{PLURAL:$1|revisão|revisões}}:",
+       "historyaction-submit": "Exibir",
        "confirmdeletetext": "Encontra-se prestes a eliminar uma página juntamente com todo o seu histórico.\nPor favor, confirme que possui a intenção de fazer isto, que compreende as consequências e que encontra-se a fazer isto de acordo com as [[{{MediaWiki:Policy-url}}|políticas]] do projeto.",
        "actioncomplete": "Ação concluída",
        "actionfailed": "Falha na ação",
        "changecontentmodel": "Alterar o modelo de conteúdo de uma página",
        "changecontentmodel-legend": "Alterar o modelo de conteúdo",
        "changecontentmodel-title-label": "Título da página",
+       "changecontentmodel-model-label": "Modelo de conteúdo novo",
        "changecontentmodel-reason-label": "Motivo:",
        "changecontentmodel-success-title": "O modelo de conteúdo foi alterado",
        "changecontentmodel-success-text": "O tipo de conteúdo de [[:$1]] foi alterado.",
+       "log-name-contentmodel": "Log de alterações modelo de conteúdo",
        "logentry-contentmodel-change-revertlink": "reverter",
        "logentry-contentmodel-change-revert": "reverter",
        "protectlogpage": "Registro de proteção",
        "whatlinkshere-hidelinks": "$1 links",
        "whatlinkshere-hideimages": "$1 links para arquivos",
        "whatlinkshere-filters": "Filtros",
+       "whatlinkshere-submit": "Avançar",
        "autoblockid": "Autobloqueio #$1",
        "block": "Bloquear usuário(a)",
        "unblock": "Desbloquear usuário",
        "export-download": "Oferecer para salvar como um arquivo",
        "export-templates": "Incluir predefinições",
        "export-pagelinks": "Incluir páginas ligadas até uma profundidade de:",
+       "export-manual": "Adicionar páginas manualmente:",
        "allmessages": "Todas as mensagens de sistema",
        "allmessagesname": "Nome",
        "allmessagesdefault": "Texto padrão",
        "javascripttest-qunit-intro": "Veja a [$1 documentação de testes] no mediawiki.org.",
        "tooltip-pt-userpage": "Sua página de {{GENDER:|usuário|usuária|usuário(a)}}",
        "tooltip-pt-anonuserpage": "A página de usuário para o ip com o qual você está editando",
-       "tooltip-pt-mytalk": "Sua página de discussão",
+       "tooltip-pt-mytalk": "{{GENDER:|Sua}} página de discussão",
        "tooltip-pt-anontalk": "Discussão sobre edições deste endereço de ip",
-       "tooltip-pt-preferences": "Suas configurações",
+       "tooltip-pt-preferences": "{{GENDER:|Suas}} configurações",
        "tooltip-pt-watchlist": "Lista de alterações nas páginas que você está monitorando",
-       "tooltip-pt-mycontris": "Listagem de suas contribuições",
+       "tooltip-pt-mycontris": "Listagem das {{GENDER:|suas}} contribuições",
+       "tooltip-pt-anoncontribs": "Uma lista de edições feitas a partir deste endereço de IP",
        "tooltip-pt-login": "Você é encorajado a autenticar-se; no entanto, não é obrigatório",
        "tooltip-pt-logout": "Sair",
        "tooltip-pt-createaccount": "É recomendado que você crie uma conta e inicie uma seção; todavia, isto não é obrigatório",
        "tooltip-t-recentchangeslinked": "Mudanças recentes nas páginas para as quais esta possui links",
        "tooltip-feed-rss": "Feed RSS desta página",
        "tooltip-feed-atom": "Feed Atom desta página",
-       "tooltip-t-contributions": "Ver as contribuições {{GENDER:{{BASEPAGENAME}}|deste usuário|desta usuária|deste(a) usuário(a)}}",
+       "tooltip-t-contributions": "Ver as contribuições {{GENDER:$1{{BASEPAGENAME}}|deste usuário|desta usuária|deste(a) usuário(a)}}",
        "tooltip-t-emailuser": "Enviar um e-mail a {{GENDER:{{BASEPAGENAME}}|este usuário|esta usuária|este(a) usuário(a)}}",
        "tooltip-t-info": "Mais informações sobre esta página",
        "tooltip-t-upload": "Enviar arquivos",
        "pageinfo-category-files": "Número de arquivos",
        "markaspatrolleddiff": "Marcar como patrulhada",
        "markaspatrolledtext": "Marcar esta página como patrulhada",
+       "markaspatrolledtext-file": "Marcar esta versão de artigo como patrulhada",
        "markedaspatrolled": "Marcado como verificado",
        "markedaspatrolledtext": "A revisão selecionada de [[:$1]] foi marcada como patrulhada.",
        "rcpatroldisabled": "Edições verificadas nas Mudanças Recentes desativadas",
        "newimages-legend": "Filtrar",
        "newimages-label": "Nome de arquivo (ou parte dele):",
        "newimages-showbots": "Mostrar uploads realizados por bots",
+       "newimages-hidepatrolled": "Ocultar os carregamentos patrulhados.",
        "noimages": "Nada para ver.",
        "ilsubmit": "Pesquisar",
        "bydate": "por data",
        "exif-compression-4": "CCITT Grupo 4 codificação de fax",
        "exif-copyrighted-true": "Direitos autorais reservados",
        "exif-copyrighted-false": "Situação de direitos autorais não definido",
+       "exif-photometricinterpretation-1": "Preto e branco (Preto é 0)",
        "exif-unknowndate": "Data desconhecida",
        "exif-orientation-1": "Normal",
        "exif-orientation-2": "Espelhamento horizontal",
        "watchlisttools-edit": "Ver e editar a lista de páginas vigiadas",
        "watchlisttools-raw": "Edição crua da lista de páginas vigiadas",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussão]])",
+       "timezone-local": "Localização",
        "duplicate-defaultsort": "Aviso: A chave de ordenação padrão \"$2\" sobrepõe-se à anterior chave de ordenação padrão \"$1\".",
        "duplicate-displaytitle": "<strong>Aviso:</strong> O título exibido \"$2\" substituí o título anterior \"$1\".",
        "invalid-indicator-name": "<strong>Erro:</strong> O atributo indicador do status da página <code>name</code> não deve estar vazio.",
        "version-libraries-license": "Licença",
        "version-libraries-description": "Descrição",
        "version-libraries-authors": "Autores",
-       "redirect": "Redirecionar por arquivo, usuário ou ID de revisão",
+       "redirect": "Redirecionar por arquivo, usuário, página, revisão ou registro de identificação.",
        "redirect-legend": "Redirecionar para um arquivo ou página",
        "redirect-summary": "Esta página especial redireciona a um arquivo (dado o nome do arquivo), a uma página (dado um ID de revisão ou ID da página) ou a uma página de usuário (dado o ID do usuário). Uso: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Ir",
        "tags-deactivate": "Desativar",
        "tags-hitcount": "$1 {{PLURAL:$1|modificação|modificações}}",
        "tags-manage-no-permission": "Você não possui permissão para gerenciar alterações de etiquetas",
+       "tags-manage-blocked": "Você não pode fazer mudanças nas etiquetas enquanto bloqueado.",
        "tags-create-heading": "Criar uma nova etiqueta",
        "tags-create-explanation": "Por padrão, etiquetas recém-criadas serão disponibilizadas para usuários e robôs",
        "tags-create-tag-name": "Nome de etiqueta",
        "tags-deactivate-not-allowed": "Não é possível desativar a etiqueta \"$1\".",
        "tags-deactivate-submit": "Desativar",
        "tags-apply-no-permission": "Você não tem permissão para aplicar mudanças de etiquetas, juntamente com suas alterações.",
+       "tags-apply-blocked": "Você não pode aplicar as mudanças nas etiquetas enquanto está bloqueado.",
        "tags-apply-not-allowed-one": "A etiqueta \"$1\" não pode ser aplicada manualmente.",
        "tags-apply-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta não pode ser aplicada|As seguintes etiquetas não podem ser aplicadas}} manualmente: $1",
        "tags-update-no-permission": "Você não tem permissão para adicionar ou remover mudanças de etiquetas de revisões individuais ou entradas de registro.",
+       "tags-update-blocked": "Você não pode adicionar ou remover mudanças nas etiquetas enquanto bloqueado.",
        "tags-update-add-not-allowed-one": "A etiqueta \"$1\" não pode ser adicionada manualmente.",
        "tags-update-add-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta não pode ser adicionada|As seguintes etiquetas não podem ser adicionadas}} manualmente: $1",
        "tags-update-remove-not-allowed-one": "A remoção da etiqueta \"$1\" não é permitida.",
        "pagelang-language": "Idioma",
        "pagelang-use-default": "Idioma padrão de uso",
        "pagelang-select-lang": "Selecionar idioma",
+       "pagelang-submit": "Enviar",
        "right-pagelang": "Mudar idioma da página",
        "action-pagelang": "mudar idioma da página",
        "log-name-pagelang": "Mudar idioma do log",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
        "mw-widgets-titleinput-description-new-page": "a página ainda não existe",
        "mw-widgets-titleinput-description-redirect": "redirecionar para $1",
-       "api-error-blacklisted": "Por favor, escolha  um título descritivo diferente."
+       "api-error-blacklisted": "Por favor, escolha  um título descritivo diferente.",
+       "randomrootpage": "Página raiz aleatória"
 }
index 24d4d72..76bd750 100644 (file)
        "filewasdeleted": "Um ficheiro com este nome foi carregado anteriormente e subsequentemente eliminado.\nDeverá verificar o $1 antes de voltar a enviá-lo.",
        "filename-bad-prefix": "O nome do ficheiro que está a enviar começa por '''\"$1\"''', um nome pouco explicativo, normalmente originado de forma automática por câmaras digitais. Escolha um nome de ficheiro mais explicativo, por favor.",
        "filename-prefix-blacklist": " #<!-- deixe esta linha exactamente como está --> <pre>\n# A sintaxe é a seguinte:\n#   * Tudo a partir do carácter \"#\" até ao fim da linha é um comentário\n#   * Todas as linhas não vazias são um prefixo para nomes de ficheiros típicos atribuídos automaticamente por câmaras digitais\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # alguns telefones móveis\nIMG # genérico\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- deixe esta linha exactamente como está -->",
-       "upload-success-subj": "Envio efetuado com sucesso",
-       "upload-success-msg": "O seu carregamento de [$2] foi bem sucedido. Está disponível aqui: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problema no carregamento",
-       "upload-failure-msg": "Ocorreu um problema com o seu carregamento de [$2]:\n\n$1",
-       "upload-warning-subj": "Aviso de carregamento",
-       "upload-warning-msg": "Ocorreu um problema no seu carregamento de [$2]. Pode voltar ao [[Special:Upload/stash/$1|formulário de carregamento]] para resolver o problema.",
        "upload-proto-error": "Protocolo incorreto",
        "upload-proto-error-text": "O carregamento remoto de ficheiros requer endereços URL começados por <code>http://</code> ou <code>ftp://</code>.",
        "upload-file-error": "Erro interno",
        "foreign-structured-upload-form-label-infoform-date": "Data",
        "foreign-structured-upload-form-label-own-work-message-local": "Confirmo que estou a carregar este ficheiro segundo as condições de serviço e política de licenças de {{SITENAME}}.",
        "foreign-structured-upload-form-label-not-own-work-local-local": "Poderá querer experimentar [[Special:Upload|a página padrão de carregamento]].",
+       "foreign-structured-upload-form-2-label-intro": "Obrigado por doar uma imagem para utilização em {{SITENAME}}. Deverá continuar apenas se cumprir algumas condições:",
        "foreign-structured-upload-form-3-label-yes": "Sim",
        "foreign-structured-upload-form-3-label-no": "Não",
+       "foreign-structured-upload-form-4-label-bad": "Não pode carregar imagens encontradas num motor de busca ou descarregadas de outros sítios.",
        "backend-fail-stream": "Não foi possível transmitir o ficheiro \"$1\".",
        "backend-fail-backup": "Não foi possível fazer cópia de segurança do ficheiro \"$1\".",
        "backend-fail-notexists": "O ficheiro $1 não existe.",
        "wlheader-showupdated": "As páginas modificadas desde a última vez que as visitou aparecem destacadas a '''negrito'''.",
        "wlnote": "A seguir {{PLURAL:$1|está a última alteração ocorrida|estão as últimas <strong>$1</strong> alterações ocorridas}} {{PLURAL:$2|na última hora|nas últimas <strong>$2</strong> horas}} até $3, $4.",
        "wlshowlast": "Ver últimas $1 horas $2 dias",
-       "watchlistall2": "desde sempre",
        "watchlist-hide": "Ocultar",
        "watchlist-submit": "Mostrar",
        "wlshowtime": "Período de tempo a mostrar:",
        "lockedbyandtime": "(por {{GENDER:$1|$1}} em $2 às $3)",
        "move-page": "Mover $1",
        "move-page-legend": "Mover página",
-       "movepagetext": "Usando o formulário abaixo pode mover esta página e todo o seu histórico de edições para uma página nova com outro nome.\nA página original será transformada num redirecionamento para a página nova.\nPode corrigir de forma automática os redirecionamentos existentes que apontam para a página original.\nCaso escolha não o fazer, após a operação certifique-se de que dela não resultaram  [[Special:DoubleRedirects|redirecionamentos duplos]] ou [[Special:BrokenRedirects|quebrados]].\nÉ da sua responsabilidade verificar que as ligações continuam a apontar para onde é suposto que apontem.\n\nNote que a página '''não''' será movida se já existir uma página com o novo título, a menos que esta última seja um redirecionamento sem qualquer histórico de edições.\nIsto significa que pode mover uma página de volta para o seu nome original se a tiver movido por engano e que não pode mover uma página para cima de outra já existente.\n\n'''CUIDADO!'''\nNuma página popular esta operação pode representar uma mudança drástica e inesperada;\ncertifique-se de que compreende as consequências da mudança antes de prosseguir, por favor.",
-       "movepagetext-noredirectfixer": "Usando o formulário abaixo, pode alterar o nome de uma página e mover todo o histórico desta para o nome novo.\nA página antiga é transformada numa página de redirecionamento para a nova.\nVerifique a existência de [[Special:DoubleRedirects|redirecionamentos duplos]] ou [[Special:BrokenRedirects|quebrados]].\nÉ da sua responsabilidade certificar-se de que as ligações continuam a apontar para onde é suposto.\n\nNote que a página '''não''' será movida se já existir uma página com o nome novo, a menos que esta página já existente esteja vazia ou seja uma página de redirecionamento e não tenha um histórico de edições.\nIsto também significa que, se se tiver enganado, pode alterar o nome da página movida de volta para o seu nome original; e que não pode sobrescrever o conteúdo de uma página existente.\n\n'''Aviso!'''\nPara páginas populares, esta operação pode representar uma mudança drástica e inesperada;\ncertifique-se de que compreende as consequências da operação antes de continuar.",
+       "movepagetext": "Usando o formulário abaixo pode mover esta página e todo o seu histórico de edições para uma página nova com outro nome.\nA página original será transformada num redirecionamento para a página nova.\nPode corrigir de forma automática os redirecionamentos existentes que apontam para a página original.\nCaso escolha não o fazer, após a operação certifique-se de que dela não resultaram  [[Special:DoubleRedirects|redirecionamentos duplos]] ou [[Special:BrokenRedirects|quebrados]].\nÉ da sua responsabilidade verificar que as ligações continuam a apontar para onde é suposto que apontem.\n\nNote que a página '''não''' será movida se já existir uma página com o novo título, a menos que esta última seja um redirecionamento sem qualquer histórico de edições.\nIsto significa que pode mover uma página de volta para o seu nome original se a tiver movido por engano e que não pode mover uma página para cima de outra já existente.\n\n'''Nota:'''\nNuma página popular esta operação pode representar uma mudança drástica e inesperada;\ncertifique-se de que compreende as consequências da mudança antes de prosseguir, por favor.",
+       "movepagetext-noredirectfixer": "Usando o formulário abaixo, pode alterar o nome de uma página e mover todo o histórico desta para o nome novo.\nA página antiga é transformada numa página de redirecionamento para a nova.\nVerifique a existência de [[Special:DoubleRedirects|redirecionamentos duplos]] ou [[Special:BrokenRedirects|quebrados]].\nÉ da sua responsabilidade certificar-se de que as ligações continuam a apontar para onde é suposto.\n\nNote que a página '''não''' será movida se já existir uma página com o nome novo, a menos que esta página já existente esteja vazia ou seja uma página de redirecionamento e não tenha um histórico de edições.\nIsto também significa que, se se tiver enganado, pode alterar o nome da página movida de volta para o seu nome original; e que não pode sobrescrever o conteúdo de uma página existente.\n\n'''Nota:'''\nPara páginas populares, esta operação pode representar uma mudança drástica e inesperada;\ncertifique-se de que compreende as consequências da operação antes de continuar.",
        "movepagetalktext": "Se assinalar esta opção, e existir uma página de discussão associada, ela será automaticamente movida, a não ser que já exista uma página de discussão com o novo título que não esteja vazia.\n\nNeste caso, terá de mover a página de discussão manualmente, ou fundi-la com a existente, se assim desejar.",
        "moveuserpage-warning": "'''Aviso:''' Está prestes a mover uma página de utilizador. Note que a página será apenas movida, ''sem'' alterar o nome do utilizador.",
        "movecategorypage-warning": "<strong>Aviso:</strong> Está prestes a mover uma categoria. Por favor, note que apenas moverá a página da categoria e quaisquer páginas que estejam listadas <em>não</em> serão recategorizadas na nova.",
        "movenosubpage": "Esta página não tem subpáginas.",
        "movereason": "Motivo:",
        "revertmove": "reverter",
-       "delete_and_move_text": "==Eliminação necessária==\nA página de destino (\"[[:$1]]\") já existe. Deseja eliminá-la de modo a poder mover?",
+       "delete_and_move_text": "A página de destino (\"[[:$1]]\") já existe. \nDeseja eliminá-la de modo a poder mover?",
        "delete_and_move_confirm": "Sim, eliminar a página",
        "delete_and_move_reason": "Eliminada para poder mover \"[[$1]]\" para este título",
        "selfmove": "Os títulos de origem e destino são iguais;\nnão é possível mover uma página para ela mesma.",
        "move-leave-redirect": "Criar um redirecionamento",
        "protectedpagemovewarning": "<strong>Aviso:</strong> Esta página foi protegida de modo que apenas os utilizadores com privilégios de administrador possam movê-la.\nA última entrada é fornecido abaixo como referência:",
        "semiprotectedpagemovewarning": "<strong>Note:</strong> Esta página foi protegida de modo que apenas utilizadores registados a possam mover.\nA última entrada é fornecida abaixo como referência:",
-       "move-over-sharedrepo": "== O ficheiro existe ==\n[[:$1]] já existe num repositório partilhado. Mover um ficheiro para o título [[:$1]] irá sobrepô-lo ao ficheiro partilhado.",
+       "move-over-sharedrepo": "[[:$1]] já existe num repositório partilhado. Mover um ficheiro para o título [[:$1]] irá substituir o ficheiro partilhado.",
        "file-exists-sharedrepo": "O nome de ficheiro que escolheu já é utilizado num repositório partilhado.\nEscolha outro nome, por favor.",
        "export": "Exportar páginas",
        "exporttext": "Pode exportar o texto e o histórico de edições de uma página em particular para um ficheiro XML. Poderá então importar esse conteúdo noutra wiki que utilize o programa MediaWiki, através da [[Special:Import|página de importações]].\n\nPara exportar páginas, introduza os títulos na caixa de texto abaixo (um título por linha) e selecione se deseja todas as versões, com as linhas de histórico de edições, ou apenas a edição atual e informações sobre a mais recente das edições.\n\nSe desejar, pode utilizar um link (por exemplo, [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] para a [[{{MediaWiki:Mainpage}}]]).",
index 37e1a5a..61aaeaa 100644 (file)
        "filename-thumb-name": "Appears when thumbnail title is similar to \"22px-Example.jpg\" - the prefix is what MW adds when downloading pictures as thumbnails.",
        "filename-bad-prefix": "Used as warning in [[Special:Upload]]. Parameters:\n* $1 - prefix\nSee also:\n* {{msg-mw|fileexists}}\n* {{msg-mw|filepageexists}}\n* {{msg-mw|fileexists-extension}}\n* {{msg-mw|fileexists-thumbnail-yes}}\n* {{msg-mw|file-thumbnail-no}}\n* {{msg-mw|filewasdeleted}}",
        "filename-prefix-blacklist": "{{optional}}\nDo not translate the file name prefixes before the hash mark (#). Leave all the wiki markup, including the spaces, as is. You can translate the text, including 'Leave this line exactly as it is'. The first line of this messages has one (1) leading space.",
-       "upload-success-subj": "Used as message subject which is posted on the user talk page.\n\nSee also:\n* {{msg-mw|upload-success-subj|subject}}\n* {{msg-mw|upload-success-msg|message}}\n* {{msg-mw|upload-failure-subj|subject}}\n* {{msg-mw|upload-failure-msg|message}}",
-       "upload-success-msg": "Used as message body which is posted on the user talk page. Parameters:\n* $1 - the local file name after uploading\n* $2 - the URL the file was uploaded from, when using upload-by-URL\nSee also:\n* {{msg-mw|upload-success-subj|subject}}\n* {{msg-mw|upload-success-msg|message}}\n* {{msg-mw|upload-failure-subj|subject}}\n* {{msg-mw|upload-failure-msg|message}}",
-       "upload-failure-subj": "Used as message subject which is posted on the user talk page.\n\nI think this message should be translated as opposed to {{msg-mw|upload-success-subj}}.\n\nSee also:\n* {{msg-mw|upload-success-subj|subject}}\n* {{msg-mw|upload-success-msg|message}}\n* {{msg-mw|upload-failure-subj|subject}}\n* {{msg-mw|upload-failure-msg|message}}",
-       "upload-failure-msg": "Used as message body which is posted on the user talk page. Parameters:\n* $1 - the specific error message\n* $2 - the URL the file tried to upload from, when using upload-by-URL.\nSee also:\n* {{msg-mw|upload-success-subj|subject}}\n* {{msg-mw|upload-success-msg|message}}\n* {{msg-mw|upload-failure-subj|subject}}\n* {{msg-mw|upload-failure-msg|message}}",
-       "upload-warning-subj": "Used as warning subject which is posted on the user talk page.\n\nSee also:\n* {{msg-mw|upload-warning-subj|subject}}\n* {{msg-mw|upload-warning-msg|message}}",
-       "upload-warning-msg": "Used as warning body which is posted on the user talk page. Parameters:\n* $1 - the URL the file was uploaded from, when using upload-by-URL\n* $2 - the session key for the upload\nSee also:\n* {{msg-mw|Upload-warning-subj|subject}}",
        "upload-proto-error": "See also:\n* {{msg-mw|Upload-proto-error|title}}\n* {{msg-mw|Upload-proto-error-text|text}}",
        "upload-proto-error-text": "\"Remote upload\" is explained on [[w:Uploading_and_downloading#Remote_upload|Wikipedia]].\n\nSee also:\n* {{msg-mw|Upload-proto-error|title}}\n* {{msg-mw|Upload-proto-error-text|text}}",
        "upload-file-error": "Unused on core [[mw:Special:Code/MediaWiki/53282]].\n\nExtensions making use of it:\n*ImportFreeImages\n*SemanticForms\nSee also:\n* {{msg-mw|Upload-file-error|title}}\n* {{msg-mw|Upload-file-error-text|text}}\n{{Identical|Internal error}}",
        "upload-too-many-redirects": "Error message shown when uploading a file via URL, if the upload failed because the URL returned too many redirects.",
        "upload-http-error": "Parameters:\n* $1 - error message",
        "upload-copy-upload-invalid-domain": "Error message shown if a user is trying to upload (i.e. copy) a file from a website that is not in $wgCopyUploadsDomains (if set).\n\nSee also:\n* {{msg-mw|http-invalid-url}}\n* {{msg-mw|tmp-create-error}}\n* {{msg-mw|tmp-write-error}}",
+       "upload-foreign-cant-upload": "Error message shown when a user is trying to upload a file to foreign repository that is not configured to receive file uploads from current wiki.",
        "upload-dialog-title": "Title of the upload dialog box\n{{Identical|Upload file}}",
        "upload-dialog-button-cancel": "Button to cancel the dialog\n{{Identical|Cancel}}",
        "upload-dialog-button-done": "Button to close the dialog once upload is complete\n{{Identical|Done}}",
        "foreign-structured-upload-form-label-own-work": "[[File:Cross-wiki media upload dialog, December 2015 AB test option 1.png|thumb]] Label for own work confirmation checkbox",
        "foreign-structured-upload-form-label-infoform-categories": "Label for category selector input\n{{Identical|Category}}",
        "foreign-structured-upload-form-label-infoform-date": "Label for date input\n{{Identical|Date}}",
-       "foreign-structured-upload-form-label-own-work-message-local": "Message shown by local when a user affirms that they are allowed to upload a file to the local wiki.",
+       "foreign-structured-upload-form-label-own-work-message-local": "Message shown by local when a user affirms that their file upload to the local wiki follows the terms of service and licensing policies of the local wiki.",
        "foreign-structured-upload-form-label-not-own-work-message-local": "Message shown by local when a user cannot upload a file to the local wiki.",
        "foreign-structured-upload-form-label-not-own-work-local-local": "Suggests uploading a file via Special:Upload instead of using whatever method they're currently using.",
        "foreign-structured-upload-form-label-own-work-message-default": "Message shown by default when a user affirms that they are allowed to upload a file to a remote wiki.",
        "wlheader-showupdated": "Message at the top of [[Special:Watchlist]], after {{msg-mw|watchlist-details}}. Has to be a full sentence.",
        "wlnote": "Used on [[Special:Watchlist]] when a maximum number of hours or days is specified.\n\nParameters:\n* $1 - the number of changes shown\n* $2 - the number of hours for which the changes are shown\n* $3 - a date alone\n* $4 - a time alone",
        "wlshowlast": "Appears on [[Special:Watchlist]]. Parameters:\n* $1 - a choice of different numbers of hours (\"1 | 2 | 6 | 12\")\n* $2 - a choice of different numbers of days (\"1 | 3 | 7\" and the maximum number of days available)\nClicking on your choice changes the list of changes you see (without changing the default in my preferences).",
-       "watchlistall2": "Appears on [[Special:Watchlist]], after {{msg-mw|wlshowtime}}, as the option to display all available data regardless of age.\n{{Identical|All}}",
        "watchlist-hide": "Appears on [[Special:Watchlist]]. It is the first word on a new line with checkboxes to hide/unhide options\n{{Identical|Hide}}",
        "watchlist-submit": "Label on the submit button in [[Special:Watchlist]]\n{{Identical|Show}}",
-       "wlshowtime": "Appears on [[Special:Watchlist]]. Label of a drop-down list used to specify the period of time to display in the watchlist. This period can be {{msg-mw|days}}, {{msg-mw|hours}}, or {{msg-mw|watchlistall2}}.",
+       "wlshowtime": "Appears on [[Special:Watchlist]]. Label of a drop-down list used to specify the period of time to display in the watchlist. This period can be {{msg-mw|days}} or {{msg-mw|hours}}.",
        "wlshowhideminor": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideminor}}.\n{{Identical|Minor edit}}",
        "wlshowhidebots": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidebots}}.\n{{Identical|Bot}}",
        "wlshowhideliu": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideliu}}.\n{{Identical|Registered user}}",
        "tags-update-remove-not-allowed-multi": "Error message seen via the API when a user tries to remove more than one tag that is not properly defined.\n\nParameters:\n* $1 - comma-separated list of tag names\n* $2 - number of tags",
        "tags-edit-title": "The title of a page where tags can be added or removed from selected revisions or log entries.\nFor more information on tags see [[mw:Manual:Tags]].",
        "tags-edit-manage-link": "Text of a link to [[Special:Tags]], in imperative mood. Refers to the same thing as {{msg-mw|log-name-managetags}}.",
-       "tags-edit-revision-selected": "{{Identical|revdelete-selected-text}}\n\nSee also:\n* {{msg-mw|tags-edit-logentry-selected}}",
+       "tags-edit-revision-selected": "{{Identical|revdelete-selected-text}}\n\nParameters:\n* $1 - Number of ids of selected revisions\n* $2 - Title of the page that user has selected revisions of\nSee also:\n* {{msg-mw|tags-edit-logentry-selected}}",
        "tags-edit-logentry-selected": "{{Identical|logdelete-selected}}\n\nSee also:\n* {{msg-mw|tags-edit-revision-selected}}",
        "tags-edit-revision-explanation": "Leave blank.\n\nSee also:\n* {{msg-mw|tags-edit-logentry-explanation}}",
        "tags-edit-logentry-explanation": "Leave blank.\n\nSee also:\n* {{msg-mw|tags-edit-revision-explanation}}",
index ccac1fe..71979dd 100644 (file)
        "filename-thumb-name": "Acesta arată ca un titlu pentru o miniatură. Vă rugăm să nu încărcați miniaturi înapoi pe același wiki. În caz contrar, vă rugăm să corectați numele fișierului pentru ca acesta să fie mai descriptiv și să nu aibă prefixul de miniatură.",
        "filename-bad-prefix": "Numele fișierului pe care îl încărcați începe cu '''\"$1\"''', care este un nume non-descriptiv alocat automat în general de camerele digitale.\nVă rugăm, alegeți un nume mai descriptiv pentru fișerul dumneavoastră.",
        "filename-prefix-blacklist": " #<!-- lăsați această linie exact așa cum este --> <pre>\n# Sintaxa după cum urmează:\n# * Tot ceea ce începe cu „#” și până la sfârșitul rândului reprezintă un comentariu\n# * Fiecare rând care nu este gol reprezintă un prefix pentru numele tipice de fișiere atribuite automat de camerele digitale\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # unele telefoane mobile\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # diverse\n#</pre> <!-- lăsați această linie exact așa cum este -->",
-       "upload-success-subj": "Fișierul a fost trimis",
-       "upload-success-msg": "Încărcarea de la [$2] s-a încheiat cu succes. Rezultatul este disponibil aici: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problemă la trimitere",
-       "upload-failure-msg": "A apărut o problemă cu încărcarea de la [$2]:\n\n$1",
-       "upload-warning-subj": "Avertizare la încărcare",
-       "upload-warning-msg": "A apărut o problemă în timpul încărcării de la [$2]. Vă puteți întoarce la [[Special:Upload/stash/$1|formularul de trimitere]] pentru a corecta această problemă.",
        "upload-proto-error": "Protocol incorect",
        "upload-proto-error-text": "Importul de la distanță necesită adrese URL care încep cu <code>http://</code> sau <code>ftp://</code>.",
        "upload-file-error": "Eroare internă",
index d7d17c8..20b1899 100644 (file)
        "filename-thumb-name": "Название файла похоже на название уменьшенной версии изображения. Пожалуйста, не загружайте подобные миниатюры обратно вики-проект. Если вам всё-таки необходим этот файл, пожалуйста, исправить имя файла, чтобы оно не содержало префикс миниатюры.",
        "filename-bad-prefix": "Имя загружаемого файла начинается с «<strong>$1</strong>» и, вероятно, представляет собой одно из шаблонных имён, генерируемых цифровыми фотокамерами. Пожалуйста, выберите имя, лучше описывающее содержание файла.",
        "filename-prefix-blacklist": " #<!-- оставьте эту строчку как есть --> <pre>\n# Синтаксис следующий:\n#   * Всё, что начинается с символа «#», считается комментарием (до конца строки)\n#   * Каждая непустая строка — префикс стандартного названия файла, которое обычно даёт цифровая камера\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # некоторые мобильные телефоны\nIMG # общее\nJD # Jenoptik\nMGP # Pentax\nPICT # различные\n #</pre> <!-- оставьте эту строчку как есть -->",
-       "upload-success-subj": "Загрузка успешно завершена",
-       "upload-success-msg": "Ваша загрузка [$2] прошла успешно. Вы можете посмотреть результат здесь: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Проблема загрузки",
-       "upload-failure-msg": "Обнаружена проблема с вашей загрузкой из [$2]:\n\n$1",
-       "upload-warning-subj": "Предупреждение при загрузке",
-       "upload-warning-msg": "При загрузке с [$2] произошла ошибка. Для исправления ошибки вернитесь на [[Special:Upload/stash/$1|upload form]].",
        "upload-proto-error": "Неправильный протокол",
        "upload-proto-error-text": "Для удалённой загрузки требуется адрес, начинающийся с <code>http://</code> или <code>ftp://</code>.",
        "upload-file-error": "Внутренняя ошибка",
        "upload-too-many-redirects": "URL содержит слишком много перенаправлений",
        "upload-http-error": "Произошла ошибка HTTP: $1",
        "upload-copy-upload-invalid-domain": "Копирование загрузок не доступно в этом домене.",
+       "upload-foreign-cant-upload": "Эта вики не настроена для загрузки файлов на запрошенный сторонний файловый репозиторий.",
        "upload-dialog-title": "Загрузить файл",
        "upload-dialog-button-cancel": "Отменить",
        "upload-dialog-button-done": "Готово",
        "wlheader-showupdated": "Страницы, изменившиеся с вашего последнего их посещения, выделены '''жирным''' шрифтом.",
        "wlnote": "Ниже {{PLURAL:$1|показано последнее изменение|показаны <strong>$1</strong> последние изменения|показаны <strong>$1</strong> последних изменений}} за {{PLURAL:$2|последний час|последние <strong>$2</strong> часа|последние <strong>$2</strong> часов}}, по состоянию на $3 $4.",
        "wlshowlast": "Показать за последние $1 часов $2 дней",
-       "watchlistall2": "все",
        "watchlist-hide": "Скрыть",
        "watchlist-submit": "Показать",
        "wlshowtime": "Период времени для отображения:",
        "lockedbyandtime": "($1 $2 $3)",
        "move-page": "$1 — переименование",
        "move-page-legend": "Переименование страницы",
-       "movepagetext": "Ð\92оÑ\81полÑ\8cзовавÑ\88иÑ\81Ñ\8c Ð½Ð¸Ð¶ÐµÐ¿Ñ\80иведÑ\91нной Ñ\84оÑ\80мой, Ð²Ñ\8b Ð¿ÐµÑ\80еименÑ\83еÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83, Ð¾Ð´Ð½Ð¾Ð²Ñ\80еменно Ð¿ÐµÑ\80емеÑ\81Ñ\82ив Ð½Ð° Ð½Ð¾Ð²Ð¾Ðµ Ð¼ÐµÑ\81Ñ\82о ÐµÑ\91 Ð¶Ñ\83Ñ\80нал Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹.\nСÑ\82аÑ\80ое Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Ñ\81Ñ\82анеÑ\82 Ð¿ÐµÑ\80енапÑ\80авлением Ð½Ð° Ð½Ð¾Ð²Ð¾Ðµ.\nÐ\92Ñ\8b Ð¼Ð¾Ð¶ÐµÑ\82е Ð°Ð²Ñ\82омаÑ\82иÑ\87еÑ\81ки Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ\82Ñ\8c Ð¿ÐµÑ\80енапÑ\80авлениÑ\8f, ÐºÐ¾Ñ\82оÑ\80Ñ\8bе Ð²ÐµÐ»Ð¸ Ð½Ð° Ñ\81Ñ\82аÑ\80ое Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ.\nÐ\95Ñ\81ли Ð²Ñ\8b Ñ\8dÑ\82ого Ð½Ðµ Ñ\81делаеÑ\82е, Ð¿Ð¾Ð¶Ð°Ð»Ñ\83йÑ\81Ñ\82а, Ð¿Ñ\80овеÑ\80Ñ\8cÑ\82е Ð½Ð°Ð»Ð¸Ñ\87ие [[Special:DoubleRedirects|двойнÑ\8bÑ\85]] Ð¸ [[Special:BrokenRedirects|Ñ\80азоÑ\80ваннÑ\8bÑ\85 Ð¿ÐµÑ\80енапÑ\80авлений]].\nÐ\92Ñ\8b Ð¾Ñ\82веÑ\87аеÑ\82е Ð·Ð° Ñ\82о, Ñ\87Ñ\82обÑ\8b Ñ\81Ñ\81Ñ\8bлки Ð¿Ñ\80одолжали Ð¸ Ð´Ð°Ð»ÐµÐµ Ñ\83казÑ\8bваÑ\82Ñ\8c Ñ\82Ñ\83да, ÐºÑ\83да Ð¿Ñ\80едполагалоÑ\81Ñ\8c.\n\nÐ\9eбÑ\80аÑ\82иÑ\82е Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ, Ñ\87Ñ\82о Ñ\81Ñ\82Ñ\80аниÑ\86а <strong>не Ð±Ñ\83деÑ\82</strong> Ð¿ÐµÑ\80еименована, ÐµÑ\81ли Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82 Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81 Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼, Ð¸Ð´ÐµÐ½Ñ\82иÑ\87нÑ\8bм Ð²Ñ\8bбÑ\80анномÑ\83, ÐºÑ\80оме Ñ\81лÑ\83Ñ\87аев, ÐºÐ¾Ð³Ð´Ð° Ñ\82акаÑ\8f Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¿Ñ\83Ñ\81Ñ\82а Ð¸Ð»Ð¸ Ð¿Ñ\80едÑ\81Ñ\82авлÑ\8fеÑ\82 Ñ\81обой Ð¿ÐµÑ\80енапÑ\80авление, Ð¸ Ð¿Ñ\80и Ñ\8dÑ\82ом Ð½Ðµ Ð¸Ð¼ÐµÐµÑ\82 Ð¸Ñ\81Ñ\82оÑ\80ии Ð¿Ñ\80авок.\nЭÑ\82о Ð¾Ð·Ð½Ð°Ñ\87аеÑ\82, Ñ\87Ñ\82о Ñ\81делав Ð¾Ñ\88ибоÑ\87ное Ð¿ÐµÑ\80еименование, Ð²Ñ\8b Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80еименоваÑ\82Ñ\8c Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð¾Ð±Ñ\80аÑ\82но Ð² Ñ\82о Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ, ÐºÐ¾Ñ\82оÑ\80ое Ñ\83 Ð½ÐµÑ\91 Ñ\82олÑ\8cко Ñ\87Ñ\82о Ð±Ñ\8bло, Ð½Ð¾ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ñ\81лÑ\83Ñ\87айно Ð·Ð°Ñ\82еÑ\80еÑ\82Ñ\8c Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83Ñ\8eÑ\89Ñ\83Ñ\8e Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83.\n\n<strong>Ð\9fÑ\80едÑ\83пÑ\80еждение!</strong>\nПереименование популярных страниц может привести к масштабным и неожиданным изменениям.\nПожалуйста, прежде чем продолжать, убедитесь, что понимаете все возможные последствия.",
-       "movepagetext-noredirectfixer": "Ð\92оÑ\81полÑ\8cзовавÑ\88иÑ\81Ñ\8c Ñ\84оÑ\80мой Ð½Ð¸Ð¶Ðµ, Ð²Ñ\8b Ð¿ÐµÑ\80еименÑ\83еÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83, Ð¾Ð´Ð½Ð¾Ð²Ñ\80еменно Ð¿ÐµÑ\80емеÑ\81Ñ\82ив Ð½Ð° Ð½Ð¾Ð²Ð¾Ðµ Ð¼ÐµÑ\81Ñ\82о ÐµÑ\91 Ð¶Ñ\83Ñ\80нал Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹.\nСÑ\82аÑ\80ое Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Ñ\81Ñ\82анеÑ\82 Ð¿ÐµÑ\80енапÑ\80авлением Ð½Ð° Ð½Ð¾Ð²Ð¾Ðµ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ.\nÐ\9fожалÑ\83йÑ\81Ñ\82а, Ð¿Ñ\80овеÑ\80Ñ\8cÑ\82е Ð½Ð°Ð»Ð¸Ñ\87ие [[Special:DoubleRedirects|двойнÑ\8bÑ\85]] Ð¸ [[Special:BrokenRedirects|Ñ\80азоÑ\80ваннÑ\8bÑ\85 Ð¿ÐµÑ\80енапÑ\80авлений]].\nÐ\92Ñ\8b Ð¾Ñ\82веÑ\87аеÑ\82е Ð·Ð° Ñ\82о, Ñ\87Ñ\82обÑ\8b Ñ\81Ñ\81Ñ\8bлки Ð¿Ñ\80одолжали Ð¸ Ð´Ð°Ð»ÐµÐµ Ñ\83казÑ\8bваÑ\82Ñ\8c Ñ\82Ñ\83да, ÐºÑ\83да Ð¿Ñ\80едполагалоÑ\81Ñ\8c.\n\nÐ\9eбÑ\80аÑ\82иÑ\82е Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ, Ñ\87Ñ\82о Ñ\81Ñ\82Ñ\80аниÑ\86а <strong>не Ð±Ñ\83деÑ\82</strong> Ð¿ÐµÑ\80еименована, ÐµÑ\81ли Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81 Ð½Ð¾Ð²Ñ\8bм Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼ Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82, ÐºÑ\80оме Ñ\81лÑ\83Ñ\87аев, ÐµÑ\81ли Ð¾Ð½Ð° Ð¿Ñ\83Ñ\81Ñ\82а Ð¸Ð»Ð¸ Ð¿Ñ\80едÑ\81Ñ\82авлÑ\8fеÑ\82 Ñ\81обой Ð¿ÐµÑ\80енапÑ\80авление, Ð¸ Ð¿Ñ\80и Ñ\8dÑ\82ом Ð½Ðµ Ð¸Ð¼ÐµÐµÑ\82 Ð¸Ñ\81Ñ\82оÑ\80ии Ð¿Ñ\80авок.\nЭÑ\82о Ð¾Ð·Ð½Ð°Ñ\87аеÑ\82, Ñ\87Ñ\82о Ñ\81делав Ð¾Ñ\88ибоÑ\87ное Ð¿ÐµÑ\80еименование, Ð²Ñ\8b Ñ\81можеÑ\82е Ð¿ÐµÑ\80еименоваÑ\82Ñ\8c Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð¾Ð±Ñ\80аÑ\82но Ð² Ñ\82о Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ, ÐºÐ¾Ñ\82оÑ\80ое Ñ\83 Ð½ÐµÑ\91 Ñ\82олÑ\8cко Ñ\87Ñ\82о Ð±Ñ\8bло, Ð½Ð¾ Ð½Ðµ Ñ\81можеÑ\82е Ñ\81лÑ\83Ñ\87айно Ð·Ð°Ñ\82еÑ\80еÑ\82Ñ\8c Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83Ñ\8eÑ\89Ñ\83Ñ\8e Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83.\n\n<strong>Ð\9fÑ\80едÑ\83пÑ\80еждение!</strong>\nПереименование может привести к масштабным и неожиданным изменениям для популярных страниц.\nПожалуйста, прежде чем продолжить, убедитесь, что понимаете все возможные последствия.",
+       "movepagetext": "Ð\92оÑ\81полÑ\8cзовавÑ\88иÑ\81Ñ\8c Ð½Ð¸Ð¶ÐµÐ¿Ñ\80иведÑ\91нной Ñ\84оÑ\80мой, Ð²Ñ\8b Ð¿ÐµÑ\80еименÑ\83еÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83, Ð¾Ð´Ð½Ð¾Ð²Ñ\80еменно Ð¿ÐµÑ\80емеÑ\81Ñ\82ив Ð½Ð° Ð½Ð¾Ð²Ð¾Ðµ Ð¼ÐµÑ\81Ñ\82о ÐµÑ\91 Ð¶Ñ\83Ñ\80нал Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹.\nСÑ\82аÑ\80ое Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Ñ\81Ñ\82анеÑ\82 Ð¿ÐµÑ\80енапÑ\80авлением Ð½Ð° Ð½Ð¾Ð²Ð¾Ðµ.\nÐ\92Ñ\8b Ð¼Ð¾Ð¶ÐµÑ\82е Ð°Ð²Ñ\82омаÑ\82иÑ\87еÑ\81ки Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ\82Ñ\8c Ð¿ÐµÑ\80енапÑ\80авлениÑ\8f, ÐºÐ¾Ñ\82оÑ\80Ñ\8bе Ð²ÐµÐ»Ð¸ Ð½Ð° Ñ\81Ñ\82аÑ\80ое Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ.\nÐ\95Ñ\81ли Ð²Ñ\8b Ñ\8dÑ\82ого Ð½Ðµ Ñ\81делаеÑ\82е, Ð¿Ð¾Ð¶Ð°Ð»Ñ\83йÑ\81Ñ\82а, Ð¿Ñ\80овеÑ\80Ñ\8cÑ\82е Ð½Ð°Ð»Ð¸Ñ\87ие [[Special:DoubleRedirects|двойнÑ\8bÑ\85]] Ð¸ [[Special:BrokenRedirects|Ñ\80азоÑ\80ваннÑ\8bÑ\85 Ð¿ÐµÑ\80енапÑ\80авлений]].\nÐ\92Ñ\8b Ð¾Ñ\82веÑ\87аеÑ\82е Ð·Ð° Ñ\82о, Ñ\87Ñ\82обÑ\8b Ñ\81Ñ\81Ñ\8bлки Ð¿Ñ\80одолжали Ð¸ Ð´Ð°Ð»ÐµÐµ Ñ\83казÑ\8bваÑ\82Ñ\8c Ñ\82Ñ\83да, ÐºÑ\83да Ð¿Ñ\80едполагалоÑ\81Ñ\8c.\n\nÐ\9eбÑ\80аÑ\82иÑ\82е Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ, Ñ\87Ñ\82о Ñ\81Ñ\82Ñ\80аниÑ\86а <strong>не Ð±Ñ\83деÑ\82</strong> Ð¿ÐµÑ\80еименована, ÐµÑ\81ли Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82 Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81 Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼, Ð¸Ð´ÐµÐ½Ñ\82иÑ\87нÑ\8bм Ð²Ñ\8bбÑ\80анномÑ\83, ÐºÑ\80оме Ñ\81лÑ\83Ñ\87аев, ÐºÐ¾Ð³Ð´Ð° Ñ\82акаÑ\8f Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¿Ñ\83Ñ\81Ñ\82а Ð¸Ð»Ð¸ Ð¿Ñ\80едÑ\81Ñ\82авлÑ\8fеÑ\82 Ñ\81обой Ð¿ÐµÑ\80енапÑ\80авление, Ð¸ Ð¿Ñ\80и Ñ\8dÑ\82ом Ð½Ðµ Ð¸Ð¼ÐµÐµÑ\82 Ð¸Ñ\81Ñ\82оÑ\80ии Ð¿Ñ\80авок.\nЭÑ\82о Ð¾Ð·Ð½Ð°Ñ\87аеÑ\82, Ñ\87Ñ\82о Ñ\81делав Ð¾Ñ\88ибоÑ\87ное Ð¿ÐµÑ\80еименование, Ð²Ñ\8b Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80еименоваÑ\82Ñ\8c Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð¾Ð±Ñ\80аÑ\82но Ð² Ñ\82о Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ, ÐºÐ¾Ñ\82оÑ\80ое Ñ\83 Ð½ÐµÑ\91 Ñ\82олÑ\8cко Ñ\87Ñ\82о Ð±Ñ\8bло, Ð½Ð¾ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ñ\81лÑ\83Ñ\87айно Ð·Ð°Ñ\82еÑ\80еÑ\82Ñ\8c Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83Ñ\8eÑ\89Ñ\83Ñ\8e Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83.\n\n<strong>Ð\9fÑ\80имеÑ\87ание:</strong>\nПереименование популярных страниц может привести к масштабным и неожиданным изменениям.\nПожалуйста, прежде чем продолжать, убедитесь, что понимаете все возможные последствия.",
+       "movepagetext-noredirectfixer": "Ð\92оÑ\81полÑ\8cзовавÑ\88иÑ\81Ñ\8c Ñ\84оÑ\80мой Ð½Ð¸Ð¶Ðµ, Ð²Ñ\8b Ð¿ÐµÑ\80еименÑ\83еÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83, Ð¾Ð´Ð½Ð¾Ð²Ñ\80еменно Ð¿ÐµÑ\80емеÑ\81Ñ\82ив Ð½Ð° Ð½Ð¾Ð²Ð¾Ðµ Ð¼ÐµÑ\81Ñ\82о ÐµÑ\91 Ð¶Ñ\83Ñ\80нал Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹.\nСÑ\82аÑ\80ое Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Ñ\81Ñ\82анеÑ\82 Ð¿ÐµÑ\80енапÑ\80авлением Ð½Ð° Ð½Ð¾Ð²Ð¾Ðµ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ.\nÐ\9fожалÑ\83йÑ\81Ñ\82а, Ð¿Ñ\80овеÑ\80Ñ\8cÑ\82е Ð½Ð°Ð»Ð¸Ñ\87ие [[Special:DoubleRedirects|двойнÑ\8bÑ\85]] Ð¸ [[Special:BrokenRedirects|Ñ\80азоÑ\80ваннÑ\8bÑ\85 Ð¿ÐµÑ\80енапÑ\80авлений]].\nÐ\92Ñ\8b Ð¾Ñ\82веÑ\87аеÑ\82е Ð·Ð° Ñ\82о, Ñ\87Ñ\82обÑ\8b Ñ\81Ñ\81Ñ\8bлки Ð¿Ñ\80одолжали Ð¸ Ð´Ð°Ð»ÐµÐµ Ñ\83казÑ\8bваÑ\82Ñ\8c Ñ\82Ñ\83да, ÐºÑ\83да Ð¿Ñ\80едполагалоÑ\81Ñ\8c.\n\nÐ\9eбÑ\80аÑ\82иÑ\82е Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ, Ñ\87Ñ\82о Ñ\81Ñ\82Ñ\80аниÑ\86а <strong>не Ð±Ñ\83деÑ\82</strong> Ð¿ÐµÑ\80еименована, ÐµÑ\81ли Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81 Ð½Ð¾Ð²Ñ\8bм Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼ Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82, ÐºÑ\80оме Ñ\81лÑ\83Ñ\87аев, ÐµÑ\81ли Ð¾Ð½Ð° Ð¿Ñ\83Ñ\81Ñ\82а Ð¸Ð»Ð¸ Ð¿Ñ\80едÑ\81Ñ\82авлÑ\8fеÑ\82 Ñ\81обой Ð¿ÐµÑ\80енапÑ\80авление, Ð¸ Ð¿Ñ\80и Ñ\8dÑ\82ом Ð½Ðµ Ð¸Ð¼ÐµÐµÑ\82 Ð¸Ñ\81Ñ\82оÑ\80ии Ð¿Ñ\80авок.\nЭÑ\82о Ð¾Ð·Ð½Ð°Ñ\87аеÑ\82, Ñ\87Ñ\82о Ñ\81делав Ð¾Ñ\88ибоÑ\87ное Ð¿ÐµÑ\80еименование, Ð²Ñ\8b Ñ\81можеÑ\82е Ð¿ÐµÑ\80еименоваÑ\82Ñ\8c Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð¾Ð±Ñ\80аÑ\82но Ð² Ñ\82о Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ, ÐºÐ¾Ñ\82оÑ\80ое Ñ\83 Ð½ÐµÑ\91 Ñ\82олÑ\8cко Ñ\87Ñ\82о Ð±Ñ\8bло, Ð½Ð¾ Ð½Ðµ Ñ\81можеÑ\82е Ñ\81лÑ\83Ñ\87айно Ð·Ð°Ñ\82еÑ\80еÑ\82Ñ\8c Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83Ñ\8eÑ\89Ñ\83Ñ\8e Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83.\n\n<strong>Ð\9fÑ\80имеÑ\87ание:</strong>\nПереименование может привести к масштабным и неожиданным изменениям для популярных страниц.\nПожалуйста, прежде чем продолжить, убедитесь, что понимаете все возможные последствия.",
        "movepagetalktext": "Если вы отметите этот пункт, связанная с ней страница обсуждения будет также автоматически переименована, если только уже не существует непустая страница обсуждения с таким же названием.\n\nВ этом случае вам нужно будет переименовать или объединить страницы вручную, если это необходимо.",
        "moveuserpage-warning": "'''Внимание.''' Вы собираетесь переименовать страницу участника. Пожалуйста, обратите внимание, что переименована будет только страница, участник '''не''' будет переименован.",
        "movecategorypage-warning": "<strong>Предупреждение:</strong> Вы собираетесь переименовать страницу категории. Пожалуйста, обратите внимание, что будет переименована только эта страница, а все страницы старой категории <em>не</em> будут перекатегоризованы в новую.",
        "movenosubpage": "У этой страницы нет подстраниц.",
        "movereason": "Причина:",
        "revertmove": "возврат",
-       "delete_and_move_text": "== Требуется удаление ==\nСтраница с именем «[[:$1]]» уже существует. \nХотите удалить её, чтобы сделать возможным переименование?",
+       "delete_and_move_text": "Страница с именем «[[:$1]]» уже существует. \nХотите удалить её, чтобы сделать возможным переименование?",
        "delete_and_move_confirm": "Да, удалить эту страницу",
        "delete_and_move_reason": "Удалено для возможности переименования «[[$1]]»",
        "selfmove": "Невозможно переименовать страницу: исходное и новое имя страницы совпадают.",
        "move-leave-redirect": "Оставить перенаправление",
        "protectedpagemovewarning": "'''Предупреждение. Эта страница была защищена; переименовать её могут только участники с полномочиями администраторов.'''\nНиже для справки приведена последняя запись журнала:",
        "semiprotectedpagemovewarning": "'''Замечание.''' Эта страница была защищена; переименовать её могут только зарегистрированные участники.\nНиже для справки приведена последняя запись журнала:",
-       "move-over-sharedrepo": "== Файл уже существует ==\nВ общем хранилище существует [[:$1]]. Переименование файла в это название вызовет перекрытие файла из общего хранилища.",
+       "move-over-sharedrepo": "В общем хранилище существует [[:$1]]. Переименование файла в это название вызовет перекрытие файла из общего хранилища.",
        "file-exists-sharedrepo": "Выбранное имя файла уже используется в общем хранилище.\nПожалуйста, выберите другое имя.",
        "export": "Экспорт страниц",
        "exporttext": "Вы можете экспортировать текст и журнал изменений конкретной страницы или набора страниц в XML, который потом может быть [[Special:Import|импортирован]] в другой вики-проект, работающий на программном обеспечении MediaWiki.\n\nЧтобы экспортировать статьи, введите их наименования в поле редактирования, одно название на строку, и выберите хотите ли вы экспортировать всю историю изменений статей или только последние версии статей.\n\nВы также можете использовать специальный адрес для экспорта только последней версии. Например для страницы [[{{MediaWiki:Mainpage}}]] это будет адрес [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].",
index 1752d8c..406de5a 100644 (file)
        "upload-description": "Abruozdielė aprašīms",
        "upload-options": "Nostatīmā īkelėmō",
        "watchthisupload": "Keravuotė ton abruozdieli",
-       "upload-success-subj": "Ožkruovėms pavīka gerā",
-       "upload-failure-subj": "Ožkruovėma bieda",
        "upload-proto-error": "Nateisėngs protuokols",
        "upload-proto-error-text": "Nutuolinē ikielims raikalaun, kū URL prasėdietu <code>http://</code> o <code>ftp://</code>.",
        "upload-file-error": "Vėduojė bieda",
        "wlheader-showupdated": "Poslapē, katrėi pakeistė nu Tamstas paskotėnė apsėlonkėma čiesa anūs, īr pažīmietė '''pastuorintā'''",
        "wlnote": "Ruoduoma '''$1''' paskotėniu pakeitėmu, atlėktū par '''$2''' paskotėniu adīnu.",
        "wlshowlast": "Ruodītė paskotėniu $1 adīnu, $2 dėinū a  pakeitėmus",
-       "watchlistall2": "vėsos",
        "watchlist-options": "Keravuojamu sāroša pasėrinkėmā",
        "watching": "Kergiama keravuojamu sārošon...",
        "unwatching": "Šalėnama ėš keravuojamu sāraša...",
index f1529aa..7033701 100644 (file)
        "undo-success": "Úpravu je možné vrátiť. Prosím skontrolujte tento rozdiel, čím overíte, že táto úprava je tá, ktorú chcete, a následne uložte zmeny, čím ukončíte vrátenie.",
        "undo-failure": "Úpravu nie je možné vrátiť kvôli konfliktným medziľahlým úpravám.",
        "undo-norev": "Túto úpravu nie je možné vrátiť, pretože neexistuje alebo bola zmazaná.",
-       "undo-nochange": "Zdá se, že úprava už bola zrušená.",
+       "undo-nochange": "Zdá sa, že úprava už bola zrušená.",
        "undo-summary": "Revízia $1 používateľa [[Special:Contributions/$2|$2]] ([[User talk:$2|diskusia]]) bola vrátená",
        "undo-summary-username-hidden": "Vrátiť revíziu $1, ktorú vykonal skrytý používateľ",
        "cantcreateaccounttitle": "Nie je možné vytvoriť účet",
        "filewasdeleted": "Súbor s týmto názvom bol už nahraný a následne zmazaný. Mali by ste skontrolovať $1 predtým, ako budete pokračovať na opätovné nahranie.",
        "filename-bad-prefix": "Názov súboru, ktorý nahrávate, začína '''„$1“''', čo nie je popisné meno. Takýto názov typicky priraďujú digitálne fotoaparáty automaticky. Prosím, dajte vášmu súboru popisnejší názov.",
        "filename-prefix-blacklist": "  #<!-- tento riadok ponechajte bez zmeny --> <pre>\n# Syntax sa používa nasledovne:\n#   * Všetko od znaku \"#\" až po koniec riadku je komentár\n#   * Každý neprázdny riadok je prefix pre typické názvy súborov, ktorý sa automaticky priraďuje k digitálnym fotoaparátom\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # niektoré mobilné telefóny\nIMG # všeobecné\nJD # Jenoptik\nMGP # Pentax\nPICT # rôzne\n  #</pre> <!-- tento riadok ponechajte bez zmeny -->",
-       "upload-success-subj": "Nahranie bolo úspešné",
-       "upload-success-msg": "Nahranie súboru [$2]prebehlo úspešne. Je dostupný tu: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problém s nahrávaním",
-       "upload-failure-msg": "Vyskytol sa problém s vašim nahrávaním z [$2]:\n\n$1",
-       "upload-warning-subj": "Upozornenie pri nahrávaní",
-       "upload-warning-msg": "Nastal problém pri nahrávaní z [$2]. Môžete sa vrátiť na [[Special:Upload/stash/$1|nahrávací formulár]] a tento problém napraviť.",
        "upload-proto-error": "Nesprávny protokol",
        "upload-proto-error-text": "Vzdialené nahrávanie vyžaduje, aby URL začínali <code>http://</code> alebo <code>ftp://</code>.",
        "upload-file-error": "Vnútorná chyba",
        "wlheader-showupdated": "Stránky, ktoré boli zmenené od vašej poslednej návštevy sú zobrazené '''tučne'''.",
        "wlnote": "Nižšie {{PLURAL:$1|je posledná úprava|sú posledné <strong>$1</strong> úpravy|je posledných <strong>$1</strong> úprav}} za {{PLURAL:$2|poslednú hodinu|posledné <strong>$2</strong> hodiny|posledných <strong>$2</strong> hodín}} do $4, $3.",
        "wlshowlast": "Zobraziť posledných $1 hodín $2 dní",
-       "watchlistall2": "všetky",
        "watchlist-hide": "Skryť",
        "watchlist-submit": "Zobraziť",
        "wlshowtime": "Zobraziť posl.:",
index 09119f4..98c81fd 100644 (file)
        "filename-thumb-name": "Zdi se, da je to naslov predogledne sličice. Prosimo, ne nalagajte predoglednih sličic nazaj na isti wiki. V nasprotnem primeru popravite ime datoteke, da je bolj smiselno in da nima predpone sličice.",
        "filename-bad-prefix": "Ime datoteke, ki jo nalagate, se začne z '''»$1«''', ki je neopisno ime, ponavadi dodeljeno samodejno s strani digitalnih fotoaparatov.\nProsimo, izberite bolj opisno ime vaše datoteke.",
        "filename-prefix-blacklist": " #<!-- pustite to vrstico takšno, kot je --> <pre>\n# Sintaksa:\n#   * Vse od znaka »#« in do konca vrstice je komentar\n#   * Vsaka neprazna vrstica je predpona za tipična imena datotek, določena samodejno s strani digitalnih fotoaparatov\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # nekateri mobilni telefoni\nIMG # generično\nJD # Jenoptik\nMGP # Pentax\nPICT # mešano\n #</pre> <!-- pustite to vrstico takšno, kot je -->",
-       "upload-success-subj": "Datoteka je bila uspešno naložena",
-       "upload-success-msg": "Datoteka s strani [$2] se je uspešno naložila. Na razpolago je tukaj: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Težava pri nalaganju",
-       "upload-failure-msg": "Prišlo je do težave z vašo naloženo datoteko iz [$2]:\n\n$1",
-       "upload-warning-subj": "Opozorilo pri nalaganju",
-       "upload-warning-msg": "Prišlo je do težave pri nalaganju datoteke iz [$2]. Lahko se vrnete na [[Special:Upload/stash/$1|obrazec za nalaganje]], da odpravite težavo.",
        "upload-proto-error": "Nepravilni protokol",
        "upload-proto-error-text": "Oddaljeno nalaganje zahteva, da se URL začenja s <code>http://</code> ali <code>ftp://</code>.",
        "upload-file-error": "Notranja napaka",
        "upload-too-many-redirects": "URL vsebuje preveč preusmeritev",
        "upload-http-error": "Prišlo je do napake HTTP: $1",
        "upload-copy-upload-invalid-domain": "Nalaganje kopij s te domene ni možno.",
+       "upload-foreign-cant-upload": "Wiki ni konfiguriran za nalaganje datotek z zahtevanega tujega skladišča datotek.",
        "upload-dialog-title": "Naloži datoteko",
        "upload-dialog-button-cancel": "Prekliči",
        "upload-dialog-button-done": "Končano",
        "wlheader-showupdated": "Strani, spremenjene od vašega zadnjega ogleda, so prikazane '''krepko'''.",
        "wlnote": "{{PLURAL:$1|Navedena je zadnja|Navedeni sta zadnji|Navedene so zadnje|Navedenih je zadnjih}} <strong>$1</strong> {{PLURAL:$1|sprememba|spremembi|spremembe|sprememb}} v {{PLURAL:$2|zadnji <strong>$2</strong> uri|zadnjih <strong>$2</strong> urah}}, od $3, $4.",
        "wlshowlast": "Prikaži zadnjih $1 ur; $2 dni",
-       "watchlistall2": "vse",
        "watchlist-hide": "Skrij",
        "watchlist-submit": "Prikaži",
        "wlshowtime": "Časovno obdobje za prikaz:",
        "lockedbyandtime": "($1 dne $2 ob $3)",
        "move-page": "Preimenuj $1",
        "move-page-legend": "Prestavitev strani",
-       "movepagetext": "Z naslednjim obrazcem lahko stran preimenujete in hkrati prestavite tudi vso njeno zgodovino.\nDosedanja stran se bo spremenila v preusmeritev na prihodnje mesto.\nSamodejno lahko posodobite preusmeritve, ki kažejo na dosedanji naslov.\nČe se za to ne odločite, ne pozabite preveriti vseh [[Special:DoubleRedirects|dvojnih]] ali [[Special:BrokenRedirects|pretrganih preusmeritev]].\nOdgovorni ste, da bodo povezave še naprej kazale na prava mesta.\n\nKjer stran z izbranim novim imenom že obstaja, dejanje '''ne''' bo izvedeno, razen če je sedanja stran preusmeritev in brez zgodovine urejanj.\nTo pomeni, da lahko, če se zmotite, strani vrnete prvotno ime, ne morete pa prepisati že obstoječe strani.\n\n'''Opozorilo!'''\nPrestavitev strani je lahko za priljubljeno stran velika in nepričakovana sprememba, zato pred izbiro ukaza dobro premislite.",
-       "movepagetext-noredirectfixer": "Z uporabo spodnjega obrazca lahko preimenujete stran tako, da prestavite vso njeno zgodovino na novo ime.\nStar naslov bo postal preusmeritvena stran na nov naslov.\nNe pozabite preveriti [[Special:DoubleRedirects|dvojnih]] ali [[Special:BrokenRedirects|pretrganih preusmeritev]].\nVi ste odgovorni, da vse povezave še naprej kažejo tja, kamor naj bi.\n\nUpoštevajte, da stran '''ne''' bo prestavljena, če že obstaja stran z novim naslovom, razen če je prazna ali preusmeritev brez pretekle zgodovine urejanj.\nTo pomeni, da lahko stran preimenujete nazaj, če ste naredili napako, vendar ne morete prepisati obstoječe strani.\n\n'''Opozorilo!'''\nTo je lahko velika in nepričakovana sprememba za priljubljeno stran;\nprosimo, pred nadaljevanjem se prepričajte, da razumete posledice tega dejanja.",
+       "movepagetext": "Z naslednjim obrazcem lahko stran preimenujete in hkrati prestavite tudi vso njeno zgodovino.\nDosedanja stran se bo spremenila v preusmeritev na prihodnje mesto.\nSamodejno lahko posodobite preusmeritve, ki kažejo na dosedanji naslov.\nČe se za to ne odločite, ne pozabite preveriti vseh [[Special:DoubleRedirects|dvojnih]] ali [[Special:BrokenRedirects|pretrganih preusmeritev]].\nOdgovorni ste, da bodo povezave še naprej kazale na prava mesta.\n\nKjer stran z izbranim novim imenom že obstaja, dejanje <strong>ne</strong> bo izvedeno, razen če je sedanja stran preusmeritev in brez zgodovine urejanj.\nTo pomeni, da lahko, če se zmotite, strani vrnete prvotno ime, ne morete pa prepisati že obstoječe strani.\n\n<strong>Opomba:</strong>\nPrestavitev strani je lahko za priljubljeno stran velika in nepričakovana sprememba, zato pred izbiro ukaza dobro premislite.",
+       "movepagetext-noredirectfixer": "Z uporabo spodnjega obrazca lahko preimenujete stran tako, da prestavite vso njeno zgodovino na novo ime.\nStar naslov bo postal preusmeritvena stran na nov naslov.\nNe pozabite preveriti [[Special:DoubleRedirects|dvojnih]] ali [[Special:BrokenRedirects|pretrganih preusmeritev]].\nVi ste odgovorni, da vse povezave še naprej kažejo tja, kamor naj bi.\n\nUpoštevajte, da stran <strong>ne</strong> bo prestavljena, če že obstaja stran z novim naslovom, razen če je preusmeritev brez pretekle zgodovine urejanj.\nTo pomeni, da lahko stran preimenujete nazaj, če ste naredili napako, vendar ne morete prepisati obstoječe strani.\n\n<strong>Opomba:</strong>\nTo je lahko velika in nepričakovana sprememba za priljubljeno stran;\nprosimo, pred nadaljevanjem se prepričajte, da razumete posledice tega dejanja.",
        "movepagetalktext": "Če označite to polje, bomo pripadajočo pogovorno stran samodejno prestavili na nov naslov, razen kadar tam že obstaja neprazna pogovorna stran.\n\nČe je tako, boste morali pogovorno stran, če želite, prestaviti ali združiti ročno.",
        "moveuserpage-warning": "'''Opozorilo:''' Premikate uporabniško stran. To pomeni, da bo premaknjena samo stran in uporabnik ''ne'' bo preimenovan.",
        "movecategorypage-warning": "<strong>Opozorilo:</strong> Prestavili boste stran kategorije. Pomnite, da boste prestavili samo stran; vse strani v stari kategoriji <em>ne</em> bomo prekategorizirali v novo kategorijo.",
        "movenosubpage": "Ta stran nima podstrani.",
        "movereason": "Razlog:",
        "revertmove": "vrni",
-       "delete_and_move_text": "==Treba bi bilo brisati==\n\nCiljna stran »[[:$1]]« že obstaja. Ali jo želite, da bi pripravili prostor za prestavitev, izbrisati?",
+       "delete_and_move_text": "Ciljna stran »[[:$1]]« že obstaja.\nAli jo želite izbrisati, da bi pripravite prostor za prestavitev?",
        "delete_and_move_confirm": "Da, izbriši stran",
        "delete_and_move_reason": "Izbrisano z namenom pripraviti prostor za »[[$1]]«",
        "selfmove": "Izvirni in ciljni naslov sta enaka;\nstrani ni mogoče prestaviti samo vaše.",
        "move-leave-redirect": "Na prejšnji strani ustvari preusmeritev",
        "protectedpagemovewarning": "'''Opozorilo:''' Stran je bila zaklenjena in jo lahko prestavljajo samo uporabniki z administratorskimi pravicami.\nZa sklicevanje je naveden zadnji vnos v dnevnik:",
        "semiprotectedpagemovewarning": "'''Opomba:''' Stran je bila zaklenjena in jo lahko prestavljajo samo registrirani uporabniki.\nZa sklicevanje je naveden zadnji vnos v dnevniku:",
-       "move-over-sharedrepo": "== Datoteka obstaja ==\n[[:$1]] obstaja v deljeni shrambi. Premik datoteke na ta naslov bo prepisalo deljeno datoteko.",
+       "move-over-sharedrepo": "[[:$1]] obstaja v deljeni shrambi. Premik datoteke na ta naslov bo prepisalo deljeno datoteko.",
        "file-exists-sharedrepo": "Izbrano ime datoteke je že v uporabi v deljeni shrambi.\nProsimo, izberite drugo ime.",
        "export": "Izvoz strani",
        "exporttext": "Besedilo in urejevalno zgodovino ene ali več strani lahko izvozite v obliki XML.\nTo je mogoče uvoziti v drug wiki z uporabo MediaWiki preko [[Special:Import|strani za uvoz]].\n\nČe želite izvoziti strani, v spodnje polje vpišite naslove (enega v vsako vrstico) in označite, ali želite vse prejšnje različice z vrsticami o zgodovini strani ali le trenutno različico s podatki o trenutnem urejanju.\n\nČe gre za slednje, lahko uporabite tudi povezavo, npr. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] za\nstran »[[{{MediaWiki:Mainpage}}]]«.",
index 85ae24f..229fa0a 100644 (file)
        "userrights": "Управљање корисничким правима",
        "userrights-lookup-user": "Управљање корисничким групама",
        "userrights-user-editname": "Корисничко име:",
-       "editusergroup": "Ð\9fÑ\80еÑ\82Ñ\80ажи",
+       "editusergroup": "УÑ\80еди {{GENDER:$1|коÑ\80иÑ\81ниÑ\87ке}} Ð³Ñ\80Ñ\83пе",
        "editinguser": "Мењате корисничка права {{GENDER:$1|корисника|кориснице}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Промена корисничких група",
-       "saveusergroups": "Сачувај корисничке групе",
+       "saveusergroups": "Сачувај {{GENDER:$1|корисничке}} групе",
        "userrights-groupsmember": "Члан:",
        "userrights-groupsmember-auto": "Подразумевано члан и:",
        "userrights-groups-help": "Можете променити групе којима овај корисник припада.\n* Означен квадратић означава да се корисник налази у тој групи.\n* Неозначен квадратић означава да се корисник не налази у тој групи.\n* Звездица означава да не можете уклонити групу ако је додате и обратно.",
        "filewasdeleted": "Датотека с овим називом је раније послата, али је обрисана.\nПроверите $1 пре него што наставите с поновним слањем.",
        "filename-bad-prefix": "Назив датотеке коју шаљете почиње са <strong>„$1“</strong>, а њега обично додељују дигитални фотоапарати.\nИзаберите назив датотеке који описује њен садржај.",
        "filename-prefix-blacklist": " #<!-- оставите овај ред онаквим какав јесте --> <pre>\n# Синтакса је следећа:\n#   * Све од тарабе па до краја реда је коментар\n#   * Сваки ред означава префикс типичних назива датотека које додељивају дигитални апарати\nCIMG # Касио\nDSC_ # Никон\nDSCF # Фуџи\nDSCN # Никон\nDUW # неки мобилни телефони\nIMG # опште\nJD # Џеноптик\nMGP # Пентакс\nPICT # разно\n #</pre> <!-- оставите овај ред онаквим какав јесте -->",
-       "upload-success-subj": "Успешно отпремање",
-       "upload-success-msg": "Датотека из [$2] је послата. Доступна је овде: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Грешка при отпремању",
-       "upload-failure-msg": "Дошло је до проблема при слању из [$2]:\n\n$1",
-       "upload-warning-subj": "Упозорење при отпремању",
-       "upload-warning-msg": "Дошло је до грешке при слању из [$2]. Вратите се на [[Special:Upload/stash/$1|страницу за слање датотека]] да бисте решили проблем.",
        "upload-proto-error": "Неисправан протокол",
        "upload-proto-error-text": "Слање са спољне локације захтева адресу која почиње са <code>http://</code> или <code>ftp://</code>.",
        "upload-file-error": "Унутрашња грешка",
        "log-title-wildcard": "Тражи наслове који почињу с овим текстом",
        "showhideselectedlogentries": "Прикажи/сакриј изабране догађаје",
        "log-edit-tags": "Уреди ознаке изабраних уноса у дневницима",
+       "checkbox-select": "Изабери: $1",
+       "checkbox-all": "све",
+       "checkbox-none": "ништа",
+       "checkbox-invert": "обрни",
        "allpages": "Све странице",
        "nextpage": "Следећа страница ($1)",
        "prevpage": "Претходна страница ($1)",
        "wlheader-showupdated": "Странице које су измењене откад сте их последњи пут посетили су '''подебљане'''.",
        "wlnote": "Испод {{PLURAL:$1|је последња измена|су последње <strong>$1</strong> измене|је последњих <strong>$1</strong> измена}} у {{PLURAL:$2|претходном сату|претходна <strong>$2</strong> сата|претходних <strong>$2</strong> сати}}, закључно са $3, $4.",
        "wlshowlast": "Прикажи последњих $1 сати, $2 дана",
-       "watchlistall2": "све",
        "watchlist-hide": "Сакриј",
        "watchlist-submit": "Прикажи",
        "wlshowtime": "Период за приказ:",
        "lockedbyandtime": "(од $1 дана $2 у $3)",
        "move-page": "Премештање „$1“",
        "move-page-legend": "Премештање странице",
-       "movepagetext": "Доњи образац ће преименовати страницу, премештајући целу историју на ново име.\nСтари наслов постаће преусмерење на нови наслов.\nМожете аутоматски изменити преусмерење до изворног наслова.\nПогледајте [[Special:DoubleRedirects|двострука]] или [[Special:BrokenRedirects|покварена]] преусмерења.\nНа вама је одговорност да везе и даље иду тамо где би требало да иду.\n\nСтраница '''неће''' бити премештена ако већ постоји страница с тим именом, осим ако је она празна, садржи преусмерење или нема историју измена.\nТо значи да можете вратити страницу на претходно место ако погрешите, али не можете заменити постојећу страницу.\n\n'''Пажња!'''\nОво може представљати драстичну и неочекивану измену за популарну страницу;\nдобро размислите о последицама пре него што наставите.",
-       "movepagetext-noredirectfixer": "Доњи образац ће преименовати страницу, премештајући целу историју на ново име.\nСтари наслов постаће преусмерење на нови наслов.\nПогледајте [[Special:DoubleRedirects|двострука]] или [[Special:BrokenRedirects|покварена]] преусмерења.\nНа вама је одговорност да везе и даље иду тамо где би требало да иду.\n\nСтраница '''неће''' бити премештена ако већ постоји страница с тим именом, осим ако је она празна, садржи преусмерење или нема историју измена.\nТо значи да можете вратити страницу на претходно место ако погрешите, али не можете заменити постојећу страницу.\n\n'''Пажња!'''\nОво може представљати драстичну и неочекивану измену за популарну страницу;\nдобро размислите о последицама пре него што наставите.",
+       "movepagetext": "Доњи образац ће преименовати страницу, премештајући целу историју на ново име.\nСтари наслов постаће преусмерење на нови наслов.\nМожете аутоматски изменити преусмерење до изворног наслова.\nПогледајте [[Special:DoubleRedirects|двострука]] или [[Special:BrokenRedirects|покварена]] преусмерења.\nНа вама је одговорност да везе и даље иду тамо где би требало да иду.\n\nСтраница <strong>неће</strong> бити премештена ако већ постоји страница с тим именом, осим ако је она празна, садржи преусмерење или нема историју измена.\nТо значи да можете вратити страницу на претходно место ако погрешите, али не можете заменити постојећу страницу.\n\n<strong>Пажња!</strong>\nОво може представљати драстичну и неочекивану измену за популарну страницу;\nдобро размислите о последицама пре него што наставите.",
+       "movepagetext-noredirectfixer": "Доњи образац ће преименовати страницу, премештајући целу историју на ново име.\nСтари наслов постаће преусмерење на нови наслов.\nПогледајте [[Special:DoubleRedirects|двострука]] или [[Special:BrokenRedirects|покварена]] преусмерења.\nНа вама је одговорност да везе и даље иду тамо где би требало да иду.\n\nСтраница <strong>неће</strong> бити премештена ако већ постоји страница с тим именом, осим ако је она празна, садржи преусмерење или нема историју измена.\nТо значи да можете вратити страницу на претходно место ако погрешите, али не можете заменити постојећу страницу.\n\n<strong>Пажња!</strong>\nОво може представљати драстичну и неочекивану измену за популарну страницу;\nдобро размислите о последицама пре него што наставите.",
        "movepagetalktext": "Ако сте означили овај квадратић, одговарајућа страница за разговор биће аутоматски премештена на нови наслов, осим ако већ постоји страница за разговор са истим насловом.\n\nУ том случају, мораћете ручно да је преместите или спојите, ако има потребе за тим.",
        "moveuserpage-warning": "'''Упозорење:''' на путу сте да преместите корисничку страницу. Имајте у виду да ће само страница бити премештена, а сам корисник ''неће'' бити преименован.",
        "movecategorypage-warning": "<strong>Упозорење:</strong> премештате страницу категорије. Имајте на уму да ће само страница бити премештена и да све странице у старој категорији <em>неће</em> бити рекатегорисане у нову категорију.",
        "movenosubpage": "Ова страница нема подстрана.",
        "movereason": "Разлог:",
        "revertmove": "врати",
-       "delete_and_move_text": "== Потребно брисање ==\n\nОдредишна страница „[[:$1]]“ већ постоји. \nЖелите ли да је обришете да бисте ослободили место за премештање?",
+       "delete_and_move_text": "Одредишна страница „[[:$1]]“ већ постоји. \nЖелите ли да је обришете да бисте ослободили место за премештање?",
        "delete_and_move_confirm": "Да, обриши страницу",
        "delete_and_move_reason": "Обрисано да се ослободи место за премештање из „[[$1]]“",
        "selfmove": "Изворни и одредишни наслови су истоветни;\nне могу да преместим страницу преко саме себе.",
        "scarytranscludefailed-httpstatus": "[Не могу да преузмем шаблон $1: HTTP $2]",
        "scarytranscludetoolong": "[URL адреса је предугачка]",
        "deletedwhileediting": "<strong>Упозорење</strong>: ова страница је обрисана након што сте почели с уређивањем!",
-       "confirmrecreate": "Корисник [[User:$1|$1]] ([[User talk:$1|разговор]]) је обрисао ову страницу након што сте почели да је уређујете из следећег разлога:\n: <em>$2</em>\nПотврдите да стварно желите да направите страницу.",
-       "confirmrecreate-noreason": "Корисник [[User:$1|$1]] ([[User talk:$1|разговор]]) је обрисао ову страницу након што сте почели да га уређујете. Потврдите да стварно желите да поново направите ову страницу.",
+       "confirmrecreate": "{{GENDER:$1|Корисник|Корисница}} [[User:$1|$1]] ([[User talk:$1|разговор]]) је {{GENDER:$1|обрисао|обрисала}} ову страницу након што сте почели да је уређујете из следећег разлога:\n: <em>$2</em>\nПотврдите да стварно желите да направите страницу.",
+       "confirmrecreate-noreason": "{{GENDER:$1|Корисник|Корисница}} [[User:$1|$1]] ([[User talk:$1|разговор]]) је {{GENDER:$1|обрисао|обрисала}} ову страницу након што сте почели да је уређујете. Потврдите да стварно желите да поново направите ову страницу.",
        "recreate": "Поново направи",
        "unit-pixel": "px",
        "confirm_purge_button": "У реду",
index 7e42258..d65ea82 100644 (file)
        "userrights": "Upravljanje korisničkim pravima",
        "userrights-lookup-user": "Upravljanje korisničkim grupama",
        "userrights-user-editname": "Korisničko ime:",
-       "editusergroup": "Pretraži",
+       "editusergroup": "Uredi {{GENDER:$1|korisničke}} grupe",
        "editinguser": "Menjate korisnička prava {{GENDER:$1|korisnika|korisnice|korisnika}} '''[[User:$1|$1]]''' $2",
        "userrights-editusergroup": "Promena korisničkih grupa",
-       "saveusergroups": "Sačuvaj korisničke grupe",
+       "saveusergroups": "Sačuvaj {{GENDER:$1|korisničke}} grupe",
        "userrights-groupsmember": "Član:",
        "userrights-groupsmember-auto": "Podrazumevano član i:",
        "userrights-groups-help": "Možete promeniti grupe kojima ovaj korisnik pripada.\n* Označen kvadratić označava da se korisnik nalazi u toj grupi.\n* Neoznačen kvadratić označava da se korisnik ne nalazi u toj grupi.\n* Zvezdica označava da ne možete ukloniti grupu ako je dodate i obratno.",
        "filewasdeleted": "Datoteka s ovim nazivom je ranije poslata, ali je obrisana.\nProverite $1 pre nego što nastavite s ponovnim slanjem.",
        "filename-bad-prefix": "Naziv datoteke koju šaljete počinje sa <strong>„$1“</strong>, a njega obično dodeljuju digitalni fotoaparati.\nIzaberite naziv datoteke koji opisuje njen sadržaj.",
        "filename-prefix-blacklist": " #<!-- ostavite ovaj red onakvim kakav jeste --> <pre>\n# Sintaksa je sledeća:\n#   * Sve od tarabe pa do kraja reda je komentar\n#   * Svaki red označava prefiks tipičnih naziva datoteka koje dodeljivaju digitalni aparati\nCIMG # Kasio\nDSC_ # Nikon\nDSCF # Fudži\nDSCN # Nikon\nDUW # neki mobilni telefoni\nIMG # opšte\nJD # Dženoptik\nMGP # Pentaks\nPICT # razno\n #</pre> <!-- ostavite ovaj red onakvim kakav jeste -->",
-       "upload-success-subj": "Uspešno otpremanje",
-       "upload-success-msg": "Datoteka iz [$2] je poslata. Dostupna je ovde: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Greška pri otpremanju",
-       "upload-failure-msg": "Došlo je do problema pri slanju iz [$2]:\n\n$1",
-       "upload-warning-subj": "Upozorenje pri otpremanju",
-       "upload-warning-msg": "Došlo je do greške pri slanju iz [$2]. Vratite se na [[Special:Upload/stash/$1|stranicu za slanje datoteka]] da biste rešili problem.",
        "upload-proto-error": "Neispravan protokol",
        "upload-proto-error-text": "Slanje sa spoljne lokacije zahteva adresu koja počinje sa <code>http://</code> ili <code>ftp://</code>.",
        "upload-file-error": "Unutrašnja greška",
        "wlheader-showupdated": "Stranice koje su izmenjene otkad ste ih poslednji put posetili su '''podebljane'''.",
        "wlnote": "Ispod {{PLURAL:$1|je poslednja izmena|su poslednje <strong>$1</strong> izmene|je poslednjih <strong>$1</strong> izmena}} u {{PLURAL:$2|prethodnom satu|prethodna <strong>$2</strong> sata|prethodnih <strong>$2</strong> sati}}, zaključno sa $3, $4.",
        "wlshowlast": "Prikaži poslednjih $1 sati, $2 dana",
-       "watchlistall2": "sve",
        "wlshowtime": "Period za prikaz:",
        "watchlist-options": "Postavke spiska nadgledanja",
        "watching": "Nadgledanje…",
        "lockedbyandtime": "(od $1 dana $2 u $3)",
        "move-page": "Premeštanje „$1“",
        "move-page-legend": "Premeštanje stranice",
-       "movepagetext": "Donji obrazac će preimenovati stranicu, premeštajući celu istoriju na novo ime.\nStari naslov postaće preusmerenje na novi naslov.\nMožete automatski izmeniti preusmerenje do izvornog naslova.\nPogledajte [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|pokvarena]] preusmerenja.\nNa vama je odgovornost da veze i dalje idu tamo gde bi trebalo da idu.\n\nStranica '''neće''' biti premeštena ako već postoji stranica s tim imenom, osim ako je ona prazna, sadrži preusmerenje ili nema istoriju izmena.\nTo znači da možete vratiti stranicu na prethodno mesto ako pogrešite, ali ne možete zameniti postojeću stranicu.\n\n'''Pažnja!'''\nOvo može predstavljati drastičnu i neočekivanu izmenu za popularnu stranicu;\ndobro razmislite o posledicama pre nego što nastavite.",
-       "movepagetext-noredirectfixer": "Donji obrazac će preimenovati stranicu, premeštajući celu istoriju na novo ime.\nStari naslov postaće preusmerenje na novi naslov.\nPogledajte [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|pokvarena]] preusmerenja.\nNa vama je odgovornost da veze i dalje idu tamo gde bi trebalo da idu.\n\nStranica '''neće''' biti premeštena ako već postoji stranica s tim imenom, osim ako je ona prazna, sadrži preusmerenje ili nema istoriju izmena.\nTo znači da možete vratiti stranicu na prethodno mesto ako pogrešite, ali ne možete zameniti postojeću stranicu.\n\n'''Pažnja!'''\nOvo može predstavljati drastičnu i neočekivanu izmenu za popularnu stranicu;\ndobro razmislite o posledicama pre nego što nastavite.",
+       "movepagetext": "Donji obrazac će preimenovati stranicu, premeštajući celu istoriju na novo ime.\nStari naslov postaće preusmerenje na novi naslov.\nMožete automatski izmeniti preusmerenje do izvornog naslova.\nPogledajte [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|pokvarena]] preusmerenja.\nNa vama je odgovornost da veze i dalje idu tamo gde bi trebalo da idu.\n\nStranica <strong>neće</strong> biti premeštena ako već postoji stranica s tim imenom, osim ako je ona prazna, sadrži preusmerenje ili nema istoriju izmena.\nTo znači da možete vratiti stranicu na prethodno mesto ako pogrešite, ali ne možete zameniti postojeću stranicu.\n\n<strong>Pažnja!</strong>\nOvo može predstavljati drastičnu i neočekivanu izmenu za popularnu stranicu;\ndobro razmislite o posledicama pre nego što nastavite.",
+       "movepagetext-noredirectfixer": "Donji obrazac će preimenovati stranicu, premeštajući celu istoriju na novo ime.\nStari naslov postaće preusmerenje na novi naslov.\nPogledajte [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|pokvarena]] preusmerenja.\nNa vama je odgovornost da veze i dalje idu tamo gde bi trebalo da idu.\n\nStranica <strong>neće</strong> biti premeštena ako već postoji stranica s tim imenom, osim ako je ona prazna, sadrži preusmerenje ili nema istoriju izmena.\nTo znači da možete vratiti stranicu na prethodno mesto ako pogrešite, ali ne možete zameniti postojeću stranicu.\n\n<strong>Pažnja!</strong>\nOvo može predstavljati drastičnu i neočekivanu izmenu za popularnu stranicu;\ndobro razmislite o posledicama pre nego što nastavite.",
        "movepagetalktext": "Ako ste označili ovaj kvadratić, odgovarajuća stranica za razgovor biće automatski premeštena na novi naslov, osim ako već postoji stranica za razgovor sa istim naslovom.\n\nU tom slučaju, moraćete ručno da je premestite ili spojite, ako ima potrebe za tim.",
        "moveuserpage-warning": "'''Upozorenje:''' na putu ste da premestite korisničku stranicu. Imajte u vidu da će samo stranica biti premeštena, a sam korisnik ''neće'' biti preimenovan.",
        "movecategorypage-warning": "<strong>Upozorenje:</strong> premeštate stranicu kategorije. Imajte na umu da će samo stranica biti premeštena i da sve stranice u staroj kategoriji <em>neće</em> biti rekategorisane u novu kategoriju.",
        "movenosubpage": "Ova stranica nema podstrana.",
        "movereason": "Razlog:",
        "revertmove": "vrati",
-       "delete_and_move_text": "== Potrebno brisanje ==\n\nOdredišna stranica „[[:$1]]“ već postoji. \nŽelite li da je obrišete da biste oslobodili mesto za premeštanje?",
+       "delete_and_move_text": "Odredišna stranica „[[:$1]]“ već postoji. \nŽelite li da je obrišete da biste oslobodili mesto za premeštanje?",
        "delete_and_move_confirm": "Da, obriši stranicu",
        "delete_and_move_reason": "Obrisano da se oslobodi mesto za premeštanje iz „[[$1]]“",
        "selfmove": "Izvorni i odredišni naslovi su istovetni;\nne mogu da premestim stranicu preko same sebe.",
        "scarytranscludefailed-httpstatus": "[Ne mogu da preuzmem šablon $1: HTTP $2]",
        "scarytranscludetoolong": "[URL adresa je predugačka]",
        "deletedwhileediting": "<strong>Upozorenje</strong>: ova stranica je obrisana nakon što ste počeli s uređivanjem!",
-       "confirmrecreate": "Korisnik [[User:$1|$1]] ([[User talk:$1|razgovor]]) je obrisao ovu stranicu nakon što ste počeli da je uređujete iz sledećeg razloga:\n: <em>$2</em>\nPotvrdite da stvarno želite da napravite stranicu.",
-       "confirmrecreate-noreason": "Korisnik [[User:$1|$1]] ([[User talk:$1|razgovor]]) je obrisao ovu stranicu nakon što ste počeli da ga uređujete. Potvrdite da stvarno želite da ponovo napravite ovu stranicu.",
+       "confirmrecreate": "{{GENDER:$1|Korisnik|Korisnica}} [[User:$1|$1]] ([[User talk:$1|razgovor]]) je {{GENDER:$1|obrisao|obrisala}} ovu stranicu nakon što ste počeli da je uređujete iz sledećeg razloga:\n: <em>$2</em>\nPotvrdite da stvarno želite da napravite stranicu.",
+       "confirmrecreate-noreason": "{{GENDER:$1|Korisnik|Korisnica}} [[User:$1|$1]] ([[User talk:$1|razgovor]]) je {{GENDER:$1|obrisao|obrisala}} ovu stranicu nakon što ste počeli da je uređujete. Potvrdite da stvarno želite da ponovo napravite ovu stranicu.",
        "recreate": "Ponovo napravi",
        "unit-pixel": "px",
        "confirm_purge_button": "U redu",
index b8d7ae0..e97e902 100644 (file)
        "databaseerror-query": "Fråga: $1",
        "databaseerror-function": "Funktion: $1",
        "databaseerror-error": "Fel: $1",
+       "transaction-duration-limit-exceeded": "För att undvika att skapa höga replikeringsförseningar avbröts denna transaktion eftersom skrivvaraktigheten ($1) översteg gränsen på $2 {{PLURAL:$2|sekund|sekunder}}.\nProva istället att göra flera mindre operationer om du vill ändra flera objekt på en gång.",
        "laggedslavemode": "<strong>Varning:</strong> Sidan kan sakna de senaste uppdateringarna.",
        "readonly": "Databasen är låst",
        "enterlockreason": "Ange varför databasen låsts och inkludera en uppskattning om när låsningen kommer att hävas",
        "changepassword-success": "Ditt lösenord har ändrats!",
        "changepassword-throttled": "Du har gjort för många inloggningsförsök nyligen.\nVänta $1 innan du försöker igen.",
        "botpasswords": "Botlösenord",
+       "botpasswords-summary": "<em>Botlösenord</em> ger åtkomst till ett användarkonto via API utan att använda kontots primära inloggningsuppgifter. Tillgängliga användarrättigheter när du är loggar in med ett botlösenord kan vara begränsade.\n\nOm du inte vet varför du kanske vill göra detta bör du förmodligen inte göra det. Ingen behöver någonsin be dig att generera ett av dessa och ge det till dem.",
        "botpasswords-disabled": "Botlösenord är inaktiverade.",
+       "botpasswords-no-central-id": "För att använda botlösenord måste du vara inloggad på ett centraliserat konto.",
        "botpasswords-existing": "Befintliga botlösenord",
        "botpasswords-createnew": "Skapa ett nytt botlösenord",
        "botpasswords-editexisting": "Redigera ett befintligt botlösenord",
        "botpasswords-label-cancel": "Avbryt",
        "botpasswords-label-delete": "Radera",
        "botpasswords-label-resetpassword": "Återställ lösenordet",
+       "botpasswords-label-grants": "Tillgängliga beviljanden:",
+       "botpasswords-help-grants": "Varje beviljande ger åtkomst till listade användarrättigheter som ett användarkonto redan har. Se [[Special:ListGrants|tabellen över beviljanden]] för mer information.",
+       "botpasswords-label-restrictions": "Användningsbegränsningar:",
+       "botpasswords-label-grants-column": "Beviljas",
        "botpasswords-bad-appid": "Botnamnet \"$1\" är inte giltigt.",
        "botpasswords-insert-failed": "Kunde inte lägga till botnamnet \"$1\". Har det redan lagts till?",
        "botpasswords-update-failed": "Kunde inte uppdatera botnamnet \"$1\". Har det raderats?",
        "botpasswords-deleted-title": "Botlösenord raderades",
        "botpasswords-deleted-body": "Botlösenordet \"$1\" raderades.",
        "botpasswords-newpassword": "Det nya lösenordet att logga in för <strong>$1</strong> är <strong>$2</strong>. <em>Spara detta som framtida referens.</em>",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider är inte tillgänglig.",
+       "botpasswords-restriction-failed": "Begränsningar av botlösenord tillåter inte denna inloggning.",
+       "botpasswords-invalid-name": "Det angivna användarnamnet innehåller inte separatorn för botlösenord (\"$1\").",
        "botpasswords-not-exist": "Användaren \"$1\" har inte ett botlösenord som är \"$2\".",
        "resetpass_forbidden": "Lösenord kan inte ändras",
        "resetpass-no-info": "Du måste vara inloggad för att komma åt den här sidan direkt.",
        "grant-group-file-interaction": "Interagera med media",
        "grant-group-watchlist-interaction": "Interagera med din bevakningslista",
        "grant-group-email": "Skicka e-post",
-       "grant-group-high-volume": "Utför hög volymaktivitet",
+       "grant-group-high-volume": "Utför aktivitet av hög volym",
        "grant-group-customization": "Anpassning och inställningar",
        "grant-group-administration": "Utför administrativa åtgärder",
-       "grant-group-other": "Diverseaktivitet",
+       "grant-group-other": "Diverse aktivitet",
        "grant-blockusers": "Blockera och avblockera användare",
        "grant-createaccount": "Skapa konton",
        "grant-createeditmovepage": "Skapa, redigera och flytta sidor",
        "grant-editmywatchlist": "Redigera din bevakningslista",
        "grant-editpage": "Redigera befintliga sidor",
        "grant-editprotected": "Redigera skyddade sidor",
-       "grant-highvolume": "Högvolymsredigering",
+       "grant-highvolume": "Hög volymsredigering",
        "grant-oversight": "Dölj användare och undertryck revideringar",
        "grant-patrol": "Patrullera ändringar på sidor",
        "grant-protect": "Skydda och ta bort skydd på sidor",
        "action-createpage": "skapa sidor",
        "action-createtalk": "skapa diskussionssidor",
        "action-createaccount": "skapa detta användarkonto",
+       "action-autocreateaccount": "skapa detta externa användarkonto automatiskt",
        "action-history": "visa historiken för denna sida",
        "action-minoredit": "markera denna redigering som mindre",
        "action-move": "flytta denna sida",
        "filename-thumb-name": "Detta ser ut som en titel på en miniatyrbild. Ladda inte upp miniatyrer tillbaka till samma wiki. Om så inte är fallet, ändra vänligen filnamnet så att det blir mer meningsfullt, och inte har prefixet miniatyr (eller thumbnail).",
        "filename-bad-prefix": "Namnet på filen du vill ladda upp börjar med '''\"$1\"'''. Filnamnet kommer förmodligen direkt från en digitalkamera och beskriver inte filens innehåll. Välj ett annat filnamn som bättre beskriver filen.",
        "filename-prefix-blacklist": " #<!-- ändra inte den här raden --> <pre>\n# Syntaxen är följande:\n#   * All text från ett #-tecken till radens slut är en kommentar\n#   * Icke-tomma rader anger typiska prefix för filnamn som används av olika digitalkameror\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # en del mobiltelefoner\nIMG # allmänt bildprefix\nJD # Jenoptik\nMGP # Pentax\nPICT # allmänt bildprefix\n #</pre> <!-- ändra inte den här raden -->",
-       "upload-success-subj": "Uppladdningen lyckades",
-       "upload-success-msg": "Din uppladdning från [$2] lyckades. Den finns tillgänglig här: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Uppladdningsproblem",
-       "upload-failure-msg": "Det uppstod ett problem med din uppladdning från [$2]:\n\n$1",
-       "upload-warning-subj": "Uppladdningsvarning",
-       "upload-warning-msg": "Det uppstod ett problem med din uppladdning från [$2]. Du kan återvända till [[Special:Upload/stash/$1|uppladdningsformuläret]] för att rätta till detta problem.",
        "upload-proto-error": "Felaktigt protokoll",
        "upload-proto-error-text": "Fjärruppladdning kräver URL:ar som börjar med <code>http://</code> eller <code>ftp://</code>.",
        "upload-file-error": "Internt fel",
        "upload-too-many-redirects": "URL-en innehöll för många omdirigeringar",
        "upload-http-error": "Ett HTTP-fel uppstod: $1",
        "upload-copy-upload-invalid-domain": "Uppladdning av kopior är inte tillgängligt från denna domän.",
+       "upload-foreign-cant-upload": "Denna wiki är inte konfigurerad för att ladda upp filer till den begärda främmande filförvar.",
        "upload-dialog-title": "Ladda upp fil",
        "upload-dialog-button-cancel": "Avbryt",
        "upload-dialog-button-done": "Klar",
        "log-title-wildcard": "Sök efter sidtitlar som börjar med texten",
        "showhideselectedlogentries": "Visa/Dölj markerade loggposter",
        "log-edit-tags": "Redigera taggar i valda loggposter",
+       "checkbox-select": "Välj: $1",
+       "checkbox-all": "Alla",
+       "checkbox-none": "Ingen",
+       "checkbox-invert": "Invertera",
        "allpages": "Alla sidor",
        "nextpage": "Nästa sida ($1)",
        "prevpage": "Föregående sida ($1)",
        "listgrouprights-namespaceprotection-header": "Namnrymdsbegränsningar",
        "listgrouprights-namespaceprotection-namespace": "Namnrymd",
        "listgrouprights-namespaceprotection-restrictedto": "Rättighet(er) som låter användare redigera",
-       "listgrants-summary": "Följande är en lista över OAuth-behörigheter, med deras associerade tillgång till användarrättigheter. Användare kan tillåta applikationer att använda deras konto, men med begränsad åtkomst baserat på de behörigheter användaren gav applikationen. En applikation som agerar på uppdrag av en användare kan i praktiken inte använda rättigheter som den användaren saknar.\nDet kan finnas [[{{MediaWiki:Listgrouprights-helppage}}|ytterligare information]] om individuella rättigheter.",
+       "listgrants": "Beviljanden",
+       "listgrants-summary": "Följande är en lista över behörigheter med deras associerade tillgång till användarrättigheter. Användare kan tillåta applikationer att använda deras konto, men med begränsad åtkomst baserat på de behörigheter användaren gav applikationen. En applikation som agerar på uppdrag av en användare kan i praktiken inte använda rättigheter som den användaren saknar.\nDet kan finnas [[{{MediaWiki:Listgrouprights-helppage}}|ytterligare information]] om individuella rättigheter.",
        "listgrants-grant": "Behörighet",
        "listgrants-rights": "Rättigheter",
        "trackingcategories": "Spårningskategorier",
        "wlheader-showupdated": "Sidor som har ändrats sedan ditt senaste besök visas i '''fetstil.'''",
        "wlnote": "Nedan finns {{PLURAL:$1|den senaste ändringen|de senaste <strong>$1</strong> ändringarna}} under {{PLURAL:$2|den senaste timmen|de senaste <strong>$2</strong> timmarna}} från den $3 kl. $4.",
        "wlshowlast": "Visa senaste $1 timmarna $2 dygnen",
-       "watchlistall2": "alla",
        "watchlist-hide": "Dölj",
        "watchlist-submit": "Visa",
        "wlshowtime": "Tidsperiod att visa:",
        "unblock": "Upphäv blockering av användare",
        "blockip": "Blockera {{GENDER:$1|användare}}",
        "blockip-legend": "Blockera användare",
-       "blockiptext": "Använd formuläret nedan för att blockera möjligheten att redigera sidor från en specifik IP-adress eller ett användarnamn.\nDetta bör endast göras för att förhindra vandalisering, och i överensstämmelse med gällande [[{{MediaWiki:Policy-url}}|policy]].\nAnge orsak nedan (exempelvis genom att nämna sidor som blivit vandaliserade).",
+       "blockiptext": "Använd formuläret nedan för att blockera möjligheten att redigera sidor från en specifik IP-adress eller ett användarnamn.\nDetta bör endast göras för att förhindra vandalisering, och i överensstämmelse med gällande [[{{MediaWiki:Policy-url}}|policy]].\nAnge orsak nedan (exempelvis genom att nämna sidor som blivit vandaliserade).\nDu kan blockera intervaller av IP-adresser med [https://sv.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-syntax; det största tillåtna intervallet är /$1 för IPv4 och /$2 för IPv6.",
        "ipaddressorusername": "IP-adress eller användarnamn:",
        "ipbexpiry": "Varaktighet:",
        "ipbreason": "Anledning:",
        "block-log-flags-hiddenname": "användarnamn dolt",
        "range_block_disabled": "Möjligheten för administratörer att blockera intervall av IP-adresser har stängts av.",
        "ipb_expiry_invalid": "Ogiltig varaktighetstid.",
+       "ipb_expiry_old": "Utgångstiden har redan passerat.",
        "ipb_expiry_temp": "För att dölja användarnamnet måste blockeringen vara permanent.",
        "ipb_hide_invalid": "Kan inte undanhålla detta konto; det har fler än {{PLURAL:$1|en redigering|$1 redigeringar}}.",
        "ipb_already_blocked": "\"$1\" är redan blockerad",
        "lockedbyandtime": "(av $1 den $2 kl. $3)",
        "move-page": "Flytta $1",
        "move-page-legend": "Flytta sida",
-       "movepagetext": "Med hjälp av formuläret härunder kan du byta namn på en sida, och flytta hela dess historik till ett nytt namn.\nDen gamla sidtiteln kommer att göras om till en omdirigering till den nya titeln.\nDu kan välja att automatiskt uppdatera omdirigeringar som leder till den gamla titeln.\nOm du väljer att inte göra det, kontrollera då att du inte skapar några [[Special:DoubleRedirects|dubbla]] eller [[Special:BrokenRedirects|trasiga omdirigeringar]].\nDu bör också se till att länkar fortsätter att peka dit de ska.\n\nNotera att sidan '''inte''' kan flyttas om det redan finns en sida under den nya sidtiteln, såvida inte den sidan är en omdirigering till den gamla titeln och saknar annan versionshistorik.\nDet innebär att du kan flytta tillbaks en sida om du råkar göra fel, och att du inte kan skriva över existerande sidor.\n\n'''VARNING!'''\nAtt flytta en populär sida kan vara en drastisk och oväntad ändring;\ndärför bör du vara säker på att du förstår konsekvenserna innan du fortsätter med flytten.",
-       "movepagetext-noredirectfixer": "Formuläret nedan kommer att byta namn på en sida, och flytta hela sin historik till det nya namnet.\nDen gamla titeln kommer att bli en omdirigeringssida till den nya titeln.\nGlöm inte att kontrollera [[Special:DoubleRedirects|dubbla]] eller [[Special:BrokenRedirects|brutna omdirigeringar]].\nDu är ansvarig för att se till att länkar fortsätter att peka där de förväntas gå.\n\nObservera att sidan '''inte''' kommer att flyttas om det finns redan en sida på den nya titeln, förutom om den är tom eller en omdirigering och saknar tidigare redigeringshistorik.\nDetta innebär att du kan byta tillbaka namnet på en sida om du av misstag bytt namn på den, och du kan inte skriva över en befintlig sida.\n\n'''Varning!'''\nDetta kan vara en drastisk och oväntad förändring för en populär sida;\nse till att du förstår konsekvenserna av detta innan du fortsätter.",
+       "movepagetext": "Med hjälp av formuläret härunder kan du byta namn på en sida, och flytta hela dess historik till ett nytt namn.\nDen gamla sidtiteln kommer att göras om till en omdirigering till den nya titeln.\nDu kan välja att automatiskt uppdatera omdirigeringar som leder till den gamla titeln.\nOm du väljer att inte göra det, kontrollera då att du inte skapar några [[Special:DoubleRedirects|dubbla]] eller [[Special:BrokenRedirects|trasiga omdirigeringar]].\nDu bör också se till att länkar fortsätter att peka dit de ska.\n\nNotera att sidan <strong>inte</strong> kan flyttas om det redan finns en sida under den nya sidtiteln, såvida inte den sidan är en omdirigering till den gamla titeln och saknar annan versionshistorik.\nDet innebär att du kan flytta tillbaks en sida om du råkar göra fel, och att du inte kan skriva över existerande sidor.\n\n<strong>Observera:</strong>\nAtt flytta en populär sida kan vara en drastisk och oväntad ändring;\ndärför bör du vara säker på att du förstår konsekvenserna innan du fortsätter med flytten.",
+       "movepagetext-noredirectfixer": "Formuläret nedan kommer att byta namn på en sida, och flytta hela sin historik till det nya namnet.\nDen gamla titeln kommer att bli en omdirigeringssida till den nya titeln.\nGlöm inte att kontrollera [[Special:DoubleRedirects|dubbla]] eller [[Special:BrokenRedirects|brutna omdirigeringar]].\nDu är ansvarig för att se till att länkar fortsätter att peka där de förväntas gå.\n\nObservera att sidan <strong>inte</strong> kommer att flyttas om det finns redan en sida på den nya titeln, förutom om den är en omdirigering och saknar tidigare redigeringshistorik.\nDetta innebär att du kan byta tillbaka namnet på en sida om du av misstag bytt namn på den, och du kan inte skriva över en befintlig sida.\n\n<strong>Observera:</strong>\nDetta kan vara en drastisk och oväntad förändring för en populär sida;\nse till att du förstår konsekvenserna av detta innan du fortsätter.",
        "movepagetalktext": "Om du markerar denna ruta kommer den associerade diskussionssidan att automatiskt flyttas till en ny titel om inte en befintlig diskussionssida redan finns där.\n\nI detta fall måste du flytta eller sammanfoga sidan manuellt, om det önskas.",
        "moveuserpage-warning": "'''Varning:''' Du håller på att flytta en användarsida. Observera att endast sidan kommer att flyttas och att användaren ''inte'' kommer att byta namn.",
        "movecategorypage-warning": "<strong>Varning:</strong> Du är på väg att flytta en kategorisida. Observera att endast sidan kommer att flyttas och eventuella sidor i den gamla kategorin kommer <em>inte</em> att kategoriseras om till den nya kategorin.",
        "movenosubpage": "Denna sida har inga undersidor.",
        "movereason": "Anledning:",
        "revertmove": "återställ",
-       "delete_and_move_text": "==Radering krävs==\nDen titel du vill flytta sidan till, \"[[:$1]]\", finns redan. Vill du radera den för att möjliggöra flytt av denna sida dit?",
+       "delete_and_move_text": "Den titel du vill flytta sidan till, \"[[:$1]]\", finns redan. Vill du radera den för att möjliggöra flytt av denna sida dit?",
        "delete_and_move_confirm": "Ja, radera sidan",
        "delete_and_move_reason": "Raderad för att göra plats till flyttning av \"[[$1]]\"",
        "selfmove": "Ursprungstitel och destinationstitel är identiska. Sidan kan inte flyttas till sig själv.",
        "move-leave-redirect": "Lämna kvar en omdirigering",
        "protectedpagemovewarning": "'''Varning:''' Den här sidan har låsts så att endast användare med administratörsrättigheter kan flytta den.\nDen senaste loggposten tillhandahålls nedan som referens:",
        "semiprotectedpagemovewarning": "'''Observera:''' Denna sida har låsts så att endast registrerade användare kan flytta den.\nDen senaste loggposten tillhandahålls nedan som referens:",
-       "move-over-sharedrepo": "== Filen existerar ==\n[[:$1]] existerar på en delad källa. Om du flyttar en fil till detta namn kommer den delad filen bli överskriven.",
+       "move-over-sharedrepo": "[[:$1]] existerar på en delad källa. Om du flyttar en fil till detta namn kommer den delad filen bli överskriven.",
        "file-exists-sharedrepo": "Detta filnamn existerar redan på en delad källa.\nVar god välj ett annat namn.",
        "export": "Exportera sidor",
        "exporttext": "Du kan exportera text och versionshistorik för en eller flera sidor i XML-format.\nFilen kan sedan importeras till en annan MediaWiki-wiki med hjälp av sidan [[Special:Import|importera]].\n\nExportera sidor genom att skriva in sidtitlarna i rutan här nedan.\nSkriv en titel per rad och välj om du du vill exportera alla versioner av texten med sidhistorik, eller om du enbart vill exportera den nuvarande versionen med information om den senaste redigeringen.\n\nI det senare fallet kan du även använda en länk, exempel [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] för sidan \"[[{{MediaWiki:Mainpage}}]]\".",
        "version-libraries-license": "Licens",
        "version-libraries-description": "Beskrivning",
        "version-libraries-authors": "Författare",
-       "redirect": "Omdirigering efter filnamn, användar-ID, sida eller versions-ID",
+       "redirect": "Omdirigering efter filnamn, användar-ID, sida, versions-ID eller logg-ID",
        "redirect-legend": "Omdirigera till en fil eller sida",
-       "redirect-summary": "Den här specialsidan omdirigerar till en fil (efter filnamn), en sida (efter en versions eller sidas ID) eller en användarsida (efter användar-ID). Användning: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], eller [[{{#Special:Redirect}}/user/101]].",
+       "redirect-summary": "Den här specialsidan omdirigerar till en fil (efter filnamn), en sida (efter en versions eller sidas ID), en användarsida (efter användar-ID) eller en loggpost (efter logg-ID). Användning: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]] eller [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Kör",
        "redirect-lookup": "Slå upp:",
        "redirect-value": "Värde:",
        "redirect-page": "Sidans ID",
        "redirect-revision": "Sidversion",
        "redirect-file": "Filnamn",
+       "redirect-logid": "Logg-ID",
        "redirect-not-exists": "Värdet hittades inte",
        "fileduplicatesearch": "Sök efter dubblettfiler",
        "fileduplicatesearch-summary": "Sök efter dubblettfiler baserat på filernas hash-värden.",
        "expand_templates_preview": "Förhandsvisning",
        "expand_templates_preview_fail_html": "<em>Eftersom {{SITENAME}} har rå HTML aktiverat och det uppstod en förlust av sessionsdata har förhandsgranskningen dolts som en försiktighetsåtgärd för att skydda mot JavaScript-attacker.</em>\n\n<strong>Om detta är ett äkta försök att förhandsgranska sidan, vänligen försök igen.</strong>\nOm det fortfarande inte fungerar, försök att [[Special:UserLogout|logga ut]] och sedan logga in igen.",
        "expand_templates_preview_fail_html_anon": "<em>Eftersom {{SITENAME}} har rå HTML aktiverat och du inte är inloggad har förhandsgranskningen dolts som en försiktighetsåtgärd för att skydda mot JavaScript-attacker.</em>\n\n<strong>Om detta är ett äkta försök att förhandsgranska sidan, vänligen [[Special:UserLogin|logga in]] och försök igen.</strong>",
+       "expand_templates_input_missing": "Du måste åtminstone ange lite inmatningstext.",
        "pagelanguage": "Sidspråksväljare",
        "pagelang-name": "Sida",
        "pagelang-language": "Språk",
        "mw-widgets-titleinput-description-new-page": "sidan existerar inte ännu",
        "mw-widgets-titleinput-description-redirect": "omdirigerar till $1",
        "api-error-blacklisted": "Välj en annan beskrivande titel.",
+       "sessionprovider-generic": "$1-sessioner",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "cookiebaserade sessioner",
        "sessionprovider-nocookies": "Cookies kan vara inaktiverade. Se till att du har cookies aktiverat och försök igen.",
        "randomrootpage": "Slumprotsida"
index cbcbb49..3f92eb1 100644 (file)
        "watchthisupload": "เฝ้าดูไฟล์นี้",
        "filewasdeleted": "ไฟล์ชื่อนี้ถูกอัปโหลดก่อนหน้าและถูกลบไปแล้ว กรุณาตรวจสอบ $1 ก่อนอัปโหลดอีกครั้ง",
        "filename-bad-prefix": "ชื่อไฟล์ที่คุณกำลังอัปโหลดข้นต้นด้วย '''\"$1\"''' ซึ่งเป็นชื่อที่ไม่สื่อความหมายใด ๆ ที่ปกติกล้องถ่ายรูปดิจิทัลตั้งให้อัตโนมัติ \nกรุณาตั้งชื่อไฟล์ใหม่ให้สื่อความหมายกว่าเดิม",
-       "upload-success-subj": "อัปโหลดสำเร็จ",
-       "upload-success-msg": "การอัปโหลดของคุณจาก [$2] สำเร็จแล้ว และสามารถใช้ไฟล์ได้ที่นี่: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "ปัญหาการอัปโหลด",
-       "upload-failure-msg": "พบปัญหาการอัปโหลดของคุณจาก [$2]:\n\n$1",
-       "upload-warning-subj": "คำเตือนการอัปโหลด",
-       "upload-warning-msg": "พบปัญหาการอัปโหลดของคุณจาก [$2] คุณอาจกลับไปยัง[[Special:Upload/stash/$1|แบบอัปโหลด]]เพื่อแก้ไขปัญหานี้",
        "upload-proto-error": "โพรโทคอลไม่ถูกต้อง",
        "upload-proto-error-text": "การอัปโหลดโดยตรงจากเว็บต้องการยูอาร์แอลที่ขึ้นต้นด้วย <code>http://</code> หรือ <code>ftp://</code>",
        "upload-file-error": "มีข้อผิดพลาดภายใน",
index dabc16c..5b781b2 100644 (file)
        "virus-unknownscanner": "bilinmeyen antivürüs:",
        "logouttext": "'''Artık oturumunuzu kapattınız.'''\n\nTarayıcınızın önbelleğini temizleyinceye kadar bazı sayfalarda, oturumunuz açıkmış gibi gözükmeye devam edebilir.",
        "cannotlogoutnow-title": "Şu an oturum kapatılamıyor",
-       "cannotlogoutnow-text": "$1 kullanılırken oturum kapatmak mümkün degil.",
+       "cannotlogoutnow-text": "$1 kullanılırken oturumu kapatmak mümkün değil.",
        "welcomeuser": "Hoş geldin $1!",
        "welcomecreation-msg": "Hesabınız açıldı.\n[[Special:Preferences|{{SITENAME}} tercihlerinizi]] değiştirmeyi unutmayın.",
        "yourname": "Kullanıcı adı:",
        "changepassword-success": "Parolanız başarıyla değiştirildi!",
        "changepassword-throttled": "Çok fazla yeni oturum açma girişiminde bulundunuz.\nLütfen tekrar denemeden önce $1 bekleyin.",
        "botpasswords": "Bot şifreleri",
-       "botpasswords-disabled": "Bot şifreleri devre dısı.",
-       "botpasswords-no-central-id": "Bot şifresini kullanmak için, merkezi bir hesabla giriş yapmalisiniz.",
-       "botpasswords-existing": "Mevcut bot şifreleri.",
-       "botpasswords-createnew": "Yeni bir bot şifresi olustur",
-       "botpasswords-editexisting": "Mevcut bir bot şifresini duzenle",
+       "botpasswords-disabled": "Bot şifreleri devre dışı.",
+       "botpasswords-no-central-id": "Bot şifresini kullanmak için, merkezi bir hesap ile giriş yapmalısınız.",
+       "botpasswords-existing": "Mevcut bot şifreleri",
+       "botpasswords-createnew": "Yeni bir bot şifresi oluştur",
+       "botpasswords-editexisting": "Mevcut bir bot şifresini düzenle",
        "botpasswords-label-appid": "Bot ismi:",
        "botpasswords-label-create": "Oluştur",
        "botpasswords-label-update": "Güncelle",
        "botpasswords-label-resetpassword": "Şifreyi sıfırla",
        "botpasswords-label-grants-column": "Verilen",
        "botpasswords-bad-appid": "Bot ismi \"$1\" geçerli değil.",
-       "botpasswords-insert-failed": "Bot adın $1 olarak eklenmesi. Zaten eklenmiş mıydı?",
-       "botpasswords-update-failed": "Bot ismini $1 olarak güncelleme başarısız oldu. Silinmiş mıydı?",
+       "botpasswords-insert-failed": "Bot adı \"$1\" eklenemedi. Zaten eklenmiş olmalı?",
+       "botpasswords-update-failed": "Bot ismini \"$1\" olarak güncelleme başarısız oldu. Silinmiş olabilir mi?",
        "botpasswords-created-title": "Bot şifresi oluşturuldu.",
        "botpasswords-created-body": "Bot şifresi \"$1\" başarıyla oluşturuldu.",
        "botpasswords-updated-title": "Bot şifresi guncellendi",
-       "botpasswords-updated-body": "Bot şifresi $1 başarıyla güncellendi.",
+       "botpasswords-updated-body": "Bot şifresi \"$1\" başarıyla güncellendi.",
        "botpasswords-deleted-title": "Bot şifresi silindi.",
        "botpasswords-deleted-body": "Bot şifresi $1 silinmiş.",
        "botpasswords-no-provider": "BotPasswordsSessionProvider kullanılamaz.",
        "prefs-watchlist-token": "İzleme listesi anahtarı:",
        "prefs-misc": "Diğer ayarlar",
        "prefs-resetpass": "Parolayı değiştir",
-       "prefs-changeemail": "E-posta adresini değiştir veya kaldir",
+       "prefs-changeemail": "E-posta adresini değiştir veya kaldır",
        "prefs-setemail": "E-posta adresini ayarlayın",
        "prefs-email": "E-posta seçenekleri",
        "prefs-rendering": "Görünüm",
        "filewasdeleted": "Bu isimde bir dosya yakın zamanda yüklendi ve ardından hizmetliler tarafından silindi. Dosyayı yüklemeden önce, $1 sayfasına bir göz atınız.",
        "filename-bad-prefix": "Yüklemekte olduğunuz dosyanın adı, genel olarak dijital kameralar tarafından otomatik olarak ekelenen ve açıklayıcı olmayan '''\"$1\"''' ile başlamaktadır.\nLütfen dosyanız için daha açıklayıcı bir isim seçin.",
        "filename-prefix-blacklist": " #<!-- leave this line exactly as it is --> <pre>\n# Syntax is as follows:\n#   * Everything from a \"#\" character to the end of the line is a comment\n#   * Every non-blank line is a prefix for typical file names assigned automatically by digital cameras\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # some mobile phones\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- leave this line exactly as it is -->",
-       "upload-success-subj": "Yükleme başarılı",
-       "upload-success-msg": "[$2] yüklemeniz başarılı oldu. Yüklemeniz burada mevcut: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Yükleme sorunu",
-       "upload-failure-msg": "[$2] adresinden yapılan yüklemenizle ilgili bir sorun var:\n\n$1",
-       "upload-warning-subj": "Yükleme uyarısı",
-       "upload-warning-msg": "[$2] yüklemenizde bir sorun oluştu. Sorunu düzeltmek için [[Special:Upload/stash/$1|yükleme formuna]] geri dönebilirsiniz.",
        "upload-proto-error": "Hatalı protokol",
        "upload-proto-error-text": "Uzaktan yükleme, <code>http://</code> veya <code>ftp://</code> ile başlayan URL'ler gerektirmektedir.",
        "upload-file-error": "Dahili hata",
        "upload-form-label-infoform-description": "Açıklama",
        "upload-form-label-usage-title": "Kullanımı",
        "upload-form-label-usage-filename": "Dosya adı",
+       "foreign-structured-upload-form-label-own-work": "Bu benim kendi çalışmam",
        "foreign-structured-upload-form-label-infoform-categories": "Kategoriler",
        "foreign-structured-upload-form-label-infoform-date": "Tarih",
        "foreign-structured-upload-form-3-label-yes": "Evet",
        "wlheader-showupdated": "Sayfaları son ziyaretinizden beri değişen sayfalar '''kalın''' gösterilmiştir.",
        "wlnote": "$3 saat $4 itibariyle son {{PLURAL:$2|bir saatte|'''$2''' saatte}} yapılan {{PLURAL:$1|son değişiklik|son '''$1''' değişiklik}} aşağıdadır.",
        "wlshowlast": "Son $1 saati $2 günü göster",
-       "watchlistall2": "Hepsini göster",
        "watchlist-hide": "Gizle",
        "wlshowtime": "Gösterilecek zaman aralığı:",
        "wlshowhideminor": "küçük değişiklikler",
        "javascripttest-pagetext-frameworks": "Lütfen aşağıdaki test çerçevelerinden birini seçin: $1",
        "javascripttest-pagetext-skins": "Testleri koşmak için bir tema seçin:",
        "javascripttest-qunit-intro": "mediawiki.org üzerinden [$1 deneme belgelerine] bakınız.",
-       "tooltip-pt-userpage": "Kullanıcı sayfanız",
+       "tooltip-pt-userpage": "{{GENDER:|Kullanıcı}} sayfanız",
        "tooltip-pt-anonuserpage": "IP adresine ait bir kullanıcı sayfasını düzenliyorsunuz",
-       "tooltip-pt-mytalk": "Mesaj sayfanız",
+       "tooltip-pt-mytalk": "{{GENDER:|Mesaj sayfanız}}",
        "tooltip-pt-anontalk": "Bu IP adresinden yapılmış değişiklikleri tartış",
-       "tooltip-pt-preferences": "Tercihleriniz (ayarlarınız)",
+       "tooltip-pt-preferences": "{{GENDER:|Tercihleriniz}}",
        "tooltip-pt-watchlist": "Değişiklikler için izlemeye aldığınız sayfaların listesi",
-       "tooltip-pt-mycontris": "Katkılarınızın listesi",
+       "tooltip-pt-mycontris": "{{GENDER:|Katkılarınızın}} listesi",
        "tooltip-pt-anoncontribs": "Bu IP adresinden yapılmış değişiklikler listesi",
        "tooltip-pt-login": "Oturum açmanız tavsiye edilmektedir; ancak bu zorunda değildir",
        "tooltip-pt-logout": "Sistemden çık",
        "tooltip-t-recentchangeslinked": "Bu sayfadan bağlantı verilen sayfalardaki son değişiklikler",
        "tooltip-feed-rss": "Bu sayfa için RSS beslemesi",
        "tooltip-feed-atom": "Bu sayfa için atom beslemesi",
-       "tooltip-t-contributions": "Kullanıcının katkılarının listesini gör",
+       "tooltip-t-contributions": "{{GENDER:$1|Bu kullanıcı}} tarafından yapılan katkıların listesi",
        "tooltip-t-emailuser": "Bu kullanıcıya e-posta gönder",
        "tooltip-t-info": "Bu sayfa hakkında daha fazla bilgi",
        "tooltip-t-upload": "Dosya yükle",
index a523c22..841dc31 100644 (file)
        "retypenew": "Яңа серсүзне кабатлагыз:",
        "resetpass_submit": "Серсүз куеп керү",
        "changepassword-success": "Серсүзегез уңышлы үзгәртелде!",
+       "botpasswords-label-appid": "Бот исеме:",
+       "botpasswords-label-create": "Төзү",
+       "botpasswords-label-update": "Яңарту",
+       "botpasswords-label-cancel": "Баш тарту",
+       "botpasswords-label-delete": "Бетерү",
+       "botpasswords-label-resetpassword": "Серсүзне ташлау",
+       "botpasswords-label-grants": "Кулланылган рөхсәтләр:",
+       "botpasswords-label-restrictions": "Куллану чикләүләре:",
+       "botpasswords-label-grants-column": "Рөхсәт",
+       "botpasswords-bad-appid": "Атамасы «$1» булган бот исеме ярамый.",
        "resetpass_forbidden": "Серсүз үзгәртелә алмый",
        "resetpass-no-info": "Бу битне карау өчен сез системага үз хисап язмагыз ярдәмендә керергә тиеш.",
        "resetpass-submit-loggedin": "Серсүзне үзгәртү",
        "mergehistory-box": "Ике битнең үзгәртүләр тарихын берләштерү:",
        "mergehistory-from": "Чыганак:",
        "mergehistory-into": "Төп бит:",
+       "mergehistory-submit": "Төзәтмәләрне берләштерү",
        "mergehistory-reason": "Сәбәп:",
        "mergelog": "Берләштерүләр көндәлеге",
        "revertmerge": "Бүлү",
        "compareselectedversions": "Сайланган юрамаларны чагыштыру",
        "showhideselectedversions": "Сайланган юрамаларны күрсәтү/яшерү",
        "editundo": "үткәрмәү",
+       "diff-empty": "(аермалар юк)",
        "diff-multi-sameuser": "(шул ук кулланучының {{PLURAL:$1|бер арадаш юрамасы|$1 арадаш юрамасы}} күрсәтелмәгән)",
        "diff-multi-otherusers": "({{PLURAL:$2|Башка бер кулланучының|$2 кулланучының}} {{PLURAL:$1|бер арадаш юрамасы|$1 арадаш юрамасы}} күрсәтелмәгән)",
        "diff-multi-manyusers": "($2 күбрәк {{PLURAL:$2|кулланучының|кулланучының}} {{PLURAL:$1|Бер арадаш юрамасы|$1 арадаш юрамасы}} күрсәтелмәгән)",
        "userrights": "Кулланучы хокуклары белән идарә итү",
        "userrights-lookup-user": "Кулланучы төркемнәре белән идарә итү",
        "userrights-user-editname": "Кулланучының исемен кертегез:",
-       "editusergroup": "Кулланучының төркемнәрен алмаштыру",
+       "editusergroup": "{{GENDER:$1|Кулланучының}} төркемнәрен алмаштыру",
        "editinguser": "{{GENDER:$1|Кулланучы}} <strong>[[User:$1|$1]]</strong> $2 хокукларын үзгәртү",
        "userrights-editusergroup": "Кулланучының төркемнәрен алмаштыру",
-       "saveusergroups": "Кулланучы төркемнәрен саклау",
+       "saveusergroups": "{{GENDER:$1|Кулланучы}} төркемнәрен саклау",
        "userrights-groupsmember": "Әгъза:",
        "userrights-groupsmember-auto": "Билгесез әгъза:",
        "userrights-groups-help": "Сез бу кулланучының хокукларын үзгәртә алмыйсыз.\n*Әгәр дә кулланучы исеме янда тамга торса, димәк бу кулланучы бирелгән төркемнең әгъзасы.\n*Әгәр дә кулланучы исеме янда тамга тормаса, димәк бу кулланучы бирелгән төркемнең әгъзасы түгел.\n*\"*\" тамгасы торса сез бу кулланучыны бу төркемнән бетерә алмыйсыз.",
        "right-writeapi": "Язма өчен API куллану",
        "right-delete": "битләрне бетерү",
        "right-editinterface": "Кулланучы интерфейсын үзгәртү",
+       "grant-group-email": "Хатлар җибәрү",
+       "grant-uploadfile": "Яңа файллар йөкләү",
+       "grant-basic": "Төп хокуклар",
        "newuserlogpage": "Кулланучыларны теркәү көндәлеге",
        "newuserlogpagetext": "Яңа теркәлгән кулланучылар исемлеге",
        "rightslog": "Кулланучының хокуклары көндәлеге",
        "action-createpage": "битләрне язырга",
        "action-createtalk": "бәхәс битен ясарга",
        "action-move": "бу битне күчерерге",
+       "action-sendemail": "электрон хат җибәрү",
        "nchanges": "$1 {{PLURAL:$1|үзгәртү}}",
        "enhancedrc-history": "тарих",
        "recentchanges": "Соңгы үзгәртүләр",
        "rcshowhidemine-show": "Күрсәтү",
        "rcshowhidemine-hide": "Яшер",
        "rcshowhidecategorization-show": "Күрсәт",
+       "rcshowhidecategorization-hide": "Яшер",
        "rclinks": "Соңгы $2 көн эчендә ясалган $1 үзгәртүне күрсәт<br />$3",
        "diff": "аерма",
        "hist": "тарих",
        "filetype-banned": "Бу файл төре тыелган.",
        "verification-error": "Бу файл әлегә тикшерү узмаган.",
        "illegal-filename": "Мондый файл исеменә рөхсәт юк",
+       "uploadwarning": "Кисәтү",
        "savefile": "Файлны саклау",
        "uploaddisabled": "Йөкләү тыелган",
        "copyuploaddisabled": "URL адресы буенча йөкләү ябылган.",
        "filewasdeleted": "Мондый исемле файл бетерелгән булган инде. Зинһар,яңадан йөкләү алдыннан $1 карагыз",
        "filename-bad-prefix": "Файлның исеме '''«$1»''' дип башлана. Зинһар, файлны тасвирлаучы исем бирегез.",
        "filename-prefix-blacklist": " #<!-- ничек бар шулай калдырыгыз --> <pre>\n# Синтаксис төбәндәгечә:\n#   *  «#» дип башланган барлык нәрсә дә комментарий дип аталачак\n#   * Һәрбер буш рәт — файлның исеменең префиксы, цифрлы камера бирүче исем\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # кайсыбер кәрәзле телефоннар\nIMG # барлык\nJD # Jenoptik\nMGP # Pentax\nPICT # төрле\n #</pre> <!-- ничек бар шулай калдырыгыз -->",
-       "upload-success-subj": "Йөкләү әйбәт үтте",
+       "upload-dialog-title": "Файл йөкләү",
+       "upload-dialog-button-cancel": "Баш тарту",
+       "upload-dialog-button-done": "Әзер",
+       "upload-dialog-button-save": "Саклау",
+       "upload-dialog-button-upload": "Йөкләү",
+       "upload-form-label-select-file": "Файлны сайлагыз",
+       "upload-form-label-infoform-title": "Тулырак",
+       "upload-form-label-infoform-name": "Исем",
+       "upload-form-label-infoform-description": "Тасвир",
+       "upload-form-label-usage-title": "Куллану",
+       "upload-form-label-usage-filename": "Файл исеме",
+       "foreign-structured-upload-form-label-own-work": "Бу минем үз эшем",
+       "foreign-structured-upload-form-label-infoform-categories": "Төркемнәр",
+       "foreign-structured-upload-form-label-infoform-date": "Дата",
+       "foreign-structured-upload-form-3-label-yes": "Әйе",
+       "foreign-structured-upload-form-3-label-no": "Юк",
+       "uploadstash": "Яшерен йөкләү",
+       "uploadstash-summary": "Әлеге бит йөкләнгән (яисә йукләү барышында булган), әмма викида әлегә күрсәтелмәгән файлларны карау мөмкинлеген бирә. Бу файлларны йөкләгән кулланучыдан башка беркемдә күрә алмый.",
+       "uploadstash-clear": "Яшерен файлларны бетерү",
+       "uploadstash-nofiles": "Сезнең яшерен файллар юк.",
+       "uploadstash-badtoken": "Әлеге гамәлне башкарып булмады, сезнең хисап язмагыз гамәлдән чыгуы ихтимал. Яңадан кабатлап карагыз.",
+       "uploadstash-errclear": "Файлларны бетереп булмады.",
+       "uploadstash-refresh": "Файллар исемлеген яңарту",
+       "invalid-chunk-offset": "Кабул ителмәгән фрагмент шуышуы",
+       "img-auth-accessdenied": "Рөхсәт юк",
+       "img-auth-nopathinfo": "<code>PATH_INFO</code> күрсәтелмәгән.\nСезнең сервер әлеге мәгълүматларны бирүгә көйләнмәгән.\nБәлки ул CGI нигезендә эшлидер һәм <code>img_auth</code> белән эш итмидер.\nТулырак мәгълүмат: https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
+       "img-auth-notindir": "Соралган юл көйләнгән йөкләү тасмасына карамый.",
+       "img-auth-badtitle": "«$1» исеменән дөрес атама төзеп булмый.",
+       "img-auth-nologinnWL": "Сез теркәлмәгәнсез, «$1» ак исемлектә түгел.",
+       "img-auth-nofile": "«$1» файлы юк.",
+       "img-auth-streaming": "«$1» агымлы тапшыруы.",
+       "http-invalid-url": "Ялган URL: $1",
        "http-read-error": "HTTP укуда хата.",
        "license": "Лицензиясе:",
        "license-header": "Лицензиясе",
        "nolicense": "Юк",
        "license-nopreview": "(Алдан карау мөмкин түгел)",
        "upload_source_file": "(сезнең санакта сайланган файл)",
+       "listfiles-delete": "бетерү",
        "listfiles-summary": "Әлеге махсус бит Сез йөкләгән бөтен файлларны күрсәтә.",
+       "listfiles_search_for": "Файл исеме буенча эзләү:",
        "imgfile": "файл",
        "listfiles": "Сүрәтләр исемлеге",
        "listfiles_thumb": "Миниатюра",
        "listfiles_size": "Үлчәм",
        "listfiles_description": "Тасвир",
        "listfiles_count": "Юрамалар",
+       "listfiles-latestversion": "Агымдагы юрама",
+       "listfiles-latestversion-yes": "Әйе",
+       "listfiles-latestversion-no": "Юк",
        "file-anchor-link": "Файл",
        "filehist": "Файлның тарихы",
        "filehist-help": "Файлның нинди булганлыгын күрү өчен датага/сәгатькә басыгыз.",
        "filedelete-legend": "Файлны бетерү",
        "filedelete-comment": "Сәбәп:",
        "filedelete-submit": "Бетерү",
+       "filedelete-nofile": "<strong>$1</strong> файлы юк.",
        "filedelete-reason-otherlist": "Башка сәбәп",
        "mimesearch": "MIME эзләү",
        "mimetype": "MIME-тип:",
        "unwatchedpages": "Беркемдә күзәтмәүче  битләр",
        "listredirects": "Юнәлтүләр исемлеге",
        "unusedtemplates": "Кулланылмаган үрнәкләр",
+       "unusedtemplateswlh": "башка сылтамалар",
        "randompage": "Очраклы бит",
+       "randomincategory-category": "Төркем:",
+       "randomincategory-submit": "Күчү",
        "randomredirect": "Очраклы биткә күчү",
        "statistics": "Хисапнамә",
        "statistics-header-pages": "Битләр хисапнамәсе",
        "statistics-users": "Теркәлгән [[Special:ListUsers|кулланучылар]]",
        "statistics-users-active": "Актив кулланучылар",
        "statistics-users-active-desc": "{{PLURAL:$1|$1 көн }} өчендә нинди дә булса үзгәртүләр керткән кулланучылар",
+       "pageswithprop-prop": "Үзенчәлекнең атамасы:",
+       "pageswithprop-submit": "Табу",
        "doubleredirects": "Икеләтә юнәлтүләр",
        "brokenredirects": "Бәйләнешсез юнәлтүләр",
        "brokenredirectstext": "Бу юнәлтүләр булмаган битләргә сылтыйлар:",
        "longpages": "Озын битләр",
        "deadendpages": "Тупик битләре",
        "protectedpages": "Якланган битләр",
+       "protectedpages-page": "Бит",
+       "protectedpages-expiry": "Тәмамлана",
+       "protectedpages-performer": "Кулланучыны яклау",
+       "protectedpages-params": "Сак параметрлары",
+       "protectedpages-reason": "Сәбәп",
+       "protectedpages-submit": "Битләрне күрсәтү",
+       "protectedpages-unknown-timestamp": "Билгесез",
+       "protectedpages-unknown-performer": "Билгесез кулланучы",
        "protectedtitles": "Тыелган исемнәр",
        "listusers": "Кулланучылар исемлеге",
        "usercreated": "$3 $1 көнне $2 вакытта {{GENDER:$3|теркәлде}}",
        "all-logs-page": "Барлык көндәлекләр",
        "alllogstext": "{{SITENAME}} сәхифәсенең гомуми көндәлекләре исемлеге.\nСез нәтиҗәләрне көндәлек төре, кулланучы исеме (хәреф зурлыгын истә тотыгыз) яки куззаллаган бит (шулай ук хәреф зурлыгын истә тотыгыз) буенча тәртипкә салырга мөмкин.",
        "logempty": "Кирәкле язмалар көндәлектә юк.",
+       "checkbox-select": "Сайлау: $1",
+       "checkbox-all": "Барысы",
+       "checkbox-none": "Юк",
+       "checkbox-invert": "Әйләндерү",
        "allpages": "Барлык битләр",
        "nextpage": "Киләсе бит ($1)",
        "prevpage": "Алдагы бит ($1)",
        "listgrouprights-rights": "Хокуклар",
        "listgrouprights-helppage": "Help:Төркемнәрнең хокуклары",
        "listgrouprights-members": "(төркем исемлеге)",
+       "listgrouprights-namespaceprotection-namespace": "Исемнәр мәйданы",
+       "listgrants": "Рөхсәтләр",
+       "listgrants-grant": "Рөхсәт",
+       "listgrants-rights": "Хокуклар",
+       "trackingcategories": "Күзәтелүче төркемнәр",
+       "trackingcategories-msg": "Күзәтүче төркем",
+       "trackingcategories-name": "Хат исеме",
        "emailuser": "Бу кулланучыга хат",
        "emailuser-title-target": "{{GENDER:$1|Кулланучыга}} электрон хат язу",
        "emailuser-title-notarget": "Кулланучыга хат җибәрү",
        "emailccsubject": "$1 өчен хәбәрегезнең күчермәсе: $2",
        "emailsent": "Хат җибәрелгән",
        "emailsenttext": "E-mail хатыгыз җиберелде.",
+       "usermessage-editor": "Система хәбәрчесе",
        "watchlist": "Күзәтү исемлеге",
        "mywatchlist": "Күзәтү исемлеге",
        "watchlistfor2": "$1 өчен $2",
        "wlheader-showupdated": "Сезнең соңгы төзәтмәләрдән соң үзгәргән битләр <strong>калын</strong> шрифт белән күрсәтелгән.",
        "wlnote": "Түбәндә $3 $4 вакыт аралыгының {{PLURAL:$2|соңгы сәгатендә|соңгы <strong>$2</strong> сәгатендә}} ясалган {{PLURAL:$1|ахыргы төзәтмә|ахыргы <strong>$1</strong> төзәтмә}} күрсәтелгән.",
        "wlshowlast": "$1 сәгать $2 көн өчендә күрсәтү",
-       "watchlistall2": "барлык",
+       "watchlist-hide": "Яшер",
        "watchlist-submit": "Күрсәт",
        "wlshowtime": "Күрсәтелүче вакыт аралыгы:",
        "wlshowhideminor": "кече үзгәртүләр",
+       "wlshowhidebots": "бот",
+       "wlshowhideliu": "теркәлгән кулланучы",
        "wlshowhideanons": "аноним кулланучыларныкын",
+       "wlshowhidepatr": "тикшерелгән үзгәртүләр",
+       "wlshowhidemine": "үзгәртүләрем",
        "watchlist-options": "Күзәтү исемлеге көйләүләре",
        "watching": "Күзәтү исемлегемә өстәүе…",
        "unwatching": "Күзәтү исемлегемнән чыгаруы…",
        "rollbacklinkcount": "$1 {{PLURAL:$1|төзәтмәне}} кире кагу",
        "editcomment": "Үзгәртү өчен тасвир: \"''$1''\".",
        "revertpage": "[[Special:Contributions/$2|$2]] үзгәртүләре ([[User talk:$2|бәхәс]])  [[User:$1|$1]] юрамасына кадәр кире кайтарылды",
+       "changecontentmodel-title-label": "Битнең исеме",
+       "changecontentmodel-reason-label": "Сәбәп:",
+       "logentry-contentmodel-change-revertlink": "кайтару",
+       "logentry-contentmodel-change-revert": "кайтару",
        "protectlogpage": "Яклану көндәлеге",
        "protectedarticle": "«[[$1]]» якланган",
        "modifiedarticleprotection": "\"[[$1]]\" бите өчен яклау дәрәҗәсе үзгәртелде",
        "whatlinkshere-hidelinks": "Сылтамаларны $1",
        "whatlinkshere-hideimages": "$1 файл сылтамалары",
        "whatlinkshere-filters": "Фильтрлар",
+       "whatlinkshere-submit": "Башкару",
+       "autoblockid": "Автотыю #$1",
+       "block": "Кулланучыны тыю",
+       "unblock": "Кулланучыны тыюдан азат итү",
        "blockip": "{{GENDER:$1|Кулланучыны}} тыю",
        "blockip-legend": "Кулланучыны тыю",
        "ipaddressorusername": "IP адресы яки кулланучы исеме:",
        "ipbsubmit": "Бу кулланучыны тыю",
        "ipbother": "Башка вакыт:",
        "ipboptions": "2 сәгать:2 hours,1 көн:1 day,3 көн:3 days,1 атна:1 week,2 атна:2 weeks,1 ай:1 month,3ай:3 months,6 ай:6 months,1 ел:1 year,чикләнмәгән:infinite",
+       "ipb-confirm": "Тыюны раслау",
        "badipaddress": "Ялгыш IP адресы",
        "blockipsuccesssub": "Тыю башкарылган",
        "ipb-unblock-addr": "$1 кулланучысын тыюдан азат итү",
        "unblockip": "Кулланучыны тыюдан азат итү",
        "ipusubmit": "Бу тыюны туктату",
        "ipblocklist": "Тыелган кулланучылар",
+       "blocklist-timestamp": "Дата/вакыт",
+       "blocklist-target": "Максат",
+       "blocklist-expiry": "Тәмамлана",
+       "blocklist-by": "Тыючы идарәче",
+       "blocklist-params": "Тыю параметрлары",
+       "blocklist-reason": "Сәбәп",
        "ipblocklist-submit": "Эзләү",
+       "ipblocklist-localblock": "Локаль тыюлык",
        "infiniteblock": "билгеле бер вакытсыз",
+       "expiringblock": "$1 $2 тәмамлана",
+       "anononlyblock": "анонимнар гына",
+       "noautoblockblock": "автотыю ябык",
+       "createaccountblock": "хисап язмасы теркәү тыелган",
+       "emailblock": "хат җибәрү тыелган",
        "blocklink": "тыю",
        "unblocklink": "тыюдан азат итү",
        "change-blocklink": "тыюны үзгәртү",
        "unlockbtn": "Мәгълүматлар базасына язу мөмкинлеген кайтару",
        "move-page": "$1 — исемен алмаштыру",
        "move-page-legend": "Битне күчерү",
-       "movepagetext": "Астагы форманы куллану битнең исемен алыштырып, аның барлык тарихын яңа исемле биткә күчерер.\nИске исемле бит яңа исемле биткә юнәлтү булып калыр.\nСез иске исемгә юнәлтүләрне автоматик рәвештә яңа исемгә күчерә аласыз.\nӘгәр моны эшләмәсәгез, [[Special:DoubleRedirects|икеле]] һәм [[Special:BrokenRedirects|өзелгән юнәлтүләрне]] тикшерегез.\nСез барлык сылтамаларның кирәкле җиргә сылтавына җаваплы.\n\nКүздә тотыгыз: әгәр яңа исем урынында бит булса инде, һәм ул буш яки юнәлтү түгел исә, бит <strong>күчерелмәячәк</strong>.\nБу шуны аңлата: сез ялгышып күчерсәгез, битне кайтара аласыз, әмма инде булган битне бетерә алмыйсыз.\n\n<strong>Игътибар!</strong>\nПопуляр битләрне күчерү зур һәм көтелмәгән нәтиҗәләргә китерә ала.\nДәвам иткәнче, барлык нәтиҗәләрне аңлавыгызны тагын бер кат уйлагыз.",
+       "movepagetext": "Астагы форманы куллану битнең исемен алыштырып, аның барлык тарихын яңа исемле биткә күчерер.\nИске исемле бит яңа исемле биткә юнәлтү булып калыр.\nСез иске исемгә юнәлтүләрне автоматик рәвештә яңа исемгә күчерә аласыз.\nӘгәр моны эшләмәсәгез, [[Special:DoubleRedirects|икеле]] һәм [[Special:BrokenRedirects|өзелгән юнәлтүләрне]] тикшерегез.\nСез барлык сылтамаларның кирәкле җиргә сылтавына җаваплы.\n\nКүздә тотыгыз: әгәр яңа исем урынында бит булса инде, һәм ул буш яки юнәлтү түгел исә, бит <strong>күчерелмәячәк</strong>.\nБу шуны аңлата: сез ялгышып күчерсәгез, битне кайтара аласыз, әмма инде булган битне бетерә алмыйсыз.\n\n<strong>Искәрмә:</strong>\nПопуляр битләрне күчерү зур һәм көтелмәгән нәтиҗәләргә китерә ала.\nДәвам иткәнче, барлык нәтиҗәләрне аңлавыгызны тагын бер кат уйлагыз.",
        "movepagetalktext": "Бу пунктны сайлаган очракта, аның бәхәс бите дә автоматик рәвештә күчереләчәк, әгәрдә шундый исемле башка тулы бәхәс бите булмаса.\n\nБу очракларда сезгә битләрне үзегезгә күчерергә туры киләчәк.",
        "movenotallowed": "Сездә мәкаләләрне күчерү хокуклары юк.",
        "newtitle": "Яңа исем:",
        "tooltip-feed-rss": "Бу бит өчен RSS трансляциясе",
        "tooltip-feed-atom": "Бу бит өчен Atom трансляциясе",
        "tooltip-t-contributions": "{{GENDER:$1|Бу кулланучының}} кертем исемлеге",
-       "tooltip-t-emailuser": "Бу кулланучыга хат җибәрү",
+       "tooltip-t-emailuser": "{{GENDER:$1|Бу кулланучыга}} хат җибәрү",
        "tooltip-t-upload": "Файлларны йөкләү",
        "tooltip-t-specialpages": "Барлык махсус битләр исемлеге",
        "tooltip-t-print": "Бу битнең басма юрамасы",
        "common.css": "/*  Монда урнаштырылган CSS башкаларында да урнашачак */",
        "anonymous": "{{grammar:genitive|{{SITENAME}}}} {{PLURAL:$1|1=Аноним кулланучысы|Аноним кулланучылары}}",
        "siteuser": "{{SITENAME}} кулланучысы $1",
-       "othercontribs": "«$1» эшенә нигезләнә.",
-       "siteusers": "{{grammar:genitive|{{SITENAME}}}} {{PLURAL:$2|1=кулланучы|кулланучылары}} $1",
+       "othercontribs": "Төзүдә катнаштылар: $1.",
+       "siteusers": "{{{{SITENAME}}}} {{PLURAL:$2|1=кулланучы|кулланучылары}} $1",
        "creditspage": "Рәхмәтләр",
        "spamprotectiontitle": "Спам фильтры",
        "simpleantispam-label": "Анти-спам тикшерә.\nМоны <strong>ТУТЫРМАГЫЗ!</strong>",
index 190845c..473395f 100644 (file)
        "october-date": "$1 жовтня",
        "november-date": "$1 листопада",
        "december-date": "$1 грудня",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|1=Категорія|Категорії}}",
        "category_header": "Сторінки в категорії «$1»",
        "subcategories": "Підкатегорії",
        "virus-scanfailed": "помилка сканування (код $1)",
        "virus-unknownscanner": "невідомий антивірус:",
        "logouttext": "'''Ви вийшли з системи.'''\n\nДеякі сторінки можуть відображатися, ніби ви ще в системі, аж поки ви не оновите кеш браузера.",
+       "cannotlogoutnow-title": "Неможливо вийти прямо зараз",
+       "cannotlogoutnow-text": "Неможливо вийти із системи під час використання $1.",
        "welcomeuser": "Вітаємо, $1!",
        "welcomecreation-msg": "Ваш обліковий запис створено.\nТепер маєте змогу за бажанням змінювати ваші [[Special:Preferences|налаштування у {{GRAMMAR:genitive|{{SITENAME}}}}]].",
        "yourname": "Ім'я користувача:",
        "remembermypassword": "Запам'ятати мій обліковий запис на цьому комп'ютері (на строк не більше $1 {{PLURAL:$1|1=дня|днів}})",
        "userlogin-remembermypassword": "Запам'ятати мене",
        "userlogin-signwithsecure": "Захищене з'єднання",
+       "cannotloginnow-title": "Неможливо увійти прямо зараз",
+       "cannotloginnow-text": "Неможливо увійти під-час використання $1.",
        "yourdomainname": "Ваш домен:",
        "password-change-forbidden": "Ви не можна змінити пароль на цій вікі.",
        "externaldberror": "Сталася помилка при автентифікації за допомогою зовнішньої бази даних, або у вас недостатньо прав для внесення змін до свого зовнішнього облікового запису.",
        "resetpass_submit": "Встановити пароль і ввійти",
        "changepassword-success": "Ваш пароль успішно змінено!",
        "changepassword-throttled": "Ви нещодавно зробили надто багато спроб ввійти до системи.\nБудь ласка, зачекайте $1 перед повторною спробою.",
+       "botpasswords": "Паролі ботів",
+       "botpasswords-summary": "<em>Паролі бота</em> дозволяють отримати доступ до облікового запису користувача через API без використання логіну і пароля головного облікового запису. Права користувача при вході з паролем бота можуть бути обмеженні.\n\nЯкщо ви не знаєте, навіщо воно вам, імовірно, краще цього не робіть. Ніхто ніколи не повинен просити вас, щоб ви створили чи повідомили цей пароль.",
+       "botpasswords-disabled": "Паролі бота відключені.",
+       "botpasswords-no-central-id": "Для використання паролів бота ви повинні увійти в централізований обліковий запис.",
+       "botpasswords-existing": "Існуючі паролі бота",
+       "botpasswords-createnew": "Створити новий пароль бота",
+       "botpasswords-editexisting": "Редагувати існуючий пароль бота",
+       "botpasswords-label-appid": "Назва бота:",
+       "botpasswords-label-create": "Створити",
+       "botpasswords-label-update": "Оновити",
+       "botpasswords-label-cancel": "Скасувати",
+       "botpasswords-label-delete": "Видалити",
+       "botpasswords-label-resetpassword": "Скинути пароль",
+       "botpasswords-label-grants": "Придатні дозволи:",
+       "botpasswords-help-grants": "Кожен дозвіл дає доступ до перелічених прав користувача, які вже є у облікового запису користувача. Див. [[Special:ListGrants|таблицю дозволів]] для отримання додаткової інформації.",
+       "botpasswords-label-restrictions": "Обмеження на використання:",
+       "botpasswords-label-grants-column": "Дозволено",
+       "botpasswords-bad-appid": "Ім'я бота «$1» є недопустимим.",
+       "botpasswords-insert-failed": "Не вдалось додати бота з іменем «$1». Можливо, він вже був доданий?",
+       "botpasswords-update-failed": "Не вдалось оновити бота з іменем «$1». Можливо, він був видалений?",
+       "botpasswords-created-title": "Пароль бота створено",
+       "botpasswords-created-body": "Пароль бота «$1» був успішно створений.",
+       "botpasswords-updated-title": "Пароль бота оновлено",
+       "botpasswords-updated-body": "Пароль бота «$1» був успішно оновлений.",
+       "botpasswords-deleted-title": "Пароль бота видалено",
+       "botpasswords-deleted-body": "Пароль бота «$1» було видалено",
+       "botpasswords-newpassword": "Новий пароль для входу під <strong>$1</strong> — <strong>$2</strong>. <em>Запишіть його для подальшого використання.</em>",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider не доступний.",
        "resetpass_forbidden": "Пароль не можна змінити",
        "resetpass-no-info": "Щоб звертатися безпосередньо до цієї сторінки, вам слід увійти до системи.",
        "resetpass-submit-loggedin": "Змінити пароль",
        "filename-thumb-name": "Це виглядає як назва ескізу. Будь ласка, не завантажуйте ескізи назад на ту саму вікі. В іншому випадку, будь ласка, виправте назву файла, щоб вона виглядало  більш значущою, й не мала префіксу слайда.",
        "filename-bad-prefix": "Назва завантажуваного файлу починається на '''«$1»''' і, можливо, є шаблонною назвою, яку цифрова фотокамера дає знімкам. Будь ласка, виберіть назву, яка краще описуватиме вміст файлу.",
        "filename-prefix-blacklist": " #<!-- не змінюйте цей рядок --> <pre>\n# Синтаксис такий:\n#   * Все, що починається з символу «#» вважається коментарем (до кінця рядка)\n#   * Кожен непорожній рядок — префікс стандартної назви файлу, яку зазвичай дає цифрова камера\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # деякі мобільні телефони\nIMG # загальне\nJD # Jenoptik\nMGP # Pentax\nPICT # різні\n #</pre> <!-- не змінюйте цей рядок -->",
-       "upload-success-subj": "Завантаження успішно завершено",
-       "upload-success-msg": "Ваше завантаження з [$2] було успішним. Воно доступне тут: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Проблема із завантаженням",
-       "upload-failure-msg": "З вашим завантаженням від [$2] виникла проблема:\n\n$1",
-       "upload-warning-subj": "Попередження при завантаженні",
-       "upload-warning-msg": "Сталася помилка при пересиланні з [$2]. Ви можете повернутися до [[Special:Upload/stash/$1|формуляру пересилання]], щоб вирішити проблему.",
        "upload-proto-error": "Невірний протокол",
        "upload-proto-error-text": "Віддалене завантаження вимагає адресів, що починаються з <code>http://</code> або <code>ftp://</code>.",
        "upload-file-error": "Внутрішня помилка",
        "wlheader-showupdated": "Сторінки, що змінилися після вашого останнього їх відвідування, виділені '''жирним''' шрифтом.",
        "wlnote": "Нижче наведено {{PLURAL:$1|останнє $1 редагування|останні $1 редагування|останні $1 редагувань}} за {{PLURAL:$2|останню|останні|останні}} <strong>$2</strong> {{PLURAL:$2|годину|години|годин}}, на час $3 $4.",
        "wlshowlast": "Показати зміни за останні $1 годин $2 днів",
-       "watchlistall2": "всі",
        "watchlist-hide": "Приховати",
        "watchlist-submit": "Показати",
        "wlshowtime": "Період часу для відображення:",
index a342432..efe997e 100644 (file)
        "filename-thumb-name": "Hình như đây là tên của một hình thu nhỏ được tự động tạo ra. Xin đừng tải lên những hình nhỏ lại vào wiki ban đầu. Nếu không phải, xin vui lòng sửa tên tập tin để rõ ràng hơn và dời tiền tố cỡ hình khỏi tên.",
        "filename-bad-prefix": "Tên cho tập tin mà bạn đang tải lên bắt đầu bằng '''“$1”''', đây không phải là dạng tên tiêu biểu có tính chất miêu tả do các máy chụp ảnh số tự động đặt. Xin hãy chọn một tên có tính chất miêu tả và gợi nhớ hơn cho tập tin của bạn.",
        "filename-prefix-blacklist": " #<!-- xin để nguyên hàng này --> <pre>\n# Cú pháp như sau:\n#   * Các ký tự từ dấu \"#\" trở đến cuối hàng là chú thích\n#   * Các dòng sau là các tiền tố do các máy ảnh số gán tự động cho tên tập tin\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # một số điện thoại di động\nIMG # tổng quát\nJD # Jenoptik\nMGP # Pentax\nPICT # khác\n #</pre> <!-- xin để nguyên hàng này -->",
-       "upload-success-subj": "Đã tải xong",
-       "upload-success-msg": "Bạn đã tải lên tập tin thành công từ [$2]. Nó có sẵn tại [[:{{ns:file}}:$1]].",
-       "upload-failure-subj": "Vấn đề tải lên",
-       "upload-failure-msg": "Tập tin bạn tải lên từ [$2] có một vấn đề:\n\n$1",
-       "upload-warning-subj": "Cảnh báo tải lên",
-       "upload-warning-msg": "Tập tin tải lên từ [$2] đã gặp vấn đề. Xin hãy trở về [[Special:Upload/stash/$1|biểu mẫu tải lên]] để giải quyết vấn đề này.",
        "upload-proto-error": "Giao thức sai",
        "upload-proto-error-text": "Phải đưa vào URL bắt đầu với <code>http://</code> hay <code>ftp://</code> để tải lên tập tin từ trang web khác.",
        "upload-file-error": "Lỗi nội bộ",
        "wlheader-showupdated": "Các trang đã thay đổi kể từ lần cuối bạn xem chúng được in '''đậm'''",
        "wlnote": "Dưới đây là {{PLURAL:$1|thay đổi duy nhất|<strong>$1</strong> thay đổi gần nhất}} trong {{PLURAL:$2|giờ|<strong>$2</strong> giờ}} qua, tính tới $3 lúc $4.",
        "wlshowlast": "Hiển thị $1 giờ $2 ngày gần đây",
-       "watchlistall2": "tất cả",
        "watchlist-hide": "Ẩn",
        "watchlist-submit": "Xem",
        "wlshowtime": "Thời gian để hiển thị:",
index ec65b9a..bd1b89d 100644 (file)
        "sourcefilename": "源文件:",
        "destfilename": "目标文件名:",
        "watchthisupload": "關注箇文件",
-       "upload-success-subj": "上载成功哉",
-       "upload-failure-subj": "傳個問題",
-       "upload-warning-subj": "傳個警告",
        "upload-misc-error": "弗識個傳錯誤",
        "foreign-structured-upload-form-label-infoform-date": "日脚",
        "backend-fail-delete": "文件“$1”刪弗爻。",
index 687b7d9..b9093de 100644 (file)
        "upload-options": "ატვირთვის პარამეტრები",
        "watchthisupload": "უთვალთვალე ამ ფაილს",
        "filewasdeleted": "ამ სახელწოდების ფაილი უკვე არსებობდა, მაგრამ წაშლილ იქნა. ხელმეორედ ჩატვირთვამდე იხილეთ $1.",
-       "upload-success-subj": "წარმატებული ატვირთვა",
-       "upload-success-msg": "თქვენი ატვირთვა [$2] შეგიძლიათ იხილოთ აქ: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "ატვირთვის პრობლემა",
-       "upload-failure-msg": "ატვირთვისას პრობლემა შეიქმნა [$2]:\n\n$1",
-       "upload-warning-subj": "ატვირთვისთვის გაფრთხილება",
-       "upload-warning-msg": "[$2]-ის ატვირთვისას დაფიქსირდა შეცდომა. შეცდომის გამოსასწორებლად დაბრუნდით [[Special:Upload/stash/$1|ატვირთვის ფორმა]]ზე.",
        "upload-proto-error": "არასწორი პროტოკოლი",
        "upload-proto-error-text": "ატვირთვის წასაშლელად საჭიროა მისამართი, რომელიც იწყება <code>http://</code> or <code>ftp://</code>-ით.",
        "upload-file-error": "შიდა შეცდომა",
        "log-title-wildcard": "სათაურების ძებნა, რომლებიც იწყება ამ ტექსტით",
        "showhideselectedlogentries": "არჩეული ჟურნალის ჩანაწერის ჩვენება/დამალვა",
        "log-edit-tags": "ტეგების რედაქტირება ამორჩეული ჟურნალის ჩანაწერებიდან",
+       "checkbox-all": "არძა",
+       "checkbox-none": "აკა ვარი",
+       "checkbox-invert": "ინოხუნაფა",
        "allpages": "არძა ხასილა",
        "nextpage": "უკულ ხასილა ($1)",
        "prevpage": "წოხლენ ხასილა ($1)",
        "unwatch": "კონტროლიშ გოუქვაფა",
        "watchlist-details": "{{PLURAL:$1|$1 ხასილა|$1 ხასილეფ}} რე თქვან კონტროლიშ ერკებულს, სხუნუაშ ხასილეფიშ მეუკოროცხუო.",
        "wlshowlast": "ეკონია $1 საათიშ $2 დღაშ  ძირაფა",
-       "watchlistall2": "არძა",
        "watchlist-options": "კონტროლიშ ერკებულიშ ოფციეფ",
        "watching": "კონტროლირებად...",
        "unwatching": "კონტროლ მონწყუმილ რე ...-შა",
index 6a99e29..495e39e 100644 (file)
        "blockedtext": "<strong>你的用户名或IP地址已被封禁。</strong>\n\n执行封禁的管理员是$1。封禁原因是<em>$2</em>。\n\n* 开始时间:$8\n* 到期时间:$6\n* 目标用户:$7\n\n你可以联系$1或其他[[{{MediaWiki:Grouppage-sysop}}|管理员]]讨论该封禁。只有当你在[[Special:Preferences|系统设置]]确认了电子邮件地址且未被禁止使用“电邮联系”功能时,才可以使用它。你当前的IP地址是$3,该封禁ID是#$5。请在你的询问中包含上面的所有信息。",
        "autoblockedtext": "您的IP地址因曾被一位被$1封禁的用户使用而被自动封禁。封禁原因:\n\n:<em>$2</em>\n\n* 开始时间:$8\n* 到期时间:$6\n* 目标用户:$7\n\n您可以联系$1或其他[[{{MediaWiki:Grouppage-sysop}}|管理员]]申诉该封禁。\n\n请注意,只有当您已在[[Special:Preferences|系统设置]]确认了电子邮件地址且未被禁止使用“电邮联系”功能时,才能发送电子邮件联系管理员。\n\n您当前的IP地址为$3,该封禁ID为#$5。\n请您在申诉内容中说明以上所有信息。",
        "blockednoreason": "未给出原因",
-       "whitelistedittext": "您必须先$1才可编辑页面。",
+       "whitelistedittext": "请$1以编辑页面。",
        "confirmedittext": "你必须确认你的电子邮件地址才能编辑页面。请通过[[Special:Preferences|系统设置]]设置并确认你的电子邮件地址。",
        "nosuchsectiontitle": "没有这个段落",
        "nosuchsectiontext": "您尝试编辑的章节并不存在。\n可能是在您查看页面时已经移动或删除。",
        "loginreqtitle": "需要登录",
        "loginreqlink": "登录",
-       "loginreqpagetext": "您必须$1才能查看其它页面。",
+       "loginreqpagetext": "请$1以查看其它页面。",
        "accmailtitle": "密码已寄出",
        "accmailtext": "为[[User talk:$1|$1]]随机生成的密码已送至$2。登录后可以在<em>[[Special:ChangePassword|更改密码]]</em>页面中修改。",
        "newarticle": "(新页面)",
        "rev-suppressed-unhide-diff": "该页面的其中一次版本已经被<strong>监督隐藏</strong>。\n在[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 监督日志]中可以找到更多的资料。如果您想继续的话,您可以仍然[$1 去查看这版本]。",
        "rev-deleted-diff-view": "差异对比中的一次版本已被<strong>删除</strong>。您可以对比此差异。详细信息可在[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]中找到。",
        "rev-suppressed-diff-view": "差异对比中的一个版本已被<strong>监督隐藏</strong>。您可以对比此差异。详细信息可在[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 监督日志]中找到。",
-       "rev-delundel": "æ\98¾ç¤º/é\9a\90è\97\8f",
+       "rev-delundel": "æ\9b´æ\94¹å\8f¯è§\81æ\80§",
        "rev-showdeleted": "显示",
        "revisiondelete": "删除/还原版本",
        "revdelete-nooldid-title": "无效目标版本",
        "reuploaddesc": "取消上传,返回上传表格",
        "upload-tryagain": "提交修改过的文件说明",
        "uploadnologin": "未登录",
-       "uploadnologintext": "您必须先$1才能上传文件。",
+       "uploadnologintext": "请$1以上传文件。",
        "upload_directory_missing": "上传目录($1)遗失,不能由网页服务器建立。",
        "upload_directory_read_only": "上传目录($1)不存在或无写权限。",
        "uploaderror": "上传出错",
        "filename-thumb-name": "这看起来像是缩略图标题。请不要将缩略图上传回同一wiki。否则,请修改文件名使其更有意义,并且没有缩略图前缀。",
        "filename-bad-prefix": "您上传的文件名称是以<strong>“$1”</strong>作为开头,通常这种没有含意的文件名称是由数码相机中自动编排。请在您的文件中重新选择一个更加有意义的文件名称。",
        "filename-prefix-blacklist": " #<!-- 请将本行保留为原样 --> <pre>\n# 语法如下:\n#  * 任何以“#”开头到结尾的行为注释\n#  * 任何非空行是根据相机自动分配特定文件名的前缀\nCIMG # 卡西欧\nDSC_ # 尼康\nDSCF # 富士\nDSCN # 尼康\nDUW # 部分手机\nIMG # 一般\nJD # 业纳\nMGP # 宾得\nPICT # 其他\n #</pre> <!-- 请将本行保留为原样 -->",
-       "upload-success-subj": "上传成功",
-       "upload-success-msg": "您在[$2]的上传已经成功,可以在这里找到:[[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "上传问题",
-       "upload-failure-msg": "您在[$2]的上传出现了问题:\n\n$1",
-       "upload-warning-subj": "上传警告",
-       "upload-warning-msg": "您自[$2]的上传出错。您可以返回[[Special:Upload/stash/$1|上传表单]]并更正问题。",
        "upload-proto-error": "协议错误",
        "upload-proto-error-text": "远程上传要求 URL 以 <code>http://</code> 或 <code>ftp://</code> 开头。",
        "upload-file-error": "内部错误",
        "upload-too-many-redirects": "在网址中有太多重新定向",
        "upload-http-error": "发生HTTP错误:$1",
        "upload-copy-upload-invalid-domain": "不能从该域名上载文件副本。",
+       "upload-foreign-cant-upload": "此wiki未配置为上传文件至请求的外部文件存储库。",
        "upload-dialog-title": "上传文件",
        "upload-dialog-button-cancel": "取消",
        "upload-dialog-button-done": "完成",
        "upload-dialog-button-save": "保存",
        "upload-dialog-button-upload": "上传",
        "upload-form-label-select-file": "选择文件",
-       "upload-form-label-infoform-title": "详细信息",
+       "upload-form-label-infoform-title": "详",
        "upload-form-label-infoform-name": "名称",
        "upload-form-label-infoform-name-tooltip": "用于文件的唯一描述性标题,它将用作文件名。您可以使用带空格的普通语言。不要包含文件扩展名。",
        "upload-form-label-infoform-description": "说明",
        "wlheader-showupdated": "您上次访问后发生更改的页面<strong>加粗</strong>显示。",
        "wlnote": "下面是{{PLURAL:$2|过去<strong>$2</strong>小时}}的{{PLURAL:$1|最后<strong>$1</strong>个更改}},截至$3 $4。",
        "wlshowlast": "显示过去$1小时$2天",
-       "watchlistall2": "所有",
        "watchlist-hide": "隐藏",
        "watchlist-submit": "显示",
        "wlshowtime": "显示时段:",
        "lockedbyandtime": "(由 {{GENDER:$1|$1}} 于$2 $3执行)",
        "move-page": "移动$1",
        "move-page-legend": "移动页面",
-       "movepagetext": "您可以使用下面的表单来重命名一个页面,同时将其版本历史移动到新页面。同时老的条目将会被重定向到新条目。您可以自动地将重定向更新到原条目。如果您不选择这样做的话,请检查[[Special:DoubleRedirects|双重]]或[[Special:BrokenRedirects|损坏重定向]]链接。您有责任确保链接会被正确指向他们应该被指向的地方。\n\n注意:即使新条目已经有对应页面,此页面也<strong>不会</strong>被移动,除非新页面无任何编辑历史或是重定向页。这意味着您可在误操作后将页面移回原处,同时,您也无法覆盖现有页面。\n\n<strong>警告!</strong>对这样一个经常被访问的页面而言这可能是一个重大且唐突的更改;请在行动前先了解您的修改可能带来的一切后果。",
-       "movepagetext-noredirectfixer": "用下面的表单来重命名一个页面,并将其版本历史同时移动到新页面。\n老的页面将成为新页面的重定向页。\n请检查[[Special:DoubleRedirects|双重重定向]]或[[Special:BrokenRedirects|损坏重定向]]链接。\n您应当负责确定所有链接依然会链到指定的页面。\n\n注意如果新页面已经有内容的话,页面将'''不会'''被移动,\n除非新页面无内容或是重定向页,而且没有版本历史。\n这意味着您再必要时可以在移动到新页面后再移回老的页面,\n同时您也无法覆盖现有页面。\n\n'''警告!'''\n对一个经常被访问的页面而言这可能是一个重大与唐突的更改;\n请在行动前先确定您了解其所可能带来的后果。",
+       "movepagetext": "您可以使用下面的表单来重命名一个页面,同时将其版本历史移动到新页面。同时老的条目将会被重定向到新条目。您可以自动地将重定向更新到原条目。如果您不选择这样做的话,请检查[[Special:DoubleRedirects|双重]]或[[Special:BrokenRedirects|损坏重定向]]链接。您有责任确保链接会被正确指向他们应该被指向的地方。\n\n注意:即使新条目已经有对应页面,此页面也<strong>不会</strong>被移动,除非新页面无任何编辑历史或是重定向页。这意味着您可在误操作后将页面移回原处,同时,您也无法覆盖现有页面。\n\n<strong>注意:</strong>\n对这样一个经常被访问的页面而言这可能是一个重大且唐突的更改;请在行动前先了解您的修改可能带来的一切后果。",
+       "movepagetext-noredirectfixer": "用下面的表单来重命名一个页面,并将其版本历史同时移动到新页面。\n老的页面将成为新页面的重定向页。\n请检查[[Special:DoubleRedirects|双重重定向]]或[[Special:BrokenRedirects|损坏重定向]]链接。\n您应当负责确定所有链接依然会链到指定的页面。\n\n注意如果新页面已经有内容的话,页面将<strong>不会</strong>被移动,\n除非新页面无内容或是重定向页,而且没有版本历史。\n这意味着您再必要时可以在移动到新页面后再移回老的页面,\n同时您也无法覆盖现有页面。\n\n<strong>注意:</strong>\n对一个经常被访问的页面而言这可能是一个重大与唐突的更改;\n请在行动前先确定您了解其所可能带来的后果。",
        "movepagetalktext": "如果您勾选此框,相关联的讨论页将被自动移动到新的标题,除非这里已经有了一个非空讨论页。\n\n在这种情况下,如有需要,您将不得不手动移动或合并页面。",
        "moveuserpage-warning": "'''警告:'''你将移动一个用户页面。请注意,只有该页面会被移动,该用户''不''会被更名。",
        "movecategorypage-warning": "<strong>警告:</strong>您将移动分类页面。请注意只有此页面将会移动,旧有分类的任何页面将<em>不会</em>同步移动。",
        "movenosubpage": "这个页面没有子页面。",
        "movereason": "原因:",
        "revertmove": "恢复",
-       "delete_and_move_text": "== 需要删除 ==\n\n目标页面“[[:$1]]”已存在。是否确认删除该页面以便进行移动?",
+       "delete_and_move_text": "目标页面“[[:$1]]”已存在。您是否希望删除它以便移动?",
        "delete_and_move_confirm": "是,删除该页面",
        "delete_and_move_reason": "删除以便移动[[$1]]",
        "selfmove": "原始标题和目标标题相同,无法对页面进行自我移动。",
        "move-leave-redirect": "保留重定向",
        "protectedpagemovewarning": "'''警告:'''本页面已被保护,只有拥有管理员权限的用户可以移动。下面提供最后的日志条目以供参考:",
        "semiprotectedpagemovewarning": "'''注意:'''本页面已被保护,只有注册用户可以移动。下面提供最后的日志条目以供参考:",
-       "move-over-sharedrepo": "== 文件已存在 ==\n[[:$1]]已于共享资源存在,将文件移动到此标题会覆盖共享资源中的文件。",
+       "move-over-sharedrepo": "[[:$1]]已在一个共享的存储库存在。将文件移动到此标题将覆盖共享的文件。",
        "file-exists-sharedrepo": "同名文件已于共享资源存在。\n请选择另一个文件名。",
        "export": "导出页面",
        "exporttext": "您可以将特定页面或一组页面的文本以及编辑历史以 XML 格式导出;这样可以将有关页面通过“[[Special:Import|导入页面]]”导入到另一个运行 MediaWiki 的网站。\n\n要导出页面,请在下面的文本框中输入页面标题,每行一个标题,并选择您是否需要导出带有页面历史的以前的版本,或是只选择导出带有最后一次编辑信息的当前版本。\n\n此外您还可以利用链接导出文件,例如您可以使用[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]导出“[[{{MediaWiki:Mainpage}}]]”页面。",
        "lastmodifiedatby": "本页面被$3最后修改于$1 $2。",
        "othercontribs": "基于$1的工作。",
        "others": "其他",
-       "siteusers": "{{SITENAME}}{{PLURAL:$2|用户}}$1",
+       "siteusers": "{{SITENAME}}{{PLURAL:$2|{{GENDER:$1|用户}}}}$1",
        "anonusers": "{{SITENAME}}匿名{{PLURAL:$2|用户}}$1",
        "creditspage": "页面编辑名单",
        "nocredits": "本页面没有编辑名单信息。",
index aeb483c..eae3840 100644 (file)
        "createaccount": "建立帳號",
        "gotaccount": "您已經擁有帳號了嗎? $1。",
        "gotaccountlink": "登入",
-       "userlogin-resetlink": "您忘記了登入的詳細資?",
+       "userlogin-resetlink": "您忘記了登入的詳細資?",
        "userlogin-resetpassword-link": "忘記密碼?",
        "userlogin-helplink2": "登入協助",
        "userlogin-loggedin": "您目前已登入 {{GENDER:$1|$1}} 使用者,\n請使用下列表單改登入另一位使用者。",
        "passwordreset-capture": "檢視電子郵件內容?",
        "passwordreset-capture-help": "若您勾選此核選方塊,電子郵件 (包含臨時密碼) 將直接顯示,並寄給使用者。",
        "passwordreset-email": "電子郵件地址:",
-       "passwordreset-emailtitle": "於 {{SITENAME}} 的帳號詳細資訊",
+       "passwordreset-emailtitle": "{{SITENAME}} 的帳號詳細資料",
        "passwordreset-emailtext-ip": "不明人士 (可能是您自己,來自 IP 位址 $1) 要求重設在 {{SITENAME}} ($4) 的密碼,下列是與此電子郵件地址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略本訊息並且繼續使用您原本的密碼。",
        "passwordreset-emailtext-user": "使用者 $1 要求重設在 {{SITENAME}} ($4) 的密碼,下列是與此電子郵件位址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略此訊息並且繼續使用您原本的密碼。",
        "passwordreset-emailelement": "使用者名稱:\n$1\n\n臨時密碼:\n$2",
        "nosuchsectiontext": "您嘗試編輯的章節並不存在。\n可能在您檢視頁面時已經移動或刪除。",
        "loginreqtitle": "需要登入",
        "loginreqlink": "登入",
-       "loginreqpagetext": "æ\82¨å¿\85é \88 $1 æ\89\8dè\83½檢視其他頁面。",
+       "loginreqpagetext": "æ\82¨å¿\85é \88 $1 æ\96¹å\8f¯檢視其他頁面。",
        "accmailtitle": "密碼已寄出",
        "accmailtext": "[[User talk:$1|$1]] 的隨機密碼已經寄送至 $2,可登入後至 <em>[[Special:ChangePassword|變更密碼]] 頁面更改</em>。",
        "newarticle": "(新)",
        "preferences": "偏好設定",
        "mypreferences": "偏好設定",
        "prefs-edits": "編輯次數:",
-       "prefsnologintext2": "請登入以更改您的偏好設定。",
+       "prefsnologintext2": "請登入以變更您的偏好設定。",
        "prefs-skin": "外觀",
        "skin-preview": "預覽",
        "datedefault": "預設值",
        "newuserlogpage": "建立使用者日誌",
        "newuserlogpagetext": "此為建立使用者的日誌。",
        "rightslog": "使用者權限日誌",
-       "rightslogtext": "此為更改使用者權限的日誌。",
+       "rightslogtext": "此為變更使用者權限的日誌。",
        "action-read": "閱讀此頁面",
        "action-edit": "編輯此頁面",
        "action-createpage": "建立頁面",
        "rc_categories_any": "任何選擇的",
        "rc-change-size-new": "變更後為 $1 位元組",
        "newsectionsummary": "/* $1 */ 新章節",
-       "rc-enhanced-expand": "顯示詳細資",
-       "rc-enhanced-hide": "隱藏詳細資",
+       "rc-enhanced-expand": "顯示詳細資",
+       "rc-enhanced-hide": "隱藏詳細資",
        "rc-old-title": "最初建立的名稱為 \"$1\"",
        "recentchangeslinked": "相關變更",
        "recentchangeslinked-feed": "相關變更",
        "uploaded-image-filter-svg": "於已上傳的 SVG 檔案中找到圖片過濾器使用 URL:<code>&lt;$1 $2=\"$3\"&gt;</code>。",
        "uploadscriptednamespace": "此 SVG 檔案使用了非法的命名空間 \"$1\"。",
        "uploadinvalidxml": "無法解析已上傳檔案中的 XML。",
-       "uploadvirus": "該檔案含有病毒!\n詳細資:$1",
+       "uploadvirus": "該檔案含有病毒!\n詳細資:$1",
        "uploadjava": "該檔案為包含 Java .class 檔案的 ZIP 檔案。\n因 Java 檔案可能跳過安全檢查造成安全性問題,不允許上傳 Java 檔案。",
        "upload-source": "來源檔案",
        "sourcefilename": "來源檔案名稱:",
        "filewasdeleted": "先前已有同樣名稱的檔案上傳,後來被刪除。\n您應在上傳此檔案前檢查 $1。",
        "filename-thumb-name": "此檔名似乎為縮圖檔名,請不要重新上傳縮圖回相同 wiki。 否則請先修正為更具意義的檔案名稱並且去除縮圖的檔名字首。",
        "filename-bad-prefix": "您上傳的檔案名稱以 <strong>\"$1\"</strong> 開頭,是不具任何描述意義的名稱,通常由數位相機自動產生。\n請替您的檔案使用一個更具描述意義的名稱。",
-       "upload-success-subj": "成功上傳",
-       "upload-success-msg": "您已成功使用 [$2] 上傳檔案,可於此處取得檔案:[[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "上傳問題",
-       "upload-failure-msg": "您使用 [$2] 上傳的檔案發生問題:\n\n$1",
-       "upload-warning-subj": "上傳警告",
-       "upload-warning-msg": "您使用 [$2] 上傳的檔案發生問題。 您可以返回 [[Special:Upload/stash/$1|上傳表單]] 更正此問題。",
        "upload-proto-error": "通訊協定不正確",
        "upload-proto-error-text": "遠端上傳檔案需要使用以 <code>http://</code> 或 <code>ftp://</code> 開頭的 URL。",
        "upload-file-error": "內部錯誤",
        "upload-dialog-button-save": "儲存",
        "upload-dialog-button-upload": "上傳",
        "upload-form-label-select-file": "選擇檔案",
-       "upload-form-label-infoform-title": "詳細資",
+       "upload-form-label-infoform-title": "詳細資",
        "upload-form-label-infoform-name": "名稱",
        "upload-form-label-infoform-description": "描述",
        "upload-form-label-usage-title": "用法",
        "nolinkstoimage": "沒有頁面連結到此檔案。",
        "morelinkstoimage": "檢視連結到這個檔案的[[Special:WhatLinksHere/$1|更多連結]]。",
        "linkstoimage-redirect": "$1 (檔案重新導向) $2",
-       "duplicatesoffile": "以下 $1 個檔案與此檔案重複 ([[Special:FileDuplicateSearch/$2|瞭解詳細資]]):",
+       "duplicatesoffile": "以下 $1 個檔案與此檔案重複 ([[Special:FileDuplicateSearch/$2|瞭解詳細資]]):",
        "sharedupload": "此檔案來自 $1 且可能被其他專案所使用。",
        "sharedupload-desc-there": "此檔案來自 $1 且可能被其他專案所使用。\n請參考 [$2 檔案描述頁面] 瞭解進一步資訊。",
        "sharedupload-desc-here": "此檔案來自 $1 且可能被其他專案所使用。\n下方顯示此檔案於 [$2 檔案描述頁面] 的描述內容。",
        "wlheader-showupdated": "在您最後一次檢視過後修改的頁面會以 <strong>粗體</strong> 顯示。",
        "wlnote": "以下為自 $3 $4 之後的 <strong>$2</strong> 小時內所做的 <strong>$1</strong> 次變更。",
        "wlshowlast": "顯示最近 $1 小時 $2 天",
-       "watchlistall2": "全部",
        "watchlist-hide": "隱藏",
        "watchlist-submit": "顯示",
        "wlshowtime": "要顯示的時間長度:",
        "lockedbyandtime": "(由 {{GENDER:$1|$1}} 於 $2 的 $3)",
        "move-page": "移動 $1",
        "move-page-legend": "移動頁面",
-       "movepagetext": "以下表單可以用來重新命名一個頁面,並將該頁面的所有歷史記錄一併移至擁有新名稱的頁面。\n舊標題的頁面將會變成重新導向頁面,指向使用新標題的頁面。\n您可以選擇自動更新所有指向舊頁面的重新導向,讓它們改為指向新頁面。\n若您選擇不自動更新,請檢查有沒有[[Special:DoubleRedirects|雙重重新導向]]或[[Special:BrokenRedirects|損壞的重新導向]]需要修正。\n您有責任讓連結繼續指向正確的地方。\n\n請注意,若新的頁面名稱已經被使用,則此頁面將<strong>不會</strong>移動至該處,除非新名稱下是個重新導向頁面而且沒有任何編輯記錄。\n即是說,您可以將錯誤移動至其他名稱的頁面還原到原有名稱,但不能覆蓋任何現有的頁面。\n\n<strong>警告!</strong>\n這個動作對受歡迎的頁面來說可能是重大而唐突的更改;\n在行動前請先確認您了解移動可能帶來的後果。",
-       "movepagetext-noredirectfixer": "以下表單可以用來重新命名一個頁面,並將該頁面的所有歷史記錄一併移至擁有新名稱的頁面。\n舊標題的頁面將會變成重新導向頁面,指向使用新標題的頁面。\n請檢查有沒有[[Special:DoubleRedirects|雙重重新導向]]或[[Special:BrokenRedirects|損壞的重新導向]]需要修正。\n您有責任讓連結繼續指向正確的地方。\n\n請注意,若新的頁面名稱已經被使用,則此頁面將<strong>不會</strong>移動至該處,除非新名稱下是個重新導向頁面而且沒有任何編輯記錄。\n即是說,您可以將錯誤移動至其他名稱的頁面還原到原有名稱,但不能覆蓋任何現有的頁面。\n\n<strong>警告!</strong>\n這個動作對受歡迎的頁面來說可能是重大而唐突的更改;\n在行動前請先確認您了解移動可能帶來的後果。",
+       "movepagetext": "以下表單可以用來重新命名一個頁面,並將該頁面的所有歷史記錄一併移至擁有新名稱的頁面。\n舊標題的頁面將會變成重新導向頁面,指向使用新標題的頁面。\n您可以選擇自動更新所有指向舊頁面的重新導向,讓它們改為指向新頁面。\n若您選擇不自動更新,請檢查有沒有[[Special:DoubleRedirects|雙重重新導向]]或[[Special:BrokenRedirects|損壞的重新導向]]需要修正。\n您有責任讓連結繼續指向正確的地方。\n\n請注意,若新的頁面名稱已經被使用,則此頁面將<strong>不會</strong>移動至該處,除非新名稱下是個重新導向頁面而且沒有任何編輯歷史。\n即是說,您可以將錯誤移動至其他名稱的頁面還原到原有名稱,但不能覆蓋任何現有的頁面。\n\n<strong>注音:</strong>\n這個動作對受歡迎的頁面來說可能是重大而唐突的變更;\n在行動前請先確認您了解移動可能帶來的後果。",
+       "movepagetext-noredirectfixer": "以下表單可以用來重新命名一個頁面,並將該頁面的所有歷史記錄一併移至擁有新名稱的頁面。\n舊標題的頁面將會變成重新導向頁面,指向使用新標題的頁面。\n請檢查有沒有[[Special:DoubleRedirects|雙重重新導向]]或[[Special:BrokenRedirects|損壞的重新導向]]需要修正。\n您有責任讓連結繼續指向正確的地方。\n\n請注意,若新的頁面名稱已經被使用,則此頁面將<strong>不會</strong>移動至該處,除非新名稱下是個重新導向頁面而且沒有任何編輯歷史。\n即是說,您可以將錯誤移動至其他名稱的頁面還原到原有名稱,但不能覆蓋任何現有的頁面。\n\n<strong>注意:</strong>\n這個動作對受歡迎的頁面來說可能是重大而唐突的變更;\n在行動前請先確認您了解移動可能帶來的後果。",
        "movepagetalktext": "若勾選此方塊,相關的對話頁面會自動與此頁面一起移動至新的位置,除非新的名稱已有一個存在的對話頁面。\n在此情況下,若有必要您必須手動移動或合併已存在的頁面。",
        "moveuserpage-warning": "<strong>警告:</strong>您正要移動使用者頁面,請注意只有使用者頁面會變更名稱,並<em>不會</em>重新命名使用者。",
        "movecategorypage-warning": "<strong>警告:</strong>您正要移動分類頁面。請注意此操作只會移動頁面,在舊分類中的頁面將<em>不會</em>移動到新的分類。",
        "logentry-suppress-delete": "$1 {{GENDER:$2|已禁止顯示}}頁面 $3",
        "logentry-suppress-event": "$1 {{GENDER:$2|已暗中更改}} $3 中 {{PLURAL:$5|1 筆日誌|$5 筆日誌}}的可見性:$4",
        "logentry-suppress-revision": "$1 {{GENDER:$2|已暗中更改}}頁面 $3 中 {{PLURAL:$5|1 筆修訂|$5 筆修訂}}的可見性:$4",
-       "logentry-suppress-event-legacy": "$1 {{GENDER:$2|已暗中更改}} $3 中日誌的可見性",
+       "logentry-suppress-event-legacy": "$1 {{GENDER:$2|已暗中變更}} $3 中日誌的可見性",
        "logentry-suppress-revision-legacy": "$1 {{GENDER:$2|已暗中更改}}頁面 $3 中修訂的可見性",
        "revdelete-content-hid": "已隱藏內容",
        "revdelete-summary-hid": "己隱藏摘要",
index 2322909..6d5472e 100644 (file)
@@ -541,8 +541,6 @@ assert
 astriks
 asymp
 async
-asynccopyuploaddisabled
-asyncdownload
 at
 atend
 atext
@@ -2151,7 +2149,6 @@ lcount
 lcrocker
 ldquo
 le
-leavemessage
 len
 length
 leprop
index b6421f3..34560fd 100644 (file)
@@ -41,6 +41,7 @@ class RebuildRecentchanges extends Maintenance {
                $this->rebuildRecentChangesTablePass2();
                $this->rebuildRecentChangesTablePass3();
                $this->rebuildRecentChangesTablePass4();
+               $this->rebuildRecentChangesTablePass5();
                $this->purgeFeeds();
                $this->output( "Done.\n" );
        }
@@ -281,6 +282,46 @@ class RebuildRecentchanges extends Maintenance {
                }
        }
 
+       /**
+        * Rebuild pass 5: Delete duplicate entries where we generate both a page revision and a log entry
+        * for a single action (upload only, at the moment, but potentially also move, protect, ...).
+        */
+       private function rebuildRecentChangesTablePass5() {
+               $dbw = wfGetDB( DB_MASTER );
+
+               $this->output( "Removing duplicate revision and logging entries...\n" );
+
+               $res = $dbw->select(
+                       array( 'logging', 'log_search' ),
+                       array( 'ls_value', 'ls_log_id' ),
+                       array(
+                               'ls_log_id = log_id',
+                               'ls_field' => 'associated_rev_id',
+                               'log_type' => 'upload',
+                       ),
+                       __METHOD__
+               );
+               foreach ( $res as $obj ) {
+                       $rev_id = $obj->ls_value;
+                       $log_id = $obj->ls_log_id;
+
+                       // Mark the logging row as having an associated rev id
+                       $dbw->update(
+                               'recentchanges',
+                               /*SET*/ array( 'rc_this_oldid' => $rev_id ),
+                               /*WHERE*/ array( 'rc_logid' => $log_id ),
+                               __METHOD__
+                       );
+
+                       // Delete the revision row
+                       $dbw->delete(
+                               'recentchanges',
+                               /*WHERE*/ array( 'rc_this_oldid' => $rev_id, 'rc_logid' => 0 ),
+                               __METHOD__
+                       );
+               }
+       }
+
        /**
         * Purge cached feeds in $messageMemc
         */
index a0cd6a9..1159e53 100644 (file)
@@ -73,8 +73,6 @@ class RefreshLinks extends Maintenance {
        private function doRefreshLinks( $start, $newOnly = false,
                $end = null, $redirectsOnly = false, $oldRedirectsOnly = false
        ) {
-               global $wgParser;
-
                $reportingInterval = 100;
                $dbr = $this->getDB( DB_SLAVE );
 
@@ -85,9 +83,6 @@ class RefreshLinks extends Maintenance {
                // Give extensions a chance to optimize settings
                Hooks::run( 'MaintenanceRefreshLinksInit', array( $this ) );
 
-               # Don't generate extension images (e.g. Timeline)
-               $wgParser->clearTagHooks();
-
                $what = $redirectsOnly ? "redirects" : "links";
 
                if ( $oldRedirectsOnly ) {
index bb75314..bd75b3b 100644 (file)
@@ -86,7 +86,7 @@ TEXT;
 
                $options = array(
                        'LIMIT' => self::BATCH_SIZE,
-                       'ORDER BY' => 'cl_to, cl_type, cl_from',
+                       'ORDER BY' => 'cl_from, cl_to',
                        'STRAIGHT_JOIN',
                );
 
@@ -132,7 +132,7 @@ TEXT;
                        $res = $dbw->select(
                                array( 'categorylinks', 'page' ),
                                array( 'cl_from', 'cl_to', 'cl_sortkey_prefix', 'cl_collation',
-                                       'cl_sortkey', 'cl_type', 'page_namespace', 'page_title'
+                                       'cl_sortkey', 'page_namespace', 'page_title'
                                ),
                                array_merge( $collationConds, $batchConds, array( 'cl_from = page_id' ) ),
                                __METHOD__,
@@ -216,13 +216,13 @@ TEXT;
 
        /**
         * Return an SQL expression selecting rows which sort above the given row,
-        * assuming an ordering of cl_to, cl_type, cl_from
+        * assuming an ordering of cl_from, cl_to
         * @param stdClass $row
         * @param DatabaseBase $dbw
         * @return string
         */
        function getBatchCondition( $row, $dbw ) {
-               $fields = array( 'cl_to', 'cl_type', 'cl_from' );
+               $fields = array( 'cl_from', 'cl_to' );
                $first = true;
                $cond = false;
                $prefix = false;
index 9381752..458d5f1 100644 (file)
@@ -1152,6 +1152,10 @@ return array(
                        'mediawiki.Upload',
                        'oojs',
                ),
+               'messages' => array(
+                       'uploaddisabledtext',
+                       'upload-foreign-cant-upload',
+               )
        ),
        'mediawiki.ForeignStructuredUpload' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.ForeignStructuredUpload.js',
@@ -1757,6 +1761,9 @@ return array(
        ),
        'mediawiki.special.pageLanguage' => array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.pageLanguage.js',
+               'dependencies' => array(
+                       'oojs-ui',
+               ),
        ),
        'mediawiki.special.pagesWithProp' => array(
                'position' => 'top',
@@ -2160,6 +2167,7 @@ return array(
                'dependencies' => array(
                        'oojs-ui',
                ),
+               'targets' => array( 'desktop', 'mobile' ),
        ),
 
        /* es5-shim */
index 629ce32..b0c36c6 100644 (file)
@@ -51,7 +51,7 @@
                $stepDiv = $steps.filter( ':not(:last-child)' ).addClass( 'arrow' ).find( 'div' );
 
                // Execute when complete page is fully loaded, including all frames, objects and images
-               $( window ).load( function () {
+               $( window ).on( 'load', function () {
                        arrowWidth = parseInt( $el.outerHeight(), 10 );
                        $stepDiv.css( paddingSide, arrowWidth.toString() + 'px' );
                } );
index 7c2269f..edfbe1e 100644 (file)
@@ -1,9 +1,11 @@
-( function ( $ ) {
-       $( document ).ready( function () {
-
+/*!
+ * JavaScript module used on Special:PageLanguage
+ */
+( function ( $, OO ) {
+       $( function () {
                // Select the 'Language select' option if user is trying to select language
-               $( '#mw-pl-languageselector' ).on( 'click', function () {
-                       $( '#mw-pl-options-2' ).prop( 'checked', true );
+               OO.ui.infuse( 'mw-pl-languageselector' ).on( 'change', function () {
+                       OO.ui.infuse( 'mw-pl-options' ).setValue( '2' );
                } );
        } );
-}( jQuery ) );
+}( jQuery, OO ) );
index 510068a..dffcbdd 100644 (file)
                this.pushPending();
 
                $.when.apply( $, promises ).done( function () {
-                       var categories, categoryNames,
+                       var categoryNames,
                                allData = [],
                                dataSets = Array.prototype.slice.apply( arguments );
 
                        // Collect values from all results
                        allData = allData.concat.apply( allData, dataSets );
 
-                       // Remove duplicates
-                       categories = allData.filter( function ( value, index, self ) {
-                               return self.indexOf( value ) === index;
-                       } );
-
-                       // Get titles
-                       categoryNames = categories.map( function ( name ) {
-                               return mw.Title.newFromText( name, NS_CATEGORY ).getMainText();
-                       } );
+                       categoryNames = allData
+                               // Remove duplicates
+                               .filter( function ( value, index, self ) {
+                                       return self.indexOf( value ) === index;
+                               } )
+                               // Get Title objects
+                               .map( function ( name ) {
+                                       return mw.Title.newFromText( name );
+                               } )
+                               // Keep only titles from 'Category' namespace
+                               .filter( function ( title ) {
+                                       return title && title.getNamespaceId() === NS_CATEGORY;
+                               } )
+                               // Convert back to strings, strip 'Category:' prefix
+                               .map( function ( title ) {
+                                       return title.getMainText();
+                               } );
 
                        deferred.resolve( categoryNames );
 
        CSP.createItemWidget = function ( data ) {
                return new mw.widgets.CategoryCapsuleItemWidget( {
                        apiUrl: this.api.apiUrl || undefined,
-                       title: mw.Title.newFromText( data, NS_CATEGORY )
+                       title: mw.Title.makeTitle( NS_CATEGORY, data )
                } );
        };
 
        CSP.getItemFromData = function ( data ) {
                // This is a bit of a hack... We have to canonicalize the data in the same way that
                // #createItemWidget and CategoryCapsuleItemWidget will do, otherwise we won't find duplicates.
-               data = mw.Title.newFromText( data, NS_CATEGORY ).getMainText();
+               data = mw.Title.makeTitle( NS_CATEGORY, data ).getMainText();
                return OO.ui.mixin.GroupElement.prototype.getItemFromData.call( this, data );
        };
 
index fc1007e..101a606 100644 (file)
         *
         * @constructor
         * @cfg {boolean} [suggestions=true] Display search suggestions
+        * @cfg {RegExp|Function|string} [validate] Perform title validation
         */
        mw.widgets.TitleInputWidget = function MwWidgetsTitleInputWidget( config ) {
                config = config || {};
 
                // Parent constructor
                mw.widgets.TitleInputWidget.parent.call( this, $.extend( {}, config, {
-                       validate: this.isQueryValid.bind( this ),
+                       validate: config.validate !== undefined ? config.validate : this.isQueryValid.bind( this ),
                        autocomplete: false
                } ) );
 
index 614c001..3036237 100644 (file)
                                } );
                        } );
 
-                       $iframe.error( function ( error ) {
+                       $iframe.on( 'error', function ( error ) {
                                deferred.reject( 'http', error );
                        } );
 
index 6813ea6..97d81fb 100644 (file)
         * @inheritdoc
         */
        mw.ForeignStructuredUpload.BookletLayout.prototype.initialize = function () {
-               var deferred = $.Deferred();
-               mw.ForeignStructuredUpload.BookletLayout.parent.prototype.initialize.call( this )
-                       .done( function () {
+               var booklet = this;
+               return mw.ForeignStructuredUpload.BookletLayout.parent.prototype.initialize.call( this ).then(
+                       function () {
                                // Point the CategorySelector to the right wiki
-                               this.upload.getApi().done( function ( api ) {
-                                       // If this is a ForeignApi, it will have a apiUrl, otherwise we don't need to do anything
-                                       if ( api.apiUrl ) {
-                                               // Can't reuse the same object, CategorySelector calls #abort on its mw.Api instance
-                                               this.categoriesWidget.api = new mw.ForeignApi( api.apiUrl );
+                               return booklet.upload.getApi().then(
+                                       function ( api ) {
+                                               // If this is a ForeignApi, it will have a apiUrl, otherwise we don't need to do anything
+                                               if ( api.apiUrl ) {
+                                                       // Can't reuse the same object, CategorySelector calls #abort on its mw.Api instance
+                                                       booklet.categoriesWidget.api = new mw.ForeignApi( api.apiUrl );
+                                               }
+                                               return $.Deferred().resolve();
+                                       },
+                                       function () {
+                                               return $.Deferred().resolve();
                                        }
-                                       deferred.resolve();
-                               }.bind( this ) );
-                       }.bind( this ) );
-               return deferred.promise();
+                               );
+                       },
+                       function () {
+                               return $.Deferred().resolve();
+                       }
+               );
        };
 
        /**
index aa08b6c..1a0b59a 100644 (file)
                if ( this.target === 'local' ) {
                        // If local uploads were requested, but they are disabled, fail.
                        if ( !mw.config.get( 'wgEnableUploads' ) ) {
-                               throw new Error( 'Local uploads are disabled' );
+                               this.apiPromise = $.Deferred().reject( 'uploaddisabledtext' );
+                       } else {
+                               // We'll ignore the CORS and centralauth stuff if the target is
+                               // the local wiki.
+                               this.apiPromise = $.Deferred().resolve( new mw.Api( apiconfig ) );
                        }
-                       // We'll ignore the CORS and centralauth stuff if the target is
-                       // the local wiki.
-                       this.apiPromise = $.Deferred().resolve( new mw.Api( apiconfig ) );
                } else {
                        api = new mw.Api();
                        this.apiPromise = api.get( {
@@ -76,7 +77,7 @@
                                        }
                                }
 
-                               throw new Error( 'Can not upload to requested foreign repo' );
+                               return $.Deferred().reject( 'upload-foreign-cant-upload' );
                        } );
                }
 
index 033636c..ec2a4b1 100644 (file)
@@ -6,6 +6,7 @@
 ( function ( mw, $ ) {
        /*jshint latedef:false */
 
+       // jscs:disable jsDoc
        /**
         * @class mw.Title
         *
         * logic directly and get null for invalid titles which is easier to work with.
         *
         * @constructor
+        *
+        * Note that in the constructor amd #newFromText method, `namespace` is the **default** namespace
+        * only, and can be overridden by a namespace prefix in `title`. If you do not want this behavior,
+        * use #makeTitle. Compare:
+        *
+        *     new mw.Title( 'Foo', NS_TEMPLATE ).getPrefixedText();                  // => 'Template:Foo'
+        *     mw.Title.newFromText( 'Foo', NS_TEMPLATE ).getPrefixedText();          // => 'Template:Foo'
+        *     mw.Title.makeTitle( NS_TEMPLATE, 'Foo' ).getPrefixedText();            // => 'Template:Foo'
+        *
+        *     new mw.Title( 'Category:Foo', NS_TEMPLATE ).getPrefixedText();         // => 'Category:Foo'
+        *     mw.Title.newFromText( 'Category:Foo', NS_TEMPLATE ).getPrefixedText(); // => 'Category:Foo'
+        *     mw.Title.makeTitle( NS_TEMPLATE, 'Category:Foo' ).getPrefixedText();   // => 'Template:Category:Foo'
+        *
+        *     new mw.Title( 'Template:Foo', NS_TEMPLATE ).getPrefixedText();         // => 'Template:Foo'
+        *     mw.Title.newFromText( 'Template:Foo', NS_TEMPLATE ).getPrefixedText(); // => 'Template:Foo'
+        *     mw.Title.makeTitle( NS_TEMPLATE, 'Template:Foo' ).getPrefixedText();   // => 'Template:Template:Foo'
+        *
         * @param {string} title Title of the page. If no second argument given,
         *  this will be searched for a namespace
         * @param {number} [namespace=NS_MAIN] If given, will used as default namespace for the given title
@@ -32,6 +50,7 @@
 
                return this;
        }
+       // jscs:enable jsDoc
 
        /* Private members */
 
                return id;
        },
 
+       /**
+        * @private
+        * @method getNamespacePrefix_
+        * @param {number} namespace
+        * @return {string}
+        */
+       getNamespacePrefix = function ( namespace ) {
+               return namespace === NS_MAIN ?
+                       '' :
+                       ( mw.config.get( 'wgFormattedNamespaces' )[ namespace ].replace( / /g, '_' ) + ':' );
+       },
+
        rUnderscoreTrim = /^_+|_+$/g,
 
        rSplit = /^(.+?)_*:_*(.*)$/,
        ],
 
        /**
-        * Internal helper for #constructor and #newFromtext.
+        * Internal helper for #constructor and #newFromText.
         *
         * Based on Title.php#secureAndSplit
         *
        /**
         * Constructor for Title objects with a null return instead of an exception for invalid titles.
         *
+        * Note that `namespace` is the **default** namespace only, and can be overridden by a namespace
+        * prefix in `title`. If you do not want this behavior, use #makeTitle. See #constructor for
+        * details.
+        *
         * @static
         * @param {string} title
         * @param {number} [namespace=NS_MAIN] Default namespace
                return t;
        };
 
+       /**
+        * Constructor for Title objects with predefined namespace.
+        *
+        * Unlike #newFromText or #constructor, this function doesn't allow the given `namespace` to be
+        * overridden by a namespace prefix in `title`. See #constructor for details about this behavior.
+        *
+        * The single exception to this is when `namespace` is 0, indicating the main namespace. The
+        * function behaves like #newFromText in that case.
+        *
+        * @static
+        * @param {number} namespace Namespace to use for the title
+        * @param {string} title
+        * @return {mw.Title|null} A valid Title object or null if the title is invalid
+        */
+       Title.makeTitle = function ( namespace, title ) {
+               return mw.Title.newFromText( getNamespacePrefix( namespace ) + title );
+       };
+
        /**
         * Constructor for Title objects from user input altering that input to
         * produce a title that MediaWiki will accept as legal
                 * @return {string}
                 */
                getNamespacePrefix: function () {
-                       return this.namespace === NS_MAIN ?
-                               '' :
-                               ( mw.config.get( 'wgFormattedNamespaces' )[ this.namespace ].replace( / /g, '_' ) + ':' );
+                       return getNamespacePrefix( this.namespace );
                },
 
                /**
index 84b33fd..c8d64b9 100644 (file)
         * @return {jQuery.Promise} Promise resolved when everything is initialized
         */
        mw.Upload.BookletLayout.prototype.initialize = function () {
-               var
-                       booklet = this,
-                       deferred = $.Deferred();
+               var booklet = this;
 
                this.clear();
                this.upload = this.createUpload();
                this.setPage( 'upload' );
 
-               this.upload.getApi().done( function ( api ) {
-                       // If the user can't upload anything, don't give them the option to.
-                       api.getUserInfo().done( function ( userInfo ) {
-                               if ( userInfo.rights.indexOf( 'upload' ) === -1 ) {
-                                       // TODO Use a better error message when not all logged-in users can upload
-                                       booklet.getPage( 'upload' ).$element.msg( 'api-error-mustbeloggedin' );
-                               }
-                       } ).always( function () {
-                               deferred.resolve();
-                       } );
-               } );
-
-               return deferred.promise();
+               return this.upload.getApi().then(
+                       function ( api ) {
+                               // If the user can't upload anything, don't give them the option to.
+                               return api.getUserInfo().then(
+                                       function ( userInfo ) {
+                                               if ( userInfo.rights.indexOf( 'upload' ) === -1 ) {
+                                                       // TODO Use a better error message when not all logged-in users can upload
+                                                       booklet.getPage( 'upload' ).$element.msg( 'api-error-mustbeloggedin' );
+                                               }
+                                               return $.Deferred().resolve();
+                                       },
+                                       function () {
+                                               return $.Deferred().resolve();
+                                       }
+                               );
+                       },
+                       function ( errorMsg ) {
+                               booklet.getPage( 'upload' ).$element.msg( errorMsg );
+                               return $.Deferred().resolve();
+                       }
+               );
        };
 
        /**
                        warnings = stateDetails.upload && stateDetails.upload.warnings;
 
                if ( state === mw.Upload.State.ERROR ) {
+                       if ( !error ) {
+                               // If there's an 'exception' key, this might be a timeout, or other connection problem
+                               return new OO.ui.Error(
+                                       $( '<p>' ).msg( 'api-error-unknownerror', JSON.stringify( stateDetails ) ),
+                                       { recoverable: false }
+                               );
+                       }
+
                        // HACK We should either have a hook here to allow TitleBlacklist to handle this, or just have
                        // TitleBlacklist produce sane error messages that can be displayed without arcane knowledge
                        if ( error.info === 'TitleBlacklist prevents this title from being created' ) {
index d6e0157..260fd37 100644 (file)
@@ -1,7 +1,6 @@
 /* OOUIHTMLForm styles */
 
 .mw-htmlform-ooui-wrapper {
-       width: 50em;
        margin: 1em 0;
 }
 
index ada4924..0fcd22c 100644 (file)
@@ -6,6 +6,7 @@
                // queries the wiki and calls response with the result
                request: function ( api, query, response, maxRows ) {
                        return api.get( {
+                               formatversion: 2,
                                action: 'opensearch',
                                search: query,
                                namespace: 0,
index f9810f9..cc983e4 100644 (file)
                 * (e.g. `'#foobar'`) for that item.
                 *
                 *     mw.util.addPortletLink(
-                *         'p-tb', 'http://mediawiki.org/',
-                *         'MediaWiki.org', 't-mworg', 'Go to MediaWiki.org ', 'm', '#t-print'
+                *         'p-tb', 'https://www.mediawiki.org/',
+                *         'mediawiki.org', 't-mworg', 'Go to mediawiki.org', 'm', '#t-print'
                 *     );
                 *
+                *     var node = mw.util.addPortletLink(
+                *         'p-tb',
+                *         new mw.Title( 'Special:Example' ).getUrl(),
+                *         'Example'
+                *     );
+                *     $( node ).on( 'click', function ( e ) {
+                *         console.log( 'Example' );
+                *         e.preventDefault();
+                *     } );
+                *
                 * @param {string} portlet ID of the target portlet ( 'p-cactions' or 'p-personal' etc.)
                 * @param {string} href Link URL
                 * @param {string} text Link text
index f4ddfb2..05f454c 100644 (file)
@@ -48,6 +48,7 @@ $wgAutoloadClasses += array(
        'LessFileCompilationTest' => "$testDir/phpunit/LessFileCompilationTest.php",
 
        # tests/phpunit/includes
+       'RevisionStorageTest' => "$testDir/phpunit/includes/RevisionStorageTest.php",
        'TestingAccessWrapper' => "$testDir/phpunit/includes/TestingAccessWrapper.php",
        'TestLogger' => "$testDir/phpunit/includes/TestLogger.php",
 
@@ -86,6 +87,9 @@ $wgAutoloadClasses += array(
        # tests/phpunit/includes/logging
        'LogFormatterTestCase' => "$testDir/phpunit/includes/logging/LogFormatterTestCase.php",
 
+       # tests/phpunit/includes/page
+       'WikiPageTest' => "$testDir/phpunit/includes/page/WikiPageTest.php",
+
        # tests/phpunit/includes/password
        'PasswordTestCase' => "$testDir/phpunit/includes/password/PasswordTestCase.php",
 
index cd2b769..078fa6c 100644 (file)
@@ -2520,7 +2520,6 @@ Barack Obama <President> of the United States
 </p>
 !! end
 
-## PHP parser discards the "<pre " string
 !! test
 Handle broken pre-like tags (bug 64025)
 !! options
@@ -2531,8 +2530,13 @@ parsoid=wt2html
 <table><pre </table>
 !! html/php
 <pre>x</pre>
-<table><pre></pre></table>
+<table>&lt;pre </table>
 
+!! html/php+tidy
+<pre>
+x
+</pre>
+<p>&lt;pre</p>
 !! html/parsoid
 <pre about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"a":{"&lt;pre":null},"sa":{"&lt;pre":""},"stx":"html","pi":[[{"k":"1","spc":["","","",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;pre &lt;pre>x&lt;/pre>"}},"i":0}}]}'>x</pre>
 
@@ -8783,6 +8787,40 @@ Mixed list
 
 !! end
 
+!! test
+1. Nested mixed wikitext and html list
+!! wikitext
+* hi
+* <ul><li>ho</li></ul>
+* hi
+** ho
+!! html/php
+<ul><li> hi</li>
+<li> <ul><li>ho</li></ul></li>
+<li> hi
+<ul><li> ho</li></ul></li></ul>
+
+!! html/parsoid
+<ul><li> hi</li>
+<li> <ul data-parsoid='{"stx":"html"}'><li data-parsoid='{"stx":"html"}'>ho</li></ul></li>
+<li> hi
+<ul><li> ho</li></ul></li></ul>
+!! end
+
+!! test
+2. Nested mixed wikitext and html list (incompatible)
+!! wikitext
+; hi
+: {{echo|<li>ho</li>}}
+!! html/php
+<dl><dt> hi</dt>
+<dd> <li>ho</li></dd></dl>
+
+!! html/parsoid
+<dl><dt> hi</dt>
+<dd> <li about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"stx":"html","pi":[[{"k":"1","spc":["","","",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;li>ho&lt;/li>"}},"i":0}}]}'>ho</li></dd></dl>
+!! end
+
 !! test
 Nested lists 1
 !! wikitext
@@ -10653,6 +10691,43 @@ foo {{''}} baz
 </p>
 !! end
 
+## This test is about making sure Parsoid's data-mw is well formed in the
+## face of multiple templates with intersecting and overlapping ranges.  The
+## wikitext itself is wretched.
+!! test
+Templates with intersecting and overlapping ranges
+!! wikitext
+{|{{echo|
+<p>ha</p>}}
+{|{{echo|
+<p>ho</p>}}
+{{echo|{{!}}hi}}
+|}
+!! html/php+tidy
+<p>ha</p>
+<p>ho</p>
+<table>
+<tr>
+<td></td>
+</tr>
+<tr>
+<td>hi</td>
+</tr>
+</table>
+<table>
+<tr>
+<td></td>
+</tr>
+</table>
+!! html/parsoid
+<p about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"stx":"html","autoInsertedEnd":true,"pi":[[{"k":"1","spc":["","","",""]}],[{"k":"1","spc":["","","",""]}],[{"k":"1","spc":["","","",""]}]],"firstWikitextNode":"table"}' data-mw='{"parts":["{|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"\n&lt;p>ha&lt;/p>"}},"i":0}},"\n","{|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"\n&lt;p>ho&lt;/p>"}},"i":1}},"\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{!}}hi"}},"i":2}},"\n|}"]}'>ha</p><table about="#mwt1" typeof="mw:ExpandedAttrs" data-mw='{"attribs":[[{"txt":"","html":""},{"html":""}]]}'>
+
+</table><p about="#mwt1">ho</p><table about="#mwt1" typeof="mw:ExpandedAttrs" data-mw='{"attribs":[[{"txt":"","html":""},{"html":""}]]}'>
+
+<tbody><tr><td>hi</td></tr>
+</tbody></table>
+!! end
+
 !! article
 Template:MSGNW test
 !! text
@@ -10876,6 +10951,8 @@ Un-closed <includeonly>
 !! wikitext
 <includeonly>
 !! html
+<p>&lt;includeonly&gt;
+</p>
 !! end
 
 ## We used to, but no longer wt2wt this test since the default serializer
@@ -18294,8 +18371,6 @@ image4    |300px| centre
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="height: 150px;">Image2.gif</div>
                        <div class="gallerytext">
-<p>||||
-</p>
                        </div>
                </div></li>
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
@@ -18306,8 +18381,8 @@ image4    |300px| centre
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="height: 150px;">Image4</div>
                        <div class="gallerytext">
-<p>300px| centre
-</p>
+<pre>centre
+</pre>
                        </div>
                </div></li>
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
@@ -18366,7 +18441,7 @@ image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla.
                <li class="gallerybox" style="width: 105px"><div style="width: 105px">
                        <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="This is a foo-bar." src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
-<p>Blabla|blabla.
+<p>blabla.
 </p>
                        </div>
                </div></li>
@@ -20685,9 +20760,11 @@ HTML5 data attributes
 Strip reserved data attributes
 !! wikitext
 <div data-mw="foo" data-parsoid="bar" data-mw-someext="baz" data-ok="fred" data-ooui="xyzzy" data-bad:ns="ns">d</div>
-!! html
+!! html/php
 <div data-ok="fred">d</div>
 
+!! html/parsoid
+<div data-x-data-mw="foo" data-x-data-parsoid="bar" data-x-data-mw-someext="baz" data-ok="fred" data-parsoid='{"stx":"html","a":{"data-ooui":null,"data-bad:ns":null},"sa":{"data-ooui":"xyzzy","data-bad:ns":"ns"}}'>d</div>
 !! end
 
 !! test
index a45cfbb..f2b5a14 100644 (file)
@@ -17,9 +17,20 @@ class WellProtectedParentClass {
 }
 
 class WellProtectedClass extends WellProtectedParentClass {
+       protected static $staticProperty = 'sp';
+       private static $staticPrivateProperty = 'spp';
+
        protected $property;
        private $privateProperty;
 
+       protected static function staticMethod() {
+               return 'sm';
+       }
+
+       private static function staticPrivateMethod() {
+               return 'spm';
+       }
+
        public function __construct() {
                parent::__construct();
                $this->property = 1;
index 3c45f30..fabc5c6 100644 (file)
@@ -28,6 +28,8 @@ class MimeMagicTest extends PHPUnit_Framework_TestCase {
                        array( 'txt', 'text/plain', 'text/plain' ),
                        array( 'csv', 'text/plain', 'text/csv' ),
                        array( 'tsv', 'text/plain', 'text/tab-separated-values' ),
+                       array( 'js', 'text/javascript', 'application/javascript' ),
+                       array( 'js', 'application/x-javascript', 'application/javascript' ),
                        array( 'json', 'text/plain', 'application/json' ),
                        array( 'foo', 'application/x-opc+zip', 'application/zip' ),
                        array( 'docx', 'application/x-opc+zip',
index 63d8971..7332e15 100644 (file)
  *    $formatter = $title->getTitleFormatter();
  *
  * TODO:
- * - Provide access to static methods and properties.
  * - Organize other helper classes in tests/testHelpers.inc into a directory.
  */
 class TestingAccessWrapper {
+       /** @var mixed The object, or the class name for static-only access */
        public $object;
 
        /**
         * Return the same object, without access restrictions.
         */
        public static function newFromObject( $object ) {
+               if ( !is_object( $object ) ) {
+                       throw new InvalidArgumentException( __METHOD__ . ' must be called with an object' );
+               }
                $wrapper = new TestingAccessWrapper();
                $wrapper->object = $object;
                return $wrapper;
        }
 
+       /**
+        * Allow access to non-public static methods and properties of the class.
+        * Use non-static access,
+        */
+       public static function newFromClass( $className ) {
+               if ( !is_string( $className ) ) {
+                       throw new InvalidArgumentException( __METHOD__ . ' must be called with a class name' );
+               }
+               $wrapper = new TestingAccessWrapper();
+               $wrapper->object = $className;
+               return $wrapper;
+       }
+
        public function __call( $method, $args ) {
+               $methodReflection = $this->getMethod( $method );
+
+               if ( $this->isStatic() && !$methodReflection->isStatic() ) {
+                       throw new DomainException( __METHOD__ . ': Cannot call non-static when wrapping static class' );
+               }
+
+               return $methodReflection->invokeArgs( $methodReflection->isStatic() ? null : $this->object,
+                       $args );
+       }
+
+       public function __set( $name, $value ) {
+               $propertyReflection = $this->getProperty( $name );
+
+               if ( $this->isStatic() && !$propertyReflection->isStatic() ) {
+                       throw new DomainException( __METHOD__ . ': Cannot set property when wrapping static class' );
+               }
+
+               $propertyReflection->setValue( $this->object, $value );
+       }
+
+       public function __get( $name ) {
+               $propertyReflection = $this->getProperty( $name );
+
+               if ( $this->isStatic() && !$propertyReflection->isStatic() ) {
+                       throw new DomainException( __METHOD__ . ': Cannot get property when wrapping static class' );
+               }
+
+               return $propertyReflection->getValue( $this->object );
+       }
+
+       private function isStatic() {
+               return is_string( $this->object );
+       }
+
+       /**
+        * Return a property and make it accessible.
+        * @param string $name
+        * @return ReflectionMethod
+        */
+       private function getMethod( $name ) {
                $classReflection = new ReflectionClass( $this->object );
-               $methodReflection = $classReflection->getMethod( $method );
+               $methodReflection = $classReflection->getMethod( $name );
                $methodReflection->setAccessible( true );
-               return $methodReflection->invokeArgs( $this->object, $args );
+               return $methodReflection;
        }
 
        /**
+        * Return a property and make it accessible.
+        *
         * ReflectionClass::getProperty() fails if the private property is defined
         * in a parent class. This works more like ReflectionClass::getMethod().
+        *
+        * @param string $name
+        * @return ReflectionProperty
+        * @throws ReflectionException
         */
        private function getProperty( $name ) {
                $classReflection = new ReflectionClass( $this->object );
                try {
-                       return $classReflection->getProperty( $name );
+                       $propertyReflection = $classReflection->getProperty( $name );
                } catch ( ReflectionException $ex ) {
                        while ( true ) {
                                $classReflection = $classReflection->getParentClass();
@@ -54,23 +116,13 @@ class TestingAccessWrapper {
                                        continue;
                                }
                                if ( $propertyReflection->isPrivate() ) {
-                                       return $propertyReflection;
+                                       break;
                                } else {
                                        throw $ex;
                                }
                        }
                }
-       }
-
-       public function __set( $name, $value ) {
-               $propertyReflection = $this->getProperty( $name );
                $propertyReflection->setAccessible( true );
-               $propertyReflection->setValue( $this->object, $value );
-       }
-
-       public function __get( $name ) {
-               $propertyReflection = $this->getProperty( $name );
-               $propertyReflection->setAccessible( true );
-               return $propertyReflection->getValue( $this->object );
+               return $propertyReflection;
        }
 }
index fc54afa..23eb023 100644 (file)
@@ -3,6 +3,7 @@
 class TestingAccessWrapperTest extends MediaWikiTestCase {
        protected $raw;
        protected $wrapped;
+       protected $wrappedStatic;
 
        function setUp() {
                parent::setUp();
@@ -10,12 +11,38 @@ class TestingAccessWrapperTest extends MediaWikiTestCase {
                require_once __DIR__ . '/../data/helpers/WellProtectedClass.php';
                $this->raw = new WellProtectedClass();
                $this->wrapped = TestingAccessWrapper::newFromObject( $this->raw );
+               $this->wrappedStatic = TestingAccessWrapper::newFromClass( 'WellProtectedClass' );
+       }
+
+       /**
+        * @expectedException InvalidArgumentException
+        */
+       function testConstructorException() {
+               TestingAccessWrapper::newFromObject( 'WellProtectedClass' );
+       }
+
+       /**
+        * @expectedException InvalidArgumentException
+        */
+       function testStaticConstructorException() {
+               TestingAccessWrapper::newFromClass( new WellProtectedClass() );
        }
 
        function testGetProperty() {
                $this->assertSame( 1, $this->wrapped->property );
                $this->assertSame( 42, $this->wrapped->privateProperty );
                $this->assertSame( 9000, $this->wrapped->privateParentProperty );
+               $this->assertSame( 'sp', $this->wrapped->staticProperty );
+               $this->assertSame( 'spp', $this->wrapped->staticPrivateProperty );
+               $this->assertSame( 'sp', $this->wrappedStatic->staticProperty );
+               $this->assertSame( 'spp', $this->wrappedStatic->staticPrivateProperty );
+       }
+
+       /**
+        * @expectedException DomainException
+        */
+       function testGetException() {
+               $this->wrappedStatic->property;
        }
 
        function testSetProperty() {
@@ -30,6 +57,33 @@ class TestingAccessWrapperTest extends MediaWikiTestCase {
                $this->wrapped->privateParentProperty = 12;
                $this->assertSame( 12, $this->wrapped->privateParentProperty );
                $this->assertSame( 12, $this->raw->getPrivateParentProperty() );
+
+               $this->wrapped->staticProperty = 'x';
+               $this->assertSame( 'x', $this->wrapped->staticProperty );
+               $this->assertSame( 'x', $this->wrappedStatic->staticProperty );
+
+               $this->wrapped->staticPrivateProperty = 'y';
+               $this->assertSame( 'y', $this->wrapped->staticPrivateProperty );
+               $this->assertSame( 'y', $this->wrappedStatic->staticPrivateProperty );
+
+               $this->wrappedStatic->staticProperty = 'X';
+               $this->assertSame( 'X', $this->wrapped->staticProperty );
+               $this->assertSame( 'X', $this->wrappedStatic->staticProperty );
+
+               $this->wrappedStatic->staticPrivateProperty = 'Y';
+               $this->assertSame( 'Y', $this->wrapped->staticPrivateProperty );
+               $this->assertSame( 'Y', $this->wrappedStatic->staticPrivateProperty );
+
+               // don't rely on PHPUnit to restore static properties
+               $this->wrapped->staticProperty = 'sp';
+               $this->wrapped->staticPrivateProperty = 'spp';
+       }
+
+       /**
+        * @expectedException DomainException
+        */
+       function testSetException() {
+               $this->wrappedStatic->property = 1;
        }
 
        function testCallMethod() {
@@ -44,9 +98,22 @@ class TestingAccessWrapperTest extends MediaWikiTestCase {
                $this->wrapped->incrementPrivateParentPropertyValue();
                $this->assertSame( 9001, $this->wrapped->privateParentProperty );
                $this->assertSame( 9001, $this->raw->getPrivateParentProperty() );
+
+               $this->assertSame( 'sm', $this->wrapped->staticMethod() );
+               $this->assertSame( 'spm', $this->wrapped->staticPrivateMethod() );
+               $this->assertSame( 'sm', $this->wrappedStatic->staticMethod() );
+               $this->assertSame( 'spm', $this->wrappedStatic->staticPrivateMethod() );
        }
 
        function testCallMethodTwoArgs() {
                $this->assertSame( 'two', $this->wrapped->whatSecondArg( 'one', 'two' ) );
        }
+
+       /**
+        * @expectedException DomainException
+        */
+       function testCallMethodException() {
+               $this->wrappedStatic->incrementPropertyValue();
+       }
+
 }
index 40de254..18f0f79 100644 (file)
@@ -83,7 +83,7 @@ class ApiUploadTest extends ApiTestCaseUpload {
                        ), $session, self::$users['uploader']->getUser() );
                } catch ( UsageException $e ) {
                        $exception = true;
-                       $this->assertEquals( "One of the parameters filekey, file, url, statuskey is required",
+                       $this->assertEquals( "One of the parameters filekey, file, url is required",
                                $e->getMessage() );
                }
                $this->assertTrue( $exception, "Got exception" );
index 226e492..4224443 100644 (file)
@@ -34,7 +34,7 @@ class PageLangLogFormatterTest extends LogFormatterTestCase {
                                        ),
                                ),
                                array(
-                                       'text' => 'User changed page language for Page from English (en) to Deutsch (de) [default].',
+                                       'text' => 'User changed the language of Page from English (en) to Deutsch (de) [default]',
                                        'api' => array(
                                                'oldlanguage' => 'en',
                                                'newlanguage' => 'de[def]'
index 1ebba1a..b940230 100644 (file)
@@ -48,7 +48,7 @@ class PreprocessorTest extends MediaWikiTestCase {
                        array( "<noinclude> Foo bar </noinclude>", "<root><ignore>&lt;noinclude&gt;</ignore> Foo bar <ignore>&lt;/noinclude&gt;</ignore></root>" ),
                        array( "<noinclude>\n{{Foo}}\n</noinclude>", "<root><ignore>&lt;noinclude&gt;</ignore>\n<template lineStart=\"1\"><title>Foo</title></template>\n<ignore>&lt;/noinclude&gt;</ignore></root>" ),
                        array( "<noinclude>\n{{Foo}}\n</noinclude>\n", "<root><ignore>&lt;noinclude&gt;</ignore>\n<template lineStart=\"1\"><title>Foo</title></template>\n<ignore>&lt;/noinclude&gt;</ignore>\n</root>" ),
-                       array( "<gallery>foo bar", "<root><ext><name>gallery</name><attr></attr><inner>foo bar</inner></ext></root>" ),
+                       array( "<gallery>foo bar", "<root>&lt;gallery&gt;foo bar</root>" ),
                        array( "<{{foo}}>", "<root>&lt;<template><title>foo</title></template>&gt;</root>" ),
                        array( "<{{{foo}}}>", "<root>&lt;<tplarg><title>foo</title></tplarg>&gt;</root>" ),
                        array( "<gallery></gallery</gallery>", "<root><ext><name>gallery</name><attr></attr><inner>&lt;/gallery</inner><close>&lt;/gallery&gt;</close></ext></root>" ),
index a73bf7c..702f556 100644 (file)
@@ -382,7 +382,7 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                $this->assertSame( '', $request->response()->getCookie( 'xUserID' ) );
                $this->assertSame( null, $request->response()->getCookie( 'xUserName' ) );
                $this->assertSame( '', $request->response()->getCookie( 'xToken' ) );
-               $this->assertSame( null, $request->response()->getCookie( 'forceHTTPS' ) );
+               $this->assertSame( '', $request->response()->getCookie( 'forceHTTPS' ) );
                $this->assertSame( array(), $backend->getData() );
 
                // Logged-in user, no remember
@@ -395,7 +395,7 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                $this->assertSame( (string)$user->getId(), $request->response()->getCookie( 'xUserID' ) );
                $this->assertSame( $user->getName(), $request->response()->getCookie( 'xUserName' ) );
                $this->assertSame( '', $request->response()->getCookie( 'xToken' ) );
-               $this->assertSame( null, $request->response()->getCookie( 'forceHTTPS' ) );
+               $this->assertSame( '', $request->response()->getCookie( 'forceHTTPS' ) );
                $this->assertSame( array(), $backend->getData() );
 
                // Logged-in user, remember
@@ -431,7 +431,7 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                        'cookieOptions' => array( 'prefix' => 'x' ),
                ) );
                $config = $this->getConfig();
-               $config->set( 'CookieSecure', false );
+               $config->set( 'CookieSecure', $secure );
                $provider->setLogger( new \TestLogger() );
                $provider->setConfig( $config );
                $provider->setManager( SessionManager::singleton() );
@@ -488,10 +488,10 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                                'value' => $remember ? $user->getToken() : '',
                                'expire' => $remember ? $extendedExpiry : -31536000,
                        ) + $defaults,
-                       'forceHTTPS' => !$secure ? null : array(
-                               'value' => 'true',
+                       'forceHTTPS' => array(
+                               'value' => $secure ? 'true' : '',
                                'secure' => false,
-                               'expire' => $remember ? $defaults['expire'] : null,
+                               'expire' => $secure ? $remember ? $defaults['expire'] : 0 : -31536000,
                        ) + $defaults,
                );
                foreach ( $expect as $key => $value ) {
@@ -571,7 +571,7 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                $this->assertSame( '', $request->response()->getCookie( 'xUserID' ) );
                $this->assertSame( null, $request->response()->getCookie( 'xUserName' ) );
                $this->assertSame( '', $request->response()->getCookie( 'xToken' ) );
-               $this->assertSame( null, $request->response()->getCookie( 'forceHTTPS' ) );
+               $this->assertSame( '', $request->response()->getCookie( 'forceHTTPS' ) );
                $this->assertSame( array(), $backend->getData() );
 
                $provider->persistSession( $backend, $this->getSentRequest() );
@@ -607,7 +607,7 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                $this->assertSame( (string)$user->getId(), $request->response()->getCookie( 'xUserID' ) );
                $this->assertSame( $user->getName(), $request->response()->getCookie( 'xUserName' ) );
                $this->assertSame( '', $request->response()->getCookie( 'xToken' ) );
-               $this->assertSame( null, $request->response()->getCookie( 'forceHTTPS' ) );
+               $this->assertSame( '', $request->response()->getCookie( 'forceHTTPS' ) );
                $this->assertSame( 'bar!', $request->response()->getCookie( 'xbar' ) );
                $this->assertSame( (string)$loggedOut, $request->response()->getCookie( 'xLoggedOut' ) );
                $this->assertEquals( array(
index c18b821..5a5df6f 100644 (file)
@@ -285,6 +285,24 @@ class PHPSessionHandlerTest extends MediaWikiTestCase {
                        42 => 'forty-two',
                        'forty-two' => 42,
                ), iterator_to_array( $session ) );
+
+               // Test that write doesn't break if the session is invalid
+               $session = $manager->getEmptySession();
+               $session->persist();
+               session_id( $session->getId() );
+               session_start();
+               $this->mergeMwGlobalArrayValue( 'wgHooks', array(
+                       'SessionCheckInfo' => array( function ( &$reason ) {
+                               $reason = 'Testing';
+                               return false;
+                       } ),
+               ) );
+               $this->assertNull( $manager->getSessionById( $session->getId(), true ), 'sanity check' );
+               session_write_close();
+               $this->mergeMwGlobalArrayValue( 'wgHooks', array(
+                       'SessionCheckInfo' => array(),
+               ) );
+               $this->assertNotNull( $manager->getSessionById( $session->getId(), true ), 'sanity check' );
        }
 
        public static function provideHandlers() {
index dc217cd..083223e 100644 (file)
@@ -182,7 +182,6 @@ class SessionManagerTest extends MediaWikiTestCase {
                $session = $manager->getSessionForRequest( $request );
                $this->assertInstanceOf( 'MediaWiki\\Session\\Session', $session );
                $this->assertSame( $idEmpty, $session->getId() );
-               $this->assertNull( $manager->getPersistedSessionId( $request ) );
 
                // Both providers return info, picks best one
                $request->info1 = new SessionInfo( SessionInfo::MIN_PRIORITY + 1, array(
@@ -200,7 +199,6 @@ class SessionManagerTest extends MediaWikiTestCase {
                $session = $manager->getSessionForRequest( $request );
                $this->assertInstanceOf( 'MediaWiki\\Session\\Session', $session );
                $this->assertSame( $id2, $session->getId() );
-               $this->assertSame( $id2, $manager->getPersistedSessionId( $request ) );
 
                $request->info1 = new SessionInfo( SessionInfo::MIN_PRIORITY + 2, array(
                        'provider' => $provider1,
@@ -217,7 +215,6 @@ class SessionManagerTest extends MediaWikiTestCase {
                $session = $manager->getSessionForRequest( $request );
                $this->assertInstanceOf( 'MediaWiki\\Session\\Session', $session );
                $this->assertSame( $id1, $session->getId() );
-               $this->assertSame( $id1, $manager->getPersistedSessionId( $request ) );
 
                // Tied priorities
                $request->info1 = new SessionInfo( SessionInfo::MAX_PRIORITY, array(
@@ -246,18 +243,6 @@ class SessionManagerTest extends MediaWikiTestCase {
                        $this->assertContains( $request->info1, $ex->sessionInfos );
                        $this->assertContains( $request->info2, $ex->sessionInfos );
                }
-               try {
-                       $manager->getPersistedSessionId( $request );
-                       $this->fail( 'Expcected exception not thrown' );
-               } catch ( \OverFlowException $ex ) {
-                       $this->assertStringStartsWith(
-                               'Multiple sessions for this request tied for top priority: ',
-                               $ex->getMessage()
-                       );
-                       $this->assertCount( 2, $ex->sessionInfos );
-                       $this->assertContains( $request->info1, $ex->sessionInfos );
-                       $this->assertContains( $request->info2, $ex->sessionInfos );
-               }
 
                // Bad provider
                $request->info1 = new SessionInfo( SessionInfo::MAX_PRIORITY, array(
@@ -276,15 +261,6 @@ class SessionManagerTest extends MediaWikiTestCase {
                                $ex->getMessage()
                        );
                }
-               try {
-                       $manager->getPersistedSessionId( $request );
-                       $this->fail( 'Expcected exception not thrown' );
-               } catch ( \UnexpectedValueException $ex ) {
-                       $this->assertSame(
-                               'Provider1 returned session info for a different provider: ' . $request->info1,
-                               $ex->getMessage()
-                       );
-               }
 
                // Unusable session info
                $this->logger->setCollect( true );
@@ -304,7 +280,6 @@ class SessionManagerTest extends MediaWikiTestCase {
                $session = $manager->getSessionForRequest( $request );
                $this->assertInstanceOf( 'MediaWiki\\Session\\Session', $session );
                $this->assertSame( $id2, $session->getId() );
-               $this->assertSame( $id2, $manager->getPersistedSessionId( $request ) );
                $this->logger->setCollect( false );
 
                // Unpersisted session ID
@@ -321,7 +296,6 @@ class SessionManagerTest extends MediaWikiTestCase {
                $this->assertSame( $id1, $session->getId() );
                $session->persist();
                $this->assertTrue( $session->isPersistent(), 'sanity check' );
-               $this->assertNull( $manager->getPersistedSessionId( $request ) );
        }
 
        public function testGetSessionById() {
@@ -336,39 +310,28 @@ class SessionManagerTest extends MediaWikiTestCase {
 
                // Unknown session ID
                $id = $manager->generateSessionId();
-               $session = $manager->getSessionById( $id );
+               $session = $manager->getSessionById( $id, true );
                $this->assertInstanceOf( 'MediaWiki\\Session\\Session', $session );
                $this->assertSame( $id, $session->getId() );
 
                $id = $manager->generateSessionId();
-               $this->assertNull( $manager->getSessionById( $id, true ) );
+               $this->assertNull( $manager->getSessionById( $id, false ) );
 
                // Known but unloadable session ID
                $this->logger->setCollect( true );
                $id = $manager->generateSessionId();
-               $this->store->setRawSession( $id, array( 'metadata' => array(
-                       'provider' => 'DummySessionProvider',
-                       'userId' => 0,
-                       'userName' => null,
-                       'userToken' => null,
+               $this->store->setSession( $id, array( 'metadata' => array(
+                       'userId' => User::idFromName( 'UTSysop' ),
+                       'userToken' => 'bad',
                ) ) );
 
-               try {
-                       $manager->getSessionById( $id );
-                       $this->fail( 'Expected exception not thrown' );
-               } catch ( \UnexpectedValueException $ex ) {
-                       $this->assertSame(
-                               'Can neither load the session nor create an empty session',
-                               $ex->getMessage()
-                       );
-               }
-
                $this->assertNull( $manager->getSessionById( $id, true ) );
+               $this->assertNull( $manager->getSessionById( $id, false ) );
                $this->logger->setCollect( false );
 
                // Known session ID
                $this->store->setSession( $id, array() );
-               $session = $manager->getSessionById( $id );
+               $session = $manager->getSessionById( $id, false );
                $this->assertInstanceOf( 'MediaWiki\\Session\\Session', $session );
                $this->assertSame( $id, $session->getId() );
        }
@@ -754,14 +717,14 @@ class SessionManagerTest extends MediaWikiTestCase {
                $sessionId = $session->getSessionId();
                $id = (string)$sessionId;
 
-               $this->assertSame( $sessionId, $manager->getSessionById( $id )->getSessionId() );
+               $this->assertSame( $sessionId, $manager->getSessionById( $id, true )->getSessionId() );
 
                $manager->changeBackendId( $backend );
                $this->assertSame( $sessionId, $session->getSessionId() );
                $this->assertNotEquals( $id, (string)$sessionId );
                $id = (string)$sessionId;
 
-               $this->assertSame( $sessionId, $manager->getSessionById( $id )->getSessionId() );
+               $this->assertSame( $sessionId, $manager->getSessionById( $id, true )->getSessionId() );
 
                // Destruction of the session here causes the backend to be deregistered
                $session = null;
@@ -784,7 +747,7 @@ class SessionManagerTest extends MediaWikiTestCase {
                        );
                }
 
-               $session = $manager->getSessionById( $id );
+               $session = $manager->getSessionById( $id, true );
                $this->assertSame( $sessionId, $session->getSessionId() );
        }
 
index 428fd27..fb14c65 100644 (file)
@@ -14,7 +14,6 @@ class UploadFromUrlTest extends ApiTestCase {
                $this->setMwGlobals( array(
                        'wgEnableUploads' => true,
                        'wgAllowCopyUploads' => true,
-                       'wgAllowAsyncCopyUploads' => true,
                ) );
 
                if ( wfLocalFile( 'UploadFromUrlTest.png' )->exists() ) {
@@ -73,7 +72,7 @@ class UploadFromUrlTest extends ApiTestCase {
                        ), $data );
                } catch ( UsageException $e ) {
                        $exception = true;
-                       $this->assertEquals( "One of the parameters sessionkey, file, url, statuskey is required",
+                       $this->assertEquals( "One of the parameters sessionkey, file, url is required",
                                $e->getMessage() );
                }
                $this->assertTrue( $exception, "Got exception" );
@@ -105,67 +104,6 @@ class UploadFromUrlTest extends ApiTestCase {
                        $this->assertEquals( "Permission denied", $e->getMessage() );
                }
                $this->assertTrue( $exception, "Got exception" );
-
-               $this->user->addGroup( 'sysop' );
-               $data = $this->doApiRequest( array(
-                       'action' => 'upload',
-                       'url' => 'http://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png',
-                       'asyncdownload' => 1,
-                       'filename' => 'UploadFromUrlTest.png',
-                       'token' => $token,
-               ), $data );
-
-               $this->assertEquals( $data[0]['upload']['result'], 'Queued', 'Queued upload' );
-
-               $job = JobQueueGroup::singleton()->pop();
-               $this->assertThat( $job, $this->isInstanceOf( 'UploadFromUrlJob' ), 'Queued upload inserted' );
-       }
-
-       /**
-        * @depends testClearQueue
-        */
-       public function testAsyncUpload( $data ) {
-               $token = $this->user->getEditToken();
-
-               $this->user->addGroup( 'users' );
-
-               $data = $this->doAsyncUpload( $token, true );
-               $this->assertEquals( $data[0]['upload']['result'], 'Success' );
-               $this->assertEquals( $data[0]['upload']['filename'], 'UploadFromUrlTest.png' );
-               $this->assertTrue( wfLocalFile( $data[0]['upload']['filename'] )->exists() );
-
-               $this->deleteFile( 'UploadFromUrlTest.png' );
-
-               return $data;
-       }
-
-       /**
-        * @depends testClearQueue
-        */
-       public function testAsyncUploadWarning( $data ) {
-               $token = $this->user->getEditToken();
-
-               $this->user->addGroup( 'users' );
-
-               $data = $this->doAsyncUpload( $token );
-
-               $this->assertEquals( $data[0]['upload']['result'], 'Warning' );
-               $this->assertTrue( isset( $data[0]['upload']['sessionkey'] ) );
-
-               $data = $this->doApiRequest( array(
-                       'action' => 'upload',
-                       'sessionkey' => $data[0]['upload']['sessionkey'],
-                       'filename' => 'UploadFromUrlTest.png',
-                       'ignorewarnings' => 1,
-                       'token' => $token,
-               ) );
-               $this->assertEquals( $data[0]['upload']['result'], 'Success' );
-               $this->assertEquals( $data[0]['upload']['filename'], 'UploadFromUrlTest.png' );
-               $this->assertTrue( wfLocalFile( $data[0]['upload']['filename'] )->exists() );
-
-               $this->deleteFile( 'UploadFromUrlTest.png' );
-
-               return $data;
        }
 
        /**
@@ -195,120 +133,6 @@ class UploadFromUrlTest extends ApiTestCase {
                return $data;
        }
 
-       public function testLeaveMessage() {
-               $token = $this->user->user->getEditToken();
-
-               $talk = $this->user->user->getTalkPage();
-               if ( $talk->exists() ) {
-                       $page = WikiPage::factory( $talk );
-                       $page->doDeleteArticle( '' );
-               }
-
-               $this->assertFalse(
-                       (bool)$talk->getArticleID( Title::GAID_FOR_UPDATE ),
-                       'User talk does not exist'
-               );
-
-               $this->doApiRequest( array(
-                       'action' => 'upload',
-                       'filename' => 'UploadFromUrlTest.png',
-                       'url' => 'http://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png',
-                       'asyncdownload' => 1,
-                       'token' => $token,
-                       'leavemessage' => 1,
-                       'ignorewarnings' => 1,
-               ) );
-
-               $job = JobQueueGroup::singleton()->pop();
-               $this->assertEquals( 'UploadFromUrlJob', get_class( $job ) );
-               $job->run();
-
-               $this->assertTrue( wfLocalFile( 'UploadFromUrlTest.png' )->exists() );
-               $this->assertTrue( (bool)$talk->getArticleID( Title::GAID_FOR_UPDATE ), 'User talk exists' );
-
-               $this->deleteFile( 'UploadFromUrlTest.png' );
-
-               $exception = false;
-               try {
-                       $this->doApiRequest( array(
-                               'action' => 'upload',
-                               'filename' => 'UploadFromUrlTest.png',
-                               'url' => 'http://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png',
-                               'asyncdownload' => 1,
-                               'token' => $token,
-                               'leavemessage' => 1,
-                       ) );
-               } catch ( UsageException $e ) {
-                       $exception = true;
-                       $this->assertEquals(
-                               'Using leavemessage without ignorewarnings is not supported',
-                               $e->getMessage()
-                       );
-               }
-               $this->assertTrue( $exception );
-
-               $job = JobQueueGroup::singleton()->pop();
-               $this->assertFalse( $job );
-
-               return;
-               /*
-               // Broken until using leavemessage with ignorewarnings is supported
-               $talkRev = Revision::newFromTitle( $talk );
-               $talkSize = $talkRev->getSize();
-
-               $job->run();
-
-               $this->assertFalse( wfLocalFile( 'UploadFromUrlTest.png' )->exists() );
-
-               $talkRev = Revision::newFromTitle( $talk );
-               $this->assertTrue( $talkRev->getSize() > $talkSize, 'New message left' );
-               */
-       }
-
-       /**
-        * Helper function to perform an async upload, execute the job and fetch
-        * the status
-        *
-        * @param string $token
-        * @param bool $ignoreWarnings
-        * @param bool $leaveMessage
-        * @return array The result of action=upload&statuskey=key
-        */
-       private function doAsyncUpload( $token, $ignoreWarnings = false, $leaveMessage = false ) {
-               $params = array(
-                       'action' => 'upload',
-                       'filename' => 'UploadFromUrlTest.png',
-                       'url' => 'http://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png',
-                       'asyncdownload' => 1,
-                       'token' => $token,
-               );
-               if ( $ignoreWarnings ) {
-                       $params['ignorewarnings'] = 1;
-               }
-               if ( $leaveMessage ) {
-                       $params['leavemessage'] = 1;
-               }
-
-               $data = $this->doApiRequest( $params );
-               $this->assertEquals( $data[0]['upload']['result'], 'Queued' );
-               $this->assertTrue( isset( $data[0]['upload']['statuskey'] ) );
-               $statusKey = $data[0]['upload']['statuskey'];
-
-               $job = JobQueueGroup::singleton()->pop();
-               $this->assertEquals( 'UploadFromUrlJob', get_class( $job ) );
-
-               $status = $job->run();
-               $this->assertTrue( $status );
-
-               $data = $this->doApiRequest( array(
-                       'action' => 'upload',
-                       'statuskey' => $statusKey,
-                       'token' => $token,
-               ) );
-
-               return $data;
-       }
-
        protected function deleteFile( $name ) {
                $t = Title::newFromText( $name, NS_FILE );
                $this->assertTrue( $t->exists(), "File '$name' exists" );
diff --git a/tests/phpunit/structure/ApiDocumentationTest.php b/tests/phpunit/structure/ApiDocumentationTest.php
new file mode 100644 (file)
index 0000000..d2f96dc
--- /dev/null
@@ -0,0 +1,177 @@
+<?php
+
+/**
+ * Checks that all API modules, core and extensions, have documentation i18n messages
+ *
+ * It won't catch everything since i18n messages can vary based on the wiki
+ * configuration, but it should catch many cases for forgotten i18n.
+ *
+ * @group API
+ */
+class ApiDocumentationTest extends MediaWikiTestCase {
+
+       /** @var ApiMain */
+       private static $main;
+
+       /** @var array Sets of globals to test. Each array element is input to HashConfig */
+       private static $testGlobals = array(
+               array(
+                       'MiserMode' => false,
+                       'AllowCategorizedRecentChanges' => false,
+               ),
+               array(
+                       'MiserMode' => true,
+                       'AllowCategorizedRecentChanges' => true,
+               ),
+       );
+
+       /**
+        * Initialize/fetch the ApiMain instance for testing
+        * @return ApiMain
+        */
+       private static function getMain() {
+               if ( !self::$main ) {
+                       self::$main = new ApiMain( RequestContext::getMain() );
+                       self::$main->getContext()->setLanguage( 'en' );
+               }
+               return self::$main;
+       }
+
+       /**
+        * Test a message
+        * @param Message $msg
+        * @param string $what Which message is being checked
+        */
+       private function checkMessage( $msg, $what ) {
+               $msg = ApiBase::makeMessage( $msg, self::getMain()->getContext() );
+               $this->assertInstanceOf( 'Message', $msg, "$what message" );
+               $this->assertTrue( $msg->exists(), "$what message {$msg->getKey()} exists" );
+       }
+
+       /**
+        * @dataProvider provideDocumentationExists
+        * @param string $path Module path
+        * @param array $globals Globals to set
+        */
+       public function testDocumentationExists( $path, array $globals ) {
+               $main = self::getMain();
+
+               // Set configuration variables
+               $main->getContext()->setConfig( new MultiConfig( array(
+                       new HashConfig( $globals ),
+                       RequestContext::getMain()->getConfig(),
+               ) ) );
+               foreach ( $globals as $k => $v ) {
+                       $this->setMWGlobals( "wg$k", $v );
+               }
+
+               // Fetch module.
+               $module = TestingAccessWrapper::newFromObject( $main->getModuleFromPath( $path ) );
+
+               // Test messages for flags.
+               foreach ( $module->getHelpFlags() as $flag ) {
+                       $this->checkMessage( "api-help-flag-$flag", "Flag $flag" );
+               }
+
+               // Module description messages.
+               $this->checkMessage( $module->getDescriptionMessage(), 'Module description' );
+
+               // Parameters. Lots of messages in here.
+               $params = $module->getFinalParams( ApiBase::GET_VALUES_FOR_HELP );
+               $tags = array();
+               foreach ( $params as $name => $settings ) {
+                       if ( !is_array( $settings ) ) {
+                               $settings = array();
+                       }
+
+                       // Basic description message
+                       if ( isset( $settings[ApiBase::PARAM_HELP_MSG] ) ) {
+                               $msg = $settings[ApiBase::PARAM_HELP_MSG];
+                       } else {
+                               $msg = "apihelp-{$path}-param-{$name}";
+                       }
+                       $this->checkMessage( $msg, "Parameter $name description" );
+
+                       // If param-per-value is in use, each value's message
+                       if ( isset( $settings[ApiBase::PARAM_HELP_MSG_PER_VALUE] ) ) {
+                               $this->assertInternalType( 'array', $settings[ApiBase::PARAM_HELP_MSG_PER_VALUE],
+                                       "Parameter $name PARAM_HELP_MSG_PER_VALUE is array" );
+                               $this->assertInternalType( 'array', $settings[ApiBase::PARAM_TYPE],
+                                       "Parameter $name PARAM_TYPE is array for msg-per-value mode" );
+                               $valueMsgs = $settings[ApiBase::PARAM_HELP_MSG_PER_VALUE];
+                               foreach ( $settings[ApiBase::PARAM_TYPE] as $value ) {
+                                       if ( isset( $valueMsgs[$value] ) ) {
+                                               $msg = $valueMsgs[$value];
+                                       } else {
+                                               $msg = "apihelp-{$path}-paramvalue-{$name}-{$value}";
+                                       }
+                                       $this->checkMessage( $msg, "Parameter $name value $value" );
+                               }
+                       }
+
+                       // Appended messages (e.g. "disabled in miser mode")
+                       if ( isset( $settings[ApiBase::PARAM_HELP_MSG_APPEND] ) ) {
+                               $this->assertInternalType( 'array', $settings[ApiBase::PARAM_HELP_MSG_APPEND],
+                                       "Parameter $name PARAM_HELP_MSG_APPEND is array" );
+                               foreach ( $settings[ApiBase::PARAM_HELP_MSG_APPEND] as $i => $msg ) {
+                                       $this->checkMessage( $msg, "Parameter $name HELP_MSG_APPEND #$i" );
+                               }
+                       }
+
+                       // Info tags (e.g. "only usable in mode 1") are typically shared by
+                       // several parameters, so accumulate them and test them later.
+                       if ( !empty( $settings[ApiBase::PARAM_HELP_MSG_INFO] ) ) {
+                               foreach ( $settings[ApiBase::PARAM_HELP_MSG_INFO] as $i ) {
+                                       $tags[array_shift( $i )] = 1;
+                               }
+                       }
+               }
+
+               // Info tags (e.g. "only usable in mode 1") accumulated above
+               foreach ( $tags as $tag => $dummy ) {
+                       $this->checkMessage( "apihelp-{$path}-paraminfo-{$tag}", "HELP_MSG_INFO tag $tag" );
+               }
+
+               // Messages for examples.
+               foreach ( $module->getExamplesMessages() as $qs => $msg ) {
+                       $this->checkMessage( $msg, "Example $qs" );
+               }
+       }
+
+       public static function provideDocumentationExists() {
+               $main = self::getMain();
+               $paths = self::getSubModulePaths( $main->getModuleManager() );
+               array_unshift( $paths, $main->getModulePath() );
+
+               $ret = array();
+               foreach ( $paths as $path ) {
+                       foreach ( self::$testGlobals as $globals ) {
+                               $g = array();
+                               foreach ( $globals as $k => $v ) {
+                                       $g[] = "$k=" . var_export( $v, 1 );
+                               }
+                               $k = "Module $path with " . join( ', ', $g );
+                               $ret[$k] = array( $path, $globals );
+                       }
+               }
+               return $ret;
+       }
+
+       /**
+        * Return paths of all submodules in an ApiModuleManager, recursively
+        * @param ApiModuleManager $manager
+        * @return string[]
+        */
+       protected static function getSubModulePaths( ApiModuleManager $manager ) {
+               $paths = array();
+               foreach ( $manager->getNames() as $name ) {
+                       $module = $manager->getModule( $name );
+                       $paths[] = $module->getModulePath();
+                       $subManager = $module->getModuleManager();
+                       if ( $subManager ) {
+                               $paths = array_merge( $paths, self::getSubModulePaths( $subManager ) );
+                       }
+               }
+               return $paths;
+       }
+}
index 2e63b7a..932ba7d 100644 (file)
                }
        } );
 
+       QUnit.test( 'makeTitle', 6, function ( assert ) {
+               var cases, i, title, expected,
+                       NS_MAIN = 0,
+                       NS_TALK = 1,
+                       NS_TEMPLATE = 10;
+
+               cases = [
+                       [ NS_TEMPLATE, 'Foo', 'Template:Foo' ],
+                       [ NS_TEMPLATE, 'Category:Foo', 'Template:Category:Foo' ],
+                       [ NS_TEMPLATE, 'Template:Foo', 'Template:Template:Foo' ],
+                       [ NS_TALK, 'Help:Foo', null ],
+                       [ NS_TEMPLATE, '<', null ],
+                       [ NS_MAIN, 'Help:Foo', 'Help:Foo' ]
+               ];
+
+               for ( i = 0; i < cases.length; i++ ) {
+                       title = mw.Title.makeTitle( cases[ i ][ 0 ], cases[ i ][ 1 ] );
+                       expected = cases[ i ][ 2 ];
+                       if ( expected === null ) {
+                               assert.strictEqual( title, expected );
+                       } else {
+                               assert.strictEqual( title.getPrefixedText(), expected );
+                       }
+               }
+       } );
+
        QUnit.test( 'Basic parsing', 21, function ( assert ) {
                var title;
                title = new mw.Title( 'File:Foo_bar.JPG' );