Merge "Noticed while looking at $wgShowUpdatedMarker related database queries, querie...
authorAaron Schulz <aschulz@wikimedia.org>
Thu, 3 May 2012 18:25:18 +0000 (18:25 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 3 May 2012 18:25:18 +0000 (18:25 +0000)
170 files changed:
RELEASE-NOTES-1.20
includes/Article.php
includes/EditPage.php
includes/Export.php
includes/ExternalEdit.php
includes/GitInfo.php
includes/Title.php
includes/WikiPage.php
includes/api/ApiBase.php
includes/api/ApiDelete.php
includes/api/ApiEditPage.php
includes/api/ApiFileRevert.php
includes/api/ApiFormatBase.php
includes/api/ApiImport.php
includes/api/ApiParse.php
includes/api/ApiProtect.php
includes/api/ApiQueryBacklinks.php
includes/api/ApiQueryCategoryMembers.php
includes/api/ApiQueryFilearchive.php
includes/api/ApiQueryIWBacklinks.php
includes/api/ApiQueryLangBacklinks.php
includes/api/ApiQueryLangLinks.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiQueryUserInfo.php
includes/api/ApiQueryUsers.php
includes/api/ApiUndelete.php
includes/db/CloneDatabase.php
includes/debug/Debug.php
includes/filerepo/backend/FileBackendGroup.php
includes/filerepo/backend/lockmanager/LockManager.php
includes/filerepo/backend/lockmanager/LockManagerGroup.php
includes/logging/LogEntry.php
includes/logging/LogFormatter.php
includes/logging/PatrolLog.php
includes/objectcache/APCBagOStuff.php
includes/objectcache/DBABagOStuff.php
includes/objectcache/EhcacheBagOStuff.php
includes/objectcache/EmptyBagOStuff.php
includes/objectcache/HashBagOStuff.php
includes/objectcache/MemcachedClient.php
includes/objectcache/MemcachedPhpBagOStuff.php
includes/objectcache/MultiWriteBagOStuff.php
includes/objectcache/ObjectCache.php
includes/objectcache/SqlBagOStuff.php
includes/objectcache/WinCacheBagOStuff.php
includes/objectcache/XCacheBagOStuff.php
includes/parser/CoreLinkFunctions.php
includes/parser/CoreParserFunctions.php
includes/parser/CoreTagHooks.php
includes/parser/DateFormatter.php
includes/parser/LinkHolderArray.php
includes/parser/Parser.php
includes/parser/ParserCache.php
includes/parser/ParserOptions.php
includes/parser/ParserOutput.php
includes/parser/Parser_DiffTest.php
includes/parser/Parser_LinkHooks.php
includes/parser/Preprocessor.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php
includes/parser/Preprocessor_HipHop.hphp
includes/parser/StripState.php
includes/parser/Tidy.php
includes/profiler/Profiler.php
includes/profiler/ProfilerSimple.php
includes/profiler/ProfilerSimpleText.php
includes/profiler/ProfilerSimpleTrace.php
includes/profiler/ProfilerSimpleUDP.php
includes/profiler/ProfilerStub.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderFilePageModule.php
includes/resourceloader/ResourceLoaderLanguageDataModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/resourceloader/ResourceLoaderNoscriptModule.php
includes/resourceloader/ResourceLoaderSiteModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php
includes/resourceloader/ResourceLoaderUserGroupsModule.php
includes/resourceloader/ResourceLoaderUserModule.php
includes/resourceloader/ResourceLoaderUserOptionsModule.php
includes/resourceloader/ResourceLoaderUserTokensModule.php
includes/resourceloader/ResourceLoaderWikiModule.php
includes/revisiondelete/RevisionDelete.php
includes/revisiondelete/RevisionDeleteAbstracts.php
includes/revisiondelete/RevisionDeleteUser.php
includes/revisiondelete/RevisionDeleter.php
includes/search/SearchEngine.php
includes/search/SearchUpdate.php
includes/specials/SpecialContributions.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialJavaScriptTest.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialRecentchangeslinked.php
includes/specials/SpecialUnblock.php
includes/specials/SpecialWatchlist.php
languages/messages/MessagesAr.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAz.php
languages/messages/MessagesBa.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBn.php
languages/messages/MessagesBr.php
languages/messages/MessagesCs.php
languages/messages/MessagesCy.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEl.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesGl.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHsb.php
languages/messages/MessagesIa.php
languages/messages/MessagesIs.php
languages/messages/MessagesJa.php
languages/messages/MessagesKo.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesLb.php
languages/messages/MessagesLt.php
languages/messages/MessagesLus.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesNl.php
languages/messages/MessagesOr.php
languages/messages/MessagesPa.php
languages/messages/MessagesPms.php
languages/messages/MessagesPs.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesSa.php
languages/messages/MessagesScn.php
languages/messages/MessagesSgs.php
languages/messages/MessagesSh.php
languages/messages/MessagesSi.php
languages/messages/MessagesSl.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesStq.php
languages/messages/MessagesSv.php
languages/messages/MessagesTh.php
languages/messages/MessagesTr.php
languages/messages/MessagesTyv.php
languages/messages/MessagesVec.php
languages/messages/MessagesVi.php
languages/messages/MessagesYo.php
languages/messages/MessagesZh_hans.php
skins/Vector.php
skins/vector/screen-hd.css
skins/vector/screen.css
tests/phpunit/bootstrap.php
tests/phpunit/includes/CdbTest.php
tests/phpunit/includes/PreferencesTest.php
tests/phpunit/includes/TitleMethodsTest.php
tests/phpunit/includes/cache/GenderCacheTest.php
tests/phpunit/phpunit.php

index bd8f775..1b35ad5 100644 (file)
@@ -46,6 +46,7 @@ production.
   Special:Version
 * Edit notices can now be translated.
 * (bug 22887) Add warning and tracking category for preprocessor errors
+* (bug 31704) Allow selection of associated namespace on the watchlist
 
 === Bug fixes in 1.20 ===
 * (bug 30245) Use the correct way to construct a log page title.
@@ -101,6 +102,8 @@ production.
 * (bug 32492) API now allows editing using pageid
 * (bug 32497) API now allows changing of protection level using pageid
 * (bug 32498) API now allows comparing pages using pageids
+* (bug 30975) API import of pages with invalid characters in this wiki leads to Fatal Error
+* (bug 30488) API now allows listing of backlinks/embeddedin/imageusage per pageid
 
 === Languages updated in 1.20 ===
 
index 393f770..67e1c87 100644 (file)
@@ -191,8 +191,6 @@ class Article extends Page {
         * @return string Return the text of this revision
         */
        public function getContent() {
-               global $wgUser;
-
                wfProfileIn( __METHOD__ );
 
                if ( $this->mPage->getID() === 0 ) {
@@ -204,7 +202,7 @@ class Article extends Page {
                                        $text = '';
                                }
                        } else {
-                               $text = wfMsgExt( $wgUser->isLoggedIn() ? 'noarticletext' : 'noarticletextanon', 'parsemag' );
+                               $text = wfMsgExt( $this->getContext()->getUser()->isLoggedIn() ? 'noarticletext' : 'noarticletextanon', 'parsemag' );
                        }
                        wfProfileOut( __METHOD__ );
 
@@ -235,11 +233,10 @@ class Article extends Page {
         * @return int The old id for the request
         */
        public function getOldIDFromRequest() {
-               global $wgRequest;
-
                $this->mRedirectUrl = false;
 
-               $oldid = $wgRequest->getIntOrNull( 'oldid' );
+               $request = $this->getContext()->getRequest();
+               $oldid = $request->getIntOrNull( 'oldid' );
 
                if ( $oldid === null ) {
                        return 0;
@@ -262,7 +259,7 @@ class Article extends Page {
                        }
                }
 
-               if ( $wgRequest->getVal( 'direction' ) == 'next' ) {
+               if ( $request->getVal( 'direction' ) == 'next' ) {
                        $nextid = $this->getTitle()->getNextRevisionID( $oldid );
                        if ( $nextid ) {
                                $oldid = $nextid;
@@ -270,7 +267,7 @@ class Article extends Page {
                        } else {
                                $this->mRedirectUrl = $this->getTitle()->getFullURL( 'redirect=no' );
                        }
-               } elseif ( $wgRequest->getVal( 'direction' ) == 'prev' ) {
+               } elseif ( $request->getVal( 'direction' ) == 'prev' ) {
                        $previd = $this->getTitle()->getPreviousRevisionID( $oldid );
                        if ( $previd ) {
                                $oldid = $previd;
@@ -404,8 +401,7 @@ class Article extends Page {
         * page of the given title.
         */
        public function view() {
-               global $wgUser, $wgOut, $wgRequest, $wgParser;
-               global $wgUseFileCache, $wgUseETag, $wgDebugToolbar;
+               global $wgParser, $wgUseFileCache, $wgUseETag, $wgDebugToolbar;
 
                wfProfileIn( __METHOD__ );
 
@@ -415,17 +411,19 @@ class Article extends Page {
                # the first call of this method even if $oldid is used way below.
                $oldid = $this->getOldID();
 
+               $user = $this->getContext()->getUser();
                # Another whitelist check in case getOldID() is altering the title
-               $permErrors = $this->getTitle()->getUserPermissionsErrors( 'read', $wgUser );
+               $permErrors = $this->getTitle()->getUserPermissionsErrors( 'read', $user );
                if ( count( $permErrors ) ) {
                        wfDebug( __METHOD__ . ": denied on secondary read check\n" );
                        wfProfileOut( __METHOD__ );
                        throw new PermissionsError( 'read', $permErrors );
                }
 
+               $outputPage = $this->getContext()->getOutput();
                # getOldID() may as well want us to redirect somewhere else
                if ( $this->mRedirectUrl ) {
-                       $wgOut->redirect( $this->mRedirectUrl );
+                       $outputPage->redirect( $this->mRedirectUrl );
                        wfDebug( __METHOD__ . ": redirecting due to oldid\n" );
                        wfProfileOut( __METHOD__ );
 
@@ -433,7 +431,7 @@ class Article extends Page {
                }
 
                # If we got diff in the query, we want to see a diff page instead of the article.
-               if ( $wgRequest->getCheck( 'diff' ) ) {
+               if ( $this->getContext()->getRequest()->getCheck( 'diff' ) ) {
                        wfDebug( __METHOD__ . ": showing diff page\n" );
                        $this->showDiffPage();
                        wfProfileOut( __METHOD__ );
@@ -442,17 +440,17 @@ class Article extends Page {
                }
 
                # Set page title (may be overridden by DISPLAYTITLE)
-               $wgOut->setPageTitle( $this->getTitle()->getPrefixedText() );
+               $outputPage->setPageTitle( $this->getTitle()->getPrefixedText() );
 
-               $wgOut->setArticleFlag( true );
+               $outputPage->setArticleFlag( true );
                # Allow frames by default
-               $wgOut->allowClickjacking();
+               $outputPage->allowClickjacking();
 
                $parserCache = ParserCache::singleton();
 
                $parserOptions = $this->getParserOptions();
                # Render printable version, use printable version cache
-               if ( $wgOut->isPrintable() ) {
+               if ( $outputPage->isPrintable() ) {
                        $parserOptions->setIsPrintable( true );
                        $parserOptions->setEditSection( false );
                } elseif ( !$this->isCurrent() || !$this->getTitle()->quickUserCan( 'edit' ) ) {
@@ -462,11 +460,11 @@ class Article extends Page {
                # Try client and file cache
                if ( !$wgDebugToolbar && $oldid === 0 && $this->mPage->checkTouched() ) {
                        if ( $wgUseETag ) {
-                               $wgOut->setETag( $parserCache->getETag( $this, $parserOptions ) );
+                               $outputPage->setETag( $parserCache->getETag( $this, $parserOptions ) );
                        }
 
                        # Is it client cached?
-                       if ( $wgOut->checkLastModified( $this->mPage->getTouched() ) ) {
+                       if ( $outputPage->checkLastModified( $this->mPage->getTouched() ) ) {
                                wfDebug( __METHOD__ . ": done 304\n" );
                                wfProfileOut( __METHOD__ );
 
@@ -475,8 +473,8 @@ class Article extends Page {
                        } elseif ( $wgUseFileCache && $this->tryFileCache() ) {
                                wfDebug( __METHOD__ . ": done file cache\n" );
                                # tell wgOut that output is taken care of
-                               $wgOut->disable();
-                               $this->mPage->doViewUpdates( $wgUser );
+                               $outputPage->disable();
+                               $this->mPage->doViewUpdates( $user );
                                wfProfileOut( __METHOD__ );
 
                                return;
@@ -486,7 +484,7 @@ class Article extends Page {
                # Should the parser cache be used?
                $useParserCache = $this->mPage->isParserCacheUsed( $parserOptions, $oldid );
                wfDebug( 'Article::view using parser cache: ' . ( $useParserCache ? 'yes' : 'no' ) . "\n" );
-               if ( $wgUser->getStubThreshold() ) {
+               if ( $user->getStubThreshold() ) {
                        wfIncrStats( 'pcache_miss_stub' );
                }
 
@@ -524,14 +522,14 @@ class Article extends Page {
                                                        } else {
                                                                wfDebug( __METHOD__ . ": showing parser cache contents\n" );
                                                        }
-                                                       $wgOut->addParserOutput( $this->mParserOutput );
+                                                       $outputPage->addParserOutput( $this->mParserOutput );
                                                        # Ensure that UI elements requiring revision ID have
                                                        # the correct version information.
-                                                       $wgOut->setRevisionId( $this->mPage->getLatest() );
+                                                       $outputPage->setRevisionId( $this->mPage->getLatest() );
                                                        # Preload timestamp to avoid a DB hit
                                                        $cachedTimestamp = $this->mParserOutput->getTimestamp();
                                                        if ( $cachedTimestamp !== null ) {
-                                                               $wgOut->setRevisionTimestamp( $cachedTimestamp );
+                                                               $outputPage->setRevisionTimestamp( $cachedTimestamp );
                                                                $this->mPage->setTimestamp( $cachedTimestamp );
                                                        }
                                                        $outputDone = true;
@@ -555,16 +553,16 @@ class Article extends Page {
 
                                        # Ensure that UI elements requiring revision ID have
                                        # the correct version information.
-                                       $wgOut->setRevisionId( $this->getRevIdFetched() );
+                                       $outputPage->setRevisionId( $this->getRevIdFetched() );
                                        # Preload timestamp to avoid a DB hit
-                                       $wgOut->setRevisionTimestamp( $this->getTimestamp() );
+                                       $outputPage->setRevisionTimestamp( $this->getTimestamp() );
 
                                        # Pages containing custom CSS or JavaScript get special treatment
                                        if ( $this->getTitle()->isCssOrJsPage() || $this->getTitle()->isCssJsSubpage() ) {
                                                wfDebug( __METHOD__ . ": showing CSS/JS source\n" );
                                                $this->showCssOrJsPage();
                                                $outputDone = true;
-                                       } elseif( !wfRunHooks( 'ArticleViewCustom', array( $this->mContent, $this->getTitle(), $wgOut ) ) ) {
+                                       } elseif( !wfRunHooks( 'ArticleViewCustom', array( $this->mContent, $this->getTitle(), $outputPage ) ) ) {
                                                # Allow extensions do their own custom view for certain pages
                                                $outputDone = true;
                                        } else {
@@ -573,10 +571,10 @@ class Article extends Page {
                                                if ( $rt ) {
                                                        wfDebug( __METHOD__ . ": showing redirect=no page\n" );
                                                        # Viewing a redirect page (e.g. with parameter redirect=no)
-                                                       $wgOut->addHTML( $this->viewRedirect( $rt ) );
+                                                       $outputPage->addHTML( $this->viewRedirect( $rt ) );
                                                        # Parse just to get categories, displaytitle, etc.
                                                        $this->mParserOutput = $wgParser->parse( $text, $this->getTitle(), $parserOptions );
-                                                       $wgOut->addParserOutputNoText( $this->mParserOutput );
+                                                       $outputPage->addParserOutputNoText( $this->mParserOutput );
                                                        $outputDone = true;
                                                }
                                        }
@@ -591,12 +589,12 @@ class Article extends Page {
                                        if ( !$poolArticleView->execute() ) {
                                                $error = $poolArticleView->getError();
                                                if ( $error ) {
-                                                       $wgOut->clearHTML(); // for release() errors
-                                                       $wgOut->enableClientCache( false );
-                                                       $wgOut->setRobotPolicy( 'noindex,nofollow' );
+                                                       $outputPage->clearHTML(); // for release() errors
+                                                       $outputPage->enableClientCache( false );
+                                                       $outputPage->setRobotPolicy( 'noindex,nofollow' );
 
                                                        $errortext = $error->getWikiText( false, 'view-pool-error' );
-                                                       $wgOut->addWikiText( '<div class="errorbox">' . $errortext . '</div>' );
+                                                       $outputPage->addWikiText( '<div class="errorbox">' . $errortext . '</div>' );
                                                }
                                                # Connection or timeout error
                                                wfProfileOut( __METHOD__ );
@@ -604,12 +602,12 @@ class Article extends Page {
                                        }
 
                                        $this->mParserOutput = $poolArticleView->getParserOutput();
-                                       $wgOut->addParserOutput( $this->mParserOutput );
+                                       $outputPage->addParserOutput( $this->mParserOutput );
 
                                        # Don't cache a dirty ParserOutput object
                                        if ( $poolArticleView->getIsDirty() ) {
-                                               $wgOut->setSquidMaxage( 0 );
-                                               $wgOut->addHTML( "<!-- parser cache is expired, sending anyway due to pool overload-->\n" );
+                                               $outputPage->setSquidMaxage( 0 );
+                                               $outputPage->addHTML( "<!-- parser cache is expired, sending anyway due to pool overload-->\n" );
                                        }
 
                                        $outputDone = true;
@@ -638,17 +636,17 @@ class Article extends Page {
                if ( $this->getTitle()->isMainPage() ) {
                        $msg = wfMessage( 'pagetitle-view-mainpage' )->inContentLanguage();
                        if ( !$msg->isDisabled() ) {
-                               $wgOut->setHTMLTitle( $msg->title( $this->getTitle() )->text() );
+                               $outputPage->setHTMLTitle( $msg->title( $this->getTitle() )->text() );
                        }
                }
 
                # Check for any __NOINDEX__ tags on the page using $pOutput
                $policy = $this->getRobotPolicy( 'view', $pOutput );
-               $wgOut->setIndexPolicy( $policy['index'] );
-               $wgOut->setFollowPolicy( $policy['follow'] );
+               $outputPage->setIndexPolicy( $policy['index'] );
+               $outputPage->setFollowPolicy( $policy['follow'] );
 
                $this->showViewFooter();
-               $this->mPage->doViewUpdates( $wgUser );
+               $this->mPage->doViewUpdates( $user );
 
                wfProfileOut( __METHOD__ );
        }
@@ -658,11 +656,10 @@ class Article extends Page {
         * @param $pOutput ParserOutput
         */
        public function adjustDisplayTitle( ParserOutput $pOutput ) {
-               global $wgOut;
                # Adjust the title if it was set by displaytitle, -{T|}- or language conversion
                $titleText = $pOutput->getTitleText();
                if ( strval( $titleText ) !== '' ) {
-                       $wgOut->setPageTitle( $titleText );
+                       $this->getContext()->getOutput()->setPageTitle( $titleText );
                }
        }
 
@@ -671,13 +668,13 @@ class Article extends Page {
         * Article::view() only, other callers should use the DifferenceEngine class.
         */
        public function showDiffPage() {
-               global $wgRequest, $wgUser;
-
-               $diff = $wgRequest->getVal( 'diff' );
-               $rcid = $wgRequest->getVal( 'rcid' );
-               $diffOnly = $wgRequest->getBool( 'diffonly', $wgUser->getOption( 'diffonly' ) );
-               $purge = $wgRequest->getVal( 'action' ) == 'purge';
-               $unhide = $wgRequest->getInt( 'unhide' ) == 1;
+               $request = $this->getContext()->getRequest();
+               $user = $this->getContext()->getUser();
+               $diff = $request->getVal( 'diff' );
+               $rcid = $request->getVal( 'rcid' );
+               $diffOnly = $request->getBool( 'diffonly', $user->getOption( 'diffonly' ) );
+               $purge = $request->getVal( 'action' ) == 'purge';
+               $unhide = $request->getInt( 'unhide' ) == 1;
                $oldid = $this->getOldID();
 
                $de = new DifferenceEngine( $this->getContext(), $oldid, $diff, $rcid, $purge, $unhide );
@@ -687,7 +684,7 @@ class Article extends Page {
 
                if ( $diff == 0 || $diff == $this->mPage->getLatest() ) {
                        # Run view updates for current revision only
-                       $this->mPage->doViewUpdates( $wgUser );
+                       $this->mPage->doViewUpdates( $user );
                }
        }
 
@@ -699,22 +696,21 @@ class Article extends Page {
         * page views.
         */
        protected function showCssOrJsPage() {
-               global $wgOut;
-
                $dir = $this->getContext()->getLanguage()->getDir();
                $lang = $this->getContext()->getLanguage()->getCode();
 
-               $wgOut->wrapWikiMsg( "<div id='mw-clearyourcache' lang='$lang' dir='$dir' class='mw-content-$dir'>\n$1\n</div>",
+               $outputPage = $this->getContext()->getOutput();
+               $outputPage->wrapWikiMsg( "<div id='mw-clearyourcache' lang='$lang' dir='$dir' class='mw-content-$dir'>\n$1\n</div>",
                        'clearyourcache' );
 
                // Give hooks a chance to customise the output
-               if ( wfRunHooks( 'ShowRawCssJs', array( $this->mContent, $this->getTitle(), $wgOut ) ) ) {
+               if ( wfRunHooks( 'ShowRawCssJs', array( $this->mContent, $this->getTitle(), $outputPage ) ) ) {
                        // Wrap the whole lot in a <pre> and don't parse
                        $m = array();
                        preg_match( '!\.(css|js)$!u', $this->getTitle()->getText(), $m );
-                       $wgOut->addHTML( "<pre class=\"mw-code mw-{$m[1]}\" dir=\"ltr\">\n" );
-                       $wgOut->addHTML( htmlspecialchars( $this->mContent ) );
-                       $wgOut->addHTML( "\n</pre>\n" );
+                       $outputPage->addHTML( "<pre class=\"mw-code mw-{$m[1]}\" dir=\"ltr\">\n" );
+                       $outputPage->addHTML( htmlspecialchars( $this->mContent ) );
+                       $outputPage->addHTML( "\n</pre>\n" );
                }
        }
 
@@ -726,8 +722,7 @@ class Article extends Page {
         * TODO: actions other than 'view'
         */
        public function getRobotPolicy( $action, $pOutput ) {
-               global $wgOut, $wgArticleRobotPolicies, $wgNamespaceRobotPolicies;
-               global $wgDefaultRobotPolicy, $wgRequest;
+               global $wgArticleRobotPolicies, $wgNamespaceRobotPolicies, $wgDefaultRobotPolicy;
 
                $ns = $this->getTitle()->getNamespace();
 
@@ -749,13 +744,13 @@ class Article extends Page {
                                'index'  => 'noindex',
                                'follow' => 'nofollow'
                        );
-               } elseif ( $wgOut->isPrintable() ) {
+               } elseif ( $this->getContext()->getOutput()->isPrintable() ) {
                        # Discourage indexing of printable versions, but encourage following
                        return array(
                                'index'  => 'noindex',
                                'follow' => 'follow'
                        );
-               } elseif ( $wgRequest->getInt( 'curid' ) ) {
+               } elseif ( $this->getContext()->getRequest()->getInt( 'curid' ) ) {
                        # For ?curid=x urls, disallow indexing
                        return array(
                                'index'  => 'noindex',
@@ -824,15 +819,16 @@ class Article extends Page {
 
        /**
         * If this request is a redirect view, send "redirected from" subtitle to
-        * $wgOut. Returns true if the header was needed, false if this is not a
-        * redirect view. Handles both local and remote redirects.
+        * the output. Returns true if the header was needed, false if this is not
+        * redirect view. Handles both local and remote redirects.
         *
         * @return boolean
         */
        public function showRedirectedFromHeader() {
-               global $wgOut, $wgRequest, $wgRedirectSources;
+               global $wgRedirectSources;
+               $outputPage = $this->getContext()->getOutput();
 
-               $rdfrom = $wgRequest->getVal( 'rdfrom' );
+               $rdfrom = $this->getContext()->getRequest()->getVal( 'rdfrom' );
 
                if ( isset( $this->mRedirectedFrom ) ) {
                        // This is an internally redirected page view.
@@ -845,21 +841,21 @@ class Article extends Page {
                                        array( 'redirect' => 'no' )
                                );
 
-                               $wgOut->addSubtitle( wfMessage( 'redirectedfrom' )->rawParams( $redir ) );
+                               $outputPage->addSubtitle( wfMessage( 'redirectedfrom' )->rawParams( $redir ) );
 
                                // Set the fragment if one was specified in the redirect
                                if ( strval( $this->getTitle()->getFragment() ) != '' ) {
                                        $fragment = Xml::escapeJsString( $this->getTitle()->getFragmentForURL() );
-                                       $wgOut->addInlineScript( "redirectToFragment(\"$fragment\");" );
+                                       $outputPage->addInlineScript( "redirectToFragment(\"$fragment\");" );
                                }
 
                                // Add a <link rel="canonical"> tag
-                               $wgOut->addLink( array( 'rel' => 'canonical',
+                               $outputPage->addLink( array( 'rel' => 'canonical',
                                        'href' => $this->getTitle()->getLocalURL() )
                                );
 
-                               // Tell $wgOut the user arrived at this article through a redirect
-                               $wgOut->setRedirectedFrom( $this->mRedirectedFrom );
+                               // Tell the output object that the user arrived at this article through a redirect
+                               $outputPage->setRedirectedFrom( $this->mRedirectedFrom );
 
                                return true;
                        }
@@ -868,7 +864,7 @@ class Article extends Page {
                        // If it was reported from a trusted site, supply a backlink.
                        if ( $wgRedirectSources && preg_match( $wgRedirectSources, $rdfrom ) ) {
                                $redir = Linker::makeExternalLink( $rdfrom, $rdfrom );
-                               $wgOut->addSubtitle( wfMessage( 'redirectedfrom' )->rawParams( $redir ) );
+                               $outputPage->addSubtitle( wfMessage( 'redirectedfrom' )->rawParams( $redir ) );
 
                                return true;
                        }
@@ -882,11 +878,9 @@ class Article extends Page {
         * [[MediaWiki:Talkpagetext]]. For Article::view().
         */
        public function showNamespaceHeader() {
-               global $wgOut;
-
                if ( $this->getTitle()->isTalkPage() ) {
                        if ( !wfMessage( 'talkpageheader' )->isDisabled() ) {
-                               $wgOut->wrapWikiMsg( "<div class=\"mw-talkpageheader\">\n$1\n</div>", array( 'talkpageheader' ) );
+                               $this->getContext()->getOutput()->wrapWikiMsg( "<div class=\"mw-talkpageheader\">\n$1\n</div>", array( 'talkpageheader' ) );
                        }
                }
        }
@@ -895,11 +889,9 @@ class Article extends Page {
         * Show the footer section of an ordinary page view
         */
        public function showViewFooter() {
-               global $wgOut;
-
                # check if we're displaying a [[User talk:x.x.x.x]] anonymous talk page
                if ( $this->getTitle()->getNamespace() == NS_USER_TALK && IP::isValid( $this->getTitle()->getText() ) ) {
-                       $wgOut->addWikiMsg( 'anontalkpagetext' );
+                       $this->getContext()->getOutput()->addWikiMsg( 'anontalkpagetext' );
                }
 
                # If we have been passed an &rcid= parameter, we want to give the user a
@@ -916,18 +908,18 @@ class Article extends Page {
         * desired, does nothing.
         */
        public function showPatrolFooter() {
-               global $wgOut, $wgRequest, $wgUser;
-
-               $rcid = $wgRequest->getVal( 'rcid' );
+               $request = $this->getContext()->getRequest();
+               $outputPage = $this->getContext()->getOutput();
+               $rcid = $request->getVal( 'rcid' );
 
                if ( !$rcid || !$this->getTitle()->quickUserCan( 'patrol' ) ) {
                        return;
                }
 
-               $token = $wgUser->getEditToken( $rcid );
-               $wgOut->preventClickjacking();
+               $token = $request->getUser()->getEditToken( $rcid );
+               $outputPage->preventClickjacking();
 
-               $wgOut->addHTML(
+               $outputPage->addHTML(
                        "<div class='patrollink'>" .
                                wfMsgHtml(
                                        'markaspatrolledlink',
@@ -952,7 +944,8 @@ class Article extends Page {
         * namespace, show the default message text. To be called from Article::view().
         */
        public function showMissingArticle() {
-               global $wgOut, $wgRequest, $wgUser, $wgSend404Code;
+               global $wgSend404Code;
+               $outputPage = $this->getContext()->getOutput();
 
                # Show info in user (talk) namespace. Does the user exist? Is he blocked?
                if ( $this->getTitle()->getNamespace() == NS_USER || $this->getTitle()->getNamespace() == NS_USER_TALK ) {
@@ -962,11 +955,11 @@ class Article extends Page {
                        $ip = User::isIP( $rootPart );
 
                        if ( !($user && $user->isLoggedIn()) && !$ip ) { # User does not exist
-                               $wgOut->wrapWikiMsg( "<div class=\"mw-userpage-userdoesnotexist error\">\n\$1\n</div>",
+                               $outputPage->wrapWikiMsg( "<div class=\"mw-userpage-userdoesnotexist error\">\n\$1\n</div>",
                                        array( 'userpage-userdoesnotexist-view', wfEscapeWikiText( $rootPart ) ) );
                        } elseif ( $user->isBlocked() ) { # Show log extract if the user is currently blocked
                                LogEventsList::showLogExtract(
-                                       $wgOut,
+                                       $outputPage,
                                        'block',
                                        $user->getUserPage()->getPrefixedText(),
                                        '',
@@ -985,7 +978,7 @@ class Article extends Page {
                wfRunHooks( 'ShowMissingArticle', array( $this ) );
 
                # Show delete and move logs
-               LogEventsList::showLogExtract( $wgOut, array( 'delete', 'move' ), $this->getTitle()->getPrefixedText(), '',
+               LogEventsList::showLogExtract( $outputPage, array( 'delete', 'move' ), $this->getTitle()->getPrefixedText(), '',
                        array(  'lim' => 10,
                                'conds' => array( "log_action != 'revision'" ),
                                'showIfEmpty' => false,
@@ -995,7 +988,7 @@ class Article extends Page {
                if ( !$this->mPage->hasViewableContent() && $wgSend404Code ) {
                        // If there's no backing content, send a 404 Not Found
                        // for better machine handling of broken links.
-                       $wgRequest->response()->header( "HTTP/1.1 404 Not Found" );
+                       $this->getContext()->getRequest()->response()->header( "HTTP/1.1 404 Not Found" );
                }
 
                $hookResult = wfRunHooks( 'BeforeDisplayNoArticleText', array( $this ) );
@@ -1014,8 +1007,8 @@ class Article extends Page {
                        // Use the default message text
                        $text = $this->getTitle()->getDefaultMessageText();
                } else {
-                       $createErrors = $this->getTitle()->getUserPermissionsErrors( 'create', $wgUser );
-                       $editErrors = $this->getTitle()->getUserPermissionsErrors( 'edit', $wgUser );
+                       $createErrors = $this->getTitle()->getUserPermissionsErrors( 'create', $this->getContext()->getUser() );
+                       $editErrors = $this->getTitle()->getUserPermissionsErrors( 'edit', $this->getContext()->getUser() );
                        $errors = array_merge( $createErrors, $editErrors );
 
                        if ( !count( $errors ) ) {
@@ -1026,37 +1019,36 @@ class Article extends Page {
                }
                $text = "<div class='noarticletext'>\n$text\n</div>";
 
-               $wgOut->addWikiText( $text );
+               $outputPage->addWikiText( $text );
        }
 
        /**
         * If the revision requested for view is deleted, check permissions.
-        * Send either an error message or a warning header to $wgOut.
+        * Send either an error message or a warning header to the output.
         *
         * @return boolean true if the view is allowed, false if not.
         */
        public function showDeletedRevisionHeader() {
-               global $wgOut, $wgRequest;
-
                if ( !$this->mRevision->isDeleted( Revision::DELETED_TEXT ) ) {
                        // Not deleted
                        return true;
                }
 
+               $outputPage = $this->getContext()->getOutput();
                // If the user is not allowed to see it...
                if ( !$this->mRevision->userCan( Revision::DELETED_TEXT ) ) {
-                       $wgOut->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1\n</div>\n",
+                       $outputPage->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1\n</div>\n",
                                'rev-deleted-text-permission' );
 
                        return false;
                // If the user needs to confirm that they want to see it...
-               } elseif ( $wgRequest->getInt( 'unhide' ) != 1 ) {
+               } elseif ( $this->getContext()->getRequest()->getInt( 'unhide' ) != 1 ) {
                        # Give explanation and add a link to view the revision...
                        $oldid = intval( $this->getOldID() );
                        $link = $this->getTitle()->getFullUrl( "oldid={$oldid}&unhide=1" );
                        $msg = $this->mRevision->isDeleted( Revision::DELETED_RESTRICTED ) ?
                                'rev-suppressed-text-unhide' : 'rev-deleted-text-unhide';
-                       $wgOut->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1\n</div>\n",
+                       $outputPage->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1\n</div>\n",
                                array( $msg, $link ) );
 
                        return false;
@@ -1064,7 +1056,7 @@ class Article extends Page {
                } else {
                        $msg = $this->mRevision->isDeleted( Revision::DELETED_RESTRICTED ) ?
                                'rev-suppressed-text-view' : 'rev-deleted-text-view';
-                       $wgOut->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1\n</div>\n", $msg );
+                       $outputPage->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1\n</div>\n", $msg );
 
                        return true;
                }
@@ -1079,13 +1071,11 @@ class Article extends Page {
         * @param $oldid String: revision ID of this article revision
         */
        public function setOldSubtitle( $oldid = 0 ) {
-               global $wgLang, $wgOut, $wgUser, $wgRequest;
-
                if ( !wfRunHooks( 'DisplayOldSubtitle', array( &$this, &$oldid ) ) ) {
                        return;
                }
 
-               $unhide = $wgRequest->getInt( 'unhide' ) == 1;
+               $unhide = $this->getContext()->getRequest()->getInt( 'unhide' ) == 1;
 
                # Cascade unhide param in links for easy deletion browsing
                $extraParams = array();
@@ -1102,9 +1092,10 @@ class Article extends Page {
                $timestamp = $revision->getTimestamp();
 
                $current = ( $oldid == $this->mPage->getLatest() );
-               $td = $wgLang->timeanddate( $timestamp, true );
-               $tddate = $wgLang->date( $timestamp, true );
-               $tdtime = $wgLang->time( $timestamp, true );
+               $language = $this->getContext()->getLanguage();
+               $td = $language->timeanddate( $timestamp, true );
+               $tddate = $language->date( $timestamp, true );
+               $tdtime = $language->time( $timestamp, true );
 
                # Show user links if allowed to see them. If hidden, then show them only if requested...
                $userlinks = Linker::revUserTools( $revision, !$unhide );
@@ -1113,7 +1104,8 @@ class Article extends Page {
                        ? 'revision-info-current'
                        : 'revision-info';
 
-               $wgOut->addSubtitle( "<div id=\"mw-{$infomsg}\">" . wfMessage( $infomsg,
+               $outputPage = $this->getContext()->getOutput();
+               $outputPage->addSubtitle( "<div id=\"mw-{$infomsg}\">" . wfMessage( $infomsg,
                        $td )->rawParams( $userlinks )->params( $revision->getID(), $tddate,
                        $tdtime, $revision->getUser() )->parse() . "</div>" );
 
@@ -1188,12 +1180,12 @@ class Article extends Page {
                                array( 'known', 'noclasses' )
                        );
 
-               $cdel = Linker::getRevDeleteLink( $wgUser, $revision, $this->getTitle() );
+               $cdel = Linker::getRevDeleteLink( $this->getContext()->getUser(), $revision, $this->getTitle() );
                if ( $cdel !== '' ) {
                        $cdel .= ' ';
                }
 
-               $wgOut->addSubtitle( "<div id=\"mw-revision-nav\">" . $cdel .
+               $outputPage->addSubtitle( "<div id=\"mw-revision-nav\">" . $cdel .
                        wfMsgExt( 'revision-nav', array( 'escapenoentities', 'parsemag', 'replaceafter' ),
                        $prevdiff, $prevlink, $lnk, $curdiff, $nextlink, $nextdiff ) . "</div>" );
        }
@@ -1207,7 +1199,7 @@ class Article extends Page {
         * @return string containing HMTL with redirect link
         */
        public function viewRedirect( $target, $appendSubtitle = true, $forceKnown = false ) {
-               global $wgOut, $wgStylePath;
+               global $wgStylePath;
 
                if ( !is_array( $target ) ) {
                        $target = array( $target );
@@ -1217,7 +1209,7 @@ class Article extends Page {
                $imageDir = $lang->getDir();
 
                if ( $appendSubtitle ) {
-                       $wgOut->appendSubtitle( wfMsgHtml( 'redirectpagesub' ) );
+                       $this->getContext()->getOutput()->appendSubtitle( wfMsgHtml( 'redirectpagesub' ) );
                }
 
                // the loop prepends the arrow image before the link, so the first case needs to be outside
@@ -1255,9 +1247,7 @@ class Article extends Page {
         * Handle action=render
         */
        public function render() {
-               global $wgOut;
-
-               $wgOut->setArticleBodyOnly( true );
+               $this->getContext()->getOutput()->setArticleBodyOnly( true );
                $this->view();
        }
 
@@ -1280,8 +1270,6 @@ class Article extends Page {
         * UI entry point for page deletion
         */
        public function delete() {
-               global $wgOut, $wgRequest, $wgLang;
-
                # This code desperately needs to be totally rewritten
 
                $title = $this->getTitle();
@@ -1303,13 +1291,14 @@ class Article extends Page {
                $conds = $title->pageCond();
                $latest = $dbw->selectField( 'page', 'page_latest', $conds, __METHOD__ );
                if ( $latest === false ) {
-                       $wgOut->setPageTitle( wfMessage( 'cannotdelete-title', $title->getPrefixedText() ) );
-                       $wgOut->wrapWikiMsg( "<div class=\"error mw-error-cannotdelete\">\n$1\n</div>",
+                       $outputPage = $this->getContext()->getOutput();
+                       $outputPage->setPageTitle( wfMessage( 'cannotdelete-title', $title->getPrefixedText() ) );
+                       $outputPage->wrapWikiMsg( "<div class=\"error mw-error-cannotdelete\">\n$1\n</div>",
                                        array( 'cannotdelete', wfEscapeWikiText( $title->getPrefixedText() ) )
                                );
-                       $wgOut->addHTML( Xml::element( 'h2', null, LogPage::logName( 'delete' ) ) );
+                       $outputPage->addHTML( Xml::element( 'h2', null, LogPage::logName( 'delete' ) ) );
                        LogEventsList::showLogExtract(
-                               $wgOut,
+                               $outputPage,
                                'delete',
                                $title->getPrefixedText()
                        );
@@ -1317,8 +1306,9 @@ class Article extends Page {
                        return;
                }
 
-               $deleteReasonList = $wgRequest->getText( 'wpDeleteReasonList', 'other' );
-               $deleteReason = $wgRequest->getText( 'wpReason' );
+               $request = $this->getContext()->getRequest();
+               $deleteReasonList = $request->getText( 'wpDeleteReasonList', 'other' );
+               $deleteReason = $request->getText( 'wpReason' );
 
                if ( $deleteReasonList == 'other' ) {
                        $reason = $deleteReason;
@@ -1329,15 +1319,15 @@ class Article extends Page {
                        $reason = $deleteReasonList;
                }
 
-               if ( $wgRequest->wasPosted() && $user->matchEditToken( $wgRequest->getVal( 'wpEditToken' ),
+               if ( $request->wasPosted() && $user->matchEditToken( $request->getVal( 'wpEditToken' ),
                        array( 'delete', $this->getTitle()->getPrefixedText() ) ) )
                {
                        # Flag to hide all contents of the archived revisions
-                       $suppress = $wgRequest->getVal( 'wpSuppress' ) && $user->isAllowed( 'suppressrevision' );
+                       $suppress = $request->getVal( 'wpSuppress' ) && $user->isAllowed( 'suppressrevision' );
 
                        $this->doDelete( $reason, $suppress );
 
-                       if ( $wgRequest->getCheck( 'wpWatch' ) && $user->isLoggedIn() ) {
+                       if ( $request->getCheck( 'wpWatch' ) && $user->isLoggedIn() ) {
                                $this->doWatch();
                        } elseif ( $title->userIsWatching() ) {
                                $this->doUnwatch();
@@ -1356,8 +1346,8 @@ class Article extends Page {
                if ( $hasHistory ) {
                        $revisions = $this->mTitle->estimateRevisionCount();
                        // @todo FIXME: i18n issue/patchwork message
-                       $wgOut->addHTML( '<strong class="mw-delete-warning-revisions">' .
-                               wfMsgExt( 'historywarning', array( 'parseinline' ), $wgLang->formatNum( $revisions ) ) .
+                       $this->getContext()->getOutput()->addHTML( '<strong class="mw-delete-warning-revisions">' .
+                               wfMsgExt( 'historywarning', array( 'parseinline' ), $this->getContext()->getLanguage()->formatNum( $revisions ) ) .
                                wfMsgHtml( 'word-separator' ) . Linker::link( $title,
                                        wfMsgHtml( 'history' ),
                                        array( 'rel' => 'archives' ),
@@ -1367,8 +1357,8 @@ class Article extends Page {
 
                        if ( $this->mTitle->isBigDeletion() ) {
                                global $wgDeleteRevisionsLimit;
-                               $wgOut->wrapWikiMsg( "<div class='error'>\n$1\n</div>\n",
-                                       array( 'delete-warning-toobig', $wgLang->formatNum( $wgDeleteRevisionsLimit ) ) );
+                               $this->getContext()->getOutput()->wrapWikiMsg( "<div class='error'>\n$1\n</div>\n",
+                                       array( 'delete-warning-toobig', $this->getContext()->getLanguage()->formatNum( $wgDeleteRevisionsLimit ) ) );
                        }
                }
 
@@ -1381,16 +1371,15 @@ class Article extends Page {
         * @param $reason String: prefilled reason
         */
        public function confirmDelete( $reason ) {
-               global $wgOut;
-
                wfDebug( "Article::confirmDelete\n" );
 
-               $wgOut->setPageTitle( wfMessage( 'delete-confirm', $this->getTitle()->getPrefixedText() ) );
-               $wgOut->addBacklinkSubtitle( $this->getTitle() );
-               $wgOut->setRobotPolicy( 'noindex,nofollow' );
-               $wgOut->addWikiMsg( 'confirmdeletetext' );
+               $outputPage = $this->getContext()->getOutput();
+               $outputPage->setPageTitle( wfMessage( 'delete-confirm', $this->getTitle()->getPrefixedText() ) );
+               $outputPage->addBacklinkSubtitle( $this->getTitle() );
+               $outputPage->setRobotPolicy( 'noindex,nofollow' );
+               $outputPage->addWikiMsg( 'confirmdeletetext' );
 
-               wfRunHooks( 'ArticleConfirmDelete', array( $this, $wgOut, &$reason ) );
+               wfRunHooks( 'ArticleConfirmDelete', array( $this, $outputPage, &$reason ) );
 
                $user = $this->getContext()->getUser();
 
@@ -1474,9 +1463,9 @@ class Article extends Page {
                                $form .= '<p class="mw-delete-editreasons">' . $link . '</p>';
                        }
 
-               $wgOut->addHTML( $form );
-               $wgOut->addHTML( Xml::element( 'h2', null, LogPage::logName( 'delete' ) ) );
-               LogEventsList::showLogExtract( $wgOut, 'delete',
+               $outputPage->addHTML( $form );
+               $outputPage->addHTML( Xml::element( 'h2', null, LogPage::logName( 'delete' ) ) );
+               LogEventsList::showLogExtract( $outputPage, 'delete',
                        $this->getTitle()->getPrefixedText()
                );
        }
@@ -1487,34 +1476,33 @@ class Article extends Page {
         * @param $suppress bool
         */
        public function doDelete( $reason, $suppress = false ) {
-               global $wgOut;
-
                $error = '';
+               $outputPage = $this->getContext()->getOutput();
                if ( $this->mPage->doDeleteArticle( $reason, $suppress, 0, true, $error ) ) {
                        $deleted = $this->getTitle()->getPrefixedText();
 
-                       $wgOut->setPageTitle( wfMessage( 'actioncomplete' ) );
-                       $wgOut->setRobotPolicy( 'noindex,nofollow' );
+                       $outputPage->setPageTitle( wfMessage( 'actioncomplete' ) );
+                       $outputPage->setRobotPolicy( 'noindex,nofollow' );
 
                        $loglink = '[[Special:Log/delete|' . wfMsgNoTrans( 'deletionlog' ) . ']]';
 
-                       $wgOut->addWikiMsg( 'deletedtext', wfEscapeWikiText( $deleted ), $loglink );
-                       $wgOut->returnToMain( false );
+                       $outputPage->addWikiMsg( 'deletedtext', wfEscapeWikiText( $deleted ), $loglink );
+                       $outputPage->returnToMain( false );
                } else {
-                       $wgOut->setPageTitle( wfMessage( 'cannotdelete-title', $this->getTitle()->getPrefixedText() ) );
+                       $outputPage->setPageTitle( wfMessage( 'cannotdelete-title', $this->getTitle()->getPrefixedText() ) );
                        if ( $error == '' ) {
-                               $wgOut->wrapWikiMsg( "<div class=\"error mw-error-cannotdelete\">\n$1\n</div>",
+                               $outputPage->wrapWikiMsg( "<div class=\"error mw-error-cannotdelete\">\n$1\n</div>",
                                        array( 'cannotdelete', wfEscapeWikiText( $this->getTitle()->getPrefixedText() ) )
                                );
-                               $wgOut->addHTML( Xml::element( 'h2', null, LogPage::logName( 'delete' ) ) );
+                               $outputPage->addHTML( Xml::element( 'h2', null, LogPage::logName( 'delete' ) ) );
 
                                LogEventsList::showLogExtract(
-                                       $wgOut,
+                                       $outputPage,
                                        'delete',
                                        $this->getTitle()->getPrefixedText()
                                );
                        } else {
-                               $wgOut->addHTML( $error );
+                               $outputPage->addHTML( $error );
                        }
                }
        }
@@ -1587,9 +1575,7 @@ class Article extends Page {
         * @return ParserOutput or false if the given revsion ID is not found
         */
        public function getParserOutput( $oldid = null, User $user = null ) {
-               global $wgUser;
-
-               $user = is_null( $user ) ? $wgUser : $user;
+               $user = is_null( $user ) ? $this->getContext()->getUser() : $user;
                $parserOptions = $this->mPage->makeParserOptions( $user );
 
                return $this->mPage->getParserOutput( $parserOptions, $oldid );
@@ -1600,9 +1586,8 @@ class Article extends Page {
         * @return ParserOptions
         */
        public function getParserOptions() {
-               global $wgUser;
                if ( !$this->mParserOptions ) {
-                       $this->mParserOptions = $this->mPage->makeParserOptions( $wgUser );
+                       $this->mParserOptions = $this->mPage->makeParserOptions( $this->getContext()->getUser() );
                }
                // Clone to allow modifications of the return value without affecting cache
                return clone $this->mParserOptions;
@@ -1688,7 +1673,7 @@ class Article extends Page {
        }
 
        /**
-        * Add this page to $wgUser's watchlist
+        * Add this page to the current user's watchlist
         *
         * This is safe to be called multiple times
         *
@@ -1696,9 +1681,8 @@ class Article extends Page {
         * @deprecated since 1.18
         */
        public function doWatch() {
-               global $wgUser;
                wfDeprecated( __METHOD__, '1.18' );
-               return WatchAction::doWatch( $this->getTitle(), $wgUser );
+               return WatchAction::doWatch( $this->getTitle(), $this->getContext()->getUser() );
        }
 
        /**
@@ -1717,24 +1701,21 @@ class Article extends Page {
         * @deprecated since 1.18
         */
        public function doUnwatch() {
-               global $wgUser;
                wfDeprecated( __METHOD__, '1.18' );
-               return WatchAction::doUnwatch( $this->getTitle(), $wgUser );
+               return WatchAction::doUnwatch( $this->getTitle(), $this->getContext()->getUser() );
        }
 
        /**
         * Output a redirect back to the article.
         * This is typically used after an edit.
         *
-        * @deprecated in 1.18; call $wgOut->redirect() directly
+        * @deprecated in 1.18; call OutputPage::redirect() directly
         * @param $noRedir Boolean: add redirect=no
         * @param $sectionAnchor String: section to redirect to, including "#"
         * @param $extraQuery String: extra query params
         */
        public function doRedirect( $noRedir = false, $sectionAnchor = '', $extraQuery = '' ) {
                wfDeprecated( __METHOD__, '1.18' );
-               global $wgOut;
-
                if ( $noRedir ) {
                        $query = 'redirect=no';
                        if ( $extraQuery )
@@ -1743,7 +1724,7 @@ class Article extends Page {
                        $query = $extraQuery;
                }
 
-               $wgOut->redirect( $this->getTitle()->getFullURL( $query ) . $sectionAnchor );
+               $this->getContext()->getOutput()->redirect( $this->getTitle()->getFullURL( $query ) . $sectionAnchor );
        }
 
        /**
@@ -1842,8 +1823,7 @@ class Article extends Page {
         * @return array
         */
        public function doRollback( $fromP, $summary, $token, $bot, &$resultDetails, User $user = null ) {
-               global $wgUser;
-               $user = is_null( $user ) ? $wgUser : $user;
+               $user = is_null( $user ) ? $this->getContext()->getUser() : $user;
                return $this->mPage->doRollback( $fromP, $summary, $token, $bot, $resultDetails, $user );
        }
 
@@ -1856,8 +1836,7 @@ class Article extends Page {
         * @return array
         */
        public function commitRollback( $fromP, $summary, $bot, &$resultDetails, User $guser = null ) {
-               global $wgUser;
-               $guser = is_null( $guser ) ? $wgUser : $guser;
+               $guser = is_null( $guser ) ? $this->getContext()->getUser() : $guser;
                return $this->mPage->commitRollback( $fromP, $summary, $bot, $resultDetails, $guser );
        }
 
index dce8d91..015099a 100644 (file)
@@ -819,7 +819,7 @@ class EditPage {
 
                                                        # If we just undid one rev, use an autosummary
                                                        $firstrev = $oldrev->getNext();
-                                                       if ( $firstrev->getId() == $undo ) {
+                                                       if ( $firstrev && $firstrev->getId() == $undo ) {
                                                                $undoSummary = wfMsgForContent( 'undo-summary', $undo, $undorev->getUserText() );
                                                                if ( $this->summary === '' ) {
                                                                        $this->summary = $undoSummary;
index 73b07c3..811d716 100644 (file)
@@ -49,6 +49,15 @@ class WikiExporter {
        const TEXT = 0;
        const STUB = 1;
 
+       var $buffer;
+
+       var $text;
+
+       /**
+        * @var DumpOutput
+        */
+       var $sink;
+
        /**
         * If using WikiExporter::STREAM to stream a large amount of data,
         * provide a database connection which is not managed by
@@ -145,6 +154,10 @@ class WikiExporter {
                        ' AND page_title=' . $this->db->addQuotes( $title->getDBkey() ) );
        }
 
+       /**
+        * @param $name string
+        * @throws MWException
+        */
        public function pageByName( $name ) {
                $title = Title::newFromText( $name );
                if ( is_null( $title ) ) {
@@ -154,6 +167,9 @@ class WikiExporter {
                }
        }
 
+       /**
+        * @param $names array
+        */
        public function pagesByName( $names ) {
                foreach ( $names as $name ) {
                        $this->pageByName( $name );
@@ -164,6 +180,10 @@ class WikiExporter {
                $this->dumpFrom( '' );
        }
 
+       /**
+        * @param $start int
+        * @param $end int
+        */
        public function logsByRange( $start, $end ) {
                $condition = 'log_id >= ' . intval( $start );
                if ( $end ) {
@@ -172,9 +192,13 @@ class WikiExporter {
                $this->dumpFrom( $condition );
        }
 
-       # Generates the distinct list of authors of an article
-       # Not called by default (depends on $this->list_authors)
-       # Can be set by Special:Export when not exporting whole history
+       /**
+        * Generates the distinct list of authors of an article
+        * Not called by default (depends on $this->list_authors)
+        * Can be set by Special:Export when not exporting whole history
+        *
+        * @param $cond
+        */
        protected function do_list_authors( $cond ) {
                wfProfileIn( __METHOD__ );
                $this->author_list = "<contributors>";
@@ -205,6 +229,11 @@ class WikiExporter {
                wfProfileOut( __METHOD__ );
        }
 
+       /**
+        * @param $cond string
+        * @throws MWException
+        * @throws Exception
+        */
        protected function dumpFrom( $cond = '' ) {
                wfProfileIn( __METHOD__ );
                # For logging dumps...
@@ -419,6 +448,9 @@ class WikiExporter {
                }
        }
 
+       /**
+        * @param $resultset array
+        */
        protected function outputLogStream( $resultset ) {
                foreach ( $resultset as $row ) {
                        $output = $this->writer->writeLogItem( $row );
@@ -464,6 +496,9 @@ class XmlDumpWriter {
                        $this->siteInfo();
        }
 
+       /**
+        * @return string
+        */
        function siteInfo() {
                $info = array(
                        $this->sitename(),
@@ -476,20 +511,32 @@ class XmlDumpWriter {
                        "\n  </siteinfo>\n";
        }
 
+       /**
+        * @return string
+        */
        function sitename() {
                global $wgSitename;
                return Xml::element( 'sitename', array(), $wgSitename );
        }
 
+       /**
+        * @return string
+        */
        function generator() {
                global $wgVersion;
                return Xml::element( 'generator', array(), "MediaWiki $wgVersion" );
        }
 
+       /**
+        * @return string
+        */
        function homelink() {
                return Xml::element( 'base', array(), Title::newMainPage()->getCanonicalUrl() );
        }
 
+       /**
+        * @return string
+        */
        function caseSetting() {
                global $wgCapitalLinks;
                // "case-insensitive" option is reserved for future
@@ -497,6 +544,9 @@ class XmlDumpWriter {
                return Xml::element( 'case', array(), $sensitivity );
        }
 
+       /**
+        * @return string
+        */
        function namespaces() {
                global $wgContLang;
                $spaces = "<namespaces>\n";
@@ -591,7 +641,7 @@ class XmlDumpWriter {
                if ( $row->rev_deleted & Revision::DELETED_COMMENT ) {
                        $out .= "      " . Xml::element( 'comment', array( 'deleted' => 'deleted' ) ) . "\n";
                } elseif ( $row->rev_comment != '' ) {
-                       $out .= "      " . Xml::elementClean( 'comment', null, strval( $row->rev_comment ) ) . "\n";
+                       $out .= "      " . Xml::elementClean( 'comment', array(), strval( $row->rev_comment ) ) . "\n";
                }
 
                $text = '';
@@ -671,11 +721,20 @@ class XmlDumpWriter {
                return $out;
        }
 
+       /**
+        * @param $timestamp string
+        * @return string
+        */
        function writeTimestamp( $timestamp ) {
                $ts = wfTimestamp( TS_ISO_8601, $timestamp );
                return "      " . Xml::element( 'timestamp', null, $ts ) . "\n";
        }
 
+       /**
+        * @param $id
+        * @param $text string
+        * @return string
+        */
        function writeContributor( $id, $text ) {
                $out = "      <contributor>\n";
                if ( $id || !IP::isValid( $text ) ) {
@@ -690,6 +749,8 @@ class XmlDumpWriter {
 
        /**
         * Warning! This data is potentially inconsistent. :(
+        * @param $row
+        * @param $dumpContents bool
         * @return string
         */
        function writeUploads( $row, $dumpContents = false ) {
@@ -774,32 +835,55 @@ class XmlDumpWriter {
  * @ingroup Dump
  */
 class DumpOutput {
+
+       /**
+        * @param $string string
+        */
        function writeOpenStream( $string ) {
                $this->write( $string );
        }
 
+       /**
+        * @param $string string
+        */
        function writeCloseStream( $string ) {
                $this->write( $string );
        }
 
+       /**
+        * @param $page
+        * @param $string string
+        */
        function writeOpenPage( $page, $string ) {
                $this->write( $string );
        }
 
+       /**
+        * @param $string string
+        */
        function writeClosePage( $string ) {
                $this->write( $string );
        }
 
+       /**
+        * @param $rev
+        * @param $string string
+        */
        function writeRevision( $rev, $string ) {
                $this->write( $string );
        }
 
+       /**
+        * @param $rev
+        * @param $string string
+        */
        function writeLogItem( $rev, $string ) {
                $this->write( $string );
        }
 
        /**
         * Override to write to a different stream type.
+        * @param $string string
         * @return bool
         */
        function write( $string ) {
@@ -845,11 +929,17 @@ class DumpOutput {
 class DumpFileOutput extends DumpOutput {
        protected $handle = false, $filename;
 
+       /**
+        * @param $file
+        */
        function __construct( $file ) {
                $this->handle = fopen( $file, "wt" );
                $this->filename = $file;
        }
 
+       /**
+        * @param $string string
+        */
        function writeCloseStream( $string ) {
                parent::writeCloseStream( $string );
                if ( $this->handle ) {
@@ -858,20 +948,35 @@ class DumpFileOutput extends DumpOutput {
                }
        }
 
+       /**
+        * @param $string string
+        */
        function write( $string ) {
                fputs( $this->handle, $string );
        }
 
+       /**
+        * @param $newname
+        */
        function closeRenameAndReopen( $newname ) {
                $this->closeAndRename( $newname, true );
        }
 
+       /**
+        * @param $newname
+        * @throws MWException
+        */
        function renameOrException( $newname ) {
                        if (! rename( $this->filename, $newname ) ) {
                                throw new MWException( __METHOD__ . ": rename of file {$this->filename} to $newname failed\n" );
                        }
        }
 
+       /**
+        * @param $newname array
+        * @return mixed
+        * @throws MWException
+        */
        function checkRenameArgCount( $newname ) {
                if ( is_array( $newname ) ) {
                        if ( count( $newname ) > 1 ) {
@@ -883,6 +988,10 @@ class DumpFileOutput extends DumpOutput {
                return $newname;
        }
 
+       /**
+        * @param $newname mixed
+        * @param $open bool
+        */
        function closeAndRename( $newname, $open = false ) {
                $newname = $this->checkRenameArgCount( $newname );
                if ( $newname ) {
@@ -897,6 +1006,9 @@ class DumpFileOutput extends DumpOutput {
                }
        }
 
+       /**
+        * @return string|null
+        */
        function getFilenames() {
                return $this->filename;
        }
@@ -912,6 +1024,10 @@ class DumpPipeOutput extends DumpFileOutput {
        protected $command, $filename;
        protected $procOpenResource = false;
 
+       /**
+        * @param $command
+        * @param $file null
+        */
        function __construct( $command, $file = null ) {
                if ( !is_null( $file ) ) {
                        $command .=  " > " . wfEscapeShellArg( $file );
@@ -922,6 +1038,9 @@ class DumpPipeOutput extends DumpFileOutput {
                $this->filename = $file;
        }
 
+       /**
+        * @param $string string
+        */
        function writeCloseStream( $string ) {
                parent::writeCloseStream( $string );
                if ( $this->procOpenResource ) {
@@ -930,6 +1049,9 @@ class DumpPipeOutput extends DumpFileOutput {
                }
        }
 
+       /**
+        * @param $command
+        */
        function startCommand( $command ) {
                $spec = array(
                        0 => array( "pipe", "r" ),
@@ -939,10 +1061,17 @@ class DumpPipeOutput extends DumpFileOutput {
                $this->handle = $pipes[0];
        }
 
+       /**
+        * @param mixed $newname
+        */
        function closeRenameAndReopen( $newname ) {
                $this->closeAndRename( $newname, true );
        }
 
+       /**
+        * @param $newname mixed
+        * @param $open bool
+        */
        function closeAndRename( $newname, $open = false ) {
                $newname = $this->checkRenameArgCount( $newname );
                if ( $newname ) {
@@ -970,6 +1099,10 @@ class DumpPipeOutput extends DumpFileOutput {
  * @ingroup Dump
  */
 class DumpGZipOutput extends DumpPipeOutput {
+
+       /**
+        * @param $file string
+        */
        function __construct( $file ) {
                parent::__construct( "gzip", $file );
        }
@@ -980,6 +1113,10 @@ class DumpGZipOutput extends DumpPipeOutput {
  * @ingroup Dump
  */
 class DumpBZip2Output extends DumpPipeOutput {
+
+       /**
+        * @param $file string
+        */
        function __construct( $file ) {
                parent::__construct( "bzip2", $file );
        }
@@ -990,12 +1127,20 @@ class DumpBZip2Output extends DumpPipeOutput {
  * @ingroup Dump
  */
 class Dump7ZipOutput extends DumpPipeOutput {
+
+       /**
+        * @param $file string
+        */
        function __construct( $file ) {
                $command = $this->setup7zCommand( $file );
                parent::__construct( $command );
                $this->filename = $file;
        }
 
+       /**
+        * @param $file string
+        * @return string
+        */
        function setup7zCommand( $file ) {
                $command = "7za a -bd -si " . wfEscapeShellArg( $file );
                // Suppress annoying useless crap from p7zip
@@ -1004,6 +1149,10 @@ class Dump7ZipOutput extends DumpPipeOutput {
                return( $command );
        }
 
+       /**
+        * @param $newname string
+        * @param $open bool
+        */
        function closeAndRename( $newname, $open = false ) {
                $newname = $this->checkRenameArgCount( $newname );
                if ( $newname ) {
@@ -1018,8 +1167,6 @@ class Dump7ZipOutput extends DumpPipeOutput {
        }
 }
 
-
-
 /**
  * Dump output filter class.
  * This just does output filtering and streaming; XML formatting is done
@@ -1027,18 +1174,42 @@ class Dump7ZipOutput extends DumpPipeOutput {
  * @ingroup Dump
  */
 class DumpFilter {
+
+       /**
+        * @var DumpOutput
+        */
+       protected $sink;
+
+       /**
+        * @var bool
+        */
+       protected $sendingThisPage;
+
+       /**
+        * @param $sink DumpOutput
+        */
        function __construct( &$sink ) {
                $this->sink =& $sink;
        }
 
+       /**
+        * @param $string string
+        */
        function writeOpenStream( $string ) {
                $this->sink->writeOpenStream( $string );
        }
 
+       /**
+        * @param $string string
+        */
        function writeCloseStream( $string ) {
                $this->sink->writeCloseStream( $string );
        }
 
+       /**
+        * @param $page
+        * @param $string string
+        */
        function writeOpenPage( $page, $string ) {
                $this->sendingThisPage = $this->pass( $page, $string );
                if ( $this->sendingThisPage ) {
@@ -1046,6 +1217,9 @@ class DumpFilter {
                }
        }
 
+       /**
+        * @param $string string
+        */
        function writeClosePage( $string ) {
                if ( $this->sendingThisPage ) {
                        $this->sink->writeClosePage( $string );
@@ -1053,30 +1227,49 @@ class DumpFilter {
                }
        }
 
+       /**
+        * @param $rev
+        * @param $string string
+        */
        function writeRevision( $rev, $string ) {
                if ( $this->sendingThisPage ) {
                        $this->sink->writeRevision( $rev, $string );
                }
        }
 
+       /**
+        * @param $rev
+        * @param $string string
+        */
        function writeLogItem( $rev, $string ) {
                $this->sink->writeRevision( $rev, $string );
        }
 
+       /**
+        * @param $newname string
+        */
        function closeRenameAndReopen( $newname ) {
                $this->sink->closeRenameAndReopen( $newname );
        }
 
+       /**
+        * @param $newname string
+        * @param $open bool
+        */
        function closeAndRename( $newname, $open = false ) {
                $this->sink->closeAndRename( $newname, $open );
        }
 
+       /**
+        * @return array
+        */
        function getFilenames() {
                return $this->sink->getFilenames();
        }
 
        /**
         * Override for page-based filter types.
+        * @param $page
         * @return bool
         */
        function pass( $page ) {
@@ -1089,6 +1282,11 @@ class DumpFilter {
  * @ingroup Dump
  */
 class DumpNotalkFilter extends DumpFilter {
+
+       /**
+        * @param $page
+        * @return bool
+        */
        function pass( $page ) {
                return !MWNamespace::isTalk( $page->page_namespace );
        }
@@ -1102,6 +1300,10 @@ class DumpNamespaceFilter extends DumpFilter {
        var $invert = false;
        var $namespaces = array();
 
+       /**
+        * @param $sink DumpOutput
+        * @param $param
+        */
        function __construct( &$sink, $param ) {
                parent::__construct( $sink );
 
@@ -1144,6 +1346,10 @@ class DumpNamespaceFilter extends DumpFilter {
                }
        }
 
+       /**
+        * @param $page
+        * @return bool
+        */
        function pass( $page ) {
                $match = isset( $this->namespaces[$page->page_namespace] );
                return $this->invert xor $match;
@@ -1158,11 +1364,18 @@ class DumpNamespaceFilter extends DumpFilter {
 class DumpLatestFilter extends DumpFilter {
        var $page, $pageString, $rev, $revString;
 
+       /**
+        * @param $page
+        * @param $string string
+        */
        function writeOpenPage( $page, $string ) {
                $this->page = $page;
                $this->pageString = $string;
        }
 
+       /**
+        * @param $string string
+        */
        function writeClosePage( $string ) {
                if ( $this->rev ) {
                        $this->sink->writeOpenPage( $this->page, $this->pageString );
@@ -1175,6 +1388,10 @@ class DumpLatestFilter extends DumpFilter {
                $this->pageString = null;
        }
 
+       /**
+        * @param $rev
+        * @param $string string
+        */
        function writeRevision( $rev, $string ) {
                if ( $rev->rev_id == $this->page->page_latest ) {
                        $this->rev = $rev;
@@ -1188,51 +1405,82 @@ class DumpLatestFilter extends DumpFilter {
  * @ingroup Dump
  */
 class DumpMultiWriter {
+
+       /**
+        * @param $sinks
+        */
        function __construct( $sinks ) {
                $this->sinks = $sinks;
                $this->count = count( $sinks );
        }
 
+       /**
+        * @param $string string
+        */
        function writeOpenStream( $string ) {
                for ( $i = 0; $i < $this->count; $i++ ) {
                        $this->sinks[$i]->writeOpenStream( $string );
                }
        }
 
+       /**
+        * @param $string string
+        */
        function writeCloseStream( $string ) {
                for ( $i = 0; $i < $this->count; $i++ ) {
                        $this->sinks[$i]->writeCloseStream( $string );
                }
        }
 
+       /**
+        * @param $page
+        * @param $string string
+        */
        function writeOpenPage( $page, $string ) {
                for ( $i = 0; $i < $this->count; $i++ ) {
                        $this->sinks[$i]->writeOpenPage( $page, $string );
                }
        }
 
+       /**
+        * @param $string
+        */
        function writeClosePage( $string ) {
                for ( $i = 0; $i < $this->count; $i++ ) {
                        $this->sinks[$i]->writeClosePage( $string );
                }
        }
 
+       /**
+        * @param $rev
+        * @param $string
+        */
        function writeRevision( $rev, $string ) {
                for ( $i = 0; $i < $this->count; $i++ ) {
                        $this->sinks[$i]->writeRevision( $rev, $string );
                }
        }
 
+       /**
+        * @param $newnames
+        */
        function closeRenameAndReopen( $newnames ) {
                $this->closeAndRename( $newnames, true );
        }
 
+       /**
+        * @param $newnames array
+        * @param bool $open
+        */
        function closeAndRename( $newnames, $open = false ) {
                for ( $i = 0; $i < $this->count; $i++ ) {
                        $this->sinks[$i]->closeAndRename( $newnames[$i], $open );
                }
        }
 
+       /**
+        * @return array
+        */
        function getFilenames() {
                $filenames = array();
                for ( $i = 0; $i < $this->count; $i++ ) {
@@ -1243,6 +1491,10 @@ class DumpMultiWriter {
 
 }
 
+/**
+ * @param $string string
+ * @return string
+ */
 function xmlsafe( $string ) {
        wfProfileIn( __FUNCTION__ );
 
index b870475..3468325 100644 (file)
@@ -80,10 +80,16 @@ class ExternalEdit extends ContextSource {
                } elseif ( $this->getRequest()->getVal( 'mode' ) == 'file' ) {
                        $type = "Edit file";
                        $image = wfLocalFile( $this->getTitle() );
-                       $urls = array( 'File' => array(
-                               'Extension' => $image->getExtension(),
-                               'URL' => $image->getCanonicalURL()
-                       ) );
+                       if ( $image ) {
+                               $urls = array(
+                                       'File' => array(
+                                               'Extension' => $image->getExtension(),
+                                               'URL' => $image->getCanonicalURL()
+                                       )
+                               );
+                       } else{
+                               $urls = array();
+                       }
                } else {
                        $type = "Edit text";
                        # *.wiki file extension is used by some editors for syntax
index 74c07cc..b15cedd 100644 (file)
@@ -70,7 +70,7 @@ class GitInfo {
                if ( preg_match( "/ref: (.*)/", $HEAD, $m ) ) {
                        return rtrim( $m[1] );
                } else {
-                       return $HEAD;
+                       return rtrim( $HEAD );
                }
        }
 
index 1c5c832..b27ac7c 100644 (file)
@@ -83,6 +83,7 @@ class Title {
        var $mRedirect = null;            // /< Is the article at this title a redirect?
        var $mNotificationTimestamp = array(); // /< Associative array of user ID -> timestamp/false
        var $mBacklinkCache = null;       // /< Cache of links to this title
+       var $mHasSubpage;                 // /< Whether a page has any subpages
        // @}
 
 
@@ -119,7 +120,8 @@ class Title {
         *   fied by a prefix.  If you want to force a specific namespace even if
         *   $text might begin with a namespace prefix, use makeTitle() or
         *   makeTitleSafe().
-        * @return Title, or null on an error.
+        * @throws MWException
+        * @return Title|null - Title or null on an error.
         */
        public static function newFromText( $text, $defaultNamespace = NS_MAIN ) {
                if ( is_object( $text ) ) {
@@ -858,6 +860,7 @@ class Title {
         * This is MUCH simpler than individually testing for equivilance
         * against both NS_USER and NS_USER_TALK, and is also forward compatible.
         * @since 1.19
+        * @param $ns int
         * @return bool
         */
        public function hasSubjectNamespace( $ns ) {
@@ -1222,6 +1225,8 @@ class Title {
         * andthe wfArrayToCGI moved to getLocalURL();
         *
         * @since 1.19 (r105919)
+        * @param $query
+        * @param $query2 bool
         * @return String
         */
        private static function fixUrlQueryArgs( $query, $query2 = false ) {
@@ -1404,6 +1409,8 @@ class Title {
         * See getLocalURL for the arguments.
         *
         * @see self::getLocalURL
+        * @param $query string
+        * @param $query2 bool|string
         * @return String the URL
         */
        public function escapeLocalURL( $query = '', $query2 = false ) {
@@ -2468,8 +2475,9 @@ class Title {
        /**
         * Get the expiry time for the restriction against a given action
         *
+        * @param $action
         * @return String|Bool 14-char timestamp, or 'infinity' if the page is protected forever
-        *      or not protected at all, or false if the action is not recognised.
+        *     or not protected at all, or false if the action is not recognised.
         */
        public function getRestrictionExpiry( $action ) {
                if ( !$this->mRestrictionsLoaded ) {
@@ -4468,7 +4476,7 @@ class Title {
         * $wgLang (such as special pages, which are in the user language).
         *
         * @since 1.18
-        * @return object Language
+        * @return Language
         */
        public function getPageLanguage() {
                global $wgLang;
index 2678f54..42ba690 100644 (file)
@@ -1718,7 +1718,7 @@ class WikiPage extends Page {
         * @param &$cascade Integer. Set to false if cascading protection isn't allowed.
         * @param $expiry Array: per restriction type expiration
         * @param $user User The user updating the restrictions
-        * @return bool true on success
+        * @return Status
         */
        public function doUpdateRestrictions( array $limit, array $expiry, &$cascade, $reason, User $user ) {
                global $wgContLang;
index 1103814..fc2ef77 100644 (file)
@@ -723,8 +723,14 @@ abstract class ApiBase extends ContextSource {
        /**
         * @return array
         */
-       public function getTitleOrPageIdErrorMessage( ) {
-               return $this->getRequireOnlyOneParameterErrorMessages( array( 'title', 'pageid' ) );
+       public function getTitleOrPageIdErrorMessage() {
+               return array_merge(
+                       $this->getRequireOnlyOneParameterErrorMessages( array( 'title', 'pageid' ) ),
+                       array(
+                               array( 'invalidtitle', 'title' ),
+                               array( 'nosuchpageid', 'pageid' ),
+                       )
+               );
        }
 
        /**
index 15c1f82..21e7b80 100644 (file)
@@ -230,8 +230,6 @@ class ApiDelete extends ApiBase {
                return array_merge( parent::getPossibleErrors(),
                        $this->getTitleOrPageIdErrorMessage(),
                        array(
-                               array( 'invalidtitle', 'title' ),
-                               array( 'nosuchpageid', 'pageid' ),
                                array( 'notanarticle' ),
                                array( 'hookaborted', 'error' ),
                                array( 'delete-toobig', 'limit' ),
index 290c5df..11f4757 100644 (file)
@@ -371,9 +371,7 @@ class ApiEditPage extends ApiBase {
                return array_merge( parent::getPossibleErrors(),
                        $this->getTitleOrPageIdErrorMessage(),
                        array(
-                               array( 'nosuchpageid', 'pageid' ),
                                array( 'missingtext' ),
-                               array( 'invalidtitle', 'title' ),
                                array( 'createonly-exists' ),
                                array( 'nocreate-missing' ),
                                array( 'nosuchrevid', 'undo' ),
@@ -471,14 +469,14 @@ class ApiEditPage extends ApiBase {
                        'sectiontitle' => 'The title for a new section',
                        'text' => 'Page content',
                        'token' => array( 'Edit token. You can get one of these through prop=info.',
-                                               'The token should always be sent as the last parameter, or at least, after the text parameter'
+                                               "The token should always be sent as the last parameter, or at least, after the {$p}text parameter"
                        ),
-                       'summary' => 'Edit summary. Also section title when section=new',
+                       'summary' => "Edit summary. Also section title when {$p}section=new and {$p}sectiontitle is not set",
                        'minor' => 'Minor edit',
                        'notminor' => 'Non-minor edit',
                        'bot' => 'Mark this edit as bot',
                        'basetimestamp' => array( 'Timestamp of the base revision (obtained through prop=revisions&rvprop=timestamp).',
-                                               'Used to detect edit conflicts; leave unset to ignore conflicts.'
+                                               'Used to detect edit conflicts; leave unset to ignore conflicts'
                        ),
                        'starttimestamp' => array( 'Timestamp when you obtained the edit token.',
                                                'Used to detect edit conflicts; leave unset to ignore conflicts'
@@ -492,7 +490,8 @@ class ApiEditPage extends ApiBase {
                        'md5' => array( "The MD5 hash of the {$p}text parameter, or the {$p}prependtext and {$p}appendtext parameters concatenated.",
                                        'If set, the edit won\'t be done unless the hash is correct' ),
                        'prependtext' => "Add this text to the beginning of the page. Overrides {$p}text",
-                       'appendtext' => "Add this text to the end of the page. Overrides {$p}text",
+                       'appendtext' => array( "Add this text to the end of the page. Overrides {$p}text.",
+                                               "Use {$p}section=new to append a new section" ),
                        'undo' => "Undo this revision. Overrides {$p}text, {$p}prependtext and {$p}appendtext",
                        'undoafter' => 'Undo all revisions from undo to this one. If not set, just undo one revision',
                        'redirect' => 'Automatically resolve redirects',
index 7ef1da0..5ea2571 100644 (file)
@@ -133,7 +133,7 @@ class ApiFileRevert extends ApiBase {
 
        public function getParamDescription() {
                $params = array(
-                       'filename' => 'Target filename',
+                       'filename' => 'Target filename without the File: prefix',
                        'token' => 'Edit token. You can get one of these through prop=info',
                        'comment' => 'Upload comment',
                        'archivename' => 'Archive name of the revision to revert to',
index 17e9225..7dfdffc 100644 (file)
@@ -165,7 +165,7 @@ abstract class ApiFormatBase extends ApiBase {
 You are looking at the HTML representation of the <?php echo( $this->mFormat ); ?> format.<br />
 HTML is good for debugging, but is unsuitable for application use.<br />
 Specify the format parameter to change the output format.<br />
-To see the non HTML representation of the <?php echo( $this->mFormat ); ?> format, set format=<?php echo( $this->mFormat ); ?>.<br />
+To see the non HTML representation of the <?php echo( $this->mFormat ); ?> format, set format=<?php echo( strtolower( $this->mFormat ) ); ?>.<br />
 See the <a href='https://www.mediawiki.org/wiki/API'>complete documentation</a>, or
 <a href='<?php echo( $script ); ?>'>API help</a> for more information.
 </small>
index ade9f1f..5093b6b 100644 (file)
@@ -186,8 +186,16 @@ class ApiImportReporter extends ImportReporter {
        function reportPage( $title, $origTitle, $revisionCount, $successCount, $pageInfo ) {
                // Add a result entry
                $r = array();
-               ApiQueryBase::addTitleInfo( $r, $title );
-               $r['revisions'] = intval( $successCount );
+
+               if ( $title === null ) {\r
+                       # Invalid or non-importable title
+                       $r['title'] = $pageInfo['title'];
+                       $r['invalid'] = '';\r
+               } else {\r
+                       ApiQueryBase::addTitleInfo( $r, $title );
+                       $r['revisions'] = intval( $successCount );
+               }
+
                $this->mResultArr[] = $r;
 
                // Piggyback on the parent to do the logging
index 141f779..963fd85 100644 (file)
@@ -59,13 +59,13 @@ class ApiParse extends ApiBase {
                // The parser needs $wgTitle to be set, apparently the
                // $title parameter in Parser::parse isn't enough *sigh*
                // TODO: Does this still need $wgTitle?
-               global $wgParser, $wgTitle, $wgLang;
+               global $wgParser, $wgTitle;
 
                // Currently unnecessary, code to act as a safeguard against any change in current behaviour of uselang breaks
                $oldLang = null;
-               if ( isset( $params['uselang'] ) && $params['uselang'] != $wgLang->getCode() ) {
-                       $oldLang = $wgLang; // Backup wgLang
-                       $wgLang = Language::factory( $params['uselang'] );
+               if ( isset( $params['uselang'] ) && $params['uselang'] != $this->getContext()->getLanguage()->getCode() ) {
+                       $oldLang = $this->getContext()->getLanguage(); // Backup language
+                       $this->getContext()->setLanguage( Language::factory( $params['uselang'] ) );
                }
 
                $popts = ParserOptions::newFromContext( $this->getContext() );
@@ -302,7 +302,7 @@ class ApiParse extends ApiBase {
                $result->addValue( null, $this->getModuleName(), $result_array );
 
                if ( !is_null( $oldLang ) ) {
-                       $wgLang = $oldLang; // Reset $wgLang to $oldLang
+                       $this->getContext()->setLanguage( $oldLang ); // Reset language to $oldLang
                }
        }
 
@@ -328,6 +328,9 @@ class ApiParse extends ApiBase {
                        // Try the parser cache first
                        // getParserOutput will save to Parser cache if able
                        $pout = $page->getParserOutput( $popts );
+                       if ( !$pout ) {
+                               $this->dieUsage( "There is no revision ID {$page->getLatest()}", 'missingrev' );
+                       }
                        if ( $getWikitext ) {
                                $this->text = $page->getRawText();
                        }
index 57bf111..97e79ff 100644 (file)
@@ -192,8 +192,6 @@ class ApiProtect extends ApiBase {
                return array_merge( parent::getPossibleErrors(),
                        $this->getTitleOrPageIdErrorMessage(),
                        array(
-                               array( 'invalidtitle', 'title' ),
-                               array( 'nosuchpageid', 'pageid' ),
                                array( 'toofewexpiries', 'noofexpiries', 'noofprotections' ),
                                array( 'create-titleexists' ),
                                array( 'missingtitle-createonly' ),
index 381ef55..bf9aa3d 100644 (file)
@@ -369,14 +369,7 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                if ( !is_null( $this->params['continue'] ) ) {
                        $this->parseContinueParam();
                } else {
-                       if ( $this->params['title'] !== '' ) {
-                               $title = Title::newFromText( $this->params['title'] );
-                               if ( !$title ) {
-                                       $this->dieUsageMsg( array( 'invalidtitle', $this->params['title'] ) );
-                               } else {
-                                       $this->rootTitle = $title;
-                               }
-                       }
+                       $this->rootTitle = $this->getTitleOrPageId( $this->params );
                }
 
                // only image titles are allowed for the root in imageinfo mode
@@ -436,7 +429,9 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                $retval = array(
                        'title' => array(
                                ApiBase::PARAM_TYPE => 'string',
-                               ApiBase::PARAM_REQUIRED => true
+                       ),
+                       'pageid' => array(
+                               ApiBase::PARAM_TYPE => 'integer',
                        ),
                        'continue' => null,
                        'namespace' => array(
@@ -468,7 +463,8 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
 
        public function getParamDescription() {
                $retval = array(
-                       'title' => 'Title to search',
+                       'title' => "Title to search. Cannot be used together with {$this->bl_code}pageid",
+                       'pageid' => "Pageid to search. Cannot be used together with {$this->bl_code}title",
                        'continue' => 'When more results are available, use this to continue',
                        'namespace' => 'The namespace to enumerate',
                );
@@ -499,11 +495,13 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
        }
 
        public function getPossibleErrors() {
-               return array_merge( parent::getPossibleErrors(), array(
-                       array( 'invalidtitle', 'title' ),
-                       array( 'code' => 'bad_image_title', 'info' => "The title for {$this->getModuleName()} query must be an image" ),
-                       array( 'code' => '_badcontinue', 'info' => 'Invalid continue param. You should pass the original value returned by the previous query' ),
-               ) );
+               return array_merge( parent::getPossibleErrors(),
+                       $this->getTitleOrPageIdErrorMessage(),
+                       array(
+                               array( 'code' => 'bad_image_title', 'info' => "The title for {$this->getModuleName()} query must be an image" ),
+                               array( 'code' => '_badcontinue', 'info' => 'Invalid continue param. You should pass the original value returned by the previous query' ),
+                       )
+               );
        }
 
        public function getExamples() {
index 7f0b827..8fff94d 100644 (file)
@@ -374,7 +374,6 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                        array(
                                array( 'code' => 'invalidcategory', 'info' => 'The category name you entered is not valid' ),
                                array( 'code' => 'badcontinue', 'info' => 'Invalid continue param. You should pass the original value returned by the previous query' ),
-                               array( 'nosuchpageid', 'pageid' ),
                        )
                );
        }
index 7bf97d3..268b1e4 100644 (file)
@@ -263,7 +263,7 @@ class ApiQueryFilearchive extends ApiQueryBase {
                                ' mime              - Adds MIME of the image',
                                ' metadata          - Lists EXIF metadata for the version of the image',
                                ' bitdepth          - Adds the bit depth of the version',
-            ),
+                       ),
                );
        }
 
index feda177..47ab346 100644 (file)
@@ -205,7 +205,7 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
        public function getExamples() {
                return array(
                        'api.php?action=query&list=iwbacklinks&iwbltitle=Test&iwblprefix=wikibooks',
-                       'api.php?action=query&generator=iwbacklinks&giwbltitle=Test&iwblprefix=wikibooks&prop=info'
+                       'api.php?action=query&generator=iwbacklinks&giwbltitle=Test&giwblprefix=wikibooks&prop=info'
                );
        }
 
index 1573494..d8c678a 100644 (file)
@@ -205,7 +205,7 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
        public function getExamples() {
                return array(
                        'api.php?action=query&list=langbacklinks&lbltitle=Test&lbllang=fr',
-                       'api.php?action=query&generator=langbacklinks&glbltitle=Test&lbllang=fr&prop=info'
+                       'api.php?action=query&generator=langbacklinks&glbltitle=Test&glbllang=fr&prop=info'
                );
        }
 
index d505d72..21cc925 100644 (file)
@@ -70,8 +70,8 @@ class ApiQueryLangLinks extends ApiQueryBase {
                        );
                }
 
-           $dir = ( $params['dir'] == 'descending' ? ' DESC' : '' );
-           if ( isset( $params['lang'] ) ) {
+                       $dir = ( $params['dir'] == 'descending' ? ' DESC' : '' );
+                       if ( isset( $params['lang'] ) ) {
                        $this->addWhereFld( 'll_lang', $params['lang'] );
                        if ( isset( $params['title'] ) ) {
                                $this->addWhereFld( 'll_title', $params['title'] );
index 8e2f20d..1654382 100644 (file)
@@ -185,7 +185,7 @@ class ApiQueryContributions extends ApiQueryBase {
                if ( !is_null( $show ) ) {
                        $show = array_flip( $show );
                        if ( ( isset( $show['minor'] ) && isset( $show['!minor'] ) )
-                                       || ( isset( $show['patrolled'] ) && isset( $show['!patrolled'] ) ) ) {
+                                       || ( isset( $show['patrolled'] ) && isset( $show['!patrolled'] ) ) ) {
                                $this->dieUsageMsg( 'show' );
                        }
 
index a0ee227..cbb35ae 100644 (file)
@@ -50,7 +50,7 @@ class ApiQueryUserInfo extends ApiQueryBase {
        }
 
        protected function getCurrentUserInfo() {
-               global $wgRequest, $wgHiddenPrefs;
+               global $wgHiddenPrefs;
                $user = $this->getUser();
                $result = $this->getResult();
                $vals = array();
@@ -136,7 +136,7 @@ class ApiQueryUserInfo extends ApiQueryBase {
                }
 
                if ( isset( $this->prop['acceptlang'] ) ) {
-                       $langs = $wgRequest->getAcceptLang();
+                       $langs = $this->getRequest()->getAcceptLang();
                        $acceptLang = array();
                        foreach ( $langs as $lang => $val ) {
                                $r = array( 'q' => $val );
index 31624bd..38244ff 100644 (file)
@@ -61,10 +61,10 @@ class ApiQueryUsers extends ApiQueryBase {
                return $this->tokenFunctions;
        }
 
-        /**
-         * @param $user User
-         * @return String
-         */
+       /**
+        * @param $user User
+        * @return String
+        */
        public static function getUserrightsToken( $user ) {
                global $wgUser;
                // Since the permissions check for userrights is non-trivial,
index d342997..856e2ac 100644 (file)
@@ -76,7 +76,7 @@ class ApiUndelete extends ApiBase {
                $info['title'] = $titleObj->getPrefixedText();
                $info['revisions'] = intval( $retval[0] );
                $info['fileversions'] = intval( $retval[1] );
-               $info['reason'] = intval( $retval[2] );
+               $info['reason'] = $retval[2];
                $this->getResult()->addValue( null, $this->getModuleName(), $info );
        }
 
index bd0895c..4e43642 100644 (file)
@@ -20,6 +20,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Database
  */
 
index 10905f2..ed73522 100644 (file)
@@ -1,4 +1,24 @@
 <?php
+/**
+ * Debug toolbar related code
+ *
+ * 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
+ */
 
 /**
  * New debugger system that outputs a toolbar on page view
index 73815cf..d705f76 100644 (file)
@@ -21,7 +21,6 @@ class FileBackendGroup {
        protected $backends = array();
 
        protected function __construct() {}
-       protected function __clone() {}
 
        /**
         * @return FileBackendGroup
index 506d850..9f29eb3 100644 (file)
@@ -139,8 +139,6 @@ class ScopedLock {
                $this->type = $type;
        }
 
-       protected function __clone() {}
-
        /**
         * Get a ScopedLock object representing a lock on resource paths.
         * Any locks are released once this object goes out of scope.
index 5e53366..8465d58 100644 (file)
@@ -17,8 +17,6 @@ class LockManagerGroup {
        protected $managers = array();
 
        protected function __construct() {}
-       protected function __clone() {}
-
        /**
         * @return LockManagerGroup
         */
index 0be0740..37560d8 100644 (file)
@@ -7,6 +7,21 @@
  * - formatting log entries based on database fields
  * - user is now part of the action message
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  * @author Niklas Laxström
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
index e463c45..6d8ece1 100644 (file)
@@ -2,6 +2,21 @@
 /**
  * Contains classes for formatting log entries
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  * @author Niklas Laxström
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
index 65c523d..339688d 100644 (file)
@@ -1,12 +1,31 @@
 <?php
-
 /**
- * Class containing static functions for working with
- * logs of patrol events
+ * Specific methods for the patrol log.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @author Rob Church <robchur@gmail.com>
  * @author Niklas Laxström
  */
+
+/**
+ * Class containing static functions for working with
+ * logs of patrol events
+ */
 class PatrolLog {
 
        /**
index dd4a76e..b9a6a69 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Object caching using PHP's APC accelerator.
+ *
+ * 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 Cache
+ */
 
 /**
  * This is a wrapper for APC's shared memory functions
index ade8c0a..d03771e 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Object caching using DBA backend.
+ *
+ * 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 Cache
+ */
 
 /**
  * Cache that uses DBA as a backend.
index 75aad27..fb31d5c 100644 (file)
@@ -1,8 +1,31 @@
 <?php
+/**
+ * Object caching using the Ehcache RESTful web service.
+ *
+ * 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 Cache
+ */
 
 /**
  * Client for the Ehcache RESTful web service - http://ehcache.org/documentation/cache_server.html
  * TODO: Simplify configuration and add to the installer.
+ *
+ * @ingroup Cache
  */
 class EhcacheBagOStuff extends BagOStuff {
        var $servers, $cacheName, $connectTimeout, $timeout, $curlOptions, 
index 2aee6b1..abc6bcf 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Dummy object caching.
+ *
+ * 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 Cache
+ */
 
 /**
  * A BagOStuff object with no objects in it. Used to provide a no-op object to calling code.
index 3677330..26b949f 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Object caching using PHP arrays.
+ *
+ * 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 Cache
+ */
 
 /**
  * This is a test of the interface, mainly. It stores things in an associative
index 2815fee..e816078 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Memcached client for PHP.
+ *
  * +---------------------------------------------------------------------------+
  * | memcached client, PHP                                                     |
  * +---------------------------------------------------------------------------+
@@ -338,9 +340,10 @@ class MWMemcached {
                        $this->_debugprint( sprintf( "MemCache: delete %s (%s)\n", $key, $res ) );
                }
 
-               if ( $res == "DELETED" ) {
+               if ( $res == "DELETED" || $res == "NOT_FOUND" ) {
                        return true;
                }
+
                return false;
        }
 
index d2c7a2d..79f3241 100644 (file)
@@ -1,7 +1,30 @@
 <?php
+/**
+ * Object caching using memcached.
+ *
+ * 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 Cache
+ */
 
 /**
  * A wrapper class for the pure-PHP memcached client, exposing a BagOStuff interface.
+ *
+ * @ingroup Cache
  */
 class MemcachedPhpBagOStuff extends BagOStuff {
 
index 9063093..fd60e72 100644 (file)
@@ -1,9 +1,32 @@
 <?php
+/**
+ * Wrapper for object caching in different caches.
+ *
+ * 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 Cache
+ */
 
 /**
  * A cache class that replicates all writes to multiple child caches. Reads 
  * are implemented by reading from the caches in the order they are given in 
  * the configuration until a cache gives a positive result.
+ *
+ * @ingroup Cache
  */
 class MultiWriteBagOStuff extends BagOStuff {
        var $caches;
index 6225bb2..a59ca05 100644 (file)
@@ -1,10 +1,31 @@
 <?php
 /**
- * Functions to get cache objects
+ * Functions to get cache objects.
+ *
+ * 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 Cache
  */
+
+/**
+ * Functions to get cache objects
+ *
+ * @ingroup Cache
+ */
 class ObjectCache {
        static $instances = array();
 
index 4dfa574..b244b07 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Object caching using a SQL database.
+ *
+ * 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 Cache
+ */
 
 /**
  * Class to store objects in the database
index 7f46494..4fd3cf4 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Object caching using WinCache.
+ *
+ * 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 Cache
+ */
 
 /**
  * Wrapper for WinCache object caching functions; identical interface
index 0ddf124..08f52b7 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Object caching using XCache.
+ *
+ * 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 Cache
+ */
 
 /**
  * Wrapper for XCache object caching functions; identical interface
index 8de1327..4bfa9d3 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Link functions provided by MediaWiki core; experimental
  *
+ * 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 Parser
  */
 
 /**
index 8be9946..912de41 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Parser functions provided by MediaWiki core
  *
+ * 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 Parser
  */
 
 /**
index 7d488c4..296be66 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Tag hooks provided by MediaWiki core
  *
+ * 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 Parser
  */
 
 /**
index 2199004..1638fb0 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Date formatter
  *
+ * 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 Parser
  */
 
 /**
index b5d5cb4..def1aee 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Holder of replacement pairs for wiki links
  *
+ * 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 Parser
  */
 
 /**
index 56197ea..d5868a7 100644 (file)
@@ -1,12 +1,29 @@
 <?php
 /**
- * @defgroup Parser Parser
+ * PHP parser that converts wiki markup to HTML.
+ *
+ * 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 Parser
- * File for Parser and related classes
  */
 
+/**
+ * @defgroup Parser Parser
+ */
 
 /**
  * PHP Parser - Processes wiki markup (which uses a more user-friendly
index a8899cb..bb99039 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Cache for outputs of the PHP parser
  *
+ * 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 Cache Parser
  */
 
 /**
index bf9611f..650a175 100644 (file)
@@ -1,6 +1,21 @@
 <?php
 /**
- * \brief Options for the PHP parser
+ * Options for the PHP parser
+ *
+ * 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 Parser
index 0d597e8..6340787 100644 (file)
@@ -2,6 +2,21 @@
 /**
  * Output of the PHP parser
  *
+ * 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 Parser
  */
@@ -10,7 +25,6 @@
  * @todo document
  * @ingroup Parser
  */
-
 class CacheTime {
        var     $mVersion = Parser::VERSION,  # Compatibility check
                $mCacheTime = '',             # Time when this object was generated, or -1 for uncacheable. Used in ParserCache.
index efad33f..f25340f 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Fake parser that output the difference of two different parsers
  *
+ * 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 Parser
  */
 
 /**
index 244890f..9555bdb 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Modified version of the PHP parser with hooks for wiki links; experimental
  *
+ * 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 Parser
  */
 
 /**
index ae088fd..3d2f2f8 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Interfaces for preprocessors
  *
+ * 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 Parser
  */
 
 /**
index 18bd01c..74a7164 100644 (file)
@@ -2,6 +2,21 @@
 /**
  * Preprocessor using PHP's dom extension
  *
+ * 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 Parser
  */
index 4acb124..587e8ac 100644 (file)
@@ -2,6 +2,21 @@
 /**
  * Preprocessor using PHP arrays
  *
+ * 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 Parser
  */
index a23168a..39c3319 100644 (file)
@@ -3,6 +3,21 @@
  * A preprocessor optimised for HipHop, using HipHop-specific syntax.
  * vim: ft=php
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  * @ingroup Parser
  */
index 7ad80fa..321fcd8 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Holder for stripped items when parsing wiki markup.
+ *
+ * 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 Parser
+ */
 
 /**
  * @todo document, briefly.
index 8bd80b2..ed2d436 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * HTML validation and correction
  *
+ * 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 Parser
  */
 
 /**
@@ -14,6 +30,8 @@
  *
  * This re-uses some of the parser's UNIQ tricks, though some of it is private so it's
  * duplicated. Perhaps we should create an abstract marker hiding class.
+ *
+ * @ingroup Parser
  */
 class MWTidyWrapper {
 
index f884063..f2054b5 100644 (file)
@@ -1,12 +1,31 @@
 <?php
 /**
- * @defgroup Profiler Profiler
+ * Base class and functions for profiling.
+ *
+ * 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 Profiler
  * This file is only included if profiling is enabled
  */
 
+/**
+ * @defgroup Profiler Profiler
+ */
+
 /**
  * Begin profiling of a function
  * @param $functionname String: name of the function we will profile
index 1091495..82197fd 100644 (file)
@@ -1,5 +1,22 @@
 <?php
 /**
+ * Base class for simple profiling.
+ *
+ * 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 Profiler
  */
index 3621a41..3e7d6fa 100644 (file)
@@ -1,5 +1,22 @@
 <?php
 /**
+ * Profiler showing output in page source.
+ *
+ * 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 Profiler
  */
index 7602f06..f14139e 100644 (file)
@@ -1,5 +1,22 @@
 <?php
 /**
+ * Profiler showing execution trace.
+ *
+ * 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 Profiler
  */
index ae607aa..0de3a85 100644 (file)
@@ -1,5 +1,22 @@
 <?php
 /**
+ * Profiler sending messages over UDP.
+ *
+ * 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 Profiler
  */
index 1a0933c..a498860 100644 (file)
@@ -1,9 +1,31 @@
 <?php
 /**
- * Stub profiling functions
+ * Stub profiling functions.
+ *
+ * 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 Profiler
  */
+
+/**
+ * Stub profiler that does nothing
+ *
+ * @ingroup Profiler
+ */
 class ProfilerStub extends Profiler {
        public function isStub() {
                return true;
index 71b2c59..e1b851a 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Base class for resource loading system.
+ *
  * 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
index dd69bb0..4e28e76 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Context for resource loader modules.
+ *
  * 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
index 3d657e1..e8542ac 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader module based on local JavaScript/CSS files.
+ *
  * 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
index e3b719b..61ed520 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Resource loader module for MediaWiki:Filepage.css
+ *
+ * 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
+ */
+
 /**
  * ResourceLoader definition for MediaWiki:Filepage.css
  */
index e1d6fb4..4eb38f6 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader module for populating language specific data.
+ *
  * 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
index 1a232ec..fa76a25 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Abstraction for resource loader modules.
+ *
  * 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
index 28f629a..8e81c8d 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader for site customizations for users without JavaScript enabled.
+ *
  * 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
index 2527a0a..03fe1fe 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader module for site customizations.
+ *
  * 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
index 3384631..74724a6 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Module for resource loader initialization.
+ *
  * 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
index ccfc378..139048c 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader module for user preference customizations.
+ *
  * 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
index b5d96ca..36ca712 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader module for user customizations.
+ *
  * 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
index 9fa9bce..58fa79b 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader module for user customizations.
+ *
  * 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
index 933c55e..4624cbc 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader module for user preference customizations.
+ *
  * 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
index 852cc2c..62d096a 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader module for user tokens.
+ *
  * 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
index 8dddb5b..a69676d 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Abstraction for resource loader modules which pull from wiki pages.
+ *
  * 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
index 9ca98e5..2c55980 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Base implementations for deletable items.
+ *
+ * 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 RevisionDelete
+ */
+
 /**
  * List for revision table items
  *
index e109e65..4f58099 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Interface definition for deletable items.
+ *
+ * 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 RevisionDelete
+ */
 
 /**
  * Abstract base class for a list of deletable items. The list class
index 0e965c8..c02e9c7 100644 (file)
@@ -1,9 +1,6 @@
 <?php
 /**
- * Backend functions for suppressing and unsuppressing all references to a given user,
- * used when blocking with HideUser enabled.  This was spun out of SpecialBlockip.php
- * in 1.18; at some point it needs to be rewritten to either use RevisionDelete abstraction,
- * or at least schema abstraction.
+ * Backend functions for suppressing and unsuppressing all references to a given user.
  *
  * 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
  * @file
  * @ingroup RevisionDelete
  */
+
+/**
+ * Backend functions for suppressing and unsuppressing all references to a given user,
+ * used when blocking with HideUser enabled.  This was spun out of SpecialBlockip.php
+ * in 1.18; at some point it needs to be rewritten to either use RevisionDelete abstraction,
+ * or at least schema abstraction.
+ *
+ * @ingroup RevisionDelete
+ */
 class RevisionDeleteUser {
 
        /**
index 8f85ae3..95d372c 100644 (file)
@@ -2,7 +2,23 @@
 /**
  * Revision/log/file deletion backend
  *
+ * 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 RevisionDelete
  */
 
 /**
index 0348ed1..678c530 100644 (file)
@@ -2,6 +2,21 @@
 /**
  * Basic search engine
  *
+ * 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 Search
  */
index a162d2b..40dd36c 100644 (file)
@@ -4,6 +4,21 @@
  *
  * See deferred.txt
  *
+ * 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 Search
  */
index e84118b..1b7494f 100644 (file)
@@ -54,6 +54,9 @@ class SpecialContributions extends SpecialPage {
                if ( $request->getVal( 'contribs' ) == 'newbie' ) {
                        $target = 'newbies';
                        $this->opts['contribs'] = 'newbie';
+               } elseif ( $par === 'newbies' ) { // b/c for WMF
+                       $target = 'newbies';
+                       $this->opts['contribs'] = 'newbie';
                } else {
                        $this->opts['contribs'] = 'user';
                }
@@ -654,7 +657,7 @@ class ContribsPager extends ReverseChronologicalPager {
                        } else {
                                $condition['rev_user_text'] = $this->target;
                                $index = 'usertext_timestamp';
-                       } 
+                       }
                }
                if ( $this->deletedOnly ) {
                        $condition[] = "rev_deleted != '0'";
index fa48317..b46ef0e 100644 (file)
@@ -3,10 +3,34 @@
  * @defgroup Watchlist Users watchlist handling
  */
 
+/**
+ * Implements Special:EditWatchlist
+ *
+ * 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 SpecialPage
+ * @ingroup Watchlist
+ */
+
 /**
  * Provides the UI through which users can perform editing
  * operations on their watchlist
  *
+ * @ingroup SpecialPage
  * @ingroup Watchlist
  * @author Rob Church <robchur@gmail.com>
  */
index f7e81ee..c217ecc 100644 (file)
@@ -1,7 +1,24 @@
 <?php
 /**
- * @ingroup SpecialPage
+ * Implements Special:JavaScriptTest
+ *
+ * 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 SpecialPage
  */
 
 /**
index c05aaad..a7a87f0 100644 (file)
@@ -190,8 +190,8 @@ class SpecialRecentChanges extends IncludableSpecialPage {
        public function getFeedObject( $feedFormat ){
                $changesFeed = new ChangesFeed( $feedFormat, 'rcfeed' );
                $formatter = $changesFeed->getFeedObject(
-                       wfMsgForContent( 'recentchanges' ),
-                       wfMsgForContent( 'recentchanges-feed-description' ),
+                       $this->msg( 'recentchanges' )->inContentLanguage()->text(),
+                       $this->msg( 'recentchanges-feed-description' )->inContentLanguage()->text(),
                        $this->getTitle()->getFullURL()
                );
                return array( $changesFeed, $formatter );
@@ -565,7 +565,7 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                $extraOpts = $this->getExtraOptions( $opts );
                $extraOptsCount = count( $extraOpts );
                $count = 0;
-               $submit = ' ' . Xml::submitbutton( wfMsg( 'allpagessubmit' ) );
+               $submit = ' ' . Xml::submitbutton( $this->msg( 'allpagessubmit' )->text() );
 
                $out = Xml::openElement( 'table', array( 'class' => 'mw-recentchanges-table' ) );
                foreach( $extraOpts as $name => $optionRow ) {
@@ -596,7 +596,7 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                $panelString = implode( "\n", $panel );
 
                $this->getOutput()->addHTML(
-                       Xml::fieldset( wfMsg( 'recentchanges-legend' ), $panelString, array( 'class' => 'rcoptions' ) )
+                       Xml::fieldset( $this->msg( 'recentchanges-legend' )->text(), $panelString, array( 'class' => 'rcoptions' ) )
                );
 
                $this->setBottomText( $opts );
@@ -636,7 +636,7 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                $this->getOutput()->addWikiText(
                        Html::rawElement( 'p',
                                array( 'lang' => $wgContLang->getCode(), 'dir' => $wgContLang->getDir() ),
-                               "\n" . wfMsgForContentNoTrans( 'recentchangestext' ) . "\n"
+                               "\n" . $this->msg( 'recentchangestext' )->inContentLanguage()->plain() . "\n"
                        ), 
                        /* $lineStart */ false,
                        /* $interface */ false
@@ -663,16 +663,16 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                        array( 'selected' => $opts['namespace'], 'all' => '' ),
                        array( 'name' => 'namespace', 'id' => 'namespace' )
                );
-               $nsLabel = Xml::label( wfMsg( 'namespace' ), 'namespace' );
+               $nsLabel = Xml::label( $this->msg( 'namespace' )->text(), 'namespace' );
                $invert = Xml::checkLabel(
-                       wfMsg( 'invert' ), 'invert', 'nsinvert',
+                       $this->msg( 'invert' )->text(), 'invert', 'nsinvert',
                        $opts['invert'],
-                       array( 'title' => wfMsg( 'tooltip-invert' ) )
+                       array( 'title' => $this->msg( 'tooltip-invert' )->text() )
                );
                $associated = Xml::checkLabel(
-                       wfMsg( 'namespace_association' ), 'associated', 'nsassociated',
+                       $this->msg( 'namespace_association' )->text(), 'associated', 'nsassociated',
                        $opts['associated'],
-                       array( 'title' => wfMsg( 'tooltip-namespace_association' ) )
+                       array( 'title' => $this->msg( 'tooltip-namespace_association' )->text() )
                );
                return array( $nsLabel, "$nsSelect $invert $associated" );
        }
@@ -684,10 +684,10 @@ class SpecialRecentChanges extends IncludableSpecialPage {
         * @return Array
         */
        protected function categoryFilterForm( FormOptions $opts ) {
-               list( $label, $input ) = Xml::inputLabelSep( wfMsg( 'rc_categories' ),
+               list( $label, $input ) = Xml::inputLabelSep( $this->msg( 'rc_categories' )->text(),
                        'categories', 'mw-categories', false, $opts['categories'] );
 
-               $input .= ' ' . Xml::checkLabel( wfMsg( 'rc_categories_any' ),
+               $input .= ' ' . Xml::checkLabel( $this->msg( 'rc_categories_any' )->text(),
                        'categories_any', 'mw-categories_any', $opts['categories_any'] );
 
                return array( $label, $input );
@@ -788,16 +788,18 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                $options = $nondefaults + $defaults;
 
                $note = '';
-               if( !wfEmptyMsg( 'rclegend' ) ) {
-                       $note .= '<div class="mw-rclegend">' .
-                               wfMsgExt( 'rclegend', array( 'parseinline' ) ) . "</div>\n";
+               $msg = $this->msg( 'rclegend' );
+               if( !$msg->isDisabled() ) {
+                       $note .= '<div class="mw-rclegend">' . $msg->parse() . "</div>\n";
                }
+
+               $lang = $this->getLanguage();
+               $user = $this->getUser();
                if( $options['from'] ) {
-                       $note .= wfMsgExt( 'rcnotefrom', array( 'parseinline' ),
-                               $this->getLanguage()->formatNum( $options['limit'] ),
-                               $this->getLanguage()->timeanddate( $options['from'], true ),
-                               $this->getLanguage()->date( $options['from'], true ),
-                               $this->getLanguage()->time( $options['from'], true ) ) . '<br />';
+                       $note .= $this->msg( 'rcnotefrom' )->numParams( $options['limit'] )->params(
+                               $lang->userTimeAndDate( $options['from'], $user ),
+                               $lang->userDate( $options['from'], $user ),
+                               $lang->userTime( $options['from'], $user ) )->parse() . '<br />';
                }
 
                # Sort data for display and make sure it's unique after we've added user data.
@@ -810,21 +812,21 @@ class SpecialRecentChanges extends IncludableSpecialPage {
 
                // limit links
                foreach( $wgRCLinkLimits as $value ) {
-                       $cl[] = $this->makeOptionsLink( $this->getLanguage()->formatNum( $value ),
+                       $cl[] = $this->makeOptionsLink( $lang->formatNum( $value ),
                                array( 'limit' => $value ), $nondefaults, $value == $options['limit'] );
                }
-               $cl = $this->getLanguage()->pipeList( $cl );
+               $cl = $lang->pipeList( $cl );
 
                // day links, reset 'from' to none
                foreach( $wgRCLinkDays as $value ) {
-                       $dl[] = $this->makeOptionsLink( $this->getLanguage()->formatNum( $value ),
+                       $dl[] = $this->makeOptionsLink( $lang->formatNum( $value ),
                                array( 'days' => $value, 'from' => '' ), $nondefaults, $value == $options['days'] );
                }
-               $dl = $this->getLanguage()->pipeList( $dl );
+               $dl = $lang->pipeList( $dl );
 
 
                // show/hide links
-               $showhide = array( wfMsg( 'show' ), wfMsg( 'hide' ) );
+               $showhide = array( $this->msg( 'show' )->text(), $this->msg( 'hide' )->text() );
                $filters = array(
                        'hideminor'     => 'rcshowhideminor',
                        'hidebots'      => 'rcshowhidebots',
@@ -837,7 +839,7 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                        $filters[$key] = $params['msg'];
                }
                // Disable some if needed
-               if ( !$this->getUser()->useRCPatrol() ) {
+               if ( !$user->useRCPatrol() ) {
                        unset( $filters['hidepatrolled'] );
                }
 
@@ -845,19 +847,18 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                foreach ( $filters as $key => $msg ) {
                        $link = $this->makeOptionsLink( $showhide[1 - $options[$key]],
                                array( $key => 1-$options[$key] ), $nondefaults );
-                       $links[] = wfMsgHtml( $msg, $link );
+                       $links[] = $this->msg( $msg )->rawParams( $link )->escaped();
                }
 
                // show from this onward link
                $timestamp = wfTimestampNow();
-               $now = $this->getLanguage()->timeanddate( $timestamp, true );
+               $now = $lang->userTimeAndDate( $timestamp, $user );
                $tl = $this->makeOptionsLink(
                        $now, array( 'from' => $timestamp ), $nondefaults
                );
 
-               $rclinks = wfMsgExt( 'rclinks', array( 'parseinline', 'replaceafter' ),
-                       $cl, $dl, $this->getLanguage()->pipeList( $links ) );
-               $rclistfrom = wfMsgExt( 'rclistfrom', array( 'parseinline', 'replaceafter' ), $tl );
+               $rclinks = $this->msg( 'rclinks' )->rawParams( $cl, $dl, $lang->pipeList( $links ) )->parse();
+               $rclistfrom = $this->msg( 'rclistfrom' )->rawParams( $tl )->parse();
                return "{$note}$rclinks<br />$rclistfrom";
        }
 
index 238e181..9010e10 100644 (file)
@@ -54,8 +54,9 @@ class SpecialRecentchangeslinked extends SpecialRecentChanges {
        public function getFeedObject( $feedFormat ){
                $feed = new ChangesFeed( $feedFormat, false );
                $feedObj = $feed->getFeedObject(
-                       wfMsgForContent( 'recentchangeslinked-title', $this->getTargetTitle()->getPrefixedText() ),
-                       wfMsgForContent( 'recentchangeslinked-feed' ),
+                       $this->msg( 'recentchangeslinked-title', $this->getTargetTitle()->getPrefixedText() )
+                               ->inContentLanguage()->text(),
+                       $this->msg( 'recentchangeslinked-feed' )->inContentLanguage()->text(),
                        $this->getTitle()->getFullUrl()
                );
                return array( $feed, $feedObj );
@@ -224,10 +225,10 @@ class SpecialRecentchangeslinked extends SpecialRecentChanges {
                $opts->consumeValues( array( 'showlinkedto', 'target', 'tagfilter' ) );
                $extraOpts = array();
                $extraOpts['namespace'] = $this->namespaceFilterForm( $opts );
-               $extraOpts['target'] = array( wfMsgHtml( 'recentchangeslinked-page' ),
+               $extraOpts['target'] = array( $this->msg( 'recentchangeslinked-page' )->escaped(),
                        Xml::input( 'target', 40, str_replace('_',' ',$opts['target']) ) .
                        Xml::check( 'showlinkedto', $opts['showlinkedto'], array('id' => 'showlinkedto') ) . ' ' .
-                       Xml::label( wfMsg("recentchangeslinked-to"), 'showlinkedto' ) );
+                       Xml::label( $this->msg( 'recentchangeslinked-to' )->text(), 'showlinkedto' ) );
                $tagFilter = ChangeTags::buildTagFilterSelector( $opts['tagfilter'] );
                if ($tagFilter) {
                        $extraOpts['tagfilter'] = $tagFilter;
index 4ad31a0..fab21cd 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Implements Special:Unblock
+ *
  * 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
index 0c5f11c..eafdde4 100644 (file)
@@ -116,6 +116,7 @@ class SpecialWatchlist extends SpecialPage {
                /* bool  */ 'hideOwn'   => (int)$user->getBoolOption( 'watchlisthideown' ),
                /* ?     */ 'namespace' => 'all',
                /* ?     */ 'invert'    => false,
+               /* bool  */ 'associated' => false,
                );
                $this->customFilters = array();
                wfRunHooks( 'SpecialWatchlistFilters', array( $this, &$this->customFilters ) );
@@ -148,13 +149,20 @@ class SpecialWatchlist extends SpecialPage {
 
                # Get namespace value, if supplied, and prepare a WHERE fragment
                $nameSpace = $request->getIntOrNull( 'namespace' );
-               $invert = $request->getIntOrNull( 'invert' );
+               $invert = $request->getBool( 'invert' );
+               $associated = $request->getBool( 'associated' );
                if ( !is_null( $nameSpace ) ) {
+                       $eq_op = $invert ? '!=' : '=';\r
+                       $bool_op = $invert ? 'AND' : 'OR';
                        $nameSpace = intval( $nameSpace ); // paranioa
-                       if ( $invert ) {
-                               $nameSpaceClause = "rc_namespace != $nameSpace";
+                       if ( !$associated ) {
+                               $nameSpaceClause = "rc_namespace $eq_op $nameSpace";
                        } else {
-                               $nameSpaceClause = "rc_namespace = $nameSpace";
+                               $associatedNS = MWNamespace::getAssociated( $nameSpace );\r
+                               $nameSpaceClause =
+                                       "rc_namespace $eq_op $nameSpace " .\r
+                                       $bool_op .\r
+                                       " rc_namespace $eq_op $associatedNS";
                        }
                } else {
                        $nameSpace = '';
@@ -162,6 +170,7 @@ class SpecialWatchlist extends SpecialPage {
                }
                $values['namespace'] = $nameSpace;
                $values['invert'] = $invert;
+               $values['associated'] = $associated;
 
                if( is_null( $values['days'] ) || !is_numeric( $values['days'] ) ) {
                        $big = 1000; /* The magical big */
@@ -262,7 +271,14 @@ class SpecialWatchlist extends SpecialPage {
                $tables = array( 'recentchanges', 'watchlist' );
                $fields = array( $dbr->tableName( 'recentchanges' ) . '.*' );
                $join_conds = array(
-                       'watchlist' => array('INNER JOIN',"wl_user='{$user->getId()}' AND wl_namespace=rc_namespace AND wl_title=rc_title"),
+                       'watchlist' => array(
+                               'INNER JOIN',
+                               array(
+                                       'wl_user' => $user->getId(),
+                                       'wl_namespace=rc_namespace',
+                                       'wl_title=rc_title'
+                               ),
+                       ),
                );
                $options = array( 'ORDER BY' => 'rc_timestamp DESC' );
                if( $wgShowUpdatedMarker ) {
@@ -338,7 +354,20 @@ class SpecialWatchlist extends SpecialPage {
                                'class' => 'namespaceselector',
                        )
                ) . '&#160;';
-               $form .= Xml::checkLabel( $this->msg( 'invert' )->text(), 'invert', 'nsinvert', $invert ) . '&#160;';
+               $form .= Xml::checkLabel(
+                       $this->msg( 'invert' )->text(),
+                       'invert',
+                       'nsinvert',
+                       $invert,
+                       array( 'title' => $this->msg( 'tooltip-invert' )->text() )
+               ) . '&#160;';
+               $form .= Xml::checkLabel(
+                       $this->msg( 'namespace_association' )->text(),
+                       'associated',
+                       'associated',
+                       $associated,
+                       array( 'title' => $this->msg( 'tooltip-namespace_association' )->text() )
+               ) . '&#160;';
                $form .= Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) . '</p>';
                $form .= Html::hidden( 'days', $values['days'] );
                foreach ( $filters as $key => $msg ) {
index 665121f..0bb1bc5 100644 (file)
@@ -1592,6 +1592,7 @@ $1",
 'yourrealname' => 'الاسم الحقيقي:',
 'yourlanguage' => 'اللغة:',
 'yourvariant' => 'لهجة المحتوى:',
+'prefs-help-variant' => 'عرض لهجتك المفضلة أو إملاؤها في صفحات المحتوى لهذا الويكي.',
 'yournick' => 'التوقيع:',
 'prefs-help-signature' => 'يجب أن توقع تعليقات صفحات النقاش باستخدام "<nowiki>~~~~</nowiki>" الذي سيحول إلى توقيعك مع طابع زمني.',
 'badsig' => 'توقيع خام غير صحيح؛ تحقق من وسوم HTML.',
@@ -1766,6 +1767,7 @@ $1",
 'action-suppressionlog' => 'رؤية هذا السجل الخاص',
 'action-block' => 'منع هذا المستخدم من التعديل',
 'action-protect' => 'تغيير مستويات الحماية لهذه الصفحة',
+'action-rollback' => 'استرجاع تعديلات آخر مستخدم عدل صفحة معينة سريعا',
 'action-import' => 'استيراد هذه الصفحة من ويكي آخر',
 'action-importupload' => 'استيراد هذه الصفحة من ملف مرفوع',
 'action-patrol' => 'التعليم على تعديلات الآخرين كمراجعة',
@@ -1974,11 +1976,32 @@ $1',
 'upload-http-error' => 'صودف خطأ HTTP: $1',
 
 # File backend
+'backend-fail-stream' => 'لا يمكن عرض الملف $1.',
+'backend-fail-backup' => 'لا يمكن صنع نسخة أحتياطية للملف $1.',
 'backend-fail-notexists' => 'الملف $1 غير موجود.',
+'backend-fail-notsame' => 'يوجد بالفعل ملف غير متطابق في $1.',
+'backend-fail-invalidpath' => '$1 ليس مسارا صالحا للتخزين.',
+'backend-fail-delete' => 'لم يمكن حذف الملف $1.',
+'backend-fail-alreadyexists' => 'الملف $1 موجود بالفعل.',
+'backend-fail-store' => 'لا يمكن تخزين الملف $1 في $2 .',
 'backend-fail-copy' => 'لا يمكن نسخ الملف  $1  إلى  $2 .',
+'backend-fail-move' => 'تعذر نقل ملف $1 إلى $2 .',
 'backend-fail-opentemp' => 'تعذّر فتح ملف مؤقت.',
 'backend-fail-writetemp' => 'تعذّرت كتابة ملف مؤقت.',
 'backend-fail-closetemp' => 'تعذّر إغلاق ملف مؤقت.',
+'backend-fail-read' => 'لا يمكن قراءة الملف $1.',
+'backend-fail-create' => 'تعذر إنشاء الملف $1.',
+
+# Lock manager
+'lockmanager-notlocked' => 'تعذر فتح "$1"، الملف غير مغلق.',
+'lockmanager-fail-closelock' => 'تعذر إغلاق ملف التأمين "$1".',
+'lockmanager-fail-deletelock' => 'تعذر حذف ملف التأمين "$1".',
+'lockmanager-fail-acquirelock' => 'لا يمكن الحصول على تأمين لـ "$1".',
+'lockmanager-fail-openlock' => 'تعذر إغلاق ملف التأمين "$1".',
+'lockmanager-fail-releaselock' => 'تعذر تحرير التأمين لـ "$1"..',
+'lockmanager-fail-db-bucket' => 'تعذر الإتصال بعدد كافي من قواعد تأمين البيانات في الحزمة $1.',
+'lockmanager-fail-db-release' => 'تعذر تحرير الأقفال في  قاعدة البيانات $1.',
+'lockmanager-fail-svr-release' => 'تعذر تحرير الأقفال على الخادم $1.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'صودف خطأ أثناء فتح الملف لفحوصات ZIP.',
@@ -1996,6 +2019,7 @@ $1',
 'uploadstash-badtoken' => 'لم ينجح أداء ذلك العمل، ربما لأن وثائق تفويض التحرير الخاصة بك منتهية الصلاحية. حاول مرة أخرى.',
 'uploadstash-errclear' => 'لم تنجح عملية مسح الملفات.',
 'uploadstash-refresh' => 'تحديث قائمة الملفات',
+'invalid-chunk-offset' => 'قطعة أوفست غير صالحة',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'رفض الوصول',
@@ -2088,6 +2112,10 @@ $1',
 من فضلك انظر [$2 صفحة وصف الملف] لمزيد من المعلومات.',
 'sharedupload-desc-here' => 'هذا الملف من $1 ويمكن استخدامه بواسطة المشاريع الأخرى.
 الوصف على [$2 صفحة وصف الملف] هناك معروض بالأسفل.',
+'sharedupload-desc-edit' => 'هذا ملف من $1 وقد يكون مستخدما في مشاريع أخرى.
+يمكن لك تريد أن تعدل وصف الملف في [$2  صفحته] هناك.',
+'sharedupload-desc-create' => 'هذا ملف من $1 وقد يكون مستخدما في مشاريع أخرى.
+يمكن لك تريد أن تعدل وصف الملف في [$2  صفحته] هناك.',
 'filepage-nofile' => 'لا ملف موجود بهذا الاسم.',
 'filepage-nofile-link' => 'لا يوجد ملف بهذا الاسم، لكن يمكنك [$1 رفعه].',
 'uploadnewversion-linktext' => 'ارفع نسخة جديدة من هذا الملف',
@@ -2223,6 +2251,8 @@ $1',
 'wantedpages' => 'صفحات مطلوبة',
 'wantedpages-badtitle' => 'عنوان غير صحيح في مجموعة النتائج: $1',
 'wantedfiles' => 'ملفات مطلوبة',
+'wantedfiletext-cat' => 'الملفات التالية مستعملة ولكن لا وجود لها. يمكن سرد ملفات من مستودعات خارجية بالرغم من وجودها. سيتم <del>محو</del> أي أيجابيات كاذبة. بالإضافة، أي صفحات تتضمن الملفات الغير موجودة تم سردها في [[:$1]].',
+'wantedfiletext-nocat' => 'الملفات التالية مستعملة ولكن  غير متوفرة. يمكن سرد ملفات من مستودعات خارجية بالرغم من وجودها. سيتم <del>محو</del> أي أيجابيات كاذبة.',
 'wantedtemplates' => 'قوالب مطلوبة',
 'mostlinked' => 'أكثر الصفحات وصلا',
 'mostlinkedcategories' => 'أكثر التصنيفات ارتباطا',
@@ -2231,6 +2261,7 @@ $1',
 'mostimages' => 'أكثر الملفات ارتباطا',
 'mostrevisions' => 'أكثر الصفحات تعديلا',
 'prefixindex' => 'كل الصفحات بالبادئة',
+'prefixindex-namespace' => 'كل الصفحات مع بادئة ($1 مساحة الأسم)',
 'shortpages' => 'صفحات قصيرة',
 'longpages' => 'صفحات طويلة',
 'deadendpages' => 'صفحات نهاية مسدودة',
@@ -2540,6 +2571,8 @@ $UNWATCHURL
 'protect-title' => 'ضبط مستوى الحماية ل"$1"',
 'protect-title-notallowed' => 'عرض مستوى الحماية ل "$1"',
 'prot_1movedto2' => 'نُقلت [[$1]] إلى [[$2]]',
+'protect-badnamespace-title' => 'مساحة إسم غير محمية',
+'protect-badnamespace-text' => 'لا يمكن حماية الصفحات الموجودة في مساحة الإسم',
 'protect-legend' => 'تأكيد الحماية',
 'protectcomment' => 'السبب:',
 'protectexpiry' => 'تنتهي في:',
@@ -2641,6 +2674,7 @@ $UNWATCHURL
 'undelete-cleanup-error' => 'خطأ حذف ملف أرشيف غير مستخدم "$1".',
 'undelete-missing-filearchive' => 'غير قادر على استرجاع ملف الأرشيف رقم $1 لأنه ليس في قاعدة البيانات.
 ربما يكون قد تم استرجاعه.',
+'undelete-error' => 'وقع خطأ عند إلغاء حذف الصفحة',
 'undelete-error-short' => 'خطأ استرجاع ملف: $1',
 'undelete-error-long' => 'حدثت أخطاء أثناء استرجاع الملف:
 
@@ -2961,6 +2995,7 @@ $1',
 'exportcuronly' => 'ضمن المراجعة الحالية فقط، وليس التاريخ الكامل',
 'exportnohistory' => "----
 ملاحظة:''' تصدير التاريخ الكامل للصفحات من خلال هذه الاستمارة تم تعطيله لأسباب تتعلق بالأداء'''",
+'exportlistauthors' => 'أضف قائمة كاملة بالمساهمين لكل صفحة',
 'export-submit' => 'صدر',
 'export-addcattext' => 'أضف صفحات من تصنيف:',
 'export-addcat' => 'أضف',
@@ -2993,6 +3028,8 @@ $1',
 'thumbnail_error' => 'خطأ في إنشاء صورة مصغرة: $1',
 'djvu_page_error' => 'صفحة DjVu خارج النطاق',
 'djvu_no_xml' => 'لا يمكن جلب XML لملف DjVu',
+'thumbnail-temp-create' => 'تعذر إنشاء ملف الصورة المصغرة المؤقت',
+'thumbnail-dest-create' => 'تعذر حفظ الصورة المصغرة للوجهة',
 'thumbnail_invalid_params' => 'محددات التصغير غير صحيحة',
 'thumbnail_dest_directory' => 'غير قادر على إنشاء المجلد الهدف',
 'thumbnail_image-type' => 'نوع الصورة غير مدعوم',
index 87825da..7d9ea1c 100644 (file)
@@ -785,7 +785,8 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 'userinvalidcssjstitle' => "'''সতৰ্কবাণী:'''  \"\$1\" নামৰ কোনো আৱৰণ নাই। Custom .css আৰু .js পৃষ্ঠাই সৰুফলাৰ শিৰোনামা ব্যৱহাৰ কৰে, যেনে-  {{ns:user}}:Foo/Vector.css ৰ সলনি {{ns:user}}:Foo/vector.css।",
 'updated' => "(আপডেট কৰা হ'ল)",
 'note' => "'''টোকা:'''",
-'previewnote' => "'''এয়া প্ৰাকদৰ্শনহে মাথোন। পৰিৱৰ্তনসমূহ এতিয়ও সংৰক্ষণ কৰা হোৱা নাই!'''",
+'previewnote' => "'''মনত ৰাখিব এয়া মাথোন প্ৰাক্‌দৰ্শনহে।'''
+আপোনাৰ সালসলনিসমূহ এতিয়াও সংৰক্ষণ কৰা হোৱা নাই!",
 'previewconflict' => 'এই প্ৰাকদৰ্শনে ওপৰৰ সম্পাদনা ক্ষেত্ৰৰ লেখা সাঁচি ৰাখিলে যেনেকুৱা দেখা যাব তেনেকুৱা দেখাইছে ।',
 'session_fail_preview' => "'''দুঃখিত! চেচন ডাটা হেৰাই যোৱাৰ কাৰণে আপোনাৰ সম্পাদনা কৃতকাৰ্য্য নহ'ল ।'''
 অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক ।
@@ -1031,8 +1032,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'নিবাৰণ ল’গ',
-'suppressionlogtext' => 'প্ৰশাসকৰ পৰা গোপনে ৰখা অৱলুপ্তি আৰু প্ৰতিবন্ধকৰ তালিকা তলত দিয়া হৈছে ।
-বৰ্তমান কাৰ্য্যৰত নিষেধ আৰু প্ৰতিবন্ধকসমূহৰ বাবে [[Special:BlockList|IP প্ৰতিবন্ধক তালিকা]] ।',
+'suppressionlogtext' => 'পà§\8dৰশাসà¦\95ৰ à¦ªà§°à¦¾ à¦\97à§\8bপনà§\87 à§°à¦\96া à¦¸à¦®à¦² à¦¸à¦®à§\8dপৰà§\8dà¦\95à§\80য় à¦\85ৱলà§\81পà§\8dতি à¦\86ৰà§\81 à¦ªà§\8dৰতিবনà§\8dধà¦\95ৰ à¦¤à¦¾à¦²à¦¿à¦\95া à¦¤à¦²à¦¤ à¦¦à¦¿à¦¯à¦¼à¦¾ à¦¹à§\88à¦\9bà§\87 à¥¤
+বৰà§\8dতমান à¦\95াৰà§\8dযà§\8dযৰত à¦¨à¦¿à¦·à§\87ধ à¦\86ৰà§\81 à¦ªà§\8dৰতিবনà§\8dধà¦\95সমà§\82হৰ à¦¬à¦¾à¦¬à§\87 [[Special:BlockList|IP à¦ªà§\8dৰতিবনà§\8dধà¦\95 à¦¤à¦¾à¦²à¦¿à¦\95া]] à¦\9aাà¦\93à¦\95।',
 
 # History merging
 'mergehistory' => 'পৃষ্ঠাৰ ইতিহাসবোৰ মিলাই দিয়ক',
@@ -2429,8 +2430,8 @@ $1',
 'ipb-confirm' => 'প্ৰতিবন্ধক নিশ্চিত কৰক',
 'badipaddress' => 'অগ্ৰহণযোগ্য আই-পি ঠিকনা',
 'blockipsuccesssub' => "বাৰণ কৰা সফল হ'ল",
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]]ক বাধা দিয়া হৈছে ।<br />
-প্ৰতিবন্ধকৰ পুনৰ্বিবেচনাৰ বাবে [[Special:BlockList|IP প্ৰতিবন্ধক তালিকা]]',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]]ক বাধা দিয়া হৈছে।<br />
+প্ৰতিবন্ধকৰ পুনৰ্বিবেচনাৰ বাবে [[Special:BlockList|প্ৰতিবন্ধক তালিকা]] চাওক।',
 'ipb-blockingself' => 'আপুনি নিজকে বাধাপ্ৰদান কৰিব বিচাৰিছে ! আপুনি নিশ্চিতনে আপুনি এনে কৰিব ?',
 'ipb-confirmhideuser' => 'আপুনি "সদস্য গোপন কৰক" বৈশিষ্ট সক্ৰিয় থকা এজন সদস্যক বাৰণ কৰিবলৈ ওলাইছে । এই কাৰ্যই সকলো তালিকা আৰু ল\'গ ভৰ্তিৰ পৰা তেওঁৰ নাম আঁতৰাই পেলাব । এই কাম কৰিব বুলি আপুনি নিশ্চিতনে ?',
 'ipb-edit-dropdown' => 'প্ৰতিবন্ধকৰ কাৰণসমূহ সম্পাদনা কৰক',
@@ -2483,9 +2484,9 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 তথ্যসূত্ৰ হিছাপে নিবাৰণ ল’গ তলত দিয়া হ’ল ।',
 'blocklogentry' => '"[[$1]]" ক $2 $3 লৈ সাল-সলনি কৰাৰ পৰা বাৰণ কৰা হৈছে।',
 'reblock-logentry' => '[[$1]]ৰ প্ৰতিবন্ধক ছেটিং ম্যাদ উকলা সময় $2 $3ৰ সৈতে সলনি কৰা হ’ল ।',
-'blocklogtext' => 'এই ল’গখন অৱৰোধ কৰা আৰু অৱৰোধ আঁতৰ কৰা সদস্য সম্পৰ্কীয় 
-স্বয়ংক্ৰিয়ভাৱে প্ৰতিবন্ধক পোৱা আই.পি. ঠিকনাবোৰ ইয়াত তালিকাভুক্ত কৰা হোৱা নাই 
-সামà§\8dপà§\8dৰতিà¦\95 à¦\95াৰà§\8dযৰত à¦¨à¦¿à¦·à§\87ধ à¦\86ৰà§\81 à¦ªà§\8dৰতিবনà§\8dধà¦\95ৰ à¦¬à¦¾à¦¬à§\87 [[Special:BlockList|à¦\86à¦\87.পি. à¦ªà§\8dৰতিবনà§\8dধà¦\95 à¦¤à¦¾à¦²à¦¿à¦\95া]] à¦\9aাà¦\93à¦\95 ।',
+'blocklogtext' => 'এই ল’গখন অৱৰোধ কৰা আৰু অৱৰোধ আঁতৰ কৰা সদস্য সম্পৰ্কীয়।
+স্বয়ংক্ৰিয়ভাৱে প্ৰতিবন্ধক পোৱা আই.পি. ঠিকনাবোৰ ইয়াত তালিকাভুক্ত কৰা হোৱা নাই।
+সামà§\8dপà§\8dৰতিà¦\95 à¦\95াৰà§\8dযৰত à¦¨à¦¿à¦·à§\87ধ à¦\86ৰà§\81 à¦ªà§\8dৰতিবনà§\8dধà¦\95ৰ à¦¬à¦¾à¦¬à§\87 [[Special:BlockList|পà§\8dৰতিবনà§\8dধà¦\95 à¦¤à¦¾à¦²à¦¿à¦\95া]] à¦\9aাà¦\93à¦\95।',
 'unblocklogentry' => '$1 বাৰণ উঠাই লোৱা হ’ল',
 'block-log-flags-anononly' => 'কেৱল বেনামী সদস্য',
 'block-log-flags-nocreate' => 'একাউন্ট সৃষ্টি নিষ্ক্ৰিয় কৰা হৈছে',
index 71aa803..ffb34ca 100644 (file)
@@ -859,6 +859,10 @@ Estos parámetros s'omitieron.",
 'parser-template-loop-warning' => 'Hai una rueda de plantíes: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Se pasó la llende de fondura recursiva de les plantíes ($1)',
 'language-converter-depth-warning' => 'Se pasó la llende de fondura del convertidor de llingües ($1)',
+'node-count-exceeded-category' => 'Páxines onde se pasó la cuenta de nodios',
+'node-count-exceeded-warning' => 'La páxina pasó la cuenta de nodios',
+'expansion-depth-exceeded-category' => "Páxines onde se pasó la fondura d'espansión",
+'expansion-depth-exceeded-warning' => "La páxina pasó la fondura d'espansión",
 
 # "Undo" feature
 'undo-success' => "La edición se pue esfacer.
index 8d7ad25..b835a7f 100644 (file)
@@ -681,6 +681,7 @@ Bloklama qeydlərinin sonuncusu aşağıda göstərilmişdir:',
 'previewconflict' => 'Bu sınaq göstərişidir və yaddaşda saxlayacağınız təqdirdə mətnin redaktə səhifəsinin yuxarı hissəsində nəticənin necə olacağını göstərir.',
 'session_fail_preview' => "'''Üzr istəyirik! Sizin redaktəniz saxlanılmadı. Serverdə identifikasiyanızla bağlı problemlər yaranmışdır. Lütfən bir daha təkrar edin. Problem həll olunmazsa hesabınızdan çıxın və yenidən daxil olun.'''",
 'editing' => 'Redaktə $1',
+'creating' => 'Qurulur $1',
 'editingsection' => 'Redaktə $1 (bölmə)',
 'editingcomment' => 'Redaktə et $1 (yeni bölmə)',
 'editconflict' => 'Eyni vaxtda redaktə: $1',
@@ -1606,6 +1607,7 @@ Qeyd növü, istifadəçi adı və ya təsir edilmiş səhifəni seçməklə dah
 'allpagesnext' => 'Sonrakı',
 'allpagessubmit' => 'Seç',
 'allpagesprefix' => 'Bu prefiksli səhifələri göstər:',
+'allpages-hide-redirects' => 'Yönləndirmələri gizlət',
 
 # Special:Categories
 'categories' => 'Kateqoriyalar',
@@ -2888,6 +2890,7 @@ Variants for Chinese language
 'version-poweredby-others' => 'digərləri',
 'version-software-product' => 'Məhsul',
 'version-software-version' => 'Versiya',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Fayl yolu',
@@ -2995,4 +2998,15 @@ Bu saytda texniki problemlər var.',
 'api-error-unknownerror' => 'Naməlum xəta: "$1".',
 'api-error-uploaddisabled' => 'Bu vikidə fayl yükləmə mümkün deyil.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|saniyə|saniyə}}',
+'duration-minutes' => '$1 {{PLURAL:$1|dəqiqə|dəqiqə}}',
+'duration-hours' => '$1 {{PLURAL:$1|saat|saat}}',
+'duration-days' => '$1 {{PLURAL:$1|gün|gün}}',
+'duration-weeks' => '$1 {{PLURAL:$1|həftə|həftə}}',
+'duration-years' => '$1 {{PLURAL:$1|il|il}}',
+'duration-decades' => '$1 {{PLURAL:$1|onillik|onillik}}',
+'duration-centuries' => '$1 {{PLURAL:$1|əsr|əsr}}',
+'duration-millennia' => '$1 {{PLURAL:$1|minillik|minillik}}',
+
 );
index 51a904b..3e03952 100644 (file)
@@ -13,6 +13,7 @@
  * @author Kaganer
  * @author Reedy
  * @author Roustammr
+ * @author Sagan
  * @author Timming
  * @author Рустам Нурыев
  * @author ҒатаУлла
@@ -304,6 +305,7 @@ $1',
 'versionrequiredtext' => 'Был бит менән эшләү өсөн MediaWiki-ның $1 версияһы кәрәк. [[Special:Version|Ҡулланылған версия тураһында мәғлүмәт битен]] ҡара.',
 
 'ok' => 'Тамам',
+'pagetitle' => '{{SITENAME}} проектынан',
 'retrievedfrom' => 'Сығанағы — «$1»',
 'youhavenewmessages' => 'Яңы $1 бар ($2).',
 'newmessageslink' => 'яңы хәбәр',
@@ -2319,7 +2321,7 @@ $1',
 'badipaddress' => 'IP адрес дөрөҫ түгел',
 'blockipsuccesssub' => 'Бикләү уңышлы башҡарылды',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] бикләнде.<br />
-[[Special:BlockList|Бикләнгән IP адрестарҙы]] ҡарарға.',
+Биктәрҙе күреү өсөн [[Special:BlockList|бикләнгән IP адрестарҙы]] ҡарағыҙ.',
 'ipb-blockingself' => 'Һеҙ үҙегеҙҙе бикләргә теләйһегеҙ! Быны эшләүҙе раҫлайһығыҙмы?',
 'ipb-confirmhideuser' => '"Ҡулланыусыны йәшер" ғәмәлдә саҡта ҡулланыусыны блокларға теләйһегеҙ. Уның исеме исемлектәрҙә һәм журналдарҙа күренмәйәсәк. Быны эшләргә теләүегеҙҙе раҫлайһығыҙмы?',
 'ipb-edit-dropdown' => 'Бикләү сәбәптәрен мөхәррирләргә',
@@ -2372,8 +2374,8 @@ $1 ҡатнашыусыһын бикләү сәбәбе: "$2"',
 Түбәндә белешмә өсөн йәшереү яҙмалары журналы килтерелгән:',
 'blocklogentry' => '[[$1]] бикләгән, тамамланыу ваҡыты: $2 $3',
 'reblock-logentry' => '[[$1]] ҡатнашыусыһының бикләү көйләүҙәрен үҙгәрткән, тамамланыу ваҡыты — $2 $3',
-'blocklogtext' => 'Ҡатнашыусыларҙы бикләү һәм бикте алыу яҙмалары журналы.
-Авто бикләнеүсе IP адрестар бында күрһәтелмәй.
+'blocklogtext' => 'Ҡатнашыусыларҙы бикләү һәм бикте алыу журналы.
+Автоматик бикләнгән IP адрестар бында күрһәтелмәй.
 [[Special:BlockList|Ғәмәлдәге тыйыуҙырҙы һәм бикләүҙәрҙе]] ҡарай алаһығыҙ.',
 'unblocklogentry' => '$1 ҡулланыусыһының блокланыу ваҡыты тамамланды',
 'block-log-flags-anononly' => 'танылмаған ҡатнашыусылар ғына',
index 11c12de..ca894f9 100644 (file)
@@ -927,6 +927,7 @@ $2
 'note' => "'''Заўвага: '''",
 'previewnote' => "'''Гэта толькі папярэдні прагляд.'''
 Вашыя зьмены яшчэ не былі захаваныя!",
+'continue-editing' => 'Працягнуць рэдагаваньне',
 'previewconflict' => 'Гэта папярэдні прагляд тэксту зь верхняга вакна рэдагаваньня, так ён будзе выглядаць, калі Вы вырашыце яго захаваць.',
 'session_fail_preview' => "'''Не атрымалася захаваць Вашую праўку праз тое, што былі страчаныя зьвесткі пра сэсію.
 Калі ласка, паспрабуйце яшчэ раз. Калі памылка ня зьнікне, паспрабуйце [[Special:UserLogout|выйсьці з сыстэмы]] і ўвайсьці ізноў.'''",
@@ -1022,6 +1023,10 @@ $2
 'parser-template-loop-warning' => 'Выяўлены цыкль у шаблёнах: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Перавышана мяжа глыбіні рэкурсіі шаблёнаў ($1)',
 'language-converter-depth-warning' => 'Перавышанае абмежаваньне глыбіні канвэртару варыянтаў мовы ($1)',
+'node-count-exceeded-category' => 'Старонкі зь перавышанай колькасьцю вузлоў',
+'node-count-exceeded-warning' => 'Старонка перавысіла дазволеную колькасьць вузлоў',
+'expansion-depth-exceeded-category' => 'Старонкі зь перавышанай глыбінёй уключэньня',
+'expansion-depth-exceeded-warning' => 'Старонка перавысіла дазволеную глыбіню ўключэньняў',
 
 # "Undo" feature
 'undo-success' => 'Рэдагаваньне можа быць адмененае. Калі ласка, параўнайце адрозьненьні паміж вэрсіямі, каб упэўніцца, што гэта адпаведныя зьмены, а потым запішыце зьмены для сканчэньня рэдагаваньня.',
@@ -2546,8 +2551,8 @@ $1',
 'ipb-confirm' => 'Пацьвердзіць блякаваньне',
 'badipaddress' => 'Некарэктны IP-адрас',
 'blockipsuccesssub' => 'Блякаваньне пасьпяховае',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] {{GENDER:$1|быў заблякаваны|была заблякаваная}}.
-<br />Глядзіце [[Special:BlockList|сьпіс заблякаваных IP-адрасоў]] дзеля перагляду блякаваньняў.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] {{GENDER:$1|быў заблякаваны|была заблякаваная}}.<br />
+Глядзіце [[Special:BlockList|сьпіс блякаваньняў]] дзеля іх перагляду.',
 'ipb-blockingself' => 'Вы зьбіраецеся заблякаваць самога сябе! Вы ўпэўнены, што жадаеце гэта зрабіць?',
 'ipb-confirmhideuser' => 'Вы зьбіраецеся заблякаваць удзельніка са статусам «схаваны». Гэтае дзеяньне прывядзе да таго, што яго імя зьявіцца ва ўсіх сьпісах і журналах уваходу. Вы ўпэўнены, што жадаеце гэта зрабіць?',
 'ipb-edit-dropdown' => 'Рэдагаваць прычыны блякіровак',
@@ -2597,7 +2602,9 @@ $1',
 'blocklog-showsuppresslog' => 'Гэты ўдзельнік ужо заблякаваны і схаваны. Журнал хаваньняў пададзены ніжэй:',
 'blocklogentry' => 'заблякаваны [[$1]] на тэрмін: $2 $3',
 'reblock-logentry' => 'зьмененыя парамэтры блякаваньня для [[$1]] на тэрмін: з $2 да $3',
-'blocklogtext' => 'Гэта журнал уліку блякаваньняў і разблякаваньняў удзельнікаў. Аўтаматычна заблякаваныя IP-адрасы не пазначаныя. Глядзіце [[Special:BlockList|сьпіс заблякаваных IP-адрасоў]], каб пабачыць дзейныя ў гэты момант блякаваньні.',
+'blocklogtext' => 'Гэта журнал уліку блякаваньняў і разблякаваньняў удзельнікаў.
+Аўтаматычна заблякаваныя IP-адрасы не пазначаныя.
+Глядзіце [[Special:BlockList|сьпіс блякаваньняў]], каб пабачыць дзейныя ў гэты момант блякаваньні.',
 'unblocklogentry' => 'разблякаваны $1',
 'block-log-flags-anononly' => 'толькі ананімныя ўдзельнікі',
 'block-log-flags-nocreate' => 'стварэньне рахункаў забароненае',
@@ -3676,6 +3683,9 @@ MediaWiki распаўсюджваецца з надзеяй, што будзе
 'version-software' => 'Усталяванае праграмнае забесьпячэньне',
 'version-software-product' => 'Прадукт',
 'version-software-version' => 'Вэрсія',
+'version-entrypoints' => 'Уваходныя адрасы',
+'version-entrypoints-header-entrypoint' => 'Пункт уваходу',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Шлях да файла',
index d9fb268..7915c90 100644 (file)
@@ -908,6 +908,7 @@ $2
 'updated' => '(обновена)',
 'note' => "'''Забележка:'''",
 'previewnote' => "'''Това е само предварителен преглед. Промените все още не са съхранени!'''",
+'continue-editing' => 'Продължаване на редактирането',
 'previewconflict' => 'Този предварителен преглед отразява текста в горната текстова кутия така, както би се показал, ако съхраните.',
 'session_fail_preview' => "'''За съжаление редакцията ви не успя да бъде обработена поради загуба на данните за текущата сесия. Опитайте отново. Ако все още не работи, опитайте да [[Special:UserLogout|излезете]] и да влезете отново.'''",
 'session_fail_preview_html' => "'''За съжаление редакцията ви не беше записана поради изтичането на сесията ви.'''
@@ -918,6 +919,7 @@ $2
 'token_suffix_mismatch' => "'''Редакцията ви беше отхвърлена, защото браузърът ви е развалил пунктуационните знаци в редакционната отметка. Евентуалното съхранение би унищожило съдържанието на страницата. Понякога това се случва при използването на грешно работещи анонимни междинни сървъри.'''",
 'edit_form_incomplete' => "'''Някои части от формуляра за редактиране не достигнаха до сървъра; проверете дали редакциите ви са непокътнати и опитайте отново.'''",
 'editing' => 'Редактиране на „$1“',
+'creating' => 'Създаване на $1',
 'editingsection' => 'Редактиране на „$1“ (раздел)',
 'editingcomment' => 'Редактиране на „$1“ (нов раздел)',
 'editconflict' => 'Различна редакция: $1',
@@ -2014,6 +2016,7 @@ $1',
 'allpagesprefix' => 'Показване на страници, започващи със:',
 'allpagesbadtitle' => 'Зададеното име е невалидно. Възможно е да съдържа междуезикова или междупроектна представка или пък знаци, които не могат да се използват в заглавия.',
 'allpages-bad-ns' => 'В {{SITENAME}} не съществува именно пространство „$1“.',
+'allpages-hide-redirects' => 'Скриване на пренасочванията',
 
 # Special:Categories
 'categories' => 'Категории',
@@ -2337,6 +2340,7 @@ $UNWATCHURL
 'undelete-bad-store-key' => 'Не е възможно възстановяването на файловата версия с времеви отпечатък $1: файлът е липсвал преди изтриването.',
 'undelete-cleanup-error' => 'Грешка при изтриване на неизползвания архивен файл „$1“.',
 'undelete-missing-filearchive' => 'Не е възможно възстановяването на файла с ID $1, защото не присъства в базата от данни. Вероятно вече е възстановен.',
+'undelete-error' => 'Грешка при възстановяване на страницата',
 'undelete-error-short' => 'Грешка при възстановяването на изтрития файл: $1',
 'undelete-error-long' => 'Възникнаха грешки при възстановяването на изтрития файл:
 
@@ -3085,9 +3089,11 @@ $1',
 'exif-serialnumber' => 'Сериен номер на фотоапарата',
 'exif-cameraownername' => 'Собственик на фотоапарата',
 'exif-label' => 'Етикет',
+'exif-datetimemetadata' => 'Дата на последна модификация на метаданните',
 'exif-nickname' => 'Неформално име на изображението',
 'exif-rating' => 'Рейтинг (от 5)',
 'exif-rightscertificate' => 'Сертификат за управление на правата',
+'exif-copyrighted' => 'Авторскоправен статут',
 'exif-copyrightowner' => 'Носител на авторското право',
 'exif-usageterms' => 'Условия за използване',
 'exif-originaldocumentid' => 'Уникален номер на оригиналния документ',
@@ -3591,9 +3597,15 @@ MediaWiki се разпространява с надеждата, че ще б
 'logentry-delete-restore' => '$1 възстанови страницата $3',
 'logentry-suppress-revision' => '$1 тайно промени видимостта на {{PLURAL:$5|една версия|$5 версии}} на страницата $3: $4',
 'logentry-suppress-revision-legacy' => '$1 тайно промени видимостта на версиите на страница $3',
+'revdelete-content-hid' => 'скрито съдържание',
+'revdelete-summary-hid' => 'скрито резюме на редакцията',
+'revdelete-uname-hid' => 'скрито потребителско име',
 'revdelete-restricted' => 'добавени ограничения за администраторите',
 'revdelete-unrestricted' => 'премахнати ограничения за администраторите',
+'logentry-move-move' => '$1 премести страницата $3 към заглавие $4',
+'logentry-move-move-noredirect' => '$1 премести страницата $3 към заглавие $4 без да оставя пренасочване',
 'logentry-move-move_redir' => '$1 премести страницата $3 като $4 (върху пренасочване)',
+'logentry-move-move_redir-noredirect' => '$1 премести върху пренасочване страницата $3 към заглавие $4 (без пренасочване)',
 'logentry-patrol-patrol' => '$1 отбеляза като патрулирана версия $4 на страницата „$3“',
 'logentry-patrol-patrol-auto' => '$1 автоматично отбеляза като патрулирана версия $4 на страницата $3',
 'logentry-newusers-newusers' => '$1 създаде потребителска сметка',
@@ -3652,4 +3664,15 @@ MediaWiki се разпространява с надеждата, че ще б
 'api-error-uploaddisabled' => 'Достъпът за качване на файлове в това уики е прекратен.',
 'api-error-verification-error' => 'Файлът може би е повреден или има грешно разширение.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|секунда|секунди}}',
+'duration-minutes' => '$1 {{PLURAL:$1|минута|минути}}',
+'duration-hours' => '$1 {{PLURAL:$1|час|часа}}',
+'duration-days' => '$1 {{PLURAL:$1|ден|дни}}',
+'duration-weeks' => '$1 {{PLURAL:$1|седмица|седмици}}',
+'duration-years' => '$1 {{PLURAL:$1|година|години}}',
+'duration-decades' => '$1 {{PLURAL:$1|десетилетие|десетилетия}}',
+'duration-centuries' => '$1 {{PLURAL:$1|век|века}}',
+'duration-millennia' => '$1 {{PLURAL:$1|хилядолетие|хилядолетия}}',
+
 );
index 35aade9..f5c652f 100644 (file)
@@ -688,8 +688,8 @@ Pinanya ini sudah diugahakan atawa dihapus parhatan Pian maniringi tungkaran nan
 Katasunduk gasan pamakai hanyar nangini kawa diubah pintang tungkaran ''[[Special:ChangePassword|ubah katasunduk]]'' wayah babuat log.",
 'newarticle' => '(Hanyar)',
 'newarticletext' => "Pian maumpati sabuah tautan ka tungkaran nang baluman ada lagi. Gasan maulah tungkaran, mulai ja mangatik pada kutak di bawah (lihati [[{{MediaWiki:Helppage}}|tungkaran patulung]] gasan panjalasan labih). Amun Pian ka sia cagaran tasalah, klik picikan '''back''' di panjalajah web Pian.",
-'anontalkpagetext' => "----''Ini adalah tungkaran pamandiran gasan pamuruk kada bangaran nang baluman maulah akun pulang, atawa  kada mamuruknya. Kami tapaksa mamuruk numurik alamat IP hagan maminanduinya.
-Alamat IP nangkaini kawaai dipuruk ulih babarapa pamuruk.
+'anontalkpagetext' => "----''Ngini adalah tungkaran pamandiran gasan pamakai kada bangaran nang baluman ma-ulah akun pulang, atawa  kada mamakainya. Kami tapaksa mamakai numurik alamat IP hagan maminanduinya.
+Alamat IP nangkaini kawaai dipuruk ulih babarapa pamakai.
 Amun Pian adalah pamuruk kada bangaran wan marasa kumin nang kada pas ta ka Pian, muhun [[Special:UserLogin/signup|ulah sabuah akun]] or [[Special:UserLogin|babuat log]] hagan mahindari kabingungan awan pamuruk kada bangaran lain kaina.",
 'noarticletext' => 'Parhatan ini kadada naskah di tungkaran ini.
 Pian kawa [[Special:Search/{{PAGENAME}}|manggagai gasan judul ini]] pintang tungkaran lain,
@@ -723,7 +723,7 @@ Log blukir pahabisannya tasadia di bawah ini gasan rujukan:',
 Inatakan bahwasa saragam  tungkaran-tungkaran .css wan .js mamuruk aksara halus, cuntuh {{ns:user}}:Foo/vector.css sawagai tandingan {{ns:user}}:Foo/Vector.css.",
 'updated' => '(Dihanyarakan)',
 'note' => "'''Catatan:'''",
-'previewnote' => "'''Ingatakanlah bahwasa ini titilikan haja nang balum disimpan!'''",
+'previewnote' => "'''Ingatakanlah bahwasa ngini titilikan haja''' Parubahan Pian nang baluman disimpan!",
 'previewconflict' => 'Titilikan ini mancarminakan naskah dalam naskah wilayah atas babakan sawagai mana ini akan mancungul amun disimpan.',
 'session_fail_preview' => "'''Ampun! Kami kada kawa manarusakan babakan Pian karana kahilangan sési data.'''
 Cubai pang sa'asa pulang.
@@ -739,6 +739,7 @@ Babakan ini kada ditarima hagan mancagah kasalahan pada naskah tungkaran.
 Nangini ambahanu tajadi amun Pian mamuruk sabuah layanan proxy buggy bapandal web kada bangaran.",
 'edit_form_incomplete' => "'''Babarapa hagian matan purmulir babakan kada sampai server; pariksa pulang apakah babakan Pian tatap utuh wan cubai lagi.'''",
 'editing' => 'Mambabak $1',
+'creating' => 'Ma-ulah $1',
 'editingsection' => 'Mambabak $1 (hagian)',
 'editingcomment' => 'Mambabak $1 (hagian hanyar)',
 'editconflict' => 'Babakan bacakut: $1',
@@ -761,7 +762,7 @@ Pian jua bajanji ka kami amun Pian manulis ini saurangan, atawa manjumput ini ma
 Amun Pian kada hakun tulisan Pian dibabak kada baumpat lalu, lalu ai kada usah manyumbang di sia.<br />
 Pian jua bajanji ka kami amun Pian manulis ini saurangan, atawa manjumput ini matan sabuah asal mula ampun umum atawa nang samacam asal mula bibas (lihati $1 gasan rarincian).
 '''Jangan kirimkan gawian bahak cipta kada baijin!'''",
-'longpageerror' => "'''Kasalahan: Naskah nang Pian kirim panjangnya $1 kilubita, nangapa tapanjang pada pamanjangnya nang kawa $2 kilubita.'''
+'longpageerror' => "'''Kasalahan: Naskah nang Pian kirim panjangnya {{PLURAL:$1|asa kilubita|$1 kilubita}}, nangapa tapanjang pada pamanjangnya nang kawa {{PLURAL:$2|asa kilubita|$2 kilubita}}.'''
 Nangini kada kawa disimpan.",
 'readonlywarning' => "'''Paringatan: Basis data sudah tasunduk gasan diharagu, jadinya Pian kada kawa manyimpan babakab Pian parhatan ini.'''
 Pian kawa amun handak cut-n-paste naskah ka sabuah barakas naskah wan simpan ini gasan kaina.
@@ -804,6 +805,7 @@ Ini cungul pinanya sudah tahapus.',
 'edit-no-change' => 'Babakan Pian diabaiakan, karana kadada parubahan diulah ka naskah ini.',
 'edit-already-exists' => 'Kada kawa maulah sabuah tungkaran hanyar.
 Nangini sudah ada.',
+'defaultmessagetext' => 'Naskah baku pasan',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''Paringatan:''' Tungkaran ini mangandung kabanyakan pungsi parser kiauan.
@@ -961,7 +963,7 @@ Muhun pariksa lolog.',
 
 # Suppression log
 'suppressionlog' => 'Log panikinan',
-'suppressionlogtext' => 'Nang di bawah adalah sabuah daptar matan pahahapusan wan Pamblublukiran tamasuk isi tasungkup matan papambakal. Lihati [[Special:IPBlockList|Daptar IP diblukir]] gasan daptar matan uprasi tahanyar tatangatan wan blublukir.',
+'suppressionlogtext' => 'Nang di bawah adalah sabuting daptar matan pahapusan wan pamblukiran tamasuk isi tasungkup matan pambakal. Lihati [[Special:BlockList|Daptar diblukir]] gasan daptar matan uprasi tahanyar tatangatan wan blukir.',
 
 # History merging
 'mergehistory' => 'Gabungakan hahalam tungkaran',
@@ -2075,7 +2077,7 @@ kitihan-bulik wan pangganian labih jauh:
 'historywarning' => "'''Paringatan:''' Tungkaran nang Pian pasal hagan hapus baisi sabuah halam sakitar $1 {{PLURAL:$1|ralatan|raralatan}}:",
 'confirmdeletetext' => 'Pian handak mahapus sabuah tungkaran awan samunyaan halamnya.
 Muhun mamastiakan amun Pian handak manggawi ini, bahwasa Pian paham akibatnya, wan apa nang Pian gawi ini sasuai awan [[{{MediaWiki:Policy-url}}|kabijakan {{SITENAME}}]].',
-'actioncomplete' => 'Pangulahan tuntung',
+'actioncomplete' => 'Pa-ulahan tuntung',
 'actionfailed' => 'Palakuan luput',
 'deletedtext' => '"$1" sudah tahapus. Lihati $2 sabuah rakaman gasan nang hanyar ni tahapus.',
 'dellogpage' => 'Log pahapusan',
@@ -2334,8 +2336,8 @@ Isi sabuah alasan khas di bawah (gasan cuntuh, manulisakan tutungkaran nang suah
 'ipb-confirm' => 'Yakinakan blukir',
 'badipaddress' => 'Alamat IP kada sah',
 'blockipsuccesssub' => 'Pamblukiran ruhui',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] sudah diblukir.<br />
-Janaki [[Special:BlockList|daptar IP dibluk]] hagan maniring-pulang blukir.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] hudah diblukir.<br />
+Janaki [[Special:BlockList|daptar dibluk]] hagan maniring-pulang blukir.',
 'ipb-blockingself' => 'Pian pasal mamblukir Pian surang! Bujurkah Pian mahandaki ngitu?',
 'ipb-confirmhideuser' => 'Pian pasal mamblukir saurang pamuruk awan "sungkupakan pamuruk" di-kawa-akan. Ngini akan manikin/kadada ngaran pamuruk dalam samunyaan daptar wan log masukan. Pian yakin kah handak manggawi ngitu?',
 'ipb-edit-dropdown' => 'Aalasan pamblukiran babakan',
@@ -2389,8 +2391,8 @@ Log panikinan disadiakan di bawah gasan rujukan:',
 'blocklogentry' => 'mamblukir [[$1]] sampai wayah $2 $3',
 'reblock-logentry' => 'setelan blukir diubah gasan [[$1]] awan sabuah wayah kadaluarsa $2 $3',
 'blocklogtext' => 'Ngini adalah log matan blukir wan lapas-blukir pamuruk.
-Blukir alamat IP utumatis kada didaptar.
-Janaki [[Special:BlockList|daptar IP diblukir]] gasan daptar oparasi diikat wan diblukir tadamini.',
+Blukir alamat IP utumatis kada tadaptar.
+Janaki [[Special:BlockList|daptar diblukir]] gasan daptar uprasi dibabat wan pamblukiran pahanyarnya.',
 'unblocklogentry' => 'Mahilangakan blukir "$1"',
 'block-log-flags-anononly' => 'papamuruk kada bangaran haja',
 'block-log-flags-nocreate' => 'Paulahan akun dipajahakan',
@@ -2639,7 +2641,7 @@ Muhun cubai pulang.',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|ralatan|raralatan}} matan $2',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Tungkaran pamuruk Pian',
+'tooltip-pt-userpage' => 'Tungkaran pamakai Pian',
 'tooltip-pt-anonuserpage' => 'Tungkaran pamuruk matan alamat IP Pian mambabak sawagai',
 'tooltip-pt-mytalk' => 'Tungkaran pamandiran Pian',
 'tooltip-pt-anontalk' => 'Pamandiran pasal bababakan matan alamat IP ngini',
@@ -2786,7 +2788,7 @@ Manarusakan ngini, kawa manyarang sistem Pian.",
 'svg-long-desc' => 'Barakas SVG, nominal $1 × $2 piksel, basar barakas: $3',
 'show-big-image' => 'Ukuran hibak',
 'show-big-image-preview' => 'Takaran tilikan ngini: $1.',
-'show-big-image-other' => 'Resolusi lain: $1.',
+'show-big-image-other' => '{{PLURAL:$2|Risulusi|Risulusi}} lain: $1.',
 'show-big-image-size' => '$1 × $2 piksal',
 'file-info-gif-looped' => 'mambulat',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|pigura|pipigura}}',
@@ -3560,9 +3562,9 @@ Situs ngini mangalami kangalihan teknik.',
 'logentry-move-move_redir-noredirect' => '$1 diugah tungkaran $3 ka $4 lung sabuah paugahan awan-kada maninggalakan sabuah paugahan',
 'logentry-patrol-patrol' => "$1 diciri'i ralatan $4 matan tungkaran $3 taawasi",
 'logentry-patrol-patrol-auto' => "$1 utumatis diciri'i ralatan $4 matan tungkaran $3 taawasi",
-'logentry-newusers-newusers' => '$1 diulah sabuah akun pamuruk',
-'logentry-newusers-create' => '$1 diulah sabuah akun pamuruk',
-'logentry-newusers-create2' => '$1 diulah sabuah akun pamuruk $3',
+'logentry-newusers-newusers' => '$1 ma-ulah sabuting akun pamakai',
+'logentry-newusers-create' => '$1 ma-ulah sabuting akun pamakai',
+'logentry-newusers-create2' => '$1 ma-ulah sabuting akun pamakai $3',
 'logentry-newusers-autocreate' => 'Akun $1 utumatis diulah',
 'newuserlog-byemail' => 'Katasunduk dikirimakan lung suril.',
 
index cbb5f01..306ed62 100644 (file)
@@ -451,6 +451,9 @@ $2',
 'customjsprotected' => 'আপনার এই জাভাস্ক্রিপ্ট পাতাটি সম্পাদনা করার অনুমতি নেই, কারণ এ পাতায় অন্য ব্যবহারকারীর নিজস্ব সেটিংস রয়েছে।',
 'ns-specialprotected' => '{{ns:special}} নামস্থানে পাতাসমূহ সম্পাদনা করা যাবে না।',
 'titleprotected' => "[[User:$1|$1]]-কে এই শিরোনামের পাতা সৃষ্টি করতে বাধা দেয়া হচ্ছে। কারণ: ''$2''।",
+'filereadonlyerror' => '"$1" ফাইলটিকে পরিবর্তন করা সম্ভব হচ্ছে না কারন "$2" ফাইল রিপোসিটোরি রিড-অনলি-মোডে আছে।
+
+একজন প্রশাসক যিনি এটাকে লকড করেছেন তার যৌক্তিকতা দেওয়া হল: "$3"',
 
 # Virus scanner
 'virus-badscanner' => "ভুল কনফিগারেশন: অজ্ঞাত ভাইরাস স্কেনার: ''$1''",
@@ -534,6 +537,7 @@ $2',
 'emailconfirmlink' => 'আপনার ই-মেইলের ঠিকানা নিশ্চিত করুন',
 'invalidemailaddress' => 'এই ই-মেইল ঠিকানাটি গ্রহণযোগ্য নয়, কারণ সম্ভবত এটি সঠিক ফরম্যাটে লেখা হয়নি। অনুগ্রহ করে সঠিক ফরম্যাটে লেখা ই-মেইল ঠিকানা দিন, অথবা ক্ষেত্রটি খালি রাখুন।',
 'cannotchangeemail' => 'একাউন্ট ইমেইল ঠিকানা এই উইকিতে পরিবর্তন করা যাবে না।',
+'emaildisabled' => 'এই সাইটটিতে ই-মেইল প্রদানের সুবিধা নেই।',
 'accountcreated' => 'অ্যাকাউন্ট তৈরি করা হয়েছে',
 'accountcreatedtext' => '$1 এর জন্য ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয়েছে।',
 'createaccount-title' => '{{SITENAME}}-এর জন্য অ্যাকাউন্ট সৃষ্টি',
@@ -578,6 +582,7 @@ $2',
 'passwordreset-username' => 'ব্যবহারকারী নাম:',
 'passwordreset-domain' => 'ডোমেইন:',
 'passwordreset-capture' => 'অনুসন্ধানের ফলাফলের ইমেইল দেখুন?',
+'passwordreset-capture-help' => 'আপনি যদি এই চেক বক্সে ক্লিক করেন, তবে অস্থায়ী শব্দচাবিসহ একটি ই-মেইল আপনাকে দেখানো হবে ও সেইসাথে ব্যবহারকারীকে তা পাঠানো হবে।',
 'passwordreset-email' => 'ইমেইল ঠিকানা:',
 'passwordreset-emailtitle' => '{{SITENAME}} সাইটে ব্যবহারকারীর বিস্তারিত তথ্যাদি',
 'passwordreset-emailtext-ip' => 'কেউ একজন (সম্ভবত আপনি, $1 আইপি ঠিকানা থেকে) {{SITENAME}} ($4) সাইটের জন্য আপনার
@@ -712,12 +717,12 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 'userpage-userdoesnotexist-view' => 'ব্যবহারকারী অ্যাকাউন্ট "$1" অনিবন্ধিত।',
 'blocked-notice-logextract' => 'এই ব্যবহারকারী বর্তমানে ব্লক রয়েছে।
 রেফারেন্সের জন্য সাম্প্রতিক ব্লক লগ ভুক্তি নিচে দেওয়া হল:',
-'clearyourcache' => "'''লক্ষ্য করুন:আপনার পছন্দগুলো রক্ষা করার পর পরিবর্তনগুলো দেখার জন্য আপনাকে ব্রাউজারের ক্যাশ এড়াতে হতে পারে।'''
-*'''ফায়ারফক্স/সাফারি:''' ''শিফট'' কী চেপে ধরে ''রিলোড''-এ ক্লিক করুন, কিংবা হয় ''কন্ট্রোল-F5'' অথবা ''কন্ট্রোল-R''(ম্যাক-এ ''কমান্ড-R'') একসাথে চাপুন;
-*'''গুগল ক্রোম:''' ''কন্ট্রোল-শিফট-R''  (ম্যাক-এ ''কমান্ড-শিফট-R'') চাপতে হবে
-*'''ইন্টারনেট এক্সপ্লোরার:''' ''কন্ট্রোল'' চেপে ধরে ''রিফ্রেশ''-এ ক্লিক করুন, কিংবা ''কন্ট্রোল-F5'' চাপুন
-*'''কংকারার:''' কেবল ''রিলোড'' ক্লিক করলেই বা ''F5'' চাপলেই চলবে;
-*'''অপেরা:''' ''Tools→Preferences''-এ গিয়ে ক্যাশ পরিষ্কার করে নিন;",
+'clearyourcache' => "'''লক্ষ্য করুন:''' সংরক্ষণের পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারে ক্যাশে পরিস্কার করার প্রয়োজন হতে পারে।
+* '''ফায়ারফক্স / সাফারি:''' ''শিফট'' কি ধরে রাখা অবস্থায় ''রিলোড''-এ ক্লিক করুন, অথবা ''Ctrl-F5'' বা ''Ctrl-R'' (ম্যাক-এ ''⌘-R'') চাপুন
+* '''গুগল ক্রোম:''' ''Ctrl-Shift-R'' (ম্যাক-এ ''⌘-Shift-R'') চাপুন
+* '''ইন্টারনেট এক্সপ্লোরার:''' ''Ctrl'' কি ধরে রাখা অবস্থায় ''রিফ্রেশ''-এ ক্লিক করুন, অথবা ''Ctrl-F5'' চাপুন
+* '''কনকুয়েরার:''' ''রিলোড''-এ ক্লিক করুন বা ''F5'' চাপুন
+* '''অপেরা:''' ''টুলস → প্রিফারেন্স''-এ গিয়ে ক্যাশে পরিস্কার করে নিন",
 'usercssyoucanpreview' => "'''পরামর্শ:''' \"{{int:showpreview}}\" বোতাম ব্যবহার করে সংরক্ষণের আগে আপনার নতুন CSS পরীক্ষা করুন।",
 'userjsyoucanpreview' => "'''পরামর্শ:''' \"{{int:showpreview}}\" বোতাম ব্যবহার করে সংরক্ষণের আগে আপনার নতুন JavaScript পরীক্ষা করুন।",
 'usercsspreview' => "'''মনে রাখবেন আপনি আপনার জন্য বরাদ্ধকৃত সিএসএস প্রাকদর্শন করছেন।
@@ -732,6 +737,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 'note' => "'''নোট:'''",
 'previewnote' => "'''খেয়াল করুন, এটি একটি প্রাকদর্শন মাত্র।'''
 আপনার পরিবর্তন এখনও সংরক্ষণ করা হয়নি!",
+'continue-editing' => 'সম্পাদনা চালিয়ে যান',
 'previewconflict' => 'এই প্রাকদর্শনটি সম্পাদনা ক্ষেত্রের উপরের অংশটির টেক্সট সংরক্ষণ করলে যেরকম দেখাবে, তা দেখাচ্ছে।',
 'session_fail_preview' => "'''দুঃখিত! সেশন ডাটা হারিয়ে যাওয়ার কারণে আপনার সম্পাদনাটি সংরক্ষণ করা সম্ভব হয়নি। দয়া করে লেখাটি আবার জমা দেয়ার চেষ্টা করুন। যদি এতেও কাজ না হয়, তবে অ্যাকাউন্ট থেকে বেরিয়ে গিয়ে আবার অ্যাকাউন্টে প্রবেশ করে চেষ্টা করুন।'''",
 'session_fail_preview_html' => "'''দুঃখিত! সেশন উপাত্ত হারিয়ে যাওয়ার কারণে আমরা আপনার সম্পাদনাটি প্রক্রিয়া করতে পারিনি।'''
@@ -742,6 +748,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 'token_suffix_mismatch' => "'''আপনার সম্পাদনাটি প্রত্যাখ্যান করা হয়েছে, কারণ আপনার ক্লায়েন্ট প্রোগ্রামটি সম্পাদনা টেক্সটের বিরামচিহ্নগুলি গুলিয়ে ফেলেছে। পাতাটির টেক্সটে যাতে ক্ষতি না হয় সেজন্য সম্পাদনাটি প্রত্যাখ্যান করা হয়েছে। আপনি কোন ত্রুটিপূর্ণ ওয়েব-ভিত্তিক বেনামী প্রক্সি সেবা ব্যবহার করলে এরকম হতে পারে।'''",
 'edit_form_incomplete' => "'''আপনার সম্পাদনার কিছু অংশ সার্ভারে পৌছায় নি; আপনার সম্পাদনা সম্পূর্ণরুপে আছে কিনা নিশ্চিত হয়ে আবার চেষ্টা করুন'''",
 'editing' => 'সম্পাদনা করছেন: $1',
+'creating' => '$1 পাতাটি তৈরি করছেন',
 'editingsection' => 'সম্পাদনা করছেন $1 (অনুচ্ছেদ)',
 'editingcomment' => 'সম্পাদনা করছেন $1 (নতুন অনুচ্ছেদ)',
 'editconflict' => 'সম্পাদনা দ্বন্দ্ব: $1',
@@ -760,7 +767,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 আপনি আরো প্রতিজ্ঞা করছেন যে, এই লেখাগুলো আপনি নিজে লিখেছেন, বা সাধারণের ব্যবহারের জন্য উন্মুক্ত কোন উৎস থেকে সংগ্রহ করেছেন।
 '''স্বত্ব সংরক্ষিত কোন লেখা স্বত্বাধিকারীর অনুমতি ছাড়া এখানে জমা দেবেন না!'''",
 'copyrightwarning2' => "অনুগ্রহ করে লক্ষ করুন: {{SITENAME}}-এর এই ভুক্তিতে আপনার লেখা বা অবদান অন্যান্য ব্যবহারকারীরা পরিবর্তন বা পরিবর্ধন করতে, এমনকি মুছে ফেলতে পারবেন। {{SITENAME}} এ আপনার সকল লেখালেখি/অবদান গনু ফ্রি ডকুমেন্টেশনের ($1) আওতায় বিনামূল্যে প্রাপ্য ও হস্তান্তরযোগ্য। আপনার জমা দেয়া লেখা যে কেউ হৃদয়হীনভাবে সম্পাদনা করতে এবং যথেচ্ছভাবে ব্যবহার করতে পারেন। আপনি যদি এ ব্যাপারে একমত না হন, তাহলে এখানে আপনার লেখা জমা দেবেন না। আপনি আরো প্রতিজ্ঞা করছেন যে, এই লেখাগুলো আপনি নিজে লিখেছেন (তবে কোন মৌলিক গবেষণা নয়) বা সাধারণের ব্যবহারের জন্য উন্মুক্ত কোন উৎস থেকে সংগ্রহ করেছেন। '''স্বত্ব সংরক্ষিত কোন লেখা স্বত্বাধিকারীর অনুমতি ছাড়া এখানে জমা দেবেন না।'''",
-'longpageerror' => "'''ত্রুটি: আপনার জমা দেয়া টেক্সটের পরিমাণ $1 কিলোবাইট, যা সর্বোচ্চ সীমা $2 কিলোবাইটের চেয়ে বেশি। এটি সংরক্ষণ করা সম্ভব নয়।'''",
+'longpageerror' => " '''ত্রুটি:  আপনার জমা দেয়া টেক্সটের পরিমাণ $1 কিলোবাইট, যা সর্বোচ্চ সীমা $2 কিলোবাইটের চেয়ে বেশি। এটি সংরক্ষণ করা সম্ভব নয়।'''",
 'readonlywarning' => "'''সতর্কীকরণ: রক্ষণাবেক্ষণের জন্য ডাটাবেজ অবরুদ্ধ রাখা হয়েছে, তাই এই মুহূর্তে আপনার সম্পাদনা সংরক্ষণ করতে পারবেন না।
 আপনি চাইলে লেখাটি কাট এবং পেষ্ট করে ভবিষ্যতের জন্য কোন টেক্সট ফাইলে সংরক্ষণ করতে পারেন।'''
 
@@ -802,6 +809,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 'edit-no-change' => 'আপনার সম্পাদনাটি উপেক্ষা করা হয়েছে, কারণ লেখাতে কোনো পরিবর্তন করা হয়নি।',
 'edit-already-exists' => 'নতুন পাতা সৃষ্টি করা যায়নি।
 পাতাটি ইতিমধ্যেই বিদ্যমান।',
+'defaultmessagetext' => 'আদি টেক্সট',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''সতর্ক হোন:''' এই পাতাটি অনেক বেশি পরিমাণে এক্সপেনসিভ পার্সার ফাংশন কল রয়েছে।
@@ -815,6 +823,8 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 তাই এই আর্গুমেন্টটি বাদ দেওয়া হয়েছে।",
 'post-expand-template-argument-category' => 'বাদ ফর্মা আর্গুমেন্ট ধারণকারী পাতা',
 'parser-template-loop-warning' => 'টেম্পলেট লুপ সনাক্ত হয়েছে: [[$1]]',
+'parser-template-recursion-depth-warning' => 'টেমপ্লেট  পুনরাবৃত্তি (রিকার্শন)  ডেপথ্‌ সীমা অতক্রম করেছে ($1)',
+'language-converter-depth-warning' => 'ভাষা পরিবর্তন  ডেপথ্‌ সীমা অতক্রম করেছে ($1)',
 
 # "Undo" feature
 'undo-success' => 'সম্পাদনাটি বাতিল করা যাবে। অনুগ্রহ করে নিচের তুলনাটি পরীক্ষা করে দেখুন ও নিশ্চিত করুন যে এটাই আপনি করতে চান, এবং তারপর নিচের সম্পাদনাগুলি সংরক্ষণ করে সম্পাদনাটির বাতিল প্রক্রিয়া সমাপ্ত করুন।',
@@ -905,6 +915,8 @@ $3-এর দেয়া কারণ হল ''$2''",
 'revdelete-submit' => 'নির্বাচিত {{PLURAL:$1|সংশোধনে|সংশোধসমূহে}} প্রয়োগ করো',
 'revdelete-success' => "'''সংশোধন দৃশ্যমানতা সফলভাবে হালনাগাদ করা হয়েছে।'''",
 'logdelete-success' => "'''ঘটনা দৃশ্যমানতা সফলভাবে স্থাপন করা হয়েছে।'''",
+'logdelete-failure' => "'''লগ-এর দৃশ্যমানতা নির্ধারণ সম্ভব হচ্ছে না:'''
+$1",
 'revdel-restore' => 'দৃশ্যমানতা পরিবর্তন করো',
 'revdel-restore-deleted' => 'অপসারিত সংস্করণ',
 'revdel-restore-visible' => 'প্রদর্শনযোগ্য সংস্করণ',
@@ -1153,7 +1165,7 @@ $3-এর দেয়া কারণ হল ''$2''",
 'userrights-lookup-user' => 'ব্যবহারকারী দল ব্যবস্থাপনা করুন',
 'userrights-user-editname' => 'ব্যবহারকারীর নাম লিখুন:',
 'editusergroup' => 'ব্যবহারকারীর দল সম্পাদনা করো',
-'editinguser' => "ব্যবহারকারী সম্পাদনা করছেন '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+'editinguser' => "'''[[User:$1|$1]]''' $2 ব্যবহারকারীর জন্য ব্যবহারকারী অধিকার পরিবর্তন করছেন",
 'userrights-editusergroup' => 'ব্যবহারকারীর দল সম্পাদনা করো',
 'saveusergroups' => 'ব্যবহারকারীর দল সংরক্ষণ করো',
 'userrights-groupsmember' => 'সদস্য:',
@@ -1363,6 +1375,7 @@ $3-এর দেয়া কারণ হল ''$2''",
 'illegalfilename' => '"$1" ফাইলনামটিতে এমন কিছু ক্যারেক্টার আছে যেগুলি পাতার শিরোনামে ব্যবহার করা অবৈধ। অনুগ্রহ করে ফাইলটি নতুন করে নামকরণ করুন এবং তারপর আপলোড করার চেষ্টা করুন।',
 'badfilename' => 'ফাইলের নামটি পরিবর্তন করে $1" করা হয়েছে।',
 'filetype-badmime' => '"$1" MIME ধরনের ফাইল আপলোড করা যাবে না।',
+'filetype-bad-ie-mime' => 'এই ফাইলটি আপলোড করা সম্ভব নয় কারণ ইন্টারনেট এক্সপ্লোরার একে "$1" হিসেবে সনাক্ত করতে পারে, যা অননুমোদিত এবং সম্ভাব্য ক্ষতিকারক ফাইল টাইপ।',
 'filetype-unwanted-type' => "'''\".\$1\"''' ফাইল ধরনটি অগ্রহণযোগ্য।
 পছন্দনীয় {{PLURAL:\$3|ফাইলের ধরন|ফাইলের ধরনগুলো}} হলো \$2।",
 'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|ফাইল ধরনটি অনুমোদিত নয়|ফাইল ধরনগুলো অনুমোদিত নয়}}। অনুমোদিত {{PLURAL:$3|ফাইলের ধরন|ফাইলের ধরনগুলো}} হল $2।',
@@ -1372,12 +1385,14 @@ $3-এর দেয়া কারণ হল ''$2''",
 'filename-tooshort' => 'ফাইল নামটি খুব ছোট।',
 'filetype-banned' => 'এই ধরনের ফাইল নিষিদ্ধ।',
 'illegal-filename' => 'ফাইলের এই নামটি গ্রহণযোগ্য নয়।',
+'overwrite' => 'বিদ্যমান কোনো ফাইল প্রতিস্থাপন গ্রহণযোগ্য নয়।',
 'unknown-error' => 'একটি অজানা ত্রুটি দেখা দিয়েছে।',
 'tmp-create-error' => 'অস্থায়ী ফাইল তৈরি করা যাবে না।',
 'tmp-write-error' => 'অস্থায়ী ফাইলে লিখতে সমস্যা হয়েছে।',
 'large-file' => '$1-এর চেয়ে বড় আকারের ফাইল সুপারিশ করা হয় না; এই ফাইলটি $2।',
 'largefileserver' => 'সার্ভারে যতখানি অনুমোদিত তার চেয়ে এই ফাইলের আকার বড়।',
 'emptyfile' => 'আপনি যে ফাইলটি আপলোড করেছেন, তা খালি মনে হচ্ছে। ফাইলের নামে টাইপিং ত্রুটির কারণে এরকম হতে পারে। অনুগ্রহ করে পরীক্ষা করে দেখুন আপনি আসলেই এই ফাইলটি আপলোড করতে চান কি না।',
+'windows-nonascii-filename' => 'এই উইকি বিশেষ ক্যারেক্টারসমৃদ্ধ ফাইলের নাম সমর্থন করে না।',
 'fileexists' => "এই নামের একটি ফাইল ইতিমধ্যেই বিদ্যমান। অনুগ্রহ করে '''<tt>[[:$1]]</tt>''' পরীক্ষা করে দেখুন, যদি আপনি এটি পরিবর্তনের ব্যাপারে নিশ্চিত না হন। [[$1|thumb]]",
 'fileexists-extension' => "একই নামের আরেকটি ফাইল আছে: [[$2|thumb]]
 * আপলোড করা ফাইলের নাম: '''<tt>[[:$1]]</tt>'''
@@ -1402,6 +1417,7 @@ $3-এর দেয়া কারণ হল ''$2''",
 'overwroteimage' => '"[[$1]]"-এর একটি নতুন সংস্করণ আপলোড করা হয়েছে',
 'uploaddisabled' => 'আপলোড নিষ্ক্রিয় আছে',
 'copyuploaddisabled' => 'ইউআরএল এর মাধ্যমে আপলোড নিস্ক্রিয় রয়েছে।',
+'uploadfromurl-queued' => 'আপনার আপলোড সারিবদ্ধ হয়েছে।',
 'uploaddisabledtext' => 'ফাইল আপলোড নিষ্ক্রিয়।',
 'php-uploaddisabledtext' => 'পিএইপি -এ ফাইল আপলোড নিস্ক্রিয় রয়েছে।
 অনুগ্রহ করে file_uploads সেটিং পরীক্ষা করুন।',
@@ -1418,8 +1434,10 @@ $3-এর দেয়া কারণ হল ''$2''",
 'filewasdeleted' => 'এই নামের একটি ফাইল পূর্বে আপলোড করা হয়েছিল এবং তারপর মুছে ফেলা হয়েছিল। আপনি ফাইলটি আবার আপলোড করার আগে $1 পরীক্ষা করে দেখুন।',
 'filename-bad-prefix' => "আপনি যে ফাইলটি আপলোড করছেন, তার নাম '''\"\$1\"''' দিয়ে শুরু হয়েছে। এ ধরনের নাম সাধারণত ডিজিটাল ক্যামেরাগুলি স্বয়ংক্রিয়ভাবে দিয়ে থাকে এবং এগুলি ব্যাখ্যামূলক নয়। অনুগ্রহ করে আপনার ফাইলের জন্য আরও ব্যাখ্যামূলক একটি নাম পছন্দ করুন।",
 'upload-success-subj' => 'আপলোড সফল হয়েছে',
+'upload-success-msg' => '[$2] থেকে আপনার আপলোড সফল হয়েছে। এটি এখানে: [[:{{ns:file}}:$1]] পাওয়া যাবে',
 'upload-failure-subj' => 'আপলোড সমস্যা',
 '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> দিয়ে শুরু হওয়া আবশ্যক।',
@@ -1461,6 +1479,7 @@ $3-এর দেয়া কারণ হল ''$2''",
 'http-invalid-url' => 'ভুল ইউআরএল: $1',
 'http-read-error' => 'HTTP পঠন ত্রুটি।',
 'http-timed-out' => 'HTTP অনুরোধের সময় পার হয়েছে।',
+'http-curl-error' => 'ইউআরএল নিয়ে আসার ক্ষেত্রে ত্রুটি: $1',
 'http-host-unreachable' => 'URL-এ পৌঁছানো যায়নি',
 'http-bad-status' => 'HTTP অনুরোধের সময় কোন সমস্যা হয়েছে: $1 $2',
 
@@ -1545,6 +1564,7 @@ $3-এর দেয়া কারণ হল ''$2''",
 ** ফাইলের অনুলিপি',
 'filedelete-edit-reasonlist' => 'অপসারণের কারণ সম্পাদনা',
 'filedelete-maintenance' => 'রক্ষণাবেক্ষণের সময় ফাইল অপরাসণ এবং পুনরুদ্ধার সাময়িকভাবে নিস্ক্রিয় রয়েছে।',
+'filedelete-maintenance-title' => 'ফাইলটি অপসারণ করা সম্ভব নয়',
 
 # MIME search
 'mimesearch' => 'MIME অনুসন্ধান',
@@ -1591,7 +1611,7 @@ $3-এর দেয়া কারণ হল ''$2''",
 'statistics-users-active-desc' => 'ব্যবহারকারী যারা বিগত {{PLURAL:$1|দিনে|$1 দিনে}} একটি কাজ করেছেন।',
 'statistics-mostpopular' => 'সবচেয়ে বেশী বার দেখা পাতাসমূহ',
 
-'disambiguations' => 'দ্ব্যর্থতা-দূরীকরণ পাতাসমূহ',
+'disambiguations' => 'দ্ব্যর্থতা-দূরীকরণ পাতাসমূহে সংযোগকৃত পাতাসমূহ',
 'disambiguationspage' => 'Template:দ্ব্যর্থতা_নিরসন',
 'disambiguations-text' => "নিচের পাতাগুলি থেকে একটি '''দ্ব্যর্থতা নিরসন পাতা'''-তে সংযোগ আছে। এর পরিবর্তে এগুলি থেকে একটি উপযুক্ত বিষয়ে সংযোগ থাকা আবশ্যক।<br />যদি কোন পাতায় এমন কোন টেমপ্লেট থাকে যেটিতে [[MediaWiki:Disambiguationspage]] থেকে সংযোগ আছে, তবে সেই পাতাটিকে একটি দ্ব্যর্থতা নিরসন পাতা হিসেবে গণ্য করা হয়।",
 
@@ -1709,6 +1729,10 @@ $3-এর দেয়া কারণ হল ''$2''",
 'allpagesprefix' => 'এই উপসর্গবিশিষ্ট পাতাগুলো দেখাও:',
 'allpagesbadtitle' => 'প্রদত্ত পাতার শিরোনামটি অবৈধ ছিল অথবা এটিতে কোন আন্তঃভাষা বা আন্তঃউইকি উপসর্গ ছিল। এটিতে এক বা একাধিক ক্যারেক্টার থাকতে পারে যা শিরোনামে ব্যবহার করা সম্ভব নয়।',
 'allpages-bad-ns' => '{{SITENAME}}-এ "$1" নামের কোন নামস্থান নেই।',
+'allpages-hide-redirects' => 'পুনর্নির্দেশনাগুলো লুকাও',
+
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'সাম্প্রতিকগুলো প্রদর্শন করো।',
 
 # Special:Categories
 'categories' => 'বিষয়শ্রেণীসমূহ',
@@ -2354,6 +2378,9 @@ $1',
 'import-logentry-interwiki' => '$1 উইকি-স্থানান্তরিত',
 'import-logentry-interwiki-detail' => '$2-এর করা $1 {{PLURAL:$1|সংশোধন|টি সংশোধন}}',
 
+# JavaScriptTest
+'javascripttest' => 'জাভাস্ক্রিপ্ট পরীক্ষা',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'আপনার ব্যবহারকারী পাতা',
 'tooltip-pt-anonuserpage' => 'যে আইপি ঠিকানা থেকে আপনি সম্পাদনা করছেন, তার ব্যবহারকারী পাতা',
@@ -2414,6 +2441,7 @@ $1',
 'tooltip-diff' => 'আপনি টেক্সটে কী কী পরিবর্তন করেছেন, তা দেখানো হোক।',
 'tooltip-compareselectedversions' => 'এই পাতার দুইটি নির্বাচিত সংস্করণের মধ্যে তুলনা দেখুন।',
 'tooltip-watch' => 'এই পাতাটি আমার নজরতালিকায় যোগ করো',
+'tooltip-watchlistedit-normal-submit' => 'শিরোনাম অপসারণ',
 'tooltip-recreate' => 'মুছে ফেলা সত্ত্বেও পাতাটি পুনরায় সৃষ্টি করুন',
 'tooltip-upload' => 'আপলোড শুরু করো',
 'tooltip-rollback' => '"পুনর্বহাল" এই পাতায় সর্বশেষ অবদানকারীর সম্পাদনাসমূহ বাতিল করে পাতাটিকে পূর্বাবস্থায় ফিরিয়ে দেয়',
@@ -2867,6 +2895,7 @@ $1',
 # Pseudotags used for GPSDestDistanceRef
 'exif-gpsdestdistance-k' => 'কিলোমিটার',
 'exif-gpsdestdistance-m' => 'ফাইল',
+'exif-gpsdestdistance-n' => 'নটিক্যাল মাইল',
 
 'exif-gpsdop-excellent' => 'খুব ভাল ($1)',
 'exif-gpsdop-good' => 'ভাল ($1)',
@@ -2894,6 +2923,7 @@ $1',
 
 'exif-rating-rejected' => 'প্রত্যাখাত',
 
+'exif-iimcategory-ace' => 'শিল্প, সংস্কৃতি এবং বিনোদন',
 'exif-iimcategory-clj' => 'অপরাধ ও আইন',
 'exif-iimcategory-dis' => 'দুর্যোগ ও দুর্ঘটনা',
 'exif-iimcategory-fin' => 'অর্থনীতি এবং বাণিজ্য',
@@ -2972,11 +3002,13 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 # action=purge
 'confirm_purge_button' => 'ঠিক আছে',
 'confirm-purge-top' => 'এই পাতার ক্যাশে পরিষ্কার করতে চান?',
+'confirm-purge-bottom' => 'পাতার ক্যাশে পরিস্কারের ফলে তা আপনাকে পাতাটির সবচেয়ে সাম্প্রতিক সংস্করণ প্রদর্শনে বাধ্য করে।',
 
 # action=watch/unwatch
 'confirm-watch-button' => 'ঠিক আছে',
 'confirm-watch-top' => 'এই পাতাটি আপনার নজরতালিকায় যুক্ত করা হবে?',
 'confirm-unwatch-button' => 'ঠিক আছে',
+'confirm-unwatch-top' => 'এই পাতাটি আপনার নজরতালিকা থেকে সরিয়ে ফেলতে ইচ্ছুক?',
 
 # Multipage image navigation
 'imgmultipageprev' => '← পূর্ববর্তী পাতা',
@@ -3065,6 +3097,7 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'version-software' => 'ইনস্টলকৃত সফটওয়্যার',
 'version-software-product' => 'পণ্য',
 'version-software-version' => 'সংস্করণ',
+'version-entrypoints-header-url' => 'ইউআরএল',
 
 # Special:FilePath
 'filepath' => 'ফাইলের পাথ',
@@ -3156,8 +3189,24 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 # New logging system
 'logentry-delete-delete' => '$1 কর্তৃক $3 পাতাটি অপসারিত হয়েছে',
 'logentry-delete-restore' => '$1 কর্তৃক $3 পাতাটি ফিরিয়ে আনা হয়েছে',
+'revdelete-content-hid' => 'বিষয়বস্তু লুকায়িত',
+'revdelete-summary-hid' => 'সম্পাদনা সারাংশ লুকায়িত',
+'revdelete-uname-hid' => 'ব্যবহারকারী নাম লুকায়িত',
+'revdelete-content-unhid' => 'বিষয়বস্তু প্রদর্শিত',
+'revdelete-summary-unhid' => 'সম্পাদনা সারাংশ প্রদর্শিত',
+'revdelete-uname-unhid' => 'ব্যবহারকারী নাম প্রদর্শিত',
 'revdelete-restricted' => 'এই সীমাবদ্ধতা প্রশাসকের ক্ষেত্রে প্রয়োগ করো',
 'revdelete-unrestricted' => 'এই সীমাবদ্ধতা প্রশাসকের ক্ষেত্রে তুলে নাও',
+'logentry-move-move' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে স্থানান্তর করেছেন',
+'logentry-move-move-noredirect' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে কোনো পুনর্নির্দেশনা ছাড়াই স্থানান্তর করেছেন',
+'logentry-move-move_redir' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে পুনির্নির্দেশনার ওপর দিয়ে স্থানান্তর করেছেন',
+'logentry-move-move_redir-noredirect' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে পুনর্নির্দেশনার ওপর দিয়ে কোনো পুনর্নির্দেশনা ছাড়াই স্থানান্তর করেছেন',
+'logentry-patrol-patrol' => '$1 ব্যবহারকারী $3 পাতার $4 নম্বর সংস্করণ পরীক্ষিত বলে চিহ্নিত করেছেন',
+'logentry-patrol-patrol-auto' => '$1 ব্যবহারকারী স্বয়ংক্রিয়ভাবে $3 পাতার $4 নম্বর সংস্করণ পরীক্ষিত বলে চিহ্নিত করেছেন',
+'logentry-newusers-newusers' => '$1 একটি অ্যাকাউন্ট তৈরি করেছেন',
+'logentry-newusers-create' => '$1 একটি অ্যাকাউন্ট তৈরি করেছেন',
+'logentry-newusers-create2' => '$1 ব্যবহারকারী $3 নামে একটি অ্যাকাউন্ট তৈরি করেছেন',
+'logentry-newusers-autocreate' => '$1 অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে তৈরি হয়েছে',
 'newuserlog-byemail' => 'শব্দচাবি ইমেইলের মাধ্যমে পাঠানো হয়েছে',
 
 # Feedback
@@ -3170,6 +3219,7 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'feedback-error2' => 'ত্রুটি: সম্পাদনা ব্যর্থ',
 'feedback-error3' => 'ত্রুটি: এপিআই থেকে কোন সাড়া নেই',
 'feedback-close' => 'সম্পন্ন',
+'feedback-bugnew' => 'আমি পরীক্ষা করেছি। নতুন একটি বাগ রিপোর্ট করুন।',
 
 # API errors
 'api-error-badaccess-groups' => 'আপনার এই উইকিতে ফাইল আপলোডের অনুমতি নেই।',
@@ -3180,6 +3230,7 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'api-error-duplicate-archive-popup-title' => 'অনুলিপি {{PLURAL:$1|ফাইল|ফাইল}} যা ইতমধ্যে অপসারণ করা হয়েছে',
 'api-error-duplicate-popup-title' => 'অনুলিপি {{PLURAL:$1|ফাইল|ফাইল}}',
 'api-error-empty-file' => 'আপনার জমাদানকৃত ফাইলটি খালি।',
+'api-error-emptypage' => 'নতুন ও খালি পাতা তৈরি গ্রহণযোগ্য নয়।',
 'api-error-fetchfileerror' => 'অভ্যন্তরীণ ত্রুটি: ফাইল নিয়ে আসার সময় কোনো সমস্যা হয়েছিলো।',
 'api-error-file-too-large' => 'আপনার জমাদানকৃত ফাইলটি অনেক বড়।',
 'api-error-filename-tooshort' => 'এই ফাইল নামটি খুবই ছোট।',
@@ -3204,6 +3255,7 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'api-error-unknown-code' => 'অজানা ত্রুটি: "$1"',
 'api-error-unknown-error' => 'অভ্যন্তরীণ ত্রুটি: আপনার ফাইলটি আপলোড করার সময় কিছু সমস্যা হয়েছে।',
 'api-error-unknown-warning' => 'অজানা সতর্কীকরণ: $1',
+'api-error-unknownerror' => 'অজানা ত্রুটি: "$1"',
 'api-error-uploaddisabled' => 'এই উইকির জন্য আপলোড সুবিধা নিস্ক্রিয় রয়েছে।',
 'api-error-verification-error' => 'সম্ভবত এই ফাইলটি ত্রুটিপূর্ণ অথবা এর এক্সটেনশনটি ভুল।',
 
index 14e4eff..4c78b6f 100644 (file)
@@ -850,6 +850,7 @@ Dindan emañ merket moned diwezhañ marilh ar stankadennoù, d'ho kelaouiñ :",
 'note' => "'''Notenn :'''",
 'previewnote' => "'''Diwallit mat, n'eus ken ur rakweled eus an destenn-mañ.'''
 N'eo ket bet enrollet ho kemmoù evit c'hoazh !",
+'continue-editing' => "Kenderc'hel da gemmañ",
 'previewconflict' => 'Gant ar rakweled e teu testenn ar bajenn war wel evel ma vo pa vo bet enrollet.',
 'session_fail_preview' => "'''Ho tigarez! N'eus ket bet tu da enrollañ ho kemmoù rak kollet eo bet roadennoù an dalc'h.'''
 Klaskit en-dro mar plij.
@@ -939,6 +940,10 @@ A-gostez eo bet lezet an arventenn-se.',
 'parser-template-loop-warning' => "Patrom e kelc'h detektet : [[$1]]",
 'parser-template-recursion-depth-warning' => 'Tizhet bevenn donder galvoù ar patromoù ($1)',
 'language-converter-depth-warning' => "Aet eur en tu all d'ar vevenn amdreiñ yezhoù ($1)",
+'node-count-exceeded-category' => "Pajennoù m'eur aet en tu all d'an niver a skoulmoù",
+'node-count-exceeded-warning' => "Pajenn a ya en tu all d'an niver a skoulmoù",
+'expansion-depth-exceeded-category' => "Pajennoù m'eur aet dreist d'an donder astenn",
+'expansion-depth-exceeded-warning' => "Pajenn a ya dreist d'an donder astenn",
 
 # "Undo" feature
 'undo-success' => "Gallout a reer disteurel ar c'hemmoù-mañ. Gwiriit, mar plij, gant ar geñveriadenn a-is evit bezañ sur eo an dra-se a fell deoc'h ober; goude-se enrollit ar c'hemmoù a-is a-benn echuiñ disteurel ar c'hemmoù.",
@@ -3770,7 +3775,7 @@ Diskouezet eo ar skeudennoù gant ur pizhder uhel, erounit a ra ar restroù all
 'feedback-bugornote' => "Ma'z oc'h prest da zeskrivañ ur gudenn deknikel dre ar munud e c'hallit [\$1 kemenn un draen].
 A-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc'h evezhiadenn d'ar bajenn \"[\$3 \$2]\", a-gevret gant hoc'h anv implijer hag anv ar merdeer a rit gantañ.",
 'feedback-subject' => 'Danvez :',
-'feedback-message' => 'Kemennadenn:',
+'feedback-message' => 'Kemennadenn :',
 'feedback-cancel' => 'Nullañ',
 'feedback-submit' => 'Kas ho soñj',
 'feedback-adding' => "Oc'h ouzhpennañ ho soñj war ar bajenn...",
index f55e957..b492d78 100644 (file)
@@ -1115,6 +1115,10 @@ Tyto argumenty byly vynechány.',
 'parser-template-loop-warning' => 'Nalezena smyčka šablon: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Překročen limit hloubky rekurzivního vkládání šablon ($1)',
 'language-converter-depth-warning' => 'Překročen limit vnoření u jazykové konverze ($1)',
+'node-count-exceeded-category' => 'Stránky překračující počet uzlů',
+'node-count-exceeded-warning' => 'Stránka překročila počet uzlů',
+'expansion-depth-exceeded-category' => 'Stránky překračující hloubku expanze',
+'expansion-depth-exceeded-warning' => 'Stránka překročila hloubku expanze',
 
 # "Undo" feature
 'undo-success' => 'Editace může být zrušena. Zkontrolujte a pak potvrďte změny zobrazené níže.',
index 95a6c43..d0f332a 100644 (file)
@@ -776,6 +776,7 @@ Cofiwch bod y tudalennau .css a .js yn defnyddio llythrennau bach, e.e. {{ns:use
 'updated' => '(Diweddariad)',
 'note' => "'''Dalier sylw:'''",
 'previewnote' => "'''Cofiwch taw rhagolwg yw hwn.''' Nid yw eich gwaith wedi ei roi ar gadw eto!",
+'continue-editing' => 'Parhau i olygu',
 'previewconflict' => "Mae'r rhagolwg hwn yn dangos y testun yn yr ardal golygu uchaf, fel ag y byddai'n ymddangos petaech yn rhoi'r dudalen ar gadw.",
 'session_fail_preview' => "'''Ymddiheurwn! Methwyd prosesu eich golygiad gan fod rhan o ddata'r sesiwn wedi'i golli. Ceisiwch eto.
 Os digwydd yr un peth eto, ceisiwch [[Special:UserLogout|allgofnodi]] ac yna mewngofnodi eto.'''",
@@ -1945,6 +1946,9 @@ Sylwer bod llythrennau mawr neu fach o bwys i'r chwiliad.",
 'allpages-bad-ns' => 'Nid oes gan {{SITENAME}} barth o\'r enw "$1".',
 'allpages-hide-redirects' => 'Cuddio tudalennau ailgyfeirio',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Gweld y diwygiad diweddaraf.',
+
 # Special:Categories
 'categories' => 'Categorïau',
 'categoriespagetext' => "Mae'r {{PLURAL:$1|categori|categori|categorïau|categorïau|categorïau|categorïau}} isod yn cynnwys tudalennau neu ffeiliau amlgyfrwng.
@@ -3690,6 +3694,7 @@ Dangosir delweddau ar eu maint llawn, dechreuir ffeiliau o fathau eraill yn unio
 'duration-weeks' => '$1 {{PLURAL:$1|wythnos}}',
 'duration-years' => '$1 {{PLURAL:$1|mlynedd|mlynedd|flynedd|mlynedd|mlynedd|mlynedd}}',
 'duration-decades' => '$1 {{PLURAL:$1|degawd|degawd|ddegawd|degawd|degawd|degawd}}',
-'duration-centuries' => '$1 {{PLURAL:$1|canrif|canrif|ganrif|chanrif|chanrif|canrif}}',
+'duration-centuries' => '$1 {{PLURAL:$1|canmlwydd|ganmlwydd|ganmlwydd|canmlwydd|chanmlwydd|canmlwydd}}',
+'duration-millennia' => '$1 {{PLURAL:$1|milflwydd|filflwydd|filflwydd|milflwydd|milflwydd|milflwydd}}',
 
 );
index a0b544a..44eb57f 100644 (file)
@@ -1141,6 +1141,10 @@ Sie darf nicht mehr als $2 {{PLURAL:$2|Aufruf|Aufrufe}} haben, es {{PLURAL:$1|is
 'parser-template-loop-warning' => 'Vorlagenschleife entdeckt: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Vorlagenrekursionstiefengrenze überschritten ($1)',
 'language-converter-depth-warning' => 'Sprachkonvertertiefenlimit überschritten ($1)',
+'node-count-exceeded-category' => 'Seiten, die die Knotenanzahl überschritten haben',
+'node-count-exceeded-warning' => 'Die Seite hat die Knotenpunktanzahl überschritten.',
+'expansion-depth-exceeded-category' => 'Seiten, die die Expansionstiefe überschritten haben',
+'expansion-depth-exceeded-warning' => 'Die Seite hat die Expansionstiefe überschritten.',
 
 # "Undo" feature
 'undo-success' => 'Die Bearbeitung kann rückgängig gemacht werden.
@@ -1174,7 +1178,7 @@ Grund der Sperre: ''$2''",
 * ({{int:cur}}) = Unterschied zur aktuellen Version, ({{int:last}}) = Unterschied zur vorherigen Version
 * Uhrzeit/Datum = Version zu dieser Zeit, Benutzername/IP-Adresse des Bearbeiters, {{int:minoreditletter}} = Kleine Änderung',
 'history-fieldset-title' => 'In der Versionsgeschichte suchen',
-'history-show-deleted' => 'nur gelöschte Versionen',
+'history-show-deleted' => 'Nur gelöschte Versionen zeigen',
 'histfirst' => 'Älteste',
 'histlast' => 'Neueste',
 'historysize' => '({{PLURAL:$1|1 Byte|$1 Bytes}})',
index 3f59250..a53894e 100644 (file)
@@ -167,7 +167,7 @@ $messages = array(
 'qbpageoptions' => 'Ena pele',
 'qbpageinfo' => 'Gıre',
 'qbmyoptions' => 'Pelê mı',
-'qbspecialpages' => 'Pelê Mêniye',
+'qbspecialpages' => 'Peley xısusi',
 'faq' => 'PZP (Persê ke zehf persiyenê)',
 'faqpage' => 'Project: PZP',
 
@@ -200,7 +200,7 @@ $messages = array(
 'history_short' => 'Tarix',
 'updatedmarker' => 'cıkewtena mına peyêne ra dıme biyo rocane',
 'printableversion' => 'Asayışê çapkerdışi',
-'permalink' => 'Gıreyo jûqere',
+'permalink' => 'Gıreyo daimi',
 'print' => 'Çap ke',
 'view' => 'Bıvêne',
 'edit' => 'Bıvurne',
@@ -219,7 +219,7 @@ $messages = array(
 'newpage' => 'Pela newiye',
 'talkpage' => 'Ena pele sero werêne',
 'talkpagelinktext' => 'Werênayış',
-'specialpage' => 'Pela xase',
+'specialpage' => 'Pela xısusi',
 'personaltools' => 'Hacetê şexsi',
 'postcomment' => 'Qısımo newe',
 'articlepage' => 'Pela zerreki bıvêne',
@@ -299,7 +299,7 @@ $1',
 'showtoc' => 'bımocne',
 'hidetoc' => 'bınımne',
 'collapsible-collapse' => 'Kılmever ke',
-'collapsible-expand' => 'Hera',
+'collapsible-expand' => 'Hera ke',
 'thisisdeleted' => 'Bıvêne ya zi $1 peyser bia?',
 'viewdeleted' => '$1 bıvêne?',
 'restorelink' => '{{PLURAL:$1|yew vurnayışo esterıte|$1 vurnayışê esterıtey}}',
@@ -319,7 +319,7 @@ $1',
 'nstab-main' => 'Pele',
 'nstab-user' => 'Pela Karberi',
 'nstab-media' => 'Pela Medya',
-'nstab-special' => 'Pela xase',
+'nstab-special' => 'Pela xısusi',
 'nstab-project' => 'Pela Procey',
 'nstab-image' => 'Dosya',
 'nstab-mediawiki' => 'Mesac',
@@ -401,7 +401,7 @@ Perse: $2',
 'cascadeprotected' => 'No pel de vurnayiş qedexe biyo, çunke şıma tuşa "kademeyın" aqtif kerdo u no {{PLURAL:$1|pelo|pelo}} pawıteyo de xebıtyeno:
 $2',
 'namespaceprotected' => "No '''$1''' ca de icazetê şıma çino şıma pel rêz keri.",
-'ns-specialprotected' => 'Pelê mêniye nênê vurnayış.',
+'ns-specialprotected' => 'Peley xısusi nênê vurnayış.',
 'titleprotected' => 'Eno [[User:$1|$1]] zerreyê ena peli nişeno vuriye.
 Sebeb: "\'\'$2\'\'".',
 
@@ -1103,7 +1103,7 @@ Eka tu wazene ke nameyo raşt xo bide, ma nameyo raşt ti iştirakanê ti de moc
 Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena.',
 'prefs-help-email-required' => 'E-mail adrese mecburiya.',
 'prefs-info' => 'Enformasyonê temelî',
-'prefs-i18n' => 'Beynelbinel kerdişî',
+'prefs-i18n' => 'Şaryayış kerdış',
 'prefs-signature' => 'İmza',
 'prefs-dateformat' => 'Formatê tarixi',
 'prefs-timeoffset' => 'Wext offset',
@@ -2084,7 +2084,7 @@ $1',
 'blanknamespace' => '(Ser)',
 
 # Contributions
-'contributions' => 'İştiraqê karberi',
+'contributions' => 'İştirakê karberi',
 'contributions-title' => '$1 de iştırakê karberi',
 'mycontris' => 'İştırakê mı',
 'contribsub2' => 'Semedê $1 ($2)',
@@ -2381,7 +2381,7 @@ ma vaci: qey pelê "[[{{MediaWiki:Mainpage}}]]i " [[{{#Special:Export}}/{{MediaW
 'export-pagelinks' => 'behsê xorıniya pelê pêrabesteyani:',
 
 # Namespace 8 related
-'allmessages' => 'Mesajanê sistemi',
+'allmessages' => 'Mesacê sistemi',
 'allmessagesname' => 'Name',
 'allmessagesdefault' => 'nuşteyo orjinal',
 'allmessagescurrent' => 'nuşte yo ke şuxuliyeno',
@@ -2649,10 +2649,10 @@ Yew rêze de gırêyo sıfteyın gani gırêyo de dosya xırabıne bo.
 Na rêze de her gırêyo bin zey istisna vêniyeno, yanê pelê ke dosya beno ke sero rêzbiyaye asena.',
 
 # Metadata
-'metadata' => 'Metadata',
+'metadata' => 'Melumato serên',
 'metadata-help' => 'Ena dosya dı zafyer informasyoni esto. Belki ena dosya yew kamareyo dijital ya zi skaner ra vıraziyo.
 Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.',
-'metadata-expand' => 'Extended detayan bımoc',
+'metadata-expand' => 'Detayan bımocne',
 'metadata-collapse' => 'extended details bınım',
 'metadata-fields' => 'Resımê meydanê metadataê ke na pele de benê lista, pela resımmocnaene de ke tabloê metadata gına waro, gureniyenê.
 Ê bini zey sayekerdoğan nımiyenê.
@@ -3129,7 +3129,7 @@ Ma rica keno konfirme bike ke ti raştî wazeno eno pel bivirazo.",
 'confirm-unwatch-top' => 'Ena pele lista xoya seyirkerdışi ra bıvece?',
 
 # Multipage image navigation
-'imgmultipageprev' => 'peleyê verin',
+'imgmultipageprev' => '← peleyê verin',
 'imgmultipagenext' => 'pelo serîn →',
 'imgmultigo' => 'Şı!',
 'imgmultigoto' => 'Şi pel $1',
@@ -3244,7 +3244,7 @@ Resımi be tam asayış mocniyayê, tipê dosyaê bini be programê cıyo elaqed
 'fileduplicatesearch-noresults' => 'Ebe namey "$1" ra dosya nêdiyayê.',
 
 # Special:SpecialPages
-'specialpages' => 'Pelê mêniye',
+'specialpages' => 'Peley xısusi',
 'specialpages-note' => '----
 * Xısusi pelaya normal
 * <span class="mw-specialpagerestricted">Xısusi peleyê keı rê ray nê deyaya.</span>
index b9e10e6..547036c 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Dbc334
  * @author Derbeth
  * @author Dunak
  * @author Dundak
@@ -895,6 +896,10 @@ Njesmějo daś wěcej nježli $2 {{PLURAL:$2|wołanja|wołanjowu|wołanjow|woła
 'parser-template-loop-warning' => 'Pśedłogowa šlejfa namakana: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Limit rekursijneje dłymi pśedłogi pśekšocony ($1)',
 'language-converter-depth-warning' => 'Limit dłymokosći rěcnego konwertera pśekšocony ($1)',
+'node-count-exceeded-category' => 'Boki, źož licba sukow jo pśekšocona',
+'node-count-exceeded-warning' => 'Bok jo licbu sukow pśekšocył',
+'expansion-depth-exceeded-category' => 'Boki, źož ekspansiska dłymokosć jo pśekšocona',
+'expansion-depth-exceeded-warning' => 'Bok jo ekspansisku dłymokosć pśekšocył',
 
 # "Undo" feature
 'undo-success' => 'Wobźěłanje móžo se wótpóraś. Pšosym pśeglěduj dołojcne pśirownowanje aby se wěsty był, až to wót wěrnosći coš, a pón składuj změny, aby se wobźěłanje doskóńcnje wótpórało.',
@@ -1163,7 +1168,7 @@ Zaruc, až historija wersijow nastawka jo njepśetergnjona.',
 'prefs-skin' => 'Šat',
 'skin-preview' => 'Pśeglěd',
 'datedefault' => 'Standard',
-'prefs-beta' => 'Betafunkcije',
+'prefs-beta' => 'Preizkusne funkcije',
 'prefs-datetime' => 'Datum a cas',
 'prefs-labs' => 'Laborowe funkcije',
 'prefs-personal' => 'Wužywarski profil',
@@ -1705,7 +1710,7 @@ Za optimalnu wěstotu img_auth.php jo znjemóžnjony.',
 'upload-curl-error28-text' => 'Bok pśedłujko njejo wótegronił. Kontrolěruj, lic jo bok online, pócakaj wokognuśe a wopytaj pón hyšći raz. Móžo byś zmysłapołne, w drugem casu hyšći raz proběrowaś.',
 
 'license' => 'Licenca:',
-'license-header' => 'Licencowanje',
+'license-header' => 'Licencěrowanje',
 'nolicense' => 'Nic njejo wuzwólone.',
 'license-nopreview' => '(Pśeglěd njejo móžny.)',
 'upload_source_url' => ' (płaśeca, zjawnje pśistupna URL)',
@@ -3035,7 +3040,7 @@ Slědujuce wótkaze w tej samej smužce se za wuwześa naglědaju, w kótarychž
 'exif-gpsdestdistance' => 'Distanca k celowemu městnu',
 'exif-gpsprocessingmethod' => 'Mě metody pśeźěłanja GPS',
 'exif-gpsareainformation' => 'Mě wobcerka GPS',
-'exif-gpsdatestamp' => 'Datum GPS',
+'exif-gpsdatestamp' => 'GPS-datum',
 'exif-gpsdifferential' => 'Diferencialna korektura GPS',
 'exif-jpegfilecomment' => 'Komentar JPEG-dataje',
 'exif-keywords' => 'Klucowe słowa',
index 86c5252..b5cbc10 100644 (file)
@@ -385,8 +385,8 @@ $messages = array(
 'tog-showjumplinks' => 'Ενεργοποίησε τους συνδέσμους προσβασιμότητας του τύπου "μετάβαση σε"',
 'tog-uselivepreview' => 'Χρησιμοποίησε άμεση προεπισκόπηση (JavaScript) (Πειραματικό)',
 'tog-forceeditsummary' => 'Ειδοποίησέ με όταν εισάγω μια κενή σύνοψη επεξεργασίας',
-'tog-watchlisthideown' => 'Απόκρυψε τις επεξεργασίες μου απο τη λίστα παρακολούθησης',
-'tog-watchlisthidebots' => 'Απόκρυψε τις επεξεργασίες των bots από τη λίστα παρακολούθησης',
+'tog-watchlisthideown' => 'Απόκρυψε τις επεξεργασίες μου από τη λίστα παρακολούθησης',
+'tog-watchlisthidebots' => 'Απόκρυψε τις επεξεργασίες των bot από τη λίστα παρακολούθησης',
 'tog-watchlisthideminor' => 'Απόκρυψε τις μικρής σημασίας επεξεργασίες από τη λίστα παρακολούθησης',
 'tog-watchlisthideliu' => 'Απόκρυψη επεξεργασιών συνδεδεμένων χρηστών από τη λίστα παρακολούθησης',
 'tog-watchlisthideanons' => 'Απόκρυψη επεξεργασιών ανωνύμων χρηστών από τη λίστα παρακολούθησης',
@@ -732,6 +732,9 @@ $2',
 'ns-specialprotected' => 'Σελίδες στον τομέα {{ns:special}} δεν γίνεται να επεξεργαστούν.',
 'titleprotected' => "Αυτός ο τίτλος έχει προστατευθεί από την δημιουργία από τον [[User:$1|$1]].
 Ο λόγος που δίνεται είναι ''$2''.",
+'filereadonlyerror' => 'Δεν είναι δυνατή η τροποποίηση του αρχείου " $1 " επειδή το αποθετήριο αρχείων " $2 " είναι σε κατάσταση λειτουργίας μόνο για ανάγνωση.
+
+Ο διαχειριστής που το κλείδωσε προσφέρει αυτή την αιτιολόγηση: " $3 ".',
 
 # Virus scanner
 'virus-badscanner' => "Λάθος ρύθμιση: άγνωστος ανιχνευτής ιών: ''$1''",
@@ -816,6 +819,7 @@ $2',
 'emailconfirmlink' => 'Επαληθεύστε την ηλεκτρονική σας διεύθυνση',
 'invalidemailaddress' => 'Η ηλεκτρονική διεύθυνση δεν μπορεί να γίνει δεκτή γιατί ενδεχομένως δεν έχει έγκυρη μορφή. Παρακαλούμε συμπληρώστε μια σωστά διαμορφωμένη διεύθυνση ή αφήστε το πεδίο κενό.',
 'cannotchangeemail' => "Οι διευθύνσεις ηλεκτρονικού ταχυδρομείου του λογαριασμού δεν μπορούν να αλλάξουν σ' αυτό το wiki.",
+'emaildisabled' => 'Αυτός ο ιστότοπος  δεν μπορεί να στείλει μηνύματα ηλεκτρονικού ταχυδρομείου.',
 'accountcreated' => 'Ο λογαριασμός δημιουργήθηκε',
 'accountcreatedtext' => 'Ο λογαριασμός χρήστη για τον/την $1 έχει δημιουργηθεί.',
 'createaccount-title' => 'Δημιουργία λογαριασμού για {{SITENAME}}',
@@ -1000,7 +1004,9 @@ $2
 'userinvalidcssjstitle' => "'''Προσοχή:''' Δεν υπάρχει skin με τίτλο \"\$1\". Θυμηθείτε οι προσαρμοσμένες σελίδες .css και .js χρησιμοποιούν έναν τίτλο με μικρά γράμματα, π.χ. {{ns:user}}:Foo/vector.css σε αντίθεση με το {{ns:user}}:Foo/Vector.css.",
 'updated' => '(Ενημερώθηκε)',
 'note' => "'''Προσοχή: '''",
-'previewnote' => "'''Σας υπενθυμίζουμε ότι βλέπετε μόνον την προεπισκόπηση -δεν έχετε ακόμα αποθηκεύσει τις αλλαγές σας!'''",
+'previewnote' => "'''Να θυμάστε ότι αυτή είναι μόνο μια προεπισκόπηση.'''
+Οι αλλαγές σας δεν έχουν ακόμη αποθηκευτεί!",
+'continue-editing' => 'Συνέχεια επεξεργασίας',
 'previewconflict' => 'Αυτή η προεπισκόπηση απεικονίζει το κείμενο στην επάνω περιοχή επεξεργασίας κειμένου, όπως θα εμφανιστεί εάν επιλέξετε να το αποθηκεύσετε.',
 'session_fail_preview' => "'''Συγγνώμη! Δεν μπορούσαμε να διεκπεραιώσουμε την επεξεργασία σας λόγω απώλειας των δεδομένων της συνεδρίας.
 Παρακαλώ προσπαθήστε ξανά. Αν δεν δουλεύει ξανά, δοκιμάστε να αποσυνδεθείτε και να συνδεθείτε πάλι.'''",
@@ -1013,6 +1019,7 @@ $2
 Αυτό μερικές φορές συμβαίνει όταν χρησιμοποιείται ένας ανώνυμος διακομιστής μεσολάβησης διαθέσιμος μέσω του παγκόσμιου ιστού με σφάλματα.'''",
 'edit_form_incomplete' => "'''Ορισμένα τμήματα της φόρμας επεξεργασίας δεν έφθασαν στο διακομιστή. Ελέγξτε ότι οι αλλαγές σας είναι άθικτες και προσπαθήστε ξανά.'''",
 'editing' => 'Επεξεργασία $1',
+'creating' => 'Δημιουργία: $1',
 'editingsection' => 'Επεξεργασία $1 (τμήμα)',
 'editingcomment' => 'Επεξεργασία $1 (νέο τμήμα)',
 'editconflict' => 'Σύγκρουση επεξεργασίας: $1',
@@ -1078,6 +1085,7 @@ $2
 'edit-no-change' => 'Η επεξεργασία σας αγνοήθηκε, επειδή δεν έγινε καμία αλλαγή στο κείμενο.',
 'edit-already-exists' => 'Δεν ήταν εφικτό να δημιουργηθεί η νέα σελίδα.
 Υπάρχει ήδη.',
+'defaultmessagetext' => 'Προεπιλεγμένο κείμενο μηνύματος',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Προειδοποίηση: Αυτή η σελίδα περιέχει πάρα πολύ ακριβό αναλυτή λειτουργικών κλήσεων.
@@ -1234,7 +1242,7 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'Κατάλογος διαγραφών',
-'suppressionlogtext' => 'Παρακάτω βρίσκεται μία λίστα με τις διαγραφές και τις φραγές σχετικές με περιεχόμενο που έχει κρυφθεί από τους διαχειριστές.
+'suppressionlogtext' => 'Παρακάτω βρίσκεται μία λίστα με τις διαγραφές και τις φραγές σχετικό  με περιεχόμενο που έχει αποκρυβεί από τους διαχειριστές.
 Δείτε την [[Special:BlockList|λίστα φραγών IP]] για τις τρέχουσες λειτουργικές απαγορεύσεις και φραγές.',
 
 # History merging
@@ -1653,6 +1661,7 @@ $1",
 'newsectionsummary' => '/* $1 */ νέα ενότητα',
 'rc-enhanced-expand' => 'Εμφάνιση λεπτομερειών (απαιτείται JavaScript)',
 'rc-enhanced-hide' => 'Απόκρυψη λεπτομερειών',
+'rc-old-title' => 'αρχικά δημιουργήθηκε ως " $1 "',
 
 # Recent changes linked
 'recentchangeslinked' => 'Σχετικές αλλαγές',
@@ -1934,6 +1943,10 @@ $1',
 Παρακαλούμε δείτε τη [$2 σελίδα περιγραφής του αρχείου] για περισσότερες πληροφορίες.',
 'sharedupload-desc-here' => 'Το αρχείο είναι από το $1 και ενδέχεται να χρησιμοποιείται από άλλα εγχειρήματα.
 Η περιγραφή στη [$2 σελίδα περιγραφής αρχείου] εμφανίζεται παρακάτω.',
+'sharedupload-desc-edit' => 'Αυτό το αρχείο είναι από  $1  και μπορεί να χρησιμοποιείται από άλλα εγχειρήματα.
+Ίσως θέλετε να επεξεργαστείτε την περιγραφή του στην   [$2  σελίδα περιγραφής αρχείου] εκεί.',
+'sharedupload-desc-create' => 'Αυτό το αρχείο είναι από $1 και μπορεί να χρησιμοποιείται από άλλα εγχειρήματα.
+Ίσως θέλετε να επεξεργαστείτε την περιγραφή του στην [$2 σελίδα περιγραφής αρχείου] εκεί.',
 'filepage-nofile' => 'Κανένα αρχείο με αυτό το όνομα δεν υπάρχει',
 'filepage-nofile-link' => 'Δεν υπάρχει τέτοιο αρχείο, αλλἀ μπορείτε να [$1 το επιφορτώσετε].',
 'uploadnewversion-linktext' => 'Φορτώστε μια νέα έκδοση αυτού του αρχείου',
@@ -2139,6 +2152,10 @@ $1',
 'allpagesprefix' => 'Προβολή των σελίδων με πρόθεμα:',
 'allpagesbadtitle' => 'Ο δοσμένος τίτλος σελίδας ήταν άκυρος ή είχε ένα διαγλωσσικό ή δια-wiki πρόθεμα. Μπορεί να περιέχει έναν ή περισσότερους χαρακτήρες οι οποίοι δεν μπορούν να χρησιμοποιοθούν σε τίτλους.',
 'allpages-bad-ns' => 'Το {{SITENAME}} δεν έχει τον τομέα "$1".',
+'allpages-hide-redirects' => 'Απόκρυψη ανακατευθύνσεων',
+
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Προβολή τελευταίας.',
 
 # Special:Categories
 'categories' => 'Κατηγορίες',
@@ -2159,7 +2176,9 @@ $1',
 'linksearch-pat' => 'Μοτίβο αναζήτησης:',
 'linksearch-ns' => 'Περιοχή:',
 'linksearch-ok' => 'Αναζήτηση',
-'linksearch-text' => '',
+'linksearch-text' => 'Χαρακτήρες όπως "*.wikipedia.org" μπορούν να χρησιμοποιηθούν. 
+Χρειάζεται τουλάχιστον ένα domain ανώτατου επιπέδου, για παράδειγμα "*.org".<br />
+Υποστηριζόμενα πρωτόκολλα: <tt> $1 </tt> (μην προσθέτετε οποιαδήποτε από αυτές στην αναζήτησή σας).',
 'linksearch-line' => 'Η $1 συνδεδεμένη από την $2',
 'linksearch-error' => 'Λέξεις-μπαλαντέρ μπορεί να εμφανιστούν μόνο στην αρχή τού ονόματος ιστοτόπου (hostname).',
 
@@ -2380,6 +2399,7 @@ $UNWATCHURL
 'protect-title-notallowed' => 'Εμφάνιση επιπέδου προστασίας για την "$1"',
 'prot_1movedto2' => 'Η [[$1]] μετακινήθηκε στη θέση [[$2]]',
 'protect-badnamespace-title' => 'Μη-προστατευόμενη ομάδα σελίδων',
+'protect-badnamespace-text' => 'Οι  σελίδες σε αυτόν τον ονοματοχώρο δεν μπορούν να κλειδωθούν.',
 'protect-legend' => 'Επιβεβαίωση κλειδώματος',
 'protectcomment' => 'Αιτία:',
 'protectexpiry' => 'Λήξη',
@@ -2577,8 +2597,8 @@ $1',
 'ipb-confirm' => 'Επιβεβαίωση φραγής',
 'badipaddress' => 'Άκυρη διεύθυνση IP.',
 'blockipsuccesssub' => 'Η φραγή ολοκληρώθηκε επιτυχώς.',
-'blockipsuccesstext' => 'Η διεύθυνση [[Special:Contributions/$1|$1]] έχει υποστεί φραγή.<br />
\94είÏ\84ε Ï\84η [[Special:BlockList|λίÏ\83Ï\84α Î´Î¹ÎµÏ\85θÏ\8dνÏ\83εÏ\89ν IP Ï\80οÏ\85 Î­Ï\87οÏ\85ν Ï\85Ï\80οÏ\83Ï\84εί Ï\86Ï\81αγή]] Î³Î¹Î± Î½Î± Ï\84ο ÎµÏ\80ιβεβαιÏ\8eÏ\83εÏ\84ε.',
+'blockipsuccesstext' => '{{GENDER:$1|Ο|Η}} [[Special:Contributions/$1|$1]] έχει υποστεί φραγή.<br />
\94είÏ\84ε Ï\84ον [[Special:BlockList|καÏ\84άλογο Ï\86Ï\81αγÏ\8eν]] Î³Î¹Î± Î½Î± ÎµÏ\80οÏ\80Ï\84εÏ\8dÏ\83εÏ\84ε Ï\84ιÏ\82 Ï\86Ï\81αγέÏ\82.',
 'ipb-blockingself' => 'Είστε έτοιμος να επιβάλετε φραγή στον ευατό σας! Είστε σίγουροι ότι θέλετε να το κάνετε αυτό;',
 'ipb-confirmhideuser' => 'Είστε {{GENDER:|έτοιμος|έτοιμη}} να μπλοκάρετε ένα χρήστη με ενεργοποιημένη την "απόκρυψη χρήστη" . Αυτό θα καταστείλει το όνομα του χρήστη σε όλες τις λίστες και τις καταχωρήσεις ημερολογίου. Είστε {{GENDER:|σίγουρος|σίγουρη}} ότι θέλετε να το κάνετε αυτό;',
 'ipb-edit-dropdown' => 'Επεξεργασία λόγων φραγής',
@@ -2631,8 +2651,8 @@ $1',
 'blocklogentry' => 'O/H [[$1]] φράχθηκε με χρόνο λήξης $2 $3',
 'reblock-logentry' => 'άλλαξε τις ρυθμίσεις φραγής για τον/την [[$1]] με χρόνο λήξης $2 $3',
 'blocklogtext' => 'Αυτό είναι ένα αρχείο καταγραφής των ενεργειών φραγής και κατάργησης φραγής χρηστών.
-Δεν συμπεριλαμβάνονται οι διευθύνσεις IP που υπέστησαν αυτόματα φραγή.
-Δείτε τον [[Special:BlockList|κατάλογο φραγμένων διευθύνσεων IP]] για τη λίστα των τρεχόντων ενεργών αποκλεισμών και φραγών.',
+Δεν συμπεριλαμβάνονται οι διευθύνσεις IP που υπέστησαν φραγή αυτόματα.
+Δείτε τον [[Special:BlockList|κατάλογο φραγών]] για τη λίστα των τρεχόντων ενεργών αποκλεισμών και φραγών.',
 'unblocklogentry' => 'Άρση φραγής του "$1"',
 'block-log-flags-anononly' => 'μόνο ανώνυμοι χρήστες',
 'block-log-flags-nocreate' => 'δημιουργία λογαριασμού απενεργοποιημένη',
@@ -2879,6 +2899,7 @@ $1',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|αναθεώρηση|αναθεωρήσεις}} από $2',
 
 # JavaScriptTest
+'javascripttest' => 'Δοκιμή JavaScript',
 'javascripttest-disabled' => 'Αυτή η λειτουργία έχει απενεργοποιηθεί.',
 
 # Tooltip help for the actions
@@ -2941,6 +2962,7 @@ $1',
 'tooltip-diff' => 'Προβολή των αλλαγών που κάνατε στο κείμενο.',
 'tooltip-compareselectedversions' => 'Εμφάνιση των διαφορών ανάμεσα στις δύο αναθεωρήσεις της σελίδας που έχετε επιλέξει.',
 'tooltip-watch' => 'Προσθήκη της σελίδας στη λίστα παρακολούθησης',
+'tooltip-watchlistedit-normal-submit' => 'Μετακίνηση τίτλων',
 'tooltip-watchlistedit-raw-submit' => 'Ενημέρωση λίστας παρακολούθησης',
 'tooltip-recreate' => 'Ξαναδημιούργησε τη σελίδα παρόλο που έχει διαγραφεί',
 'tooltip-upload' => 'Έναρξη φόρτωσης',
@@ -3661,6 +3683,9 @@ $5
 'watchlisttools-edit' => 'Δείτε και επεξεργαστείτε τη λίστα παρακολούθησης',
 'watchlisttools-raw' => 'Επεξεργαστείτε την πρωτογενή λίστα παρακολούθησης',
 
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|συζήτηση]])',
+
 # Core parser functions
 'unknown_extension_tag' => 'Άγνωστη ετικέτα επέκτασης "$1"',
 'duplicate-defaultsort' => 'Προσοχή: Το προκαθορισμένο κλειδί ταξινόμησης "$2" υπερκαλύπτει το προηγούμενο "$1".',
@@ -3693,6 +3718,7 @@ $5
 'version-software' => 'Εγκατεστημένο λογισμικό',
 'version-software-product' => 'Προϊόν',
 'version-software-version' => 'Έκδοση',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Διαδρομή αρχείου',
@@ -3797,12 +3823,21 @@ $5
 # New logging system
 'logentry-delete-delete' => 'Ο/η $1 διέγραψε τη σελίδα $3',
 'logentry-delete-restore' => 'Ο/η $1 αποκατέστησε τη σελίδα $3',
+'logentry-delete-event' => '$1 άλλαξε την ορατότητα σε  {{PLURAL:$5|ένα γεγονός καταγραφής|$5 log events}} στο  $3: $4',
 'revdelete-content-hid' => 'το περιεχόμενο αποκρύφθηκε',
 'revdelete-summary-hid' => 'Η σύνοψη επεξεργασίας αποκρύφθηκε',
 'revdelete-uname-hid' => 'Το όνομα χρήστη αποκρύφθηκε',
 'revdelete-restricted' => 'εφάρμοσε περιορισμούς στους sysops',
 'revdelete-unrestricted' => 'αφαίρεσε περιορισμούς στους sysops',
-'logentry-newusers-create' => '$1 δημιούργησε έναν λογαριασμό χρήστη',
+'logentry-move-move' => '{{GENDER:$1|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4',
+'logentry-move-move-noredirect' => '{{GENDER:$1|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 χωρίς να αφήσει ανακατεύθυνση',
+'logentry-move-move_redir' => '{{GENDER:$1|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 πάνω από την ανανακατεύθυνση',
+'logentry-move-move_redir-noredirect' => '{{GENDER:$1|Ο|Η}} $1 μετακίνησε την σελίδα $3 στην $4 πάνω από ανακατεύθυνση χωρίς να αφήσει ανακατεύθυνση',
+'logentry-patrol-patrol' => '{{GENDER:$1|Ο|Η}} $1 σήμανε την έκδοση $4 της σελίδας $3 ως ελεγμένη',
+'logentry-patrol-patrol-auto' => '{{GENDER:$1|Ο|Η}} $1 αυτόματα σήμανε την έκδοση $4 της σελίδας $3 ως ελεγμένη',
+'logentry-newusers-newusers' => '{{GENDER:$1|Ο|Η}} $1 δημιούργησε έναν λογαριασμό χρήστη',
+'logentry-newusers-create' => '{{GENDER:$1|Ο|Η}} $1 δημιούργησε έναν λογαριασμό χρήστη',
+'logentry-newusers-create2' => '{{GENDER:$1|Ο|Η}} $1 δημιούργησε τον λογαριασμό χρήστη $3',
 'logentry-newusers-autocreate' => 'Ο λογαριασμός $1 δημιουργήθηκε αυτόματα',
 'newuserlog-byemail' => 'ο κωδικός έχει σταλεί μέσω ηλεκτρονικού μηνύματος',
 
@@ -3817,6 +3852,7 @@ $5
 'feedback-error3' => 'Σφάλμα: Καμία απάντηση από το API',
 'feedback-thanks' => 'Ευχαριστούμε! Τα σχόλιά σας έχουν καταχωρηθεί στη σελίδα "[$2 $1]".',
 'feedback-close' => 'Ολοκληρώθηκε',
+'feedback-bugnew' => 'Έλεγξα. Αναφέρετε ένα νέο σφάλμα',
 
 # API errors
 'api-error-badaccess-groups' => 'Δεν επιτρέπεται να ανεβάσετε αρχεία σε αυτό το wiki.',
@@ -3856,4 +3892,15 @@ $5
 'api-error-uploaddisabled' => 'Η επιφόρτωση είναι απενεργοποιημένη σε αυτό το wiki.',
 'api-error-verification-error' => 'Αυτό το αρχείο μπορεί να είναι κατεστραμμένο, ή να έχει λανθασμένη επέκταση.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|δευτερόλεπτο|δευτερόλεπτα}}',
+'duration-minutes' => '$1 {{PLURAL:$1|λεπτό|λεπτά}}',
+'duration-hours' => '$1 {{PLURAL:$1|ώρα|ώρες}}',
+'duration-days' => '$1 {{PLURAL:$1|μέρα|μέρες}}',
+'duration-weeks' => '$1 {{PLURAL:$1|εβδομάδα|εβδομάδες}}',
+'duration-years' => '$1 {{PLURAL:$1|χρόνο|χρόνια}}',
+'duration-decades' => '$1 {{PLURAL:$1|δεκαετία|δεκαετίες}}',
+'duration-centuries' => '$1 {{PLURAL:$1|Αιώνα|αιώνες}}',
+'duration-millennia' => '$1 {{PLURAL:$1|Χιλιετία|Χιλιετίες}}',
+
 );
index 8921eb2..2b470aa 100644 (file)
@@ -989,7 +989,8 @@ La lasta protokolero estas jene montrata por via referenco:',
 Rememoru ke individuaj .css-aj kaj .js-aj paĝoj uzas minusklan titolon, ekz. {{ns:user}}:Foo/vector.css kontraŭe al {{ns:user}}:Foo/Vector.css.",
 'updated' => '(Ŝanĝo registrita)',
 'note' => "'''Noto:'''",
-'previewnote' => "'''Memoru, ke ĉi tio estas nur antaŭrigardo kaj ankoraŭ ne konservita!'''",
+'previewnote' => "'''Memoru, ke ĉi tio estas nur antaŭrigardo.''' 
+Viaj ŝanĝoj ne ankoraŭ estas konservitaj!",
 'previewconflict' => 'La jena antaŭrigardo montras la tekston el la supra tekstujo,
 kiel ĝi aperos se vi elektos konservi la paĝon.',
 'session_fail_preview' => "'''Ni ne povas procezi vian redakton pro perdo de seancaj datenoj.
@@ -1006,6 +1007,7 @@ La redakto estis malpermesita por preventi koruptado de la teksto de la paĝo.
 Ĉi tiel malofte okazas kiam vi uzas fuŝan TTT-an anoniman prokurilon.'''",
 'edit_form_incomplete' => "'''Kelkaj partoj de la redaktada formo ne atingis la servilon; rekontrolu ke via redakto estas ĝusta kaj reprovu.'''",
 'editing' => 'Redaktado de $1',
+'creating' => 'Kreado de $1',
 'editingsection' => 'Redaktante $1 (sekcion)',
 'editingcomment' => 'Redaktante $1 (nova sekcio)',
 'editconflict' => 'Redakta konflikto: $1',
index 9fceb11..a4bdfdc 100644 (file)
@@ -1121,6 +1121,10 @@ Ese o esos parámetros han sido omitidos.',
 'parser-template-loop-warning' => 'Detectado bucle de plantilla: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Se ha excedido el límite de recursión de plantillas ($1)',
 'language-converter-depth-warning' => 'El límite de profundidad del convertidor de idioma ha excedido ($1)',
+'node-count-exceeded-category' => 'Páginas donde se supera el número de nodos',
+'node-count-exceeded-warning' => 'Página que ha superado el número de nodos',
+'expansion-depth-exceeded-category' => 'Páginas donde se supera la profundidad de expansión',
+'expansion-depth-exceeded-warning' => 'Página que ha superado la profundidad de expansión',
 
 # "Undo" feature
 'undo-success' => 'La edición puede deshacerse. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así deshacer la edición.',
index aba7318..75f315f 100644 (file)
@@ -2225,7 +2225,7 @@ Lisätietoa yksittäisistä käyttäjäoikeuksista saattaa löytyä [[{{MediaWik
 'watchnochange' => 'Valittuna ajanjaksona yhtäkään tarkkailemistasi sivuista ei muokattu.',
 'watchlist-details' => 'Tarkkailulistalla on {{PLURAL:$1|$1 sivu|$1 sivua}} keskustelusivuja mukaan laskematta.',
 'wlheader-enotif' => '* Sähköposti-ilmoitukset ovat käytössä.',
-'wlheader-showupdated' => "* Sivut, joita on muokattu viimeisen käyntisi jälkeen on '''lihavoitu'''.",
+'wlheader-showupdated' => "* Sivut, joita on muokattu viimeisen käyntisi jälkeen, on '''lihavoitu'''.",
 'watchmethod-recent' => 'tarkistetaan tuoreimpia muutoksia tarkkailluille sivuille',
 'watchmethod-list' => 'tarkistetaan tarkkailtujen sivujen tuoreimmat muutokset',
 'watchlistcontains' => 'Tarkkailulistallasi on {{PLURAL:$1|yksi sivu|$1 sivua}}.',
index e9d6334..7a629cf 100644 (file)
@@ -1122,6 +1122,10 @@ Il devrait y avoir moins de $2 appel{{PLURAL:$2||s}}, alors qu’il y en a maint
 'parser-template-loop-warning' => 'Modèle en boucle détecté : [[$1]]',
 'parser-template-recursion-depth-warning' => 'Limite de profondeur des appels de modèles dépassée ($1)',
 'language-converter-depth-warning' => 'Limite de profondeur du convertisseur de langue dépassée ($1)',
+'node-count-exceeded-category' => 'Pages où nombre de nœuds est dépassé',
+'node-count-exceeded-warning' => 'Page dépassant le nombre de nœuds',
+'expansion-depth-exceeded-category' => "Pages où la profondeur d'expansion est dépassée",
+'expansion-depth-exceeded-warning' => "Page dépassant la profondeur d'expansion",
 
 # "Undo" feature
 'undo-success' => 'Cette modification va être défaite. Veuillez vérifier les modifications ci-dessous, puis publier si c’est bien ce que vous voulez faire.',
index 6a184c9..aa6f076 100644 (file)
@@ -1927,7 +1927,7 @@ Poida que queira editar a descrición da [$2 páxina de descrición do ficheiro]
 'filedelete-otherreason' => 'Outro motivo:',
 'filedelete-reason-otherlist' => 'Outro motivo',
 'filedelete-reason-dropdown' => '*Motivos frecuentes para borrar
-** Violación dos dereitos de autor
+** Violación dos dereitos de autoría
 ** Ficheiro duplicado',
 'filedelete-edit-reasonlist' => 'Editar os motivos de borrado',
 'filedelete-maintenance' => 'Os borrados e restauracións de ficheiros están desactivados temporalmente durante o mantemento.',
@@ -2315,8 +2315,8 @@ No $2 pode ver unha lista cos borrados máis recentes.',
 'deleteotherreason' => 'Outro motivo:',
 'deletereasonotherlist' => 'Outro motivo',
 'deletereason-dropdown' => '*Motivos frecuentes para borrar
-** Solicitado polo autor
-** Violación dos dereitos de autor
+** Solicitado pola persoa que o creou
+** Violación dos dereitos de autoría
 ** Vandalismo',
 'delete-edit-reasonlist' => 'Editar os motivos de borrado',
 'delete-toobig' => 'Esta páxina conta cun historial longo, de máis {{PLURAL:$1|dunha revisión|de $1 revisións}}.
@@ -3724,6 +3724,8 @@ Debería recibir [{{SERVER}}{{SCRIPTPATH}}/COPYING unha copia da licenza públic
 'version-entrypoints' => 'Enderezos URL de punto de entrada',
 'version-entrypoints-header-entrypoint' => 'Punto de entrada',
 'version-entrypoints-header-url' => 'URL',
+'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Ruta do artigo]',
+'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Ruta da escritura]',
 
 # Special:FilePath
 'filepath' => 'Ruta do ficheiro',
index 9ce0b51..e501b7a 100644 (file)
@@ -1135,6 +1135,10 @@ $2
 'parser-template-loop-warning' => 'נמצאה תבנית הקוראת לעצמה: [[$1]]',
 'parser-template-recursion-depth-warning' => 'עומק התבניות המוכללות זו בזו עבר את המגבלה ($1)',
 'language-converter-depth-warning' => 'עומק ממיר השפה עבר את המגבלה ($1)',
+'node-count-exceeded-category' => 'דפים שבהם מספר הצמתים גדול מדי',
+'node-count-exceeded-warning' => 'מספר הצמתים בדף גדול מדי',
+'expansion-depth-exceeded-category' => 'דפים שבהם עומק ההרחבה גדול מדי',
+'expansion-depth-exceeded-warning' => 'עומק ההרחבה בדף גדול מדי',
 
 # "Undo" feature
 'undo-success' => 'ניתן לבטל את העריכה. אנא בִדקו את השוואת הגרסאות למטה כדי לוודא שזה מה שאתם רוצים לעשות, ואז שמרו את השינויים למטה כדי לבצע את ביטול העריכה.',
index 5c2db62..da579c4 100644 (file)
@@ -783,6 +783,7 @@ $2
 ऐसा तब भी हो सकता है यदि आप कोई खराब वेब-आधारित अनामक प्रौक्सी प्रयोग कर रहे हों।",
 'edit_form_incomplete' => "'''सम्पादन फ़ॉर्म के कुछ भाग सर्वर तक नहीं पहुँच पाए; जाँच लें कि आपके द्वारा किये बदलाव अक्षुण्ण हैं, और सहेजने का पुनः यत्न करें।'''",
 'editing' => '$1 सम्पादन',
+'creating' => '$1 बनाएँ',
 'editingsection' => '$1 सम्पादन (अनुभाग)',
 'editingcomment' => '$1 सम्पादन (नया अनुभाग)',
 'editconflict' => 'संपादन अंतर्विरोध: $1',
@@ -852,9 +853,9 @@ $2
 यह पहले से मौजूद है।',
 
 # Parser/template warnings
-'expensive-parserfunction-warning' => "'''à¤\9aà¥\87तावनà¥\80:''' à¤\87स à¤ªà¥\83षà¥\8dठ à¤ªà¤° à¤¬à¤¹à¥\81त à¤\85धिà¤\95 à¤¸à¤\82à¤\96à¥\8dया à¤®à¥\87à¤\82 à¤\95à¥\80मतà¥\80 à¤ªà¤¾à¤°à¥\8dसर à¥\9eंक्शनों का प्रयोग किया गया है।
+'expensive-parserfunction-warning' => "'''à¤\9aà¥\87तावनà¥\80:''' à¤\87स à¤ªà¥\83षà¥\8dठ à¤ªà¤° à¤¬à¤¹à¥\81त à¤\85धिà¤\95 à¤¸à¤\82à¤\96à¥\8dया à¤®à¥\87à¤\82 à¤\95à¥\80मतà¥\80 à¤ªà¤¾à¤°à¥\8dसर à¤«à¤¼ंक्शनों का प्रयोग किया गया है।
 
-इनका प्रयोग $2 से कम बार होना चाहिये, इस समय प्रयोग $1 बार है।",
+इनका प्रयोग $2 से कम बार होना चाहिये, इस समय प्रयोग $1 बार {{PLURAL:$2|है|हैं}}।",
 'expensive-parserfunction-category' => 'कीमती पार्सर फ़ंक्शनों का अत्यधिक प्रयोग कर रहे पृष्ठ',
 'post-expand-template-inclusion-warning' => "'''चेतावनी:''' साँचे जुड़ने की सीमा पार हो चुकी है।
 कुछ साँचे नहीं जुड़ेंगे।",
@@ -1009,7 +1010,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'छुपाने की लॉग',
-'suppressionlogtext' => 'नीचे प्रबंधकों से छुपाये गए ब्लॉक और हटाये गये पृष्ठों की सूची है। मौजूदा ब्लॉक एवं बैन देखने के लिये [[Special:BlockList|आइ॰पी ब्लॉक सूची]] देखें।',
+'suppressionlogtext' => 'नीचे प्रबंधकों से छुपाये गए ब्लॉक और हटाये गये पृष्ठों की सूची है।
+मौजूदा ब्लॉक एवं बैन देखने के लिये [[Special:BlockList|ब्लॉक सूची]] देखें।',
 
 # History merging
 'mergehistory' => 'पृष्ठ के इतिहास एकत्रित करें',
@@ -2071,10 +2073,10 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 'watchnologin' => 'लॉग इन नहीं किया है',
 'watchnologintext' => 'ध्यानसूची में बदलाव के लिये [[Special:UserLogin|लॉग इन]] करना आवश्यक है।',
 'addwatch' => 'ध्यानसूची में जोड़ें',
-'addedwatchtext' => 'आपकी [[Special:Watchlist|ध्यानसूची]] में "<nowiki>$1</nowiki>" का समावेश कर दिया गया है।
-भविष्य में इस पृष्ठ तथा इस पृष्ठ की वार्ता में होने वाले बदलाव आपकी ध्यानसूची में दिखेंगे तथा [[Special:RecentChanges|हाल में हुए बदलावों की सूची]] में यह पृष्ठ बोल्ड दिखेगा ताकि आप आसानी से इसका ध्यान रख सकें।
+'addedwatchtext' => 'आपकी [[Special:Watchlist|ध्यानसूची]] में "[[:$1]]" पृष्ठ का समावेश कर दिया गया है।
+भविष्य में इस पृष्ठ तथा इसके वार्ता पृष्ठ में होने वाले बदलाव आपकी ध्यानसूची में दिखेंगे तथा [[Special:RecentChanges|हाल में हुए बदलावों की सूची]] में यह पृष्ठ बोल्ड दिखेगा ताकि आप आसानी से इसका ध्यान रख सकें।
 
-<p>अगर आपको इस पृष्ठ को अपनी ध्यानसूची से निकालना हो तो "ध्यान हटायें" पर क्लिक करें।',
+अगर आपको इस पृष्ठ को अपनी ध्यानसूची से निकालना हो तो "ध्यान हटायें" पर क्लिक करें।',
 'removewatch' => 'ध्यानसूची से हटाएँ',
 'removedwatchtext' => '"[[:$1]]" नामक पृष्ठ को आपकी [[Special:Watchlist|ध्यानसूची]] से हटा दिया गया है।',
 'watch' => 'ध्यान रखें',
@@ -2330,7 +2332,7 @@ $1',
 
 # Contributions
 'contributions' => 'सदस्य योगदान',
-'contributions-title' => '$1 à¤\95à¥\87 à¤²à¤¿à¤\8f à¤¸à¤¦à¤¸à¥\8dयà¥\8bà¤\82 à¤\95à¥\87 à¤¯à¥\8bà¤\97दान',
+'contributions-title' => '$1 के योगदान',
 'mycontris' => 'मेरा योगदान',
 'contribsub2' => '$1 के लिये ($2)',
 'nocontribs' => 'इन कसौटियों से मिलनेवाले बदलाव मिले नहीं।',
@@ -2364,7 +2366,7 @@ $1',
 'nolinkshere-ns' => "चुने हुए नामस्थानसे '''[[:$1]]''' को जुडने वाले पृष्ठ नहीं हैं।",
 'isredirect' => 'पुनर्निर्देशन पृष्ठ',
 'istemplate' => 'मिलाईयें',
-'isimage' => 'सà¤\82à¤\9aिà¤\95ा à¤\95ि à¤\95ड़à¥\80',
+'isimage' => 'फ़ाà¤\87ल à¤ªà¥\8dरयà¥\8bà¤\97',
 'whatlinkshere-prev' => '{{PLURAL:$1|पिछला|पिछले $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|अगला|अगले $1}}',
 'whatlinkshere-links' => '← कड़ियाँ',
@@ -2634,6 +2636,7 @@ $1 को बाध्य करने का कारण है: "$2"',
 पृष्ठों को निर्यात करने के लिए, नीचे विषय वस्तु संदूक में शीर्षक प्रवेश करें, एक शीर्षक प्रति पंक्ति, और चुने कि आप वर्त्तमान अवतरण के साथ पुराने अवतरण भी चाहते हैं कि नहीं, या पिछले संपादन के बारे में जानकारी के साथ केवल वर्त्तमान अवतरण चाहते हैं।
 
 बाद वाली स्थिति के लिए आप एक सम्पर्क भी प्रयोग कर सकते हैं, उदाहरण के लिए, "[[{{MediaWiki:Mainpage}}]]" पृष्ठ के लिए [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।',
+'exportall' => 'सभी पृष्ठ निर्यात करें',
 'exportcuronly' => 'पूरा इतिहास नहीं चाहियें, सिर्फ अभी का अवतरण अंतर्भूत करें',
 'exportnohistory' => "----
 '''सूचना:''' इस फॉर्म का इस्तेमाल कर पृष्ठका पूरा इतिहास निर्यात करना परफॉर्मेन्स के चलते रोक दिया गया हैं।",
@@ -3557,6 +3560,7 @@ $5
 'version-software' => 'इन्स्टॉल की हुई प्रणाली',
 'version-software-product' => 'प्रोडक्ट',
 'version-software-version' => 'अवतरण',
+'version-entrypoints-header-url' => 'यू॰आर॰एल',
 
 # Special:FilePath
 'filepath' => 'सञ्चिका पथ',
@@ -3687,7 +3691,7 @@ $5
 'logentry-newusers-newusers' => '$1 created उपयोगकर्ता के खाता',
 'logentry-newusers-create' => '$1 created उपयोगकर्ता के खाता',
 'logentry-newusers-create2' => '$1 created a user account $3',
-'logentry-newusers-autocreate' => 'à¤\96ातà¥\87 $1 à¤¥à¤¾ created à¤¸à¥\8dवà¤\9aालित à¤°à¥\82प à¤¸à¥\87',
+'logentry-newusers-autocreate' => 'à¤\96ातà¥\87 $1 à¤¸à¥\8dवà¤\9aालित à¤°à¥\82प à¤¸à¥\87 à¤¬à¤¨à¤¾à¤¯à¤¾ à¤\97या',
 'newuserlog-byemail' => 'कूटशब्द इ-मेल द्वारा भेजा गया हैं',
 
 # Feedback
@@ -3744,4 +3748,15 @@ $5
 'api-error-uploaddisabled' => 'इस विकि पर अपलोड अक्षम है.',
 'api-error-verification-error' => 'यह फ़ाइल दूषित हो सकती है, या गलत एक्सटेंशन है।',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|सॅकेंड}}',
+'duration-minutes' => '$1 {{PLURAL:$1|मिनट}}',
+'duration-hours' => '$1 {{PLURAL:$1|घंटा|घंटे}}',
+'duration-days' => '$1 {{PLURAL:$1|दिन}}',
+'duration-weeks' => '$1 {{PLURAL:$1|सप्ताह}}',
+'duration-years' => '$1 {{PLURAL:$1|वर्ष}}',
+'duration-decades' => '$1 {{PLURAL:$1|दशक}}',
+'duration-centuries' => '$1 {{PLURAL:$1|शताब्दी}}',
+'duration-millennia' => '$1 {{PLURAL:$1|सहस्राब्दी}}',
+
 );
index 8bc8040..312aa1e 100644 (file)
@@ -896,6 +896,10 @@ Dyrbjała mjenje hač $2 {{PLURAL:$2|wołanje|wołanjej|wołanja|wołanjow}} mě
 'parser-template-loop-warning' => 'Předłohowa sekla wotkryta: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Limit za rekursijnu hłubokosć předłohi překročeny ($1)',
 'language-converter-depth-warning' => 'Limit hłubokosće rěčneho konwertera překročena ($1)',
+'node-count-exceeded-category' => 'Strony, hdźež ličba sukow je překročena',
+'node-count-exceeded-warning' => 'Strona je ličbu sukow překročiła',
+'expansion-depth-exceeded-category' => 'Strony, hdźež ekspansiska hłubokosć je překročena',
+'expansion-depth-exceeded-warning' => 'Strona je ekspansisku hłubokosć překročił',
 
 # "Undo" feature
 'undo-success' => 'Wersija je so wuspěšnje wotstroniła. Prošu přepruwuj deleka w přirunanskim napohledźe, hač twoja změna bu přewzata a klikń potom na „Składować”, zo by změnu składował.',
index a0ff026..79afc4a 100644 (file)
@@ -943,6 +943,10 @@ Iste parametros ha essite omittite.",
 'parser-template-loop-warning' => 'Recursion infinite detegite in patrono: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Limite de recursion del patrono excedite ($1)',
 'language-converter-depth-warning' => 'Limite de profunditate del conversor de lingua excedite ($1)',
+'node-count-exceeded-category' => 'Paginas in que le numero de nodos excede le limite',
+'node-count-exceeded-warning' => 'Le numero de nodos in iste pagina excede le limite',
+'expansion-depth-exceeded-category' => 'Paginas in que le profunditate de expansion excede le limite',
+'expansion-depth-exceeded-warning' => 'Le profunditate de expansion in iste pagina excede le limite',
 
 # "Undo" feature
 'undo-success' => 'Le modification pote esser disfacite.
index a61bf30..de93a0d 100644 (file)
@@ -924,6 +924,7 @@ Ef þetta leysir ekki vandamálið, reyndu að [[Special:UserLogout|skrá þig 
 Þetta getur gerst þegar þú notar bilaðan vafra eða ónafngreinda vefsels þjónustu.",
 'edit_form_incomplete' => "'''Sumir hlutar breytingarinnar bárust ekki til vefþjónsins; athugaðu hvort breytingin þín er óbreytt og reyndu aftur.'''",
 'editing' => 'Breyti $1',
+'creating' => 'Skapa $1',
 'editingsection' => 'Breyti $1 (hluta)',
 'editingcomment' => 'Breyti $1 (nýr hluti)',
 'editconflict' => 'Breytingaárekstur: $1',
@@ -3313,7 +3314,7 @@ Póstþjónninn skilaði: $1',
 'confirmemail_success' => 'Netfang þitt hefur verið staðfest. Þú getur nú [[Special:UserLogin|skráð þig inn]] og vafrað um wiki-kerfið.',
 'confirmemail_loggedin' => 'Netfang þitt hefur verið staðfest.',
 'confirmemail_error' => 'Eitthvað fór úrskeiðis við vistun staðfestingarinnar.',
-'confirmemail_subject' => '{{SITENAME}} netfangs-staðfesting',
+'confirmemail_subject' => 'Staðfesting netfangs á {{SITENAME}}',
 'confirmemail_body' => 'Einhver, sennilega þú, með vistfangið $1 hefur skráð sig á {{SITENAME}} undir notandanafninu „$2“ og gefið upp þetta netfang.
 
 Til að staðfesta að það hafi verið þú sem skráðir þig undir þessu nafni, og til þess að virkja póstsendingar í gegnum {{SITENAME}}, skaltu opna þennan tengil í vafranum þínum:
index eeec5f1..0fccb1d 100644 (file)
@@ -1134,7 +1134,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'sectioneditnotsupported-text' => 'このページでは節単位編集はサポートされません。',
 'permissionserrors' => '認証エラー',
 'permissionserrorstext' => 'あなたにはこの操作を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
-'permissionserrorstext-withaction' => 'あなたには$2を行う権限がありません。{{PLURAL:$1|理由}}は以下の通りです:',
+'permissionserrorstext-withaction' => 'あなたには「$2」を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
 'recreate-moveddeleted-warn' => "'''警告:以前削除されたページを再作成しようとしています。'''
 
 このページの編集を続行するのが適切かどうか確認してください。
@@ -1164,11 +1164,15 @@ IP アドレスは複数の利用者で共有されている場合がありま
 これらの値は省略されました。",
 'post-expand-template-argument-category' => '省略されたテンプレート引数を含むページ',
 'parser-template-loop-warning' => 'テンプレートのループが検出されました:[[$1]]',
-'parser-template-recursion-depth-warning' => 'テンプレートの再帰深さ($1)が上限値を超えました',
-'language-converter-depth-warning' => '言語変換機能が深度制限($1)を超えました',
+'parser-template-recursion-depth-warning' => 'テンプレートの再帰の深さ($1)が上限を超えました',
+'language-converter-depth-warning' => '言語変換機能の深さ($1)が制限を超えました',
+'node-count-exceeded-category' => 'ノード数が制限を超えたページ',
+'node-count-exceeded-warning' => 'ページがノード数の制限を超えました',
+'expansion-depth-exceeded-category' => '展開の深さ制限を超えたページ',
+'expansion-depth-exceeded-warning' => 'ページが展開の深さ制限を超えました',
 
 # "Undo" feature
-'undo-success' => 'ã\81\93ã\81®ç·¨é\9b\86ã\82\92å\8f\96ã\82\8aæ¶\88ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dます。
+'undo-success' => 'ã\81\93ã\81®ç·¨é\9b\86ã\82\92å\8f\96ã\82\8aæ¶\88ã\81\9bます。
 下記の差分を確認し、本当に取り消すべきだと確認してから、変更を保存して取り消しを完了してください。',
 'undo-failure' => '中間の版での編集と競合したため、取り消せませんでした。',
 'undo-norev' => '取り消そうとした編集が存在しないか削除済みのため取り消せませんでした。',
@@ -1195,7 +1199,7 @@ $3が示した理由は ''$2'' です。",
 'last' => '前',
 'page_first' => '先頭',
 'page_last' => '末尾',
-'histlegend' => "差分の選択:比較したい版のラジオボタンを選択し、エンターキーを押すか、下部のボタンを押します。<br />
+'histlegend' => "差分の選択:比較したい版のラジオボタンを選択し、Enterキーを押すか、下部のボタンを押します。<br />
 凡例:'''({{int:cur}})'''=最新版との比較、'''({{int:last}})'''=直前の版との比較、'''{{int:minoreditletter}}'''=細部の編集",
 'history-fieldset-title' => '履歴の閲覧',
 'history-show-deleted' => '削除済みのみ',
@@ -1428,7 +1432,7 @@ $1",
 'qbsettings-fixedright' => '右端',
 'qbsettings-floatingleft' => 'ウィンドウの左上に固定',
 'qbsettings-floatingright' => 'ウィンドウの右上に固定',
-'qbsettings-directionality' => 'あなたの言語のスクリプトの方向に応じて固定',
+'qbsettings-directionality' => 'あなたの言語の文字体系の書字方向に応じて固定',
 
 # Preferences page
 'preferences' => '個人設定',
@@ -1600,38 +1604,38 @@ HTMLタグを見直してください。',
 # Rights
 'right-read' => 'ページを閲覧',
 'right-edit' => 'ページを編集',
-'right-createpage' => '(議論ページ以外の)ページを作成',
+'right-createpage' => 'ページ(議論ページ以外)を作成',
 'right-createtalk' => '議論ページを作成',
 'right-createaccount' => '新しい利用者アカウントを作成',
 'right-minoredit' => '細部の編集の印を付ける',
 'right-move' => 'ページの移動',
 'right-move-subpages' => '下位ページを含めてページを移動',
-'right-move-rootuserpages' => 'å\88©ç\94¨è\80\85ã\83\9aã\83¼ã\82¸æ\9c¬ä½\93ã\81®移動',
+'right-move-rootuserpages' => 'å\88©ç\94¨è\80\85ã\83\9aã\83¼ã\82¸æ\9c¬ä½\93ã\82\92移動',
 'right-movefile' => 'ファイルの移動',
 'right-suppressredirect' => 'ページの移動の際に元のページ名からのリダイレクトを作成しない',
-'right-upload' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\81®アップロード',
-'right-reupload' => '存在するファイルの上書き',
-'right-reupload-own' => '自らがアップロードした存在するファイルの上書き',
+'right-upload' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\82\92アップロード',
+'right-reupload' => '既存のファイルに上書き',
+'right-reupload-own' => '自分がアップロードした既存のファイルに上書き',
 'right-reupload-shared' => '共有メディアリポジトリ上のファイルのローカルでの上書き',
-'right-upload_by_url' => 'URLã\81\8bã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®アップロード',
+'right-upload_by_url' => 'URLã\81\8bã\82\89ã\83\95ã\82¡ã\82¤ã\83«ã\82\92アップロード',
 'right-purge' => '確認を省略してサイトのキャッシュを破棄',
 'right-autoconfirmed' => '半保護されたページを編集',
-'right-bot' => '自動処理として認識',
+'right-bot' => '自動処理と認識させる',
 'right-nominornewtalk' => '議論ページへ細部の編集をしたときに、新しいメッセージのお知らせを表示しない',
 'right-apihighlimits' => 'API要求でより高い制限値の使用',
 'right-writeapi' => '書き込みAPIの使用',
 'right-delete' => 'ページの削除',
-'right-bigdelete' => '大ã\81\8dã\81ªå±¥æ­´ã\81®ã\81\82ã\82\8bã\83\9aã\83¼ã\82¸ã\81®削除',
+'right-bigdelete' => '大ã\81\8dã\81ªå±¥æ­´ã\81\8cã\81\82ã\82\8bã\83\9aã\83¼ã\82¸ã\82\92削除',
 'right-deleterevision' => 'ページの特定の版の削除と復帰',
-'right-deletedhistory' => '関連する本文を除く、削除された履歴項目の閲覧',
-'right-deletedtext' => 'å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fæ\9c¬æ\96\87ã\81¨å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fç\89\88é\96\93ã\81®å·®å\88\86ã\81®閲覧',
-'right-browsearchive' => 'å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\83\9aã\83¼ã\82¸ã\81®検索',
+'right-deletedhistory' => '削除された履歴項目(関連する本文を除く)を閲覧',
+'right-deletedtext' => 'å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fæ\9c¬æ\96\87ã\81¨å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fç\89\88é\96\93ã\81®å·®å\88\86ã\82\92閲覧',
+'right-browsearchive' => 'å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\83\9aã\83¼ã\82¸ã\82\92検索',
 'right-undelete' => 'ページの復帰',
 'right-suppressrevision' => '管理者から隠された版の確認と復元',
-'right-suppressionlog' => 'é\9d\9eå\85¬é\96\8bè¨\98é\8c²ã\81®閲覧',
+'right-suppressionlog' => 'é\9d\9eå\85¬é\96\8bè¨\98é\8c²ã\82\92閲覧',
 'right-block' => '他の利用者の編集をブロック',
 'right-blockemail' => '利用者のメール送信をブロック',
-'right-hideuser' => 'å\88©ç\94¨è\80\85å\90\8dã\83\96ã\83­ã\83\83ã\82¯ã\81\97ã\80\81公開記録から隠す',
+'right-hideuser' => 'å\88©ç\94¨è\80\85å\90\8dã\82\92ã\83\96ã\83­ã\83\83ã\82¯ã\81\97ã\81¦公開記録から隠す',
 'right-ipblock-exempt' => 'IPブロック、自動ブロック、広域ブロックを回避',
 'right-proxyunbannable' => 'プロキシの自動ブロックを回避',
 'right-unblockself' => '自分自身に対するブロックを解除',
@@ -1645,18 +1649,18 @@ HTMLタグを見直してください。',
 'right-markbotedits' => '巻き戻しをボットの編集として扱う',
 'right-noratelimit' => '速度制限を受けない',
 'right-import' => '他のウィキからのページ取り込み',
-'right-importupload' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81\8bã\82\89ã\81®ã\83\9aã\83¼ã\82¸ã\81®取り込み',
+'right-importupload' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81«ã\82\88ã\82\8bã\83\9aã\83¼ã\82¸取り込み',
 'right-patrol' => '他人の編集を巡回済みにする',
 'right-autopatrol' => '自分の編集を自動的に巡回済みにする',
 'right-patrolmarks' => '最近の更新で巡回済み印を閲覧',
-'right-unwatchedpages' => 'ã\82¦ã\82©ã\83\83ã\83\81ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\9aã\83¼ã\82¸ä¸\80覧ã\81®閲覧',
+'right-unwatchedpages' => 'ã\82¦ã\82©ã\83\83ã\83\81ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\9aã\83¼ã\82¸ä¸\80覧ã\82\92閲覧',
 'right-mergehistory' => 'ページ履歴の統合',
 'right-userrights' => '全利用者権限を編集',
 'right-userrights-interwiki' => '他のウィキの利用者の利用者権限を編集',
 'right-siteadmin' => 'データベースのロックおよびロック解除',
 'right-override-export-depth' => 'リンク先ページを5階層まで含めて書き出す',
 'right-sendemail' => '他の利用者にメールを送信',
-'right-passwordreset' => 'パスワード再設定メールを閲覧する',
+'right-passwordreset' => 'パスワード再設定メールを閲覧',
 
 # User rights log
 'rightslog' => '利用者権限変更記録',
@@ -1676,7 +1680,7 @@ HTMLタグを見直してください。',
 'action-move-subpages' => 'このページと下位ページの移動',
 'action-move-rootuserpages' => '利用者ページ本体の移動',
 'action-movefile' => 'このファイルの移動',
-'action-upload' => 'ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®アップロード',
+'action-upload' => 'ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92アップロード',
 'action-reupload' => 'この既存のファイルに上書き',
 'action-reupload-shared' => '共有リポジトリにあるこのファイルに上書き',
 'action-upload_by_url' => 'URLからこのファイルをアップロード',
@@ -1685,17 +1689,17 @@ HTMLタグを見直してください。',
 'action-deleterevision' => 'この版を削除',
 'action-deletedhistory' => 'このページの削除履歴を表示',
 'action-browsearchive' => '削除されたページの検索',
-'action-undelete' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®復帰',
+'action-undelete' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\82\92復帰',
 'action-suppressrevision' => '隠された版の確認と復元',
 'action-suppressionlog' => 'この非公開記録の表示',
 'action-block' => 'この利用者の編集をブロック',
 'action-protect' => 'このページの保護レベルを変更',
 'action-rollback' => '特定ページを最後に編集した利用者の編集を即時巻き戻し',
 'action-import' => 'このページを他のウィキから取り込む',
-'action-importupload' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81\8bã\82\89取り込む',
+'action-importupload' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81§ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«取り込む',
 'action-patrol' => '他の利用者の編集を巡回済みにする',
 'action-autopatrol' => '自身の編集を巡回済みにする',
-'action-unwatchedpages' => 'ã\82¦ã\82©ã\83\83ã\83\81ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\9aã\83¼ã\82¸ä¸\80覧ã\81®表示',
+'action-unwatchedpages' => 'ã\82¦ã\82©ã\83\83ã\83\81ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\9aã\83¼ã\82¸ä¸\80覧ã\82\92表示',
 'action-mergehistory' => 'このページの履歴を統合',
 'action-userrights' => '全利用者権限の変更',
 'action-userrights-interwiki' => '他のウィキ上の利用者の利用者権限変更',
@@ -3068,7 +3072,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'tooltip-pt-logout' => 'ログアウト',
 'tooltip-ca-talk' => '本文ページについての議論',
 'tooltip-ca-edit' => 'このページを編集できます。保存する前にプレビューボタンを使用してください。',
-'tooltip-ca-addsection' => '新しい節を開始する',
+'tooltip-ca-addsection' => '新しい節を開始',
 'tooltip-ca-viewsource' => 'このページは保護されています。
 ページのソースを閲覧できます。',
 'tooltip-ca-history' => 'このページの過去の版',
@@ -3110,7 +3114,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'tooltip-ca-nstab-template' => 'テンプレートを表示',
 'tooltip-ca-nstab-help' => 'ヘルプページを表示',
 'tooltip-ca-nstab-category' => 'カテゴリページを閲覧',
-'tooltip-minoredit' => 'ã\81\93ã\81®ç·¨é\9b\86ã\82\92ç´°é\83¨ã\81®å¤\89æ\9b´ã\81¨ã\83\9eã\83¼ã\82¯',
+'tooltip-minoredit' => 'ã\81\93ã\81®ç·¨é\9b\86ã\81«ç´°é\83¨ã\81®å¤\89æ\9b´ã\81®å\8d°ã\82\92ä»\98ã\81\91ã\82\8b',
 'tooltip-save' => '変更を保存',
 'tooltip-preview' => '変更をプレビューで確認できます。保存前に使用してください!',
 'tooltip-diff' => '文章への変更を表示',
@@ -3860,7 +3864,7 @@ $5
 'colon-separator' => ':',
 'pipe-separator' => '&#32;|&#32;',
 'word-separator' => '',
-'parentheses' => '($1)',
+'parentheses' => '($1)',
 
 # Multipage image navigation
 'imgmultipageprev' => '&larr;前ページ',
index d0a6f9b..5a47f41 100644 (file)
@@ -953,6 +953,7 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 'updated' => '(바뀜)',
 'note' => "'''주의:'''",
 'previewnote' => "'''이 화면은 미리 보기입니다'''. 편집한 내용은 아직 저장되지 않았습니다!",
+'continue-editing' => '계속 편집하기',
 'previewconflict' => '이 미리 보기는 저장할 때의 모습, 즉 위쪽 편집창의 문서를 반영합니다.',
 'session_fail_preview' => "'''세션 데이터가 없어져 편집을 저장하지 못했습니다.
 다시 시도해도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인해 보십시오.'''",
@@ -2128,6 +2129,10 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'allpages-bad-ns' => '{{SITENAME}}에서는 ‘$1’ 이름공간을 사용하지 않습니다.',
 'allpages-hide-redirects' => '넘겨주기 숨기기',
 
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => '지금 이 문서의 캐시된 버전을 보고 있습니다. 이 버전은 최대 $1만큼 지난 버전일 가능성이 있습니다.',
+'cachedspecial-refresh-now' => '최신 버전 보기.',
+
 # Special:Categories
 'categories' => '분류',
 'categoriespagetext' => '{{PLURAL:$1}}문서나 자료를 담고 있는 분류 목록입니다.
@@ -2561,7 +2566,8 @@ $1',
 'ipb-confirm' => '차단 확인',
 'badipaddress' => '잘못된 IP 주소',
 'blockipsuccesssub' => '차단 완료',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] 사용자가 차단되었습니다. 차단된 사용자 목록은 [[Special:BlockList|여기]]에서 볼 수 있습니다.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] 사용자가 차단되었습니다.<br />
+차단된 사용자 목록은 [[Special:BlockList|여기]]에서 볼 수 있습니다.',
 'ipb-blockingself' => '자기 자신을 차단하려고 합니다. 정말로 실행할까요?',
 'ipb-confirmhideuser' => '당신은 사용자를 차단하면서 "계정 숨기기" 설정을 선택했습니다. 이로써 모든 기록에서 이 사용자의 계정 이름을 숨기게 됩니다. 정말로 계정을 숨기시겠습니까?',
 'ipb-edit-dropdown' => '차단 이유 목록 편집하기',
index 1e757d4..295c678 100644 (file)
@@ -655,6 +655,7 @@ $2',
 Себеби: браузеригиз редактор терезеде пунктуация белгилени терс кёргюзеди, аны ючюн статьяны тексти бузулургъа боллукъду.
 Бу халатлары болгъан аноним веб-проксилени хайырландырылгъанлары ючюн болургъа боллукъду'''",
 'editing' => '«$1» бетни тюрлендириу',
+'creating' => '«$1» бетни къурау',
 'editingsection' => '«$1» бетде бёлюмню тюрлендириу',
 'editingcomment' => '«$1» бетни тюрлендириу (джангы бёлюм)',
 'editconflict' => 'Тюрлендириу конфликт: $1',
@@ -2170,6 +2171,7 @@ $1',
 'unblocked-id' => '$1 тыйылыу къоратылгъанды',
 'ipblocklist' => 'Блок этилиннген IP-адресле эм къошулуучуланы атлары',
 'ipblocklist-legend' => 'Тыйылгъан къошулуучуну аты',
+'blocklist-expiry' => 'Бошалыу датасы',
 'blocklist-reason' => 'Чурум',
 'ipblocklist-submit' => 'Таб',
 'ipblocklist-localblock' => 'Локал блокга салыу',
@@ -2505,6 +2507,8 @@ MediaWiki локализациясына юлюш къошаргъа излей
 'tooltip-diff' => 'Тюрлендириулеригизни кёрюгюз',
 'tooltip-compareselectedversions' => 'Бу бетни сайланнган эки версиясыны араларында башхалыкъларын кёр',
 'tooltip-watch' => 'Бу бетни кёзюгюзде тургъан тизмеге къош',
+'tooltip-watchlistedit-normal-submit' => 'Белгиленнген атланы кетер',
+'tooltip-watchlistedit-raw-submit' => 'Кёзде тургъан тизмени джангырт',
 'tooltip-recreate' => 'Кетерилгенина къарамай бетни ызына къайтар',
 'tooltip-upload' => 'Джюклеуню башла',
 'tooltip-rollback' => 'Бир басхан бла ахыр къошулуучуну тюрлендиргенин кетер',
@@ -2535,6 +2539,17 @@ MediaWiki локализациясына юлюш къошаргъа излей
 'spam_reverting' => '$1 бла джибериую болмагъан ахыр версиягъа къайтылады',
 'spam_blanking' => 'Бютеу версияла $1 бетге джибериу тутадыла, ариуланадыла',
 
+# Info page
+'pageinfo-title' => '«$1» бетни юсюнден информация',
+'pageinfo-header-edits' => 'Тюрлендириуле',
+'pageinfo-header-watchlist' => 'Кёзде тургъан тизме',
+'pageinfo-header-views' => 'Къараула',
+'pageinfo-subjectpage' => 'Бет',
+'pageinfo-talkpage' => 'Сюзюу бет',
+'pageinfo-watchers' => 'Кёргенлени саны',
+'pageinfo-edits' => 'Тюрлендириулени саны',
+'pageinfo-authors' => 'Авторланы саны',
+
 # Skin names
 'skinname-standard' => 'Стандарт',
 'skinname-nostalgia' => 'Ностальгия',
@@ -2589,6 +2604,8 @@ $1',
 'file-nohires' => 'Мындан ары ачыкъланнган версиясы джокъду',
 'svg-long-desc' => 'SVG файл, шартлы $1 × $2 пиксель, файлны ёлчеми: $3',
 'show-big-image' => 'Толу ачыкълау',
+'show-big-image-preview' => 'Ал къарауда уллулугъу: $1.',
+'show-big-image-size' => '$1 × $2 пиксель',
 'file-info-gif-looped' => 'тогъайланнганды',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|фрейм|фрейм}}',
 'file-info-png-looped' => 'тогъайланнганды',
@@ -2607,6 +2624,13 @@ $1',
 'bydate' => 'Хронологиягъа кёре',
 'sp-newimages-showfrom' => '$1, $2 замандан башлаб джангы файлланы кёргюз',
 
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL:$1|$1 секунд|$1 секунд}}',
+'minutes' => '{{PLURAL:$1|$1 минут|$1 минут}}',
+'hours' => '{{PLURAL:$1|$1 сагъат|$1 сагъат}}',
+'days' => '{{PLURAL:$1|$1 кюн|$1 кюн}}',
+'ago' => '$1 алгъа',
+
 # Bad image list
 'bad_image_list' => 'Формат былай болургъа керекди:
 
@@ -2619,7 +2643,7 @@ $1',
 'metadata-help' => 'Файл, кёбюсюне цифралы камерала бла, неда сканерле бла къошулгъан, къошакъ билгилени тутаргъа болады. Файл къуралгъанындан сора тюрлендирилген эсе, бир-бир параметрлери бусагъатдагъы суратына келишмезге болур.',
 'metadata-expand' => 'Дагъыда билгиле кёргюз',
 'metadata-collapse' => 'Къошакъ билгилени джашыр',
-'metadata-fields' => 'Ð\91Ñ\83 Ñ\81пиÑ\81окда ÐºÐµÐ»Ñ\82иÑ\80илинген Ð¼ÐµÑ\82аданнÑ\8bйлени Ñ\82изгинлеÑ\80и, Ñ\81Ñ\83Ñ\80аÑ\82нÑ\8b Ð±ÐµÑ\82инде Ñ\82Ñ\8bнгÑ\8bлаÑ\83 Ð±Ð»Ð° ÐºÑ\91Ñ\80гÑ\8eзÑ\82Ñ\8eлÑ\8eнлÑ\8eкдÑ\8eле, ÐºÑ\8aалгÑ\8aанла джашырылыныб боллукъдула.
+'metadata-fields' => 'Ð\91Ñ\83 Ñ\82измеде ÐºÐµÐ»Ñ\82иÑ\80илген Ñ\81Ñ\83Ñ\80аÑ\82 Ð¼ÐµÑ\82абилгилеи Ñ\82изгинлеÑ\80и, Ñ\81Ñ\83Ñ\80аÑ\82нÑ\8b Ð±ÐµÑ\82инде ÐºÑ\91Ñ\80гÑ\8eзÑ\8eллÑ\8eкдÑ\8eле, ÐºÑ\8aалгÑ\8aанла Ñ\82Ñ\8bнгÑ\8bлаÑ\83 Ð±ла джашырылыныб боллукъдула.
 * make
 * model
 * datetimeoriginal
@@ -2748,24 +2772,56 @@ $1',
 'exif-gpsareainformation' => 'GPS тёгерекни аты',
 'exif-gpsdatestamp' => 'GPS заман',
 'exif-gpsdifferential' => 'GPS дифференциялы тюзетиу',
+'exif-jpegfilecomment' => 'JPEG-файлны белгиси',
+'exif-keywords' => 'Ачхыч сёзле',
+'exif-countrydest' => 'Суратланнган кърал',
+'exif-provinceorstatedest' => 'Суратланнган провинция, территория неда штат',
+'exif-citydest' => 'Суратланнган шахар',
+'exif-objectname' => 'Къысха аты',
+'exif-specialinstructions' => 'Энчи ангылатыула',
 'exif-headline' => 'Башлыкъ',
+'exif-credit' => 'Суратны берген',
+'exif-source' => 'Къайнакъ',
+'exif-editstatus' => 'Суратны редакцион статусу',
 'exif-urgency' => 'Бу сагъатха магъаналылыгъы',
+'exif-fixtureidentifier' => 'Колонканы аты',
+'exif-locationdest' => 'Суратланнган джер',
+'exif-objectcycle' => 'Бу сурат ючюн сутканы кёзюую',
+'exif-contact' => 'Контактлы информация',
 'exif-writer' => 'Текстни автору',
 'exif-languagecode' => 'Тил',
 'exif-iimversion' => 'IIM версиясы',
 'exif-iimcategory' => 'Категория',
+'exif-iimsupplementalcategory' => 'Къошакъ категорияла',
 'exif-datetimeexpires' => 'Бу датадан сора хайырланмагъыз:',
 'exif-datetimereleased' => 'Чыкъгъан датасы:',
 'exif-identifier' => 'Идентификатор',
 'exif-lens' => 'Хайырланнган объектив',
+'exif-serialnumber' => 'Камераны сериялы номери',
 'exif-cameraownername' => 'Камераны иеси',
 'exif-label' => 'Белги',
+'exif-datetimemetadata' => 'Метабилгилени ахыр тюрлениулерини датасы',
+'exif-nickname' => 'Суратны, формализмли болмагъан аты',
 'exif-rating' => 'Багъа (5-ден)',
+'exif-rightscertificate' => 'Хакъланы джюрютюу сертификат',
+'exif-copyrighted' => 'Автор хакъланы статусу:',
+'exif-copyrightowner' => 'Автор хакъланы иеси',
+'exif-usageterms' => 'Хайырланыуну шартлары',
+'exif-pngfilecomment' => 'PNG-файлны белгиси',
 'exif-disclaimer' => 'Джууаблылыкъны унамау',
+'exif-contentwarning' => 'Ичиндегисини юсюнден эсгертиу',
+'exif-giffilecomment' => 'GIF-файлны белгиси',
 'exif-intellectualgenre' => 'Объектни типи',
+'exif-subjectnewscode' => 'Теманы коду',
+'exif-scenecode' => 'IPTC сахнаны коду',
+'exif-event' => 'Суратланнган болуу',
+'exif-organisationinimage' => 'Суратланнган организация',
+'exif-personinimage' => 'Суратланнган адам',
 
 # EXIF attributes
 'exif-compression-1' => 'Къысдырылмагъан',
+'exif-compression-3' => 'CCITT Group 3, факс кодлау',
+'exif-compression-4' => 'CCITT Group 4, факс кодлау',
 
 'exif-copyrighted-true' => 'Автор хакъла бла джакъланыбды',
 'exif-copyrighted-false' => 'Джамагъат мюлк',
@@ -2905,6 +2961,10 @@ $1',
 'exif-gpslongitude-e' => 'Кюнчыгъыш узунлукъ',
 'exif-gpslongitude-w' => 'Кюнбатыш узунлукъ',
 
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|метрге|метрге}} тенгизден мийик',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|метрге|метрге}} тенгизден алаша',
+
 'exif-gpsstatus-a' => 'Ёлчелеу бошалмагъанды',
 'exif-gpsstatus-v' => 'Ёлчелеу бошалгъанды',
 
@@ -2940,12 +3000,30 @@ $1',
 
 'exif-dc-contributor' => 'Автор нёгерле',
 'exif-dc-coverage' => 'Медианы кенгликле чеклери бла заман чеклери',
+'exif-dc-date' => 'Дата(ла)',
+'exif-dc-publisher' => 'Басмагъа чыгъаргъан',
+'exif-dc-relation' => 'Байламлы медиа',
+'exif-dc-rights' => 'Хакъла',
+'exif-dc-source' => 'Къайнакъ медиа',
+'exif-dc-type' => 'Медианы типи',
 
+'exif-rating-rejected' => 'Къабыл этилмеди',
+
+'exif-isospeedratings-overflow' => '65535-ден уллуду',
+
+'exif-iimcategory-ace' => 'Санат, культура эм кёз ачыу',
+'exif-iimcategory-clj' => 'Аманлыкъчылыкъ эм закон',
+'exif-iimcategory-dis' => 'Катастрофала эм аварияла',
+'exif-iimcategory-fin' => 'Экономика эм бизнес',
 'exif-iimcategory-edu' => 'Окъуу',
+'exif-iimcategory-evn' => 'Тёгерекдеги табийгъат',
 'exif-iimcategory-hth' => 'Саулукъ',
+'exif-iimcategory-hum' => 'Интересли хапарла',
 'exif-iimcategory-lab' => 'Урунуу',
+'exif-iimcategory-lif' => 'Джашау хал эм бош заман',
 'exif-iimcategory-pol' => 'Политика',
 'exif-iimcategory-rel' => 'Дин бла ийнам',
+'exif-iimcategory-sci' => 'Илму эм техника',
 'exif-iimcategory-soi' => 'Социал соруула',
 'exif-iimcategory-spo' => 'Спорт',
 'exif-iimcategory-war' => 'Къазауатла, конфликтле эмда къозгъалыула',
@@ -3035,6 +3113,10 @@ $5
 'confirm-purge-top' => 'Бу бетни кеши кетерилсинми?',
 'confirm-purge-bottom' => 'Бетни кеши кетерилгенден сора, андан сора келген версиясы кёргюзюллюкдю.',
 
+# action=watch/unwatch
+'confirm-watch-button' => 'ОК',
+'confirm-unwatch-button' => 'ОК',
+
 # Separators for various lists, etc.
 'semicolon-separator' => ';&#32;',
 'percent' => '$1%',
@@ -3192,6 +3274,7 @@ MediaWiki хайырлы боллукъду деген умут бла джай
 'version-software' => 'Салыннган программа баджарыу',
 'version-software-product' => 'Продукт',
 'version-software-version' => 'Версия',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Файлгъа джол',
@@ -3292,20 +3375,27 @@ MediaWiki хайырлы боллукъду деген умут бла джай
 'sqlite-no-fts' => '$1 толу текст излеуню хайырландыра билмеген',
 
 # New logging system
+'revdelete-content-hid' => 'ичиндегиси джашырылыбды',
 'revdelete-summary-hid' => 'тюрлендириуню ачыкълауу джашырылыбды',
+'revdelete-uname-hid' => 'къошулуучуну аты джашырылыбды',
 'revdelete-uname-unhid' => 'къошулуучуну аты ачылды',
 'revdelete-restricted' => 'администраторла ючюн этилген чеклениуле',
 'revdelete-unrestricted' => 'администратолра ючюн этилген чеклениуле къоратылгъандыла',
+'logentry-move-move' => '$1, $3 бетни атын $4 деб тюрлендирди',
 'logentry-patrol-patrol-auto' => '$1, $3 бетни $4 версиясын автомат халда тинтиб чыкъды',
 'newuserlog-byemail' => 'пароль электрон почта бла джиберилгенди',
 
 # Feedback
 'feedback-subject' => 'Тема:',
 'feedback-message' => 'Билдириу:',
+'feedback-cancel' => 'Ызына алыу',
 'feedback-submit' => 'Оюмунгу джибер',
+'feedback-error2' => 'Халат. Тюзетиу ётмеди',
+'feedback-close' => 'Тындырылды',
 
 # API errors
 'api-error-badtoken' => 'Ич халат: терс токен.',
+'api-error-duplicate-popup-title' => ' {{PLURAL:$1|Файлны|Файлны}} дубликаты',
 'api-error-empty-file' => 'Сиз ийген файлны ичи бошду.',
 'api-error-emptypage' => 'Ичи бош болгъан джангы бетле къураргъа болмайды.',
 'api-error-file-too-large' => 'Сиз ийген файл асыры уллуду.',
@@ -3315,7 +3405,10 @@ MediaWiki хайырлы боллукъду деген умут бла джай
 'api-error-illegal-filename' => 'Джарамагъан файл ат.',
 'api-error-invalid-file-key' => 'Ич халат: болджаллы асыраучу джерде файл  табылмады.',
 'api-error-mustbeposted' => 'Ич халат: соруу, HTTP POST инструкцияны излейди.',
+'api-error-ok-but-empty' => 'Ич халат: сервер джууаб бермейди.',
+'api-error-unclassified' => 'Белгили болмагъан халат чыкъды',
 'api-error-unknown-code' => 'Билинмеген халат: «$1».',
+'api-error-unknown-error' => 'Ич халат: файлны джюклерге излеген сагъатда не эсе да терс болду.',
 'api-error-unknown-warning' => 'Билинмеген билдириу: $1',
 'api-error-unknownerror' => 'Билинмеген халат: «$1».',
 'api-error-uploaddisabled' => 'Бу викиде файлла джюклеу амал джукъланыбды',
index abc6288..90dba2f 100644 (file)
@@ -107,7 +107,7 @@ $messages = array(
 'tog-previewonfirst' => 'Li cem guherandinê hertim yekemîn pêşdîtinê nîşan bide',
 'tog-nocache' => 'Vegirtina rûpelan bisekinîne',
 'tog-enotifwatchlistpages' => 'Heke rûpeleke ez dişopînim hate guhertin ji min re E-nameyekê bişîne',
-'tog-enotifusertalkpages' => 'Dema rûpela min a Guftûgoyê hate guhertin e-nameyekê ji min re bişîne',
+'tog-enotifusertalkpages' => 'Dema rûpela min a Gotûbêjê hate guhertin e-nameyekê ji min re bişîne',
 'tog-enotifminoredits' => 'Ji bo guhertinên biçûk jî E-nameyekê ji min re bişîne',
 'tog-enotifrevealaddr' => 'Navnîşana e-nameya min di agahdariyên e-nameyan de nîşan bide',
 'tog-shownumberswatching' => 'Nîşan bide, çiqas bikarhêner dişopînin',
@@ -212,7 +212,7 @@ $messages = array(
 'moredotdotdot' => 'Bêhtir...',
 'mypage' => 'Rûpela min',
 'mytalk' => 'Rûpela gotûbêja min',
-'anontalk' => 'Guftûgo ji bo vê IPê',
+'anontalk' => "Gotûbêj ji bo vê IP'ê",
 'navigation' => 'Navîgasyon',
 'and' => '&#32;û',
 
@@ -271,13 +271,13 @@ $messages = array(
 'unprotect' => 'Parastinê rake',
 'unprotectthispage' => 'Parastina vê rûpelê rake',
 'newpage' => 'Rûpela nû',
-'talkpage' => 'Vê rûpelê guftûgo bike',
+'talkpage' => 'Vê rûpelê gotûbêj bike',
 'talkpagelinktext' => 'Nîqaş',
 'specialpage' => 'Rûpela taybet',
 'personaltools' => 'Amûrên kesane',
 'postcomment' => 'Beşeke nû',
 'articlepage' => 'Li rûpela naverokê binêre',
-'talk' => 'Guftûgo',
+'talk' => 'Gotûbêj',
 'views' => 'Dîtin',
 'toolbox' => 'Qutiya amûran',
 'userpage' => 'Li rûpela vê/vî bikarhênerê/î binêre',
@@ -287,7 +287,7 @@ $messages = array(
 'templatepage' => 'Rûpela şablonê bibîne',
 'viewhelppage' => 'Rûpela alîkariyê bibîne',
 'categorypage' => 'Li rûpela kategoriyê binêre',
-'viewtalkpage' => 'Li guftûgoyê binêre',
+'viewtalkpage' => 'Li gotûbêjê binêre',
 'otherlanguages' => 'Zimanên din',
 'redirectedfrom' => '(ji $1 hate beralîkirin)',
 'redirectpagesub' => 'Rûpelê beralî bike',
@@ -624,7 +624,7 @@ Zanibe ku tu nikarî e-nameya bişînî heta tu di [[Special:Preferences|tercih
 'newarticletext' => "Ev rûpel hîn tune. Eger tu bixwazî vê rûpelê çêkî, dest bi nivîsandinê bike û piştre qeyd bike. '''Wêrek be''', biceribîne!<br />
 Ji bo alîkariyê binêre: [[{{MediaWiki:Helppage}}|Alîkarî]].<br />
 Heke tu bi şaşîtî hatî, bizîvire rûpela berê.",
-'anontalkpagetext' => "----''Ev rûpela guftûgo ye ji bo bikarhênerên nediyarkirî ku hîn hesabekî xwe çênekirine an jî bikarnaînin. Ji ber vê yekê divê em wan bi navnîşana IP ya hejmarî nîşan bikin. Navnîşaneke IP dikare ji aliyê gelek kesan ve were bikaranîn. Heger tu bikarhênerekî nediyarkirî bî û bawerdikî ku nirxandinên bê peywend di der barê te de hatine kirin ji kerema xwe re [[Special:UserLogin|hesabekî xwe veke an jî têkeve]] da ku tu xwe ji tevlîheviyên bi bikarhênerên din re biparêzî.''",
+'anontalkpagetext' => "----''Ev rûpela gotûbêjê ye ji bo bikarhênerên nediyarkirî ku hîn hesabekî xwe çênekirine an jî bikarnaînin. Ji ber vê yekê divê em wan bi navnîşana IP ya hejmarî nîşan bikin. Navnîşaneke IP dikare ji aliyê gelek kesan ve were bikaranîn. Heger tu bikarhênerekî nediyarkirî bî û bawerdikî ku nirxandinên bê peywend di der barê te de hatine kirin ji kerema xwe re [[Special:UserLogin|hesabekî xwe veke an jî têkeve]] da ku tu xwe ji tevlîheviyên bi bikarhênerên din re biparêzî.''",
 'noarticletext' => 'Ev rûpel niha vala ye, tu dikarî [[Special:Search/{{PAGENAME}}|Di nav gotarên din de li "{{PAGENAME}}" bigere]] an [{{fullurl:{{FULLPAGENAME}}|action=edit}} vê rûpelê biguherînî].',
 'noarticletext-nopermission' => 'Ev rûpel niha vala ye, tu dikarî [[Special:Search/{{PAGENAME}}|Di nav gotarên din de li "{{PAGENAME}}" bigere]] an [{{fullurl:{{FULLPAGENAME}}|action=edit}} vê rûpelê biguherînî].
 Ev rûpel niha vala ye, tu dikarî [[Special:Search/{{PAGENAME}}|Di nav gotarên din de li "{{PAGENAME}}" bigere]] an [{{fullurl:{{FULLPAGENAME}}|action=edit}} vê rûpelê biguherînî].',
@@ -686,7 +686,7 @@ Ew berê heye.',
 # "Undo" feature
 'undo-success' => 'Ev guherandina kane were şondakirin. Xêra xwe ferqê piştî tomarkirinê bibîne û seke, ku tu ew versîyona dixwazê û tomarbike. Eger te şaşbûnekî kir, xêra xwe derkeve.',
 'undo-failure' => 'Ev guherandina nikane were şondakirin ji ber ku guherandinên piştî wê.',
-'undo-summary' => 'Guhertoya $1 ya [[Special:Contributions/$2|$2]] ([[User talk:$2|guftûgo]]) şûnde kir',
+'undo-summary' => 'Guhertoya $1 ya [[Special:Contributions/$2|$2]] ([[User talk:$2|gotûbêj]]) şûnde kir',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Hesab nikarîbû were çêkirin',
@@ -984,7 +984,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'action-read' => 'Vê rûpelê bixwîne',
 'action-edit' => 'vê rûpelê biguherîne',
 'action-createpage' => 'rûpelan çêke',
-'action-createtalk' => 'rûpelên guftûgoyan çêke',
+'action-createtalk' => 'rûpelên gotûbêjan çêke',
 'action-createaccount' => "vê account'ê bikarhênerê çêke",
 'action-minoredit' => 'vê weke guhertineke biçûk nîşan bide',
 'action-move' => 'vê rûpelê bigerîne',
@@ -1362,7 +1362,7 @@ Li [[Special:WantedCategories|kategoriyên xwestî]] binêre.',
 'watchnologintext' => 'Ji bo xeyrandinê lîsteya te ya şopandinê tu gireke xwe [[Special:UserLogin|qedy kiribe]].',
 'addwatch' => 'Tevlî lîsteya şopandinê bike',
 'addedwatchtext' => "Rûpela \"<nowiki>\$1</nowiki>\" çû ser [[Special:Watchlist|lîsteya te ya şopandinê]].
-Li dahatû de her guhartoyek li wê rûpelê û rûpela guftûgo ya wê were kirin li vir dêt nîşan dan,
+Li dahatû de her guhartoyek li wê rûpelê û rûpela gotûbêjê wê were kirin li vir dêt nîşan dan,
 
 Li rûpela [[Special:RecentChanges|Guherandinên dawî]] jî ji bo hasan dîtina wê, ew rûpel bi '''Nivîsa estûr''' dê nîşan dayîn.
 
@@ -1376,7 +1376,7 @@ Li rûpela [[Special:RecentChanges|Guherandinên dawî]] jî ji bo hasan dîtina
 'unwatchthispage' => 'Êdî neşopîne',
 'notanarticle' => 'Ne gotar e',
 'watchnochange' => 'Ne rûpelek, yê tu dişopînê, hate xeyrandin di vê wextê da, yê tu dixazê bibînê.',
-'watchlist-details' => '* {{PLURAL:$1|Rûpelek tê|$1 rûpel tên}} şopandin, rûpelên guftûgoyê netên jimartin.',
+'watchlist-details' => '* {{PLURAL:$1|Rûpelek tê|$1 rûpel tên}} şopandin, rûpelên gotûbêjê nayên jimartin.',
 'wlheader-enotif' => '* Agahdariya E-nameyê pêk tê.',
 'wlheader-showupdated' => "* Ew rûpel yê hatin xeyrandin jilkî te li wan sekir di '''nivîsa estûr''' tên pêşandin.",
 'watchlistcontains' => 'Di lîsteya şopandina te de {{PLURAL:$1|rûpelek heye|$1 rûpel hene}}.',
@@ -1452,9 +1452,9 @@ Naverroka berî betalkirinê ev bû:'$1'",
 'rollbacklink' => 'bizivirîne pêş',
 'cantrollback' => "Guharto naye vegerandin; bikarhêrê dawî, '''tenya''' nivîskarê wê rûpelê ye.",
 'alreadyrolled' => 'Guherandina dawiya [[$1]]
-bi [[User:$2|$2]] ([[User talk:$2|guftûgo]]) venizivre; keseke din wê rûpelê zivrandiye an guherandiye.
+bi [[User:$2|$2]] ([[User talk:$2|gotûbêj]]) venizivre; keseke din wê rûpelê zivrandiye an guherandiye.
 
-Guhartoya dawî bi [[User:$3|$3]] ([[User talk:$3|guftûgo]]).',
+Guhartoya dawî bi [[User:$3|$3]] ([[User talk:$3|gotûbêj]]).',
 'editcomment' => "Kurtenivîsê guherandinê ev bû: \"''\$1''\".",
 'revertpage' => 'Guherandina $2 hat betal kirin, vegerand guhartoya dawî ya $1',
 'rollback-success' => 'Guherandina $1 şondakir; dîsa guharte verzyona $2.',
@@ -1602,7 +1602,7 @@ Sedemekê binivîse!',
 'ipbotheroption' => 'yên din',
 'ipbotherreason' => 'Sedemekî din',
 'ipbhidename' => 'Navê bikarhêner / adresê IP ji "pirtûkê" astengkirinê, lîsteya astengkirinên nuh û lîsteya bikarhêneran veşêre',
-'ipbwatchuser' => 'Rûpelên bikarhêner û guftûgoyê bişopîne',
+'ipbwatchuser' => 'Rûpelên bikarhêner û gotûbêjê bişopîne',
 'ipb-confirm' => 'Astengkirinê piştrast bike',
 'badipaddress' => 'Bikarhêner bi vî navî tune',
 'blockipsuccesssub' => 'Astengkirin serkeftî bû',
@@ -1636,7 +1636,7 @@ Sedemekê binivîse!',
 'noautoblockblock' => 'astengkirina otomatîk hatîye temirandin',
 'createaccountblock' => 'çêkirina hesaban hate qedexekirin',
 'emailblock' => 'E-Mail hate girtin',
-'blocklist-nousertalk' => 'nikarê rûpela gûftugoya xwe biguherînê',
+'blocklist-nousertalk' => 'nikare rûpela gotûbêja xwe biguherîne',
 'ipblocklist-empty' => 'Lîsteya astengkirinê vala ye.',
 'ipblocklist-no-results' => "Ew IP'ya ya bikarhênera nehatîye astengkirin.",
 'blocklink' => 'asteng bike',
@@ -1653,7 +1653,7 @@ Sedemekê binivîse!',
 'block-log-flags-nocreate' => 'çêkirina hesaban hate qedexekirin',
 'block-log-flags-noautoblock' => 'astengkirina otomatik tune',
 'block-log-flags-noemail' => 'Şandina e-nameyan hatîye qedexekirin',
-'block-log-flags-nousertalk' => 'nikare guftûgoyê xwe biguherîne',
+'block-log-flags-nousertalk' => 'nikare gotûbêja xwe biguherîne',
 'block-log-flags-hiddenname' => 'navê bikarhêneriyê yê veşartî',
 'ipb_expiry_invalid' => 'Dem ne serrast e.',
 'ipb_already_blocked' => '"$1" berê hatîye astengkirin',
@@ -1702,7 +1702,7 @@ da bikarî navê wê rûpelê biguherînî.',
 'articleexists' => 'Rûpela bi vî navî heye, an navê ku te hilbijart derbas nabe. Navekî din hilbijêre.',
 'cantmove-titleprotected' => 'Tu nikanê vê rûpelê bervê vê cihê bigerînê ji ber ku sernava nuh tê parastin ji bo çêkirinê',
 'movedto' => 'bû',
-'movetalk' => "Rûpela '''guftûgo''' ya wê jî bigerîne, eger gengaz be.",
+'movetalk' => "Rûpela '''gotûbêj'''a wê jî bigerîne, eger gengaz be.",
 'movepage-page-exists' => 'Rûpela $1 berê heye û ew nikane otomatîk were jêbirin.',
 'movepage-page-moved' => 'Rûpela $1 çû cihê $2.',
 'movepage-page-unmoved' => 'Rûpela $1 nikanî çûba ciha $2.',
@@ -1759,12 +1759,12 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Rûpela min',
 'tooltip-pt-anonuserpage' => 'The user page for the ip you',
-'tooltip-pt-mytalk' => 'Rûpela guftûgo ya min',
+'tooltip-pt-mytalk' => 'Rûpela min a gotûbêjê',
 'tooltip-pt-preferences' => 'Tercîhên min',
 'tooltip-pt-watchlist' => 'The list of pages you',
 'tooltip-pt-mycontris' => 'Lîsteya beşdariyên min',
 'tooltip-pt-logout' => 'Derkeve (Log out)',
-'tooltip-ca-talk' => 'Guftûgo li ser rûpela naverokê',
+'tooltip-ca-talk' => 'Gotûbêj li ser rûpela naverokê',
 'tooltip-ca-edit' => 'Vê rûpelê biguherîne! Berê qeydkirinê bişkoka "Pêşdîtin',
 'tooltip-ca-addsection' => 'Beşekê zêde bike.',
 'tooltip-ca-viewsource' => 'Ev rûpela tê parastin. Tu dikarê bes li çavkanîyê sekê.',
@@ -2025,7 +2025,7 @@ Xêra xwe zanibe ku tu bi rastî dixwazê vê rûpelê dîsa çêkê",
 'lag-warn-high' => 'Ji bo westinê sistêmê ew xeyrandin, yê piştî $1 sanîyan hatine çêkirin netên wêşendan.',
 
 # Watchlist editor
-'watchlistedit-numitems' => 'Di lîsteya te ya şopandinê de {{PLURAL:$1|gotarek heye.|$1 gotar hene.}} (ji xeynî rûpela guftûgoyan).',
+'watchlistedit-numitems' => 'Di lîsteya te ya şopandinê de {{PLURAL:$1|gotarek heye.|$1 gotar hene.}} (ji xeynî rûpela gotûbêjan).',
 'watchlistedit-noitems' => 'Di lîsteya te ya şopandinê  de gotar tune ne.',
 'watchlistedit-normal-title' => 'Lîsteya xwe ya şopandinê biguherîne',
 'watchlistedit-normal-legend' => 'Gotaran ji lîsteya min ya şopandinê rake',
index 7b13bfd..566cf78 100644 (file)
@@ -1652,6 +1652,7 @@ Wann de Problem weider besteet, dann un de [[Special:ListUsers/sysop|Administrat
 'backend-fail-closetemp' => 'Den temporäre Fichier konnt net zougemaach ginn.',
 'backend-fail-read' => 'De Fichier $1 konnt net geliest ginn.',
 'backend-fail-create' => 'De Fichier $1 konnt net ugeluecht ginn.',
+'backend-fail-maxsize' => 'De Fichier $1 konnt net generéiert gi well e méi grouss ass wéi {{PLURAL:$2|ee Byte|$2 Byten}}.',
 'backend-fail-readonly' => 'De Späicher-Backend "$1" kann elo nëmme geliest ginn (read-only). De Grond deen ugi gouf war: "$2"',
 
 # Lock manager
@@ -3532,6 +3533,8 @@ Dir misst eng [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie vun der GNU General Public
 'version-software' => 'Installéiert Software',
 'version-software-product' => 'Produkt',
 'version-software-version' => 'Versioun',
+'version-entrypoints' => 'URLe vun Agangspunkten',
+'version-entrypoints-header-entrypoint' => 'Agangspunkt',
 'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
index 8a8c926..a9f58fb 100644 (file)
@@ -848,6 +848,7 @@ Prašome pamėginti vėl. Jei tai nepadeda, pamėginkite atsijungti ir prisijung
 'token_suffix_mismatch' => "'''Jūsų pakeitimas buvo atmestas, nes jūsų naršyklė iškraipė skyrybos ženklus keitimo žymėje. Keitimas buvo atmestas norint apsaugoti puslapio tekstą nuo sugadinimo. Taip kartais būna, kai jūs naudojate anoniminį tarpinio serverio paslaugą.'''",
 'edit_form_incomplete' => "'''Kai redaguoti formos dalys nepasiekė serverio; du kartus patikrinti, kad jūsų pakeitimai yra nesugadintos ir bandykite dar kartą.'''",
 'editing' => 'Taisomas $1',
+'creating' => 'Kuriama $1',
 'editingsection' => 'Taisomas $1 (skyrelis)',
 'editingcomment' => 'Taisomas $1 (komentaras)',
 'editconflict' => 'Išpręskite konfliktą: $1',
@@ -1071,7 +1072,7 @@ Prašome patikrinti sąrašus.',
 # Suppression log
 'suppressionlog' => 'Trynimo istorija',
 'suppressionlogtext' => 'Žemiau yra trynimų ir blokavimų sąrašas, įtraukiant turinį, paslėptą nuo administratorių.
-Žiūrėkite [[Special:BlockList|IP blokavimų sąrašą]], kad rastumėte dabar veikiančius draudimus ir blokavimus.',
+Žiūrėkite [[Special:BlockList|blokavimų sąrašą]], kad rastumėte dabar veikiančius draudimus ir blokavimus.',
 
 # History merging
 'mergehistory' => 'Sujungti puslapių istorijas',
@@ -2471,7 +2472,7 @@ Pateikiamas paskutinis blokavimo istorijos įrašas.',
 'reblock-logentry' => 'pakeisti [[$1]] blokavimo nustatymai, naujas blokavimo laikas – $2 $3',
 'blocklogtext' => 'Čia yra naudotojų blokavimo ir atblokavimo sąrašas.
 Automatiškai blokuoti IP adresai neišvardinti.
-Jei norite pamatyti dabar blokuojamus adresus, žiūrėkite [[Special:BlockList|IP blokavimų sąrašą]].',
+Jei norite pamatyti dabar blokuojamus adresus, žiūrėkite [[Special:BlockList|blokavimų sąrašą]].',
 'unblocklogentry' => 'atblokavo $1',
 'block-log-flags-anononly' => 'tik anoniminiai naudotojai',
 'block-log-flags-nocreate' => 'paskyrų kūrimas išjungtas',
index 583efb8..b0fb6c8 100644 (file)
@@ -134,7 +134,7 @@ $messages = array(
 'category-article-count' => "{{PLURAL:$2|He pawl hian hemi phêk chauh hi a nei. | Hê'ng phek {{PLURAL:$1||$1-te}} hi he pawlah hian a awm, avaia $2 zingah.}}",
 'category-article-count-limited' => '{{PLURAL: $1 |$1He|$1 Heng}} phekte hi hë pawl, i en mékah hian a awm.',
 'category-file-count' => '{{PLURAL:$2|He pawl hian hë taksa chauh hi a kengtel.|{{PLURAL:$1|He taksa $1 |Heng taksa $1-te}} hi he pawlah hian a awm, a vaia $2 zingah}}',
-'category-file-count-limited' => '{{PLURAL:$1|He taksa (file)|$1Heng taksate}} hi hemi pawl, i en mékah hian a awm.',
+'category-file-count-limited' => '{{PLURAL:$1|He taksa|$1Heng taksate}} hi hemi pawl, i en mékah hian a awm.',
 'listingcontinuesabbrev' => 'chhunz.',
 'index-category' => 'Phêk tarlante',
 'noindex-category' => 'Phêk tarlan lohte',
@@ -483,6 +483,7 @@ I thurûk i thlâk hlawhtling tawh a nih loh pawhin thurûk lailâwk i dil a ni
 'passwordreset' => 'Thurûk ziakţha rawh',
 'passwordreset-legend' => 'Thurûk ziakţha rawh',
 'passwordreset-username' => 'Hmangtu hming:',
+'passwordreset-domain' => 'Huamchin:',
 'passwordreset-email' => 'E-chenhmun:',
 'passwordreset-emailtitle' => '{{SITENAME}}-a siangchan chanchin kim',
 'passwordreset-emailelement' => 'Hmangtuhming: $1
@@ -571,6 +572,12 @@ I rawn atan a danbeh chhinchhiahna kan han tarlang a ni e:',
 'note' => "'''Hriat tùr:'''",
 'previewnote' => "'''Heihi endikna chauh a ni tih hrereng ang che.'''
 I tihdanglamna dahţhat a la ni lo!",
+'session_fail_preview_html' => "'''A pawi hlë mai! Ṭhutchhúng chanchin vawnna hloh avangin i siamṭhatna dahṭhat theih a ni lo.'''
+
+''{{SITENAME}}-in HTML hel a tihzalen avangin hë enlâwkna hi JavaScript beihna laka invèn fimkhur nan thup bo a ni.''
+
+'''Hei hi siamṭhat tumna dànzui pangngai a nih chuan khawngaihin dahṭhat tum nawn leh rawh.'''
+I la dahṭhat theih loh cheu chuan [[Special:UserLogout|chhuah phawt ]] a, luh nawn leh hmang tein han bei vêl chhin lä.",
 'editing' => '$1 i siam(ţha) mék',
 'editingsection' => '$1 (hlawm) i siam(ţha) mék',
 'editingcomment' => '$1 (hlawm thar) i siam(ţha) mék',
@@ -578,6 +585,8 @@ I tihdanglamna dahţhat a la ni lo!",
 'yourtext' => 'I thu tah hian:',
 'storedversion' => 'Ennawnna vawnţhat',
 'yourdiff' => 'Danglamnate',
+'protectedpagewarning' => "'''Vaukhanna: Hë phêk hi roreltute chauhvin an siamṭhat theihna tùrin vènhim a ni.'''
+I rawn atan ziaka chanchin dah hnuhnüng ber kan rawn chhawp chhuak e:",
 'semiprotectedpagewarning' => "'''Hriat tùr:''' He phêk hi hmangtu inziaklûtte chauhvin an tihdanglam theihna tùra vènhim a ni.
 I rawn tùrin siamm-danglamna chanchin ziaka kan dahţhat thar ber a hnuaiah khuan kan chhawp e:",
 'templatesused' => 'He phêka {{PLURAL:$1|siamsa hman|siamsa hmante}}',
@@ -961,9 +970,11 @@ Hmangtuten e-lehkha an thawn chein i e-chenhmun hrilh an ni chuang lo vang.',
 'boteditletter' => 'k',
 'rc-enhanced-expand' => 'Tilang kim rawh (JavaScript a ngai)',
 'rc-enhanced-hide' => 'Thup ţhenna',
+'rc-old-title' => 'Atìra "&1" tih hming pú-a siam.',
 
 # Recent changes linked
 'recentchangeslinked' => 'Tihdanglam anpuite',
+'recentchangeslinked-feed' => 'Tihdanglam anpuite',
 'recentchangeslinked-toolbox' => 'Tihdanglam anpuite',
 'recentchangeslinked-title' => '"$1" kaihhnawih tihdanglamnate',
 'recentchangeslinked-noresult' => 'I hun thlan chhungah hian a phek zawmpui tihdanglam pakhat mah a awm lo.',
@@ -982,6 +993,9 @@ Hmangtuten e-lehkha an thawn chein i e-chenhmun hrilh an ni chuang lo vang.',
 'upload_directory_missing' => 'Hlankai bawmpui ($1)  a awm lo va, Rangserverin a siam thei lo bawl.',
 'upload_directory_read_only' => 'Hlankai bawmpui ($1) hi Rangserver in a ziak thei lo.',
 'uploaderror' => 'Hlankai sual',
+'upload-recreate-warning' => "'''Vaukhànna: Hemi hming pu taksa hi sawn tawh emaw paih tawh a ni.'''
+
+I ràwnah paihna leh sawnna chhinchhiahna thuziak kan rawn chhawpchhuak e:",
 'upload-permitted' => 'Taksa phal chiho: $1.',
 'upload-preferred' => 'Taksa duh deuh bîk: $1.',
 'upload-prohibited' => 'Taksa khap: $1.',
@@ -1028,7 +1042,7 @@ A hming thlâk la bei ţha leh rawh.',
 'listfiles_count' => 'Chhuah',
 
 # File description page
-'file-anchor-link' => 'Taksa (file)',
+'file-anchor-link' => 'Taksa',
 'filehist' => 'A chanchin enna',
 'filehist-help' => 'A hunlaia a lan dan en tùrin a hun/ni-ah hmet rawh.',
 'filehist-deleteall' => 'a vaiin nuaibo rawh',
@@ -1118,6 +1132,7 @@ Phêk hminga hman awih loh hawrawp a hmang palh a ni mai thei bawk.',
 'sp-deletedcontributions-contribs' => 'kutthawhnate',
 
 # Special:LinkSearch
+'linksearch-ns' => 'Hminghmun:',
 'linksearch-ok' => 'Zawng rawh',
 'linksearch-line' => '$1 hi $2 aţanga thlunzawm a ni',
 
index 9acbc1b..df7ccd1 100644 (file)
@@ -1124,6 +1124,10 @@ $2
 'parser-template-loop-warning' => 'Пронајдена е јамка во шаблонот: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Ограничувањето на рекурзивната длабочина надмината во шаблонот ($1)',
 'language-converter-depth-warning' => 'Надмината е границата на длабочината  на јазичниот претворач ($1)',
+'node-count-exceeded-category' => 'Страници каде е надминат бројот на јазли',
+'node-count-exceeded-warning' => 'Страницата го надмина бројот на јазли',
+'expansion-depth-exceeded-category' => 'Страници каде е надмината длабочината на проширувањето',
+'expansion-depth-exceeded-warning' => 'Страницата ја надмина длабочината на проширувањето',
 
 # "Undo" feature
 'undo-success' => 'Уредувањето може да се откаже.
index 6a988b5..5277809 100644 (file)
@@ -682,7 +682,7 @@ $1',
 'badtitle' => 'അസാധുവായ തലക്കെട്ട്',
 'badtitletext' => 'താങ്കൾ ആവശ്യപ്പെട്ട തലക്കെട്ടുള്ള ഒരു താൾ നിലവിലില്ല. ഇതു തെറ്റായി അന്തർഭാഷാ/അന്തർവിക്കി കണ്ണി ചെയ്യപ്പെട്ടതു മൂലമോ, തലക്കെട്ടിൽ ഉപയോഗിക്കരുതാത്ത അക്ഷരരൂപങ്ങൾ ഉപയോഗിച്ചതു മൂലമോ സംഭവിച്ചതായിരിക്കാം.',
 'perfcached' => 'താഴെ കൊടുത്തിരിക്കുന്ന വിവരം ശേഖരിച്ചു വെച്ചിരിക്കുന്നതാണ്, അതുകൊണ്ട് ചിലപ്പോൾ പുതിയതായിരിക്കണമെന്നില്ല. പരമാവധി {{PLURAL:$1|ഒരു ഫലം|$1 ഫലങ്ങൾ}} ശേഖരിച്ചുവെച്ചിരിക്കുന്നവയിൽ ഉണ്ട്.',
-'perfcachedts' => 'താഴെയുള്ള വിവരങ്ങൾ ശേഖരിച്ച് വെച്ചവയിൽ പെടുന്നു, അവസാനം പുതുക്കിയത് $1-നു ആണ്‌. പരമാവധി {{PLURAL:$4|ഒരു ഫലം|$4 ഫലങ്ങൾ}} ശേഖരിച്ചുവെച്ചിരിക്കുന്നവയിൽ ഉണ്ട്. സാധാരണ ഗതിയിൽ $4 ആയിരമായിരിക്കും.',
+'perfcachedts' => 'താഴെയുള്ള വിവരങ്ങൾ ശേഖരിച്ച് വെച്ചവയിൽ പെടുന്നു, അവസാനം പുതുക്കിയത് $1-നു ആണ്‌. പരമാവധി {{PLURAL:$4|ഒരു ഫലം|$4 ഫലങ്ങൾ}} ശേഖരിച്ചുവെച്ചിരിക്കുന്നവയിൽ ഉണ്ട്.',
 'querypage-no-updates' => 'ഈ താളിന്റെ പുതുക്കൽ തൽക്കാലം നടക്കുന്നില്ല. ഇവിടുള്ള വിവരങ്ങൾ ഏറ്റവും പുതിയതാവണമെന്നില്ല.',
 'wrong_wfQuery_params' => 'wfQuery()എന്നതിലേക്ക് തെറ്റായ പരാമീറ്ററുകൾ<br />
 നിർദ്ദേശം: $1<br />
@@ -1069,6 +1069,7 @@ $1 ആണ് ഈ തടയൽ നടത്തിയത്. ''$2'' എന്ന
 'parser-template-loop-warning' => 'ഫലകക്കുരുക്ക് കണ്ടെത്തിയിരിക്കുന്നു: [[$1]]',
 'parser-template-recursion-depth-warning' => 'ഫലകത്തിന്റെ പുനരാവർത്തന ആഴത്തിന്റെ പരിധി കഴിഞ്ഞിരിക്കുന്നു ($1)',
 'language-converter-depth-warning' => 'ഭാഷ മാറ്റൽ ഉപകരണത്തിന്റെ ആഴത്തിന്റെ പരിധി കവിഞ്ഞിരിക്കുന്നു ($1)',
+'node-count-exceeded-warning' => 'താൾ നോഡ്-എണ്ണം അധികരിച്ചിരിക്കുന്നു',
 
 # "Undo" feature
 'undo-success' => 'ഈ തിരുത്തൽ താങ്കൾക്ക് തിരസ്ക്കരിക്കാവുന്നതാണ്‌. താഴെ കൊടുത്തിരിക്കുന്ന പതിപ്പുകൾ തമ്മിലുള്ള താരതമ്യം ഒന്നുകൂടി പരിശോധിച്ച് ഈ പ്രവൃത്തി ചെയ്യണോ എന്ന് ഒന്നുകൂടി ഉറപ്പാക്കുക. ഉറപ്പാണെങ്കിൽ തിരുത്തൽ തിരസ്ക്കരിക്കുവാൻ താൾ സേവ് ചെയ്യുക.',
@@ -2003,7 +2004,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'statistics-users-active-desc' => 'കഴിഞ്ഞ {{PLURAL:$1|ദിവസം|$1 ദിവസങ്ങൾക്കുള്ളിൽ}} പ്രവർത്തിച്ചിട്ടുള്ള ഉപയോക്താക്കൾ',
 'statistics-mostpopular' => 'ഏറ്റവുമധികം സന്ദർശിക്കപ്പെട്ട താളുകൾ',
 
-'disambiguations' => 'വിവക്ഷിത താളുകളിലേയ്ക്ക് കണ്ണിചേർക്കുന്ന താളുകൾ',
+'disambiguations' => 'വിവà´\95àµ\8dà´·à´¿à´¤ à´¤à´¾à´³àµ\81à´\95ളിലàµ\87à´¯àµ\8dà´\95àµ\8dà´\95àµ\8d à´\95à´£àµ\8dണിà´\9aàµ\87ർതàµ\8dതിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95ൾ',
 'disambiguationspage' => 'Template:വിവക്ഷകൾ',
 'disambiguations-text' => 'താഴെ കൊടുത്തിരിക്കുന്ന താളുകൾ വിവക്ഷിതങ്ങൾ താളിലേക്കു കണ്ണി ചേർക്കപ്പെട്ടിരിക്കുന്നു. അതിനു പകരം അവ ലേഖനതാളുകളിലേക്കു കണ്ണി ചേക്കേണ്ടതാണ്‌. <br /> ഒരു താളിനെ വിവക്ഷിത താൾ ആയി പരിഗണിക്കണമെങ്കിൽ അതു  [[MediaWiki:Disambiguationspage]] എന്ന താളിൽ നിന്നു കണ്ണി ചേർക്കപ്പെട്ട ഒരു ഫലകം ഉപയോഗിക്കണം.',
 
index b3e341d..5cc70ef 100644 (file)
@@ -340,7 +340,7 @@ $messages = array(
 'tog-previewontop' => 'झलक संपादन खिडकीच्या आधी दाखवा',
 'tog-previewonfirst' => 'पहिल्या संपादनानंतर झलक दाखवा',
 'tog-nocache' => 'न्याहाळकाची पान सय (कॅशिंग) अक्षम (निकमी) करा',
-'tog-enotifwatchlistpages' => 'माà¤\9dà¥\8dया à¤ªà¤¹à¤¾à¤±à¥\8dयाà¤\9aà¥\8dया à¤¸à¥\82à¤\9aà¥\80मधà¥\80ल (नितà¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयात à¤\85सलà¥\87लà¥\80 à¤¸à¥\82à¤\9aà¥\80) à¤ªà¤¾à¤¨ à¤¬à¤¦à¤²à¤²à¥\8dयास à¤®à¤²à¤¾ à¤\88-मà¥\87ल à¤ªà¤¾à¤ à¤µà¤¾',
+'tog-enotifwatchlistpages' => 'माà¤\9dà¥\8dया à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¾à¤¹à¤¾à¤£à¥\8dयात à¤\85सलà¥\87लà¥\80 à¤¸à¥\82à¤\9aà¥\80मधà¥\8dयà¥\87 à¤\85सलà¥\87लà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤®à¤§à¥\8dयà¥\87 à¤¬à¤¦à¤² à¤\9dालà¥\8dयास à¤®à¤²à¤¾ à¤µà¤¿à¤ªà¤¤à¥\8dर (à¤\88-मà¥\87ल) à¤ªà¤¾à¤ à¤µà¤¾.',
 'tog-enotifusertalkpages' => 'माझ्या चर्चा पानावर बदल झाल्यास मला विरोप (ई-मेल) पाठवा',
 'tog-enotifminoredits' => 'मला छोट्या बदलांकरीता सुद्धा विरोप पाठवा',
 'tog-enotifrevealaddr' => 'सूचना विरोपात माझा विरोपाचा (ई-मेल ) पत्ता दाखवा',
index 9035749..fed1422 100644 (file)
@@ -953,6 +953,10 @@ Argumen-argumen ini telah ditinggalkan.',
 'parser-template-loop-warning' => 'Gelung templat dikesan: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Had pengulangan templat dilebihi ($1)',
 'language-converter-depth-warning' => 'Had kedalaman penukar bahasa dilepasi ($1)',
+'node-count-exceeded-category' => 'Laman yang melebihi had kiraan nod',
+'node-count-exceeded-warning' => 'Laman terlebih kiraan nod',
+'expansion-depth-exceeded-category' => 'Laman yang melebihi had kedalaman peluasan',
+'expansion-depth-exceeded-warning' => 'Laman terlebih dalam peluasan',
 
 # "Undo" feature
 'undo-success' => 'Suntingan ini boleh dibatalkan. Sila semak perbandingan di bawah untuk mengesahkan bahawa anda betul-betul mahu melakukan tindakan ini, kemudian simpan perubahan tersebut.',
index 43de418..4735972 100644 (file)
@@ -1150,6 +1150,10 @@ Deze parameters zijn weggelaten.',
 'parser-template-loop-warning' => 'Er is een kringloop in sjablonen geconstateerd: [[$1]]',
 'parser-template-recursion-depth-warning' => 'De recursiediepte voor sjablonen is overschreden ($1)',
 'language-converter-depth-warning' => 'De dieptelimiet voor de taalconvertor is overschreden ($1)',
+'node-count-exceeded-category' => "Pagina's waar het maximaal aantal nodes is overschreden",
+'node-count-exceeded-warning' => 'Op de pagina is het maximale aantal nodes overschreden',
+'expansion-depth-exceeded-category' => "Pagina's waar de expansiediepte is overschreden",
+'expansion-depth-exceeded-warning' => 'De pagina bevat te veel sjablonen',
 
 # "Undo" feature
 'undo-success' => 'Deze bewerking kan ongedaan gemaakt worden.
index ad8d236..6738bc4 100644 (file)
@@ -328,7 +328,7 @@ $messages = array(
 'january' => 'ଜାନୁଆରୀ',
 'february' => 'ଫେବୃଆରୀ',
 'march' => 'ମାର୍ଚ୍ଚ',
-'april' => 'à¬\8fପà­\8dରିଲ',
+'april' => 'à¬\85ପà­\8dରà­\87ଲ',
 'may_long' => 'ମେ',
 'june' => 'ଜୁନ',
 'july' => 'ଜୁଲାଇ',
@@ -340,7 +340,7 @@ $messages = array(
 'january-gen' => 'ଜାନୁଆରୀ',
 'february-gen' => 'ଫେବୃଆରୀ',
 'march-gen' => 'ମାର୍ଚ୍ଚ',
-'april-gen' => 'à¬\8fପà­\8dରିଲ',
+'april-gen' => 'à¬\85ପà­\8dରà­\87ଲ',
 'may-gen' => 'ମେ',
 'june-gen' => 'ଜୁନ',
 'july-gen' => 'ଜୁଲାଇ',
@@ -352,7 +352,7 @@ $messages = array(
 'jan' => 'ଜାନୁଆରୀ',
 'feb' => 'ଫେବୃଆରୀ',
 'mar' => 'ମାର୍ଚ୍ଚ',
-'apr' => 'à¬\8fପà­\8dରିଲ',
+'apr' => 'à¬\85ପà­\8dରà­\87ଲ',
 'may' => 'ମେ',
 'jun' => 'ଜୁନ',
 'jul' => 'ଜୁଲାଇ',
index 0575161..9dd0a47 100644 (file)
@@ -149,6 +149,7 @@ $messages = array(
 'category-subcat-count' => '{{ਕੁਲ   $2 ਸ਼੍ਰੇਣੀਆਂ ਵਿਚੌਂ , PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਹੇਠ ਲਿਖੀ ਸ਼੍ਰੇਣੀ ਹੈ|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਨਿਮਿਨਲਿਖਿਤ {{PLURAL:$1|ਉਪ ਸ਼੍ਰੇਣੀ ਹੈ|$1ਉਪਸ਼੍ਰੇਣੀਆਂ ਹਨ}}  }}',
 'category-article-count' => '{{ ਕੁਲ $2 ਲੇਖਾਂ ਵਿਚੌਂ , PLURAL:$2| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼  ਨਿਮਨਲਿਖਿਤ  {{PLURAL:$1|ਲੇਖ ਹੈ|$1 ਲੇਖ ਹਨ}}, }}',
 'listingcontinuesabbrev' => 'ਅਗੇ.',
+'noindex-category' => 'ਕ੍ਰਮਸੂਚੀ ਰਹਿਤ ਸਫ਼ੇ',
 
 'about' => 'ਇਸ ਬਾਰੇ',
 'article' => 'ਸਮੱਗਰੀ ਪੇਜ',
@@ -479,7 +480,7 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'yourtext' => 'ਤੁਹਾਡਾ ਟੈਕਸਟ',
 'storedversion' => 'ਸੰਭਾਲਿਆ ਵਰਜਨ',
 'yourdiff' => 'ਅੰਤਰ',
-'templatesused' => 'à¨\87ਸ à¨ªà©\87à¨\9c à¨\89ੱਤà©\87 à¨\9fà©\88ਪਲà©\87à¨\9f à¨µà¨°à¨¤à¨¿à¨\86 à¨\9cਾà¨\82ਦਾ à¨¹à©\88:',
+'templatesused' => 'à¨\87ਸ à¨¸à¨«à©\87 à¨¤à©\87 à¨ªà©\8dਰà©\8dਯà©\8bà¨\97ਿਤ {{PLURAL:$1|ਫਰਮਾ|ਫਰਮà©\87}}:',
 'templatesusedpreview' => "{{PLURAL:$1|ਟੈਪਲੇਟ|ਟੈਪਲੇਟ}} ਇਹ ਝਲਕ 'ਚ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:",
 'templatesusedsection' => 'ਇਹ ਸ਼ੈਕਸ਼ਨ ਵਿੱਚ ਟੈਪਲੇਟ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:',
 'template-protected' => '(ਸੁਰੱਖਿਅਤ)',
@@ -490,6 +491,8 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''ਖ਼ਬਰਦਾਰ: ਸੰਚੇ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ।ਕੁਝ ਸੰਚੇ ਛੁਟ ਜਾਣਗੇ।",
 'post-expand-template-inclusion-category' => 'ਉਹ ਪੰਨੇ ਜਿਥੇ ਸੰਚਿਆਂ ਦਾ ਅਕਾਰ ਨਿਣਮਿਤ ਹੱਦ ਤੌਂ ਵੱਧ ਹੈ।',
+'post-expand-template-argument-warning' => "'''ਖ਼ਬਰਦਾਰ'''ਇਸ ਸਫ਼ੇ ਤੇ ਕਿਸੇ ਫ਼ਰਮੇ ਵਿਚ ਘੱਟੋ ਘੱਟ ਇਕ ਸਁਘਟਕ ਐਸਾ ਹੈ ਜਿਸ ਦਾ ਵਿਸਤ੍ਰਿਤ ਰੂਪ ਬਹੁਤ ਵੱਡਾ ਹੈ।ਐਸੇ ਸਁਘਟਕਾਂ ਨੂਁ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
+'post-expand-template-argument-category' => 'ਐਸੇ ਸਫ਼ੇ ਜਿਨ੍ਹਾਂ ਵਿਚ ਫ਼ਰਮੇ ਦੇ ਸਁਘਟਕ ਛੁੱਟ ਗਏ ਹਨ ।',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'ਅਕਾਊਂਟ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ',
@@ -508,6 +511,7 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'last' => 'ਆਖਰੀ',
 'page_first' => 'ਪਹਿਲਾਂ',
 'page_last' => 'ਆਖਰੀ',
+'history-fieldset-title' => 'ਇਤਿਹਾਸ ਤੇ ਇਕ ਨਜ਼ਰ ਮਾਰੋ ।',
 'history-show-deleted' => 'ਕੇਵਲ ਮਿਟਾਏ ਗਏ',
 'histfirst' => 'ਸਭ ਤੋਂ ਪਹਿਲਾਂ',
 'histlast' => 'ਸਭ ਤੋਂ ਨਵਾਂ',
@@ -706,6 +710,7 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'recentchangeslinked-feed' => 'ਸਬੰਧਿਤ ਬਦਲਾਅ',
 'recentchangeslinked-toolbox' => 'ਸਬੰਧਿਤ ਬਦਲਾਅ',
 'recentchangeslinked-title' => '"$1" ਨਾਲ ਸੰਬੰਧਿਤ ਬਦਲਾਅ',
+'recentchangeslinked-noresult' => 'ਜੁੜੇ ਹੋਏ ਸਫਿਆਂ ਤੇ ,ਦਿੱਤੇ ਸਮੇਂ ਵਿਚ ਕੁਝ ਨਹੀਂ ਬਦਲਿਆ ।',
 'recentchangeslinked-summary' => 'ਇਹ ਸੂਚੀ ਊਨ੍ਹਾਂ ਪੰਨਿਆਂ ,ਜੋ ਇਕ ਖਾਸ ਪੰਨੇ ਨਾਲ ਸੰਬੰਧਿਤ ਹਨ, (ਯਾ ਕਿਸੇ ਖਾਸ ਸ਼੍ਰੇਣੀ ਦੇ ਮੈਂਬਰਾਂ) ਦੇ ਹਾਲ ਵਿਚ ਹੋਏ ਬਦਲਾਵਾਂ ਨੂੰ ਦਰਸ਼ਾਂਦੀ ਹੈ [[Special:Watchlist|ਤੁਹਾਡੀ ਦ੍ਰਿਸ਼ਟੀ ਗੋਚਰ ਸੂਚੀ]] ਵਿਚ ਮੌਜੂਦ ਪੰਨੇ ਮੋਟੇ ਅਖਰਾਂ ਵਿਚ ਦਿਖਾਈ ਦੇਣਗੇ।',
 'recentchangeslinked-page' => 'ਸਫ਼ਾ ਨਾਂ:',
 'recentchangeslinked-to' => 'ਇਸ ਦੇ ਬਦਲੇ ਇਸ ਪੰਨੇ ਨਾਲ ਜੁੜੇ ਪੰਨਿਆਂ ਵਿਚ ਹੋਏ ਬਦਲਾਅ ਦਿਖਾਓ',
@@ -893,6 +898,7 @@ to upload files.',
 # Watchlist
 'watchlist' => 'ਮੇਰੀ ਵਾਚ-ਲਿਸਟ',
 'mywatchlist' => 'ਮੇਰੀ ਵਾਚ-ਲਿਸਟ',
+'watchlistfor2' => '$1 $2 ਲਈ',
 'watchnologin' => 'ਲਾਗਇਨ ਨਹੀਂ',
 'watch' => 'ਵਾਚ',
 'watchthispage' => 'ਇਹ ਪੇਜ ਵਾਚ ਕਰੋ',
@@ -976,6 +982,7 @@ to upload files.',
 
 'sp-contributions-newbies-sub' => 'ਨਵੇਂ ਅਕਾਊਂਟਾਂ ਲਈ',
 'sp-contributions-blocklog' => 'ਪਾਬੰਦੀ ਲਾਗ',
+'sp-contributions-uploads' => 'ਅਪਲੋਡ',
 'sp-contributions-logs' => 'ਲਾਗ',
 'sp-contributions-talk' => 'ਗੱਲਬਾਤ',
 'sp-contributions-search' => 'ਯੋਗਦਾਨ ਖੋਜੋ',
@@ -995,6 +1002,7 @@ to upload files.',
 'whatlinkshere-next' => '{{PLURAL:$1|ਅਗਲਾ|ਅਗਲੇ $1}}',
 'whatlinkshere-links' => '← ਲਿੰਕ',
 'whatlinkshere-hideredirs' => '$1 ਗੈਰਸਿਧਾ',
+'whatlinkshere-hidetrans' => '$1 ਇੱਥੇ ਕੀ ਕੀ ਜੁੜਦਾ ਹੈ।',
 'whatlinkshere-hidelinks' => '$1 ਲਿੰਕ',
 'whatlinkshere-hideimages' => '$1 ਸੰਬੰਧਿਤ ਚਿਤਰ',
 'whatlinkshere-filters' => 'ਫਿਲਟਰ',
@@ -1063,6 +1071,7 @@ to upload files.',
 # Thumbnails
 'thumbnail-more' => 'ਫੈਲਾਓ',
 'filemissing' => 'ਫਾਇਲ ਗੁੰਮ ਹੈ',
+'thumbnail_error' => 'ਅਁਗੂਠਾ ਝਲਕ ਬਨਾਉਣ ਵਿਚ ਗਲਤੀ ਹੋਈ ਹੈ : $1',
 
 # Special:Import
 'import' => 'ਪੇਜ ਇੰਪੋਰਟ ਕਰੋ',
index 4795295..e40e433 100644 (file)
@@ -2478,10 +2478,10 @@ për podèj tramudé na pàgina.",
 'movepage-moved-noredirect' => "La creassion ëd na ridiression a l'é stàita scancelà.",
 'articleexists' => "Na pàgina che as ciama parej a-i é già, ò pura ël nòm che a l'ha sërnù a va nen bin.<br />
 Che as sërna, për piasì, un nòm diferent për st'artìcol.",
-'cantmove-titleprotected' => "As peul pa fesse San Martin ambelelì, për via che col tìtol-lì a l'é stàit proibì e a peul pa ess-ie na pàgina ciamà parej",
+'cantmove-titleprotected' => "As peul pa fesse San Martin ambelelì, për via che col tìtol-lì a l'é stàit proibì e a peul pa ess-ie na pàgina ciamà parèj",
 'talkexists' => "La pàgina a l'é staita bin tramudà, ma a l'é pa podusse tramudé soa pàgina ëd discussion, përchè a-i në j'é già n'àutra ant la pàgina con ël tìtol neuv. Për piasì, che a modìfica a man ij contnù dle doe pàgine ëd discussion, an manera che as perdo nen dij pensé anteressant.",
 'movedto' => 'tramudà a',
-'movetalk' => "Podend, tramuda ëdcò la pàgina ëd discussion che a l'ha tacà.",
+'movetalk' => "Tramudé ëdcò la pàgina ëd discussion che a l'ha tacà",
 'move-subpages' => 'Tramuda le sotpàgine (fin a $1)',
 'move-talk-subpages' => 'Tramuda le sotpàgine ëd na pàgina ëd discussion (fin a $1)',
 'movepage-page-exists' => 'La pàgina $1 a esist già e a peul pa esse coatà automaticament.',
index e103bf2..bd85da3 100644 (file)
@@ -750,7 +750,8 @@ $1',
 '''تر اوسه پورې دا نه دی خوندي شوی!'''",
 'updated' => '(تازه)',
 'note' => "'''يادونه:'''",
-'previewnote' => "'''دا يواځې مخليدنه ده، تاسې چې کوم بدلونونه ترسره کړي، لا تر اوسه پورې نه دي خوندي شوي!'''",
+'previewnote' => "'''هېر مو نه شي چې دا يواځې يوه مخليدنه ده.'''
+ستاسې لخوا ترسره شوي بدلونونه لا تر اوسه پورې نه دي خوندي شوي!!",
 'editing' => 'د $1 سمونه',
 'editingsection' => 'سمونه $1 (برخه)',
 'editingcomment' => 'د $1 سمون (نوې برخه)',
@@ -1279,7 +1280,10 @@ $1',
 'upload-http-error' => 'د HTTP يوه ستونزه رامېنځ ته شوې: $1',
 
 # File backend
+'backend-fail-delete' => 'د "$1" دوتنه ړنګه نه شوه.',
 'backend-fail-alreadyexists' => 'د $1 دوتنه له پخوا نه شته.',
+'backend-fail-read' => 'د "$1" دوتنه نه شي لوستل کېدای.',
+'backend-fail-create' => 'د "$1" دوتنه نه شي جوړېدای.',
 
 # ZipDirectoryReader
 'zip-wrong-format' => 'ځانګړې شوې دوتنه يوه ZIP دوتنه نه وه.',
@@ -1823,8 +1827,8 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'ipb-confirm' => 'د بنديز تاييد',
 'badipaddress' => 'ناسمه IP پته',
 'blockipsuccesssub' => 'بنديز په برياليتوب سره ولګېده',
-'blockipsuccesstext' => 'د [[Special:Contributions/$1|$1]] مخه نيول شوې.
-<br />د مخنيول شويو خلکو د کتنې لپاره، د [[Special:BlockList|مخنيول شويو IP لړليک]] وګورۍ.',
+'blockipsuccesstext' => 'په [[Special:Contributions/$1|$1]] بنديز لګېدلی.<br />
+د بنديزونو د څارلو لپاره [[Special:BlockList|بنديز لړليک]] وګورۍ.',
 'ipb-edit-dropdown' => 'د بنديز سببونه سمول',
 'ipb-unblock-addr' => 'له $1 بنديز ليرې کول',
 'ipb-unblock' => 'له يوه کارن-نوم يا IP پتې بنديز ليري کول',
@@ -1973,6 +1977,9 @@ $UNWATCHURL  نه ليدنه وکړۍ
 # Import log
 'importlogpage' => 'د واردولو يادښت',
 
+# JavaScriptTest
+'javascripttest' => 'د جاوا سکرېپټ آزمېښت',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'ستاسې کارن مخ',
 'tooltip-pt-mytalk' => 'ستاسې د خبرواترو مخ',
@@ -2030,6 +2037,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'tooltip-diff' => 'دا هغه بدلونونه چې تاسې په متن کې ترسره کړي، ښکاره کوي. [alt-v]',
 'tooltip-compareselectedversions' => 'د همدې مخ د دوو ټاکل شويو بڼو تر مېنځ توپيرونه وګورۍ.',
 'tooltip-watch' => 'دا مخ ستاسې کتنلړ کې ورګډوي [alt-w]',
+'tooltip-upload' => 'د پورته کولو پيل',
 'tooltip-rollback' => 'په همدې مخ کې "په شابېول" د وروستني ونډوال سمون (سمونونه) په يوه کلېک په څټ ورګرځوي.',
 'tooltip-undo' => '"ناکړ" همدا سمون پر شا ګرځوي او د سمون کړکۍ د مخکتنې په بڼه پرانيزي.
 دا کړنه د لنډيز په برخه کې د سمونونو د سببونو د ورګډولو آسانتيا برابروي.',
@@ -2085,6 +2093,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'svg-long-desc' => 'SVG دوتنه، نومېنلي $1 × $2 پېکسل، د دوتنې کچه: $3',
 'show-big-image' => 'بشپړ بېلن نښې',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|چوکاټ|چوکاټونه}}',
+'file-info-png-repeat' => '$1 {{PLURAL:$1|ځل|ځله}} وغږېده',
 'file-info-png-frames' => '$1 {{PLURAL:$1|چوکاټ|چوکاټونه}}',
 
 # Special:NewFiles
@@ -2145,6 +2154,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'exif-model' => 'د کامرې ماډل',
 'exif-software' => 'کارېدلې ساوترۍ',
 'exif-artist' => 'ليکوال',
+'exif-copyright' => 'د رښتو خاوند',
 'exif-colorspace' => 'رنګ تشيال',
 'exif-pixelydimension' => 'د انځور سور',
 'exif-pixelxdimension' => 'د انځور جګوالی',
@@ -2174,20 +2184,27 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'exif-objectname' => 'لنډ سرليک',
 'exif-headline' => 'سرليک',
 'exif-source' => 'سرچينه',
-'exif-contact' => 'د اړيکې مالومات',
+'exif-contact' => 'د اړيکو مالومات',
 'exif-writer' => 'ليکوال',
 'exif-languagecode' => 'ژبه',
 'exif-iimcategory' => 'وېشنيزه',
 'exif-datetimeexpires' => 'مه يې کاروۍ وروسته له',
+'exif-datetimereleased' => 'خپرېدلی په',
 'exif-identifier' => 'پېژندنه',
 'exif-lens' => 'کارېدلې لېنز',
 'exif-serialnumber' => 'د کامرې پرله پسې شمېره',
 'exif-cameraownername' => 'د کامرې خاوند',
 'exif-label' => 'نښکه',
+'exif-copyrighted' => 'د رښتو دريځ',
+'exif-copyrightowner' => 'د رښتو خاوند',
+'exif-usageterms' => 'د کارولو شرايط',
 'exif-pngfilecomment' => 'د PNG دوتنې تبصره',
 'exif-disclaimer' => 'ردادعاليک',
 'exif-giffilecomment' => 'د GIF دوتنې تبصره',
 
+'exif-copyrighted-true' => 'په رښتو سمبال',
+'exif-copyrighted-false' => 'ټولګړی شپول',
+
 'exif-unknowndate' => 'نامالومه نېټه',
 
 'exif-orientation-1' => 'نورمال',
@@ -2207,6 +2224,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'exif-lightsource-1' => 'د ورځې رڼا',
 'exif-lightsource-4' => 'فلش',
 'exif-lightsource-9' => 'ښه هوا',
+'exif-lightsource-10' => 'ورېځ پوښلې هوا',
 'exif-lightsource-11' => 'سيوری',
 'exif-lightsource-255' => 'د رڼا بله سرچينه',
 
@@ -2403,6 +2421,9 @@ $5
 'iranian-calendar-m11' => 'سلواغه',
 'iranian-calendar-m12' => 'کب',
 
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|خبرې اترې]])',
+
 # Special:Version
 'version' => 'بڼه',
 'version-extensions' => 'لګېدلي شاتاړي',
@@ -2517,6 +2538,7 @@ $5
 'feedback-close' => 'ترسره شو',
 
 # API errors
+'api-error-duplicate-popup-title' => 'غبرګونې {{PLURAL:$1|دوتنه|دوتنې}}.',
 'api-error-empty-file' => 'کومه دوتنه چې تاسې دلته سپارلې هغه تشه ده.',
 'api-error-file-too-large' => 'کومه دوتنه چې تاسې دلته سپارلې ډېره لويه ده.',
 'api-error-filename-tooshort' => 'د دوتنې نوم ډېر لنډ دی.',
@@ -2526,4 +2548,15 @@ $5
 'api-error-unknown-warning' => 'ناڅرګنده ګواښنه: "$1".',
 'api-error-unknownerror' => 'ناڅرګنده تېروتنه: "$1".',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|ثانيه|ثانيې}}',
+'duration-minutes' => '$1 {{PLURAL:$1|دقيقه|دقيقې}}',
+'duration-hours' => '$1 {{PLURAL:$1|ساعت|ساعتونه}}',
+'duration-days' => '$1 {{PLURAL:$1|ورځ|ورځې}}',
+'duration-weeks' => '$1 {{PLURAL:$1|اونۍ|اونۍ}}',
+'duration-years' => '$1 {{PLURAL:$1|کال|کالونه}}',
+'duration-decades' => '$1 {{PLURAL:$1|لسيزه|لسيزې}}',
+'duration-centuries' => '$1 {{PLURAL:$1|پېړۍ|پېړۍ}}',
+'duration-millennia' => '$1 {{PLURAL:$1|زرمه|زرمې}}',
+
 );
index 79e037e..635f738 100644 (file)
@@ -1093,6 +1093,10 @@ Estes argumentos foram omitidos.',
 'parser-template-loop-warning' => 'Ciclo de predefinições detectado: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Foi excedido o limite da profundidade de recursividade nas predefinições ($1)',
 'language-converter-depth-warning' => 'O limite de profundidade do conversor de línguas excedeu a ($1)',
+'node-count-exceeded-category' => 'Páginas em que o total de nós é excedido',
+'node-count-exceeded-warning' => 'A página excedeu o total de nós',
+'expansion-depth-exceeded-category' => 'Páginas em que a profundidade de expansão é excedida',
+'expansion-depth-exceeded-warning' => 'A página excedeu a profundidade de expansão',
 
 # "Undo" feature
 'undo-success' => 'É possível desfazer a edição.
index 2e2b996..81745fa 100644 (file)
@@ -748,7 +748,7 @@ Por favor ative-os, depois autentique-se com o seu novo nome de usuário e a sua
 Certifique-se de que tem os cookies ativados, recarregue esta página e tente novamente.',
 'noname' => 'Você não colocou um nome de usuário válido.',
 'loginsuccesstitle' => 'Login bem sucedido',
-'loginsuccess' => "'''Agora você está autenticado ao wiki {{SITENAME}} como \"\$1\"'''.",
+'loginsuccess' => "'''Agora você está {{GENDER:autenticado|autenticada}} ao wiki {{SITENAME}} como \"\$1\"'''.",
 'nosuchuser' => 'Não existe nenhum usuário com o nome "$1".
 Os nomes de usuário são sensíveis à capitalização.
 Verifique a ortografia, ou [[Special:UserLogin/signup|crie uma nova conta]].',
@@ -980,6 +980,7 @@ O registro de bloqueio mais recente é fornecido abaixo, para referência:',
 'note' => "'''Nota:'''",
 'previewnote' => "'''Lembre-se de que isto é apenas uma previsão.'''
 Suas alterações ainda não foram salvas!",
+'continue-editing' => 'Continuar editando',
 'previewconflict' => 'Esta previsão reflete o texto que está na área de edição acima e como ele aparecerá se você escolher salvar.',
 'session_fail_preview' => "'''Pedimos desculpas, mas não foi possível processar a sua edição devido à perda de dados da sua sessão.
 Por favor tente novamente.
@@ -1959,6 +1960,10 @@ Uma [[Special:WhatLinksHere/$2|listagem completa]] está disponível.',
 Por favor veja a [$2 página de descrição do arquivo] para mais informações.',
 'sharedupload-desc-here' => 'Este arquivo é do $1 e pode ser utilizado por outros projetos.
 A descrição na sua [$2 página de descrição de arquivo] é exibida abaixo.',
+'sharedupload-desc-edit' => 'Este arquivo é do $1 e pode ser utilizado por outros projetos.
+Talvez você deseje editar a descrição na sua [$2 página de descrição de arquivo] por lá.',
+'sharedupload-desc-create' => 'Este arquivo é do $1 e pode ser utilizado por outros projetos.
+Talvez você deseje editar a descrição na sua [$2 página de descrição de arquivo] por lá.',
 'filepage-nofile' => 'Não existe nenhum arquivo com esse nome.',
 'filepage-nofile-link' => 'Não existe nenhum arquivo com este nome, mas você pode [$1 carregá-lo].',
 'uploadnewversion-linktext' => 'Enviar uma nova versão deste arquivo',
@@ -2089,6 +2094,8 @@ Entradas <del>riscadas</del> foram resolvidas.',
 'wantedpages' => 'Páginas pedidas',
 'wantedpages-badtitle' => 'Título inválido no conjunto de resultados: $1',
 'wantedfiles' => 'Arquivos pedidos',
+'wantedfiletext-cat' => 'Os seguintes arquivos são usados, mas não existem. Arquivos de repositórios externos podem acabar sendo listados apesar de existirem. Esses falsos positivos aparecerão <del>riscados</del>. As páginas que incluem arquivos inexistentes são listadas em [[:$1]].',
+'wantedfiletext-nocat' => 'Os seguintes arquivos são usados, mas não existem. Arquivos de repositórios externos podem acabar sendo listados apesar de existirem. Esses falsos positivos aparecerão <del>riscados</del>.',
 'wantedtemplates' => 'Predefinições pedidas',
 'mostlinked' => 'Páginas com mais afluentes',
 'mostlinkedcategories' => 'Categorias com mais membros',
@@ -2097,6 +2104,7 @@ Entradas <del>riscadas</del> foram resolvidas.',
 'mostimages' => 'Imagens com mais afluentes',
 '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)',
 'shortpages' => 'Páginas curtas',
 'longpages' => 'Páginas longas',
 'deadendpages' => 'Páginas sem saída',
@@ -2166,6 +2174,11 @@ Você pode diminuir a lista escolhendo um tipo de registro, um nome de usuário
 'allpages-bad-ns' => '{{SITENAME}} não possui o espaço nominal "$1".',
 'allpages-hide-redirects' => 'Ocultar redirecionamentos',
 
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Você está visualizando uma versão de cache desta página que pode ser de $1 atrás.',
+'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.',
+
 # Special:Categories
 'categories' => 'Categorias',
 'categoriespagetext' => '{{PLURAL:$1|A seguinte categoria contém|As seguintes contém}} páginas ou mídia.
@@ -2602,8 +2615,8 @@ Isto só deve ser feito para prevenir vandalismo, e de acordo com a [[{{MediaWik
 'ipb-confirm' => 'Confirmar bloqueio',
 'badipaddress' => 'Endereço de IP inválido',
 'blockipsuccesssub' => 'Bloqueio bem sucedido',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] foi bloqueado.<br />
-Consulte a [[Special:BlockList|lista de IPs bloqueados]] para rever os bloqueios.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] foi {{GENDER:$1|bloqueado|bloqueada}}.<br />
+Consulte a [[Special:BlockList|lista de bloqueios]].',
 'ipb-blockingself' => 'Você está prestes a bloquear-se a si próprio. Você tem a certeza de que pretende fazê-lo?',
 'ipb-confirmhideuser' => 'Você está prestes a bloquear um utilizador com "Ocultar nome de utilizador/IP" ativado. Isto irá suprimir o nome do usuário de todas as listas e entradas dos registos. Tem a certeza de que pretende fazê-lo?',
 'ipb-edit-dropdown' => 'Editar motivos de bloqueio',
@@ -2657,7 +2670,7 @@ O registro de supressão é fornecido abaixo para referência:',
 'reblock-logentry' => 'modificou parâmetros de bloqueio de [[$1]] $3. O bloqueio expira em $2.',
 'blocklogtext' => 'Este é um registro de ações de bloqueio e desbloqueio.
 Endereços IP sujeitos a bloqueio automático não são listados.
-Consulte a [[Special:BlockList|lista de IPs bloqueados]] para obter a lista de bloqueios e banimentos atualmente válidos.',
+Consulte a [[Special:BlockList|lista de bloqueios]] para obter a lista de bloqueios e banimentos em efeito neste momento.',
 'unblocklogentry' => 'desbloqueou $1',
 'block-log-flags-anononly' => 'apenas usuários anônimos',
 'block-log-flags-nocreate' => 'criação de contas desabilitada',
@@ -2843,6 +2856,8 @@ Acesse [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] e [//trans
 'thumbnail_error' => 'Erro ao criar miniatura: $1',
 'djvu_page_error' => 'página DjVu inacessível',
 'djvu_no_xml' => 'Não foi possível acessar o XML do arquivo DjVU',
+'thumbnail-temp-create' => 'Não foi possível criar o arquivo temporário de miniatura',
+'thumbnail-dest-create' => 'Não foi possível salvar a miniatura no destino',
 'thumbnail_invalid_params' => 'Parâmetros de miniatura inválidos',
 'thumbnail_dest_directory' => 'Não foi possível criar o diretório de destino',
 'thumbnail_image-type' => 'Tipo de imagem não suportado',
@@ -2889,6 +2904,9 @@ Salve o arquivo no seu computador e importe-o aqui.',
 'import-invalid-interwiki' => 'Não é possível importar do wiki especificado.',
 'import-error-edit' => 'A página "$1" não foi importada porque você não tem permissão para editá-la.',
 'import-error-create' => 'A página "$1" não foi importada porque você não tem permissão para criá-la.',
+'import-error-interwiki' => 'A página "$1" não pôde ser importada pois seu nome está reservado para um link interwik.',
+'import-error-special' => 'A página "$1" não pôde ser importada porque ela pertence a um espaço nominal especial que não suporta páginas.',
+'import-error-invalid' => 'A página "$1" não pôde ser importada por seu nome ser inválido.',
 
 # Import log
 'importlogpage' => 'Registro de importações',
@@ -2900,7 +2918,13 @@ Salve o arquivo no seu computador e importe-o aqui.',
 
 # JavaScriptTest
 'javascripttest' => 'Teste de JavaScript',
+'javascripttest-disabled' => 'Essa função não foi habilitada neste wiki.',
+'javascripttest-title' => 'Executando testes para $1',
 'javascripttest-pagetext-noframework' => 'Esta página é exclusiva para testes de JavaScript.',
+'javascripttest-pagetext-unknownframework' => 'A estrutura de testes "$1" é desconhecida.',
+'javascripttest-pagetext-frameworks' => 'Escolha uma das seguintes estruturas de teste: $1',
+'javascripttest-pagetext-skins' => 'Escolha o tema para executar os testes:',
+'javascripttest-qunit-intro' => 'Veja a [$1 documentação de testes] no mediawiki.org.',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Sua página de usuário',
@@ -3723,6 +3747,7 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'version-software' => 'Software instalado',
 'version-software-product' => 'Produto',
 'version-software-version' => 'Versão',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Diretório do arquivo',
@@ -3857,6 +3882,8 @@ As imagens serão exibidas em sua resolução máxima, outros tipos de arquivos
 'newuserlog-byemail' => 'senha enviada por correio-eletrônico',
 
 # Feedback
+'feedback-bugornote' => 'Se você está preparado para descrever detalhadamente um problema técnico, [$1 relate um bug].
+Caso contrário, você poderá usar o formulário simplificado a seguir. Seu comentário será adicionado à página "[$3 $2]", junto com o seu nome de usuário e o navegador que estiver usando neste momento.',
 'feedback-subject' => 'Assunto:',
 'feedback-message' => 'Mensagem:',
 'feedback-cancel' => 'Cancelar',
@@ -3865,7 +3892,10 @@ As imagens serão exibidas em sua resolução máxima, outros tipos de arquivos
 'feedback-error1' => 'Erro: O resultado da API não foi reconhecido',
 'feedback-error2' => 'Erro: A edição falhou',
 'feedback-error3' => 'Erro: A API não responde',
+'feedback-thanks' => 'Obrigado! O seu comentário foi adicionado à página "[ $2  $1 ]".',
 'feedback-close' => 'Feito',
+'feedback-bugcheck' => 'Perfeito! Apenas verifique se não é um dos [$1 bugs já conhecidos].',
+'feedback-bugnew' => 'Eu verifiquei. Relatar um bug novo',
 
 # API errors
 'api-error-badaccess-groups' => 'Você não tem permissão para enviar arquivos para este wiki.',
@@ -3905,4 +3935,15 @@ As imagens serão exibidas em sua resolução máxima, outros tipos de arquivos
 'api-error-uploaddisabled' => 'Este wiki está com o upload de arquivos desabilitado.',
 'api-error-verification-error' => 'Este arquivo pode estar corrompido ou ter a extensão errada.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|segundo|segundos}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minuto|minutos}}',
+'duration-hours' => '$1 {{PLURAL:$1|hora|horas}}',
+'duration-days' => '$1 {{PLURAL:$1|dia|dias}}',
+'duration-weeks' => '$1 {{PLURAL:$1|semana|semanas}}',
+'duration-years' => '$1 {{PLURAL:$1|ano|anos}}',
+'duration-decades' => '$1 {{PLURAL:$1|década|décadas}}',
+'duration-centuries' => '$1 {{PLURAL:$1|século|séculos}}',
+'duration-millennia' => '$1 {{PLURAL:$1|milênio|milênios}}',
+
 );
index bd7733e..08d0cb6 100644 (file)
@@ -98,6 +98,7 @@
  * @author Sborsody
  * @author Seb35
  * @author Sherbrooke
+ * @author Shirayuki
  * @author Shushruth
  * @author Siebrand
  * @author Singularity
@@ -732,7 +733,9 @@ $1 is a filename, I think.',
 'nocookieslogin' => "This message is displayed when someone tried to login, but the browser doesn't accept cookies.",
 'nocookiesfornew' => "This message is displayed when the user tried to create a new account, but it failed the cross-site request forgery (CSRF) check. It could be blocking an attack, but most likely, the browser isn't  accepting cookies.",
 'nocookiesforlogin' => "{{optional}}
-This message is displayed when someone tried to login and the CSRF failed (most likely, the browser doesn't accept cookies). Defaults to nocookieslogin",
+This message is displayed when someone tried to login and the CSRF failed (most likely, the browser doesn't accept cookies).
+
+Defaults to '''nocookieslogin''' ({{int:nocookieslogin}})",
 'loginsuccesstitle' => 'The title of the page saying that you are logged in. The content of the page is the message "[[MediaWiki:Loginsuccess/{{SUBPAGENAME}}]]".',
 'loginsuccess' => 'The content of the page saying that you are logged in. The title of the page is "[[MediaWiki:Loginsuccesstitle/{{SUBPAGENAME}}|{{int:loginsuccesstitle}}]]". $1 is the name of the logged in user.
 
@@ -1020,6 +1023,16 @@ When templates are expanded, there is a size limit for the number of bytes yield
 'language-converter-depth-warning' => 'Error message shown when a page uses too deeply nested language conversion syntax
 
 * <tt>$1</tt> is the value of the depth limit',
+'node-count-exceeded-category' => 'This message is used as a category name for a [[mw:Help:Tracking categories|tracking category]] where pages are placed automatically if the node-count of the preprocessor exceeds the limit.',
+'node-count-exceeded-warning' => 'Error message shown when a page exceeded the node-count limit of the preprocessor
+
+* <tt>$1</tt> is the value of the node-count limit
+* <tt>$2</tt> is the value of the max node-count limit',
+'expansion-depth-exceeded-category' => 'This message is used as a category name for a [[mw:Help:Tracking categories|tracking category]] where pages are placed automatically if the expansion depth of the preprocessor exceeds the limit.',
+'expansion-depth-exceeded-warning' => 'Error message shown when a page exceeded the expansion depth limit of the preprocessor
+
+* <tt>$1</tt> is the value of the depth limit
+* <tt>$2</tt> is the value of the max depth limit',
 
 # "Undo" feature
 'undo-success' => 'Text on special page to confirm edit revert. You arrive on this page by clicking on the "undo" link on a revision history special page.
index 8dab70f..988a978 100644 (file)
@@ -647,6 +647,9 @@ $2",
 'customjsprotected' => "Manam saqillasunkichu kay JavaScript p'anqata llamk'apuyta, huk ruraqpa kikin tiyachisqankunayuq kaptinmi.",
 'ns-specialprotected' => "{{ns:special}} suti k'itipi p'anqakunaqa manam llamk'apunallachu.",
 'titleprotected' => "Kay p'anqa sutitaqa [[User:$1|$1]] sutiyuq ruraq kamariymanta hark'arqanmi, kayraykum nispa: ''$2''.",
+'filereadonlyerror' => 'Manam atinichu "$1" sutiyuq willañiqita hukchayta, "$2" sutiyuq willañiqi churamuna ñawirillanapaq kachkaptinmi.
+
+Amachaq kamachiqqa kayrayku amachani nispa nirqanmi: "$3".',
 
 # Virus scanner
 'virus-badscanner' => "Manam allintachu churapusqa: mana riqsisqa añaw maskaq: ''$1''",
@@ -729,6 +732,7 @@ Ama hina kaspa, chaskispaykiqa ruraqpa sutiykita nispa musuqmanta yaykuy.',
 'emailconfirmlink' => 'E-chaski imamaytaykita takyachiy',
 'invalidemailaddress' => "E-chaski imamaytaykiqa manam allinchu, manachá allinta qillqasqa. Ama hina kaspa, musuq allin sananchayuq imamaytaykita qillqamuy icha k'itichata ch'usaqchay.",
 'cannotchangeemail' => 'Ruraqpa rakiqunanpi e-chaski imamaytakunaqa kay wikipi manam hukchanallachu.',
+'emaildisabled' => 'Kay tiyayqa e-chaskita manam kachayta atinchu.',
 'accountcreated' => 'Rakiqunaqa kichasqañam',
 'accountcreatedtext' => '$1 sutiyuq ruraqpa rakiqunanqa kichasqañam.',
 'createaccount-title' => '{{SITENAME}}paq musuq rakiqunata kichariy',
@@ -913,7 +917,9 @@ Hark'ay hallch'api qhipaq hark'asqataqa kaypim rikunki willasunaykipaq:",
 'userinvalidcssjstitle' => "'''Paqtataq:''' Manam kanchu \"\$1\" qara. Yuyariy, kikinpa .css, .js p'anqankunaqa uchuy sanampa umalliyuqmi, ahinataq {{ns:user}}:Foo/vector.css manataq  {{ns:user}}:Foo/Vector.css nisqachu.",
 'updated' => '(Musuqchasqa)',
 'note' => "'''Musyay:'''",
-'previewnote' => "'''Yuyaykuy: Kayqa manaraq waqaychaspa qhawariymi!'''",
+'previewnote' => "'''Yuyaykuy: Kayqa qhawariyllam.'''
+Llamk'apusqaykiqa manaraqmi waqaychasqachu!",
+'continue-editing' => "Llamk'apuyta qatiykuy",
 'previewconflict' => "Rikuchkanki kay p'anqataqa, ima hinachus waqaychasqa kanqa.",
 'session_fail_preview' => "'''Achachaw! Llamk'apusqaykiqa manam waqaychasqachu, llamk'ana tiyaypa willankuna chinkaptinmi. Ama hina kaspa, musuqmanta ruraykachay. Mana atispaykiqa, [[Special:UserLogout|lluqsispa]] musuqmanta yaykuy.'''",
 'session_fail_preview_html' => "'''Achachaw! Llamk'apusqaykiqa manam waqaychasqachu, llamk'ana tiyaypa willankuna chinkaptinmi.'''
@@ -925,6 +931,7 @@ Hark'ay hallch'api qhipaq hark'asqataqa kaypim rikunki willasunaykipaq:",
 Kayqa maykunapi tukukun, mana allin wakichisqa proxy sirwiytam llamk'achiptiyki.'''",
 'edit_form_incomplete' => "'''Llamk'apuna hunt'ana p'anqamanta huk willasqakunaqa sirwiqman manam chayarqanchu; llamk'apusqaykikuna allinlla kachkaymanta iskaylla llanchispa musuqmanta ruraykachay.'''",
 'editing' => "Llamk'apuspa: $1",
+'creating' => 'Kamarispa: $1',
 'editingsection' => "Llamk'apuspa: $1 (raki)",
 'editingcomment' => "Llamk'apuspa: $1 (musuq raki)",
 'editconflict' => 'Ruray taripanakuy: $1',
@@ -985,6 +992,7 @@ Qullusqachá.",
 'edit-no-change' => "Manapuni hukchaptiykim, llamk'apusqayki manam hallch'asqachu.",
 'edit-already-exists' => "Manam atinichu musuq p'anqata kamariyta.
 Kachkañam.",
+'defaultmessagetext' => 'Ñawpaq qillqa',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "Paqtataq: Kay p'anqaqa nisyu achka qullqipaq t'ikrana rurana qayayniyuqmi.
@@ -1000,6 +1008,10 @@ Chay niykunaqa manam chaninchasqachu.",
 'parser-template-loop-warning' => 'Muyurikuq pusapunam tarisqa: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Pusapunap muyurikuy saywanmi yallisqa ($1)',
 'language-converter-depth-warning' => "Rimay t'ikranap ukhu kayninpa saywanqa yallisqam ($1)",
+'node-count-exceeded-category' => "Watasqakunata nisyu yupayniyuq p'anqakuna",
+'node-count-exceeded-warning' => "P'anqaqa watasqakunata nisyu yupayniyuqmi",
+'expansion-depth-exceeded-category' => "Nisyu mast'ariy ukhu kaqniyuq p'anqakuna",
+'expansion-depth-exceeded-warning' => "P'anqaqa nisyu mast'ariy ukhu kaqniyuqmi",
 
 # "Undo" feature
 'undo-success' => 'Rurasqata kutichiyta atinkim. Manaraq kutichispaykiqa, kay qatiq wakichayta qhawariy rikunaykipaq chiqapta munasqaykichu manallachu, chaymantataq waqaychay kutichinapaq.',
@@ -1142,7 +1154,7 @@ Ama hina kaspa, hallch'akunapi qhaway.",
 
 # Suppression log
 'suppressionlog' => "Ñit'ipay hallch'asqa",
-'suppressionlogtext' => "Kay qatiq sutisuyupiqa ñaqha qullusqakunatam hark'asqakunatapas rikunki, kamachiqkunamanta pakasqa samiqniyuq. [[Special:BlockList|IP hark'ay sutisuyuta]] qhaway kunan hark'asqakunata rikunaykipaq.",
+'suppressionlogtext' => "Kay qatiq sutisuyupiqa ñaqha qullusqakunatam hark'asqakunatapas rikunki, kamachiqkunamanta pakasqa samiqniyuq. [[Special:BlockList|Hark'ay sutisuyuta]] qhaway kunan hark'asqakunata rikunaykipaq.",
 
 # History merging
 'mergehistory' => "P'anqa wiñay kawsaykunata huñuy",
@@ -1560,6 +1572,7 @@ $1 {{PLURAL:$1|sanampamanta|sanampakunamanta}} aswan pisi kananmi.',
 'newsectionsummary' => 'Musuq raki: /* $1 */',
 'rc-enhanced-expand' => 'Imaymanachakunata rikuchiy (JavaScript kananmi)',
 'rc-enhanced-hide' => 'Imaymanachakunata pakay',
+'rc-old-title' => 'ñawpaqta "$1" sutiwan kamarisqa',
 
 # Recent changes linked
 'recentchangeslinked' => "Hukchasqa t'inkimuq",
@@ -1710,6 +1723,7 @@ $1',
 'backend-fail-closetemp' => "Manam atinichu mit'alla willañiqita wichq'ayta.",
 'backend-fail-read' => 'Manam atinichu $1 sutiyuq willañiqita ñawiriyta.',
 'backend-fail-create' => 'Manam atinichu $1 sutiyuq willañiqita kamariyta.',
+'backend-fail-maxsize' => 'Manam atinichu $1 sutiyuq willañiqita kamariyta, {{PLURAL:$2|huk bytemanta|$2 bytemanta}} aswan hatun kaptinmi.',
 'backend-fail-readonly' => '"$1" sutiyuq willañiqi hallch\'ana sirwiqqa ñawirinallapaqmi kachkan, kayrayku: "$2"',
 'backend-fail-synced' => '"$1" sutiyuq willañiqiqa manam sinchichu kachkan ukhupi willañiqi hallch\'ana sirwiqkunapi',
 'backend-fail-connect' => 'Manam atinichu "$1" sutiyuq willañiqi hallch\'ana sirwiqwan t\'inkinakuyta.',
@@ -1717,6 +1731,10 @@ $1',
 'backend-fail-contenttype' => 'Manam atinichu "$1" nisqapi hallch\'ana willañiqip samiqninpa layanta yuqanchayta.',
 'backend-fail-batchsize' => "Willañiqi hallch'ana sirwiqmanqa $1 willañiqi {{PLURAL:$1|ruranayuq|ruranayuq}} tawqam qusqa; saywataq $2 {{PLURAL:$1|ruranam|ruranam}}.",
 
+# File journal errors
+'filejournal-fail-dbconnect' => "Manam atinichu \"\$1\" sutiyuq willañiqi hallch'ana sirwiqpaq p'unchawnintin hallch'awan t'inkiyta.",
+'filejournal-fail-dbquery' => 'Manam atinichu "$1" sutiyuq willañiqi hallch\'ana sirwiqpaq p\'unchawnintin hallch\'ata musuqchayta.',
+
 # Lock manager
 'lockmanager-notlocked' => 'Manam atinichu "$1" nisqata paskayta; manam hark\'asqachu.',
 'lockmanager-fail-closelock' => 'Manam atinichu "$1" nisqapaq hark\'ana willañiqita wichq\'ayta.',
@@ -1833,6 +1851,10 @@ Munaspaykiqa, [[Special:WhatLinksHere/$2|hunt'a sutisuyuta]] qhaway.",
 Ama hina kaspa, [$2 willañiqi ch'uyanchana p'anqata] qhaway astawan willachikunaykipaq.",
 'sharedupload-desc-here' => "Kay p'anqaqa $1 nisqamantam. Huk ruraykamaykunapipas llamk'achinapaq kanman.
 [$2 Willañiqi ch'uyanchana p'anqanpi] ch'uyanchaytaqa kay qatiqpim rikunki.",
+'sharedupload-desc-edit' => "Kay p'anqaqa $1 nisqamantam. Huk ruraykamaykunapipas llamk'achinapaq kanman.
+[$2 Willañiqi ch'uyanchana p'anqanpi] ch'uyanchayta llamk'apuytachá munaykiman.",
+'sharedupload-desc-create' => "Kay p'anqaqa $1 nisqamantam. Huk ruraykamaykunapipas llamk'achinapaq kanman.
+[$2 Willañiqi ch'uyanchana p'anqanpi] ch'uyanchayta llamk'apuytachá munaykiman.",
 'filepage-nofile' => 'Manam kanchu kay sutiyuq willañiqi.',
 'filepage-nofile-link' => 'Manam kanchu kay sutiyuq willañiqi, ichataq [$1 churkuytam] atinki.',
 'uploadnewversion-linktext' => 'Kay willañiqi ñaqha musuqchasqata churkuy',
@@ -2039,6 +2061,12 @@ Rikuyniykitaqa k'ullkuchaytam atinki hallch'a layata, ruraqpa sutinta (uchuy ich
 'allpagesprefix' => "Rikuchiy kay k'askaqwan qallariq p'anqakunata:",
 'allpagesbadtitle' => "Qusqa p'anqap sutinqa manam allinchu icha rimaypura, interwiki ñawpa k'askaqniyuq. P'anqa sutipaq mana saqillasqa sananchayuqchá.",
 'allpages-bad-ns' => '{{SITENAME}} tiyaypiqa "$1" suti k\'iti manam kanchu.',
+'allpages-hide-redirects' => 'Pusapunakunata pakay',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => "Kay p'anqapaq hallch'asqa musuqchasqatam rikuchkanki, $1 pachakamam ñaqha kanman.",
+'cachedspecial-viewing-cached-ts' => "Kay p'anqapaq hallch'asqa musuqchasqatam rikuchkanki, manachá kunallan musuqchasqachu kanman.",
+'cachedspecial-refresh-now' => 'Qhipaq kaqta qhaway.',
 
 # Special:Categories
 'categories' => 'Katiguriyakuna',
@@ -2466,7 +2494,7 @@ Willariy imaraykum hark'anki (ahinataq: sapaq wandaluchasqa p'anqakunamanta will
 'ipb-confirm' => "Hark'ayta takyachiy",
 'badipaddress' => 'IP huchhaqa manam allinchu.',
 'blockipsuccesssub' => "Ruraqqa hark'asqañam",
-'blockipsuccesstext' => "[[Special:Contributions/$1|$1]] huchhayuq tiyayqa hark'asqañam. <br />[[Special:BlockList|Hark'asqakunamanta p'anqata]] qhaway hark'akunata hukchanaykipaq.",
+'blockipsuccesstext' => "[[Special:Contributions/$1|$1]] nisqaqa hark'asqam. <br />[[Special:BlockList|Hark'ay sutisuyuta]] qhaway hark'akunata hukchanaykipaq.",
 'ipb-blockingself' => "Kikiykitam hark'aykachachkanki!  Chiqapta kayta rurayta munankichu?",
 'ipb-confirmhideuser' => 'Ruraqta hark\'aykachachkanki, payman "Ruraqta pakay" nisqam.  Chaywanqa manam pipas chay ruraqpa sutinta ima sutisuyupipas hallch\'apipas rikunqachu.  Chiqapta kayta rurayta munankichu?',
 'ipb-edit-dropdown' => "Hark'aypa hamunta llamk'apuy",
@@ -2516,7 +2544,7 @@ Willariy imaraykum hark'anki (ahinataq: sapaq wandaluchasqa p'anqakunamanta will
 'blocklog-showsuppresslog' => "Kay ruraqqa ñawpaqta hark'asqam pakasqapas. Ñit'ipay hallch'ataqa kaypim rikunki willasunaykipaq:",
 'blocklogentry' => "hark'an [[$1]]-ta kay pachakama: $2 $3",
 'reblock-logentry' => "hukchan [[$1]]-paq hark'ana allinchanakunata kay pachakama hark'aspa: $2 $3",
-'blocklogtext' => "Kayqa ruraqta hark'asqakunap qispichisqakunappas hallch'anmi. Kikinmanta hark'asqa tiyaykunataqa manam kaypi rikunkichu. [[Special:BlockList|Hark'asqakunamanta p'anqata]] qhaway kunan hark'asqakunata rikunaykipaq.",
+'blocklogtext' => "Kayqa ruraqta hark'asqakunap qispichisqakunappas hallch'anmi. Kikinmanta hark'asqa tiyaykunataqa manam kaypi rikunkichu. [[Special:BlockList|Hark'ay sutisuyuta]] qhaway kunan hark'asqakunata rikunaykipaq.",
 'unblocklogentry' => 'paskan "$1"-ta hark\'asqa kaymanta',
 'block-log-flags-anononly' => 'sutinnaqlla',
 'block-log-flags-nocreate' => 'rakiquna kichariyman ama nisqa',
@@ -2763,7 +2791,7 @@ Tukuy hawa wikimanta chaskisqakunaqa [[Special:Log/import|hawamanta chaskiy hall
 
 # JavaScriptTest
 'javascripttest' => 'JavaScript llanchiy',
-'javascripttest-disabled' => 'Kay ruranamanqa ama nisqam.',
+'javascripttest-disabled' => 'Kay ruranaqa kay wikipi manam atichisqachu.',
 'javascripttest-title' => '$1 llanchiykunam richkan',
 'javascripttest-pagetext-noframework' => "Kay p'anqaqa JavaScript llanchina purichinallapaqmi kachun.",
 'javascripttest-pagetext-unknownframework' => 'Mana riqsisqa "$1" nisqa llanchina inchu ruray',
@@ -3570,6 +3598,9 @@ MediaWikitaqa mast'ariyku runakunata yanapanapaqmi, ichataq MANAM FIYAKUYTA ATIY
 'version-software' => "Tiyachisqa llamp'u kaq",
 'version-software-product' => 'Ruruchisqa',
 'version-software-version' => 'Musuqchasqa',
+'version-entrypoints' => "Yaykuna t'uksi URL",
+'version-entrypoints-header-entrypoint' => "Yaykuna t'uksi",
+'version-entrypoints-header-url' => 'URL tiyay',
 
 # Special:FilePath
 'filepath' => 'Willañiqi ñan',
@@ -3757,4 +3788,15 @@ Mana chayqa, kay qatiqpi kaq hunt'ana p'anqatam llamk'achiyta atinki. Willapuyni
 'api-error-uploaddisabled' => 'Kay wikipiqa manam churkuyta atinkichu.',
 'api-error-verification-error' => "Kay willañiqiqa waqllisqachá, icha pantasqa k'askaqniyuqchá.",
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|sikundu|sikundukuna}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minutu|minutukuna}}',
+'duration-hours' => '$1 {{PLURAL:$1|ura|urakuna}}',
+'duration-days' => "{{PLURAL:$1|p'unchaw|p'unchawkuna}}",
+'duration-weeks' => '{{PLURAL:$1|simana|simanakuna}}',
+'duration-years' => '{{PLURAL:$1|wata|watakuna}}',
+'duration-decades' => '{{PLURAL:$1|chunkawata|chunkawatakuna}}',
+'duration-centuries' => '{{PLURAL:$1|pachakwata|pachakwatakuna}}',
+'duration-millennia' => '{{PLURAL:$1|waranqawata|waranqawatakuna}}',
+
 );
index c1d4116..cf299df 100644 (file)
@@ -1078,6 +1078,8 @@ Acsete argumente au fost omise.',
 'parser-template-loop-warning' => 'Buclă de formate detectată: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Limită de adâncime a recursiei depășită ($1)',
 'language-converter-depth-warning' => 'Limita adâncimii convertorului de limbă a fost depășită ($1)',
+'node-count-exceeded-category' => 'Pagini unde numărul de noduri este depășit',
+'node-count-exceeded-warning' => 'Pagina a depășit numărul de noduri',
 
 # "Undo" feature
 'undo-success' => 'Modificarea poate fi anulată. Verificați diferența de dedesupt și apoi salvați pentru a termina anularea modificării.',
index 46a196c..eb79fb6 100644 (file)
@@ -726,6 +726,7 @@ Arrecuerdete ca jndr'à le file personalizzete .css e .js s'ause scrivere le tit
 'note' => "'''Vide Bbuene:'''",
 'previewnote' => "'''Arrecuerdete queste è sole 'n'andeprime.'''
 le cangiaminde non g'onne state angore reggistrate!",
+'continue-editing' => "Condinue 'u cangiamende",
 'previewconflict' => "Sta andeprime fece vedè 'u teste ca ste jndr'à 'u teste de l'area de sus cumme avène fore ce tu decide cu reggistre.",
 'session_fail_preview' => "'''Ne dispiace! Non ge putime processà 'u cangiamende tue purcè s'a perse 'a sessione de le date.
 Pe piacere pruève 'n'otra vote.
@@ -3887,6 +3888,7 @@ Ce nò, tu puè ausà 'u module facile aqquà sotte. 'U commende tune avène agg
 'api-error-filename-tooshort' => "'U nome d'u file jè troppe curte.",
 'api-error-filetype-banned' => 'Stu tipe de file jè vietate.',
 'api-error-filetype-missing' => "'U file jè senze 'n'estenzione.",
+'api-error-hookaborted' => "'U cangiamende ca tu stè pruève a ffà ha state inderrotte da 'n'estenzione.",
 'api-error-http' => "Errore inderne: Non ge se riesce a collegà a 'u server",
 'api-error-illegal-filename' => "'U nome d'u file non g'è permesse.",
 'api-error-invalid-file-key' => "Errore inderne: 'U file non ge se iacchie jndr'à memorie temboranèe.",
index a351629..b3f8868 100644 (file)
@@ -19,6 +19,7 @@
  * @author Mahitgar
  * @author Naveen Sankar
  * @author Omnipaedista
+ * @author Shantanoo
  * @author Shijualex
  * @author Shubha
  * @author Vibhijain
@@ -1073,7 +1074,7 @@ $2
 'notitlematches' => 'न कस्यापि पृष्ठस्य शीर्षकम् अस्य समम्।',
 'notextmatches' => 'न कस्यापि पृष्ठस्य पाठः अस्य सममस्ति',
 'prevn' => 'प्राक्तनानि {{PLURAL:$1|$1}}',
-'nextn' => 'अग्रिमाणि{{PLURAL:$1|$1}}',
+'nextn' => 'अग्रिमाणि {{PLURAL:$1|$1}}',
 'prevn-title' => 'प्राक्तन-{{PLURAL:$1|फलितम्| फलितानि}}',
 'nextn-title' => 'प्राक्तन-{{PLURAL:$1|फलितम्| फलितानि}}',
 'shown-title' => 'प्रत्येकस्मिन् पृष्ठे $1 {{PLURAL:$1|फलितम्|फलितानि}} दर्श्यताम्',
index f84871a..8800a38 100644 (file)
@@ -731,6 +731,7 @@ Siddu sî n’utenti anònimu e riteni ca li cummenti prisenti nta sta pàggina
 '''Siddu chistu è nu tintativu liggìttimu di canciamentu, arriprova. Siddu lu prubbrema pirsisti, si pò pruvari a [[Special:UserLogout|sculligàrisi]] e effittuari n'accessu novu.'''",
 'token_suffix_mismatch' => "'''Lu canciamentu nun fu sarvatu pirchì lu client ammustrau di gèstiri 'n modu sbagghiatu li caràttiri di puntiggiatura nta lu token assuciatu a iddu. P'evitari na curruzzioni pussìbbili dô testu dâ pàggina, fu rifiutatu tuttu lu canciamentu. Sta situazzioni pò virificàrisi, certi voti, quannu s'adòpiranu arcuni sirvizza di proxy anònimi via web chi prisèntanu bug.'''",
 'editing' => 'Canciu di la vuci "$1"',
+'creating' => 'Stai criannu $1',
 'editingsection' => 'Canciamentu di $1 (sezzioni)',
 'editingcomment' => 'Canciu di $1 (nova sizzioni)',
 'editconflict' => "Cunflittu d'edizzioni supra $1",
index 0cf1cb8..6399b56 100644 (file)
@@ -583,6 +583,7 @@ Prašuom pamiegintė vielēk. Jei šėtā napaded, pamieginkėt atsėjongtė ėr
 ''Kadaogi šėtom pruojekte grīnasės HTML īr ijongts, parveiza īr pasliepta kāp atsargoma prėimonė priš JavaScript atakas.''
 '''Jei tā teisiets keitėma bandīms, prašuom pamiegint viel. Jei šėtā napaded, pamieginkėt atsėjongtė ėr prėsėjongtė atgal.'''",
 'editing' => 'Taisuoms straipsnis - $1',
+'creating' => 'Dėrbama $1',
 'editingsection' => 'Taisuoms $1 (skėrsnelis)',
 'editingcomment' => 'Taisuoms $1 (naus skīrius)',
 'editconflict' => 'Ėšpreskėt kuonflėkta: $1',
index 359b1c8..cfca905 100644 (file)
@@ -594,6 +594,9 @@ $2',
 'ns-specialprotected' => 'Posebne stranice se ne mogu uređivati.',
 'titleprotected' => 'Naslov stranice je zaštićen od postavljanja od strane korisnika [[User:$1|$1]].
 Kao razlog je naveden "\'\'$2\'\'".',
+'filereadonlyerror' => 'Ne mogu da izmenim datoteku „$1“ jer je riznica „$2“ u režimu za čitanje.
+
+Administrator koji ju je zaključao ponudio je sledeće objašnjenje: „$3“.',
 
 # Virus scanner
 'virus-badscanner' => "Loša konfiguracija: nepoznati anti-virus program: ''$1''",
@@ -688,6 +691,7 @@ Nijedan e-mail neće biti poslan za bilo koju uslugu od slijedećih.',
 'invalidemailaddress' => 'Ova e-mail adresa ne može biti prihvaćena jer je u neodgovarajućem obliku.
 Molimo vas da unesete ispravnu adresu ili ostavite prazno polje.',
 'cannotchangeemail' => 'Na ovom wikiju ne možete promeniti e-mail adresu računa.',
+'emaildisabled' => 'Ova web-stranica ne može da šalje e-poruke.',
 'accountcreated' => 'Korisnički račun je napravljen',
 'accountcreatedtext' => 'Korisnički račun za $1 je napravljen.',
 'createaccount-title' => 'Pravljenje korisničkog računa za {{SITENAME}}',
@@ -893,8 +897,9 @@ Posljednje stavke evidencije blokiranja možete pogledati ispod:',
 Ne zaboravite da imena stranica s .css i .js kodom počinju malim slovom, npr. {{ns:user}}:Foo/vector.css, a ne {{ns:user}}:Foo/Vector.css.",
 'updated' => '(Osvježeno)',
 'note' => "'''Napomena:'''",
-'previewnote' => "'''Upamtite da je ovo samo pretpregled.'''
-Vaše izmjene još uvijek nisu snimljene!",
+'previewnote' => "'''Ne zaboravite da je ovo samo pregled'''
+Izmjene stranice nisu još sačuvane!",
+'continue-editing' => 'Nastavak uređivanja',
 'previewconflict' => 'Ovaj pretpregled reflektuje tekst u gornjem polju
 kako će izgledati ako pritisnete "Snimi stranicu".',
 'session_fail_preview' => "'''Izvinjavamo se! Nismo mogli obraditi vašu izmjenu zbog gubitka podataka o prijavi. Molimo pokušajte ponovno. Ako i dalje ne bude radilo, pokušajte se [[Special:UserLogout|odjaviti]] i ponovno prijaviti.'''",
@@ -908,6 +913,7 @@ Izmjena je odbačena da bi se spriječilo uništavanje teksta stranice.
 To se događa ponekad kad korisite problematični anonimni proxy koji je baziran na web-u.",
 'edit_form_incomplete' => "'''Neki dijelovi uređivačkog obrasca nisu došli do servera; dvaput provjerite da su vaše izmjene nepromjenjene i pokušajte ponovno.'''",
 'editing' => 'Uređujete $1',
+'creating' => 'Stvaranje $1',
 'editingsection' => 'Uređujete $1 (sekciju)',
 'editingcomment' => 'Uređujete $1 (nova sekcija)',
 'editconflict' => 'Sukobljenje izmjene: $1',
@@ -973,6 +979,7 @@ Izgleda da je obrisana.',
 'edit-no-change' => 'Vaša izmjena je ignorirana, jer nije bilo promjena teksta stranice.',
 'edit-already-exists' => 'Stranica nije mogla biti kreirana.
 Izgleda da već postoji.',
+'defaultmessagetext' => 'Uobičajeni tekst poruke',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Upozorenje: Ova stranica sadrži previše poziva opterećujućih parserskih funkcija.
@@ -1133,7 +1140,8 @@ Molimo provjerite zapise.',
 
 # Suppression log
 'suppressionlog' => 'Registri sakrivanja',
-'suppressionlogtext' => 'Ispod je spisak brisanja i blokiranja koja su povezana sa sadržajem koji je sakriven od administratora. Vidi [[Special:IPBlockList|spisak IP blokiranja]] za pregled trenutno važećih blokada.',
+'suppressionlogtext' => 'Ispod je spisak brisanja i blokiranja koja su povezana sa sadržajem koji je sakriven od administratora. 
+Vidi [[Special:BlockList|spisak blokiranja]] za pregled trenutno važećih blokada.',
 
 # History merging
 'mergehistory' => 'Spoji historije stranice',
@@ -1559,6 +1567,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'newsectionsummary' => '/* $1 */ nova sekcija',
 'rc-enhanced-expand' => 'Pokaži detalje (neophodan JavaScript)',
 'rc-enhanced-hide' => 'Sakrij detalje',
+'rc-old-title' => 'prvobitno kreirano kao "$1"',
 
 # Recent changes linked
 'recentchangeslinked' => 'Srodne izmjene',
@@ -1727,6 +1736,7 @@ Ako se problem ne riješi, kontaktirajte [[Special:ListUsers/sysop|administrator
 'backend-fail-closetemp' => 'Ne mogu da zatvorim privremenu datoteku.',
 'backend-fail-read' => 'Ne mogu da pročitam datoteku $1.',
 'backend-fail-create' => 'Ne mogu da napravim datoteku $1.',
+'backend-fail-maxsize' => 'Ne mogu da napravim datoteku $1 jer je veća od {{PLURAL:$2|$2 bajta|$2 bajta|$2 bajtova}}.',
 'backend-fail-readonly' => 'Skladišna osnova „$1“ trenutno ne može da se zapisuje. Navedeni razlog glasi: „$2“',
 'backend-fail-synced' => 'Datoteka „$1“ je nedosledna između unutrašnjih skladišnih osnova',
 'backend-fail-connect' => 'Ne mogu da se povežem sa skladišnom osnovom „$1“.',
@@ -1853,6 +1863,10 @@ Slijedeći popis prikazuje {{PLURAL:$1|stranice koje|prvih $1 stranica koje}} vo
 Molimo pogledajte [$2 stranicu opisa datoteke] za ostale informacije.',
 'sharedupload-desc-here' => 'Ova datoteka je sa $1 i može se koristiti i na drugim projektima.
 Opis sa njene [$2 stranice opisa datoteke] je prikazan ispod.',
+'sharedupload-desc-edit' => 'Ova datoteka se nalazi na $1 i može da se koristi na drugim projektima.
+Njen opis možete da izmenite na [$2 odgovarajućoj stranici].',
+'sharedupload-desc-create' => 'Ova datoteka se nalazi na $1 i može da se koristi na drugim projektima.
+Njen opis možete da izmenite na [$2 odgovarajućoj stranici].',
 'filepage-nofile' => 'Ne postoji datoteka s ovim nazivom.',
 'filepage-nofile-link' => 'Ne postoji datoteka s ovim imenom, ali je možete [$1 postaviti].',
 'uploadnewversion-linktext' => 'Postavite novu verziju ove datoteke/fajla',
@@ -2066,6 +2080,7 @@ Možete specificirati prikaz izabiranjem specifičnog spiska, korisničkog imena
 'allpagesbadtitle' => 'Dati naziv stranice je nepravilan ili ima međujezički ili interwiki prefiks.
 Možda sadrži jedan ili više znakova koji se ne mogu koristiti u naslovima.',
 'allpages-bad-ns' => '{{SITENAME}} nema imenski prostor "$1".',
+'allpages-hide-redirects' => 'Sakrij preusmerenja',
 
 # Special:Categories
 'categories' => 'Kategorije',
@@ -2566,8 +2581,8 @@ Evidencija sakrivanja je prikazana ispod kao referenca:',
 'blocklogentry' => 'blokiran [[$1]] s rokom: $2 $3',
 'reblock-logentry' => 'promjena postavki blokiranja za [[$1]] sa vremenom isteka u $2 $3',
 'blocklogtext' => 'Ovo je historija akcija blokiranja i deblokiranja korisnika.
-Automatsko blokirane IP adrese nisu uspisane ovde.
-Pogledajte [[Special:BlockList|blokirane IP adrese]] za spisak trenutnih zabrana i blokiranja.',
+Automatski blokirane IP adrese nisu navedene ovdje.
+Pogledajte [[Special:BlockList|spisak blokiranja]] za spisak trenutnih zabrana i blokiranja.',
 'unblocklogentry' => 'deblokiran $1',
 'block-log-flags-anononly' => 'samo anonimni korisnici',
 'block-log-flags-nocreate' => 'pravljenje računa onemogućeno',
@@ -2831,7 +2846,7 @@ Molimo pokušajte ponovno.',
 
 # JavaScriptTest
 'javascripttest' => 'Javaskript test',
-'javascripttest-disabled' => 'Ova funkcija je onemogućena.',
+'javascripttest-disabled' => 'Ova funkcija je onemogućena na ovom wikiju.',
 'javascripttest-title' => 'Izvršavanje testova za $1',
 'javascripttest-pagetext-noframework' => 'Ova stranica je rezervisana za izvršavanje javaskript testova.',
 'javascripttest-pagetext-unknownframework' => 'Nepoznati radni okvir „$1“.',
@@ -3638,6 +3653,7 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'version-software' => 'Instalirani softver',
 'version-software-product' => 'Proizvod',
 'version-software-version' => 'Verzija',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Putanja datoteke',
@@ -3826,4 +3842,15 @@ U suprotnom, poslužite se jednostavnim obrascem ispod. Vaš komentar će stajat
 'api-error-uploaddisabled' => 'Postavljanje je onemogućeno na ovoj wiki.',
 'api-error-verification-error' => 'Ova datoteka je možda oštećenja ili ima pogrešan nastavak.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|sekunda|sekunde}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minuta|minuta}}',
+'duration-hours' => '$1 {{PLURAL:$1|sat|sati}}',
+'duration-days' => '$1 {{PLURAL:$1|dan|dana}}',
+'duration-weeks' => '$1 {{PLURAL:$1|sedmica|sedmica}}',
+'duration-years' => '$1 {{PLURAL:$1|godina|godina}}',
+'duration-decades' => '$1 {{PLURAL:$1|decenija|decenija}}',
+'duration-centuries' => '$1 {{PLURAL:$1|vijek|vijekova}}',
+'duration-millennia' => '$1 {{PLURAL:$1|milenijum|milenijuma}}',
+
 );
index 068065f..87a157c 100644 (file)
@@ -442,8 +442,8 @@ $1",
 'mainpage' => 'මුල් පිටුව',
 'mainpage-description' => 'මුල් පිටුව',
 'policy-url' => 'Project:ප්‍රතිපත්තිය',
-'portal' => 'පà·\8aâ\80\8dරජà·\8f à¶¯à·\8aà·\80à·\8fරය',
-'portal-url' => 'Project:පà·\8aâ\80\8dරජà·\8f à¶¯à·\8aà·\80à·\8fරය',
+'portal' => 'පà·\8aâ\80\8dරජà·\8f à¶´à·\92à·\80à·\92à·\83à·\94ම',
+'portal-url' => 'Project:පà·\8aâ\80\8dරජà·\8f à¶´à·\92à·\80à·\92à·\83à·\94ම',
 'privacy' => 'පුද්ගලිකත්ව ප්‍රතිපත්තිය',
 'privacypage' => 'Project:පුද්ගලිකත්ව ප්‍රතිපත්තිය',
 
@@ -578,7 +578,7 @@ URL  සඳහන් කරමින්, මෙම කරුණ [[Special:ListUs
 'editinginterface' => "'''අවවාදයයි:''' මෘදුකාංගයට අතුරුමුව පෙළ සැපයීමට භාවිතා වන පිටුවක් ඔබ විසින් සංස්කරණය කරනු ලබයි.
 මෙම පිටුවට සිදු කරන වෙනස්වීම් විසින් අනෙකුත් පරිශීලකයන්ගේ පරිශීලක අතුරුමුවෙහි පෙනුමට බලපෑම් එල්ල කෙරෙනු ඇත.
 පරිවර්තන සඳහා, මීඩියාවිකි ප්‍රාදේශීයකරන ව්‍යාපෘතිය, [//translatewiki.net/wiki/Main_Page?setlang=si translatewiki.net], භාවිතා කිරීම සලකා බැලීමට කාරුණික වන්න.",
-'sqlhidden' => '(එස්කිවුඑල් විපරම සඟවා ඇත)',
+'sqlhidden' => '(SQL query සඟවා ඇත)',
 'cascadeprotected' => '"තීරු දර්ශන" විකල්පය සක්‍රීයනය කොට එමගින් ආරක්‍ෂණය කල පහත දැක්වෙන {{PLURAL:$1|පිටුව|පිටු}} අඩංගු කර ඇති බැවින්, මෙම පිටුව සංස්කරණය කිරීමෙන් වලකා ඇත:
 $2',
 'namespaceprotected' => "'''$1''' නාමඅවකාශයෙහි පිටු සංස්කරණය කිරීමට ඔබහට අවසර නොමැත.",
@@ -600,7 +600,7 @@ $2',
 ඔබගේ බ්‍රවුසරයෙහි පූර්වාපේක්‍ෂී සංචිතය (කෑෂය) පිරිසිදුකරන තෙක්, සමහරක් පිටු විසින් ඔබ තවදුරටත් පිවිසී ඇති බවක් දිගටම පෙන්නුම් කිරීමට ඉඩ ඇත.",
 'welcomecreation' => '== ආයුබෝවන්, $1! ==
 
-à¶\94බâ\80\8dà¶\9cà·\9a à¶\9cà·\92ණà·\94ම à¶­à·\90නà·\93 à¶\87ත.
+à¶\94බâ\80\8dà¶\9cà·\9a à¶\9cà·\92ණà·\94ම à¶­à¶±à¶± à¶½à¶¯à·\93.
 ඔබ‍ගේ [[Special:Preferences|{{SITENAME}} අභිරුචි ]] වෙනස් කිරීම අමතක නොකරන්න.',
 'yourname' => 'පරිශීලක නාමය:',
 'yourpassword' => 'මුරපදය:',
@@ -876,8 +876,8 @@ $2
 රීති ප්‍රකාරව .css හා .js පිටු විසින් ඉංග්‍රීසි කුඩා-අකුරු ශීර්ෂ භාවිතා කෙරෙන බව සිහි තබා ගන්න, නිදසුන. {{ns:user}}:Foo/vector.css මිස {{ns:user}}:Foo/Vector.css නොවන බව.",
 'updated' => '(යාවත්කාලීන)',
 'note' => "'''සටහන:'''",
-'previewnote' => "'''මà·\99ය පà·\99රදà·\83à·\94නà¶\9aà·\8a à¶´à¶¸à¶«à·\92.'''
-à¶\94බà¶\9cà·\9a à·\80à·\99නà·\83à·\8aà¶\9aà·\92රà·\93මà·\8a තà·\80මතà·\8a à·\83à·\94රà\9aà·\8aà·\82à·\92ත කොට නොමැත!",
+'previewnote' => "'''මà·\99ය පà·\99රදà·\83à·\94නà¶\9aà·\8a à¶´à¶¸à¶«à\9aà·\8a à¶¶à·\80 à·\83à·\92à·\84à·\92තබà·\8fà¶\9cනà·\8aන.'''
+à¶\94බà¶\9cà·\9a à·\80à·\99නà·\83à·\8aà¶\9aà·\92රà·\93මà·\8a තà·\80මතà·\8a à·\83à·\94රà·\90à¶\9aà·\93මට à¶½à¶\9aà·\8a කොට නොමැත!",
 'previewconflict' => 'ඔබ විසින් සුරැකීම තෝරාගත්තොත්,  ඉහළ පෙළ සංස්කරණ සරියෙහි,  පෙළ දර්ශනය විය හැකි අයුර මෙම පෙර-දසුනෙන් ආවර්ජනය වේ.',
 'session_fail_preview' => "'''කණගාටුයි! සැසි දත්ත හානියක් හේතුවෙන් අප විසින් ඔබගේ  සංස්කරණය ක්‍රියායයනය කිරීමට නොහැකි වී ඇත.
 කරුණාකර නැවත උත්සාහ කරන්න.
@@ -892,6 +892,7 @@ $2
 සංස්කරණය නිෂ්ප්‍රභා කරන ලද්දේ පිටු පෙළ දූෂණය වීම වැලැක්වීමටය.
 දෝෂ-සපිරි වෙබ්-පාදක නිර්නාමික නියුතු සේවාවක් ඔබ විසින් භාවිත කිරීම නිසා මෙය සමහරවිට සිදුවිය හැක.'''",
 'editing' => '$1 සංස්කරණය කරමින් පවතියි',
+'creating' => '$1 තනමින්',
 'editingsection' => '$1 (ඡේදය) සංස්කරණය කරමින් පවතියි',
 'editingcomment' => '$1 සංස්කරණය කරමින් පවතියි (නව ඡේදයක්)',
 'editconflict' => 'සංස්කරණ ගැටුම: $1',
@@ -959,7 +960,7 @@ $2
 එය දැනටමත් පවතියි.',
 
 # Parser/template warnings
-'expensive-parserfunction-warning' => 'අවවාදයයි: මෙම පිටුවෙහි අධිවැය ව්‍යාකරණ විග්‍රහ ශ්‍රිත කැඳවුම් පමණට වඩා ඇත.
+'expensive-parserfunction-warning' => 'අවවාදයයි: මෙම පිටුවෙහි අධිවැය ව්‍යාකරණ විග්‍රහ ශ්‍රිත කැඳවුම් (expensive parser function calls) පමණට වඩා ඇත.
 
 එහි තිබිය යුතු වූයේ  {{PLURAL:$2|එක් කැඳවුමකට |කැඳවුම් $2 ට }} අඩුවෙන් වුවද, මෙහි දැනට  {{PLURAL:$1|එක් කැඳවුමක්|කැඳවුම්  $1 ක්}} අඩංගුව ඇත.',
 'expensive-parserfunction-category' => 'අධිවැය ව්‍යාකරණ විග්‍රහ ශ්‍රිත කැඳවුම් පමණට වඩා ඇති පිටු',
@@ -1101,7 +1102,7 @@ $1",
 'revdelete-modify-no-access' => '$1 දින, $2 වේලාවෙහි, අයිතමය වෙනස්කිරීමෙහිදී දෝෂයක් ඇතිවී ඇත: මෙම අයිතමය "පරිසීමිත" ලෙසින් සලකුණු කර ඇත.
 ඔබට ඒ සඳහා ප්‍රවේශයන් නොමැත.',
 'revdelete-modify-missing' => 'අනන්‍යාංක $1 දරණ අයිතමය වෙනස් කිරීමෙහිදී දෝෂයක් ඇතිවී ඇත: එය දත්ත ගබඩාවෙන් අස්ථානගතවී ඇත!',
-'revdelete-no-change' => "'''à¶\85à·\80à·\80à·\8fදයයà·\92:''' $1 à¶¯à·\92න, $2 à·\80à·\9aලà·\8fà·\80à·\99à·\84à·\92, à¶\85යà·\92තමය à¶¯à·\90නටමතà·\8a à¶¯à·\98à·\81à·\8aâ\80\8dයතà·\8f à¶´à¶»à·\92à·\83à·\8aථà·\92තà·\93නà·\8a à¶\89ලà·\8aලà·\8f à·\83à·\92ට ඇත.",
+'revdelete-no-change' => "'''à¶\85à·\80à·\80à·\8fදයයà·\92:''' $1 à¶¯à·\92න, $2 à·\80à·\9aලà·\8fà·\80à·\99à·\84à·\92, à¶\85යà·\92තමය à¶¯à·\90නටමතà·\8a à¶¯à·\98à·\81à·\8aâ\80\8dයතà·\8f à·\83à·\90à¶\9aà·\83à·\94මà·\8a à¶\89ලà·\8aලà·\8f ඇත.",
 'revdelete-concurrent-change' => '$1 දින, $2 වේලාවෙහි, අයිතමය වෙනස් කිරීමෙහිදී දෝෂයක් ඇතිවී ඇත: එය වෙනස්කිරීමට ඔබ උත්සාහ ගන්නා අතරතුරදී තවත් අයෙකු විසින් එහි ස්තිතිය වෙනස් කර ඇති බවක් පෙනෙන්නට ඇත.
 කරුණාකර ලඝු-සටහන් පරික්ෂාකර බලන්න.',
 'revdelete-only-restricted' => '$2 දිනැති අයිතමය සැඟවීමේ දෝෂය , $1:අනෙකුත් සැඟවීම් විකල්පයන් අතුරින් එකක් තෝරාගන්නේ නැතිව, පරිපාලකයන්ගේ දර්ශනයෙන් අයිතමයන් සැඟවීම  ඔබහට සිදුකල නොහැක.',
@@ -1135,7 +1136,7 @@ $1",
 'mergehistory-empty' => 'සංශෝධනයන් කිසිවක් ඒකාබද්ධ කල නොහැක.',
 'mergehistory-success' => ' [[:$1]] හි  {{PLURAL:$3|සංශෝධනයක්|සංශෝධන  $3 ක්}}සාර්ථක ලෙස   [[:$2]] හා සමග ඒකාබද්ධ කරන ලදි.',
 'mergehistory-fail' => 'ඉතිහාස ඒකාබද්ධය සිදු කල නොහැක, පිටු හා වේලා පරාමිතීන් නැවත පිරික්සා බලන්න.',
-'mergehistory-no-source' => 'මූල පිටුව $1 කොපවතී.',
+'mergehistory-no-source' => 'මූලාශ පිටුව $1 නොපවතී.',
 'mergehistory-no-destination' => 'අන්ත පිටුව $1 නොපවතී.',
 'mergehistory-invalid-source' => 'මූල පිටුව නීතික ශීර්ෂයක් සහිත විය යුතුය.',
 'mergehistory-invalid-destination' => 'අන්ත  පිටුව නීතික ශීර්ෂයක් සහිත විය යුතුය.',
@@ -1287,10 +1288,10 @@ $1",
 'timezoneuseserverdefault' => 'විකියෙහි සාමාන්‍ය විදිහ භාවිත කරන්න ($1)',
 'timezoneuseoffset' => 'වෙනත් (හිලව්ව නියමාකාරයෙන් දක්වන්න)',
 'timezoneoffset' => 'Offset¹:',
-'servertime' => 'සර්වරයේ වේලාව:',
+'servertime' => "ස'වරයේ වේලාව:",
 'guesstimezone' => 'බ්‍රවුසරයෙන් පුරවන්න',
 'timezoneregion-africa' => 'අප්‍රිකාව',
-'timezoneregion-america' => 'à¶\87මරිකාව',
+'timezoneregion-america' => 'à¶\85මà·\99රිකාව',
 'timezoneregion-antarctica' => 'ඇන්ටාටිකාව',
 'timezoneregion-arctic' => 'අත්ලාන්තික්',
 'timezoneregion-asia' => 'ආසියාව',
@@ -1345,18 +1346,18 @@ HTML ටැගයන් පිරික්සන්න.',
 'prefs-dateformat' => 'දින ආකෘතිය',
 'prefs-timeoffset' => 'වේලා හිලව්ව',
 'prefs-advancedediting' => 'වැඩිදුර තෝරාගැනීම් සැකසුම්',
-'prefs-advancedrc' => 'පà·\8aâ\80\8dරà¶\9cත à·\80à·\92à¶\9aලà·\8aපයනà·\8a',
-'prefs-advancedrendering' => 'පà·\8aâ\80\8dරà¶\9cත à·\80à·\92à¶\9aලà·\8aපයනà·\8a',
+'prefs-advancedrc' => 'à·\80à·\90ඩà·\92දà·\94ර à·\83à·\90à¶\9aà·\83à·\94මà·\8a à¶­à·\9dරà·\8fà¶\9cà·\90නà·\93ම',
+'prefs-advancedrendering' => 'à·\80à·\90ඩà·\92දà·\94ර à·\83à·\90à¶\9aà·\83à·\94මà·\8a à¶­à·\9dරà·\8fà¶\9cà·\90නà·\93ම',
 'prefs-advancedsearchoptions' => 'ප්‍රගත විකල්පයන්',
-'prefs-advancedwatchlist' => 'පà·\8aâ\80\8dරà¶\9cත à·\80à·\92à¶\9aලà·\8aපයනà·\8a',
-'prefs-displayrc' => 'දරà·\8aà·\81න à·\80à·\92à¶\9aලà·\8aපයනà·\8a',
+'prefs-advancedwatchlist' => 'à·\80à·\90ඩà·\92දà·\94ර à·\83à·\90à¶\9aà·\83à·\94මà·\8a à¶­à·\9dරà·\8fà¶\9cà·\90නà·\93ම',
+'prefs-displayrc' => 'දරà·\8aà·\81න à·\83à·\90à¶\9aà·\83à·\94මà·\8a à¶­à·\9dරà·\8fà¶\9cà·\90නà·\93ම',
 'prefs-displaysearchoptions' => 'විකල්ප පෙන්වන්න',
 'prefs-displaywatchlist' => 'විකල්ප පෙන්වන්න',
 'prefs-diffs' => 'වෙනස',
 
 # User preference: e-mail validation using jQuery
 'email-address-validity-valid' => 'විද්‍යුත්-තැපැල් ලිපිනය අනීතික බවක් පෙනෙයි.',
-'email-address-validity-invalid' => 'නà·\93තà·\92à¶\9a à·\80à·\92දà·\8aâ\80\8dයà·\94තà·\8a-තà·\90පà·\90ල් ලිපිනයක් ඇතුලත් කරන්න',
+'email-address-validity-invalid' => 'à·\80ලà¶\82à¶\9cà·\94 à·\80à·\92දà·\8aâ\80\8dයà·\94ත් ලිපිනයක් ඇතුලත් කරන්න',
 
 # User rights
 'userrights' => 'පරිශීලක හිමිකම් කළමනාකරණය',
@@ -1700,7 +1701,7 @@ $1',
 'upload-file-error' => 'අභ්‍යන්තර දෝෂය',
 'upload-file-error-text' => 'සේවාදායකයෙහි තාවකාලික ගොනුවක් තැනීමට උත්සාහ දැරීමෙහිදී අභ්‍යන්තර දෝෂයක් හට ගැනිණි.
 කරුණාකර [[Special:ListUsers/sysop|පරිපාලකවරයෙක්]] වෙත යොමුවන්න.',
-'upload-misc-error' => 'à\85ඥà·\8fත උඩුගත කිරීම් දෝෂය',
+'upload-misc-error' => 'à·\84ඳà·\94නà·\8f à¶±à·\9cà¶\9cතà·\8a උඩුගත කිරීම් දෝෂය',
 'upload-misc-error-text' => 'උඩුගත කිරීමේදී හඳුනාගත නොහැකි දෝෂයක් සිදුවිය.
 URLහි නීතික බව හා ප්‍රවේශ්‍ය බව තහවුරුකරගෙන නැවත උත්සාහ කරන්න.
 ගැටළුව තවදුරටත් පවතී නම්, [[Special:ListUsers/sysop|පරිපාලකවරයෙකු]] අමතන්න.',
@@ -2004,7 +2005,7 @@ When filtered by user, only files where that user uploaded the most recent versi
 'usercreated' => '$1 දින $2 වේලාවේදී {{GENDER:$3|තනන ලදි}}',
 'newpages' => 'අළුත් පිටු',
 'newpages-username' => 'පරිශීලක-නාමය:',
-'ancientpages' => 'පà·\94රà·\8fණතම පිටු',
+'ancientpages' => 'පà·\90රණà·\92ම පිටු',
 'move' => 'ගෙනයන්න',
 'movethispage' => 'මෙම පිටුව ගෙන යන්න',
 'unusedimagestext' => 'පහත ගොනු පවතින නමුත් ඒවා කිසිදු පිටුවකට කාවද්දා නොමැත.
@@ -2565,7 +2566,7 @@ $1 ගේ වාරණයට හේතුව මෙය වේ: "$2"',
 'block-log-flags-angry-autoblock' => 'ආවර්ධිත ස්වයංක්‍රීය වාරණය සක්‍රීය කරන ලදි',
 'block-log-flags-hiddenname' => 'පරිශීලක-නාමය  සඟවා ඇත',
 'range_block_disabled' => 'පරාස වාරණයන් සිදුකිරීමට පරිපාලක වරුන්ට ඇති හැකියාව අක්‍රීය කරන ලදි.',
-'ipb_expiry_invalid' => 'à¶\89à¶\9aà·\94තà·\8aà·\80à·\93මà·\9a à¶\9aà·\8fලය à¶\85නà·\93තà·\92à¶\9aය.',
+'ipb_expiry_invalid' => 'à¶\9aලà·\8aà¶\89à¶\9aà·\94තà·\8aà·\80à·\93මà·\9a à·\80à·\9aලà·\8fà·\80 à·\80ලà¶\82à¶\9cà·\94 à¶±à·\90ත.',
 'ipb_expiry_temp' => 'සැඟවුනු පරිශීලක-නාම වාරණයන් ස්ථීර ඒවා විය යුතුය.',
 'ipb_hide_invalid' => 'මෙම ගිණුම යටපත්කිරීම කල නොහැකියි; පමණට වඩා සංස්කරණ සිදු කර ඇතිවා විය හැක.',
 'ipb_already_blocked' => '"$1" දැනටමත් වාරණයට ලක් කර ඇත',
@@ -2688,20 +2689,20 @@ $1 ගේ වාරණයට හේතුව මෙය වේ: "$2"',
 අන්ත පිටුව "[[:$1]]" දැනටමත් පවතියි.
 එය මකාදමා ගෙනයාම සඳහා පෙත එළි කිරීමට ඔබ හට ඇවැසිද?',
 'delete_and_move_confirm' => 'ඔව්, පිටුව මකා දමන්න',
-'delete_and_move_reason' => '"[[$1]]" ගෙනයෑම සඳහා ඉඩ ලබාගැනීම සඳහා මකාදමන ලදී',
+'delete_and_move_reason' => '"[[$1]]" ගෙනයෑම ඉඩ ලබාගැනීම සඳහා මකාදමන ලදී',
 'selfmove' => 'මූල හා අන්ත ශීර්ෂ දෙකම එකමය;
 පිටුවක් එය වෙතම ගෙන යා නොහැක.',
 'immobile-source-namespace' => '"$1" නාමඅවකාශයෙහි පිටු ගෙනයාම සිදුකල නොහැක',
 'immobile-target-namespace' => '"$1" නාමඅවකාශය වෙත පිටු ගෙනයාම සිදුකල නොහැක',
-'immobile-target-namespace-iw' => 'à¶\85නà·\8aතරà·\8aà·\80à·\92à¶\9aà·\93 à·\83බà·\90ඳà·\92ය, à¶´à·\92ටà·\94 à¶\9cà·\99නයà·\91ම à·\83ඳà·\84à·\8f à¶±à·\93තà·\92à¶\9a à¶\91ලà·\8aලයක් නොවේ.',
+'immobile-target-namespace-iw' => 'à¶\85නà·\8aතරà·\8aà·\80à·\92à¶\9aà·\93 à·\83බà·\90ඳà·\92ය, à¶´à·\92ටà·\94 à¶\9cà·\99නයà·\91ම à·\83ඳà·\84à·\8f à·\80ලà¶\82à¶\9cà·\94 à¶\89ලà¶\9aà·\8aà¶\9aයක් නොවේ.',
 'immobile-source-page' => 'මෙම පිටුව ගෙනයාහැක්කක් නොවේ.',
 'immobile-target-page' => 'එම අන්ත ශීර්ෂයට ගෙන යෑම කල නොහැක.',
 'imagenocrossnamespace' => 'ගොනුවක්, ගොනුවක්-නොවන නාමඅවකාශයකට ගෙනයෑම කල නොහැක',
 'nonfile-cannot-move-to-file' => 'ගොනුවක්-නොවන්න ගොනු නාමඅවකාශයට ගෙනයෑම කල නොහැක',
-'imagetypemismatch' => 'නව ගොනු ප්‍රසර්ජනය එහි වර්ගය හා නොගැලපේ',
-'imageinvalidfilename' => 'ඉලක්කගත ගොනු නාමය අනීතිකයි',
-'fix-double-redirects' => 'මà·\94ලà·\8a à·\81à·\93රà·\8aà·\82යට à¶\91ලà·\8aලà·\80න à¶\9aà·\92à·\83à·\92යමà·\8a à¶ºà·\85à·\92-යà·\9cමà·\94à·\80à·\93මà·\8a à¶\8bඩà·\94à¶\9cත කරන්න',
-'move-leave-redirect' => 'යà·\85à·\92-යà·\9cමà·\94à·\80à¶\9aà·\8a à·\84à·\90ර à¶¯à¶¸න්න',
+'imagetypemismatch' => 'නව ගොනු ප්‍රසර්ජනය(extension) එහි වර්ගය හා නොගැලපේ',
+'imageinvalidfilename' => 'ඉලක්ක ගොනු නාමය වලංගුනැත',
+'fix-double-redirects' => 'මà·\94ලà·\8a à¶¸à·\8fතà·\98à¶\9aà·\8fà·\80ට à¶\91ලà·\8aලà·\80න à¶ºà·\85à·\92-යà·\9cමà·\94 à¶\85පà·\8aඩà·\9aටà·\8a කරන්න',
+'move-leave-redirect' => 'යà·\85à·\92-යà·\9cමà·\94à·\80à¶\9aà·\8a à·\83à¶\9aà·\83à·\8f à¶\9cà·\99නයන්න',
 'protectedpagemovewarning' => "'''අවවාදයයි:''' පරිපාලක වරප්‍රසාද සතු පරිශීලකයන්ට පමණක් ගෙන යෑ හැකි පරිදී මෙම පිටුව අවුරා ඇත.
 ආසන්නතම ලඝු සටහන යොමුවන් සඳහා පහතින් සපයනු ලැබේ:",
 'semiprotectedpagemovewarning' => "'''සටහන:''' ලේඛනගත පරිශීලකයන්ට පමණක් ගෙන යෑ හැකි පරිදි මෙම පිටුව අවුරා ඇත.
@@ -2983,8 +2984,8 @@ $1',
 'filedelete-archive-read-only' => 'වෙබ්සේවාදායකය විසින්  "$1"සංරක්ෂික විරෙක්ටරියට ලිවීම සිදුකල නොහැක.',
 
 # Browsing diffs
-'previousdiff' => 'â\86\90 à¶´à·\90රà·\90ණà·\92 à·\83à¶\82à·\83à·\8aà¶\9aරණය',
-'nextdiff' => 'නවීන සංස්කරණය →',
+'previousdiff' => 'â\86\90 à¶´à·\90රණà·\92 à·\83à¶\82à·\83à·\8aà¶\9aරණ',
+'nextdiff' => 'නව සංස්කරණ →',
 
 # Media information
 'mediawarning' => "'''අවවාදයයි''': අනිෂ්ට කේතයන් මෙම ගොනුවෙහි අඩංගු විය හැක.
@@ -3220,7 +3221,7 @@ Others will be hidden by default.
 'exif-countrycreated' => 'රූපය ගන්නා ලද රට',
 'exif-countrycodecreated' => 'රූපය ගන්නා ලද රටෙහි කේතය',
 'exif-provinceorstatecreated' => 'රූපය ගන්නා ලද පළාත හෝ ප්‍රාන්තය',
-'exif-citycreated' => 'රà·\96පය à¶\9cනà·\8aනà·\8f à¶½à¶¯ à¶±à¶\9cරය',
+'exif-citycreated' => 'රà·\96පය à¶\9cනà·\8aනà·\8f à¶½à¶¯ à¶´à·\94රà·\80රය',
 'exif-sublocationcreated' => 'රූපය ගන්නා ලද නගර උප-ස්ථානය',
 'exif-worldregiondest' => 'ලෝක ප්‍රදේශය දක්වා ඇත',
 'exif-countrydest' => 'පෙන්වනලද රට',
@@ -3230,7 +3231,7 @@ Others will be hidden by default.
 'exif-sublocationdest' => 'පුරවරයේ උප-ස්ථානය දක්වා ඇත',
 'exif-objectname' => 'කෙටි මාතෘකාව',
 'exif-specialinstructions' => 'විශේෂ උපදෙස්',
-'exif-headline' => 'à·\81ිරස්තලය',
+'exif-headline' => 'à·\83ිරස්තලය',
 'exif-credit' => 'විශ්වාසය/ප්‍රතිපාදකයා',
 'exif-source' => ' මූලාශ්‍රය',
 'exif-editstatus' => 'රූපයේ සංස්කරණ තත්ත්වය',
@@ -3276,7 +3277,7 @@ Others will be hidden by default.
 'exif-event' => 'විස්තර දක්වන ලද සිද්ධිය',
 'exif-organisationinimage' => 'විස්තර දක්වන ලද සංවිධානය',
 'exif-personinimage' => 'පුද්ගලික වචනයෙන් විස්තර කරන ලද',
-'exif-originalimageheight' => 'à¶\9aà·\90පà·\94මට පෙර රූපයෙහි උස',
+'exif-originalimageheight' => 'à¶\9aපà·\8aපà·\8fදà·\94à·\80ට පෙර රූපයෙහි උස',
 
 # EXIF attributes
 'exif-compression-1' => 'අසංක්ෂිප්ත',
@@ -3290,7 +3291,7 @@ Others will be hidden by default.
 'exif-photometricinterpretation-2' => 'RGB',
 'exif-photometricinterpretation-6' => 'YCbCr',
 
-'exif-unknowndate' => 'à¶\85ඥà·\8fත දිනයකි',
+'exif-unknowndate' => 'නà·\9cදනà·\8aනà·\8f දිනයකි',
 
 'exif-orientation-1' => 'සාමාන්‍ය',
 'exif-orientation-2' => 'තිරස වටා පෙරලා',
@@ -3394,8 +3395,8 @@ Others will be hidden by default.
 'exif-exposuremode-1' => 'හස්තීය නිරාවරණය',
 'exif-exposuremode-2' => 'ස්වයං සමුච්චය',
 
-'exif-whitebalance-0' => 'à·\83à·\8aà·\80යà¶\82à¶\9aà·\8aâ\80\8dරà·\93ය à·\81à·\8aà·\80à·\9aත තුලනය',
-'exif-whitebalance-1' => 'à·\84à·\83à·\8aතà·\93ය  à·\81à·\8aà·\80à·\9aත à¶­à·\94ලනය',
+'exif-whitebalance-0' => 'à·\83à·\94දà·\94 à¶´à·\8fට à·\83à·\8aà·\80යà¶\82à¶\9aà·\8aâ\80\8dරà·\93යà·\80 තුලනය',
+'exif-whitebalance-1' => 'à\94බà·\80à·\92à·\83à·\92නà·\8a à·\83à·\94දà·\94 à¶´à·\8fට  à¶­à·\94ලනයà¶\9aà·\92රà·\93ම',
 
 'exif-scenecapturetype-0' => 'සම්මත',
 'exif-scenecapturetype-1' => 'භූතල තලීය',
@@ -3479,7 +3480,7 @@ Others will be hidden by default.
 'exif-dc-source' => 'මූලාශ්‍ර මාධ්‍ය',
 'exif-dc-type' => 'මාධ්‍ය වර්ගය',
 
-'exif-rating-rejected' => 'ප්‍රතික්ෂිප්ත',
+'exif-rating-rejected' => 'ප්‍රතික්‍ෂේපිත',
 
 'exif-isospeedratings-overflow' => '65535 ට වඩා විශාලතර',
 
@@ -3650,7 +3651,7 @@ This confirmation code will expire at $4.',
 
 # Friendlier slave lag warnings
 'lag-warn-normal' => '{{PLURAL:$1|තත්පරයකට|තත්පර $1 කට}} වඩා නැවුම් වෙනස්වීම්, ලැයිස්තුවෙහි පෙන්නුම් නොවීමට ඉඩ ඇත.',
-'lag-warn-high' => 'දත්ත-ගබඩා සේවාදායකයෙහි අධික විලම්බය නිසා, වෙනස්වීමට පසු ගතවූයේ  {{PLURAL:$1|එක් තත්පරයක්|තත්පර $1 ක්}} පමණක් නම්, ලැයිස්තුවෙහි අන්තර්ගතවී නොතිබිය හැක.',
+'lag-warn-high' => "දත්තසංචිත ස'වරයේ අධි විලම්බය නිසා, වෙනස්වීමට පසු ගතවූයේ  {{PLURAL:$1|එක් තත්පරයක්|තත්පර $1 ක්}} පමණක් නම්, ලැයිස්තුවෙහි අන්තර්ගතවී නොතිබිය හැක.",
 
 # Watchlist editor
 'watchlistedit-numitems' => 'සාකච්ඡා පිටු ගණනය නොකල විට, ඔබගේ මුර-ලැයිස්තුවෙහි  {{PLURAL:$1|ශීර්ෂ එකක්|ශීර්ෂ $1 ක්}} අඩංගු වේ.',
@@ -3761,7 +3762,7 @@ This confirmation code will expire at $4.',
 'version-hook-name' => 'හසුරු නම',
 'version-hook-subscribedby' => 'දායකවී ඇත්තේ',
 'version-version' => '(අනුවාදය $1)',
-'version-license' => 'බලපතà·\8aâ\80\8dරය',
+'version-license' => 'à·\80රපත',
 'version-poweredby-credits' => "මෙම විකිය '''[//www.mediawiki.org/ MediaWiki]''' මගින් බලගන්වා ඇත, copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'අනෙකුත්',
 'version-license-info' => 'MediaWiki යනු නිදහස් මෘදුකාංගයකි; නිදහස් මෘදුකාංග පදනමේ (Free Software Foundation) හි GNU General Public License නම් බලපත්‍රයේ වගන්තිවලට අනුව ඔබට එය නැවත බෙදාහැරීම සහ/හෝ සංස්කරණය කළ හැක; ඒ, එම බලපත්‍රයේ 2වන හෝ (ඔබට කැමති නම්) ඉන්පසු එන සංස්කරණයකට අනුවය.
@@ -3799,7 +3800,7 @@ MediaWiki බෙදාහැර ඇත්තේ එය ප්‍රයෝජන
 * <span class="mw-specialpagecached">කෑෂිත වි‍ශේෂ පිටු (යල් පැන ගිය විය හැක).</span>',
 'specialpages-group-maintenance' => 'නඩත්තු වාර්තා',
 'specialpages-group-other' => 'අනෙකුත් විශේෂ පිටු',
-'specialpages-group-login' => 'පà·\8aâ\80\8dරà·\80à·\92à·\82à·\8aට à·\80න්න / ගිණුමක් තනන්න',
+'specialpages-group-login' => 'පà·\92à·\80à·\92à·\83à·\99න්න / ගිණුමක් තනන්න',
 'specialpages-group-changes' => 'මෑත වෙනස්වීම් හා ලඝු-සටහන්',
 'specialpages-group-media' => 'මාධ්‍ය වාර්තා හා උඩුගත කිරීම්',
 'specialpages-group-users' => 'පරිශීලකයන් හා හිමිකම්',
@@ -3808,11 +3809,11 @@ MediaWiki බෙදාහැර ඇත්තේ එය ප්‍රයෝජන
 'specialpages-group-pagetools' => 'පිටු මෙවලම්',
 'specialpages-group-wiki' => 'විකි දත්ත හා මෙවලම්',
 'specialpages-group-redirects' => 'විශේෂ පිටු යළි-යොමුකිරීම',
-'specialpages-group-spam' => 'à\85යà·\8fචà·\92ත-තà·\90පà·\91ල මෙවලම්',
+'specialpages-group-spam' => 'à·\83à·\8aපà·\91මà·\8a මෙවලම්',
 
 # Special:BlankPage
 'blankpage' => 'හිස් පිටුව',
-'intentionallyblankpage' => 'මà·\99ම à¶´à·\92ටà·\94à·\80 à\85භà·\92පà·\8aâ\80\8dරà·\9aතà·\80 à·\84à·\92à·\83à·\8aà·\80 à¶­à¶¶à¶± à¶½à¶¯à·\92',
+'intentionallyblankpage' => 'මà·\99ම à¶´à·\92ටà·\94à·\80 à·\83à·\92තà·\8fමතà·\8fම à·\84à·\92à·\83à·\8aà·\80 à¶­à¶¶à·\8f à¶\87ත.',
 
 # External image whitelist
 'external_image_whitelist' => '#මෙම පේළිය මෙම අයුරින්ම තිබීමට ඉඩ හරින්න <pre>
@@ -3942,13 +3943,13 @@ MediaWiki බෙදාහැර ඇත්තේ එය ප්‍රයෝජන
 'api-error-ok-but-empty' => 'අභ්‍යන්තර දෝෂය: සර්වරයෙන් ප්‍රතිචාරයක් නොමැත.',
 'api-error-overwrite' => 'දැනටමත් තිබෙන ගොනුවක් යටපත් කෙරුමට ඉඩදෙනු නොලැබේ.',
 'api-error-stashfailed' => 'අභ්‍යන්තර දෝෂය: තාවකාලික ගොනුව සුරක්ෂිත කිරීමට සර්වරයට නොහැකි වුනි.',
-'api-error-timeout' => 'බලාපොරොත්තු වූ කාලය තුල සර්වරය ප්‍රතිචාර නොදක්වන ලදී.',
+'api-error-timeout' => 'බලාපොරොත්තු වූ කාලය තුල ස"වරය ප්‍රතිචාර නොදක්වන ලදී.',
 'api-error-unclassified' => 'හඳුනා නොගත් දෝෂයක් ඇතිවිය.',
 'api-error-unknown-code' => 'නොදත් දෝෂය: "$1"',
 'api-error-unknown-error' => 'අභ්‍යන්තර දෝෂය: ඔබ මෙම ගොනුව උඩුගත කිරීමට තැත් කිරීමේදී කුමක්දෝ වැරදුණා.',
 'api-error-unknown-warning' => 'නොදත් අවවාදය: $1',
 'api-error-unknownerror' => 'හඳුනාගත නොහැකි දෝෂය: "$1".',
 'api-error-uploaddisabled' => 'මෙම විකියෙහි උඩුගතකිරීම අක්‍රිය කොට ඇත.',
-'api-error-verification-error' => 'මà·\99ම à¶\9cà·\9cනà·\94à·\80 à·\83මà·\84රà·\80à·\92ට à¶¯à·\96à·\82à·\92ත à·\80à·\93 à¶\87ත, à·\84à·\9d à¶\91යට à·\80à·\90රදà·\92 à·\80à·\92à·\83à·\8aතà·\92රà·\8aණයà¶\9aà·\8a à¶\87ත.',
+'api-error-verification-error' => 'මà·\99ම à¶\9cà·\9cනà·\94à·\80 à¶´à·\85à·\94දà·\94à·\80à·\93 à·\84à·\9d à¶\91යට à·\80à·\90රදà·\92 à·\80à·\92à·\83à·\8aතà·\92රà·\8aණයà¶\9aà·\8a (extension) à¶\87තà·\94à·\80à·\8f à·\80à·\92යà·\84à·\90à¶\9a.',
 
 );
index 55bac68..7d64024 100644 (file)
@@ -222,8 +222,8 @@ $messages = array(
 'tog-watchlisthideown' => 'Na spisku nadzorov skrij moja urejanja',
 'tog-watchlisthidebots' => 'Na spisku nadzorov skrij urejanja botov',
 'tog-watchlisthideminor' => 'Skrij manjša urejanja na spisku nadzorov',
-'tog-watchlisthideliu' => 'Skrij urejanja prijavljenih uporabnikov v spisku nadzorov',
-'tog-watchlisthideanons' => 'Skrij urejanja anonimnih uporabnikov v spisku nadzorov',
+'tog-watchlisthideliu' => 'Skrij urejanja prijavljenih uporabnikov na spisku nadzorov',
+'tog-watchlisthideanons' => 'Skrij urejanja anonimnih uporabnikov na spisku nadzorov',
 'tog-watchlisthidepatrolled' => 'Skrij pregledana urejanja s spiska nadzorov',
 'tog-ccmeonemails' => 'Pošlji mi kopijo e-pošt, ki jih pošljem drugim uporabnikom',
 'tog-diffonly' => 'Ne prikaži vsebine strani pod primerjavo',
@@ -608,7 +608,7 @@ Ne pozabite si prilagoditi vaših [[Special:Preferences|nastavitev {{GRAMMAR:rod
 'createaccount' => 'Ustvari račun',
 'gotaccount' => 'Račun že imate? $1.',
 'gotaccountlink' => 'Prijavite se',
-'userlogin-resetlink' => 'Ste pozabili svoje podatke za prijavo?',
+'userlogin-resetlink' => 'Ste pozabili svoje prijavne podatke?',
 'createaccountmail' => 'Po e-pošti',
 'createaccountreason' => 'Razlog:',
 'badretype' => 'Gesli, ki ste ju vnesli, se ne ujemata.',
@@ -756,7 +756,7 @@ Začasno geslo: $2',
 'changeemail-oldemail' => 'Trenutni e-poštni naslov:',
 'changeemail-newemail' => 'Novi e-poštni naslov:',
 'changeemail-none' => '(noben)',
-'changeemail-submit' => 'Spremeni e-pošto',
+'changeemail-submit' => 'Spremeni e-naslov',
 'changeemail-cancel' => 'Prekliči',
 
 # Edit page toolbar
@@ -873,9 +873,9 @@ Najnovejši vnos v dnevniku blokad je prikazan spodaj:',
 Vedite, da .css in .js strani po meri uporabljajo naslov z malo začetnico, npr. {{ns:user}}:Blabla/vector.css namesto {{ns:user}}:Blabla/Vector.css.",
 'updated' => '(Posodobljeno)',
 'note' => "'''Opomba:'''",
-'previewnote' => "'''Pomnite, da je to le predogled strani.'''
+'previewnote' => "'''Pomnite, da stran le predogledujete.'''
 Vaših sprememb še nismo shranili!",
-'continue-editing' => 'Nadaljuj z urejanjem',
+'continue-editing' => 'Nadaljujte z urejanjem',
 'previewconflict' => 'V prikazanem predogledu je v zgornjem predelu urejanja navedeno besedilo, kakor se bo prikazalo, če ga boste shranili.',
 'session_fail_preview' => "'''Oprostite! Zaradi izgube podatkov o seji nam vašega urejanja žal ni uspelo obdelati.'''
 Prosimo, poskusite znova.
@@ -970,6 +970,10 @@ Naslednji argumenti so bili izpuščeni.",
 'parser-template-loop-warning' => 'V predlogi je bila odkrita zanka: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Prekoračena globina rekurzije predlog ($1)',
 'language-converter-depth-warning' => 'Prekoračena globina pretvorbe jezikov ($1)',
+'node-count-exceeded-category' => 'Strani s prekoračenim številom vozlišč',
+'node-count-exceeded-warning' => 'Stran je prekoračila število vozlišč',
+'expansion-depth-exceeded-category' => 'Strani s prekoračeno globino razširitve',
+'expansion-depth-exceeded-warning' => 'Stran je prekoračila globino razširitve',
 
 # "Undo" feature
 'undo-success' => 'Urejanje ste razveljavili. Prosim, potrdite in nato shranite spodnje spremembe.',
@@ -1256,7 +1260,7 @@ Upoštevajte, da so njihovi podatki vsebine {{GRAMMAR:rodilnik|{{SITENAME}}}} mo
 'prefs-watchlist-token' => 'Ključ spiska nadzorov:',
 'prefs-misc' => 'Druge nastavitve',
 'prefs-resetpass' => 'Spremeni geslo',
-'prefs-changeemail' => 'Spremeni e-pošto',
+'prefs-changeemail' => 'Spremeni e-poštni naslov',
 'prefs-setemail' => 'Nastavi e-poštni naslov',
 'prefs-email' => 'Možnosti e-pošte',
 'prefs-rendering' => 'Videz',
@@ -1271,10 +1275,10 @@ Upoštevajte, da so njihovi podatki vsebine {{GRAMMAR:rodilnik|{{SITENAME}}}} mo
 'resultsperpage' => 'Prikazanih zadetkov na stran:',
 'stub-threshold' => 'Prag označevanja <a href="#" class="stub">škrbin</a> (v bajtih):',
 'stub-threshold-disabled' => 'Onemogočeno',
-'recentchangesdays' => 'Število dni prikazanih v zadnjih spremembah:',
+'recentchangesdays' => 'Število dni, prikazanih v zadnjih spremembah:',
 'recentchangesdays-max' => 'Največ $1 {{PLURAL:$1|dan|dneva|dnevi|dni}}',
 'recentchangescount' => 'Privzeto število prikazanih urejanj:',
-'prefs-help-recentchangescount' => 'To vključuje zadnje spremembe, zgodovine strani in dnevniške zapise.',
+'prefs-help-recentchangescount' => 'Vključuje zadnje spremembe, zgodovine strani in dnevniške zapise.',
 'prefs-help-watchlist-token' => 'Izpolnjevanje tega polja s skrivnim ključem bo ustvarilo vir RSS za vaš spisek nadzorov.
 Kdorkoli pozna ta ključ bo lahko bral vaš spisek nadzorov, zato izbrite varen in čim daljši ključ.
 Tukaj je naključno ustvarjena vrednost, ki jo lahko uporabite: $1',
@@ -1333,14 +1337,15 @@ Podatek bo javno prikazan.',
 'email' => 'E-pošta',
 'prefs-help-realname' => 'Pravo ime je neobvezno.
 Če se ga odločite navesti, bo uporabljeno za priznavanje vašega dela.',
-'prefs-help-email' => 'E-poštni naslov ni obvezen, vendar vam omogoča, da vam v primeru pozabljenega gesla pošljemo novo.',
-'prefs-help-email-others' => 'Poleg tega vpisan e-poštni naslov omogoča drugim, da vam lahko pošiljajo elektronsko pošto brez razkritja vaše istovetnosti.',
+'prefs-help-email' => 'E-poštni naslov ni obvezen, vendar omogoča, da vam v primeru pozabljenega gesla pošljemo novo.',
+'prefs-help-email-others' => 'Omogočite lahko tudi možnost, da vam lahko ostali uporabniki pošiljajo e-pošto prek vaše uporabniške ali pogovorne strani.
+Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo razkrili.',
 'prefs-help-email-required' => 'E-poštni naslov je obvezen.',
 'prefs-info' => 'Osnovni podatki',
 'prefs-i18n' => 'Internacionalizacija',
 'prefs-signature' => 'Podpis',
 'prefs-dateformat' => 'Zapis datuma',
-'prefs-timeoffset' => 'Čas za izravnavo',
+'prefs-timeoffset' => 'Časovni odmik',
 'prefs-advancedediting' => 'Napredne možnosti',
 'prefs-advancedrc' => 'Napredne možnosti',
 'prefs-advancedrendering' => 'Napredne možnosti',
@@ -1515,7 +1520,7 @@ Podatek bo javno prikazan.',
 'recentchanges-label-newpage' => 'S tem urejanjem je bila ustvarjena nova stran',
 'recentchanges-label-minor' => 'Manjše urejanje',
 'recentchanges-label-bot' => 'To urejanje je bilo izvedeno z botom',
-'recentchanges-label-unpatrolled' => 'To urejanje še ni bilo pregledano',
+'recentchanges-label-unpatrolled' => 'Urejanje še ni bilo pregledano',
 'rcnote' => "Prikazujem {{PLURAL:$1|zadnjo spremembo|zadnji '''$1''' spremembi|zadnje '''$1''' spremembe|zadnjih '''$1''' sprememb|zadnjih '''$1''' sprememb}} v {{PLURAL:$2|zadnjem|zadnjih|zadnjih|zadnjih|zadnjih}} '''$2''' {{PLURAL:$2|dnevu|dneh|dneh|dneh|dneh}}, od $5, $4.",
 'rcnotefrom' => "Navedene so spremembe od '''$2''' dalje (prikazujem jih do '''$1''').",
 'rclistfrom' => 'Prikaži spremembe od $1 naprej',
@@ -1529,7 +1534,7 @@ Podatek bo javno prikazan.',
 'diff' => 'prim',
 'hist' => 'zgod',
 'hide' => 'skrij',
-'show' => 'prikaži',
+'show' => 'Prikaži',
 'minoreditletter' => 'm',
 'newpageletter' => 'N',
 'boteditletter' => 'b',
@@ -1567,11 +1572,11 @@ Strani iz [[Special:Watchlist|vašega spiska nadzorov]] so '''odebeljene'''.",
 
 Dnevnik brisanja in prestavitev za to stran sta navedena tukaj:",
 'uploadtext' => "Spodnji obrazec lahko uporabite za nalaganje datotek.
-Za ogled ali iskanje že naloženih pojdite na [[Special:FileList|seznam naloženih datotek]], ponovne naložitve so zapisane tudi v [[Special:Log/upload|dnevniku nalaganja]], izbrisi pa v [[Special:Log/delete|dnevniku brisanja]].
+Za ogled ali iskanje že naloženih pojdite na [[Special:FileList|seznam naloženih datotek]]; ponovna nalaganja so zabeležena tudi v [[Special:Log/upload|dnevniku nalaganja]], izbrisi pa v [[Special:Log/delete|dnevniku brisanja]].
 
-Datoteko lahko na želeno stran vključite z naslednjo skladnjo
+Datoteko lahko na želeno stran vključite na naslednje načine:
 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></tt>''' (polna velikost)
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg|200px|thumb|left|opisno besedilo]]</nowiki></tt>''' (slika pomanjšana na velikost 200px, uokvirjena, z levo poravnavo in opisom »opisno besedilo«)
+* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg|200px|thumb|left|opisno besedilo]]</nowiki></tt>''' (slika pomanjšana na 200 slikovnih pik širine, uokvirjena, z levo poravnavo in opisom »opisno besedilo«)
 * '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></tt>''' (neposredna povezava z datoteko)",
 'upload-permitted' => 'Dovoljene vrste datotek: $1.',
 'upload-preferred' => 'Priporočene vrste datotek: $1.',
@@ -1850,10 +1855,10 @@ Na voljo je tudi [[Special:WhatLinksHere/$2|celotni seznam]].',
 'morelinkstoimage' => 'Preglejte [[Special:WhatLinksHere/$1|več povezav]] na to datoteko.',
 'linkstoimage-redirect' => '$1 (preusmeritev datoteke) $2',
 'duplicatesoffile' => '{{PLURAL:$1|Sledeča datoteka je dvojnik|Sledeči datoteki sta dvojnika|Sledeče $1 datoteke so dvojniki|Sledečih $1 datotek so dvojniki}} te datoteke ([[Special:FileDuplicateSearch/$2|več podrobnosti]]):',
-'sharedupload' => 'Datoteka je del $1 in se lahko uporabi v drugih projektih.',
-'sharedupload-desc-there' => 'Ta datoteka je iz $1 in se lahko uporablja v drugih projektih.
+'sharedupload' => 'Datoteka je del projekta $1 in se lahko uporabi v drugih projektih.',
+'sharedupload-desc-there' => 'Datoteka je iz projekta $1 in se lahko uporablja v drugih projektih.
 Prosimo, oglejte si [$2 opisno stran datoteke] za dodatne informacije.',
-'sharedupload-desc-here' => 'Ta datoteka je iz $1 in se lahko uporablja v drugih projektih.
+'sharedupload-desc-here' => 'Datoteka je iz projekta $1 in se lahko uporablja v drugih projektih.
 Povzetek na njeni [$2 opisni strani datoteke] je prikazan spodaj.',
 'sharedupload-desc-edit' => 'Datoteka je z $1 in jo morda uporabljajo drugi projekti.
 Morda želite urediti njeno opisno stran na tamkajšnji [$2 opisni strani datoteke].',
@@ -2196,7 +2201,7 @@ Morebitne spremembe te strani in pripadajoče pogovorne strani bodo navedene tuk
 'unwatchthispage' => 'Prenehaj opazovati stran',
 'notanarticle' => 'Ni članek',
 'notvisiblerev' => 'Redakcija je bila izbrisana',
-'watchnochange' => 'V prikazanem časovnem obdobju se ni spremenila nobena med nadzorovanimi stranmi.',
+'watchnochange' => 'V prikazanem časovnem obdobju ni nihče spremenil nadzorovanih strani.',
 'watchlist-details' => 'Spremljate $1 {{PLURAL:$1|stran|strani|strani|strani|strani}} (pogovorne strani niso vštete).',
 'wlheader-enotif' => '* Obveščanje po elektronski pošti je omogočeno.',
 'wlheader-showupdated' => "* Od vašega zadnjega ogleda spremenjene strani so prikazanje '''krepko'''.",
@@ -2872,8 +2877,8 @@ Prosimo, poskusite znova.',
 'tooltip-ca-delete' => 'Brišite stran',
 'tooltip-ca-undelete' => 'Obnovite pred izbrisom napravljena urejanja strani.',
 'tooltip-ca-move' => 'Preimenujte stran',
-'tooltip-ca-watch' => 'Dodajte stran na seznam nadzorov',
-'tooltip-ca-unwatch' => 'Odstranite stran s seznama nadzorov',
+'tooltip-ca-watch' => 'Dodajte stran na spisek nadzorov',
+'tooltip-ca-unwatch' => 'Odstranite stran s spiska nadzorov',
 'tooltip-search' => 'Preiščite wiki',
 'tooltip-search-go' => 'Pojdi na strani z natanko takim imenom, če obstaja',
 'tooltip-search-fulltext' => 'Najde vneseno besedilo po straneh',
index cec0017..39b96ba 100644 (file)
@@ -1096,6 +1096,7 @@ $2
 'note' => "'''Напомена:'''",
 'previewnote' => "'''Имајте у виду да је ово само преглед.'''
 Ваше измене још нису сачуване!",
+'continue-editing' => 'Настави уређивање',
 'previewconflict' => 'Овај преглед осликава како ће текст у текстуалном оквиру изгледати.',
 'session_fail_preview' => "'''Нисмо могли да обрадимо вашу измену због губитка података сесије.'''
 Покушајте поново.
index 515b1b6..ea688e3 100644 (file)
@@ -74,8 +74,7 @@ $messages = array(
 'tog-shownumberswatching' => 'Antaal fon do beooboachtjende Benutsere anwiese',
 'tog-oldsig' => 'Foarbekiek fon ju aktuälle Signatuur:',
 'tog-fancysig' => 'Unnerskrift as Wikitext behonnelje (sunner automatiske Ferlinkenge)',
-'tog-externaleditor' => 'Externen Editor as Standoard benutsje (bloot foar Experte, der mouten spezielle Ienstaalengen ap dän oaine Computer moaked wäide.
-[//www.mediawiki.org/wiki/Manual:External_editors Moor Information hiertou.])',
+'tog-externaleditor' => 'Externen Editor as Standoard benutsje (bloot foar Experte, der mouten spezielle Ienstaalengen ap dän oaine Computer moaked wäide. [//www.mediawiki.org/wiki/Manual:External_editors Moor Information hiertou.])',
 'tog-externaldiff' => 'Extern Diff-Program as Standoard benutsje (bloot foar Experte, der mouten spezielle Ienstaalengen ap dän oaine Computer moaked wäide.
  [//www.mediawiki.org/wiki/Manual:External_editors Wiedere Informatione hiertou.])',
 'tog-showjumplinks' => '"Wikselje tou"-Links muugelk moakje',
index d189278..b33a220 100644 (file)
@@ -985,6 +985,7 @@ Den har inte sparats än!'''",
 'note' => "'''Obs!'''",
 'previewnote' => "'''Kom ihåg att detta bara är en förhandsvisning.'''
 Dina ändringar har ännu inte sparats!",
+'continue-editing' => 'Fortsätt redigera',
 'previewconflict' => 'Den här förhandsvisningen är resultatet av den
 redigerbara texten ovanför,
 så som det kommer att se ut om du väljer att spara.',
@@ -1081,6 +1082,10 @@ Dessa parametrar har uteslutits.',
 'parser-template-loop-warning' => 'Mall-loop upptäckt: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Gräns för mallrekursionsdjup överskriden ($1)',
 'language-converter-depth-warning' => 'Gräns för språkkonverteringsdjup överskriden ($1)',
+'node-count-exceeded-category' => 'Sidor där antal nodar har överskrids',
+'node-count-exceeded-warning' => 'Sidan har överskridit antalet nodar',
+'expansion-depth-exceeded-category' => 'Sidor där expansionsdjupet överskrids',
+'expansion-depth-exceeded-warning' => 'Sidan överskrider expansionsdjupet',
 
 # "Undo" feature
 'undo-success' => 'Redigeringen kan göras ogjord.
@@ -3771,6 +3776,7 @@ Du bör ha fått [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopia av GNU General Publi
 'version-software' => 'Installerad programvara',
 'version-software-product' => 'Produkt',
 'version-software-version' => 'Version',
+'version-entrypoints' => 'StartpunktsURLer',
 'version-entrypoints-header-entrypoint' => 'Ingångspunkt',
 'version-entrypoints-header-url' => 'URL',
 
index f26f2f0..9cdf5d1 100644 (file)
@@ -830,6 +830,7 @@ $1 เป็นผู้ดำเนินการบล็อกในคร
 ในบางครั้งปัญหานี้จะเกิดขึ้นถ้าคุณใช้บริการเว็บพร็อกซีนิรนามที่มีบั๊ก",
 'edit_form_incomplete' => "'''บางส่วนของแบบฟอร์มแก้ไขไม่ได้ติดต่อเซิร์ฟเวอร์ ตรวจสอบอีกครั้งว่าการแก้ไขของคุณยังคงอยู่และลองใหม่อีกครั้ง'''",
 'editing' => 'กำลังแก้ไข $1',
+'creating' => 'สร้างหน้า $1',
 'editingsection' => 'กำลังแก้ไข $1 (เฉพาะส่วน)',
 'editingcomment' => 'กำลังแก้ไข $1 (หัวข้อใหม่)',
 'editconflict' => 'แก้ไขชนกัน: $1',
@@ -951,7 +952,7 @@ $1 เป็นผู้ดำเนินการบล็อกในคร
 [[Special:Search|ค้นหาในวิกินี้]] สำหรับหน้าอื่นที่อาจเกี่ยวข้อง',
 
 # Revision deletion
-'rev-deleted-comment' => '(à¸\84วามà¹\80หà¹\87à¸\99ถูกลบออก)',
+'rev-deleted-comment' => '(à¸\84ำอà¸\98ิà¸\9aายอยà¹\88าà¸\87ยà¹\88อถูกลบออก)',
 'rev-deleted-user' => '(ชื่อผู้ใช้ถูกลบออก)',
 'rev-deleted-event' => '(หน้าที่ใส่เข้ามาถูกลบออก)',
 'rev-deleted-user-contribs' => '[ชื่อผู้ใช้หรือหมายเลขไอพีถูกลบแล้ว - การแก้ไขถูกซ่อนจากรายการแก้ไข]',
index 5e96f51..c484b99 100644 (file)
@@ -2116,6 +2116,7 @@ Günlük tipini, kullanıcı adını (büyük-küçük harf duyarlı), ya da etk
 'allpagesprefix' => 'Buraya yazdığınız harflerle başlayan sayfaları listeleyin:',
 'allpagesbadtitle' => 'Girilen sayfa ismi diller arası bağlantı ya da vikiler arası bağlantı içerdiğinden geçerli değil. Başlıklarda kullanılması yasak olan bir ya da daha çok karakter içeriyor olabilir.',
 'allpages-bad-ns' => '{{SITENAME}} sitesinde "$1" ad alanı yok.',
+'allpages-hide-redirects' => 'Yönlendirmeleri gizle',
 
 # Special:Categories
 'categories' => 'Kategoriler',
index b580bd6..a46e7d9 100644 (file)
@@ -444,6 +444,7 @@ The password for this new account can be changed on the ''[[Special:ChangePasswo
 'currentrev' => 'Амгы үе үндүрери',
 'currentrev-asof' => 'Амгы $1 үениң бижээни',
 'revisionasof' => '$1 версиязы',
+'revision-info' => '$2 киржикчиниң $1 хүнүнде киирилдези',
 'previousrevision' => '←Артык эрги үндүрери',
 'nextrevision' => 'Артык чаа үндүрери→',
 'currentrevisionlink' => 'Амгы үе үндүрери',
@@ -519,6 +520,7 @@ The password for this new account can be changed on the ''[[Special:ChangePasswo
 'searchprofile-advanced-tooltip' => 'Айыткан аттар делгемнеринден дилээри',
 'search-result-size' => '$1 ({{PLURAL:$2|$2 сөс}})',
 'search-section' => '(«$1» деп салбыр)',
+'search-suggest' => 'Силер «$1» деп бодадыңар чадавас',
 'search-interwiki-more' => '(артык)',
 'search-mwsuggest-enabled' => 'саналдар',
 'search-mwsuggest-disabled' => 'саналдар чок',
@@ -753,6 +755,8 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'statistics' => 'Статистика',
 'statistics-pages' => 'Арыннар',
 
+'disambiguationspage' => 'Майык: уш-бажы билдинмес',
+
 'brokenredirects-edit' => 'өскертири',
 'brokenredirects-delete' => 'ырадыры',
 
@@ -942,6 +946,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'whatlinkshere-next' => '{{PLURAL:$1|дараазында|дараазында $1}}',
 'whatlinkshere-links' => '← холбаалар',
 'whatlinkshere-hideredirs' => '$1-че шиглиглер',
+'whatlinkshere-hidetrans' => '$1 даңзылааннар',
 'whatlinkshere-hidelinks' => 'холбааларны $1',
 'whatlinkshere-hideimages' => 'Чурумалдың холбааларын $1',
 'whatlinkshere-filters' => 'Шүүрлер',
@@ -961,6 +966,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'ipblocklist-submit' => 'Дилээр',
 'infiniteblock' => 'кезээ-мөңгеде',
 'blocklink' => 'кызыгаарлаары',
+'unblocklink' => 'ажыдып хостаар',
 'change-blocklink' => 'кызыгаарлаашкынны өскертири',
 'contribslink' => 'немелделер',
 'blocklogpage' => 'Кызыгаарлаашкынның журналы',
@@ -1083,6 +1089,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 # Media information
 'widthheightpage' => '$1x$2, $3 {{PLURAL:$3|арын}}',
 'file-info-size' => '$1 × $2 пиксел, Файл хемчээли: $3, MIME янзызы: $4',
+'file-nohires' => 'Оон улуг хевири чок',
 'svg-long-desc' => 'SVG файл, $1 x $2 пиксел, файл хемчээли: $3',
 'show-big-image' => 'Улуг чурук',
 'show-big-image-size' => '$1 × $2 пиксел',
index 0304476..c13436e 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Alunardon90
  * @author BrokenArrow
  * @author Candalua
  * @author Frigotoni
@@ -177,10 +178,10 @@ $messages = array(
 'tog-enotifminoredits' => 'Avìseme par e-mail anca par i canbiamenti picenini',
 'tog-enotifrevealaddr' => 'Fà védar el me indirisso e-mail in tei messagi de aviso',
 'tog-shownumberswatching' => 'Mostra el numaro de utenti che i ga ła pajina en oservasion',
-'tog-oldsig' => 'Anteprima de la firma:',
+'tog-oldsig' => 'Anteprima de ła firma:',
 'tog-fancysig' => 'Interpreta i comandi wiki in te la firma (sensa colegamento automatego)',
-'tog-externaleditor' => "Dopara par default on editor de testo esterno (soło par utenti esperti, el richiede l'uso de impostasion particołari sol proprio computer)",
-'tog-externaldiff' => "Dopara par default on programa de diff esterno (soło par utenti esperti, el richiede l'uso de impostasion particołari sol proprio computer)",
+'tog-externaleditor' => "Dopara par default un editor de testo esterno (soło par utenti esperti. Richiede l'uxo de inpostasion particołari sol proprio computer)",
+'tog-externaldiff' => "Dopara par default un programa de diff esterno (soło par utenti esperti. Richiede l'uxo de inpostasion particołari sol proprio computer)",
 'tog-showjumplinks' => 'Ativa i cołegamenti acesibiłi "va a"',
 'tog-uselivepreview' => 'Ativa ła funsion "Line preview" (el richiede JavaScript; sperimentałe)',
 'tog-forceeditsummary' => "Chiedi conferma se l'ozeto de ła modifega el xé vodo",
@@ -305,7 +306,7 @@ $messages = array(
 'vector-action-move' => 'Sposta',
 'vector-action-protect' => 'Protezi',
 'vector-action-undelete' => 'Recupera',
-'vector-action-unprotect' => 'Sbloca',
+'vector-action-unprotect' => 'Canbia ła protesion',
 'vector-simplesearch-preference' => "Intaca i sugerimenti di ricerca avansadi (solo par l'interfacia Vector)",
 'vector-view-create' => 'Crea',
 'vector-view-edit' => 'Canbia',
@@ -338,11 +339,12 @@ $messages = array(
 'delete' => 'Scansela',
 'deletethispage' => 'Scansela sta pagina',
 'undelete_short' => 'Recupera {{PLURAL:$1|na revision|$1 revision}}',
+'viewdeleted_short' => 'Vedi {{PLURAL:$1|na modifega cancełà|$1 modifeghe cancełade}}',
 'protect' => 'Protezi',
 'protect_change' => 'canbia',
 'protectthispage' => 'Protezi sta pagina',
-'unprotect' => 'Sbloca',
-'unprotectthispage' => 'Cava ła protesion a sta pajina',
+'unprotect' => 'Canbia ła protesion',
+'unprotectthispage' => 'Canbia ła protesion de sta pajina',
 'newpage' => 'Pagina nova',
 'talkpage' => 'Pagina de discussion',
 'talkpagelinktext' => 'Discussion',
@@ -421,6 +423,8 @@ $1',
 'toc' => 'Indice',
 'showtoc' => 'mostra',
 'hidetoc' => 'scondi',
+'collapsible-collapse' => 'Conprimi',
+'collapsible-expand' => 'Espandi',
 'thisisdeleted' => 'Varda o ripristina $1?',
 'viewdeleted' => 'Varda $1?',
 'restorelink' => '{{PLURAL:$1|un canbiamento scanselà|$1 canbiamenti scanselà}}',
@@ -432,6 +436,8 @@ $1',
 'page-rss-feed' => 'Feed RSS par "$1"',
 'page-atom-feed' => 'Feed Atom par "$1"',
 'red-link-title' => '$1 (sta pagina no la ghe xe)',
+'sort-descending' => 'Ordinamento decresente',
+'sort-ascending' => 'Ordinamento cresente',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Voxe',
@@ -499,10 +505,11 @@ Se prega de dìrghelo a un [[Special:ListUsers/sysop|aministradore]] indicando l
 'badarticleerror' => 'Operasion no consentia par sta pajina.',
 'cannotdelete' => 'No xè sta posibiłe scansełare el file "$1".
 Podaria esare sta zà scansełà da qualcun altro.',
+'cannotdelete-title' => 'Inposibiłe ełiminare ła pajina "$1"',
 'badtitle' => 'Titoło mia justo',
 'badtitletext' => "El titoło de ła pajina richiesta xè vodo, erà o con carateri no amesi opure el deriva da n'erore ne i cołegamenti tra siti wiki diversi o version en łengue diverse de ło steso sito.",
-'perfcached' => 'Sti dati qua no i vien mia azornà in tenpo reale, ma solo na olta ogni tanto. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => "Sti dati qua i xe stà azornà l'ultima olta el $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
+'perfcached' => 'Sti dati vien tiradi fora da na copia "cache" del database e łi podarìa no esare ajornadi. Inte ła cache xe {{PLURAL:$1|disponibiłe un rixultado|xe disponibiłi $1 rixultadi}}.',
+'perfcachedts' => "Sti dati cua xe stà ajornadi l'ultima volta el $1. Inte ła cache xe disponibiłe al masimo {{PLURAL:$4|on rexultado|$4 rexultadi}}.",
 'querypage-no-updates' => "L'azornamento periodico de sta pagina el xe sospeso. 
 I dati che ghè qua drento no i xe azornà.",
 'wrong_wfQuery_params' => 'Erore ne i parametri invià a ła funsion wfQuery()<br />
@@ -527,6 +534,9 @@ $2',
 'ns-specialprotected' => 'No xè posibiłe modifegare łe pajine spesałi.',
 'titleprotected' => 'Ła creasion de na pajina con sto titoło xè sta blocà da [[User:$1|$1]].
 Ła modivasion xè ła seguente: "$2".',
+'filereadonlyerror' => 'No xe stà posibiłe modifegare el file "$1" parché el repository de file "$2" xe in modałità de soła letura.
+
+L\'aministradore che ło ga blocà ga fornìo sta spiegasion: "$3".',
 
 # Virus scanner
 'virus-badscanner' => 'Erore de configurasion: antivirus sconossuo: "$1"',
@@ -566,8 +576,8 @@ Te poli sistemarte come te vol le to [[Special:Preferences|prefarense de {{SITEN
 'createaccountmail' => 'Par e-mail',
 'createaccountreason' => 'Motivassion:',
 'badretype' => 'Le do password le xe difarenti.',
-'userexists' => 'Sto nome utente se lo gà zà tolto qualchedun altro.
-Tòtene uno difarente.',
+'userexists' => 'El nome utente inserido vien xa doparà da cualchedun altro.
+Prova co un nome utente difarente.',
 'loginerror' => "Erore ne l'aceso",
 'createaccounterror' => "No se pole crear l'utente: $1",
 'nocookiesnew' => "Ła rejistrasion xè sta conpletà, ma no xè sta posibiłe asedare a {{SITENAME}} parché i cookie i xè disativai. Riprovare l'aceso con el nome utente e ła password pena creai dopo aver ativà i cookie nel proprio browser.",
@@ -609,6 +619,8 @@ Par piaser, fà subito un login \'pena che la te riva.',
 'emailconfirmlink' => 'Conferma el to indirizo de e-mail',
 'invalidemailaddress' => "L'indirisso email no'l pode èssar acetà parché el gà un formato mìa valido.
 Inserissi un indirisso valido o svoda la casèła.",
+'cannotchangeemail' => "I indirisi de posta ełetronega de l'account no połe esare canbiadi inte sto projeto wiki.",
+'emaildisabled' => 'Sto sito no połe spedire mesaji de posta ełetronega.',
 'accountcreated' => 'Acesso creà',
 'accountcreatedtext' => "Xè stà creà un acesso par l'utente $1.",
 'createaccount-title' => 'Creazion de un acesso a {{SITENAME}}',
@@ -619,9 +631,14 @@ Se l\'acesso el xe stà creà par sbaglio, se pol ignorar sto messagio.',
 'usernamehasherror' => "El nome utente no'l pode contegner caràteri hash",
 'login-throttled' => 'Te ghè fato massa tentativi de autenticarte.
 Spèta un tocheto prima de proàr da novo.',
+'login-abort-generic' => 'El to login no xe riusido - Anułà.',
 'loginlanguagelabel' => 'Lengua: $1',
 'suspicious-userlogout' => 'Ła to richiesta de disconesion xè sta negà parché e a senbra invià da on browser non funsionante o on proxy de caching.',
 
+# E-mail sending
+'php-mail-error-unknown' => "Erore sconosudo nte'l funsionamento deła posta ełetronega PHP",
+'user-mail-no-addy' => 'Te ghe provà spedire un mesajo de posta ełetronega sensa un indiriso.',
+
 # Change password dialog
 'resetpass' => 'Cànbia la password',
 'resetpass_announce' => "L'acesso el xe stà efetuà con un codice tenporaneo, mandà par e-mail. Par conpletar l'acesso bisogna inpostar na password nova:",
@@ -640,6 +657,27 @@ Spèta un tocheto prima de proàr da novo.',
 Forse te ghè zà canbià la to password o te ghè domandà na password tenporanea nova.',
 'resetpass-temp-password' => 'Password tenporanea:',
 
+# Special:PasswordReset
+'passwordreset' => 'Rinposta ła password',
+'passwordreset-text' => 'Conpleta sto moduło par riçevare i detaji del to account via posta ełetronega.',
+'passwordreset-legend' => 'Rinposta ła password',
+'passwordreset-disabled' => 'Ła rinpostasion deła password xe stà dixabiłità so sto projeto wiki.',
+'passwordreset-pretext' => '{{PLURAL:$1|| Inserisi una dełe porsion de dati cua soto}}',
+'passwordreset-username' => 'Nome utente:',
+'passwordreset-domain' => 'Dominio',
+'passwordreset-capture' => 'Vixuałixare el contenuto del mesajo de posta ełetronega?',
+'passwordreset-capture-help' => "Se se sełesiona sta caxeła, l'indiriso de posta ełetronega (co' ła password tenporanea) ve vegnarà mostrà anca a voialtri oltre che esare invià a 'l utente.",
+'passwordreset-email' => 'Indiriso de posta ełetronega',
+'passwordreset-emailtitle' => "Detaji de l'account so {{SITENAME}}",
+'passwordreset-emailtext-ip' => "Cualcheduni (probabilmente ti, co indiriso IP $1) ga richiesto l'invio de na nova password par l'aceso a {{SITENAME}} ($4). {{PLURAL:$3|L'utente asocià|I utenti asociadi}} a sto indiriso de posta ełetronega łi xe:
+
+$2
+
+{{PLURAL:$3|Sta password tenporanea ła scadarà|Ste password tenporanee łe scadarà}} dopo {{PLURAL:$5|un dì|$5 dì}}.
+Sarìa mejo acedare e deçidare na nova password sùito. 
+
+Se no te si stà ti a fare ła richiesta, o se te te ghe ricordà ła password originałe e no te vołi pi canbiarla, te połi ignorare sto mesajo e continuar doparare ła to password vecia.",
+
 # Edit page toolbar
 'bold_sample' => 'Testo in grosso',
 'bold_tip' => 'Testo in grosso',
@@ -750,7 +788,7 @@ Le modifiche no le xe gnancora stà salvà!'''",
 'userinvalidcssjstitle' => "'''Ocio:'''  No ghe xe nissuna skin con nome \"\$1\". Nota che le pagine par i .css e .js personalizà le gà l'iniziale del titolo minuscola, par esenpio {{ns:user}}:Esenpio/vector.css e no {{ns:user}}:Esenpio/Vector.css.",
 'updated' => '(Agiornà)',
 'note' => "'''Nota:'''",
-'previewnote' => "'''Sta qua la xe solo n'anteprima; i canbiamenti a la pagina NO i xe gnancora stà salvà!'''",
+'previewnote' => "Sta cua ła xe soło n'anteprima; i canbiamenti a ła pajina NO i xe gnancora stà salvài!",
 'previewconflict' => 'Sta anteprima la corisponde al testo ne la casèla de edizion de sora, e la fa védar come vegnarà fora la pagina se te machi "Salva la pagina" in sto momento.',
 'session_fail_preview' => "No xè stà possibiłe salvar le to modifiche parché i dati de la session i xè andai persi.
 Par piaser, riproa da novo.
index 1b5bf34..9d71f39 100644 (file)
@@ -1055,6 +1055,10 @@ Những giá trị này sẽ bị bỏ đi.',
 'parser-template-loop-warning' => 'Phát hiện bản mẫu lặp vòng: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Bản mẫu đã vượt quá giới hạn về độ sâu đệ quy ($1)',
 'language-converter-depth-warning' => 'Đã vượt quá giới hạn độ sâu của bộ chuyển đổi ngôn ngữ ($1)',
+'node-count-exceeded-category' => 'Những trang có số nốt vượt quá giới hạn cho phép',
+'node-count-exceeded-warning' => 'Trang có nhiều nốt quá',
+'expansion-depth-exceeded-category' => 'Những trang có độ sâu bung bản mẫu vượt quá giới hạn cho phép',
+'expansion-depth-exceeded-warning' => 'Trang bung bản mẫu sâu quá',
 
 # "Undo" feature
 'undo-success' => 'Các sửa đổi có thể được lùi lại. Xin hãy kiểm tra phần so sánh bên dưới để xác nhận lại những gì bạn muốn làm, sau đó lưu thay đổi ở dưới để hoàn tất việc lùi lại sửa đổi.',
index 2a795bf..3497c72 100644 (file)
@@ -2466,6 +2466,7 @@ kò le yípò ojúewé padà sí ara rẹ̀.',
 
 # Export
 'export' => 'Ìkójáde àwọn ojúewé',
+'exportall' => 'Ìkójáde gbogbo àwọn ojúewé',
 'export-submit' => 'Kósíta',
 'export-addcattext' => 'Àfikún àwọn ojúewé láti inú ẹ̀ka:',
 'export-addcat' => 'Ìròpọ̀',
index 9cc1b18..c1e0fbe 100644 (file)
@@ -457,7 +457,7 @@ $messages = array(
 'protectthispage' => '保护本页',
 'unprotect' => '更改保护',
 'unprotectthispage' => '更改本页面的保护',
-'newpage' => 'æ\9c\80æ\96°é¡µé\9d¢',
+'newpage' => '新页面',
 'talkpage' => '讨论本页',
 'talkpagelinktext' => '讨论',
 'specialpage' => '特殊页面',
@@ -1159,8 +1159,8 @@ $1",
 'notextmatches' => '没有页面内容匹配',
 'prevn' => '前$1个',
 'nextn' => '后$1个',
-'prevn-title' => '前$1结果',
-'nextn-title' => '后$1结果',
+'prevn-title' => '前$1结果',
+'nextn-title' => '后$1结果',
 'shown-title' => '每页显示$1项结果',
 'viewprevnext' => '查看($1{{int:pipe-separator}}$2)($3)',
 'searchmenu-legend' => '搜索选项',
@@ -1236,7 +1236,7 @@ $1",
 'prefs-rc' => '最近更改',
 'prefs-watchlist' => '监视列表',
 'prefs-watchlist-days' => '监视列表中显示的天数:',
-'prefs-watchlist-days-max' => '最多$1{{PLURAL:$1|天}}',
+'prefs-watchlist-days-max' => '最多$1',
 'prefs-watchlist-edits' => '扩展监视列表中显示的最大更改数:',
 'prefs-watchlist-edits-max' => '最大数量:1000',
 'prefs-watchlist-token' => '监视列表权标:',
@@ -1963,7 +1963,7 @@ $1',
 'listusers-creationsort' => '按建立日期排序',
 'usereditcount' => '$1次编辑',
 'usercreated' => '$1 $2{{GENDER:$3|创建}}',
-'newpages' => 'æ\9c\80æ\96°é¡µé\9d¢',
+'newpages' => '新页面',
 'newpages-username' => '用户名:',
 'ancientpages' => '最早页面',
 'move' => '移动',
index d1b51a6..404bbe7 100644 (file)
@@ -134,9 +134,7 @@ class VectorTemplate extends BaseTemplate {
                        <!-- /sitenotice -->
                        <?php endif; ?>
                        <!-- firstHeading -->
-                       <h1 id="firstHeading" class="firstHeading">
-                               <span dir="auto"><?php $this->html( 'title' ) ?></span>
-                       </h1>
+                       <h1 id="firstHeading" class="firstHeading"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1>
                        <!-- /firstHeading -->
                        <!-- bodyContent -->
                        <div id="bodyContent">
index ebb639b..b90fd63 100644 (file)
@@ -11,12 +11,9 @@ div#footer {
        margin-left: 11em;
        padding: 1.25em;
 }
-div#mw-panel div.portal div.body {
+#mw-panel {
        padding-left: 0.5em;
 }
-div#mw-panel div.portal h5 {
-       padding-left: 2.25em;
-}
 #p-search {
        margin-right: 1em;
 }
index b309d15..4a7a9a0 100644 (file)
@@ -861,8 +861,7 @@ div#footer {
        -webkit-transition: left 250ms;
        -o-transition: left 250ms;
 }
-div#mw-panel div.portal div.body,
-div#mw-panel div.portal h5 {
+#mw-panel {
        transition: padding-left 250ms;
        -moz-transition: padding-left 250ms;
        -webkit-transition: padding-left 250ms;
index b023fdc..08eb50f 100644 (file)
@@ -15,11 +15,11 @@ EOF;
 }
 
 // Output a notice when running with older versions of PHPUnit
-if ( !version_compare( PHPUnit_Runner_Version::id(), "3.4.1", ">" ) ) {
+if ( version_compare( PHPUnit_Runner_Version::id(), "3.6.7", "<" ) ) {
   echo <<<EOF
 ********************************************************************************
 
-These tests run best with version PHPUnit 3.4.2 or better. Earlier versions may
+These tests run best with version PHPUnit 3.6.7 or better. Earlier versions may
 show failures because earlier versions of PHPUnit do not properly implement
 dependencies.
 
index 6c3e666..b5418dd 100644 (file)
@@ -8,7 +8,7 @@ class CdbTest extends MediaWikiTestCase {
 
        public function setUp() {
                if ( !CdbReader::haveExtension() ) {
-                       $this->markTestIncomplete( 'This test requires native CDB support to be present.' );
+                       $this->markTestSkipped( 'Native CDB support is not available' );
                }
        }
 
index 89d9e0c..664f04a 100644 (file)
@@ -8,6 +8,7 @@ class PreferencesTest extends MediaWikiTestCase {
 
        function __construct() {
                parent::__construct();
+               global $wgEnableEmail;
 
                $this->users['noemail'] = new User;
 
@@ -23,6 +24,9 @@ class PreferencesTest extends MediaWikiTestCase {
 
                $this->context = new RequestContext;
                $this->context->setTitle( Title::newFromText('PreferencesTest') );
+
+               //some tests depends on email setting
+               $wgEnableEmail = true;
        }
 
        /**
index badd040..aed658b 100644 (file)
@@ -43,7 +43,7 @@ class TitleMethodsTest extends MediaWikiTestCase {
         */
        public function testInNamespace( $title, $ns, $expectedBool ) {
                $title = Title::newFromText( $title );
-               $this->assertEquals( $title->inNamespace( $ns ), $expectedBool );
+               $this->assertEquals( $expectedBool, $title->inNamespace( $ns ) );
        }
 
        public function testInNamespaces() {
@@ -75,4 +75,127 @@ class TitleMethodsTest extends MediaWikiTestCase {
                $this->assertEquals( $expectedBool, $title->hasSubjectNamespace( $ns ) );
        }
 
+       public function dataIsCssOrJsPage() {
+               return array(
+                       array( 'Foo', false ),
+                       array( 'Foo.js', false ),
+                       array( 'Foo/bar.js', false ),
+                       array( 'User:Foo', false ),
+                       array( 'User:Foo.js', false ),
+                       array( 'User:Foo/bar.js', false ),
+                       array( 'User:Foo/bar.css', false ),
+                       array( 'User talk:Foo/bar.css', false ),
+                       array( 'User:Foo/bar.js.xxx', false ),
+                       array( 'User:Foo/bar.xxx', false ),
+                       array( 'MediaWiki:Foo.js', true ),
+                       array( 'MediaWiki:Foo.css', true ),
+                       array( 'MediaWiki:Foo.JS', false ),
+                       array( 'MediaWiki:Foo.CSS', false ),
+                       array( 'MediaWiki:Foo.css.xxx', false ),
+               );
+       }
+
+       /**
+        * @dataProvider dataIsCssOrJsPage
+        */
+       public function testIsCssOrJsPage( $title, $expectedBool ) {
+               $title = Title::newFromText( $title );
+               $this->assertEquals( $expectedBool, $title->isCssOrJsPage() );
+       }
+
+
+       public function dataIsCssJsSubpage() {
+               return array(
+                       array( 'Foo', false ),
+                       array( 'Foo.js', false ),
+                       array( 'Foo/bar.js', false ),
+                       array( 'User:Foo', false ),
+                       array( 'User:Foo.js', false ),
+                       array( 'User:Foo/bar.js', true ),
+                       array( 'User:Foo/bar.css', true ),
+                       array( 'User talk:Foo/bar.css', false ),
+                       array( 'User:Foo/bar.js.xxx', false ),
+                       array( 'User:Foo/bar.xxx', false ),
+                       array( 'MediaWiki:Foo.js', false ),
+                       array( 'User:Foo/bar.JS', false ),
+                       array( 'User:Foo/bar.CSS', false ),
+               );
+       }
+
+       /**
+        * @dataProvider dataIsCssJsSubpage
+        */
+       public function testIsCssJsSubpage( $title, $expectedBool ) {
+               $title = Title::newFromText( $title );
+               $this->assertEquals( $expectedBool, $title->isCssJsSubpage() );
+       }
+
+       public function dataIsCssSubpage() {
+               return array(
+                       array( 'Foo', false ),
+                       array( 'Foo.css', false ),
+                       array( 'User:Foo', false ),
+                       array( 'User:Foo.js', false ),
+                       array( 'User:Foo.css', false ),
+                       array( 'User:Foo/bar.js', false ),
+                       array( 'User:Foo/bar.css', true ),
+               );
+       }
+
+       /**
+        * @dataProvider dataIsCssSubpage
+        */
+       public function testIsCssSubpage( $title, $expectedBool ) {
+               $title = Title::newFromText( $title );
+               $this->assertEquals( $expectedBool, $title->isCssSubpage() );
+       }
+
+       public function dataIsJsSubpage() {
+               return array(
+                       array( 'Foo', false ),
+                       array( 'Foo.css', false ),
+                       array( 'User:Foo', false ),
+                       array( 'User:Foo.js', false ),
+                       array( 'User:Foo.css', false ),
+                       array( 'User:Foo/bar.js', true ),
+                       array( 'User:Foo/bar.css', false ),
+               );
+       }
+
+       /**
+        * @dataProvider dataIsJsSubpage
+        */
+       public function testIsJsSubpage( $title, $expectedBool ) {
+               $title = Title::newFromText( $title );
+               $this->assertEquals( $expectedBool, $title->isJsSubpage() );
+       }
+
+       public function dataIsWikitextPage() {
+               return array(
+                       array( 'Foo', true ),
+                       array( 'Foo.js', true ),
+                       array( 'Foo/bar.js', true ),
+                       array( 'User:Foo', true ),
+                       array( 'User:Foo.js', true ),
+                       array( 'User:Foo/bar.js', false ),
+                       array( 'User:Foo/bar.css', false ),
+                       array( 'User talk:Foo/bar.css', true ),
+                       array( 'User:Foo/bar.js.xxx', true ),
+                       array( 'User:Foo/bar.xxx', true ),
+                       array( 'MediaWiki:Foo.js', false ),
+                       array( 'MediaWiki:Foo.css', false ),
+                       array( 'MediaWiki:Foo/bar.css', false ),
+                       array( 'User:Foo/bar.JS', true ),
+                       array( 'User:Foo/bar.CSS', true ),
+               );
+       }
+
+       /**
+        * @dataProvider dataIsWikitextPage
+        */
+       public function testIsWikitextPage( $title, $expectedBool ) {
+               $title = Title::newFromText( $title );
+               $this->assertEquals( $expectedBool, $title->isWikitextPage() );
+       }
+
 }
index d62ee20..a8b987e 100644 (file)
-<?php\r
-\r
-/**\r
- * @group Database\r
- * @group Cache\r
- */\r
-class GenderCacheTest extends MediaWikiLangTestCase {\r
-\r
-       function setUp() {\r
-               parent::setUp();\r
-               //ensure the correct default gender\r
-               $wgDefaultUserOptions['gender'] = 'unknown';\r
-       }\r
-\r
-       function addDBData() {\r
-               $user = User::newFromName( 'UTMale' );\r
-               if( $user->getID() == 0 ) {\r
-                       $user->addToDatabase();\r
-                       $user->setPassword( 'UTMalePassword' );\r
-               }\r
-               //ensure the right gender\r
-               $user->setOption( 'gender', 'male' );\r
-               $user->saveSettings();\r
-\r
-               $user = User::newFromName( 'UTFemale' );\r
-               if( $user->getID() == 0 ) {\r
-                       $user->addToDatabase();\r
-                       $user->setPassword( 'UTFemalePassword' );\r
-               }\r
-               //ensure the right gender\r
-               $user->setOption( 'gender', 'female' );\r
-               $user->saveSettings();\r
-\r
-               $user = User::newFromName( 'UTDefaultGender' );\r
-               if( $user->getID() == 0 ) {\r
-                       $user->addToDatabase();\r
-                       $user->setPassword( 'UTDefaultGenderPassword' );\r
-               }\r
-               //ensure the default gender\r
-               $user->setOption( 'gender', null );\r
-               $user->saveSettings();\r
-       }\r
-\r
-       /**\r
-        * test usernames\r
-        *\r
-        * @dataProvider dataUserName\r
-        */\r
-       function testUserName( $username, $expectedGender ) {\r
-               $genderCache = GenderCache::singleton();\r
-               $gender = $genderCache->getGenderOf( $username );\r
-               $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );\r
-       }\r
-\r
-       /**\r
-        * genderCache should work with user objects, too\r
-        *\r
-        * @dataProvider dataUserName\r
-        */\r
-       function testUserObjects( $username, $expectedGender ) {\r
-               $genderCache = GenderCache::singleton();\r
-               $user = User::newFromName( $username );\r
-               $gender = $genderCache->getGenderOf( $user );\r
-               $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );\r
-       }\r
-\r
-       function dataUserName() {\r
-               return array(\r
-                       array( 'UTMale', 'male' ),\r
-                       array( 'UTFemale', 'female' ),\r
-                       array( 'UTDefaultGender', 'unknown' ),\r
-                       array( 'UTNotExist', 'unknown' ),\r
-                       //some not valid user\r
-                       array( '127.0.0.1', 'unknown' ),\r
-                       array( 'user@test', 'unknown' ),\r
-               );\r
-       }\r
-\r
-       /**\r
-        * test strip of subpages to avoid unnecessary queries\r
-        * against the never existing username\r
-        *\r
-        * @dataProvider dataStripSubpages\r
-        */\r
-       function testStripSubpages( $pageWithSubpage, $expectedGender ) {\r
-               $genderCache = GenderCache::singleton();\r
-               $gender = $genderCache->getGenderOf( $pageWithSubpage );\r
-               $this->assertEquals( $gender, $expectedGender, "GenderCache must strip of subpages" );\r
-       }\r
-\r
-       function dataStripSubpages() {\r
-               return array(\r
-                       array( 'UTMale/subpage', 'male' ),\r
-                       array( 'UTFemale/subpage', 'female' ),\r
-                       array( 'UTDefaultGender/subpage', 'unknown' ),\r
-                       array( 'UTNotExist/subpage', 'unknown' ),\r
-                       array( '127.0.0.1/subpage', 'unknown' ),\r
-               );\r
-       }\r
-}\r
+<?php
+
+/**
+ * @group Database
+ * @group Cache
+ */
+class GenderCacheTest extends MediaWikiLangTestCase {
+
+       function setUp() {
+               global $wgDefaultUserOptions;
+               parent::setUp();
+               //ensure the correct default gender
+               $wgDefaultUserOptions['gender'] = 'unknown';
+       }
+
+       function addDBData() {
+               $user = User::newFromName( 'UTMale' );
+               if( $user->getID() == 0 ) {
+                       $user->addToDatabase();
+                       $user->setPassword( 'UTMalePassword' );
+               }
+               //ensure the right gender
+               $user->setOption( 'gender', 'male' );
+               $user->saveSettings();
+
+               $user = User::newFromName( 'UTFemale' );
+               if( $user->getID() == 0 ) {
+                       $user->addToDatabase();
+                       $user->setPassword( 'UTFemalePassword' );
+               }
+               //ensure the right gender
+               $user->setOption( 'gender', 'female' );
+               $user->saveSettings();
+
+               $user = User::newFromName( 'UTDefaultGender' );
+               if( $user->getID() == 0 ) {
+                       $user->addToDatabase();
+                       $user->setPassword( 'UTDefaultGenderPassword' );
+               }
+               //ensure the default gender
+               $user->setOption( 'gender', null );
+               $user->saveSettings();
+       }
+
+       /**
+        * test usernames
+        *
+        * @dataProvider dataUserName
+        */
+       function testUserName( $username, $expectedGender ) {
+               $genderCache = GenderCache::singleton();
+               $gender = $genderCache->getGenderOf( $username );
+               $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );
+       }
+
+       /**
+        * genderCache should work with user objects, too
+        *
+        * @dataProvider dataUserName
+        */
+       function testUserObjects( $username, $expectedGender ) {
+               $genderCache = GenderCache::singleton();
+               $user = User::newFromName( $username );
+               $gender = $genderCache->getGenderOf( $user );
+               $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );
+       }
+
+       function dataUserName() {
+               return array(
+                       array( 'UTMale', 'male' ),
+                       array( 'UTFemale', 'female' ),
+                       array( 'UTDefaultGender', 'unknown' ),
+                       array( 'UTNotExist', 'unknown' ),
+                       //some not valid user
+                       array( '127.0.0.1', 'unknown' ),
+                       array( 'user@test', 'unknown' ),
+               );
+       }
+
+       /**
+        * test strip of subpages to avoid unnecessary queries
+        * against the never existing username
+        *
+        * @dataProvider dataStripSubpages
+        */
+       function testStripSubpages( $pageWithSubpage, $expectedGender ) {
+               $genderCache = GenderCache::singleton();
+               $gender = $genderCache->getGenderOf( $pageWithSubpage );
+               $this->assertEquals( $gender, $expectedGender, "GenderCache must strip of subpages" );
+       }
+
+       function dataStripSubpages() {
+               return array(
+                       array( 'UTMale/subpage', 'male' ),
+                       array( 'UTFemale/subpage', 'female' ),
+                       array( 'UTDefaultGender/subpage', 'unknown' ),
+                       array( 'UTNotExist/subpage', 'unknown' ),
+                       array( '127.0.0.1/subpage', 'unknown' ),
+               );
+       }
+}
index e3f780b..61a20f1 100755 (executable)
@@ -94,8 +94,8 @@ require( RUN_MAINTENANCE_IF_MAIN );
 require_once( 'PHPUnit/Runner/Version.php' );
 
 if( PHPUnit_Runner_Version::id() !== '@package_version@'
-   && version_compare( PHPUnit_Runner_Version::id(), '3.5.0', '<' ) ) {
-       die( 'PHPUnit 3.5 or later required, you have ' . PHPUnit_Runner_Version::id() . ".\n" );
+   && version_compare( PHPUnit_Runner_Version::id(), '3.6.7', '<' ) ) {
+       die( 'PHPUnit 3.6.7 or later required, you have ' . PHPUnit_Runner_Version::id() . ".\n" );
 }
 require_once( 'PHPUnit/Autoload.php' );