Merge "New hook, 'SearchResultInitFromTitle'"
authorAaron Schulz <aschulz@wikimedia.org>
Fri, 7 Sep 2012 20:49:32 +0000 (20:49 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 7 Sep 2012 20:49:32 +0000 (20:49 +0000)
98 files changed:
RELEASE-NOTES-1.20
docs/hooks.txt
includes/GlobalFunctions.php
includes/IP.php
includes/ImagePage.php
includes/OutputPage.php
includes/SkinTemplate.php
includes/Timestamp.php
includes/actions/InfoAction.php
includes/api/ApiMain.php
includes/api/ApiMove.php
includes/api/ApiQuery.php
includes/filebackend/FileBackend.php
includes/filebackend/SwiftFileBackend.php
includes/installer/MysqlUpdater.php
includes/installer/SqliteUpdater.php
includes/media/FormatMetadata.php
includes/specials/SpecialLog.php
includes/specials/SpecialTags.php
languages/messages/MessagesAr.php
languages/messages/MessagesAst.php
languages/messages/MessagesBar.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBr.php
languages/messages/MessagesCeb.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCs.php
languages/messages/MessagesDa.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesGl.php
languages/messages/MessagesGsw.php
languages/messages/MessagesHe.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHu.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIlo.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKa.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKm.php
languages/messages/MessagesKo.php
languages/messages/MessagesLb.php
languages/messages/MessagesMai.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMs.php
languages/messages/MessagesNb.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNl.php
languages/messages/MessagesPa.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPs.php
languages/messages/MessagesQqq.php
languages/messages/MessagesRo.php
languages/messages/MessagesRu.php
languages/messages/MessagesSa.php
languages/messages/MessagesSl.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesSv.php
languages/messages/MessagesTa.php
languages/messages/MessagesTl.php
languages/messages/MessagesTly.php
languages/messages/MessagesVi.php
languages/messages/MessagesYi.php
languages/messages/MessagesZh_hant.php
maintenance/archives/patch-cat_hidden.sql [new file with mode: 0644]
maintenance/benchmarks/Benchmarker.php
maintenance/benchmarks/bench_delete_truncate.php
maintenance/benchmarks/benchmarkHooks.php
maintenance/benchmarks/benchmarkPurge.php
maintenance/dev/includes/router.php
maintenance/language/alltrans.php
maintenance/language/checkDupeMessages.php
maintenance/language/countMessages.php
maintenance/language/date-formats.php
maintenance/language/digit2html.php
maintenance/language/dumpMessages.php
maintenance/language/generateCollationData.php
maintenance/language/generateNormalizerData.php
maintenance/purgeStaleMemcachedText.php [deleted file]
maintenance/refreshImageCount.php [deleted file]
maintenance/sqlite/archives/patch-cat_hidden.sql [new file with mode: 0644]
maintenance/tables.sql
skins/common/preview.js
tests/phpunit/maintenance/backupTextPassTest.php

index a48b81c..ce40066 100644 (file)
@@ -99,6 +99,8 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
   replacement, and so on.
 * (bug 34678) Added InternalParseBeforeSanitize hook which gets called during Parser's
   internalParse method just before the parser removes unwanted/dangerous HTML tags.
+* Added new hook AfterFinalPageOutput to allow modifications to buffered page output before sent
+  to the client.
 * (bug 36783) Implement jQuery Promise interface in mediawiki.api module.
 * Make dates in sortable tables sort according to the page content language
   instead of the site content language
@@ -230,11 +232,14 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
   PCRE is compiled without support for unicode properties.
 * (bug 30390) Suggested file name on Special:Upload should not contain
   illegal characters.
-* (bug 27111) Cascading foreign file repos now fetch shared descriptions properly.
 * EXIF below sea level GPS altitude data is now shown correctly.
 * (bug 39284) jquery.tablesorter should not consider "."" or "?"" to be a currency.
 * (bug 39273) "Show changes" should not be incorrectly displayed in the Live Preview state.
 * Made body-content lang attribute honor the variant language when it is set.
+* (bug 36761) "Mark pages as visited" now submits previously established filter options.
+* (bug 39635) PostgreSQL LOCK IN SHARE MODE option is a syntax error.
+* (bug 36329) Accesskey tooltips for Firefox 14 on Mac should use "ctrl-option-" prefix.
+* (bug 32552) Drop unused database field cat_hidden from table category.
 
 === API changes in 1.20 ===
 * (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
@@ -251,7 +256,6 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 34927) Output media_type for list=filearchive.
 * (bug 28814) add properties to output of action=parse.
 * (bug 33224) add variants of content language to meta=siteinfo.
-* (bug 36761) "Mark pages as visited" now submits previously established filter options.
 * (bug 32643) action=purge with forcelinkupdate no longer crashes when ratelimit is reached.
 * The paraminfo module now also contains result properties for most modules.
 * (bug 32348) Allow descending order for list=alllinks.
@@ -272,8 +276,8 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 38904) prop=revisions&rvstart=... no longer blows up when continuing.
 * (bug 39032) ApiQuery generates help in constructor.
 * (bug 11142) Improve file extension blacklist error reporting in API upload.
-* (bug 39635) PostgreSQL LOCK IN SHARE MODE option is a syntax error.
-* (bug 36329) Accesskey tooltips for Firefox 14 on Mac should use "ctrl-option-" prefix.
+* (bug 39665) Cache AllowedGenerator array so it doesn't autoload all query classes
+  on every request.
 
 === Languages updated in 1.20 ===
 
index 3560856..6105367 100644 (file)
@@ -290,6 +290,12 @@ $revCount: Number of revisions in the XML file
 $sRevCount: Number of sucessfully imported revisions
 $pageInfo: associative array of page information
 
+'AfterFinalPageOutput': Nearly at the end of OutputPage::output() but
+before OutputPage::sendCacheControl() and final ob_end_flush() which
+will send the buffered output to the client. This allows for last-minute
+modification of the output within the buffer by using ob_get_clean().
+$output: The OutputPage object where output() was called
+
 'AjaxAddScript': Called in output page just before the initialisation
 of the javascript ajax engine. The hook is only called when ajax
 is enabled ( $wgUseAjax = true; ).
@@ -314,6 +320,13 @@ $body: Body of the message
 Use this to extend core API modules.
 &$module: Module object
 
+'APICheckCanExecute': Called during ApiMain::checkCanExecute. Use to
+further authenticate and authorize API clients before executing the
+module. Return false and set a message to cancel the request.
+$module: Module object
+$user: Current user
+&$message: API usage message to die with
+
 'APIEditBeforeSave': before saving a page with api.php?action=edit,
 after processing request parameters. Return false to let the request
 fail, returning an error message or an <edit result="Failure"> tag
index 98bc65f..e600506 100644 (file)
@@ -2404,7 +2404,6 @@ define( 'TS_ISO_8601_BASIC', 9 );
 /**
  * Get a timestamp string in one of various formats
  *
- * @deprecated
  * @param $outputtype Mixed: A timestamp in one of the supported formats, the
  *                    function will autodetect which format is supplied and act
  *                    accordingly.
index 1828249..10c707e 100644 (file)
@@ -714,6 +714,7 @@ class IP {
         * @return String: valid dotted quad IPv4 address or null
         */
        public static function canonicalize( $addr ) {
+               $addr = preg_replace( '/\%.*/','', $addr ); // remove zone info (bug 35738)
                if ( self::isValid( $addr ) ) {
                        return $addr;
                }
index 7bbd584..c7afb76 100644 (file)
@@ -94,47 +94,10 @@ class ImagePage extends Article {
        /**
         * Handler for action=render
         * Include body text only; none of the image extras
-        * However, also include the shared description text
-        * so that cascading ForeignAPIRepo's work.
-        *
-        * @note This uses a div with the class "mw-shared-image-desc"
-        *    as opposed to the id "mw-shared-image-desc" since the text
-        *    from here may be cascadingly transcluded to other shared
-        *    repos, and we want all ids to be unique. On normal
-        *    view, the outermost shared description will still have
-        *    the id.
-        *
-        * This also differs from normal view in that "shareddescriptionfollows"
-        * message is not shown. I was not sure if it was appropriate to
-        * add that message here.
         */
        public function render() {
-               $out = $this->getContext()->getOutput();
-                $this->loadFile();
-
-                $descText = $this->mPage->getFile()->getDescriptionText();
-
-               $out->setArticleBodyOnly( true );
-
-               if ( !$descText ) {
-                       // If no description text, just do standard action=render
-                       parent::view();
-               } else {
-                       if ( $this->mPage->getID() !== 0 ) {
-                               // Local description exists. We need to output both
-                               parent::view();
-                               $out->addHTML( '<div class="mw-shared-image-desc">' . $descText . "</div>\n" );
-                       } else {
-                               // We don't want to output both a "noarticletext" message and the shared
-                               // description, so don't call parent::view().
-                               $out->addHTML( '<div class="mw-shared-image-desc">' . $descText . "</div>\n" );
-                               // Since we did not call parent::view(), have to call some methods it
-                               // normally takes care of. (Not that it matters much since skin not displayed)
-                               $out->setArticleFlag( true );
-                               $out->setPageTitle( $this->getTitle()->getPrefixedText() );
-                               $this->mPage->doViewUpdates( $this->getContext()->getUser() );
-                       }
-               }
+               $this->getContext()->getOutput()->setArticleBodyOnly( true );
+               parent::view();
        }
 
        public function view() {
@@ -209,7 +172,7 @@ class ImagePage extends Article {
                        if ( !$fol->isDisabled() ) {
                                $out->addWikiText( $fol->plain() );
                        }
-                       $out->addHTML( '<div id="shared-image-desc" class="mw-shared-image-desc">' . $this->mExtraDescription . "</div>\n" );
+                       $out->addHTML( '<div id="shared-image-desc">' . $this->mExtraDescription . "</div>\n" );
                }
 
                $this->closeShowImage();
index b020a8e..7b67144 100644 (file)
@@ -1990,6 +1990,9 @@ class OutputPage extends ContextSource {
                        wfProfileOut( 'Output-skin' );
                }
 
+               // This hook allows last minute changes to final overall output by modifying output buffer
+               wfRunHooks( 'AfterFinalPageOutput', array( $this ) );
+
                $this->sendCacheControl();
                ob_end_flush();
                wfProfileOut( __METHOD__ );
index 7f433bc..df94dcb 100644 (file)
@@ -1181,9 +1181,8 @@ class SkinTemplate extends Skin {
                                'href' => self::makeSpecialUrlSubpage( 'Contributions', $rootUser )
                        );
 
-                       $logPage = SpecialPage::getTitleFor( 'Log' );
                        $nav_urls['log'] = array(
-                               'href' => $logPage->getLocalUrl( array( 'user' => $rootUser ) )
+                               'href' => self::makeSpecialUrlSubpage( 'Log', $rootUser )
                        );
 
                        if ( $this->getUser()->isAllowed( 'block' ) ) {
index 41665bc..c9ba8d9 100644 (file)
@@ -61,6 +61,7 @@ class MWTimestamp {
         * The actual timestamp being wrapped. Either a DateTime
         * object or a string with a Unix timestamp depending on
         * PHP.
+        * @var string|DateTime
         */
        private $timestamp;
 
@@ -68,7 +69,7 @@ class MWTimestamp {
         * Make a new timestamp and set it to the specified time,
         * or the current time if unspecified.
         *
-        * @param $timestamp Timestamp to set, or false for current time
+        * @param $timestamp bool|string Timestamp to set, or false for current time
         */
        public function __construct( $timestamp = false ) {
                $this->setTimestamp( $timestamp );
@@ -77,17 +78,17 @@ class MWTimestamp {
        /**
         * Set the timestamp to the specified time, or the current time if unspecified.
         *
-        * Parse the given timestamp into either a DateTime object or a Unix teimstamp,
+        * Parse the given timestamp into either a DateTime object or a Unix timestamp,
         * and then store it.
         *
-        * @param $ts Timestamp to store, or false for now
+        * @param $ts string|bool Timestamp to store, or false for now
+        * @throws TimestampException
         */
        public function setTimestamp( $ts = false ) {
-               $uts = 0;
                $da = array();
                $strtime = '';
 
-               if ( !$ts ) { // We want to catch 0, '', null... but not date strings starting with a letter.
+               if ( !$ts || $ts === "\0\0\0\0\0\0\0\0\0\0\0\0\0\0" ) { // We want to catch 0, '', null... but not date strings starting with a letter.
                        $uts = time();
                        $strtime = "@$uts";
                } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
@@ -98,7 +99,6 @@ class MWTimestamp {
                        # TS_MW
                } elseif ( preg_match( '/^-?\d{1,13}$/D', $ts ) ) {
                        # TS_UNIX
-                       $uts = $ts;
                        $strtime = "@$ts"; // http://php.net/manual/en/datetime.formats.compound.php
                } elseif ( preg_match( '/^\d{2}-\d{2}-\d{4} \d{2}:\d{2}:\d{2}.\d{6}$/', $ts ) ) {
                        # TS_ORACLE // session altered to DD-MM-YYYY HH24:MI:SS.FF6
@@ -140,14 +140,14 @@ class MWTimestamp {
                        try {
                                $final = new DateTime( $strtime, new DateTimeZone( 'GMT' ) );
                        } catch(Exception $e) {
-                               throw new TimestampException( __METHOD__ . 'Invalid timestamp format.' );
+                               throw new TimestampException( __METHOD__ . ' Invalid timestamp format.' );
                        }
                } else {
                        $final = strtotime( $strtime );
                }
 
                if( $final === false ) {
-                       throw new TimestampException( __METHOD__ . 'Invalid timestamp format.' );
+                       throw new TimestampException( __METHOD__ . ' Invalid timestamp format.' );
                }
                $this->timestamp = $final;
        }
@@ -158,7 +158,8 @@ class MWTimestamp {
         * Convert the internal timestamp to the specified format and then
         * return it.
         *
-        * @param $style Output format for timestamp
+        * @param $style int Constant Output format for timestamp
+        * @throws TimestampException
         * @return string The formatted timestamp
         */
        public function getTimestamp( $style = TS_UNIX ) {
@@ -166,7 +167,7 @@ class MWTimestamp {
                        throw new TimestampException( __METHOD__ . ' : Illegal timestamp output type.' );
                }
 
-               if( is_object( $this->timestamp ) ) {
+               if( is_object( $this->timestamp  ) ) {
                        // DateTime object was used, call DateTime::format.
                        $output = $this->timestamp->format( self::$formats[$style] );
                } elseif( TS_UNIX == $style ) {
@@ -217,6 +218,9 @@ class MWTimestamp {
                }
        }
 
+       /**
+        * @return string
+        */
        public function __toString() {
                return $this->getTimestamp();
        }
index 6c21306..9e5cd99 100644 (file)
@@ -478,7 +478,7 @@ class InfoAction extends FormlessAction {
         */
        protected function addRow( $table, $name, $value ) {
                return $table . Html::rawElement( 'tr', array(),
-                       Html::rawElement( 'td', array(), $name ) .
+                       Html::rawElement( 'td', array( 'valign' => 'top' ), $name ) .
                        Html::rawElement( 'td', array(), $value )
                );
        }
index 2a94a65..35febd9 100644 (file)
@@ -761,6 +761,12 @@ class ApiMain extends ApiBase {
                                $this->dieReadOnly();
                        }
                }
+
+               // Allow extensions to stop execution for arbitrary reasons.
+               $message = false;
+               if( !wfRunHooks( 'ApiCheckCanExecute', array( $module, $user, &$message ) ) ) {
+                       $this->dieUsageMsg( $message );
+               }
        }
 
        /**
index 55148b1..9d73562 100644 (file)
@@ -75,6 +75,7 @@ class ApiMove extends ApiBase {
                }
 
                // Move the page
+               $toTitleExists = $toTitle->exists();
                $retval = $fromTitle->moveTo( $toTitle, true, $params['reason'], !$params['noredirect'] );
                if ( $retval !== true ) {
                        $this->dieUsageMsg( reset( $retval ) );
@@ -84,13 +85,20 @@ class ApiMove extends ApiBase {
                if ( !$params['noredirect'] || !$user->isAllowed( 'suppressredirect' ) ) {
                        $r['redirectcreated'] = '';
                }
+               if( $toTitleExists ) {
+                       $r['moveoverredirect'] = '';
+               }
 
                // Move the talk page
                if ( $params['movetalk'] && $fromTalk->exists() && !$fromTitle->isTalkPage() ) {
+                       $toTalkExists = $toTalk->exists();
                        $retval = $fromTalk->moveTo( $toTalk, true, $params['reason'], !$params['noredirect'] );
                        if ( $retval === true ) {
                                $r['talkfrom'] = $fromTalk->getPrefixedText();
                                $r['talkto'] = $toTalk->getPrefixedText();
+                               if( $toTalkExists ) {
+                                       $r['talkmoveoverredirect'] = '';
+                               }
                        } else {
                                // We're not gonna dieUsage() on failure, since we already changed something
                                $parsed = $this->parseMsg( reset( $retval ) );
@@ -231,6 +239,7 @@ class ApiMove extends ApiBase {
                                'to' => 'string',
                                'reason' => 'string',
                                'redirectcreated' => 'boolean',
+                               'moveoverredirect' => 'boolean',
                                'talkfrom' => array(
                                        ApiBase::PROP_TYPE => 'string',
                                        ApiBase::PROP_NULLABLE => true
@@ -239,6 +248,7 @@ class ApiMove extends ApiBase {
                                        ApiBase::PROP_TYPE => 'string',
                                        ApiBase::PROP_NULLABLE => true
                                ),
+                               'talkmoveoverredirect' => 'boolean',
                                'talkmove-error-code' => array(
                                        ApiBase::PROP_TYPE => 'string',
                                        ApiBase::PROP_NULLABLE => true
index 7823e2f..554aae5 100644 (file)
@@ -47,55 +47,55 @@ class ApiQuery extends ApiBase {
        private $params, $redirects, $convertTitles, $iwUrl;
 
        private $mQueryPropModules = array(
+               'categories' => 'ApiQueryCategories',
+               'categoryinfo' => 'ApiQueryCategoryInfo',
+               'duplicatefiles' => 'ApiQueryDuplicateFiles',
+               'extlinks' => 'ApiQueryExternalLinks',
+               'images' => 'ApiQueryImages',
+               'imageinfo' => 'ApiQueryImageInfo',
                'info' => 'ApiQueryInfo',
-               'revisions' => 'ApiQueryRevisions',
                'links' => 'ApiQueryLinks',
                'iwlinks' => 'ApiQueryIWLinks',
                'langlinks' => 'ApiQueryLangLinks',
-               'images' => 'ApiQueryImages',
-               'imageinfo' => 'ApiQueryImageInfo',
+               'pageprops' => 'ApiQueryPageProps',
+               'revisions' => 'ApiQueryRevisions',
                'stashimageinfo' => 'ApiQueryStashImageInfo',
                'templates' => 'ApiQueryLinks',
-               'categories' => 'ApiQueryCategories',
-               'extlinks' => 'ApiQueryExternalLinks',
-               'categoryinfo' => 'ApiQueryCategoryInfo',
-               'duplicatefiles' => 'ApiQueryDuplicateFiles',
-               'pageprops' => 'ApiQueryPageProps',
        );
 
        private $mQueryListModules = array(
+               'allcategories' => 'ApiQueryAllCategories',
                'allimages' => 'ApiQueryAllImages',
-               'allpages' => 'ApiQueryAllPages',
                'alllinks' => 'ApiQueryAllLinks',
-               'allcategories' => 'ApiQueryAllCategories',
+               'allpages' => 'ApiQueryAllPages',
                'allusers' => 'ApiQueryAllUsers',
                'backlinks' => 'ApiQueryBacklinks',
                'blocks' => 'ApiQueryBlocks',
                'categorymembers' => 'ApiQueryCategoryMembers',
                'deletedrevs' => 'ApiQueryDeletedrevs',
                'embeddedin' => 'ApiQueryBacklinks',
+               'exturlusage' => 'ApiQueryExtLinksUsage',
                'filearchive' => 'ApiQueryFilearchive',
                'imageusage' => 'ApiQueryBacklinks',
                'iwbacklinks' => 'ApiQueryIWBacklinks',
                'langbacklinks' => 'ApiQueryLangBacklinks',
                'logevents' => 'ApiQueryLogEvents',
+               'protectedtitles' => 'ApiQueryProtectedTitles',
+               'querypage' => 'ApiQueryQueryPage',
+               'random' => 'ApiQueryRandom',
                'recentchanges' => 'ApiQueryRecentChanges',
                'search' => 'ApiQuerySearch',
                'tags' => 'ApiQueryTags',
                'usercontribs' => 'ApiQueryContributions',
+               'users' => 'ApiQueryUsers',
                'watchlist' => 'ApiQueryWatchlist',
                'watchlistraw' => 'ApiQueryWatchlistRaw',
-               'exturlusage' => 'ApiQueryExtLinksUsage',
-               'users' => 'ApiQueryUsers',
-               'random' => 'ApiQueryRandom',
-               'protectedtitles' => 'ApiQueryProtectedTitles',
-               'querypage' => 'ApiQueryQueryPage',
        );
 
        private $mQueryMetaModules = array(
+               'allmessages' => 'ApiQueryAllMessages',
                'siteinfo' => 'ApiQuerySiteinfo',
                'userinfo' => 'ApiQueryUserInfo',
-               'allmessages' => 'ApiQueryAllMessages',
        );
 
        private $mSlaveDB = null;
@@ -111,7 +111,8 @@ class ApiQuery extends ApiBase {
                parent::__construct( $main, $action );
 
                // Allow custom modules to be added in LocalSettings.php
-               global $wgAPIPropModules, $wgAPIListModules, $wgAPIMetaModules;
+               global $wgAPIPropModules, $wgAPIListModules, $wgAPIMetaModules,
+                       $wgMemc, $wgAPICacheHelpTimeout;
                self::appendUserModules( $this->mQueryPropModules, $wgAPIPropModules );
                self::appendUserModules( $this->mQueryListModules, $wgAPIListModules );
                self::appendUserModules( $this->mQueryMetaModules, $wgAPIMetaModules );
@@ -120,8 +121,22 @@ class ApiQuery extends ApiBase {
                $this->mListModuleNames = array_keys( $this->mQueryListModules );
                $this->mMetaModuleNames = array_keys( $this->mQueryMetaModules );
 
+               // Get array of query generators from cache if present
+               $key = wfMemcKey( 'apiquerygenerators', SpecialVersion::getVersion( 'nodb' ) );
+
+               if ( $wgAPICacheHelpTimeout > 0 ) {
+                       $cached = $wgMemc->get( $key );
+                       if ( $cached ) {
+                               $this->mAllowedGenerators = $cached;
+                               return;
+                       }
+               }
                $this->makeGeneratorList( $this->mQueryPropModules );
                $this->makeGeneratorList( $this->mQueryListModules );
+
+               if ( $wgAPICacheHelpTimeout > 0 ) {
+                       $wgMemc->set( $key, $this->mAllowedGenerators, $wgAPICacheHelpTimeout );
+               }
        }
 
        /**
index e59a13b..6b25982 100644 (file)
@@ -1105,17 +1105,27 @@ abstract class FileBackend {
        }
 
        /**
-        * Build a Content-Disposition header value per RFC 6266
+        * Build a Content-Disposition header value per RFC 6266.
         *
         * @param $type string One of (attachment, inline)
         * @param $filename string Suggested file name (should not contain slashes)
         * @return string
         * @since 1.20
         */
-       final public static function makeContentDisposition( $type, $filename ) {
+       final public static function makeContentDisposition( $type, $filename = '' ) {
+               $parts = array();
+
                $type = strtolower( $type );
-               $type = in_array( $type, array( 'inline', 'attachment' ) ) ? $type : 'inline';
-               return "$type; filename*=UTF-8''" . rawurlencode( basename( $filename ) );
+               if ( !in_array( $type, array( 'inline', 'attachment' ) ) ) {
+                       throw new MWException( "Invalid Content-Disposition type '$type'." );
+               }
+               $parts[] = $type;
+
+               if ( strlen( $filename ) ) {
+                       $parts[] = "filename*=UTF-8''" . rawurlencode( basename( $filename ) );
+               }
+
+               return implode( ';', $parts );
        }
 
        /**
index 88727e4..ab86107 100644 (file)
@@ -162,6 +162,24 @@ class SwiftFileBackend extends FileBackendStore {
                return false;
        }
 
+       /**
+        * @param $disposition string Content-Disposition header value
+        * @return string Truncated Content-Disposition header value to meet Swift limits
+        */
+       protected function truncDisp( $disposition ) {
+               $res = '';
+               foreach ( explode( ';', $disposition ) as $part ) {
+                       $part = trim( $part );
+                       $new  = ( $res === '' ) ? $part : "{$res};{$part}";
+                       if ( strlen( $new ) <= 255 ) {
+                               $res = $new;
+                       } else {
+                               break; // too long; sigh
+                       }
+               }
+               return $res;
+       }
+
        /**
         * @see FileBackendStore::doCreateInternal()
         * @return Status
@@ -212,7 +230,7 @@ class SwiftFileBackend extends FileBackendStore {
                        }
                        // Set the Content-Disposition header if requested
                        if ( isset( $params['disposition'] ) ) {
-                               $obj->headers['Content-Disposition'] = $params['disposition'];
+                               $obj->headers['Content-Disposition'] = $this->truncDisp( $params['disposition'] );
                        }
                        if ( !empty( $params['async'] ) ) { // deferred
                                $op = $obj->write_async( $params['content'] );
@@ -302,7 +320,7 @@ class SwiftFileBackend extends FileBackendStore {
                        }
                        // Set the Content-Disposition header if requested
                        if ( isset( $params['disposition'] ) ) {
-                               $obj->headers['Content-Disposition'] = $params['disposition'];
+                               $obj->headers['Content-Disposition'] = $this->truncDisp( $params['disposition'] );
                        }
                        if ( !empty( $params['async'] ) ) { // deferred
                                wfSuppressWarnings();
@@ -392,7 +410,7 @@ class SwiftFileBackend extends FileBackendStore {
                        $dstObj = new CF_Object( $dContObj, $dstRel, false, false ); // skip HEAD
                        $hdrs = array(); // source file headers to override with new values
                        if ( isset( $params['disposition'] ) ) {
-                               $hdrs['Content-Disposition'] = $params['disposition'];
+                               $hdrs['Content-Disposition'] = $this->truncDisp( $params['disposition'] );
                        }
                        if ( !empty( $params['async'] ) ) { // deferred
                                $op = $sContObj->copy_object_to_async( $srcRel, $dContObj, $dstRel, null, $hdrs );
@@ -471,7 +489,7 @@ class SwiftFileBackend extends FileBackendStore {
                        $dstObj = new CF_Object( $dContObj, $dstRel, false, false ); // skip HEAD
                        $hdrs = array(); // source file headers to override with new values
                        if ( isset( $params['disposition'] ) ) {
-                               $hdrs['Content-Disposition'] = $params['disposition'];
+                               $hdrs['Content-Disposition'] = $this->truncDisp( $params['disposition'] );
                        }
                        if ( !empty( $params['async'] ) ) { // deferred
                                $op = $sContObj->move_object_to_async( $srcRel, $dContObj, $dstRel, null, $hdrs );
@@ -1218,6 +1236,19 @@ class SwiftFileBackend extends FileBackendStore {
                return $this->conn;
        }
 
+       /**
+        * Close the connection to the Swift proxy
+        *
+        * @return void
+        */
+       protected function closeConnection() {
+               if ( $this->conn ) {
+                       $this->conn->close(); // close active cURL handles in CF_Http object
+                       $this->sessionStarted = 0;
+                       $this->connContainerCache->clear();
+               }
+       }
+
        /**
         * Get the cache key for a container
         *
@@ -1331,6 +1362,7 @@ class SwiftFileBackend extends FileBackendStore {
                }
                if ( $e instanceof InvalidResponseException ) { // possibly a stale token
                        $this->srvCache->delete( $this->getCredsCacheKey( $this->auth->username ) );
+                       $this->closeConnection(); // force a re-connect and re-auth next time
                }
                wfDebugLog( 'SwiftBackend',
                        get_class( $e ) . " in '{$func}' (given '" . FormatJson::encode( $params ) . "')" .
index d93dba6..bd55cb4 100644 (file)
@@ -213,6 +213,7 @@ class MysqlUpdater extends DatabaseUpdater {
                        array( 'addIndex', 'revision', 'page_user_timestamp', 'patch-revision-user-page-index.sql' ),
                        array( 'addField', 'ipblocks',      'ipb_parent_block_id',           'patch-ipb-parent-block-id.sql' ),
                        array( 'addIndex', 'ipblocks',      'ipb_parent_block_id',           'patch-ipb-parent-block-id-index.sql' ),
+                       array( 'dropField', 'category',     'cat_hidden',       'patch-cat_hidden.sql' ),
                );
        }
 
index 9ba9eab..bc5fcac 100644 (file)
@@ -92,6 +92,7 @@ class SqliteUpdater extends DatabaseUpdater {
                        array( 'addIndex', 'revision', 'page_user_timestamp', 'patch-revision-user-page-index.sql' ),
                        array( 'addField', 'ipblocks', 'ipb_parent_block_id', 'patch-ipb-parent-block-id.sql' ),
                        array( 'addIndex', 'ipblocks', 'ipb_parent_block_id', 'patch-ipb-parent-block-id-index.sql' ),
+                       array( 'dropField', 'category',     'cat_hidden',       'patch-cat_hidden.sql' ),
                );
        }
 
index 35305d1..843c1fa 100644 (file)
@@ -100,14 +100,20 @@ class FormatMetadata {
                                ) {
                                        continue;
                                }
-                               $tags[$tag] = intval( $h[0] / $h[1] )
+                               $tags[$tag] = str_pad( intval( $h[0] / $h[1] ), 2, '0', STR_PAD_LEFT )
                                        . ':' . str_pad( intval( $m[0] / $m[1] ), 2, '0', STR_PAD_LEFT )
                                        . ':' . str_pad( intval( $s[0] / $s[1] ), 2, '0', STR_PAD_LEFT );
 
-                               $time = wfTimestamp( TS_MW, '1971:01:01 ' . $tags[$tag] );
-                               // the 1971:01:01 is just a placeholder, and not shown to user.
-                               if ( $time && intval( $time ) > 0 ) {
-                                       $tags[$tag] = $wgLang->time( $time );
+                               try {
+                                       $time = wfTimestamp( TS_MW, '1971:01:01 ' . $tags[$tag] );
+                                       // the 1971:01:01 is just a placeholder, and not shown to user.
+                                       if ( $time && intval( $time ) > 0 ) {
+                                               $tags[$tag] = $wgLang->time( $time );
+                                       }
+                               } catch ( TimestampException $e ) {
+                                       // This shouldn't happen, but we've seen bad formats
+                                       // such as 4-digit seconds in the wild.
+                                       // leave $tags[$tag] as-is
                                }
                                continue;
                        }
index 8ab0976..7800e56 100644 (file)
@@ -33,7 +33,7 @@ class SpecialLog extends SpecialPage {
        /**
         * List log type for which the target is a user
         * Thus if the given target is in NS_MAIN we can alter it to be an NS_USER
-        * Title user instead. 
+        * Title user instead.
         */
        private $typeOnUser = array(
                'block',
@@ -47,7 +47,7 @@ class SpecialLog extends SpecialPage {
 
        public function execute( $par ) {
                global $wgLogRestrictions;
-               
+
                $this->setHeaders();
                $this->outputHeader();
 
@@ -65,7 +65,7 @@ class SpecialLog extends SpecialPage {
 
                // Set values
                $opts->fetchValuesFromRequest( $this->getRequest() );
-               if ( $par ) {
+               if ( $par !== null ) {
                        $this->parseParams( $opts, (string)$par );
                }
 
index c895dae..4036ebb 100644 (file)
@@ -69,7 +69,7 @@ class SpecialTags extends SpecialPage {
                }
 
                $newRow = '';
-               $newRow .= Xml::tags( 'td', null, Xml::element( 'tt', null, $tag ) );
+               $newRow .= Xml::tags( 'td', null, Xml::element( 'code', null, $tag ) );
 
                $disp = ChangeTags::tagDescription( $tag );
                $disp .= ' ';
index b85ee8c..8284981 100644 (file)
@@ -2648,8 +2648,8 @@ $UNWATCHURL
 'protect-title' => 'ضبط مستوى الحماية ل"$1"',
 'protect-title-notallowed' => 'عرض مستوى الحماية ل "$1"',
 'prot_1movedto2' => 'نُقلت [[$1]] إلى [[$2]]',
-'protect-badnamespace-title' => 'Ù\85ساحة Ø¥Ø³Ù\85 ØºÙ\8aر Ù\85Ø­Ù\85Ù\8aØ©',
-'protect-badnamespace-text' => 'لا يمكن حماية الصفحات الموجودة في مساحة الإسم',
+'protect-badnamespace-title' => 'Ù\86طاÙ\82 Ù\84ا Ù\8aØ­Ù\85Ù\89',
+'protect-badnamespace-text' => 'صفحات هذا النطاق لا يمكن حمايتها',
 'protect-legend' => 'تأكيد الحماية',
 'protectcomment' => 'السبب:',
 'protectexpiry' => 'تنتهي في:',
@@ -3158,7 +3158,7 @@ $1',
 'import-error-edit' => 'الصفحة "$1" لم يتم استيرادها لأنه لا يمكن لك تحريرها.',
 'import-error-create' => 'الصفحة "$1" لم يتم استيرادها لأنه لا يمكن لك استحداثها أصلا.',
 'import-error-interwiki' => 'تعذر أستيراد الصفحة "$1" بسبب أن إسمها محجوز للربط الخارجي (interwiki).',
-'import-error-special' => 'تعذر Ø£Ø³ØªÙ\8aراد Ø§Ù\84صÙ\81حة "$1" Ù\84Ø£Ù\86Ù\87ا ØªÙ\86تÙ\85Ù\8a Ø¥Ù\84Ù\89 Ù\85ساحة Ø¥Ø³Ù\85 Ø®Ø§ØµØ© Øªمنع الصفحات.',
+'import-error-special' => 'صÙ\81حة "$1" Ù\84Ù\85 ØªØ³ØªÙ\88رد Ù\84Ø£Ù\86Ù\87ا ØªÙ\86تÙ\85Ù\8a Ø¥Ù\84Ù\89 Ù\86طاÙ\82 Ø®Ø§Øµ Ù\8aمنع الصفحات.',
 'import-error-invalid' => 'تعذر أستيراد الصفحة "$1" بسبب أن إسمها غير صحيح.',
 'import-options-wrong' => 'خطأ {{PLURAL:$2|خيار|خيارات}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'إن عنوان الصفحة الجذر المعطاة هي ذات عنوان غير صالح.',
@@ -3340,7 +3340,7 @@ $1',
 'pageinfo-authors' => 'عدد المؤلفين المختلفين',
 'pageinfo-recent-edits' => 'عدد التعديلات الأخيرة (خلال  $1 يوم/أيام)',
 'pageinfo-recent-authors' => 'عدد المؤلفين المختلفين الأخيرين',
-'pageinfo-restriction' => 'حماية الصفحة (<code>$1</code>)',
+'pageinfo-restriction' => 'حماية الصفحة ($1)',
 'pageinfo-magic-words' => 'السحرية {{PLURAL:$1|الكلمة|الكلمات}} ($1)',
 'pageinfo-hidden-categories' => 'مخفية {{PLURAL:$1|فئة|فئات}} ($1)',
 'pageinfo-templates' => 'متضمنة {{PLURAL:$1|قالب|قوالب}} ($1)',
index 44d6dee..8cb86de 100644 (file)
@@ -2917,7 +2917,7 @@ Probablemente tea causao por un enllaz a un sitiu esternu de la llista prieta.',
 'pageinfo-authors' => "Númberu total d'autores distintos",
 'pageinfo-recent-edits' => "Númberu d'ediciones recientes (nos caberos $1)",
 'pageinfo-recent-authors' => "Númberu d'autores distintos recientes",
-'pageinfo-restriction' => 'Proteición de la páxina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Proteición de la páxina ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Pallabra máxica|Pallabres máxiques}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría anubrida|Categoríes anubríes}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Plantía incluída|Plantíes incluíes}} ($1)',
index c6f313c..f9ffd92 100644 (file)
@@ -652,7 +652,7 @@ Details stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}}
 'lineno' => 'Zeiln $1:',
 'compareselectedversions' => 'Gwöde Versionen vagleichen',
 'editundo' => 'ryckgängig',
-'diff-multi' => '({{PLURAL:$1|A dazwischenliegerte Versión|$1 dazwischenliegende Versiónen}} vohram {{PLURAL:$2|Benutzer|$2 Benutzern}} {{PLURAL:$1|werd|wern}} néd åzoagt)',
+'diff-multi' => '({{PLURAL:$1|A dazwischenliegerte Versión|$1 dazwischenliegende Versiónen}} {{PLURAL:$2|vohram Benutzer|vo $2 Benutzern}} {{PLURAL:$1|werd|wern}} néd åzoagt)',
 
 # Search results
 'searchresults' => 'Suachergebniss',
index de1217d..7fd41f2 100644 (file)
@@ -3033,7 +3033,7 @@ $1',
 'pageinfo-authors' => 'Колькасьць аўтараў',
 'pageinfo-recent-edits' => 'Колькасьць апошніх рэдагаваньняў (за $1)',
 'pageinfo-recent-authors' => 'Колькасьць апошніх аўтараў',
-'pageinfo-restriction' => 'Стан аховы (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Стан аховы ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Магічнае слова|Магічныя словы}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Схаваная катэгорыя|Схаваныя катэгорыі}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Шаблён|Шаблёны}} ($1)',
index 0fa7c96..8f3ccf6 100644 (file)
@@ -2961,7 +2961,7 @@ Sur a-walc'h abalamour d'ul liamm enni a gas d'ul lec'hienn ziavaez berzet.",
 'pageinfo-authors' => 'Niver a aozerien disheñvel',
 'pageinfo-recent-edits' => 'Niver a gemmoù nevez (er $1 diwezhañ)',
 'pageinfo-recent-authors' => "Niver a aozerien nevez a-ziforc'h",
-'pageinfo-restriction' => 'Gwareziñ ar bajenn (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Gwareziñ ar bajenn ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Ger hud |Gerioù hud}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Rumm kuzh|Rummoù kuzh}} ($1)',
 'pageinfo-templates' => "{{PLURAL:$1|Patrom endalc'het|Patromoù endalc'het}} ($1)",
index aef2dc4..b7d1060 100644 (file)
@@ -10,6 +10,7 @@
  * @author Abastillas
  * @author Dosmiin Barsbold
  * @author Jordz
+ * @author Mirzali
  * @author Palang hernan
  * @author Reedy
  * @author לערי ריינהארט
@@ -456,7 +457,7 @@ Ayaw kalimot sa pag-usab sa imong [[Special:Preferences|{{SITENAME}} mga prepere
 'loginprompt' => 'Kinahanglang naka-enable ang mga koki aron ikaw maka-log-in sa {{SITENAME}}.',
 'userlogin' => 'Rehistro / Dayon',
 'logout' => 'Biya',
-'userlogout' => 'Biya',
+'userlogout' => 'Bıveciye',
 'notloggedin' => 'Wala ka pa masulod',
 'nologin' => "Wala pay akawnt? '''$1'''.",
 'nologinlink' => 'Paghimo og akawnt',
index 6b75f91..9463919 100644 (file)
@@ -1244,7 +1244,7 @@ $1",
 'prefs-emailconfirm-label' => 'پشتڕاست کردنەوەی ئیمەیل:',
 'prefs-textboxsize' => 'قەبارەی پەنجەرەی دەستکاریکردن',
 'youremail' => 'ئیمەیل:',
-'username' => 'ناوی به‌كارهێنه‌ر:',
+'username' => 'ناوی به‌کارھێنەر:',
 'uid' => 'ژمارەی بەکارھێنەر:',
 'prefs-memberingroups' => 'ئەندامی {{PLURAL:$1|گرووپی|گرووپەکانی}}:',
 'prefs-registration' => 'کاتی خۆتۆمارکردن:',
@@ -1285,12 +1285,12 @@ $1",
 
 # User rights
 'userrights' => 'بەڕێوەبردنی مافەکانی بەکارھێنەر',
-'userrights-lookup-user' => 'بەڕێوەبردنی گرووپەکانی بەکارهێنەران',
+'userrights-lookup-user' => 'بەڕێوەبردنی گرووپەکانی بەکارھێنەر',
 'userrights-user-editname' => 'ناوی بەکارهێنەرێک بنووسە:',
-'editusergroup' => 'گرووپەکانی بەکارهێنەر بگۆڕە',
+'editusergroup' => 'گرووپەکانی بەکارھێنەر دەستکاری بکە',
 'editinguser' => "گۆڕینی مافەکانی بەکارهێنەر '''[[User:$1|$1]]''' $2",
-'userrights-editusergroup' => 'دەستکاری کردنی گرووپەکانی بەکارهێنەران',
-'saveusergroups' => 'گرÙ\88Ù\88Ù¾Û\8c Ø¨Û\95کارÙ\87Û\8eÙ\86Û\95راÙ\86 پاشەکەوت بکە',
+'userrights-editusergroup' => 'دەستکاریی گرووپەکانی بەکارهێنەر',
+'saveusergroups' => 'گرÙ\88Ù\88Ù¾Û\95کاÙ\86Û\8c Ø¨Û\95کارھÛ\8eÙ\86Û\95ر پاشەکەوت بکە',
 'userrights-groupsmember' => 'ئەندامە لە:',
 'userrights-groups-help' => 'دەتوانی ئەو گرووپانەی ئەم بەکار‌هێنەرە تێیدایە بگۆڕیت:
 * چوارچێوەی نیشان‌کراو مانای ئەوەیە لەو گرووپەدا هەیە.
@@ -1307,7 +1307,7 @@ $1",
 # Groups
 'group' => 'گرووپ:',
 'group-user' => 'بەکارهێنەران',
-'group-autoconfirmed' => 'بەکارھێنەرە خۆکار پەسندکراوەکان',
+'group-autoconfirmed' => 'بەکارھێنەرانی پەسندکراوی خۆگەڕ',
 'group-bot' => 'بۆتەکان',
 'group-sysop' => 'بەڕێوبەران',
 'group-bureaucrat' => 'بورووکراتەکان',
@@ -1315,14 +1315,14 @@ $1",
 'group-all' => '(هەموو)',
 
 'group-user-member' => '{{GENDER:$1|بەکارھێنەر}}',
-'group-autoconfirmed-member' => '{{GENDER:$1|بەکارھێنەری خۆکار پەسەندکراو}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|بەکارھێنەرانی پەسندکراوی خۆگەڕ}}',
 'group-bot-member' => 'بۆت',
 'group-sysop-member' => '{{GENDER:$1|بەڕێوبەر}}',
 'group-bureaucrat-member' => '{{GENDER:$1|بورووکرات}}',
 'group-suppress-member' => '{{GENDER:$1|چاودێر}}',
 
 'grouppage-user' => '{{ns:project}}:بەکارھێنەران',
-'grouppage-autoconfirmed' => '{{ns:project}}:بەکارهێنەرانی خۆکار-بڕواکراو',
+'grouppage-autoconfirmed' => '{{ns:project}}:بەکارھێنەرانی پەسندکراوی خۆگەڕ',
 'grouppage-bot' => '{{ns:project}}:بۆتەکان',
 'grouppage-sysop' => '{{ns:project}}:بەڕێوبەران',
 'grouppage-bureaucrat' => '{{ns:project}}:بورووکراتەکان',
@@ -1930,7 +1930,7 @@ $1',
 'newuserlogpagetext' => 'ئەمە لۆگێکی دروستکردنی بەکارھێنەرە.',
 
 # Special:ListGroupRights
-'listgrouprights' => 'Ù\85اÙ\81Û\95کاÙ\86Û\8c Ú¯Ø±Ù\88Ù\88Ù¾Û\95 Ø¨Û\95کارھÛ\8eÙ\86Û\95رÛ\8cÛ\8cÛ\95کاÙ\86',
+'listgrouprights' => 'Ù\85اÙ\81Û\95کاÙ\86Û\8c Ú¯Ø±Ù\88Ù\88Ù¾Û\8c Ø¨Û\95کارھÛ\8eÙ\86Û\95ر',
 'listgrouprights-summary' => 'ئەمە لیستێکە لە گرووپەکانی بەکارهێنەر لەسەر ئەم ویکی‌یە، دەگەڵ مافەکانی دەست‌پێ‌گەیشتنی هاوپەیوەندیان.
 لێرەدا لەوانەیە [[{{MediaWiki:Listgrouprights-helppage}}|زانیاری زیاترت]] دەست‌کەوێت سەبارەت بە مافە تاکەکەسیەکان.',
 'listgrouprights-key' => '* <span class="listgrouprights-granted">مافی دراوە</span>
index 2276e87..2c0bfa8 100644 (file)
@@ -3132,7 +3132,7 @@ Uložte jej na svůj disk a nahrajte ho sem.',
 'pageinfo-authors' => 'Celkový počet různých autorů',
 'pageinfo-recent-edits' => 'Počet nedávných ($1) editací',
 'pageinfo-recent-authors' => 'Nedávný počet různých autorů',
-'pageinfo-restriction' => 'Zámek stránky (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Zámek stránky ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Kouzelné slovo|Kouzelná slova}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Skrytá|Skryté}} kategorie ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Použitá šablona|Použité šablony}} ($1)',
index 522ef8b..04c91ef 100644 (file)
@@ -2919,7 +2919,7 @@ Dette skyldes sandsynligvis en henvisning til et sortlistet eksternt websted.',
 'pageinfo-lasttime' => 'Dato for seneste redigering',
 'pageinfo-edits' => 'Samlet antal redigeringer',
 'pageinfo-authors' => 'Det samlede antal forskellige forfattere',
-'pageinfo-restriction' => 'Sidebeskyttelse (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Sidebeskyttelse ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magisk|Magiske}} ord ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Skjult kategori|Skjulte kategorier}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Transkluderet skabelon|Transkluderede skabeloner}} ($1)',
index 3cca140..d423316 100644 (file)
@@ -1678,8 +1678,8 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 # User rights log
 'rightslog' => 'Rechte-Logbuch',
 'rightslogtext' => 'Dies ist das Logbuch der Änderungen der Benutzerrechte.',
-'rightslogentry' => 'änderte die Benutzerrechte für „$1“ von „$2“ auf „$3“',
-'rightslogentry-autopromote' => 'wurde automatisch von „$2“ nach „$3“ zugeordnet',
+'rightslogentry' => 'änderte die Benutzerrechte für „$1“ von „$2“ zu „$3“',
+'rightslogentry-autopromote' => 'wurde automatisch von „$2“ zu „$3“ zugeordnet',
 'rightsnone' => '(–)',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -3189,7 +3189,7 @@ Das liegt wahrscheinlich an einem Link auf eine externe Seite.',
 'pageinfo-authors' => 'Gesamtzahl unterschiedlicher Autoren',
 'pageinfo-recent-edits' => 'Anzahl der kürzlich erfolgten Bearbeitungen (innerhalb von $1)',
 'pageinfo-recent-authors' => 'Anzahl der unterschiedlichen Autoren',
-'pageinfo-restriction' => 'Seitenschutz (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Seitenschutz ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magisches Wort|Magische Wörter}} ($1)',
 'pageinfo-hidden-categories' => 'Versteckte {{PLURAL:$1|Kategorie|Kategorien}} ($1)',
 'pageinfo-templates' => 'Eingebundene {{PLURAL:$1|Vorlage|Vorlagen}} ($1)',
index a5e6dc4..9d7f257 100644 (file)
@@ -443,7 +443,7 @@ $messages = array(
 'cancel' => 'Bıterkne',
 'moredotdotdot' => 'Vêşêri...',
 'mypage' => 'Pela mı',
-'mytalk' => 'Werênayışi',
+'mytalk' => 'Werênayışê mı',
 'anontalk' => 'Pela werênayışê nê IPy',
 'navigation' => 'Pusula',
 'and' => '&#32;u',
@@ -470,7 +470,7 @@ $messages = array(
 'vector-view-create' => 'Vıraze',
 'vector-view-edit' => 'Bıvurne',
 'vector-view-history' => 'Tarixi bımocne',
-'vector-view-view' => 'Bıwanên',
+'vector-view-view' => 'Bıwanê',
 'vector-view-viewsource' => 'Çımey bıvêne',
 'actions' => 'Kerdeni',
 'namespaces' => 'Cayê namey',
@@ -610,7 +610,7 @@ $1',
 'sort-ascending' => 'Ratnayışê Zeydnayışi',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'Pele',
+'nstab-main' => 'Per',
 'nstab-user' => 'Pela Karberi',
 'nstab-media' => 'Pela Medya',
 'nstab-special' => 'Pela xısusiye',
@@ -741,7 +741,7 @@ Hesabê şıma biyo a.
 'userlogin' => 'Cı kewe / hesab vıraze',
 'userloginnocreate' => 'Cı kewe',
 'logout' => 'Veciyayış',
-'userlogout' => 'Bıveciyên',
+'userlogout' => 'Bıveciye',
 'notloggedin' => 'Hesab akerde niyo',
 'nologin' => "Hesabê şıma çıniyo? '''$1'''.",
 'nologinlink' => 'Yew hesab ake',
@@ -904,7 +904,7 @@ Parola vêrdiye: $2',
 'subject' => 'Mewzu/serrêze:',
 'minoredit' => 'Vurnayışo werdı',
 'watchthis' => 'Ena pele seyr ke',
-'savearticle' => 'Peler qeyd ke',
+'savearticle' => 'Pele qeyd ke',
 'preview' => 'Verqayt',
 'showpreview' => 'Verqayti bıvin',
 'showlivepreview' => 'Verqayto cıwın',
@@ -1361,7 +1361,7 @@ Pe verbendi ''all:'', vaceyê xo bıvurni ki contenti hemi cıgeyro (pelanê mı
 
 # Preferences page
 'preferences' => 'Tercihi',
-'mypreferences' => 'Tercihi',
+'mypreferences' => 'Tercihê mı',
 'prefs-edits' => 'Amarê vurnayışan:',
 'prefsnologin' => 'Şıma cıkewtış nêvıraşto',
 'prefsnologintext' => 'Şıma gani be <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} cikewte]</span> ke tercihanê karberi xo eyar bıkerê.',
@@ -1557,7 +1557,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'right-delete' => 'Pele bestere',
 'right-bigdelete' => 'Pelanê be tarixanê dergan bestere',
 'right-deletelogentry' => 'besternayış u mebesternayışa re qeyde definayışê xısusi',
-'right-deleterevision' => 'Vurnayışê xısusiyê ke ê pelanê, inan bestere ya peyser bia',
+'right-deleterevision' => 'Vurnayışê xısusiyê ke ê pelanê, inan bestere ya zi peyser bia',
 'right-deletedhistory' => 'Qeydanê tarixanê esterıteyan de qayt ke, bê nuştey inan',
 'right-deletedtext' => 'Mabênê newede vurnayışanê esterıtiyan de qaytê nuştey esterıtey u vurnayışan ke',
 'right-browsearchive' => 'Bıgeyre pelanê eserıtiyan',
@@ -2050,7 +2050,7 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 'statistics-header-users' => 'Îstatistiksê karberî',
 'statistics-header-hooks' => 'Îstatistiksê binî',
 'statistics-articles' => 'Pelanê tedesteyî',
-'statistics-pages' => 'Peley',
+'statistics-pages' => 'Peri',
 'statistics-pages-desc' => 'Pelanê hemî ke wîkî de estê, pelanê mineqeşeyî, redireksiyon ucb... dehil o.',
 'statistics-files' => 'Dosyayê bar biye',
 'statistics-edits' => 'Amarê vurnayîşî ke wextê {{SITENAME}} ronayîşî ra',
@@ -2303,7 +2303,7 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 
 # Watchlist
 'watchlist' => 'lista mına seyr-kerdışi',
-'mywatchlist' => 'Listey seyrkerdışi',
+'mywatchlist' => 'Lista mına seyrkerdışi',
 'watchlistfor2' => 'Qandê $1 ($2)',
 'nowatchlist' => 'listeya temaşa kerdıişê şıma de yew madde zi çina.',
 'watchlistanontext' => 'qey vurnayişê maddeya listeya temaşakerdişi $1.',
@@ -2560,7 +2560,7 @@ $1',
 # Contributions
 'contributions' => 'İştiraqê karberi',
 'contributions-title' => '$1 de iştırakê karberi',
-'mycontris' => 'Pêşteni',
+'mycontris' => 'İştıraqê mı',
 'contribsub2' => 'Qandê $1 ($2)',
 'nocontribs' => 'Ena kriteriya de vurnayîş çini yo.',
 'uctop' => '(ser)',
@@ -2588,7 +2588,7 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 # What links here
 'whatlinkshere' => 'Çı tiyay rê gırê beno',
 'whatlinkshere-title' => 'Peleye ke  "$1" re gre biyê',
-'whatlinkshere-page' => 'Pele:',
+'whatlinkshere-page' => 'Per:',
 'linkshere' => "Ena peleyan grey biya '''[[:$1]]''':",
 'nolinkshere' => "Yew pel zi '''[[:$1]]''' rê link nibeno.",
 'nolinkshere-ns' => "Ena cayê nameyî de yew pel zi '''[[:$1]]''' rê link nibeno.",
@@ -3090,7 +3090,7 @@ Tı eşkeno yew sebeb bınus.',
 'pageinfo-authors' => 'Amarina nuştekaran pêro',
 'pageinfo-recent-edits' => 'Amariya vurnayışan ($1 ra nata)',
 'pageinfo-recent-authors' => 'Amarina nuştekaran pêro',
-'pageinfo-restriction' => 'Xısusiyetê pela (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Xısusiyetê pela ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Çekuya|Çekuyê}} ($1) sihırini',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Kategoriye|Kategoriyan}} ($1) bınımne',
 'pageinfo-templates' => '{{PLURAL:$1|Şablon|Şabloni}} ($1) açarneyayê',
index 1caeafa..fbf2998 100644 (file)
@@ -2874,7 +2874,7 @@ W zespominanju dajo se pśicyna pódaś.',
 'pageinfo-authors' => 'Cełkowna licba wšakich awtorow',
 'pageinfo-recent-edits' => 'Licba nejnowšych změnow (za zachadnych $1)',
 'pageinfo-recent-authors' => 'Nejnowša licba rozdźělnych awtorow',
-'pageinfo-restriction' => 'Šćit boka (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Šćit boka ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magiske słowo|Magiskej słowje|Magiske słowa|Magiske słowa}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Schowana kategorija|Schowanej kategoriji|Schowane kategorije|Schowane kategorije}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Zapśěgnjona pśedłoga|Zapśěgnjonej pśedłoze|Zapśěgnjone pśedłogi|Zapśěgnjone pśedłogi}} ($1)',
index 515a433..fc8b319 100644 (file)
@@ -1647,7 +1647,8 @@ Please check the logs.',
 'revdelete-only-restricted'   => 'Error hiding the item dated $2, $1: You cannot suppress items from view by administrators without also selecting one of the other visibility options.',
 'revdelete-reason-dropdown'   => '*Common delete reasons
 ** Copyright violation
-** Inappropriate personal information
+** Inappropriate comment or personal information
+** Inappropriate username
 ** Potentially libelous information',
 'revdelete-otherreason'       => 'Other/additional reason:',
 'revdelete-reasonotherlist'   => 'Other reason',
@@ -3762,7 +3763,7 @@ This is probably caused by a link to a blacklisted external site.',
 'pageinfo-authors'             => 'Total number of distinct authors',
 'pageinfo-recent-edits'        => 'Recent number of edits (within past $1)',
 'pageinfo-recent-authors'      => 'Recent number of distinct authors',
-'pageinfo-restriction'         => 'Page protection (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction'         => 'Page protection ({{lcfirst:$1}})',
 'pageinfo-magic-words'         => 'Magic {{PLURAL:$1|word|words}} ($1)',
 'pageinfo-hidden-categories'   => 'Hidden {{PLURAL:$1|category|categories}} ($1)',
 'pageinfo-templates'           => 'Transcluded {{PLURAL:$1|template|templates}} ($1)',
index f838269..b01b0d9 100644 (file)
@@ -3096,6 +3096,7 @@ Datoj de versioj kaj nomoj de redaktantoj estos preservitaj.
 'pageinfo-title' => 'Informoj por "$1"',
 'pageinfo-header-basic' => 'Baza informo',
 'pageinfo-header-edits' => 'Historio de redaktoj',
+'pageinfo-article-id' => 'Paĝa identigo',
 'pageinfo-robot-index' => 'Indeksebla',
 'pageinfo-robot-noindex' => 'Ne indeksebla',
 'pageinfo-views' => 'Nombro de rigardoj',
index c36b38e..ef411c1 100644 (file)
@@ -3175,7 +3175,7 @@ Esto podría estar causado por un enlace a un sitio externo incluido en la lista
 'pageinfo-authors' => 'Número total de autores distintos',
 'pageinfo-recent-edits' => 'Número de ediciones recientes (en los últimos $1)',
 'pageinfo-recent-authors' => 'Número de autores distintos recientes',
-'pageinfo-restriction' => 'Protección de la página (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protección de la página ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Palabra mágica|Palabras mágicas}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría oculta|Categorías ocultas}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|plantilla incluida|plantillas incluidas}} ($1)',
index 276121a..92d73d9 100644 (file)
@@ -3047,7 +3047,7 @@ See on ilmselt põhjustatud linkimisest mustas nimekirjas olevasse välisvõrguk
 'pageinfo-authors' => 'Erinevate autorite koguarv',
 'pageinfo-recent-edits' => 'Viimaste redigeerimiste arv (viimase $1 jooksul)',
 'pageinfo-recent-authors' => 'Erinevate viimaste toimetajate arv',
-'pageinfo-restriction' => 'Lehekülje kaitse (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Lehekülje kaitse ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Võlusõna|Võlusõnad}} ($1)',
 'pageinfo-hidden-categories' => 'Peidetud {{PLURAL:$1|kategooria|kategooriad}} ($1)',
 'pageinfo-templates' => 'Kasutatud {{PLURAL:$1|mall|mallid}} ($1)',
index 6cf366f..f29989c 100644 (file)
@@ -3266,7 +3266,7 @@ $1',
 'pageinfo-authors' => 'تعداد کلی نویسندگان یکتا',
 'pageinfo-recent-edits' => 'شماره ویرایش‌های اخیر (در $1 گذشته)',
 'pageinfo-recent-authors' => 'تعداد نویسندگان یکتای اخیر',
-'pageinfo-restriction' => 'محافظت صفحه ( <code>{{lcfirst:$1}}</code> )',
+'pageinfo-restriction' => 'محافظت صفحه ( {{lcfirst:$1}} )',
 'pageinfo-magic-words' => '{{PLURAL:$1|حرف|حروف}} جادویی ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1| ردهٔ|ردهٔ}} پنهان ( $1 )',
 'pageinfo-templates' => '{{PLURAL:$1|الگو|الگو}} استفاده‌شده ($1)',
index 68e4cfa..75754eb 100644 (file)
@@ -2044,6 +2044,7 @@ Jokaisella rivillä on linkit ensimmäiseen ja toiseen ohjaukseen sekä toisen o
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|tavu|tavua}}',
 'ncategories' => '$1 {{PLURAL:$1|luokka|luokkaa}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki-linkki|interwiki-linkkiä}}',
 'nlinks' => '$1 {{PLURAL:$1|linkki|linkkiä}}',
 'nmembers' => '$1 {{PLURAL:$1|jäsen|jäsentä}}',
 'nrevisions' => '$1 {{PLURAL:$1|muutos|muutosta}}',
@@ -2072,6 +2073,7 @@ Jokaisella rivillä on linkit ensimmäiseen ja toiseen ohjaukseen sekä toisen o
 'mostlinkedtemplates' => 'Viitatuimmat mallineet',
 'mostcategories' => 'Luokitelluimmat sivut',
 'mostimages' => 'Viitatuimmat tiedostot',
+'mostinterwikis' => 'Sivut joilla on eniten kielilinkkejä',
 'mostrevisions' => 'Muokatuimmat sivut',
 'prefixindex' => 'Kaikki sivut katkaisuhaulla',
 'prefixindex-namespace' => 'Kaikki sivut etuliitteellä (nimiavaruus $1)',
@@ -2218,6 +2220,8 @@ Lisätietoa yksittäisistä käyttäjäoikeuksista saattaa löytyä [[{{MediaWik
 'mailnologin' => 'Lähettäjän osoite puuttuu',
 'mailnologintext' => 'Sinun pitää olla [[Special:UserLogin|kirjautuneena sisään]] ja [[Special:Preferences|asetuksissasi]] pitää olla toimiva ja <strong>varmennettu</strong> sähköpostiosoite, jotta voit lähettää sähköpostia muille käyttäjille.',
 'emailuser' => 'Lähetä sähköpostia tälle käyttäjälle',
+'emailuser-title-target' => 'Lähetä sähköpostia tälle {{GENDER:$1|käyttäjälle}}',
+'emailuser-title-notarget' => 'Lähetä sähköpostia käyttäjälle',
 'emailpage' => 'Lähetä sähköpostia käyttäjälle',
 'emailpagetext' => 'Jos tämä käyttäjä on antanut asetuksissaan kelvollisen sähköpostiosoitteen, alla olevalla lomakkeella voit lähettää hänelle viestin. [[Special:Preferences|Omissa asetuksissasi]] annettu sähköpostiosoite näkyy sähköpostin lähettäjän osoitteena, jotta vastaanottaja voi suoraan vastata viestiin.',
 'usermailererror' => 'Postitus palautti virheen:',
@@ -3007,11 +3011,18 @@ Tallenna tiedot koneellesi ja tuo ne tällä sivulla.',
 
 # Info page
 'pageinfo-title' => 'Tietoja sivusta $1',
-'pageinfo-header-edits' => 'Muokkaukset',
+'pageinfo-header-basic' => 'Perustiedot',
+'pageinfo-header-edits' => 'Muokkaushistoria',
+'pageinfo-header-restrictions' => 'Sivun suojaus',
+'pageinfo-header-properties' => 'Sivun ominaisuudet',
 'pageinfo-views' => 'Katselukertojen määrä',
-'pageinfo-watchers' => 'Tarkkailijoiden lukumäärä',
-'pageinfo-edits' => 'Muokkausten lukumäärä',
-'pageinfo-authors' => 'Eri tekijöiden lukumäärä',
+'pageinfo-watchers' => 'Sivun tarkkailijoiden lukumäärä',
+'pageinfo-redirects-name' => 'Sivulle johtavat ohjaukset',
+'pageinfo-subpages-name' => 'Sivun alasivut',
+'pageinfo-firstuser' => 'Sivun luoja',
+'pageinfo-lastuser' => 'Viimeisin muokkaaja',
+'pageinfo-edits' => 'Muokkausten kokonaismäärä',
+'pageinfo-authors' => 'Sivun eri muokkaajien kokonaismäärä',
 
 # Skin names
 'skinname-standard' => 'Perus',
index 5b1f34a..9ca6356 100644 (file)
@@ -3181,7 +3181,7 @@ Permet de rétablir la version précédente et d’ajouter un motif dans la boî
 'pageinfo-authors' => "Nombre total d'auteurs distincts",
 'pageinfo-recent-edits' => 'Nombre de modifications récentes (dans les derniers $1)',
 'pageinfo-recent-authors' => "Nombre d'auteurs distincts récents",
-'pageinfo-restriction' => 'Protection de la page (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protection de la page ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Mot magique|Mots magiques}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Catégorie cachée|Catégories cachées}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Modèle inclu|Modèles inclus}} ($1)',
@@ -4088,8 +4088,8 @@ Les images sont montrées dans leur pleine résolution, les autres fichiers sont
 'logentry-move-move-noredirect' => '$1 a déplacé la page $3 vers $4 sans laisser de redirection',
 'logentry-move-move_redir' => '$1 a déplacé la page $3 vers $4 par-dessus une redirection',
 'logentry-move-move_redir-noredirect' => '$1 a déplacé la page $3 vers $4 par-dessus une redirection sans laisser de redirection',
-'logentry-patrol-patrol' => '$1 a marqué la révision $4 de la page $3 comme contrôlée',
-'logentry-patrol-patrol-auto' => '$1 a automatiquement marqué la révision $4 de la page $3 comme contrôlée',
+'logentry-patrol-patrol' => '$1 a marqué la révision $4 de la page $3 comme relue',
+'logentry-patrol-patrol-auto' => '$1 a automatiquement marqué la révision $4 de la page $3 comme relue',
 'logentry-newusers-newusers' => '$1 a créé un compte utilisateur',
 'logentry-newusers-create' => '$1 a créé son compte utilisateur',
 'logentry-newusers-create2' => '$1 a créé un compte utilisateur $3',
index 83428da..e3ccec1 100644 (file)
@@ -3073,7 +3073,7 @@ Isto, probabelmente, se debe a unha ligazón cara a un sitio externo que está n
 'pageinfo-authors' => 'Número total de autores distintos',
 'pageinfo-recent-edits' => 'Número de edicións recentes (durante os últimos $1)',
 'pageinfo-recent-authors' => 'Número de autores distintos recentes',
-'pageinfo-restriction' => 'Protección da páxina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protección da páxina ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Palabra máxica|Palabras máxicas}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría agochada|Categorías agochadas}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Modelo incluído|Modelos incluídos}} ($1)',
index 271cb56..d1a0703 100644 (file)
@@ -140,7 +140,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Vum Fäldhieter aagluegti Änderige in dr „Letschte Änderige“ usblände',
 'tog-newpageshidepatrolled' => 'Aagluegti Syten uf dr Lischt „Neiji Syte“ verstecke',
 'tog-extendwatchlist' => 'Beobachtungslischte erwytere go alli Änderige aazeige, nit numme di letschte',
-'tog-usenewrc' => 'Erwytereti «letschti Änderige» (brucht JavaScript)',
+'tog-usenewrc' => 'Sytebezogeni Gruppierig bi dr «letschte Änderige» un uf dr Beobachtigslischte  (brucht JavaScript)',
 'tog-numberheadings' => 'Überschrifte outomatisch numeriere',
 'tog-showtoolbar' => 'Editier-Wärchzüüg aazeige',
 'tog-editondblclick' => 'Syte ändere mit Doppelklick i d Syte (JavaScript)',
@@ -148,17 +148,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Einzelni Absätz ändere mit Rächtsclick (Javascript)',
 'tog-showtoc' => 'Inhaltsverzeichnis aazeige bi Artikle mit meh als drei Überschrifte',
 'tog-rememberpassword' => 'Mit däm Browser duurhaft aamälde (Maximal fir $1 {{PLURAL:$1|Tag|Täg}})',
-'tog-watchcreations' => 'Sälber gmachti Sytene beobachte',
-'tog-watchdefault' => 'Vo dir nöi gmachti oder verändereti Syte beobachte',
-'tog-watchmoves' => 'Sälber verschobeni Sytene beobachte',
-'tog-watchdeletion' => 'Sälber glöschti Sytene beobachte',
+'tog-watchcreations' => 'Sälber gmachti Sytene un uffegladeni Dateie automatisch  beobachte',
+'tog-watchdefault' => 'Sälber gändereti Syte un Dateie automatisch beobachte',
+'tog-watchmoves' => 'Sälber verschobeni Sytene un Dateie automatisch beobachte',
+'tog-watchdeletion' => 'Sälber gleschti Sytene un Dateie automatisch beobachte',
 'tog-minordefault' => 'Alli dyni Änderigen als «chlyni Änderige» markiere',
 'tog-previewontop' => 'Vorschou vor em Editierfänschter aazeige',
 'tog-previewonfirst' => 'Vorschou aazeige bim erschten Editiere',
 'tog-nocache' => 'Syte-Cache vum Browser deaktiviere',
-'tog-enotifwatchlistpages' => 'Benachrichtigungsmails by Änderigen a Wiki-Syte',
+'tog-enotifwatchlistpages' => 'Schick mer e Mail, wänn e Syte oder e Datei gänderet wird, wun i beobachte due',
 'tog-enotifusertalkpages' => 'Benachrichtigungsmails bi Änderigen a dyne Benutzersyte',
-'tog-enotifminoredits' => 'Benachrichtigungsmail ou bi chlyne Sytenänderige',
+'tog-enotifminoredits' => 'Au bi chlaine Änderige an Syte oder Dateie ne Mail schicke',
 'tog-enotifrevealaddr' => 'Dyni E-Mail-Adrässe wird i Benachrichtigungsmails zeigt',
 'tog-shownumberswatching' => 'Aazahl Benutzer aazeige, wo ne Syten am Aaluege sy (i den Artikelsyte, i de «letschten Änderigen» und i der Beobachtigslischte)',
 'tog-oldsig' => 'Vorschau vu dr Unterschrift:',
@@ -452,9 +452,9 @@ Alli verfiegbare Spezialsyte sin in dr [[Special:SpecialPages|Lischt vu Spezials
 'dberrortext' => 'S isch e Datebankfähler ufträtte.
 Dr Grund cha ne e Programmierfähler syy.
 Di letscht Datebankabfrog isch
-<blockquote><tt>$1</tt></blockquote>
-us dr Funktion „<tt>$2</tt>“ gsi.
-D Datebank het dr Fähler „<tt>$3: $4</tt>“ gmäldet.',
+<blockquote><code>$1</code></blockquote>
+us dr Funktion „<code>$2</code>“ gsi.
+D Datebank het dr Fähler „<samp>$3: $4</samp>“ gmäldet.',
 'dberrortextcl' => 'S het e Syntaxfähler gee in dr Abfrog vu dr Datebank.
 Di letscht Datebankabfrog isch
 „$1“
@@ -543,7 +543,7 @@ Vergiss nid, dyni [[Special:Preferences|{{SITENAME}}-Yystellige]] aazpasse.',
 'yourdomainname' => 'Dyyni Domäne',
 'externaldberror' => 'Entwäder s lit e Fähler bi dr externe Authentifizierung vor, oder Du derfsch Dyy extern Benutzerkonto nid aktualisiere.',
 'login' => 'Aamälde',
-'nav-login-createaccount' => 'Aamälde / Konto aaleege',
+'nav-login-createaccount' => 'Aamälde / Konto aalege',
 'loginprompt' => '<small>Für di bir {{SITENAME}} aazmälde, muesch Cookies erloube!</small>',
 'userlogin' => 'Aamälde/Konto aalege',
 'userloginnocreate' => 'Aamälde',
@@ -783,12 +783,11 @@ oder <span class="plainlinks">in dr zuegherige [{{fullurl:{{#special:Log}}|page=
 'userpage-userdoesnotexist-view' => 'S Benutzerkonto „$1“ isch nit registriert.',
 'blocked-notice-logextract' => 'Dää Benutzer isch zur Zyt gsperrt.
 As Information chunnt do ne aktuälle Uuszug us em Benutzersperr-Logbuech:',
-'clearyourcache' => "'''Hinweis:''' Noch em Spycheremuesch no dr Browser-Zwischespycher lääre go d Änderige sää.
+'clearyourcache' => "'''Hiiwys:''' Noch em Spycheremuesch no dr Browser-Zwischespycher lääre go d Änderige sää.
 * '''Firefox/ Safari:''' ''Umschaltig'' drucken un glychzytig ''Aktualisiere'' aaklicken oder entwäder ''Strg+F5'' oder ''Strg+R'' (''Befehlstaste-R'' uf em Mac) drucke
 * '''Google Chrome:''' ''Umschaltig+Strg+R'' (''Befählstaschte-R'' uf em Mac) drucke
 * '''Internet Explorer:''' ''Strg+F5'' drucken oder ''Strg'' drucken un glychzytig ''Aktualisiere'' aaklicke
-* '''Opera:''' ''Extra → Internetspure lesche … → Individuäll Uuswahl → Dr komplett Cache lesche''
-* '''Konqueror:''' ''Aktualisiere'' aaklicken oder ''F5'' drucke",
+* '''Opera:''' ''Extra → Internetspure lesche … → Individuäll Uuswahl → Dr komplett Cache lesche''",
 'usercssyoucanpreview' => "'''Tipp:''' Nimm dr „{{int:showpreview}}”-Chnopf, zum Dyy nej CSS vor em Spichere z teschte.",
 'userjsyoucanpreview' => "'''Tipp:''' „Nimm dr {{int:showpreview}}”-Chnopf, zum Dyy nej JS vor em Spichere z teschte.",
 'usercsspreview' => "== Vorschau vu Dyynem Benutzer-CSS. ==
@@ -1363,7 +1362,7 @@ Des cha nimmi ruckgängig gmacht wäre.',
 'right-ipblock-exempt' => 'Uusnahm vu IP-Sperrine, Autoblock und Rangesperre',
 'right-proxyunbannable' => 'Uusnahm vu automatische Proxysperrine',
 'right-unblockself' => 'Sich sälber entsperre',
-'right-protect' => 'Syteschutzstatus ändere',
+'right-protect' => 'Syteschutzstatus änderen un gschitzti Syte bearbeite',
 'right-editprotected' => 'Gschitzti Syte bearbeite (ohni Kaskadeschutz)',
 'right-editinterface' => 'Benutzerinterface bearbeite',
 'right-editusercssjs' => 'Bearbeite vu CSS- und JS-Dateie vu andere Benutzer',
@@ -1843,7 +1842,9 @@ Iberprief anderi Link zue dr Vorlage, voreb Du die leschesch.',
 
 'disambiguations' => 'Syte, wu uf Begriffsklärigssyte verlinke',
 'disambiguationspage' => 'Template:Begriffsklärig',
-'disambiguations-text' => 'Die Syte verwyyse uf e Begriffsklärigs-Syte. Sie sotte aber besser uf d Syte verwyyse, wu eigetli gmeint sin.<br />E Syte wird as Begriffsklärigs-Syte behandlet, wänn [[MediaWiki:Disambiguationspage]] uf si verwyyst.<br />Link us Namensryym wäre do nit ufglischtet.',
+'disambiguations-text' => 'Die Syte verwyyse uf e Begriffsklärigs-Syte. Sie sotte aber besser uf d Syte verwyyse, wu eigetli gmeint sin.
+
+E Syte wird as Begriffsklärigs-Syte behandlet, wänn [[MediaWiki:Disambiguationspage]] uf si verwyyst.',
 
 'doubleredirects' => 'Doppleti Wyterleitige (Redirects)',
 'doubleredirectstext' => 'Die Lischt zeigt Wyterleitige, wu uf anderi Wyterleitige verwyyse.
@@ -2791,7 +2792,7 @@ Die uf em lokale Rächner spychere un derno do uffelade.',
 
 # Info page
 'pageinfo-title' => 'Informatione zue „$1“',
-'pageinfo-header-edits' => 'Bearbeitunge',
+'pageinfo-header-edits' => 'Bearbeitige',
 'pageinfo-views' => 'Aazahl Sytenufruef',
 'pageinfo-watchers' => 'Aazahl vu Beobachter',
 'pageinfo-edits' => 'Aazahl Bearbeitige',
@@ -3506,7 +3507,7 @@ Di aagfrogt Datei wird diräkt dargstellt bzw. mit dr verchnipfte Aawändig gsta
 * <span class="mw-specialpagecached">Gecachti Spezialsyte (dr Inhalt ist villicht veraltet.)</span>',
 'specialpages-group-maintenance' => 'Wartigslischte',
 'specialpages-group-other' => 'Andri Spezialsyte',
-'specialpages-group-login' => 'Aamälde',
+'specialpages-group-login' => 'Aamälde/Konto aalege',
 'specialpages-group-changes' => 'D letschte Änderige un Logbüecher',
 'specialpages-group-media' => 'Medie',
 'specialpages-group-users' => 'Benutzer un Rächt',
index 2c878b1..ee87e58 100644 (file)
@@ -3188,7 +3188,7 @@ $1',
 'pageinfo-authors' => 'המספר הכולל של כותבים שונים',
 'pageinfo-recent-edits' => 'מספר העריכות לאחרונה ($1)',
 'pageinfo-recent-authors' => 'מספר הכותבים הייחודיים לאחרונה',
-'pageinfo-restriction' => 'הגנה על הדף (<code>$1</code>)',
+'pageinfo-restriction' => 'הגנה על הדף ($1)',
 'pageinfo-magic-words' => '{{PLURAL:$1|מילת קסם|מילות קסם}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|קטגוריה מוסתרת|קטגוריות מוסתרות}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|תבנית מוכללת|תבניות מוכללות}} ($1)',
index b7c2b96..9664e72 100644 (file)
@@ -2870,7 +2870,7 @@ W poslednim padźe móžeš tež wotkaz wužiwać, na př. „[[{{#Special:Expor
 'pageinfo-authors' => 'Cyłkowna ličba rozdźělnych awtorow',
 'pageinfo-recent-edits' => 'Ličba najnowšich změnow (za zańdźenych $1)',
 'pageinfo-recent-authors' => 'Najnowša ličba rozdźělnych awtorow',
-'pageinfo-restriction' => 'Škit strony (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Škit strony ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magiske słowo|Magiskej słowje|Magiske słowa|Magiske słowa}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Schowana kategorija|Schowanej kategoriji|Schowane kategorije|Schowane kategorije}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Zapřijata předłoha|Zapřijatej předłoze|Zapřijate předłohi|Zapřijate předłohi}} ($1)',
index 6832d26..03586e4 100644 (file)
@@ -573,12 +573,12 @@ További információkat a [[Special:Version|verzióinformációs lapon]] talál
 
 'ok' => 'OK',
 'retrievedfrom' => 'A lap eredeti címe: „$1”',
-'youhavenewmessages' => 'Új üzenet vár $1! (Az üzenetet $2.)',
-'newmessageslink' => 'a vitalapodon',
-'newmessagesdifflink' => 'külön is megtekintheted',
+'youhavenewmessages' => '$1 a vitalapodon! ($2. külön is megtekintheted)',
+'newmessageslink' => 'új üzenet vár',
+'newmessagesdifflink' => 'az utolsó üzenetet',
 'youhavenewmessagesmanyusers' => '$1ed van több szerkesztőtől ($2).',
-'newmessageslinkplural' => '{{PLURAL:$1|egy|$1}} új üzenet',
-'newmessagesdifflinkplural' => 'utolsó {{PLURAL:$1|egy|$1}} változtatás',
+'newmessageslinkplural' => '{{PLURAL:$1|Új üzenet vár|Új üzenetek várnak}}',
+'newmessagesdifflinkplural' => 'Az utolsó {{PLURAL:$1|változtatást|változtatásokat}}',
 'youhavenewmessagesmulti' => 'Új üzenetet vár a(z) $1 wikin',
 'editsection' => 'szerkesztés',
 'editold' => 'szerkesztés',
index 738b529..135cc86 100644 (file)
@@ -3023,7 +3023,7 @@ Le causa es probabilemente un ligamine verso un sito externe que es presente in
 'pageinfo-authors' => 'Numero total de autores distincte',
 'pageinfo-recent-edits' => 'Numero de modificationes recente (intra le ultime $1)',
 'pageinfo-recent-authors' => 'Numero de autores distincte recente',
-'pageinfo-restriction' => 'Protection del pagina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protection del pagina ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Parola|Parolas}} magic ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria|Categorias}} celate ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Patrono|Patronos}} transcludite ($1)',
index ff96cb3..ecd4d3b 100644 (file)
@@ -2005,7 +2005,7 @@ Mungkin Anda ingin menyunting keterangan pada [$2 halaman deskripsi berkas] di s
 
 # MIME search
 'mimesearch' => 'Pencarian MIME',
-'mimesearch-summary' => 'Halaman ini menyediakan fasilitas menyaring berkas berdasarkan tipe MIME nya. Masukkan: contenttype/subtype, misalnya <code>image/jpeg</code>.',
+'mimesearch-summary' => 'Halaman ini menyediakan fasilitas menyaring berkas berdasarkan tipe MIME-nya. Masukkan: contenttype/subtype, misalnya <code>image/jpeg</code>.',
 'mimetype' => 'Tipe MIME:',
 'download' => 'unduh',
 
index aab9cf2..4379259 100644 (file)
@@ -2867,7 +2867,7 @@ Daytoy ket mabalin a gapuanan babaen ti panilpo a naiparit ti akin ruar a pagsaa
 'pageinfo-authors' => 'Dagup a bilang dagiti naisangsangayn a mannurat',
 'pageinfo-recent-edits' => 'Itay nabiit a bilang dagiti inurnos (ti uneg ti napalabas ti $1)',
 'pageinfo-recent-authors' => 'Itay nabiit a bilang dagiti naisangsangayan a mannurat',
-'pageinfo-restriction' => 'Panagsalaknib ti panid (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Panagsalaknib ti panid ({{lcfirst:$1}})',
 'pageinfo-magic-words' => 'Salamangka  {{PLURAL:$1|a balikas|a balbalikas}} ($1)',
 'pageinfo-hidden-categories' => 'Nailemmeng {{PLURAL:$1|a kategoria|a katkategoria}} ($1)',
 'pageinfo-templates' => 'Nailak-am  {{PLURAL:$1|a plantilia|a planplantilia}} ($1)',
index a97ec76..873ff3c 100644 (file)
@@ -3017,7 +3017,7 @@ Tutte le operazioni di importazione trans-wiki sono registrate nel [[Special:Log
 'pageinfo-authors' => 'Numero totale di autori diversi',
 'pageinfo-recent-edits' => 'Numero di modifiche recenti (negli ultimi $1)',
 'pageinfo-recent-authors' => 'Numero di autori diversi recenti',
-'pageinfo-restriction' => 'Protezione della pagina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protezione della pagina ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Parola magica|Parole magiche}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria nascosta|Categorie nascoste}} ($1)',
 'pageinfo-templates' => 'Template {{PLURAL:$1|incluso|inclusi}}  ($1)',
index f85531f..877d74d 100644 (file)
@@ -3248,7 +3248,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'pageinfo-edits' => '総編集回数',
 'pageinfo-authors' => '総投稿者数',
 'pageinfo-recent-edits' => '最近の編集回数 (過去 $1)',
-'pageinfo-restriction' => 'ページ保護 (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'ページ保護 ({{lcfirst:$1}})',
 'pageinfo-magic-words' => 'マジック {{PLURAL:$1|ワード}} ($1)',
 'pageinfo-hidden-categories' => '隠し{{PLURAL:$1|カテゴリ}} ($1)',
 'pageinfo-templates' => '参照読み込みされた{{PLURAL:$1|テンプレート}} ($1)',
index 2308b5c..0fa0bbb 100644 (file)
@@ -294,6 +294,7 @@ $messages = array(
 'index-category' => 'გვერდების ინდექსაცია',
 'noindex-category' => 'არ არსებობს ინდექსირებული გვერდები',
 'broken-file-category' => 'გვერდები ფაილების არასწორი ბმულებით',
+'categoryviewer-pagedlinks' => '($1) ($2)',
 
 'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
 
@@ -1142,6 +1143,7 @@ $1",
 'mergehistory-comment' => 'გადატანა[[:$1]]-ის [[:$2]]-ში: $3',
 'mergehistory-same-destination' => 'თავდაპირველი და სამიზნე გვერდები უნდა განსხვავდებოდეს.',
 'mergehistory-reason' => 'მიზეზი:',
+'mergehistory-revisionrow' => '$1 ($2) $3 . . $4 $5 $6',
 
 # Merge log
 'mergelog' => 'გაერთიანებათა ჟურნალი',
@@ -2103,7 +2105,7 @@ $1',
 # Special:ActiveUsers
 'activeusers' => 'აქტიურ მომხმარებელთა სია',
 'activeusers-intro' => 'ეს არის მომხმარებელთა სია, რომელთაც აქვს წვლილი უკანასკნელი $1 {{PLURAL:$1|დღის|დღის}} განმავლობაში.',
-'activeusers-count' => '$1 {{PLURAL:$1|á\83ªá\83\95á\83\98á\83\9aá\83\94á\83\91á\83\90\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90}} {{PLURAL:$2|$3 á\83\93á\83¦á\83\94|$3 á\83\93á\83¦á\83\98á\83¡|$3 á\83\93á\83¦á\83\94á\83\94á\83\91ის}} განმავლობაში.',
+'activeusers-count' => '$1 {{PLURAL:$1|á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90}} {{PLURAL:$2|$3 á\83\93á\83¦á\83\94|$3 á\83\93á\83¦ის}} განმავლობაში.',
 'activeusers-from' => 'მომხმარებელთა ჩვენება, დაწყებული:',
 'activeusers-hidebots' => 'რობოტების დამალვა',
 'activeusers-hidesysops' => 'ადმინისტრატორების დამალვა',
@@ -2169,6 +2171,7 @@ $1',
 # User Messenger
 'usermessage-summary' => 'სისტემური შეტყობინების დატოვება.',
 'usermessage-editor' => 'სისტემური მესენჯერი',
+'usermessage-template' => 'MediaWiki:მომხმარებლის შეტყობინება',
 
 # Watchlist
 'watchlist' => 'ჩემი კონტროლის სია',
@@ -2419,6 +2422,7 @@ $UNWATCHURL
 $1',
 'undelete-show-file-confirm' => 'დარწმუნებული ხართ, რომ გსურთ ფაილ <nowiki>$1</nowiki>-ის წაშლილი ვერსიის ხილვა $2 $3-დან?',
 'undelete-show-file-submit' => 'ჰო',
+'undelete-revisionrow' => '$1 $2 ($3) $4 . . $5 $6 $7',
 
 # Namespace form on various pages
 'namespace' => 'სახელთა სივრცე:',
@@ -2803,6 +2807,7 @@ $1',
 'import-error-invalid' => 'გვერდი "$1" იმპორტირება არ მოხდა მიუღებელი სახელის გამო.',
 'import-options-wrong' => 'არასწორი {{PLURAL:$2|პარამეტრი|პარამეტრი}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'ძირეული გვერდის მითითებული სახელი არასწორია.',
+'import-rootpage-nosubpage' => 'სახელტა სივრცეში მითითებულ ძირეულ გვერდში „$1“ ქვეგვერდები დაუშვებელია.',
 
 # Import log
 'importlogpage' => 'იმპორტის ჟურნალი',
@@ -2942,17 +2947,23 @@ $1',
 'pageinfo-header-edits' => 'რედაქტირების ისტორია',
 'pageinfo-header-restrictions' => 'გვერდის დაცვა',
 'pageinfo-header-properties' => 'გვერდის თვისებები',
+'pageinfo-display-title' => 'ნაჩვენები სათაური',
+'pageinfo-default-sort' => 'სტანდარტული სორტირების გასაღები',
+'pageinfo-length' => 'გვერდის სიგრძე (ბაიტებში)',
 'pageinfo-article-id' => 'გვერდის ID',
 'pageinfo-robot-policy' => 'საძიებო სისტემის სტატუსი',
 'pageinfo-views' => 'ხილვების რაოდენობა',
 'pageinfo-watchers' => 'გვერდის დამკვირვებელთა რაოდენობა',
+'pageinfo-redirects-name' => 'გადამისამართება ამ გვერდზე',
+'pageinfo-redirects-value' => '$1',
+'pageinfo-subpages-name' => 'ამ გვერდის ქვეგვერდები',
 'pageinfo-firstuser' => 'გვერდის შემქნელი',
 'pageinfo-firsttime' => 'გვერდის შექმნის თარიღი',
 'pageinfo-lastuser' => 'ბოლო რედაქტორი',
 'pageinfo-lasttime' => 'ბოლო რედაქტირების თარიღი',
 'pageinfo-edits' => 'რედაქტირებების ჯამური რაოდენობა',
 'pageinfo-authors' => 'განსხვავებულ ავტორთა ჯამური რაოდენობა',
-'pageinfo-restriction' => 'გვერდის დაცვა (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'გვერდის დაცვა ({{lcfirst:$1}})',
 'pageinfo-magic-words' => 'ჯადოსნური {{PLURAL:$1|სიტყვა|სიტყვა}} ($1)',
 'pageinfo-hidden-categories' => 'დამალული {{PLURAL:$1|კატეგორია|კატეგორია}} ($1)',
 'pageinfo-templates' => 'ინტეგრირებულია {{PLURAL:$1|თარგი|თარგი}} ($1)',
@@ -3021,6 +3032,8 @@ $1',
 'file-info-png-looped' => 'დარგოლილი',
 'file-info-png-repeat' => 'დაკრულია $1 {{PLURAL:$1|ჯერ}}',
 'file-info-png-frames' => '$1 კადრი',
+'file-no-thumb-animation' => "'''შენიშვნა: ტექნიკური მიზეზების გამო, ამ ფაილის მინიატიურები არ იქნება ანიმირებული.'''",
+'file-no-thumb-animation-gif' => "'''შენიშვნა: ტექნიკური მიზეზების გამო, მაღალი გარჩევადობის GIF ფორმატის სურათების მსგავსი მინიატიურები არ იქნება ანიმირებული.'''",
 
 # Special:NewFiles
 'newimages' => 'ახალი ფაილების გალერეა',
@@ -3613,6 +3626,7 @@ $5
 'ellipsis' => '...',
 'percent' => '$1%',
 'parentheses' => '($1)',
+'brackets' => '[$1]',
 
 # Multipage image navigation
 'imgmultipageprev' => '&larr; წინა გვერდი',
@@ -3643,6 +3657,11 @@ $5
 'size-kilobytes' => '$1 კბ',
 'size-megabytes' => '$1 მბ',
 'size-gigabytes' => '$1 გბ',
+'size-terabytes' => '$1 ტბ',
+'size-petabytes' => '$1 პბ',
+'size-exabytes' => '$1 ებ',
+'size-zetabytes' => '$1 ზბ',
+'size-yottabytes' => '$1 იბ',
 
 # Bitrate units
 'bitrate-bits' => '$1 ბ/წმ',
index 28dec21..c0d265a 100644 (file)
@@ -1571,13 +1571,13 @@ $3 келтірілген себебі: ''$2''",
 'upload_directory_missing' => 'Қотарып бермек қалтасы ($1) жетіспейді және веб-сервер жарата алмайды.',
 'upload_directory_read_only' => 'Қотарып бермек қалтасына ($1) веб-сервер жаза алмайды.',
 'uploaderror' => 'Жүктеу қатесі',
-'uploadtext' => "Төмендегі пішінді файлдарды қотарып беру үшін қолданыңыз.
-Алдында қотарылып берілген файлдарды қарау не іздеу үшін [[{{#special:FileList}}|қотарып берілген файлдар тізіміне]] барыңыз, тағы да қотарып беруі мен жоюы  [[{{#special:Log}}/upload|қотарып беру журналына]] жазылып алынады.
+'uploadtext' => "Төмендегі пішінді файлдарды жүктеу үшін қолданыңыз.
+Алдында жүктелген файлдарды қарау не іздеу үшін [[Special:FileList|жүктелген файлдар тізіміне]] барыңыз. Сондай-ақ файлдардың жүктелуі [[Special:Log/upload|жүктелі журналына]], ал жойылған файлдар [[Special:Log/delete|жойылу журналына]] жазылады.
 
-СÑ\83Ñ\80еÑ\82Ñ\82Ñ\96 Ð±ÐµÑ\82ке ÐºÑ\96Ñ\80Ñ\96Ñ\81Ñ\82Ñ\96Ñ\80Ñ\83ге, Ñ\84айлÒ\93а Ñ\82Ñ\83Ñ\80а Ñ\81Ñ\96лÑ\82еÑ\83 Ò¯Ñ\88Ñ\96н Ð¼Ñ\8bна Ð¿Ñ\96Ñ\88Ñ\96ндегÑ\96 Ñ\81Ñ\96лÑ\82емені қолданыңыз:
-'''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki>''',
-'''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|балама мәтін]]</nowiki>''' не
-'''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki>'''.",
+СÑ\83Ñ\80еÑ\82Ñ\82Ñ\96 Ð¼Ð°Ò\9bалаÒ\93а Ò\9bоÑ\81Ñ\83 Ò¯Ñ\88Ñ\96н ÐºÐµÐ»ÐµÑ\81Ñ\96 Ñ\82Ó\99Ñ\81Ñ\96лдеÑ\80ді қолданыңыз:
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' файлдың толық нұсқасын орнату үшін;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|сурет тақырыбы]]</nowiki></code>''' 200px кішірейтілген файлды тақырыбын қосып сол жаққа орналастыру;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' тек файлға сілтеме жасау үшін.",
 'upload-permitted' => 'Рұқсат етілген файл түрлері: $1.',
 'upload-preferred' => 'Ұнамды файл түрлері $1.',
 'upload-prohibited' => 'Рұқсат етілмеген файл түрлері: $1.',
@@ -1592,7 +1592,7 @@ $3 келтірілген себебі: ''$2''",
 'filesource' => 'Қайнар көзі:',
 'uploadedfiles' => 'Жүктелген файлдар',
 'ignorewarning' => 'Құлақтандыруға елеме де файлды қалайда сақта.',
-'ignorewarnings' => 'Ð\9aез ÐºÐµÐ»Ð³ÐµÐ½ Ò\9bұлаÒ\9bÑ\82андÑ\8bÑ\80Ñ\83лаÑ\80Ò\93а ÐµÐ»ÐµÐ¼Ðµ',
+'ignorewarnings' => 'Ð\95Ñ\81кеÑ\80Ñ\82Ñ\83леÑ\80дÑ\96 ÐµÐ»ÐµÐ¼ÐµÑ\83',
 'minlength1' => 'Файл атауында ең кемінде бір әріп болуы жөн.',
 'illegalfilename' => '«$1» файл атауында бет тақырыбы атында рұқсат берілмеген таңбалар бар.
 Файлды қайта атаңыз да бұны қотарып беруді қайта байқап көріңіз.',
@@ -1639,7 +1639,7 @@ $3 келтірілген себебі: ''$2''",
 'upload-source' => 'Қайнар файл',
 'sourcefilename' => 'Қайнар файл атауы:',
 'sourceurl' => 'Қайнардың URL-мекенжайы:',
-'destfilename' => 'Ð\9dÑ\8bÑ\81ана Ñ\84айл атауы:',
+'destfilename' => 'Файл атауы:',
 'upload-maxfilesize' => 'Файлдың ең көп мүмкін мөлшері: $1',
 'upload-description' => 'Файл сипаттамасы',
 'upload-options' => 'Жүктеу баптаулары',
@@ -2404,7 +2404,7 @@ $1 бұғаттауы үшін келтірілген себебі: «$2».',
 бет өзінің үстіне жылжытылмайды.',
 'imagenocrossnamespace' => 'Файл емес есім аясына файл жылжытылмайды',
 'imagetypemismatch' => 'Файлдың жаңа кеңейтімі бұның түріне сәйкес емес',
-'imageinvalidfilename' => 'Ð\9dÑ\8bÑ\81ана Ñ\84айл атауы жарамсыз',
+'imageinvalidfilename' => 'Файл атауы жарамсыз',
 'move-leave-redirect' => 'Ескі бетте айдату сілтемесін қалдыру',
 
 # Export
index c9c09ff..8946a7c 100644 (file)
@@ -2951,7 +2951,7 @@ $1',
 'pageinfo-authors' => 'ចំនួនអ្នកនិពន្ធសរុប',
 'pageinfo-recent-edits' => 'ចំនួនការកែប្រែថ្មីៗ (ក្នុងរយៈពេល $1 កន្លងទៅនេះ)',
 'pageinfo-recent-authors' => 'ចំនួនអ្នកនិពន្ធថ្មីៗនេះ',
-'pageinfo-restriction' => 'ការការពារទំព័រ (<code>{{$1}}</code>)',
+'pageinfo-restriction' => 'ការការពារទំព័រ ({{$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|ពាក្យ|ពាក្យ}} វេទមន្ត ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|ចំណាត់ថ្នាក់ក្រុម|ចំណាត់ថ្នាក់ក្រុម}}ដែលបានលាក់ ($1)',
 
index 68b3e9b..3c614a1 100644 (file)
@@ -3226,7 +3226,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'pageinfo-authors' => '총 서로 다른 편집자 수',
 'pageinfo-recent-edits' => '최근 편집 수 (지난 $1일 이내)',
 'pageinfo-recent-authors' => '최근 기여자 수',
-'pageinfo-restriction' => '문서 보호 (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => '문서 보호 ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '매직 {{PLURAL:$1|워드}} ($1개)',
 'pageinfo-hidden-categories' => '숨은 {{PLURAL:$1|분류}} ($1개)',
 'pageinfo-templates' => '포함한 {{PLURAL:$1|틀}} ($1개)',
index 36efed7..588b2c0 100644 (file)
@@ -2894,6 +2894,7 @@ Dëst warscheinlech duerch en externe Link den op der schwaarzer Lëscht (blackl
 'pageinfo-title' => 'Informatioun iwwer "$1"',
 'pageinfo-header-basic' => 'Basisinformatiounen',
 'pageinfo-header-edits' => 'Historique vun den Ännerungen',
+'pageinfo-header-restrictions' => 'Spär vun der Säit',
 'pageinfo-display-title' => 'Titel dee gewise gëtt',
 'pageinfo-views' => 'Zuel vun de Kéieren déi dës Säit gekuckt gouf',
 'pageinfo-watchers' => "Zuel vun de Benotzer déi d'Säit iwwerwaachen",
@@ -2905,9 +2906,10 @@ Dëst warscheinlech duerch en externe Link den op der schwaarzer Lëscht (blackl
 'pageinfo-edits' => 'Gesamtzuel vun den Ännerungen',
 'pageinfo-authors' => 'Gesamtzuel vun de verschiddenen Auteuren',
 'pageinfo-recent-edits' => 'Zuel vun de rezenten Ännerungen (an de leschten $1)',
-'pageinfo-restriction' => 'Protectioun vun der Säit (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protectioun vun der Säit ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magescht Wuert|Magesch Wierder}} ($1)',
 'pageinfo-hidden-categories' => 'Verstoppte {{PLURAL:$1|Kategorie|Kategorien}} ($1)',
+'pageinfo-templates' => 'Agebonne {{PLURAL:$2|Schabloun|Schabloune}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Klassesch',
@@ -2970,6 +2972,7 @@ Duerch d'Opmaache vum Fichier kann Äre System beschiedegt ginn.",
 'file-info-png-looped' => 'endlos Schleef',
 'file-info-png-repeat' => 'gouf $1 {{PLURAL:$1|mol|mol}} gespillt',
 'file-info-png-frames' => '$1 {{PLURAL:$1|Frame|Framen}}',
+'file-no-thumb-animation' => "''''Informatioun: Wéinst technesche Limitatioune sinn d'Miniatur-Biller vun dësem Fichier net animéiert.'''",
 
 # Special:NewFiles
 'newimages' => 'Gallerie vun den neie Biller',
index dccadb8..b9e2f49 100644 (file)
@@ -15,6 +15,7 @@
  * @author Kumariprity
  * @author Manojberma77
  * @author Meno25
+ * @author Nemo bis
  * @author Priyanka.rachna.jha
  * @author Rajesh
  * @author Reedy
@@ -3532,8 +3533,8 @@ $5
 'logentry-move-move-noredirect' => '$1 {{लिंग:$2|हटाएल}} पन्ना $3 सँ $4 घुमौआकेँ बिना छोड़ने',
 'logentry-move-move_redir' => '$1 {{लिंग:$2|हटाएल}} पन्ना $3 सँ $4 घुमौआक अतिरिक्त',
 'logentry-move-move_redir-noredirect' => '$1 {{लिंग:$2|हटाएल}} पन्ना $3 सँ $4 घुमौआक अतितिक्त घुमौआकेँ बिना छोड़ने',
-'logentry-patrol-patrol' => '$1 {{लिंग:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित',
-'logentry-patrol-patrol-auto' => '$1 स्वतः {{लिंग:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित',
+'logentry-patrol-patrol-auto' => '$1 स्वतः {{GENDER:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित',
 'logentry-newusers-newusers' => '$1 {{लिंग:$2|बनाएल}} एकटा प्रयोक्ता खाता',
 'logentry-newusers-create' => '$1 {{लिंग:$2|बनाएल}} एकटा प्रयोक्ता खाता',
 'logentry-newusers-create2' => '$1 {{लिंग:$2|बनाएल}} {{लिंग:$4|एकटा प्रयोक्ता खाता}} $3',
index b664588..3b0f98d 100644 (file)
@@ -3220,7 +3220,7 @@ $1',
 'pageinfo-authors' => 'Број на засебни автори',
 'pageinfo-recent-edits' => 'Број на скорешни уредувања (во последните $1)',
 'pageinfo-recent-authors' => 'Број на скорешни засебни автори',
-'pageinfo-restriction' => 'Заштита на страницата (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Заштита на страницата ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Волшебен збор|Волшебни зборови}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Скриена категорија|Скриени категории}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Превметнат шаблон|Превметнати шаблони}} ($1)',
index f2f8323..c5305f2 100644 (file)
@@ -3101,7 +3101,7 @@ $1',
 'pageinfo-authors' => 'ആകെ വ്യത്യസ്തരചയിതാക്കളുടെ എണ്ണം',
 'pageinfo-recent-edits' => 'സമീപകാലത്തെ തിരുത്തുകൾ (കഴിഞ്ഞ $1 കാലയളവിനുള്ളിൽ)',
 'pageinfo-recent-authors' => 'സമീപകാലത്തെ വ്യത്യസ്തരചയിതാക്കളുടെ എണ്ണം',
-'pageinfo-restriction' => 'താൾ സംരക്ഷണം (<code>$1</code>)',
+'pageinfo-restriction' => 'താൾ സംരക്ഷണം ($1)',
 'pageinfo-magic-words' => 'മാന്ത്രിക{{PLURAL:$1|വാക്ക്|വാക്കുകൾ}} ($1)',
 'pageinfo-hidden-categories' => 'മറഞ്ഞിരിക്കുന്ന {{PLURAL:$1|വർഗ്ഗം|വർഗ്ഗങ്ങൾ}} ($1)',
 'pageinfo-templates' => 'ഉൾപ്പെടുത്തിയിട്ടുള്ള {{PLURAL:$1|ഫലകം|ഫലകങ്ങൾ}} ($1)',
index da1ea47..8535f62 100644 (file)
@@ -2976,7 +2976,7 @@ Simpan dalam komputer anda dan muat naiknya di sini.',
 'pageinfo-authors' => 'Jumlah pengarang yang berlainan',
 'pageinfo-recent-edits' => 'Bilangan suntingan terkini (dalam $1 yang lalu)',
 'pageinfo-recent-authors' => 'Bilangan pengarang berbeza yang terkini',
-'pageinfo-restriction' => 'Perlindungan halaman (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Perlindungan halaman ({{lcfirst:$1}})',
 'pageinfo-magic-words' => 'Kata sakti ($1)',
 'pageinfo-hidden-categories' => 'Kategori tersembunyi ($1)',
 'pageinfo-templates' => 'Templat tertransklusi ($1)',
index b1f60f1..bbd811d 100644 (file)
@@ -3105,7 +3105,7 @@ Dette er sannsynligvis forårsaket av en lenke til et svartelistet eksternt nett
 'pageinfo-authors' => 'Totalt antall forskjellige forfattere',
 'pageinfo-recent-edits' => 'Antall nylige redigeringer (innen siste $1)',
 'pageinfo-recent-authors' => 'Antall nylige forfattere',
-'pageinfo-restriction' => 'Sidebeskyttelse (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Sidebeskyttelse ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magisk|Magiske}} ord ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Skjult kategori|Skjulte kategorier}} ($1)',
 'pageinfo-templates' => 'Transkludert {{PLURAL:$1|mal|maler}} ($1)',
index 714892d..9490d09 100644 (file)
@@ -319,7 +319,7 @@ $messages = array(
 'tog-numberheadings' => 'Koppen vanzelf nummeren',
 'tog-showtoolbar' => 'Laot de warkbalke zien',
 'tog-editondblclick' => 'Mit dubbelklik bewarken (JavaScript)',
-'tog-editsection' => 'Mit bewarkgedeeltes',
+'tog-editsection' => 'Mit bewarkgedeelten',
 'tog-editsectiononrightclick' => 'Bewarkgedeelte mit rechtermuusknoppe bewarken (JavaScript)',
 'tog-showtoc' => 'Samenvatting laoten zien van de zaken die an bod koemen (mit meer as dree onderwarpen)',
 'tog-rememberpassword' => 'Vanzelf anmelden (hooguut $1 {{PLURAL:$1|dag|dagen}})',
@@ -572,6 +572,10 @@ $1",
 'youhavenewmessages' => 'Je hebben $1 ($2).',
 'newmessageslink' => 'nieje berichten',
 'newmessagesdifflink' => 'verschil mit de veurige versie',
+'youhavenewmessagesfromusers' => 'Je hebben $1 van {{PLURAL:$3|n aandere gebruker|$3 gebrukers}} ($2).',
+'youhavenewmessagesmanyusers' => 'Je hebben $1 van n bulte gebrukers ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|n niej bericht|nieje berichten}}',
+'newmessagesdifflinkplural' => 'leste {{PLURAL:$1|wieziging|wiezigingen}}',
 'youhavenewmessagesmulti' => 'Je hebben nieje berichten op $1',
 'editsection' => 'bewark',
 'editold' => 'bewark',
@@ -628,9 +632,9 @@ De oorzake hiervan kan dujen op n fout in de programmatuur.
 Der is n syntaxisfout in t databankeverzeuk op-etrejen.
 t Kan ween dat der n fout in de programmatuur zit.
 De leste zeukpoging in de databanke was:
-<blockquote><tt>$1</tt></blockquote>
-vanuut de funksie "<tt>$2</tt>".
-De databanke gaf de volgende foutmelding "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+vanuut de funksie "<code>$2</code>".
+De databanke gaf de volgende foutmelding "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Der is n syntaxisfout in t databankeverzeuk op-etrejen.
 t Leste veurzeuk an de databanke was:
 "$1"
@@ -720,6 +724,7 @@ Vergeet niet joew [[Special:Preferences|veurkeuren veur {{SITENAME}}]] in te ste
 'remembermypassword' => 'Vanzelf anmelden (hooguut $1 {{PLURAL:$1|dag|dagen}})',
 'securelogin-stick-https' => "Verbunnen blieven via HTTPS naoda'j an-emeld bin",
 'yourdomainname' => 'Joew domein',
+'password-change-forbidden' => 'Je kunnen joew wachtwoord niet wiezigen op disse wiki.',
 'externaldberror' => 'Der gung iets fout bie de externe authentisering, of je maggen je gebrukersprofiel niet bewarken.',
 'login' => 'Anmelden',
 'nav-login-createaccount' => 'Anmelden',
@@ -965,6 +970,10 @@ of [{{fullurl:{{FULLPAGENAME}}|action=edit}} disse zied bewarken]</span>.',
 'noarticletext-nopermission' => 'Op disse zied steet gien tekste.
 Je kunnen [[Special:Search/{{PAGENAME}}|zeuken naor disse term]] in aandere ziejen of
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken deurzeuken]</span>.',
+'missing-revision' => 'De versie #$1 van de zied "{{PAGENAME}} besteet niet.
+
+Dit kömp meestentieds deur t volgen van n verouwerde verwiezing naor n zied die vortedaon is.
+Waorschienlik ku\'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].',
 'userpage-userdoesnotexist' => 'Je bewarken n gebrukerszied van n gebruker die niet besteet (gebruker "<nowiki>$1</nowiki>"). Kiek effen nao o\'j disse zied wel anmaken/bewarken willen.',
 'userpage-userdoesnotexist-view' => 'Gebruker "$1" steet hier niet in-eschreven',
 'blocked-notice-logextract' => 'Disse gebruker is op t moment eblokkeerd.
@@ -973,7 +982,6 @@ De leste regel uut t blokkeerlogboek steet hieronder as referensie:',
 *'''Firefox / Safari:''' drok op ''Shift'' terwiel je op ''verniejen'' klikken, of gebruuk ''Ctrl-F5'' of ''Ctrl-R'' (''⌘-R'' op n knipperkiste van Mac)
 * '''Google Chrome:''' drok op ''Ctrl-Shift-R'' (''⌘-Shift-R'' op n knipperkiste van Mac)
 *'''Internet Explorer:''' drok op ''Ctrl'' terwiel je op ''verniejen'' klikken of drok op ''Ctrl-F5''
-*'''Konqueror: '''klik op ''verniejen'' of drok op ''F5''
 *'''Opera:''' leeg t tussengeheugen in ''Extra → Voorkeuren\"",
 'usercssyoucanpreview' => "'''Tip:''' gebruuk de knoppe \"{{int:showpreview}}\" um joew nieje css/js nao te kieken veurda'j t opslaon.",
 'userjsyoucanpreview' => "'''Tip:''' gebruuk de knoppe \"{{int:showpreview}}\" um joew nieje css/js nao te kieken veurda'j t opslaon.",
@@ -1088,6 +1096,7 @@ Sommigen mallen wörden niet in-evoegd.',
 'expansion-depth-exceeded-warning' => 'Op disse zied staon te veule mallen',
 'parser-unstrip-loop-warning' => 'Der is n "unstrip"-lusse evunnen',
 'parser-unstrip-recursion-limit' => 'De rekursielimiet ($1) veur "unstrip" is overschrejen',
+'converter-manual-rule-error' => 'Der is n fout evunnen in n haandmaotig in-evoegden taalkonversieregel.',
 
 # "Undo" feature
 'undo-success' => 'De bewarking kan weerummedreid wörden. Kiek de vergelieking hieronder nao um der wisse van de ween dat alles goed is, en slao de de zied op um de bewarking weerumme te dreien.',
@@ -1269,6 +1278,10 @@ In de [[Special:BlockList|blokkeerlieste]] bin de blokkeringen, die noen van toe
 'editundo' => 'weerummedreien',
 'diff-multi' => '(Hier {{PLURAL:$1|zit nog 1 versie|zitten nog $1 versies}} van {{PLURAL:$2|1 gebruker|$2 gebrukers}} tussen die der niet bie staon.)',
 'diff-multi-manyusers' => '($1 tussenliggende {{PLURAL:$1|versie|versies}} deur meer as $2 {{PLURAL:$2|gebruker|gebrukers}} niet weeregeven)',
+'difference-missing-revision' => "{{PLURAL:$2|Eén versie|$2 versies}} van disse verschillen ($1) {{PLURAL:$2|is|bin}} niet evunnen.
+
+Dit kömp meestentieds deur t volgen van n verouwerde verwiezing naor n zied die vortedaon is.
+Waorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].",
 
 # Search results
 'searchresults' => 'Zeukresultaoten',
@@ -1626,7 +1639,7 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'recentchanges-label-minor' => 'Dit is n kleine wieziging',
 'recentchanges-label-bot' => 'Disse bewarking is uutevoerd deur n bot',
 'recentchanges-label-unpatrolled' => 'Disse bewarking is nog niet nao-ekeken',
-'rcnote' => "Hieronder {{PLURAL:$1|steet de leste bewarking|staon de leste '''$1''' bewarkingen}} van de aofeleupen {{PLURAL:$2|dag|'''$2''' dagen}} (stand: $5, $4).",
+'rcnote' => "Hieronder {{PLURAL:$1|steet de leste bewarking|staon de leste '''$1''' bewarkingen}} van de aofgeleupen {{PLURAL:$2|dag|'''$2''' dagen}} (per: $5, $4).",
 'rcnotefrom' => 'Dit bin de wiezigingen sinds <b>$2</b> (maximum van <b>$1</b> wiezigingen).',
 'rclistfrom' => 'Bekiek wiezigingen vanaof $1',
 'rcshowhideminor' => '$1 kleine wiezigingen',
@@ -1635,7 +1648,7 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'rcshowhideanons' => '$1 anonieme gebrukers',
 'rcshowhidepatr' => '$1 nao-ekeken bewarkingen',
 'rcshowhidemine' => '$1 mien bewarkingen',
-'rclinks' => 'Bekiek de leste $1 wiezigingen van de aofeleupen $2 dagen<br />$3',
+'rclinks' => 'Bekiek de leste $1 wiezigingen van de aofgeleupen $2 dagen<br />$3',
 'diff' => 'wiezig',
 'hist' => 'gesch',
 'hide' => 'verbarg',
@@ -1952,6 +1965,7 @@ Je kunnen de [$2 zied mit de bestaandsbeschrieving] daor bewarken.',
 'uploadnewversion-linktext' => 'n Niejere versie van dit bestaand opsturen.',
 'shared-repo-from' => 'uut $1',
 'shared-repo' => 'n edeelden mediadatabanke',
+'upload-disallowed-here' => 'Je kunnen disse aofbeelding niet overschrieven.',
 
 # File reversion
 'filerevert' => '$1 weerummedreien',
@@ -2032,9 +2046,9 @@ Vergeet niet de verwiezingen nao te kieken veurda\'j de mal vortdoon.',
 
 'disambiguations' => 'Ziejen die verwiezen naor deurverwiesziejen',
 'disambiguationspage' => 'Template:Dv',
-'disambiguations-text' => "De onderstaonde ziejen verwiezen naor n '''deurverwieszied'''. Disse verwiezingen mutten eigenliks rechtstreeks verwiezen naor t juuste onderwarp.
-
-Ziejen wörden ezien as n deurverwieszied, as de mal gebruukt wörden die vermeld steet op [[MediaWiki:Disambiguationspage]]",
+'disambiguations-text' => "Hieronder staon ziejen mit tenminsten één verwiezing naor n '''deurverwieszied'''. 
+Feitelik mutten ze rechtstreeks verwiezen naor t juuste onderwarp.<br />
+Ziejen wörden ezien as n deurverwieszied, as de mal gebruukt wörden die vermeld steet op [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'Dubbele deurverwiezingen',
 'doubleredirectstext' => 'Op disse lieste staon alle ziejen die deurverwiezen naor aandere deurverwiezingen.
@@ -2059,6 +2073,7 @@ Meestentieds is leste zied de gewunste doelzied, waor oek de eerste zied heer zo
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|kategorie|kategorieën}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwikiverwiezing|interwikiverwiezingen}}',
 'nlinks' => '$1 {{PLURAL:$1|verwiezing|verwiezingen}}',
 'nmembers' => '$1 {{PLURAL:$1|onderwarp|onderwarpen}}',
 'nrevisions' => '$1 {{PLURAL:$1|versie|versies}}',
@@ -2087,6 +2102,7 @@ Meestentieds is leste zied de gewunste doelzied, waor oek de eerste zied heer zo
 'mostlinkedtemplates' => 'Meestgebruukten mallen',
 'mostcategories' => 'Artikels mit de meeste kategorieën',
 'mostimages' => 'Meestgebruukten bestaanden',
+'mostinterwikis' => "Pagina's mit de meeste interwikiverwiezingen",
 'mostrevisions' => 'Artikels mit de meeste bewarkingen',
 'prefixindex' => 'Alle ziejen op veurvoegsel',
 'prefixindex-namespace' => 'Alle ziejen mit t veurvoegsel (naamruumte $1)',
@@ -2201,8 +2217,8 @@ Ondersteunde protokollen: <code>$1</code> (zet t niet in joew zeukopdrachte).',
 
 # Special:ActiveUsers
 'activeusers' => 'Aktieve gebrukers',
-'activeusers-intro' => 'Dit is n lieste van gebrukers die de aofeleupen $1 {{PLURAL:$1|dag|dagen}} enigszins aktief ewes bin.',
-'activeusers-count' => '$1 leste {{PLURAL:$1|bewarking|bewarkingen}} in de aofeleupen {{PLURAL:$3|dag|$3 dagen}}',
+'activeusers-intro' => 'Dit is n lieste van gebrukers die de aofgeleupen $1 {{PLURAL:$1|dag|dagen}} enigszins aktief ewest hebben.',
+'activeusers-count' => '$1 leste {{PLURAL:$1|bewarking|bewarkingen}} in de aofgeleupen {{PLURAL:$3|dag|$3 dagen}}',
 'activeusers-from' => 'Laot gebrukers zien vanaof:',
 'activeusers-hidebots' => 'Bots verbargen',
 'activeusers-hidesysops' => 'Beheerders verbargen',
@@ -2235,6 +2251,8 @@ Meer informasie over de rechten ku'j [[{{MediaWiki:Listgrouprights-helppage}}|hi
 'mailnologin' => 'Niet an-emeld.',
 'mailnologintext' => 'Je mutten [[Special:UserLogin|an-emeld]] ween en n geldig e-mailadres in "[[Special:Preferences|mien veurkeuren]]" invoeren um disse funksie te kunnen gebruken.',
 'emailuser' => 'n Bericht sturen',
+'emailuser-title-target' => 'Disse {{GENDER:$1|gebruker}} n bericht sturen',
+'emailuser-title-notarget' => 'Gebruker n bericht sturen',
 'emailpage' => 'Gebruker n bericht sturen',
 'emailpagetext' => "Deur middel van dit formulier ku'j n bericht sturen naor disse gebruker.
 t Adres da'j op-egeven hebben bie [[Special:Preferences|joew veurkeuren]] zal as aofzender gebruukt wörden.
@@ -2294,7 +2312,7 @@ Toekomstige wiezigingen op disse zied en de overlegzied zullen hier vermeld wör
 'watchmethod-list' => 'Kik joew nao volglieste veur de leste wiezigingen',
 'watchlistcontains' => 'Der {{PLURAL:$1|steet 1 zied|staon $1 ziejen}} op joew volglieste.',
 'iteminvalidname' => "Verkeerde naam '$1'",
-'wlnote' => 'Hieronder {{PLURAL:$1|steet de leste wieziging|staon de leste $1 wiezigingen}} in {{PLURAL:$2|t aofeleupen ure|de leste $2 uren}} vanaof $3 um $4.',
+'wlnote' => 'Hieronder {{PLURAL:$1|steet de leste wieziging|staon de leste $1 wiezigingen}} in {{PLURAL:$2|t aofgeleupen ure|de leste $2 uren}} vanaof $3 um $4.',
 'wlshowlast' => 'Laot de veurbieje $1 uur $2 dagen $3 zien',
 'watchlist-options' => 'Opsies veur de volglieste',
 
@@ -2380,6 +2398,8 @@ Wees veurzichtig',
 'rollback' => 'Wiezigingen herstellen',
 'rollback_short' => 'Weerummedreien',
 'rollbacklink' => 'Weerummedreien',
+'rollbacklinkcount' => '{{PLURAL:$1|één bewarking|$1 bewarkingen}} weerummedreien',
+'rollbacklinkcount-morethan' => 'Meer as {{PLURAL:$1|één bewarking|$1 bewarkingen}} weerummedreien',
 'rollbackfailed' => 'Wieziging herstellen is mislokt',
 'cantrollback' => 'De wiezigingen konnen niet hersteld wörden; der is mer 1 auteur.',
 'alreadyrolled' => 'Kan de leste wieziging van de zied [[:$1]] deur [[User:$2|$2]] ([[User talk:$2|Overleg]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); niet weerummedreien.
@@ -2863,6 +2883,7 @@ Alle transwiki-invoerhaandelingen wörden op-esleugen in t [[Special:Log/import|
 'import-interwiki-templates' => 'Alle mallen opnemen',
 'import-interwiki-submit' => 'Invoeren',
 'import-interwiki-namespace' => 'Doelnaamruumte:',
+'import-interwiki-rootpage' => 'Baosiszied veur doel (opsioneel):',
 'import-upload-filename' => 'Bestaandsnaam:',
 'import-comment' => 'Opmarkingen:',
 'importtext' => 'Gebruuk de [[Special:Export|uutvoerfunksie]] in de wiki waor de informasie vandaon kömp.
@@ -2898,6 +2919,9 @@ De tiedelike map is niet anwezig.',
 'import-error-interwiki' => 'De zied "$1" is niet in-evoerd umdat disse naam ereserveerd is veur externe verwiezingen (interwiki).',
 'import-error-special' => 'Zied "$1" is niet in-evoerd umdat t eplaotst is in n spesiale naamruumte waor gien ziejen in eplaotst kunnen wörden.',
 'import-error-invalid' => 'De zied" "$1" is niet in-evoerd umdat de naam ongeldig is.',
+'import-options-wrong' => 'Verkeerde {{PLURAL:$2|opsie|opsies}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'De op-egeven baosiszied is ongeldig.',
+'import-rootpage-nosubpage' => 'In de naamruumte "$1" van de baosiszied is t anmaken van onderziejen niet meugelik.',
 
 # Import log
 'importlogpage' => 'Invoerlogboek',
@@ -3015,11 +3039,34 @@ Meestentieds kömp dit deur n uutgaonde verwiezing die op de zwarte lieste steet
 
 # Info page
 'pageinfo-title' => 'Informasie over "$1"',
-'pageinfo-header-edits' => 'Bewarkingen',
+'pageinfo-header-basic' => 'Baosisinformasie',
+'pageinfo-header-edits' => 'Bewarkingsgeschiedenisse',
+'pageinfo-header-restrictions' => 'Ziedbeveiliging',
+'pageinfo-header-properties' => 'Ziedeigenschappen',
+'pageinfo-display-title' => 'Weeregeven ziednaam',
+'pageinfo-default-sort' => 'Standard sorteerwieze',
+'pageinfo-length' => 'Ziedlengte (in bytes)',
+'pageinfo-article-id' => 'Zied-ID',
+'pageinfo-robot-policy' => 'Staotus veur de zeukmasine',
+'pageinfo-robot-index' => 'Indexeerbaor',
+'pageinfo-robot-noindex' => 'Niet indexeerbaor',
 'pageinfo-views' => 'Antal keer bekeken',
-'pageinfo-watchers' => 'Antal volgers',
-'pageinfo-edits' => 'Antal bewarkingen',
-'pageinfo-authors' => 'Antal verschillende auteurs',
+'pageinfo-watchers' => 'Antal ziedvolgers',
+'pageinfo-redirects-name' => 'Deurverwiezingen naor disse zied',
+'pageinfo-subpages-name' => 'Onderziejen van disse zied',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|deurverwiezing|deurverwiezingen}}; $3 {{PLURAL:$3|niet-deurverwiezing|niet-deurverwiezingen}})',
+'pageinfo-firstuser' => 'Gebruker die de zied an-emaakt hef',
+'pageinfo-firsttime' => 'Daotum waorop de zied an-emaakt is',
+'pageinfo-lastuser' => 'Leste bewarker',
+'pageinfo-lasttime' => 'Daotum van leste bewarking',
+'pageinfo-edits' => 'Totaal antal bewarkingen',
+'pageinfo-authors' => 'Totaal antal verschillende auteurs',
+'pageinfo-recent-edits' => 'Antal nieje bewarkingen (in de veurbieje $1).',
+'pageinfo-recent-authors' => 'Leste antal van verschillende auteurs',
+'pageinfo-restriction' => 'Ziedbeveiliging ({{lcfirst:$1}})',
+'pageinfo-magic-words' => '{{PLURAL:$1|Magies woord|Magiese woorden}} ($1)',
+'pageinfo-hidden-categories' => 'Verbörgen {{PLURAL:$1|kategorie|kategorieën}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Gebruukten mal|Gebruukten mallen}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Klassiek',
@@ -3073,6 +3120,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 beeldpunten, bestaandsgrootte: $3, MIME-type: $4, $5 {{PLURAL:$5|zied|ziejen}}',
 'file-nohires' => 'Gien hogere resolusie beschikbaor.',
 'svg-long-desc' => 'SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3',
+'svg-long-desc-animated' => 'Bewegend SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3',
 'show-big-image' => 'Volle resolusie',
 'show-big-image-preview' => 'Grootte van disse weergave: $1.',
 'show-big-image-other' => 'Aandere {{PLURAL:$2|resolusie|resolusies}}: $1.',
@@ -3082,6 +3130,8 @@ $1',
 'file-info-png-looped' => 'herhaolend',
 'file-info-png-repeat' => '$1 {{PLURAL:$1|keer|keer}} aofespeuld',
 'file-info-png-frames' => '$1 {{PLURAL:$1|beeld|beelden}}',
+'file-no-thumb-animation' => "'''Opmarking: vanwegen techniese beparkingen, zie'j bie miniaturen de boel niet bewegen.''",
+'file-no-thumb-animation-gif' => "'''Opmarking: vanwegen techniese beparkingen, zie'j bie miniaturen van GIF-aofbeeldingen mit n hoge resolusie de boel niet bewegen.''",
 
 # Special:NewFiles
 'newimages' => 'Nieje bestaanden',
@@ -3881,7 +3931,7 @@ Aanders ku\'j oek t eenvoudige formulier hieronder gebruken. Joew opmarkingen zu
 'api-error-file-too-large' => "t Bestaand da'j op-estuurd hebben is te groot.",
 'api-error-filename-tooshort' => 'De bestaandsnaam is te kort.',
 'api-error-filetype-banned' => 'Dit bestaandstype is niet toe-estaon.',
-'api-error-filetype-banned-type' => '{{PLURAL:$4|t Bestaandstype $1 wordt|De bestandstypes $1 worden}} niet toegelaten. {{PLURAL:$3|t Toe-estaone bestaandstype is|De toe-estaone bestaandstypen bin}} $2.',
+'api-error-filetype-banned-type' => '{{PLURAL:$4|t Bestaandstype $1|De bestaandstypes $1}} wörden niet toe-eleuten. {{PLURAL:$3|t Toe-estaone bestaandstype is|De toe-estaone bestaandstypen bin}} $2.',
 'api-error-filetype-missing' => 't Bestaand hef gien extensie.',
 'api-error-hookaborted' => "De wieziging die'j proberen deur te voeren is aofebreuken deur n extra uutbreiding.",
 'api-error-http' => 'Interne fout: der kon gien verbiending emaakt wörden mit de server.',
index b30c2fb..d45c540 100644 (file)
@@ -3246,7 +3246,7 @@ Meestal wordt dit door een externe verwijzing op een zwarte lijst veroorzaakt.',
 'pageinfo-authors' => 'Totaal aantal verschillende auteurs',
 'pageinfo-recent-edits' => 'Recent aantal bewerkingen (binnen de afgelopen $1).',
 'pageinfo-recent-authors' => 'Recent aantal verschillende auteurs',
-'pageinfo-restriction' => 'Paginabeveiliging (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Paginabeveiliging ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magisch woord|Magische woorden}} ($1)',
 'pageinfo-hidden-categories' => 'Verborgen {{PLURAL:$1|categorie|categorieën}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Gebruikt sjabloon|Gebruikte sjablonen}} ($1)',
index fdcfabf..d58f0c7 100644 (file)
@@ -17,6 +17,7 @@
  * @author Sukh
  * @author Surinder.wadhawan
  * @author TariButtar
+ * @author Xqt
  * @author Ævar Arnfjörð Bjarmason
  * @author לערי ריינהארט
  */
@@ -129,7 +130,7 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'tog-watchlisthidepatrolled' => 'ਵੇਖੀਆਂ ਜਾ ਚੁੱਕੀਆਂ ਸੋਧਾਂ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚੋਂ ਲੁਕਾਓ',
 'tog-ccmeonemails' => 'ਜੋ ਈ-ਮੇਲਾਂ ਮੈਂ ਦੂਜੇ ਮੈਂਬਰਾਂ ਨੂੰ ਭੇਜਦਾ ਹਾਂ ਓਹਨਾਂ ਦੀਆਂ ਨਕਲਾਂ ਮੈਨੂੰ ਭੇਜੋ',
 'tog-diffonly' => 'ਫ਼ਰਕਾਂ ਤੋਂ ਹੇਠ ਸਫ਼ੇ ਦੀ ਸਮੱਗਰੀ ਨਾ ਵਖਾਓ',
-'tog-showhiddencats' => 'ਲà©\81à¨\95à©\80à¨\86à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80à¨\86à¨\82 à¨µਖਾਓ',
+'tog-showhiddencats' => 'ਲà©\81à¨\95à©\80à¨\86à¨\82 à¨¸à¨¼à©\8dਰà©\87ਣà©\80à¨\86à¨\82 à¨µà¨¿ਖਾਓ',
 'tog-norollbackdiff' => '"ਵਾਪਸ ਮੋੜੌ"ਅਮਲ ਵਿਚ ਲਿਆਣ ਬਾਦ ਫ਼ਰਕ ਨਾ ਦਿਖਾਓ',
 
 'underline-always' => 'ਹਮੇਸ਼ਾਂ',
@@ -199,10 +200,10 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'pagecategories' => '{{PLURAL:$1|ਕੈਟਾਗਰੀ|ਕੈਟਾਗਰੀਆਂ}}',
 'category_header' => 'ਕੈਟਾਗਰੀ "$1" ਵਿੱਚ ਲੇਖ',
 'subcategories' => 'ਸਬ-ਕੈਟਾਗਰੀਆਂ',
-'category-media-header' => 'à¨\95à©\88à¨\9fà©\87à¨\97ਰੀ "$1" ਵਿੱਚ ਮੀਡੀਆ',
-'category-empty' => "''à¨\87ਸ à¨\95à©\88à¨\9fà©\87à¨\97ਰੀ ਵਿੱਚ ਇਸ ਵੇਲ਼ੇ ਕੋਈ ਵੀ ਸਫ਼ਾ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ ਹੈ।''",
+'category-media-header' => 'ਸ਼à©\8dਰà©\87ਣੀ "$1" ਵਿੱਚ ਮੀਡੀਆ',
+'category-empty' => "''à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣੀ ਵਿੱਚ ਇਸ ਵੇਲ਼ੇ ਕੋਈ ਵੀ ਸਫ਼ਾ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ ਹੈ।''",
 'hidden-categories' => '{{PLURAL:$1|ਲੁਕੀਵੀਂ ਸ਼੍ਰੇਣੀ|ਲੁਕਵੀਂਆਂ ਸ਼੍ਰੇਣੀਆਂ}}',
-'hidden-category-category' => 'ਲà©\81à¨\95à©\80à¨\86à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ',
+'hidden-category-category' => 'ਲà©\81à¨\95à©\80à¨\86à¨\82 à¨¸à¨¼à©\8dਰà©\87ਣੀਆਂ',
 'category-subcat-count' => '{{ਕੁੱਲ $2 ਸ਼੍ਰੇਣੀਆਂ ਵਿਚੋਂ, PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਹੇਠ ਲਿਖੀ ਸ਼੍ਰੇਣੀ ਹੈ| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ {{PLURAL:$1|ਉਪ ਸ਼੍ਰੇਣੀ ਹੈ|$1 ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਹਨ}}}}',
 'category-subcat-count-limited' => 'ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ {{PLURAL:$1|ਉਪ-ਸ਼੍ਰੇਣੀ ਹੈ।|$1 ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਹਨ।}}',
 'category-article-count' => '{{PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਇਹ ਸਫ਼ਾ ਹੈ|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ, ਕੁੱਲ $2 ਵਿਚੋਂ, ਇਹ {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ}} ਹਨ}}',
@@ -487,7 +488,7 @@ Note that some pages may continue to be displayed as if you were still logged in
 'nologin' => 'ਖਾਤਾ ਨਹੀਂ ਹੈ? $1।',
 'nologinlink' => 'ਖਾਤਾ ਬਣਾਓ',
 'createaccount' => 'ਖਾਤਾ ਬਣਾਓ',
-'gotaccount' => 'à¨\96ਾਤਾ à¨¹à©\88? $1।',
+'gotaccount' => 'à¨\95à©\80 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨¤à©\8cà¨\82 à¨\96ਾਤਾ à¨¹à©\88? $1',
 'gotaccountlink' => 'ਲਾਗ ਇਨ',
 'userlogin-resetlink' => 'ਆਪਣੀ ਲਾਗਇਨ ਜਾਣਕਾਰੀ ਭੁੱਲ ਗਏ ਹੋ?',
 'createaccountmail' => 'ਈਮੇਲ ਨਾਲ',
@@ -721,8 +722,8 @@ sysop}}|administrator]] ਨਾਲ਼ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ
 'templatesusedsection' => 'ਇਹ ਸ਼ੈਕਸ਼ਨ ਵਿੱਚ ਟੈਪਲੇਟ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:',
 'template-protected' => '(ਸੁਰੱਖਿਅਤ)',
 'template-semiprotected' => '(ਨੀਮ-ਸੁਰੱਖਿਅਤ)',
-'hiddencategories' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ {{PLURAL:$1|੧ à¨²à©\81à¨\95ਵà©\80à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰੀ|
-$1 à¨²à©\81à¨\95ਵà©\80à¨\86à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ}} ਦਾ ਮੈਂਬਰ ਹੈ:',
+'hiddencategories' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ {{PLURAL:$1|੧ à¨²à©\81à¨\95ਵà©\80à¨\82 à¨¸à¨¼à©\8dਰà©\87ਣੀ|
+$1 à¨²à©\81à¨\95ਵà©\80à¨\86à¨\82 à¨¸à¨¼à©\8dਰà©\87ਣੀਆਂ}} ਦਾ ਮੈਂਬਰ ਹੈ:',
 'nocreatetitle' => 'ਸਫ਼ਾ ਬਣਾਉਣ ਦੀ ਹੱਦ ਹੈ',
 'nocreatetext' => '{{SITENAME}} ਨੇ ਨਵੇਂ ਸਫ਼ੇ ਬਣਾਉਣ ਤੇ ਰੋਕ ਲਾਈ ਹੋਈ ਹੈ।
 ਤੁਸੀਂ ਵਾਪਸ ਜਾ ਕੇ ਮੌਜੂਦਾ ਸਫ਼ੇ ਸੋਧ ਸਕਦੇ ਹੋ ਜਾਂ [[Special:UserLogin|ਲਾਗਇਨ ਜਾਂ ਖਾਤਾ ਬਣਾ]] ਸਕਦੇ ਹੋ।',
@@ -876,7 +877,7 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'mergelogpagetext' => 'ਹੇਠਾਂ ਇੱਕ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਨੂੰ ਦੂਜੇ ਦੇ ਅਤੀਤ ਵਿਚ ਰਲ਼ਾਉਣ ਦੀ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਲਿਸਟ ਹੈ।',
 
 # Diffs
-'history-title' => '"$1" ਦੇ ਅਤੀਤ ਰੀਵਿਜ਼ਨ',
+'history-title' => '"$1" ਦੇ  ਸੁਧਾਰਾਂ ਦਾ ਅਤੀਤ',
 'difference-title' => '"$1" ਦੇ ਰੀਵਿਜ਼ਨਾਂ ਵਿਚ ਫ਼ਰਕ',
 'difference-title-multipage' => 'ਸਫ਼ਿਆਂ "$1" ਅਤੇ "$2" ਵਿਚ ਫ਼ਰਕ',
 'difference-multipage' => '(ਦੋ ਸਫ਼ਿਆਂ ਵਿਚਕਾਰ ਫ਼ਰਕ)',
@@ -918,7 +919,7 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'searchprofile-everything-tooltip' => 'ਸਭ ਚੀਜ਼ਾਂ ਖੋਜੋ (ਗੱਲਬਾਤ ਸਫ਼ਿਆਂ ਸਮੇਤ)',
 'searchprofile-advanced-tooltip' => 'ਆਪਣੇ ਬਣਾਏ ਨਾਮ-ਥਾਂਵਾਂ ਵਿਚ ਖੋਜੋ',
 'search-result-size' => '$1 ({{PLURAL:$2|੧ ਸ਼ਬਦ|$2 ਸ਼ਬਦ}})',
-'search-result-category-size' => '{{PLURAL:$1|੧ à¨®à©\88à¨\82ਬਰ|$1 à¨®à©\88à¨\82ਬਰ}} ({{PLURAL:$2|੧ à¨¸à¨¬-à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80|$2 à¨¸à¨¬-à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ}}, {{PLURAL:$3|੧ ਫ਼ਾਈਲ|$3 ਫ਼ਾਈਲਾਂ}})',
+'search-result-category-size' => '{{PLURAL:$1|੧ à¨®à©\88à¨\82ਬਰ|$1 à¨®à©\88à¨\82ਬਰ}} ({{PLURAL:$2|੧ à¨\89ਪ-ਸ਼à©\8dਰà©\87ਣà©\80|$2 à¨\89ਪ-ਸ਼à©\8dਰà©\87ਣੀਆਂ}}, {{PLURAL:$3|੧ ਫ਼ਾਈਲ|$3 ਫ਼ਾਈਲਾਂ}})',
 'search-redirect' => '($1 ਰੀ-ਡਿਰੈਕਟ)',
 'search-section' => '(ਭਾਗ $1)',
 'search-suggest' => 'ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ ਸੀ: $1',
@@ -1186,9 +1187,9 @@ to upload files.',
 'filename-tooshort' => 'ਫ਼ਾਈਲ ਬਹੁਤ ਛੋਟੀ ਹੈ।',
 'filetype-banned' => 'ਇਸ ਕਿਸਮ ਦੀ ਫ਼ਾਈਲ ਦੀ ਮਨਾਹੀ ਹੈ।',
 'illegal-filename' => 'ਇਸ ਫ਼ਾਈਲ-ਨਾਮ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
-'fileexists' => 'à¨\87ਹ à¨«à¨¾à¨\87ਲ à¨¨à¨¾à¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨¹à©\80 à¨®à©\8cà¨\9cà©\82ਦ à¨¹à©\88। à¨\9cà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨\87ਹ à¨¬à¨¦à¨²à¨£ à¨¬à¨¾à¨°à©\87 à¨\9cਾਣਦà©\87 ਨਹੀਂ ਹੋ ਤਾਂ  <strong>[[:$1]]</strong> ਵੇਖੋ ਜੀ। [[$1|thumb]]',
+'fileexists' => 'à¨\87ਹ à¨«à¨¾à¨\87ਲ à¨¨à¨¾à¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨¹à©\80 à¨®à©\8cà¨\9cà©\82ਦ à¨¹à©\88। à¨\9cà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨\87ਹ à¨¬à¨¦à¨²à¨£ à¨¬à¨¾à¨°à©\87 à¨¦à©\8dਰਿà©\9c ਨਹੀਂ ਹੋ ਤਾਂ  <strong>[[:$1]]</strong> ਵੇਖੋ ਜੀ। [[$1|thumb]]',
 'fileexists-extension' => 'ਇਸ ਨਾਂ ਨਾਲ ਰਲਦੀ ਫਾਇਲ ਮੌਜੂਦ ਹੈ: [[$2|thumb]]
-* ਅੱਪਲੋਡ ਕੀਤੀ ਫਾਇਲ ਦਾ ਨਾਂ: <strong>[[:$1]]</strong>
+* à¨\85ੱਪਲà©\8bਡ à¨\95à©\80ਤà©\80 à¨\9cਾà¨\82ਦà©\80 à¨«à¨¾à¨\87ਲ à¨¦à¨¾ à¨¨à¨¾à¨\82: <strong>[[:$1]]</strong>
 * ਮੌਜੂਦ ਫਾਇਲ ਦਾ ਨਾਂ: <strong>[[:$2]]</strong>
 ਇੱਕ ਵੱਖਰਾ ਨਾਂ ਚੁਣੋ ਜੀ',
 'file-exists-duplicate' => 'ਇਹ ਫ਼ਾਈਲ {{PLURAL:$1|ਇਸ ਫ਼ਾਈਲ|ਇਹਨਾਂ ਫ਼ਾਈਲਾਂ}} ਦੀ ਨਕਲ ਹੈ:',
@@ -1340,7 +1341,7 @@ to upload files.',
 'statistics-users-active-desc' => 'ਮੈਂਬਰ, ਜਿੰਨ੍ਹਾ ਨੇ ਆਖ਼ਰੀ {{PLURAL:$1|ਦਿਨ|$1 ਦਿਨਾਂ}} ਵਿਚ ਕੋਈ ਕੰਮ ਕੀਤਾ ਹੈ।',
 'statistics-mostpopular' => 'ਸਭ ਤੋਂ ਵੱਧ ਵੇਖੇ ਪੇਜ',
 
-'disambiguationspage' => 'ਗੁੰਝਲ ਖੋਲ੍ਹ',
+'disambiguationspage' => 'Template:disambig',
 
 'doubleredirects' => 'ਦੋਹਰੇ ਰੀਡਿਰੈਕਟ',
 
@@ -1550,7 +1551,7 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 'actionfailed' => 'ਕਾਰਵਾਈ ਨਾਕਾਮ',
 'deletedtext' => '"$1" ਮਿਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।
 ਤਾਜ਼ੀਆਂ ਮਿਟਾਉਣਾਂ ਦੇ ਰਿਕਾਰਡ ਲਈ $2 ਵੇਖੋ।',
-'dellogpage' => 'ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ',
+'dellogpage' => 'ਮਿਟਾਉਣ ਦਾ ਚਿੱਠਾ',
 'dellogpagetext' => 'ਹੇਠਾਂ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਮਿਟਾਉਣਾਂ ਦੀ ਲਿਸਟ ਹੈ।',
 'deletionlog' => 'ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ',
 'deletecomment' => 'ਕਾਰਨ:',
@@ -1660,7 +1661,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'sp-contributions-blocked-notice-anon' => 'ਇਹ IP ਪਤਾ ਇਸ ਵੇਲ਼ੇ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ।
 ਪਾਬੰਦੀ ਚਿੱਠੇ ਦਾ ਤਾਜ਼ਾ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:',
 'sp-contributions-search' => 'ਯੋਗਦਾਨ ਖੋਜੋ',
-'sp-contributions-username' => 'IP à¨ªà¨¤à¨¾ à¨\9cਾà¨\82 à¨¯à©\82à¨\9c਼ਰ ਨਾਮ:',
+'sp-contributions-username' => 'IP à¨ªà¨¤à¨¾ à¨\9cਾà¨\82 à¨µà¨°à¨¤à©\8cà¨\82à¨\95ਾਰ ਨਾਮ:',
 'sp-contributions-toponly' => 'ਸਿਰਫ਼ ਉਹੀ ਸੋਧਾਂ ਵਖਾਓ ਜੋ ਸਭ ਤੋਂ ਨਵੀਂਆਂ ਹਨ',
 'sp-contributions-submit' => 'ਖੋਜੋ',
 
@@ -1670,7 +1671,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'whatlinkshere-page' => 'ਸਫਾ:',
 'linkshere' => "ਇਹ ਸਫ਼ੇ '''[[:$1]]''' ਨਾਲ਼ ਜੋੜਦੇ ਹਨ:",
 'nolinkshere' => "ਕੋਈ ਵੀ ਸਫ਼ਾ '''[[:$1]]''' ਨਾਲ਼ ਨਹੀਂ ਜੋੜਦਾ।",
-'isredirect' => 'ਰà©\80ਡਿਰà©\88à¨\95à¨\9f ਸਫ਼ਾ',
+'isredirect' => 'ਮà©\8bà©\9cਵਾà¨\82 ਸਫ਼ਾ',
 'istemplate' => 'ਟਾਕਰਾ ਕਰੋ',
 'isimage' => 'ਫ਼ਾਈਲ ਦਾ ਲਿੰਕ',
 'whatlinkshere-prev' => '{{PLURAL:$1|ਪਿਛਲਾ|ਪਿਛਲੇ $1}}',
@@ -1893,7 +1894,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 
 # Info page
 'pageinfo-header-edits' => 'ਸੋਧਾਂ ਦਾ ਅਤੀਤ',
-'pageinfo-watchers' => 'ਸਫ਼à©\87 â\80\99ਤà©\87 à¨¨à¨\9c਼ਰ à¨°à©±à¨\96ਣ à¨µà¨¾à¨²à¨¼à©\87',
+'pageinfo-watchers' => 'ਸਫ਼à©\87 â\80\99ਤà©\87 à¨¨à¨\9c਼ਰ à¨°à©±à¨\96ਣ à¨µà¨¾à¨²à¨¿à¨\86à¨\82 à¨¦à©\80 à¨\97ਿਣਤà©\80',
 'pageinfo-edits' => 'ਕੁੱਲ ਸੋਧਾਂ',
 
 # Skin names
index 5c454f2..10f3892 100644 (file)
@@ -3120,7 +3120,7 @@ Najprawdopodobniej zostało to spowodowane przez link do zewnętrznej strony int
 'pageinfo-authors' => 'Całkowita liczba autorów',
 'pageinfo-recent-edits' => 'Liczba ostatnich edycji (w przeciągu $1)',
 'pageinfo-recent-authors' => 'Liczba ostatnich autorów',
-'pageinfo-restriction' => 'Zabezpieczenie strony (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Zabezpieczenie strony ({{lcfirst:$1}})',
 'pageinfo-magic-words' => 'Magiczne {{PLURAL:$1|słowo|słowa|słowa}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Ukryta kategoria|Ukryte kategorie|Ukryte kategorie}} ($1)',
 'pageinfo-templates' => 'Transkludowan{{PLURAL:$1|y szablon|e szablony}} ($1)',
index c745ab9..4d61647 100644 (file)
@@ -2803,13 +2803,13 @@ A lassa gionté na spiegassion ant ël resumé.",
 
 # Spam protection
 'spamprotectiontitle' => 'Filtror dla rumenta',
-'spamprotectiontext' => "La pàgina che a vorìa salvé a l'é staita blocà dal filtror dla rumenta.
+'spamprotectiontext' => "Ël test che a vorìa salvé a l'é stàit blocà dal filtror dla rumenta.
 Sòn a l'é motobin belfé che a sia rivà përchè a-i era n'anliura a un sit estern ëd coj blocà.",
 'spamprotectionmatch' => "Cost-sì a l'é ël test che a l'é restà ciapà andrinta al filtror dla rumenta: $1",
 'spambot_username' => 'MediaWiki - trigomiro che a-j dà deuit a la rumenta',
-'spam_reverting' => "Buta andaré a l'ùltima version che a l'avèissa pa andrinta dj'anliure a $1",
-'spam_blanking' => "Pàgina dësveujdà, che tute le version a l'avìo andrinta dj'anliure a $1",
-'spam_deleting' => 'Tute le revision a contnisìo dle liure a $1, scancelament',
+'spam_reverting' => "Butà andaré a l'ùltima version che a l'avèissa pa andrinta dj'anliure a $1",
+'spam_blanking' => "Pàgina dësvujdà, che tute le version a l'avìo andrinta dj'anliure a $1",
+'spam_deleting' => 'Scancelà, dagià che tute le revision a contnisìo dle liure a $1',
 
 # Info page
 'pageinfo-title' => 'Anformassion për "$1"',
@@ -2837,7 +2837,7 @@ Sòn a l'é motobin belfé che a sia rivà përchè a-i era n'anliura a un sit e
 'pageinfo-authors' => "Nùmer d'autor diferent",
 'pageinfo-recent-edits' => "Nùmer ëd modìfiche recente (ant j'ùltim $1)",
 'pageinfo-recent-authors' => "Nùmer d'autor diferent recent",
-'pageinfo-restriction' => 'Protession ëd la pàgina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protession ëd la pàgina ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Paròla màgica|Paròle màgiche}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categorìa|Categorìe}} stërmà ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|stamp contnù|stamp contnù}} ($1)',
index 32e3f51..d49080b 100644 (file)
@@ -417,6 +417,8 @@ $1',
 'youhavenewmessages' => 'تاسې $1 لری  ($2).',
 'newmessageslink' => 'نوي پيغامونه',
 'newmessagesdifflink' => 'وروستی بدلون',
+'newmessageslinkplural' => '{{PLURAL:$1|يو نوی پيغام|نوي پيغامونه}}',
+'newmessagesdifflinkplural' => 'وروستي {{PLURAL:$1|بدلون|بدلونونه}}',
 'youhavenewmessagesmulti' => 'تاسې په $1 کې نوي پېغامونه لرۍ',
 'editsection' => 'سمول',
 'editold' => 'سمول',
@@ -736,11 +738,10 @@ $1',
 'userpage-userdoesnotexist-view' => 'د "$1" ګڼون نه دی ثبت شوی.',
 'blocked-notice-logextract' => 'دم مهال په دې کارن بنديز لګېدلی.
 دلته لاندې د بنديز تازه يادښت د سرچينې په توګه ورکړ شوی:',
-'clearyourcache' => "'''يادونه:''' د غوره توبونو د خوندي کولو وروسته، ددې لپاره چې تاسو خپل سر ته رسولي ونجونه وګورۍ نو پکار ده چې د خپل بروزر ساتل شوې حافظه تازه کړی. 
-* '''Ù\85Ù\88زÛ\90Ù\84ا/ Ù\81اÙ\8aرÙ\81اکس/ Ø³Ù\81رÙ\8a:''' Ù¾Ù\87 Ø¯Û\90 Ú©ØªÙ\86Ù\85Ù\84 Ú©Û\90 Ø¯ ''Reload'' Ø¯ Ù¼Ú©Ù\88Ù\87Ù\84Ù\88 Ù¾Ù\87 Ù\88خت Ø¯ ''Shift'' ØªÚ¼Û\8d Ù\86Ù\8aÙ\88Ù\84Û\90 Ù\88ساتÛ\8cØ\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 ''Ctrl-F5'' Ù\8aا ''Ctrl-R'' تڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ''⌘-R'' کېښکاږۍ)
+'clearyourcache' => "'''يادښت:''' د غوره توبونو د خوندي کولو وروسته، خپل د کتنمل (بروزر) ساتل شوې حافظه تازه کړی.
+* '''Ù\81اÙ\8aرÙ\81اکس/ Ø³Ù\81رÙ\8a:''' Ù¾Ù\87 Ø¯Û\90 Ú©ØªÙ\86Ù\85Ù\84 Ú©Û\90 Ø¯ ''Reload'' Ø¯ Ù¼Ú©Ù\88Ù\87Ù\84Ù\88 Ù¾Ù\87 Ù\88خت Ø¯ ''Shift'' ØªÚ¼Û\8d Ù\86Ù\8aÙ\88Ù\84Û\90 Ù\88ساتÛ\8cØ\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 ''Ctrl-F5'' Ù\8aا ''Ctrl-R''تڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ''⌘-R'' کېښکاږۍ)
 * '''ګووګل کروم:''' په دې کتنمل کې د ''Ctrl-Shift-R'' تڼۍ کېښکاږۍ (د مک لپاره ''⌘-Shift-R'')
 * '''انټرنټ اېکسپلورر:''' په دې کتنمل کې د ''Refresh'' د ټکوهلو په وخت کې د ''Ctrl'' تڼۍ کېښکاږلې ونيسۍ، او يا هم د ''Ctrl-F5'' تڼۍ کېښکاږۍ
-* '''کانکوېرور:''' په دې کتنمل کې د يواځې د ''Reload'' تڼۍ ټکوهۍ، او يا ''F5'' کېښکاږۍ
 * '''اوپرا''': په دې کتنمل کې د خپل براوزر ساتل شوې حافظه پدې توګه سپينولی شی ''Tools→Preferences''",
 'usercsspreview' => "'''هېر مو نشي چې دا يوازې ستاسې د کارن CSS مخليدنه ده.'''
 '''تر اوسه پورې لا ستاسې بدلونونه نه دي خوندي شوي!'''",
@@ -1008,6 +1009,7 @@ $1',
 'resultsperpage' => 'په هر مخ کې د پايلو شمېر:',
 'stub-threshold-disabled' => 'ناچارن',
 'recentchangesdays' => 'د هغو ورځو شمېر وټاکی چې په وروستي بدلونو کې يې ليدل غواړی:',
+'recentchangesdays-max' => 'حد اکثر $1 {{PLURAL:$1|ورځ|ورځې}}',
 'recentchangescount' => 'د هغو سمونو شمېر چې په تلواليزه بڼه ښکاره بايد شي:',
 'prefs-help-recentchangescount' => 'پدې کې د وروستني بدلونونو، د مخونو د پېښليکونو او يادښتونه شامل دي.',
 'savedprefs' => 'ستاسو غوره توبونه خوندي شوه.',
@@ -1266,6 +1268,7 @@ $1',
 که تاسې بيا هم د خپلې دوتنې پورته کول غواړۍ، نو لطفاً بېرته وګرځۍ او همدغه دوتنه بيا په يوه نوي نوم پورته کړی.
 [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'همدا دوتنه د {{PLURAL:$1|لاندينۍ دوتنې|لاندينيو دوتنو}} غبرګه لمېسه ده:',
+'uploadwarning' => 'د پورته کولو ګواښ',
 'savefile' => 'دوتنه خوندي کړه',
 'uploadedimage' => '"[[$1]]" پورته شوه',
 'uploaddisabled' => 'پورته کول ناچارن شوي',
@@ -1280,6 +1283,7 @@ $1',
 'watchthisupload' => 'همدا دوتنه کتل',
 'upload-success-subj' => 'دوتنه پورته کېدل په برياليتوب سره ترسره شو',
 'upload-failure-subj' => 'د پورته کېدو ستونزه',
+'upload-warning-subj' => 'د پورته کولو ګواښ',
 
 'upload-file-error' => 'کورنۍ ستونزه',
 'upload-unknown-size' => 'ناڅرګنده کچه',
@@ -1508,6 +1512,7 @@ $1',
 'allpagesprefix' => 'هغه مخونه ښکاره کړه چې مختاړی يې وي:',
 'allpagesbadtitle' => 'ورکړ شوی سرليک سم نه دی او يا هم د ژبو او يا د بېلابېلو ويکي ګانو مختاړی لري. ستاسو په سرليک کې يو يا څو داسې ابېڅې دي کوم چې په سرليک کې نه شي کارېدلی.',
 'allpages-bad-ns' => '{{SITENAME}} د "$1" په نامه هېڅ کوم نوم-تشيال نه لري.',
+'allpages-hide-redirects' => 'مخ ګرځونې پټول',
 
 # Special:Categories
 'categories' => 'وېشنيزې',
@@ -1540,6 +1545,7 @@ $1',
 'activeusers' => 'د فعالو کارنانو لړليک',
 'activeusers-count' => 'په {{PLURAL:$2|تېرې|تېرو}} {{PLURAL:$3|ورځ|$3 ورځو}} کې $1 {{PLURAL:$1|سمون|سمونونه}}',
 'activeusers-from' => 'هغه کارنان کتل چې نومونه يې پېلېږي په:',
+'activeusers-hidebots' => 'روباټونه پټول',
 'activeusers-hidesysops' => 'پازوالان پټول',
 'activeusers-noresult' => 'کارن و نه موندل شو.',
 
@@ -1565,6 +1571,8 @@ $1',
 # E-mail user
 'mailnologin' => 'هېڅ کومه لېږل شوې پته نشته',
 'emailuser' => 'کارن ته برېښليک لېږل',
+'emailuser-title-target' => 'دې {{GENDER:$1|کارن}} ته برېښليک لېږل',
+'emailuser-title-notarget' => 'کارن ته برېښليک لېږل',
 'emailpage' => 'کارن ته برېښليک لېږل',
 'defemailsubject' => 'د "$1" کارن لخوا د {{SITENAME}} برېښليک',
 'usermaildisabled' => 'د کارن برېښليک ناچارند دی',
@@ -2066,10 +2074,10 @@ $UNWATCHURL  نه ليدنه وکړۍ
 
 # Info page
 'pageinfo-title' => 'د "$1" مالومات',
-'pageinfo-header-edits' => 'سÙ\85Ù\88Ù\86Ù\88Ù\86Ù\87',
+'pageinfo-header-edits' => 'د Ø³Ù\85Ù\88Ù\86 Ù¾Û\90Ú\9aÙ\84Ù\8aÚ©',
 'pageinfo-views' => 'د کتنو شمېر',
-'pageinfo-watchers' => 'د کتونکو شمېر',
-'pageinfo-edits' => 'د سمونونو شمېر',
+'pageinfo-watchers' => 'د مخ د کتونکو شمېر',
+'pageinfo-edits' => 'د ټولو سمونونو شمېر',
 
 # Skin names
 'skinname-standard' => 'کلاسيک',
@@ -2080,6 +2088,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'skinname-chick' => 'شيک',
 'skinname-simple' => 'ساده',
 'skinname-modern' => 'نوی',
+'skinname-vector' => 'وېکټور',
 
 # Patrolling
 'markaspatrolledtext' => 'دا مخ څارل شوی په نخښه کول',
@@ -2366,6 +2375,11 @@ $5
 'confirm-watch-button' => 'ښه',
 'confirm-unwatch-button' => 'ښه',
 
+# Separators for various lists, etc.
+'percent' => '$1%',
+'parentheses' => '($1)',
+'brackets' => '[$1]',
+
 # Multipage image navigation
 'imgmultipageprev' => '← پخوانی مخ',
 'imgmultipagenext' => 'راتلونکی مخ →',
@@ -2390,6 +2404,17 @@ $5
 'autoredircomment' => '[[$1]] ته وګرځولی شو',
 'autosumm-new' => 'د "$1" تورو مخ جوړ شو',
 
+# Size units
+'size-bytes' => '$1 بايټ',
+'size-kilobytes' => '$1 کيلوبايټ',
+'size-megabytes' => '$1 مېګابايټ',
+'size-gigabytes' => '$1 ګېګابايټ',
+'size-terabytes' => '$1 ټېرابايټ',
+'size-petabytes' => '$1 پېبي بايټ',
+'size-exabytes' => '$1 اېکسبي بايټ',
+'size-zetabytes' => '$1 زېبي بايټ',
+'size-yottabytes' => '$1 يوبي بايټ',
+
 # Live preview
 'livepreview-loading' => 'برسېرېدنې کې دی...',
 'livepreview-ready' => 'برسېرېدنه ... چمتو ده!',
@@ -2427,6 +2452,28 @@ $5
 'iranian-calendar-m11' => 'سلواغه',
 'iranian-calendar-m12' => 'کب',
 
+# Hijri month names
+'hijri-calendar-m1' => 'محرم',
+'hijri-calendar-m2' => 'صفر',
+'hijri-calendar-m3' => 'ربيع الاول',
+'hijri-calendar-m4' => 'ربيع الثاني',
+'hijri-calendar-m5' => 'جمادى الاولى',
+'hijri-calendar-m6' => 'جمادى الثانية',
+'hijri-calendar-m7' => 'رجب',
+'hijri-calendar-m8' => 'شعبان',
+'hijri-calendar-m9' => 'رمضان',
+'hijri-calendar-m10' => 'شوال',
+'hijri-calendar-m11' => 'ذو القعدة',
+'hijri-calendar-m12' => 'ذو الحجة',
+
+# Hebrew month names
+'hebrew-calendar-m1' => 'تيشري',
+'hebrew-calendar-m2' => 'حشوان',
+'hebrew-calendar-m3' => 'كيسليف',
+'hebrew-calendar-m4' => 'تيفيت',
+'hebrew-calendar-m5' => 'شيفات',
+'hebrew-calendar-m6' => 'آدار',
+
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|خبرې اترې]])',
 
index 3c0cb81..4e4f9e6 100644 (file)
@@ -26,6 +26,7 @@
  * @author Brest
  * @author BrokenArrow
  * @author Byrial
+ * @author BáthoryPéter
  * @author Claudia Hattitten
  * @author Codex Sinaiticus
  * @author Crt
@@ -544,7 +545,7 @@ Do '''not''' replace SITENAME with a translation of Wikipedia or some encycopedi
 Appears in subtitle
 * $1 is a link to the page (HTML)',
 'retrievedfrom' => 'Message which appears in the source of every page, but it is hidden. It is shown when printing. $1 is a link back to the current page: {{FULLURL:{{FULLPAGENAME}}}}.',
-'youhavenewmessages' => 'The blue message appearing when someone edited your user talk page.
+'youhavenewmessages' => 'The yellow message appearing when someone edited your user talk page.
 The format is: "{{int:youhavenewmessages| [[MediaWiki:Newmessageslink/{{SUBPAGENAME}}|{{int:newmessageslink}}]] |[[MediaWiki:Newmessagesdifflink/{{SUBPAGENAME}}|{{int:newmessagesdifflink}}]]}}"',
 'newmessageslink' => 'This is the first link displayed in an orange rectangle when a user gets a message on his talk page. Used in message {{msg-mw|youhavenewmessages}} (as parameter $1).
 
@@ -3489,7 +3490,7 @@ See also {{msg-mw|Anonuser}} and {{msg-mw|Siteusers}}.',
 'pageinfo-recent-edits' => 'The number of times the page has been edited recently. $1 is a localised duration (e.g. 9 days).',
 'pageinfo-recent-authors' => 'The number of users who have edited the page recently.',
 'pageinfo-restriction' => 'Parameters:
-* $1 is the type of page protection (message restriction-$type, preferably in lowercase). If your language doesn\'t have small and capital letters, you can simply write <nowiki><code>$1</code></nowiki>.',
+* $1 is the type of page protection (message restriction-$type, preferably in lowercase). If your language doesn\'t have small and capital letters, you can simply write <nowiki>$1</nowiki>.',
 'pageinfo-magic-words' => 'The list of magic words on the page. Parameters:
 * $1 is the number of magic words on the page.',
 'pageinfo-hidden-categories' => 'The list of hidden categories on the page. Parameters:
index beed6e8..cb83464 100644 (file)
@@ -3111,7 +3111,7 @@ Permite adăugarea unui motiv în descrierea modificărilor',
 'pageinfo-authors' => 'Număr total de autori distincți',
 'pageinfo-recent-edits' => 'Număr de modificări recente (în ultima perioadă de $1)',
 'pageinfo-recent-authors' => 'Număr de autori distincți recenți',
-'pageinfo-restriction' => 'Protecție pagină (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protecție pagină ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Cuvânt magic|Cuvinte magice}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categorie ascunsă|Categorii ascunse}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Format inclus|Formate incluse}} ($1)',
index be9b03d..39ede3e 100644 (file)
@@ -3225,7 +3225,7 @@ The wiki server can't provide data in a format your client can read.",
 'pageinfo-authors' => 'Общее число различных авторов',
 'pageinfo-recent-edits' => 'Правок за последнее время (в течение $1)',
 'pageinfo-recent-authors' => 'Уникальных авторов за последнее время',
-'pageinfo-restriction' => 'Защита страницы (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Защита страницы ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Магическое слово|Магические слова}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Скрытая категория|Скрытых категорий}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Шаблон|Шаблонов}} ($1)',
index 8ffb44f..6e42444 100644 (file)
@@ -2991,7 +2991,7 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'pageinfo-authors' => 'प्रत्येककर्तॄणां समग्रा सङ्ख्या ।',
 'pageinfo-recent-edits' => 'सद्योजातसम्पादनानां सङ्ख्या (गतेषु $1 दिनेषु)',
 'pageinfo-recent-authors' => 'प्रत्येककर्तॄणां सद्यःकालीना सङ्ख्या ।',
-'pageinfo-restriction' => 'पृष्ठसंरक्षणम्  (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'पृष्ठसंरक्षणम्  ({{lcfirst:$1}})',
 'pageinfo-magic-words' => 'मान्त्रिक{{PLURAL:$1|शब्दः|शब्दाः}} ($1)',
 'pageinfo-hidden-categories' => 'गोपित{{PLURAL:$1|वर्गः|वर्गाः}} ($1)',
 'pageinfo-templates' => 'समायोजित{{PLURAL:$1|फलकम्|फलकानि}} ($1)',
index 7f173aa..3cdaa67 100644 (file)
@@ -449,6 +449,7 @@ $1',
 'newmessageslink' => 'nova sporočila',
 'newmessagesdifflink' => 'zadnja sprememba',
 'newmessageslinkplural' => '{{PLURAL:$1|novo sporočilo|nova sporočila}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|zadnja sprememba|zadnji spremembi|zadnje spremembe}}',
 'youhavenewmessagesmulti' => 'Na $1 imate novo sporočilo',
 'editsection' => 'uredi',
 'editold' => 'spremeni',
@@ -501,11 +502,11 @@ Seznam vseh prepoznanih posebnih strani je na razpolago na strani [[Special:Spec
 'error' => 'Napaka',
 'databaseerror' => 'Napaka zbirke podatkov',
 'dberrortext' => 'Prišlo je do napake podatkovne zbirke.
-Vzrok bi lahko bil nesprejemljiv iskalni niz ali programski hrošč.
-Zadnje poskušano iskanje:
-<blockquote><tt>$1</tt></blockquote>
-znotraj funkcije »<tt>$2</tt>«.
-Podatkovna zbirka je vrnila napako »<tt>$3: $4</tt>«.',
+Vzrok je lahko programski hrošč v programju.
+Zadnja poskušana poizvedba po zbirki podatkov:
+<blockquote><code>$1</code></blockquote>
+znotraj funkcije »<code>$2</code>«.
+Zbirka podatkov je vrnila napako »<samp>$3: $4</samp>«.',
 'dberrortextcl' => 'Pri iskanju v podatkoovni zbirki je prišlo do skladenjske napake.
 Zadnje iskanje v zbirki podatkov:
 »$1«
@@ -865,7 +866,6 @@ Najnovejši vnos v dnevniku blokad je prikazan spodaj:',
 * '''Firefox/Safari:''' Držite ''Shift'' in kliknite ''Ponovno naloži'' (''Reload'') ali pritisnite ''Ctrl-Shift-R'' ali ''Ctrl-R'' (''⌘-R'' na sistemu Mac)
 * '''Internet Explorer:''' Držite ''Ctrl-F5'' in kliknite ''Osveži'' (''Refresh'') ali pritisnite ''Ctrl-F5''
 * '''Google Chrome:''' Pritisnite ''Ctrl-Shift-R'' (''⌘-Shift-R'' na sistemu Mac)
-* '''Konqueror:''' Kliknite ''Ponovno naloži'' (''Reload'') ali pritisnite ''F5''.
 * '''Opera:''' Počistite predpomnilnik v ''Tools → Preferences''",
 'usercssyoucanpreview' => "'''Nasvet:''' Za preizkušanje svojega novega CSS pred shranjevanjem uporabite gumb »{{int:showpreview}}«.",
 'userjsyoucanpreview' => "'''Nasvet:''' Za preizkušanje svojega novega JavaScripta pred shranjevanjem uporabite gumb »{{int:showpreview}}«.",
@@ -1885,6 +1885,7 @@ Morda želite urediti njeno opisno stran na tamkajšnji [$2 opisni strani datote
 'shared-repo-from' => 'iz $1',
 'shared-repo' => 'skupno skladišče',
 'shared-repo-name-wikimediacommons' => 'Wikimedijina Zbirka',
+'upload-disallowed-here' => 'Slike žal ne morete prepisati.',
 
 # File reversion
 'filerevert' => 'Vrni $1',
@@ -2970,11 +2971,20 @@ Omogoča vnos pojasnila v povzetku urejanja.',
 
 # Info page
 'pageinfo-title' => 'Informacije o »$1«',
-'pageinfo-header-edits' => 'Urejanja',
+'pageinfo-header-basic' => 'Osnovni podatki',
+'pageinfo-header-edits' => 'Zgodovina urejanja',
+'pageinfo-header-restrictions' => 'Zaščita strani',
+'pageinfo-header-properties' => 'Lastnosti strani',
 'pageinfo-views' => 'Število ogledov',
-'pageinfo-watchers' => 'Število spremljevalcev',
-'pageinfo-edits' => 'Število urejanj',
-'pageinfo-authors' => 'Število različnih avtorjev',
+'pageinfo-watchers' => 'Število spremljevalcev strani',
+'pageinfo-redirects-name' => 'Preusmeritve na stran',
+'pageinfo-subpages-name' => 'Podstrani strani',
+'pageinfo-firstuser' => 'Ustvarjalec strani',
+'pageinfo-firsttime' => 'Datum ustvarjanja strani',
+'pageinfo-lastuser' => 'Zadnji urejevalec',
+'pageinfo-lasttime' => 'Datum zadnjega urejanja',
+'pageinfo-edits' => 'Skupno število urejanj',
+'pageinfo-authors' => 'Skupno število različnih avtorjev',
 
 # Patrolling
 'markaspatrolleddiff' => 'Označite kot nadzorovano',
@@ -3019,6 +3029,7 @@ Z njenim zagonom lahko ogrozite vaš sistem.",
 'file-info-size-pages' => '$1 × $2 točk, velikost datoteke: $3, vrsta MIME: $4, $5 {{PLURAL:$5|stran|strani}}',
 'file-nohires' => 'Slika višje ločljivosti ni na voljo.',
 'svg-long-desc' => 'datoteka SVG, v izvirniku $1 × $2 slikovnih točk, velikost datoteke: $3',
+'svg-long-desc-animated' => 'animirana datoteka SVG, v izvirniku $1 × $2 slikovnih točk, velikost datoteke: $3',
 'show-big-image' => 'Slika v višji ločljivosti',
 'show-big-image-preview' => 'Velikost predogleda: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Druga resolucija|Drugi resoluciji|Druge resolucije}}: $1.',
index cc1894a..218d486 100644 (file)
@@ -3288,7 +3288,7 @@ $1',
 'pageinfo-authors' => 'Број засебних аутора',
 'pageinfo-recent-edits' => 'Број скорашњих измена (у последњих $1)',
 'pageinfo-recent-authors' => 'Број скорашњих засебних аутора',
-'pageinfo-restriction' => 'Заштита странице (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Заштита странице ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Магична реч|Магичне речи}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Сакривена категорија|Сакривене категорије}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Укључени шаблон|Укључени шаблони}} ($1)',
index 93234fa..c72f225 100644 (file)
@@ -3197,7 +3197,7 @@ Ovo je verovatno izazvano vezom do spoljašnjeg sajta koji se nalazi na crnoj li
 'pageinfo-authors' => 'Broj zasebnih autora',
 'pageinfo-recent-edits' => 'Broj skorašnjih izmena (u poslednjih $1)',
 'pageinfo-recent-authors' => 'Broj skorašnjih zasebnih autora',
-'pageinfo-restriction' => 'Zaštita stranice (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Zaštita stranice ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magična reč|Magične reči}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Uključeni šablon|Uključeni šabloni}} ($1)',
index 9635ba4..3121468 100644 (file)
@@ -3130,7 +3130,7 @@ Detta orsakades troligen av en länk till en svartlistad webbplats.',
 'pageinfo-authors' => 'Totalt antal olika författare',
 'pageinfo-recent-edits' => 'Antal nyliga redigeringar (inom de senaste $1)',
 'pageinfo-recent-authors' => 'Antal nyliga olika författare',
-'pageinfo-restriction' => 'Sidskydd (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Sidskydd ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magiskt|Magiska}} ord ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Dold kategori|Dolda kategorier}} ($1)',
 
index 8b704d3..e8e584b 100644 (file)
@@ -1260,7 +1260,7 @@ $1",
 'group-autoconfirmed-member' => '{{GENDER:$1|தானாக உறுதிசெய்யப்பட்ட பயனர்}}',
 'group-bot-member' => '{{GENDER:$1|தானியங்கி}}',
 'group-sysop-member' => '{{GENDER:$1|நிர்வாகி}}',
-'group-bureaucrat-member' => '{{GENDER:$1|பà®\9fிபà¯\8dபாளரà¯\8dகள்}}',
+'group-bureaucrat-member' => '{{GENDER:$1|à®\85திà®\95ாரிகள்}}',
 'group-suppress-member' => '{{GENDER:$1|மேற்பார்வை}}',
 
 'grouppage-user' => '{{ns:project}}:பயனர்கள்',
index eea0dee..fd02a3c 100644 (file)
@@ -3013,7 +3013,7 @@ Maaaring dahil ito sa isang kawing sa isang nakatalang hinarang dahil di-kinaisn
 'pageinfo-authors' => 'Kabuuang bilang ng magkakabukod na mga may-akda',
 'pageinfo-recent-edits' => 'Kamakailang bilang ng mga pamamatnugot (sa loob ng huling $1)',
 'pageinfo-recent-authors' => 'Kamakailang bilang ng magkakabukod na mga may-akda',
-'pageinfo-restriction' => 'Pruteksiyon ng pahina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Pruteksiyon ng pahina ({{lcfirst:$1}})',
 'pageinfo-magic-words' => '{{PLURAL:$1|Salita|Mga salita}}ng mahiwaga ($1)',
 'pageinfo-hidden-categories' => 'Nakatagong {{PLURAL:$1|kategorya|mga kategorya}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Suleras|Mga suleras}} ($1) na nasa transklusyon (kasama sa maraming mga lugar)',
index 05b2808..0e69ce0 100644 (file)
@@ -246,6 +246,7 @@ $messages = array(
 'listingcontinuesabbrev' => '(дәвом)',
 'index-category' => 'Индекс быә сәһифон.',
 'noindex-category' => 'Индекс нибыә саһифон',
+'broken-file-category' => 'Сәһифон де ко ныкардә фајлинә сәбонон',
 
 'about' => 'Тәсвир',
 'article' => 'Мәғолә',
@@ -360,7 +361,7 @@ $messages = array(
 'privacy' => 'Мәхфијәти сијосәт',
 'privacypage' => 'Project:Мәхфијәти сијосәт',
 
-'badaccess' => 'Ð\98ҹазÓ\99 Ñ\85Ó\99Ñ\82а.',
+'badaccess' => 'Ð\94аÑ\81Ñ\82Ñ\80Ó\99Ñ\81и Ò\93Ó\99лÓ\99Ñ\82',
 'badaccess-group0' => 'Ын фәалијјәти ичра карде әзынишон.',
 
 'ok' => 'OK',
@@ -405,10 +406,10 @@ $messages = array(
 Хаһиш кардәмон че сәһифә URL-и бә [[Special:ListUsers/sysop|администратори]] бывғандәнән.',
 'missingarticle-rev' => '(рәвојәт#: $1)',
 'missingarticle-diff' => '(Фәрг: $1, $2)',
-'internalerror' => 'Дахили хәта',
-'internalerror_info' => 'Дахили хәта: $1',
-'fileappenderrorread' => 'Ó\98лавон Ð³ејд карде быәдә"$1" һанде ныбе.',
-'formerror' => 'Ð¥Ó\99Ñ\82а: Ð§Ðµ Ñ\84оÑ\80мÓ\99 Ð¼Ó\99лÑ\83моÑ\82он Ó\99кÑ\81 ÐºÐ°Ñ\80де Ò\93еÑ\80Ñ\80и Ð¼Ñ\83мкуне.',
+'internalerror' => 'Дыләтонә ғәләт',
+'internalerror_info' => 'Дыләтонә ғәләт: $1',
+'fileappenderrorread' => 'Ó\98ловон Ò\93ејд карде быәдә"$1" һанде ныбе.',
+'formerror' => 'СÓ\99һв: Ð§Ðµ Ñ\84оÑ\80мÓ\99 Ð¼Ó\99лÑ\83моÑ\82он Ó\99кÑ\81 ÐºÐ°Ñ\80де Ò\93еÑ\80Ñ\80и Ð¼Ñ\8bмкуне.',
 'cannotdelete-title' => 'Сәһифә әбыни рәдд кардеј "$1"',
 'badtitle' => 'Роныдоә ном',
 'badtitletext' => 'Ахтар кардә быә сәһифә ном сәһве, тәјлије, јаанки сәрост доә быәнин мијонзывонон ја мијонвики номон.
@@ -605,7 +606,7 @@ $messages = array(
 'powersearch-toggleall' => 'Һәммәј',
 
 # Preferences page
-'preferences' => 'ЧиÑ\87Ñ\81Ó\99 Ð¿ÐµÑ\87Ñ\8bниÑ\98е',
+'preferences' => 'Ð\9aÑ\83кон',
 'mypreferences' => 'Кукон',
 'prefsnologin' => 'Ыштәни едаштәнијоне',
 'prefsnologintext' => 'Шымә бәбе <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} ыштәни едәштән]</span> бо иштирокәкә пеғәндон дәгиш кардеј.',
@@ -614,7 +615,9 @@ $messages = array(
 'prefs-user-pages' => 'Иштирокәкә сәһифон',
 'prefs-rc' => 'Ән нујә дәгишон',
 'prefs-changeemail' => 'Е-номә дәгиш кардеј',
+'prefs-email' => 'Е-номә кукон',
 'saveprefs' => 'Огәтеј',
+'rows' => 'Сәтырон:',
 'searchresultshead' => 'Нәве',
 'timezoneregion-america' => 'Америка',
 'timezoneregion-europe' => 'Авропа',
@@ -713,6 +716,10 @@ $messages = array(
 'sharedupload-desc-here' => 'Ым фајл чыјо пегәтә быә $1 ијән бәзыне истифодә бе бә ҹо нәхшонәдә.
 Мәлумот чн әчәј [$2 тәсвири сәһифәку] бә жиј доә быә.',
 
+# File deletion
+'filedelete-comment' => 'Сәбәб:',
+'filedelete-submit' => 'Рәдд кардеј',
+
 # Random page
 'randompage' => 'Рајрастә мәғолә',
 
@@ -920,7 +927,7 @@ $messages = array(
 'tooltip-summary' => 'Кыртә тәсвир бынывыштән',
 
 # Info page
-'pageinfo-header-edits' => 'СÓ\99Ñ\80оÑ\81Ñ\82 ÐºÐ°Ñ\80деÑ\98',
+'pageinfo-header-edits' => 'Ð\94Ó\99гиÑ\88 ÐºÐ°Ñ\80дÓ\99 Ð±Ñ\8bÓ\99 Ñ\87иÑ\98он Ñ\82аÑ\80Ñ\8bÑ\85',
 
 # Browsing diffs
 'previousdiff' => '← Навынәни дәгиши',
index 632f2fa..aee7b07 100644 (file)
@@ -3102,7 +3102,7 @@ Lưu nó vào máy tính của bạn rồi tải nó lên đây.',
 'pageinfo-authors' => 'Tổng số tác giả riêng',
 'pageinfo-recent-edits' => 'Số lần sửa đổi gần đây (trong $1 qua)',
 'pageinfo-recent-authors' => 'Số người dùng sửa đổi gần đây',
-'pageinfo-restriction' => 'Mức khóa trang (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Mức khóa trang ({{lcfirst:$1}})',
 'pageinfo-magic-words' => 'Từ thần chú ($1)',
 'pageinfo-hidden-categories' => 'Thể loại ẩn ($1)',
 'pageinfo-templates' => 'Bản mẫu được nhúng ($1)',
index 0f1744c..715298d 100644 (file)
@@ -2856,7 +2856,7 @@ $1',
 'pageinfo-authors' => 'סה"כ צאָל באַזונדערע שרײַבער',
 'pageinfo-recent-edits' => 'לעצטיקע צאל רעדאקטירונגען (במשך די לעצטע $1)',
 'pageinfo-recent-authors' => 'לעצטיקע צאָל באַזונדערע שרײַבער',
-'pageinfo-restriction' => 'בלאט שוץ (<code>$1</code>)',
+'pageinfo-restriction' => 'בלאט שוץ ($1)',
 'pageinfo-magic-words' => '{{PLURAL:$1|מאגיש ווארט|מאגישע ווערטער}} ($1)',
 'pageinfo-hidden-categories' => 'באהאלטענע {{PLURAL:$1|קאטעגאריע|קאטעגאריעס}} ($1)',
 'pageinfo-templates' => ' {{PLURAL:$1|אריבערגעשלאסענער מוסטער|אריבערגשלאסענע מוסטערן}} ($1)',
index 27f19e8..f3f99f2 100644 (file)
@@ -2965,7 +2965,7 @@ $1被封禁的理由是“$2”',
 'pageinfo-authors' => '作者總數',
 'pageinfo-recent-edits' => '最近編輯次數 (過去 $1 內)',
 'pageinfo-recent-authors' => '最近作者數目',
-'pageinfo-restriction' => '保護頁面 ( <code>{{lcfirst:$1}}</code> )',
+'pageinfo-restriction' => '保護頁面 ( {{lcfirst:$1}} )',
 'pageinfo-magic-words' => '魔術{{PLURAL:$1|字|字}} ( $1 )',
 'pageinfo-hidden-categories' => '隱藏{{PLURAL:$1|分類|分類}} ( $1 )',
 'pageinfo-templates' => '被引用的{{PLURAL:$1|模版|模版}} ( $1 )',
diff --git a/maintenance/archives/patch-cat_hidden.sql b/maintenance/archives/patch-cat_hidden.sql
new file mode 100644 (file)
index 0000000..933188c
--- /dev/null
@@ -0,0 +1,3 @@
+-- cat_hidden is no longer used, delete it
+
+ALTER TABLE /*$wgDBprefix*/category DROP COLUMN cat_hidden;
index 9901b37..c198e0f 100644 (file)
@@ -53,11 +53,11 @@ abstract class Benchmarker extends Maintenance {
                        }
 
                        $bench_number++;
-                       $start = wfTime();
+                       $start = microtime( true );
                        for( $i=0; $i<$count; $i++ ) {
                                call_user_func_array( $bench['function'], $bench['args'] );
                        }
-                       $delta = wfTime() - $start;
+                       $delta = microtime( true ) - $start;
 
                        // function passed as a callback
                        if( is_array( $bench['function'] ) ) {
index a8e4627..31d517f 100644 (file)
@@ -46,22 +46,22 @@ class BenchmarkDeleteTruncate extends Benchmarker {
 
                $this->insertData( $dbw );
 
-               $start = wfTime();
+               $start = microtime( true );
 
                $this->delete( $dbw );
 
-               $end = wfTime();
+               $end = microtime( true );
 
                echo "Delete: " . $end - $start;
                echo "\r\n";
 
                $this->insertData( $dbw );
 
-               $start = wfTime();
+               $start = microtime( true );
 
                $this->truncate( $dbw );
 
-               $end = wfTime();
+               $end = microtime( true );
 
                echo "Truncate: " . $end - $start;
                echo "\r\n";
index 9d11601..9de7610 100644 (file)
@@ -65,11 +65,11 @@ class BenchmarkHooks extends Benchmarker {
         * @return string
         */
        private function benchHooks( $trials = 10 ) {
-               $start = wfTime();
+               $start = microtime( true );
                for ( $i = 0; $i < $trials; $i++ ) {
                        wfRunHooks( 'Test' );
                }
-               $delta = wfTime() - $start;
+               $delta = microtime( true ) - $start;
                $pertrial = $delta / $trials;
                return sprintf( "Took %6.2fs",
                        $pertrial );
index 7ef2116..ec686b2 100644 (file)
@@ -62,11 +62,11 @@ class BenchmarkPurge extends Benchmarker {
         * @return string
         */
        private function benchSquid( $urls, $trials = 1 ) {
-               $start = wfTime();
+               $start = microtime( true );
                for ( $i = 0; $i < $trials; $i++ ) {
                        SquidUpdate::purge( $urls );
                }
-               $delta = wfTime() - $start;
+               $delta = microtime( true ) - $start;
                $pertrial = $delta / $trials;
                $pertitle = $pertrial / count( $urls );
                return sprintf( "%4d titles in %6.2fms (%6.2fms each)",
index 95bb1fa..ac96f45 100644 (file)
@@ -1,7 +1,25 @@
 <?php
-
-# Router for the php cli-server built-in webserver
-# http://ca2.php.net/manual/en/features.commandline.webserver.php
+/**
+ * Router for the php cli-server built-in webserver.
+ * http://www.php.net/manual/en/features.commandline.webserver.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
+ */
 
 if ( php_sapi_name() != 'cli-server' ) {
        die( "This script can only be run by php's cli-server sapi." );
index b537f9b..8caf867 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup MaintenanceLanguage
  */
 
 require_once( __DIR__ . '/../Maintenance.php' );
 
+/**
+ * Maintenance script that gets all messages as defined by the
+ * English language file.
+ *
+ * @ingroup MaintenanceLanguage
+ */
 class AllTrans extends Maintenance {
        public function __construct() {
                parent::__construct();
index 1888c4c..6abf7b4 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Script to print out duplicates in message array
+ * Print out duplicates in message array
  *
  * 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
index d37d22e..5058a54 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup MaintenanceLanguage
  */
 
 require_once( __DIR__ . '/../Maintenance.php' );
 
+/**
+ * Maintenance script that counts how many messages we have defined
+ * for each language.
+ *
+ * @ingroup MaintenanceLanguage
+ */
 class CountMessages extends Maintenance {
        public function __construct() {
                parent::__construct();
index 505cb57..ed12b78 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup MaintenanceLanguage
  */
 
 require_once( __DIR__ . '/../Maintenance.php' );
 
+/**
+ * Maintenance script that tests various language time and date functions.
+ *
+ * @ingroup MaintenanceLanguage
+ */
 class DateFormats extends Maintenance {
 
        private $ts = '20010115123456';
index 7e729b4..9d4cbe7 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Check digit transformation
+ *
  * 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
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup MaintenanceLanguage
  */
 
 require_once( __DIR__ . '/../Maintenance.php' );
 
+/**
+ * Maintenance script that check digit transformation.
+ *
+ * @ingroup MaintenanceLanguage
+ */
 class Digit2Html extends Maintenance {
 
        # A list of unicode numerals is available at:
index 9292ce3..0292d31 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup MaintenanceLanguage
- * @todo Make this more useful, right now just dumps $wgContentLang
+ * @todo Make this more useful, right now just dumps $wgContLang
  */
 
 require_once( __DIR__ . '/../Maintenance.php' );
 
+/**
+ * Maintenance script that dumps an entire language, using the keys from English.
+ *
+ * @ingroup MaintenanceLanguage
+ */
 class DumpMessages extends Maintenance {
        public function __construct() {
                parent::__construct();
                $this->mDescription = "Dump an entire language, using the keys from English";
        }
-       
+
        public function execute() {
                global $wgVersion;
 
index c4a8e54..e34d9a1 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
- * @ingroup Maintenance
  * @file
+ * @ingroup MaintenanceLanguage
  */
 
 require_once( __DIR__ .'/../Maintenance.php' );
 
 /**
  * Generate first letter data files for Collation.php
+ *
+ * @ingroup MaintenanceLanguage
  */
 class GenerateCollationData extends Maintenance {
        /** The directory with source data files in it */
index f3cc568..54dfa39 100644 (file)
@@ -28,6 +28,8 @@ require_once( __DIR__ . '/../../includes/normal/UtfNormalUtil.php' );
 /**
  * Generates normalizer data files for Arabic and Malayalam.
  * For NFC see includes/normal.
+ *
+ * @ingroup MaintenanceLanguage
  */
 class GenerateNormalizerData extends Maintenance {
        var $dataFile;
diff --git a/maintenance/purgeStaleMemcachedText.php b/maintenance/purgeStaleMemcachedText.php
deleted file mode 100644 (file)
index 225400f..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<?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 Maintenance Memcached
- */
-
-require_once( __DIR__ . '/commandLine.inc' );
-
-function purgeStaleMemcachedText() {
-       global $wgMemc, $wgDBname;
-       $db = wfGetDB( DB_MASTER );
-       $maxTextId = $db->selectField( 'text', 'max(old_id)' );
-       $latestReplicatedTextId = $db->selectField( array( 'recentchanges', 'revision' ), 'rev_text_id', 
-               array( 'rev_id = rc_this_oldid', "rc_timestamp < '20101225183000'"),  'purgeStaleMemcachedText', 
-               array( 'ORDER BY' => 'rc_timestamp DESC' ) );
-       $latestReplicatedTextId -= 100; # A bit of paranoia
-
-       echo "Going to purge text entries from $latestReplicatedTextId to $maxTextId in $wgDBname\n";
-
-       for ( $i = $latestReplicatedTextId; $i < $maxTextId; $i++ ) {
-               $key = wfMemcKey( 'revisiontext', 'textid', $i );
-               
-               while (1) {
-                       if (! $wgMemc->delete( $key ) ) {
-                               echo "Memcache delete for $key returned false\n";
-                       }
-                       if ( $wgMemc->get( $key ) ) {
-                               echo "There's still content in $key!\n";
-                       } else {
-                               break;
-                       }
-               }
-               
-       }
-}
-
-purgeStaleMemcachedText();
-
diff --git a/maintenance/refreshImageCount.php b/maintenance/refreshImageCount.php
deleted file mode 100644 (file)
index be6bd18..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Quickie hack; patch-ss_images.sql uses variables which don't
- * replicate properly.
- *
- * 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
- *
- * @ingroup Maintenance
- */
-
-require_once( __DIR__ . '/Maintenance.php' );
-
-class RefreshImageCount extends Maintenance {
-       public function __construct() {
-               parent::__construct();
-               $this->mDescription = "Resets ss_image count, forcing slaves to pick it up.";
-       }
-
-       public function execute() {
-               $dbw = wfGetDB( DB_MASTER );
-
-               // Load the current value from the master
-               $count = $dbw->selectField( 'site_stats', 'ss_images' );
-
-               $this->output( wfWikiID() . ": forcing ss_images to $count\n" );
-
-               // First set to NULL so that it changes on the master
-               $dbw->update( 'site_stats',
-                       array( 'ss_images' => null ),
-                       array( 'ss_row_id' => 1 ) );
-
-               // Now this update will be forced to go out
-               $dbw->update( 'site_stats',
-                       array( 'ss_images' => $count ),
-                       array( 'ss_row_id' => 1 ) );
-                       }
-}
-
-$maintClass = "RefreshImageCount";
-require_once( RUN_MAINTENANCE_IF_MAIN );
-
diff --git a/maintenance/sqlite/archives/patch-cat_hidden.sql b/maintenance/sqlite/archives/patch-cat_hidden.sql
new file mode 100644 (file)
index 0000000..272b8ef
--- /dev/null
@@ -0,0 +1,20 @@
+-- cat_hidden is no longer used, delete it
+
+CREATE TABLE /*_*/category_tmp (
+  cat_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
+  cat_title varchar(255) binary NOT NULL,
+  cat_pages int signed NOT NULL default 0,
+  cat_subcats int signed NOT NULL default 0,
+  cat_files int signed NOT NULL default 0
+) /*$wgDBTableOptions*/;
+
+INSERT INTO /*_*/category_tmp
+       SELECT cat_id, cat_title, cat_pages, cat_subcats, cat_files
+               FROM /*_*/category;
+
+DROP TABLE /*_*/category;
+
+ALTER TABLE /*_*/category_tmp RENAME TO /*_*/category;
+
+CREATE UNIQUE INDEX /*i*/cat_title ON /*_*/category (cat_title);
+CREATE INDEX /*i*/cat_pages ON /*_*/category (cat_pages);
index 0a5b2fb..062052f 100644 (file)
@@ -571,10 +571,7 @@ CREATE TABLE /*_*/category (
   -- ing is not.
   cat_pages int signed NOT NULL default 0,
   cat_subcats int signed NOT NULL default 0,
-  cat_files int signed NOT NULL default 0,
-
-  -- Reserved for future use
-  cat_hidden tinyint unsigned NOT NULL default 0
+  cat_files int signed NOT NULL default 0
 ) /*$wgDBTableOptions*/;
 
 CREATE UNIQUE INDEX /*i*/cat_title ON /*_*/category (cat_title);
index e0a3c00..c88272d 100644 (file)
 /**
  * Live preview script for MediaWiki
  */
-(function( $ ) {
-       window.doLivePreview = function( e ) {
-               var previewShowing = false;
-
+( function( mw, $ ) {
+       var doLivePreview = function( e ) {
                e.preventDefault();
 
                $( mw ).trigger( 'LivePreviewPrepare' );
 
                var $wikiPreview = $( '#wikiPreview' );
 
-               $( '#mw-content-text' ).css( 'position', 'relative' );
-
-               if ( $wikiPreview.is( ':visible' ) ) {
-                       previewShowing = true;
+               // this needs to be checked before we unconditionally show the preview
+               var overlaySpinner = false;
+               if ( $wikiPreview.is( ':visible' ) || $( '.mw-newarticletext:visible' ).length > 0 ) {
+                       overlaySpinner = true;
                }
 
-               // show #wikiPreview if it's hidden (if it is hidden, it's also empty, so nothing changes in the rendering)
-               // to be able to scroll to it
+               // show #wikiPreview if it's hidden to be able to scroll to it
+               // (if it is hidden, it's also empty, so nothing changes in the rendering)
                $wikiPreview.show();
-
-               // Jump to where the preview will appear
+               // jump to where the preview will appear
                $wikiPreview[0].scrollIntoView();
 
-               var postData = $('#editform').formToArray(); // formToArray: from jquery.form
-               postData.push( { 'name' : e.target.name, 'value' : '1' } );
-
-               // Hide active diff, used templates, old preview if shown
-               var copyElements = ['#wikiPreview', '#wikiDiff', '.templatesUsed', '.hiddencats',
-                                                       '#catlinks', '#p-lang', '.mw-summary-preview'];
-               var copySelector = copyElements.join(',');
+               // list of elements that will be loaded from the preview page
+               // elements absent in the preview page (such as .mw-newarticletext) will be cleared using .empty()
+               var copySelectors = [
+                       '#wikiPreview', '#wikiDiff', '#catlinks', '.hiddencats', '#p-lang', // the meat
+                       '.templatesUsed', '.mw-summary-preview', // editing-related
+                       '.mw-newarticletext' // it is not shown during normal preview, and looks weird with throbber overlaid
+               ];
+               var $copyElements = $( copySelectors.join( ',' ) );
 
-               $.each( copyElements, function( k, v ) {
-                       $( v ).fadeTo( 'fast', 0.4 );
-               } );
+               var $loadSpinner = $( '<div>' ).addClass( 'mw-ajax-loader' );
+               $loadSpinner.css( 'top', '0' ); // move away from header (default is -16px)
 
-               // Display a loading graphic
-               var loadSpinner = $('<div class="mw-ajax-loader"/>');
-               // Move away from header (default is -16px)
-               loadSpinner.css( 'top', '0' );
+               // If the preview is already visible, overlay the spinner on top of it.
+               if ( overlaySpinner ) {
+                       $( '#mw-content-text' ).css( 'position', 'relative' ); // FIXME this seems like a bad idea
 
-               // If the preview is already showing, overlay the spinner on top of it.
-               if ( previewShowing ) {
-                       loadSpinner.css( {
+                       $loadSpinner.css( {
                                'position': 'absolute',
                                'z-index': '3',
                                'left': '50%',
                                'margin-left': '-16px'
                        } );
                }
-               $wikiPreview.before( loadSpinner );
 
-               var page = $('<div/>');
-               var target = $('#editform').attr('action');
+               // fade out the elements and display the throbber
+               $( '#mw-content-text' ).prepend( $loadSpinner );
+               // we can't use fadeTo because it calls show(), and we might want to keep some elements hidden
+               // (e.g. empty #catlinks)
+               $copyElements.animate( { 'opacity': 0.4 }, 'fast' );
 
-               if ( !target ) {
-                       target = window.location.href;
-               }
+               var $previewDataHolder = $( '<div>' );
+               var target = $( '#editform' ).attr( 'action' ) || window.location.href;
 
-               page.load( target + ' ' + copySelector, postData,
-                       function() {
-
-                               for( var i=0; i<copyElements.length; ++i) {
-                                       // For all the specified elements, find the elements in the loaded page
-                                       //  and the real page, empty the element in the real page, and fill it
-                                       //  with the content of the loaded page
-                                       var copyContent = page.find( copyElements[i] ).contents();
-                                       $(copyElements[i]).empty().append( copyContent );
-                                       var newClasses = page.find( copyElements[i] ).prop('class');
-                                       $(copyElements[i]).prop( 'class', newClasses );
-                               }
-
-                               $.each( copyElements, function( k, v ) {
-                                       // Don't belligerently show elements that are supposed to be hidden
-                                       $( v ).fadeTo( 'fast', 1, function() {
-                                               $( this ).css( 'display', '' );
-                                       } );
-                               } );
-
-                               loadSpinner.remove();
-
-                               $( mw ).trigger( 'LivePreviewDone', [copyElements] );
-                       } );
+               // gather all the data from the form
+               var postData = $( '#editform' ).formToArray(); // formToArray: from jquery.form
+               postData.push( { 'name' : e.target.name, 'value' : '1' } );
+
+               // load new preview data
+               // FIXME this should use the action=parse API instead of loading the entire page
+               $previewDataHolder.load( target + ' ' + copySelectors.join( ',' ), postData, function() {
+                       // Copy the contents of the specified elements from the loaded page to the real page.
+                       // Also copy their class attributes.
+                       for ( var i = 0; i < copySelectors.length; i++ ) {
+                               var $from = $previewDataHolder.find( copySelectors[i] );
+                               var $to = $( copySelectors[i] );
+
+                               $to.empty().append( $from.contents() );
+                               $to.attr( 'class', $from.attr( 'class' ) );
+                       }
+
+                       $loadSpinner.remove();
+                       $copyElements.animate( { 'opacity': 1 }, 'fast' );
+
+                       $( mw ).trigger( 'LivePreviewDone', [copySelectors] );
+               } );
        };
 
-       $(document).ready( function() {
-               // construct space for interwiki links if missing
-               // (it is usually not shown when action=edit, but shown if action=submit)
+       $( document ).ready( function() {
+               // construct the elements we need if they are missing (usually when action=edit)
+               // we don't need to hide them, because they are empty when created
+
+               // interwiki links
                if ( !document.getElementById( 'p-lang' ) && document.getElementById( 'p-tb' ) ) {
-                       // we need not hide this, because it's empty anyway
                        $( '#p-tb' ).after( $( '<div>' ).attr( 'id', 'p-lang' ) );
                }
 
-               // construct space for summary preview if missing
+               // summary preview
                if ( $( '.mw-summary-preview' ).length === 0 ) {
                        $( '.editCheckboxes' ).before( $( '<div>' ).addClass( 'mw-summary-preview' ) );
                }
 
-               // construct space for diff if missing. also load diff styles.
+               // diff
                if ( !document.getElementById( 'wikiDiff' ) && document.getElementById( 'wikiPreview' ) ) {
                        $( '#wikiPreview' ).after( $( '<div>' ).attr( 'id', 'wikiDiff' ) );
-                       // diff styles are by default only loaded when needed
-                       // if there was no diff container, we can expect the styles not to be there either
-                       mw.loader.load( 'mediawiki.action.history.diff' );
                }
 
+               // diff styles are usually only loaded during, well, diff, and we might need them
+               // (mw.loader takes care of stuff if they happen to be loaded already)
+               mw.loader.load( 'mediawiki.action.history.diff' );
+
                $( '#wpPreview, #wpDiff' ).click( doLivePreview );
        } );
-}) ( jQuery );
+} )( mediaWiki, jQuery );
index f669b26..a0bbadf 100644 (file)
@@ -250,9 +250,9 @@ class TextPassDumperTest extends DumpTestCase {
                        $dumper->stderr = $stderr;
 
                        // The actual dump and taking time
-                       $ts_before = wfTime();
+                       $ts_before = microtime( true );
                        $dumper->dump( WikiExporter::FULL, WikiExporter::TEXT );
-                       $ts_after = wfTime();
+                       $ts_after = microtime( true );
                        $lastDuration = $ts_after - $ts_before;
 
                        // Handling increasing the iteration count for the stubs