Merge "Fixed some @params documentation (includes/api)"
authorAddshore <addshorewiki@gmail.com>
Sun, 20 Apr 2014 13:32:27 +0000 (13:32 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 20 Apr 2014 13:32:27 +0000 (13:32 +0000)
209 files changed:
RELEASE-NOTES-1.24
docs/hooks.txt
includes/HtmlFormatter.php
includes/Import.php
includes/cache/BacklinkCache.php
includes/cache/CacheDependency.php
includes/cache/FileCacheBase.php
includes/cache/GenderCache.php
includes/cache/HTMLFileCache.php
includes/cache/LinkBatch.php
includes/cache/LinkCache.php
includes/cache/LocalisationCache.php
includes/cache/MapCacheLRU.php
includes/cache/MessageCache.php
includes/cache/ObjectFileCache.php
includes/cache/ResourceFileCache.php
includes/cache/UserCache.php
includes/db/Database.php
includes/db/DatabaseError.php
includes/db/DatabaseMssql.php
includes/db/DatabaseMysqlBase.php
includes/db/DatabaseOracle.php
includes/db/DatabasePostgres.php
includes/db/DatabaseSqlite.php
includes/db/IORMRow.php
includes/db/IORMTable.php
includes/db/LBFactory.php
includes/db/LBFactorySingle.php
includes/db/LoadBalancer.php
includes/db/ORMResult.php
includes/db/ORMRow.php
includes/db/ORMTable.php
includes/debug/Debug.php
includes/deferred/CallableUpdate.php
includes/deferred/SearchUpdate.php
includes/filebackend/FSFile.php
includes/filebackend/FSFileBackend.php
includes/filebackend/FileBackend.php
includes/filebackend/FileBackendStore.php
includes/filebackend/FileOp.php
includes/filebackend/FileOpBatch.php
includes/filebackend/SwiftFileBackend.php
includes/filebackend/filejournal/FileJournal.php
includes/filebackend/lockmanager/DBLockManager.php
includes/filerepo/FileRepo.php
includes/filerepo/FileRepoStatus.php
includes/filerepo/ForeignAPIRepo.php
includes/filerepo/RepoGroup.php
includes/filerepo/file/File.php
includes/filerepo/file/ForeignAPIFile.php
includes/filerepo/file/ForeignDBFile.php
includes/filerepo/file/LocalFile.php
includes/installer/CliInstaller.php
includes/installer/DatabaseInstaller.php
includes/installer/DatabaseUpdater.php
includes/installer/Installer.php
includes/installer/LocalSettingsGenerator.php
includes/installer/MssqlInstaller.php
includes/installer/MysqlInstaller.php
includes/installer/OracleUpdater.php
includes/installer/PostgresInstaller.php
includes/installer/SqliteInstaller.php
includes/installer/WebInstaller.php
includes/installer/WebInstallerOutput.php
includes/jobqueue/JobQueueFederated.php
includes/libs/HashRing.php
includes/logging/LogEntry.php
includes/logging/LogEventsList.php
includes/logging/LogFormatter.php
includes/logging/LogPager.php
includes/objectcache/APCBagOStuff.php
includes/objectcache/BagOStuff.php
includes/objectcache/EmptyBagOStuff.php
includes/objectcache/HashBagOStuff.php
includes/objectcache/MemcachedBagOStuff.php
includes/objectcache/MemcachedClient.php
includes/objectcache/MemcachedPeclBagOStuff.php
includes/objectcache/MemcachedPhpBagOStuff.php
includes/objectcache/MultiWriteBagOStuff.php
includes/objectcache/ObjectCache.php
includes/objectcache/ObjectCacheSessionHandler.php
includes/objectcache/RedisBagOStuff.php
includes/objectcache/SqlBagOStuff.php
includes/objectcache/WinCacheBagOStuff.php
includes/objectcache/XCacheBagOStuff.php
includes/parser/Parser.php
includes/poolcounter/PoolCounter.php
includes/poolcounter/PoolCounterRedis.php
includes/poolcounter/PoolCounterWork.php
includes/profiler/Profiler.php
includes/resourceloader/ResourceLoader.php
includes/revisiondelete/RevisionDelete.php
includes/revisiondelete/RevisionDeleteAbstracts.php
includes/revisiondelete/RevisionDeleteUser.php
includes/revisiondelete/RevisionDeleter.php
includes/site/MediaWikiSite.php
includes/site/Site.php
includes/site/SiteList.php
includes/site/SiteSQLStore.php
includes/site/SiteStore.php
includes/specialpage/ChangesListSpecialPage.php
includes/specialpage/FormSpecialPage.php
includes/specialpage/RedirectSpecialPage.php
includes/specialpage/SpecialPageFactory.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialAllmessages.php
includes/specials/SpecialAllpages.php
includes/specials/SpecialBlock.php
includes/specials/SpecialBlockList.php
includes/specials/SpecialCachedPage.php
includes/specials/SpecialChangeEmail.php
includes/specials/SpecialComparePages.php
includes/specials/SpecialContributions.php
includes/specials/SpecialDeletedContributions.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialEmailuser.php
includes/specials/SpecialExpandTemplates.php
includes/specials/SpecialExport.php
includes/specials/SpecialFewestrevisions.php
includes/specials/SpecialImport.php
includes/specials/SpecialLinkSearch.php
includes/specials/SpecialListfiles.php
includes/specials/SpecialListusers.php
includes/specials/SpecialLog.php
includes/specials/SpecialMIMEsearch.php
includes/specials/SpecialMostinterwikis.php
includes/specials/SpecialMostlinked.php
includes/specials/SpecialMostlinkedtemplates.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialProtectedpages.php
includes/specials/SpecialProtectedtitles.php
includes/specials/SpecialRandomInCategory.php
includes/specials/SpecialRandompage.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialRunJobs.php
includes/specials/SpecialSearch.php
includes/specials/SpecialShortpages.php
includes/specials/SpecialUnblock.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUploadStash.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/specials/SpecialWatchlist.php
includes/title/MediaWikiTitleCodec.php
includes/title/TitleFormatter.php
includes/title/TitleValue.php
includes/upload/UploadBase.php
includes/upload/UploadFromChunks.php
includes/upload/UploadFromFile.php
includes/upload/UploadFromUrl.php
includes/upload/UploadStash.php
languages/i18n/ar.json
languages/i18n/be-tarask.json
languages/i18n/bn.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/diq.json
languages/i18n/egl.json
languages/i18n/en.json
languages/i18n/es.json
languages/i18n/gan-hans.json
languages/i18n/ja.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/ml.json
languages/i18n/nan.json
languages/i18n/or.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/qqq.json
languages/i18n/sa.json
languages/i18n/sdc.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/tk.json
languages/i18n/tr.json
languages/i18n/uz.json
languages/i18n/vi.json
languages/i18n/wuu.json
languages/i18n/zh-hans.json
maintenance/language/languages.inc
maintenance/mwjsduck-gen
maintenance/resources/update-oojs-ui.sh [new file with mode: 0755]
maintenance/resources/update-oojs.sh
resources/Resources.php
resources/lib/oojs-ui/i18n/diq.json
resources/lib/oojs-ui/i18n/egl.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/eml.json
resources/lib/oojs-ui/i18n/es.json
resources/lib/oojs-ui/i18n/tg-cyrl.json [new file with mode: 0644]
resources/lib/oojs-ui/images/fade-down.png [deleted file]
resources/lib/oojs-ui/images/fade-up.png [deleted file]
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/oojs-ui.svg.css
resources/lib/oojs-ui/update-oojs-ui.sh [deleted file]
resources/src/jquery/jquery.suggestions.js
skins/vector/screen-hd.less
skins/vector/screen.less [new file with mode: 0644]
skins/vector/styles.less [deleted file]
tests/phpunit/includes/HtmlFormatterTest.php
tests/phpunit/includes/libs/GenericArrayObjectTest.php
tests/phpunit/languages/LanguageTest.php

index 50d7392..500d19f 100644 (file)
@@ -30,6 +30,8 @@ changes to languages because of Bugzilla reports.
 === Other changes in 1.24 ===
 * The deprecated jquery.delayedBind ResourceLoader module was removed.
 * The deprecated function mw.util.toggleToc was removed.
+* The Special:Search hooks SpecialSearchGo and SpecialSearchResultsAppend
+  were removed as they were unused.
 
 == Compatibility ==
 
index 302494f..de4bc3b 100644 (file)
@@ -2429,10 +2429,6 @@ go to the existing page.
 $t: title object searched for
 &$params: an array of the default message name and page title (as parameter)
 
-'SpecialSearchGo': Called when user clicked the "Go".
-&$title: title object generated from the text entered by the user
-&$term: the search term entered by the user
-
 'SpecialSearchNogomatch': Called when user clicked the "Go" button but the
 target doesn't exist.
 &$title: title object generated from the text entered by the user
@@ -2466,14 +2462,6 @@ $specialSearch: SpecialSearch object ($this)
 $output: $wgOut
 $term: Search term specified by the user
 
-'SpecialSearchResultsAppend': Called after all search results HTML has
-been output.  Note that in some cases, this hook will not be called (no
-results, too many results, SpecialSearchResultsPrepend returned false,
-etc).
-$specialSearch: SpecialSearch object ($this)
-$output: $wgOut
-$term: Search term specified by the user
-
 'SpecialSearchResults': Called before search result display when there are
 matches.
 $term: string of search term
index 7f590e5..96ffe9e 100644 (file)
@@ -128,7 +128,9 @@ class HtmlFormatter {
        }
 
        /**
-        * Removes content we've chosen to remove
+        * Removes content we've chosen to remove.  The text of the removed elements can be
+        * extracted with the getText method.
+        * @return array of removed DOMElements
         */
        public function filterContent() {
                wfProfileIn( __METHOD__ );
@@ -156,8 +158,7 @@ class HtmlFormatter {
                                }
                        }
                }
-
-               $this->removeElements( $domElemsToRemove );
+               $removed = $this->removeElements( $domElemsToRemove );
 
                // Elements with named IDs
                $domElemsToRemove = array();
@@ -167,7 +168,7 @@ class HtmlFormatter {
                                $domElemsToRemove[] = $itemToRemoveNode;
                        }
                }
-               $this->removeElements( $domElemsToRemove );
+               $removed = array_merge( $removed, $this->removeElements( $domElemsToRemove ) );
 
                // CSS Classes
                $domElemsToRemove = array();
@@ -183,7 +184,7 @@ class HtmlFormatter {
                                }
                        }
                }
-               $this->removeElements( $domElemsToRemove );
+               $removed = array_merge( $removed, $this->removeElements( $domElemsToRemove ) );
 
                // Tags with CSS Classes
                foreach ( $removals['TAG_CLASS'] as $classToRemove ) {
@@ -192,16 +193,17 @@ class HtmlFormatter {
                        $elements = $xpath->query(
                                '//' . $parts[0] . '[@class="' . $parts[1] . '"]'
                        );
-
-                       $this->removeElements( $elements );
+                       $removed = array_merge( $removed, $this->removeElements( $elements ) );
                }
 
                wfProfileOut( __METHOD__ );
+               return $removed;
        }
 
        /**
         * Removes a list of elelments from DOMDocument
         * @param array|DOMNodeList $elements
+        * @return array of removed elements
         */
        private function removeElements( $elements ) {
                $list = $elements;
@@ -217,6 +219,7 @@ class HtmlFormatter {
                                $element->parentNode->removeChild( $element );
                        }
                }
+               return $list;
        }
 
        /**
@@ -245,7 +248,10 @@ class HtmlFormatter {
        }
 
        /**
-        * Performs final transformations and returns resulting HTML
+        * Performs final transformations and returns resulting HTML.  Note that if you want to call this
+        * both without an element and with an element you should call it without an element first.  If you
+        * specify the $element in the method it'll change the underlying dom and you won't be able to get
+        * it back.
         *
         * @param DOMElement|string|null $element ID of element to get HTML from or false to get it from the whole tree
         * @return string Processed HTML
index b18e257..6150ae1 100644 (file)
@@ -105,8 +105,8 @@ class WikiImporter {
        /**
         * Set a callback that displays notice messages
         *
-        * @param $callback callback
-        * @return callback
+        * @param callable $callback
+        * @return callable
         */
        public function setNoticeCallback( $callback ) {
                return wfSetVar( $this->mNoticeCallback, $callback );
@@ -114,8 +114,8 @@ class WikiImporter {
 
        /**
         * Sets the action to perform as each new page in the stream is reached.
-        * @param $callback callback
-        * @return callback
+        * @param callable $callback
+        * @return callable
         */
        public function setPageCallback( $callback ) {
                $previous = $this->mPageCallback;
@@ -129,8 +129,8 @@ class WikiImporter {
         * with the original title form (in case it's been overridden into a
         * local namespace), and a count of revisions.
         *
-        * @param $callback callback
-        * @return callback
+        * @param callable $callback
+        * @return callable
         */
        public function setPageOutCallback( $callback ) {
                $previous = $this->mPageOutCallback;
@@ -140,8 +140,8 @@ class WikiImporter {
 
        /**
         * Sets the action to perform as each page revision is reached.
-        * @param $callback callback
-        * @return callback
+        * @param callable $callback
+        * @return callable
         */
        public function setRevisionCallback( $callback ) {
                $previous = $this->mRevisionCallback;
@@ -151,8 +151,8 @@ class WikiImporter {
 
        /**
         * Sets the action to perform as each file upload version is reached.
-        * @param $callback callback
-        * @return callback
+        * @param callable $callback
+        * @return callable
         */
        public function setUploadCallback( $callback ) {
                $previous = $this->mUploadCallback;
@@ -162,8 +162,8 @@ class WikiImporter {
 
        /**
         * Sets the action to perform as each log item reached.
-        * @param $callback callback
-        * @return callback
+        * @param callable $callback
+        * @return callable
         */
        public function setLogItemCallback( $callback ) {
                $previous = $this->mLogItemCallback;
@@ -173,8 +173,8 @@ class WikiImporter {
 
        /**
         * Sets the action to perform when site info is encountered
-        * @param $callback callback
-        * @return callback
+        * @param callable $callback
+        * @return callable
         */
        public function setSiteInfoCallback( $callback ) {
                $previous = $this->mSiteInfoCallback;
index d2ec26e..ed62bba 100644 (file)
@@ -97,7 +97,7 @@ class BacklinkCache {
         * Currently, only one cache instance can exist; callers that
         * need multiple backlink cache objects should keep them in scope.
         *
-        * @param Title $title Title object to get a backlink cache for
+        * @param Title $title Title object to get a backlink cache for
         * @return BacklinkCache
         */
        public static function get( Title $title ) {
@@ -135,7 +135,7 @@ class BacklinkCache {
        /**
         * Set the Database object to use
         *
-        * @param $db DatabaseBase
+        * @param DatabaseBase $db
         */
        public function setDB( $db ) {
                $this->db = $db;
@@ -144,7 +144,7 @@ class BacklinkCache {
        /**
         * Get the slave connection to the database
         * When non existing, will initialize the connection.
-        * @return DatabaseBase object
+        * @return DatabaseBase
         */
        protected function getDB() {
                if ( !isset( $this->db ) ) {
@@ -168,11 +168,11 @@ class BacklinkCache {
 
        /**
         * Get the backlinks for a given table. Cached in process memory only.
-        * @param $table String
-        * @param $startId Integer|false
-        * @param $endId Integer|false
-        * @param $max Integer|INF
-        * @param $select string 'all' or 'ids'
+        * @param string $table
+        * @param int|bool $startId
+        * @param int|bool $endId
+        * @param int|INF $max
+        * @param string $select 'all' or 'ids'
         * @return ResultWrapper
         */
        protected function queryLinks( $table, $startId, $endId, $max, $select = 'all' ) {
@@ -238,7 +238,7 @@ class BacklinkCache {
 
        /**
         * Get the field name prefix for a given table
-        * @param $table String
+        * @param string $table
         * @throws MWException
         * @return null|string
         */
@@ -267,7 +267,7 @@ class BacklinkCache {
        /**
         * Get the SQL condition array for selecting backlinks, with a join
         * on the page table.
-        * @param $table String
+        * @param string $table
         * @throws MWException
         * @return array|null
         */
@@ -314,7 +314,7 @@ class BacklinkCache {
 
        /**
         * Check if there are any backlinks
-        * @param $table String
+        * @param string $table
         * @return bool
         */
        public function hasLinks( $table ) {
@@ -323,9 +323,9 @@ class BacklinkCache {
 
        /**
         * Get the approximate number of backlinks
-        * @param $table String
-        * @param $max integer|INF Only count up to this many backlinks
-        * @return integer
+        * @param string $table
+        * @param int|INF $max Only count up to this many backlinks
+        * @return int
         */
        public function getNumLinks( $table, $max = INF ) {
                global $wgMemc, $wgUpdateRowsPerJob;
@@ -372,9 +372,9 @@ class BacklinkCache {
         * Returns an array giving the start and end of each range. The first
         * batch has a start of false, and the last batch has an end of false.
         *
-        * @param string $table the links table name
-        * @param $batchSize Integer
-        * @return Array
+        * @param string $table The links table name
+        * @param int $batchSize
+        * @return array
         */
        public function partition( $table, $batchSize ) {
                global $wgMemc;
@@ -450,9 +450,9 @@ class BacklinkCache {
 
        /**
         * Partition a DB result with backlinks in it into batches
-        * @param $res ResultWrapper database result
-        * @param $batchSize integer
-        * @param $isComplete bool Whether $res includes all the backlinks
+        * @param ResultWrapper $res Database result
+        * @param int $batchSize
+        * @param bool $isComplete Whether $res includes all the backlinks
         * @throws MWException
         * @return array
         */
index 28889b5..7b83990 100644 (file)
@@ -34,7 +34,7 @@ class DependencyWrapper {
 
        /**
         * Create an instance.
-        * @param $value Mixed: the user-supplied value
+        * @param mixed $value The user-supplied value
         * @param CacheDependency|CacheDependency[] $deps A dependency or dependency
         *   array. All dependencies must be objects implementing CacheDependency.
         */
@@ -75,7 +75,7 @@ class DependencyWrapper {
 
        /**
         * Get the user-defined value
-        * @return bool|Mixed
+        * @return bool|mixed
         */
        function getValue() {
                return $this->value;
@@ -84,9 +84,9 @@ class DependencyWrapper {
        /**
         * Store the wrapper to a cache
         *
-        * @param $cache BagOStuff
-        * @param $key
-        * @param $expiry
+        * @param BagOStuff $cache
+        * @param string $key
+        * @param int $expiry
         */
        function storeToCache( $cache, $key, $expiry = 0 ) {
                $this->initialiseDeps();
@@ -98,12 +98,12 @@ class DependencyWrapper {
         * it will be generated with the callback function (if present), and the newly
         * calculated value will be stored to the cache in a wrapper.
         *
-        * @param $cache BagOStuff a cache object such as $wgMemc
-        * @param string $key the cache key
-        * @param $expiry Integer: the expiry timestamp or interval in seconds
-        * @param $callback Mixed: the callback for generating the value, or false
-        * @param array $callbackParams the function parameters for the callback
-        * @param array $deps the dependencies to store on a cache miss. Note: these
+        * @param BagOStuff $cache A cache object such as $wgMemc
+        * @param string $key The cache key
+        * @param int $expiry The expiry timestamp or interval in seconds
+        * @param bool|array $callback The callback for generating the value, or false
+        * @param array $callbackParams The function parameters for the callback
+        * @param array $deps The dependencies to store on a cache miss. Note: these
         *    are not the dependencies used on a cache hit! Cache hits use the stored
         *    dependency array.
         *
@@ -157,7 +157,7 @@ class FileDependency extends CacheDependency {
         * Create a file dependency
         *
         * @param string $filename the name of the file, preferably fully qualified
-        * @param $timestamp Mixed: the unix last modified timestamp, or false if the
+        * @param null|bool|int $timestamp The unix last modified timestamp, or false if the
         *        file does not exist. If omitted, the timestamp will be loaded from
         *        the file.
         *
index 0c00c6b..4bf3611 100644 (file)
@@ -154,7 +154,7 @@ abstract class FileCacheBase {
        /**
         * Save and compress text to the cache
         * @param string $text
-        * @return string compressed text
+        * @return string Compressed text
         */
        public function saveText( $text ) {
                global $wgUseFileCache;
@@ -231,7 +231,7 @@ abstract class FileCacheBase {
 
        /**
         * Roughly increments the cache misses in the last hour by unique visitors
-        * @param $request WebRequest
+        * @param WebRequest $request
         * @return void
         */
        public function incrMissesRecent( WebRequest $request ) {
index 285675d..63e7bfd 100644 (file)
@@ -50,7 +50,7 @@ class GenderCache {
 
        /**
         * Returns the default gender option in this wiki.
-        * @return String
+        * @return string
         */
        protected function getDefault() {
                if ( $this->default === null ) {
@@ -62,9 +62,9 @@ class GenderCache {
 
        /**
         * Returns the gender for given username.
-        * @param string $username or User: username
-        * @param string $caller the calling method
-        * @return String
+        * @param string|User $username Username
+        * @param string $caller The calling method
+        * @return string
         */
        public function getGenderOf( $username, $caller = '' ) {
                global $wgUser;
@@ -97,8 +97,8 @@ class GenderCache {
        /**
         * Wrapper for doQuery that processes raw LinkBatch data.
         *
-        * @param $data
-        * @param $caller
+        * @param array $data
+        * @param string $caller
         */
        public function doLinkBatch( $data, $caller = '' ) {
                $users = array();
@@ -118,8 +118,8 @@ class GenderCache {
         * Wrapper for doQuery that processes a title or string array.
         *
         * @since 1.20
-        * @param $titles List: array of Title objects or strings
-        * @param string $caller the calling method
+        * @param array $titles Array of Title objects or strings
+        * @param string $caller The calling method
         */
        public function doTitlesArray( $titles, $caller = '' ) {
                $users = array();
@@ -139,8 +139,8 @@ class GenderCache {
 
        /**
         * Preloads genders for given list of users.
-        * @param $users List|String: usernames
-        * @param string $caller the calling method
+        * @param array|string $users Usernames
+        * @param string $caller The calling method
         */
        public function doQuery( $users, $caller = '' ) {
                $default = $this->getDefault();
index 3690b70..91580f9 100644 (file)
@@ -31,8 +31,8 @@
 class HTMLFileCache extends FileCacheBase {
        /**
         * Construct an ObjectFileCache from a Title and an action
-        * @param $title Title|string Title object or prefixed DB key string
-        * @param $action string
+        * @param Title|string $title Title object or prefixed DB key string
+        * @param string $action
         * @throws MWException
         * @return HTMLFileCache
         */
@@ -84,7 +84,7 @@ class HTMLFileCache extends FileCacheBase {
 
        /**
         * Check if pages can be cached for this request/user
-        * @param $context IContextSource
+        * @param IContextSource $context
         * @return bool
         */
        public static function useFileCache( IContextSource $context ) {
@@ -125,7 +125,7 @@ class HTMLFileCache extends FileCacheBase {
 
        /**
         * Read from cache to context output
-        * @param $context IContextSource
+        * @param IContextSource $context
         * @return void
         */
        public function loadFromFileCache( IContextSource $context ) {
@@ -155,7 +155,7 @@ class HTMLFileCache extends FileCacheBase {
        /**
         * Save this cache object with the given text.
         * Use this as an ob_start() handler.
-        * @param $text string
+        * @param string $text
         * @return bool Whether $wgUseFileCache is enabled
         */
        public function saveToFileCache( $text ) {
@@ -200,7 +200,7 @@ class HTMLFileCache extends FileCacheBase {
 
        /**
         * Clear the file caches for a page for all actions
-        * @param $title Title
+        * @param Title $title
         * @return bool Whether $wgUseFileCache is enabled
         */
        public static function clearFileCache( Title $title ) {
index 1a20ab4..76cc583 100644 (file)
@@ -49,14 +49,14 @@ class LinkBatch {
         * class. Only used in debugging output.
         * @since 1.17
         *
-        * @param $caller
+        * @param string $caller
         */
        public function setCaller( $caller ) {
                $this->caller = $caller;
        }
 
        /**
-        * @param $title Title
+        * @param Title $title
         */
        public function addObj( $title ) {
                if ( is_object( $title ) ) {
@@ -67,9 +67,8 @@ class LinkBatch {
        }
 
        /**
-        * @param $ns int
-        * @param $dbkey string
-        * @return mixed
+        * @param int $ns
+        * @param string $dbkey
         */
        public function add( $ns, $dbkey ) {
                if ( $ns < 0 ) {
@@ -86,7 +85,7 @@ class LinkBatch {
         * Set the link list to a given 2-d array
         * First key is the namespace, second is the DB key, value arbitrary
         *
-        * @param $array array
+        * @param array $array
         */
        public function setArray( $array ) {
                $this->data = $array;
@@ -113,7 +112,7 @@ class LinkBatch {
        /**
         * Do the query and add the results to the LinkCache object
         *
-        * @return Array mapping PDBK to ID
+        * @return array Mapping PDBK to ID
         */
        public function execute() {
                $linkCache = LinkCache::singleton();
@@ -125,8 +124,8 @@ class LinkBatch {
         * Do the query and add the results to a given LinkCache object
         * Return an array mapping PDBK to ID
         *
-        * @param $cache LinkCache
-        * @return Array remaining IDs
+        * @param LinkCache $cache
+        * @return array Remaining IDs
         */
        protected function executeInto( &$cache ) {
                wfProfileIn( __METHOD__ );
@@ -144,9 +143,9 @@ class LinkBatch {
         * This function *also* stores extra fields of the title used for link
         * parsing to avoid extra DB queries.
         *
-        * @param $cache LinkCache
-        * @param $res
-        * @return Array of remaining titles
+        * @param LinkCache $cache
+        * @param ResultWrapper $res
+        * @return array Array of remaining titles
         */
        public function addResultToCache( $cache, $res ) {
                if ( !$res ) {
@@ -178,7 +177,7 @@ class LinkBatch {
 
        /**
         * Perform the existence test query, return a ResultWrapper with page_id fields
-        * @return Bool|ResultWrapper
+        * @return bool|ResultWrapper
         */
        public function doQuery() {
                if ( $this->isEmpty() ) {
@@ -207,7 +206,7 @@ class LinkBatch {
        /**
         * Do (and cache) {{GENDER:...}} information for userpages in this LinkBatch
         *
-        * @return bool whether the query was successful
+        * @return bool Whether the query was successful
         */
        public function doGenderQuery() {
                if ( $this->isEmpty() ) {
@@ -228,9 +227,9 @@ class LinkBatch {
        /**
         * Construct a WHERE clause which will match all the given titles.
         *
-        * @param string $prefix the appropriate table's field name prefix ('page', 'pl', etc)
-        * @param $db DatabaseBase object to use
-        * @return mixed string with SQL where clause fragment, or false if no items.
+        * @param string $prefix The appropriate table's field name prefix ('page', 'pl', etc)
+        * @param DatabaseBase $db DatabaseBase object to use
+        * @return string|bool String with SQL where clause fragment, or false if no items.
         */
        public function constructSet( $prefix, $db ) {
                return $db->makeWhereFrom2d( $this->data, "{$prefix}_namespace", "{$prefix}_title" );
index de2a728..95b15b8 100644 (file)
@@ -78,7 +78,7 @@ class LinkCache {
        /**
         * General accessor to get/set whether SELECT FOR UPDATE should be used
         *
-        * @param $update
+        * @param bool $update
         * @return bool
         */
        public function forUpdate( $update = null ) {
@@ -86,7 +86,7 @@ class LinkCache {
        }
 
        /**
-        * @param $title
+        * @param string $title
         * @return array|int
         */
        public function getGoodLinkID( $title ) {
@@ -100,9 +100,9 @@ class LinkCache {
        /**
         * Get a field of a title object from cache.
         * If this link is not good, it will return NULL.
-        * @param $title Title
+        * @param Title $title
         * @param string $field ('length','redirect','revision','model')
-        * @return mixed
+        * @return string|null
         */
        public function getGoodLinkFieldObj( $title, $field ) {
                $dbkey = $title->getPrefixedDBkey();
@@ -114,7 +114,7 @@ class LinkCache {
        }
 
        /**
-        * @param $title
+        * @param string $title
         * @return bool
         */
        public function isBadLink( $title ) {
@@ -147,8 +147,8 @@ class LinkCache {
        /**
         * Same as above with better interface.
         * @since 1.19
-        * @param $title Title
-        * @param $row object which has the fields page_id, page_is_redirect,
+        * @param Title $title
+        * @param stdClass $row Object which has the fields page_id, page_is_redirect,
         *  page_latest and page_content_model
         */
        public function addGoodLinkObjFromRow( $title, $row ) {
@@ -163,7 +163,7 @@ class LinkCache {
        }
 
        /**
-        * @param $title Title
+        * @param Title $title
         */
        public function addBadLinkObj( $title ) {
                $dbkey = $title->getPrefixedDBkey();
@@ -177,7 +177,7 @@ class LinkCache {
        }
 
        /**
-        * @param $title Title
+        * @param Title $title
         */
        public function clearLink( $title ) {
                $dbkey = $title->getPrefixedDBkey();
@@ -197,8 +197,8 @@ class LinkCache {
        /**
         * Add a title to the link cache, return the page_id or zero if non-existent
         *
-        * @param string $title title to add
-        * @return Integer
+        * @param string $title Title to add
+        * @return int
         */
        public function addLink( $title ) {
                $nt = Title::newFromDBkey( $title );
@@ -212,8 +212,8 @@ class LinkCache {
        /**
         * Add a title to the link cache, return the page_id or zero if non-existent
         *
-        * @param $nt Title object to add
-        * @return Integer
+        * @param Title $nt Title object to add
+        * @return int
         */
        public function addLinkObj( $nt ) {
                global $wgAntiLockFlags, $wgContentHandlerUseDB;
index 9cee321..1c36ec0 100644 (file)
@@ -181,7 +181,7 @@ class LocalisationCache {
         * For constructor parameters, see the documentation in DefaultSettings.php
         * for $wgLocalisationCacheConf.
         *
-        * @param $conf Array
+        * @param array $conf
         * @throws MWException
         */
        function __construct( $conf ) {
@@ -228,7 +228,7 @@ class LocalisationCache {
        /**
         * Returns true if the given key is mergeable, that is, if it is an associative
         * array which can be merged through a fallback sequence.
-        * @param $key
+        * @param string $key
         * @return bool
         */
        public function isMergeableKey( $key ) {
@@ -250,8 +250,8 @@ class LocalisationCache {
         *
         * Warning: this may be slow for split items (messages), since it will
         * need to fetch all of the subitems from the cache individually.
-        * @param $code
-        * @param $key
+        * @param string $code
+        * @param string $key
         * @return mixed
         */
        public function getItem( $code, $key ) {
@@ -270,10 +270,10 @@ class LocalisationCache {
 
        /**
         * Get a subitem, for instance a single message for a given language.
-        * @param $code
-        * @param $key
-        * @param $subkey
-        * @return null
+        * @param string $code
+        * @param string $key
+        * @param string $subkey
+        * @return mixed|null
         */
        public function getSubitem( $code, $key, $subkey ) {
                if ( !isset( $this->loadedSubitems[$code][$key][$subkey] ) &&
@@ -299,8 +299,8 @@ class LocalisationCache {
         *
         * Will return null if the item is not found, or false if the item is not an
         * array.
-        * @param $code
-        * @param $key
+        * @param string $code
+        * @param string $key
         * @return bool|null|string
         */
        public function getSubitemList( $code, $key ) {
@@ -318,8 +318,8 @@ class LocalisationCache {
 
        /**
         * Load an item into the cache.
-        * @param $code
-        * @param $key
+        * @param string $code
+        * @param string $key
         */
        protected function loadItem( $code, $key ) {
                if ( !isset( $this->initialisedLangs[$code] ) ) {
@@ -354,9 +354,9 @@ class LocalisationCache {
 
        /**
         * Load a subitem into the cache
-        * @param $code
-        * @param $key
-        * @param $subkey
+        * @param string $code
+        * @param string $key
+        * @param string $subkey
         */
        protected function loadSubitem( $code, $key, $subkey ) {
                if ( !in_array( $key, self::$splitKeys ) ) {
@@ -429,7 +429,7 @@ class LocalisationCache {
 
        /**
         * Initialise a language in this object. Rebuild the cache if necessary.
-        * @param $code
+        * @param string $code
         * @throws MWException
         */
        protected function initLanguage( $code ) {
@@ -490,8 +490,8 @@ class LocalisationCache {
        /**
         * Create a fallback from one language to another, without creating a
         * complete persistent cache.
-        * @param $primaryCode
-        * @param $fallbackCode
+        * @param string $primaryCode
+        * @param string $fallbackCode
         */
        public function initShallowFallback( $primaryCode, $fallbackCode ) {
                $this->data[$primaryCode] =& $this->data[$fallbackCode];
@@ -502,8 +502,8 @@ class LocalisationCache {
 
        /**
         * Read a PHP file containing localisation data.
-        * @param $_fileName
-        * @param $_fileType
+        * @param string $_fileName
+        * @param string $_fileType
         * @throws MWException
         * @return array
         */
@@ -537,7 +537,7 @@ class LocalisationCache {
         * Read a JSON file containing localisation messages.
         * @param string $fileName Name of file to read
         * @throws MWException if there is a syntax error in the JSON file
-        * @return array with a 'messages' key, or empty array if the file doesn't exist
+        * @return array Array with a 'messages' key, or empty array if the file doesn't exist
         */
        public function readJSONFile( $fileName ) {
                wfProfileIn( __METHOD__ );
@@ -578,6 +578,8 @@ class LocalisationCache {
        /**
         * Get the compiled plural rules for a given language from the XML files.
         * @since 1.20
+        * @param string $code
+        * @return array|null
         */
        public function getCompiledPluralRules( $code ) {
                $rules = $this->getPluralRules( $code );
@@ -599,6 +601,8 @@ class LocalisationCache {
         * Get the plural rules for a given language from the XML files.
         * Cached.
         * @since 1.20
+        * @param string $code
+        * @return array|null
         */
        public function getPluralRules( $code ) {
                if ( $this->pluralRules === null ) {
@@ -615,6 +619,8 @@ class LocalisationCache {
         * Get the plural rule types for a given language from the XML files.
         * Cached.
         * @since 1.22
+        * @param string $code
+        * @return array|null
         */
        public function getPluralRuleTypes( $code ) {
                if ( $this->pluralRuleTypes === null ) {
@@ -645,6 +651,8 @@ class LocalisationCache {
        /**
         * Load a plural XML file with the given filename, compile the relevant
         * rules, and save the compiled rules in a process-local cache.
+        *
+        * @param string $fileName
         */
        protected function loadPluralFile( $fileName ) {
                $doc = new DOMDocument;
@@ -675,6 +683,9 @@ class LocalisationCache {
         * Read the data from the source files for a given language, and register
         * the relevant dependencies in the $deps array. If the localisation
         * exists, the data array is returned, otherwise false is returned.
+        *
+        * @param string $code
+        * @param array $deps
         */
        protected function readSourceFilesAndRegisterDeps( $code, &$deps ) {
                global $IP;
@@ -708,9 +719,9 @@ class LocalisationCache {
        /**
         * Merge two localisation values, a primary and a fallback, overwriting the
         * primary value in place.
-        * @param $key
-        * @param $value
-        * @param $fallbackValue
+        * @param string $key
+        * @param mixed $value
+        * @param mixed $fallbackValue
         */
        protected function mergeItem( $key, &$value, $fallbackValue ) {
                if ( !is_null( $value ) ) {
@@ -739,8 +750,8 @@ class LocalisationCache {
        }
 
        /**
-        * @param $value
-        * @param $fallbackValue
+        * @param mixed $value
+        * @param mixed $fallbackValue
         */
        protected function mergeMagicWords( &$value, $fallbackValue ) {
                foreach ( $fallbackValue as $magicName => $fallbackInfo ) {
@@ -763,10 +774,10 @@ class LocalisationCache {
         *
         * Returns true if any data from the extension array was used, false
         * otherwise.
-        * @param $codeSequence
-        * @param $key
-        * @param $value
-        * @param $fallbackValue
+        * @param string $codeSequence
+        * @param string $key
+        * @param mixed $value
+        * @param mixed $fallbackValue
         * @return bool
         */
        protected function mergeExtensionItem( $codeSequence, $key, &$value, $fallbackValue ) {
@@ -784,7 +795,7 @@ class LocalisationCache {
        /**
         * Load localisation data for a given language for both core and extensions
         * and save it to the persistent cache store and the process cache
-        * @param $code
+        * @param string $code
         * @throws MWException
         */
        public function recache( $code ) {
@@ -984,7 +995,7 @@ class LocalisationCache {
         *
         * The preload item will be loaded automatically, improving performance
         * for the commonly-requested items it contains.
-        * @param $data
+        * @param array $data
         * @return array
         */
        protected function buildPreload( $data ) {
@@ -1008,7 +1019,7 @@ class LocalisationCache {
        /**
         * Unload the data for a given language from the object cache.
         * Reduces memory usage.
-        * @param $code
+        * @param string $code
         */
        public function unload( $code ) {
                unset( $this->data[$code] );
@@ -1394,8 +1405,8 @@ class LocalisationCacheBulkLoad extends LocalisationCache {
        private $maxLoadedLangs = 10;
 
        /**
-        * @param $fileName
-        * @param $fileType
+        * @param string $fileName
+        * @param string $fileType
         * @return array|mixed
         */
        protected function readPHPFile( $fileName, $fileType ) {
@@ -1420,8 +1431,8 @@ class LocalisationCacheBulkLoad extends LocalisationCache {
        }
 
        /**
-        * @param $code
-        * @param $key
+        * @param string $code
+        * @param string $key
         * @return mixed
         */
        public function getItem( $code, $key ) {
@@ -1432,10 +1443,10 @@ class LocalisationCacheBulkLoad extends LocalisationCache {
        }
 
        /**
-        * @param $code
-        * @param $key
-        * @param $subkey
-        * @return
+        * @param string $code
+        * @param string $key
+        * @param string $subkey
+        * @return mixed
         */
        public function getSubitem( $code, $key, $subkey ) {
                unset( $this->mruLangs[$code] );
@@ -1445,7 +1456,7 @@ class LocalisationCacheBulkLoad extends LocalisationCache {
        }
 
        /**
-        * @param $code
+        * @param string $code
         */
        public function recache( $code ) {
                parent::recache( $code );
@@ -1455,7 +1466,7 @@ class LocalisationCacheBulkLoad extends LocalisationCache {
        }
 
        /**
-        * @param $code
+        * @param string $code
         */
        public function unload( $code ) {
                unset( $this->mruLangs[$code] );
index 8349f88..a22d802 100644 (file)
  * @since 1.23
  */
 class MapCacheLRU {
-       /** @var Array */
+       /** @var array */
        protected $cache = array(); // (key => value)
 
        protected $maxCacheKeys; // integer; max entries
 
        /**
-        * @param $maxKeys integer Maximum number of entries allowed (min 1).
+        * @param int $maxKeys Maximum number of entries allowed (min 1).
         * @throws MWException When $maxCacheKeys is not an int or =< 0.
         */
        public function __construct( $maxKeys ) {
@@ -52,8 +52,8 @@ class MapCacheLRU {
         * This will prune the cache if it gets too large based on LRU.
         * If the item is already set, it will be pushed to the top of the cache.
         *
-        * @param $key string
-        * @param $value mixed
+        * @param string $key
+        * @param mixed $value
         * @return void
         */
        public function set( $key, $value ) {
@@ -70,7 +70,7 @@ class MapCacheLRU {
        /**
         * Check if a key exists
         *
-        * @param $key string
+        * @param string $key
         * @return bool
         */
        public function has( $key ) {
@@ -82,7 +82,7 @@ class MapCacheLRU {
         * This returns null if the key is not set.
         * If the item is already set, it will be pushed to the top of the cache.
         *
-        * @param $key string
+        * @param string $key
         * @return mixed
         */
        public function get( $key ) {
@@ -97,7 +97,7 @@ class MapCacheLRU {
        /**
         * Clear one or several cache entries, or all cache entries
         *
-        * @param $keys string|Array
+        * @param string|array $keys
         * @return void
         */
        public function clear( $keys = null ) {
@@ -113,7 +113,7 @@ class MapCacheLRU {
        /**
         * Push an entry to the top of the cache
         *
-        * @param $key string
+        * @param string $key
         */
        protected function ping( $key ) {
                $item = $this->cache[$key];
index daaa915..a3cf87e 100644 (file)
@@ -155,8 +155,8 @@ class MessageCache {
        /**
         * Try to load the cache from a local file.
         *
-        * @param string $hash the hash of contents, to check validity.
-        * @param Mixed $code Optional language code, see documenation of load().
+        * @param string $hash The hash of contents, to check validity.
+        * @param string $code Optional language code, see documenation of load().
         * @return array The cache array
         */
        function getLocalCache( $hash, $code ) {
@@ -192,6 +192,9 @@ class MessageCache {
 
        /**
         * Save the cache to a local file.
+        * @param string $serialized
+        * @param string $hash
+        * @param string $code
         */
        function saveToLocal( $serialized, $hash, $code ) {
                global $wgCacheDirectory;
@@ -232,7 +235,7 @@ class MessageCache {
         * or false if populating empty cache fails. Also returns true if MessageCache
         * is disabled.
         *
-        * @param bool|String $code Language to which load messages
+        * @param bool|string $code Language to which load messages
         * @throws MWException
         * @return bool
         */
@@ -580,7 +583,7 @@ class MessageCache {
        /**
         * Is the given cache array expired due to time passing or a version change?
         *
-        * @param $cache
+        * @param array $cache
         * @return bool
         */
        protected function isCacheExpired( $cache ) {
@@ -638,7 +641,7 @@ class MessageCache {
         * a timeout of MessageCache::MSG_LOCK_TIMEOUT.
         *
         * @param string $key
-        * @return Boolean: success
+        * @return bool Success
         */
        function lock( $key ) {
                $lockKey = $key . ':lock';
@@ -687,17 +690,16 @@ class MessageCache {
         *  * Fallbacks will be just that: fallbacks. A fallback language will never be reached if
         *    the message is available *anywhere* in the language for which it is a fallback.
         *
-        * @param string $key the message key
+        * @param string $key The message key
         * @param bool $useDB If true, look for the message in the DB, false
-        *                    to use only the compiled l10n cache.
+        *   to use only the compiled l10n cache.
         * @param bool|string|object $langcode Code of the language to get the message for.
-        *        - If string and a valid code, will create a standard language object
-        *        - If string but not a valid code, will create a basic language object
-        *        - If boolean and false, create object from the current users language
-        *        - If boolean and true, create object from the wikis content language
-        *        - If language object, use it as given
-        * @param bool $isFullKey specifies whether $key is a two part key
-        *                   "msg/lang".
+        *   - If string and a valid code, will create a standard language object
+        *   - If string but not a valid code, will create a basic language object
+        *   - If boolean and false, create object from the current users language
+        *   - If boolean and true, create object from the wikis content language
+        *   - If language object, use it as given
+        * @param bool $isFullKey specifies whether $key is a two part key "msg/lang".
         *
         * @throws MWException when given an invalid key
         * @return string|bool False if the message doesn't exist, otherwise the
@@ -1098,7 +1100,7 @@ class MessageCache {
        }
 
        /**
-        * @param $key
+        * @param string $key
         * @return array
         */
        public function figureMessage( $key ) {
@@ -1124,7 +1126,7 @@ class MessageCache {
         * for which MediaWiki:msgkey exists. If $code is another language code, this
         * will ONLY return message keys for which MediaWiki:msgkey/$code exists.
         * @param string $code Language code
-        * @return array of message keys (strings)
+        * @return array Array of message keys (strings)
         */
        public function getAllMessageKeys( $code ) {
                global $wgContLang;
index ed1e49a..c7ef044 100644 (file)
@@ -29,8 +29,8 @@
 class ObjectFileCache extends FileCacheBase {
        /**
         * Construct an ObjectFileCache from a key and a type
-        * @param $key string
-        * @param $type string
+        * @param string $key
+        * @param string $type
         * @return ObjectFileCache
         */
        public static function newFromKey( $key, $type ) {
index 3ace396..55da52c 100644 (file)
@@ -34,7 +34,7 @@ class ResourceFileCache extends FileCacheBase {
 
        /**
         * Construct an ResourceFileCache from a context
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return ResourceFileCache
         */
        public static function newFromContext( ResourceLoaderContext $context ) {
@@ -58,7 +58,7 @@ class ResourceFileCache extends FileCacheBase {
        /**
         * Check if an RL request can be cached.
         * Caller is responsible for checking if any modules are private.
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return bool
         */
        public static function useFileCache( ResourceLoaderContext $context ) {
index cea3bf2..7f36f5a 100644 (file)
@@ -46,9 +46,9 @@ class UserCache {
        /**
         * Get a property of a user based on their user ID
         *
-        * @param $userId integer User ID
+        * @param int $userId User ID
         * @param string $prop User property
-        * @return mixed The property or false if the user does not exist
+        * @return mixed|bool The property or false if the user does not exist
         */
        public function getProp( $userId, $prop ) {
                if ( !isset( $this->cache[$userId][$prop] ) ) {
@@ -64,7 +64,7 @@ class UserCache {
        /**
         * Get the name of a user or return $ip if the user ID is 0
         *
-        * @param integer $userId
+        * @param int $userId
         * @param string $ip
         * @return string
         * @since 1.22
@@ -77,7 +77,7 @@ class UserCache {
         * Preloads user names for given list of users.
         * @param array $userIds List of user IDs
         * @param array $options Option flags; include 'userpage' and 'usertalk'
-        * @param string $caller the calling method
+        * @param string $caller The calling method
         */
        public function doQuery( array $userIds, $options = array(), $caller = '' ) {
                wfProfileIn( __METHOD__ );
@@ -140,7 +140,7 @@ class UserCache {
        /**
         * Check if a cache type is in $options and was not loaded for this user
         *
-        * @param $uid integer user ID
+        * @param int $uid User ID
         * @param string $type Cache type
         * @param array $options Requested cache types
         * @return bool
index 9254bb4..b502bb9 100644 (file)
@@ -43,10 +43,10 @@ interface DatabaseType {
        /**
         * Open a connection to the database. Usually aborts on failure
         *
-        * @param string $server database server host
-        * @param string $user database user name
-        * @param string $password database user password
-        * @param string $dbName database name
+        * @param string $server Database server host
+        * @param string $user Database user name
+        * @param string $password Database user password
+        * @param string $dbName Database name
         * @return bool
         * @throws DBConnectionError
         */
@@ -336,7 +336,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
        }
 
        /**
-        * @return string command delimiter used by this database engine
+        * @return string Command delimiter used by this database engine
         */
        public function getDelimiter() {
                return $this->delimiter;
@@ -349,7 +349,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
         *   - false to disable debugging
         *   - omitted or null to do nothing
         *
-        * @return bool|null previous value of the flag
+        * @return bool|null Previous value of the flag
         */
        public function debug( $debug = null ) {
                return wfSetBit( $this->mFlags, DBO_DEBUG, $debug );
@@ -475,7 +475,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
         * parameters, the member with the given name is set to the given value.
         *
         * @param string $name
-        * @param $value
+        * @param array $value
         */
        public function setLBInfo( $name, $value = null ) {
                if ( is_null( $value ) ) {
@@ -908,7 +908,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
        }
 
        /**
-        * @param $errno
+        * @param int $errno
         * @param string $errstr
         */
        public function connectionErrorHandler( $errno, $errstr ) {
@@ -1190,7 +1190,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
 
        /**
         * Execute a prepared query with the various arguments
-        * @param string $prepared the prepared sql
+        * @param string $prepared The prepared sql
         * @param mixed $args Either an array here, or put scalars as varargs
         *
         * @return ResultWrapper
@@ -1211,7 +1211,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
         * For faking prepared SQL statements on DBs that don't support it directly.
         *
         * @param string $preparedQuery A 'preparable' SQL statement
-        * @param array $args of Arguments to fill it with
+        * @param array $args Array of Arguments to fill it with
         * @return string Executable SQL
         */
        public function fillPrepared( $preparedQuery, $args ) {
@@ -2063,7 +2063,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
         *    array(baseKeyVal => array(subKeyVal => [ignored], ...), ...)
         * @param string $baseKey Field name to match the base-level keys to (eg 'pl_namespace')
         * @param string $subKey Field name to match the sub-level keys to (eg 'pl_title')
-        * @return Mixed: string SQL fragment, or false if no items in array.
+        * @return string|bool string SQL fragment, or false if no items in array.
         */
        public function makeWhereFrom2d( $data, $baseKey, $subKey ) {
                $conds = array();
@@ -2087,7 +2087,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
        /**
         * Return aggregated value alias
         *
-        * @param $valuedata
+        * @param array $valuedata
         * @param string $valuename
         *
         * @return string
@@ -2161,7 +2161,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
         *
         * @todo Explain what exactly will fail if this is not overridden.
         *
-        * @param $db
+        * @param string $db
         *
         * @return bool Success or failure
         */
@@ -2176,6 +2176,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
 
        /**
         * Get the current DB name
+        * @return string
         */
        public function getDBname() {
                return $this->mDBname;
@@ -2183,6 +2184,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
 
        /**
         * Get the server hostname or IP address
+        * @return string
         */
        public function getServer() {
                return $this->mServer;
@@ -3008,7 +3010,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
        /**
         * Returns true if current database backend supports ORDER BY or LIMIT for separate subqueries
         * within the UNION construct.
-        * @return Boolean
+        * @return bool
         */
        public function unionSupportsOrderAndLimit() {
                return true; // True for almost every DB supported
index 377aca1..3bcf638 100644 (file)
@@ -147,7 +147,7 @@ class DBConnectionError extends DBExpectedError {
        }
 
        /**
-        * @return boolean
+        * @return bool
         */
        function isLoggable() {
                // Don't send to the exception log, already in dberror log
index faed996..0da47d3 100644 (file)
@@ -1222,7 +1222,7 @@ class DatabaseMssql extends DatabaseBase {
         * @param string $field Field name
         * @param string|array $conds Conditions
         * @param string|array $join_conds Join conditions
-        * @return String SQL text
+        * @return string SQL text
         * @since 1.23
         */
        public function buildGroupConcatField( $delim, $table, $field, $conds = '',
index d437c4c..df4be40 100644 (file)
@@ -321,7 +321,7 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
 
        /**
         * @param ResultWrapper|resource $res
-        * @param $n int
+        * @param int $n
         * @return string
         */
        function fieldName( $res, $n ) {
@@ -336,7 +336,7 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
         * Get the name of the specified field in a result
         *
         * @param ResultWrapper|resource $res
-        * @param $n int
+        * @param int $n
         * @return string
         */
        abstract protected function mysqlFieldName( $res, $n );
@@ -344,7 +344,7 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
        /**
         * mysql_field_type() wrapper
         * @param ResultWrapper|resource $res
-        * @param $n int
+        * @param int $n
         * @return string
         */
        public function fieldType( $res, $n ) {
@@ -961,12 +961,12 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
 
        /**
         * DELETE where the condition is a join. MySql uses multi-table deletes.
-        * @param $delTable string
-        * @param $joinTable string
-        * @param $delVar string
-        * @param $joinVar string
-        * @param $conds array|string
-        * @param bool|string $fname bool
+        * @param string $delTable
+        * @param string $joinTable
+        * @param string $delVar
+        * @param string $joinVar
+        * @param array|string $conds
+        * @param bool|string $fname
         * @throws DBUnexpectedError
         * @return bool|ResultWrapper
         */
@@ -1109,8 +1109,8 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
        }
 
        /**
-        * @param $tableName
-        * @param $fName string
+        * @param string $tableName
+        * @param string $fName
         * @return bool|ResultWrapper
         */
        public function dropTable( $tableName, $fName = __METHOD__ ) {
index 0d13433..396de4f 100644 (file)
@@ -621,7 +621,7 @@ class DatabaseOracle extends DatabaseBase {
 
        /**
         * @param string $table
-        * @param $row
+        * @param array $row
         * @param string $fname
         * @return bool
         * @throws DBUnexpectedError
@@ -977,7 +977,7 @@ class DatabaseOracle extends DatabaseBase {
        /**
         * Return aggregated value function call
         *
-        * @param $valuedata
+        * @param array $valuedata
         * @param string $valuename
         * @return mixed
         */
index 6aee528..3433199 100644 (file)
@@ -223,7 +223,7 @@ class SavepointPostgres {
 
        /**
         * @param DatabaseBase $dbw
-        * @param $id
+        * @param int $id
         */
        public function __construct( $dbw, $id ) {
                $this->dbw = $dbw;
@@ -1263,7 +1263,7 @@ __INDEXATTR__;
         * Values may contain magic keywords like "$user"
         * @since 1.19
         *
-        * @param $search_path array list of schemas to be searched by default
+        * @param array $search_path List of schemas to be searched by default
         */
        function setSearchPath( $search_path ) {
                $this->query( "SET search_path = " . implode( ", ", $search_path ) );
index 3313d25..468ed6d 100644 (file)
@@ -240,7 +240,7 @@ class DatabaseSqlite extends DatabaseBase {
        /**
         * @see DatabaseBase::isWriteQuery()
         *
-        * @param $sql string
+        * @param string $sql
         * @return bool
         */
        function isWriteQuery( $sql ) {
@@ -348,7 +348,7 @@ class DatabaseSqlite extends DatabaseBase {
 
        /**
         * @param ResultWrapper $res
-        * @param $n
+        * @param int $n
         * @return bool
         */
        function fieldName( $res, $n ) {
@@ -747,7 +747,7 @@ class DatabaseSqlite extends DatabaseBase {
        }
 
        /**
-        * @param $b
+        * @param string $b
         * @return Blob
         */
        function encodeBlob( $b ) {
@@ -755,7 +755,7 @@ class DatabaseSqlite extends DatabaseBase {
        }
 
        /**
-        * @param $b Blob|string
+        * @param Blob|string $b
         * @return string
         */
        function decodeBlob( $b ) {
index 21ae808..c66cddf 100644 (file)
@@ -39,8 +39,8 @@ interface IORMRow {
         * @deprecated since 1.22
         *
         * @param array|null $fields
-        * @param boolean $override
-        * @param boolean $skipLoaded
+        * @param bool $override
+        * @param bool $skipLoaded
         *
         * @return bool Success indicator
         */
@@ -85,7 +85,7 @@ interface IORMRow {
         *
         * @since 1.20
         *
-        * @return integer|null
+        * @return int|null
         */
        public function getId();
 
@@ -94,7 +94,7 @@ interface IORMRow {
         *
         * @since 1.20
         *
-        * @param integer|null $id
+        * @param int|null $id
         */
        public function setId( $id );
 
@@ -105,7 +105,7 @@ interface IORMRow {
         *
         * @param string $name
         *
-        * @return boolean
+        * @return bool
         */
        public function hasField( $name );
 
@@ -114,7 +114,7 @@ interface IORMRow {
         *
         * @since 1.20
         *
-        * @return boolean
+        * @return bool
         */
        public function hasIdField();
 
@@ -124,7 +124,7 @@ interface IORMRow {
         * @since 1.20
         *
         * @param array $fields The fields to set
-        * @param boolean $override Override already set fields with the provided values?
+        * @param bool $override Override already set fields with the provided values?
         */
        public function setFields( array $fields, $override = true );
 
@@ -135,7 +135,7 @@ interface IORMRow {
         * @since 1.20
         *
         * @param null|array $fields
-        * @param boolean $incNullId
+        * @param bool $incNullId
         *
         * @return array
         */
@@ -147,7 +147,7 @@ interface IORMRow {
         * @since 1.20
         * @deprecated since 1.22
         *
-        * @param boolean $override
+        * @param bool $override
         */
        public function loadDefaults( $override = true );
 
@@ -160,7 +160,7 @@ interface IORMRow {
         * @param string|null $functionName
         * @deprecated since 1.22
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function save( $functionName = null );
 
@@ -170,7 +170,7 @@ interface IORMRow {
         * @since 1.20
         * @deprecated since 1.22
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function remove();
 
@@ -213,9 +213,9 @@ interface IORMRow {
         * @deprecated since 1.22
         *
         * @param string $field
-        * @param integer $amount
+        * @param int $amount
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function addToField( $field, $amount );
 
@@ -244,7 +244,7 @@ interface IORMRow {
         * @since 1.20
         * @deprecated since 1.22
         *
-        * @param boolean $update
+        * @param bool $update
         */
        public function setUpdateSummaries( $update );
 
@@ -254,7 +254,7 @@ interface IORMRow {
         * @since 1.20
         * @deprecated since 1.22
         *
-        * @param boolean $summaryMode
+        * @param bool $summaryMode
         */
        public function setSummaryMode( $summaryMode );
 
index 9e9c526..ab1ab79 100644 (file)
@@ -161,7 +161,7 @@ interface IORMTable {
         * @param array|string|null $fields
         * @param array $conditions
         * @param array $options
-        * @param boolean $collapse Set to false to always return each result row as associative array.
+        * @param bool $collapse Set to false to always return each result row as associative array.
         * @param string|null $functionName
         *
         * @return array of array
@@ -213,7 +213,7 @@ interface IORMTable {
         * @param array|string|null $fields
         * @param array $conditions
         * @param array $options
-        * @param boolean $collapse Set to false to always return each result row as associative array.
+        * @param bool $collapse Set to false to always return each result row as associative array.
         * @param string|null $functionName
         *
         * @return mixed|array|bool False on failure
@@ -229,7 +229,7 @@ interface IORMTable {
         *
         * @param array $conditions
         *
-        * @return boolean
+        * @return bool
         */
        public function has( array $conditions = array() );
 
@@ -238,7 +238,7 @@ interface IORMTable {
         *
         * @since 1.21
         *
-        * @return boolean
+        * @return bool
         */
        public function exists();
 
@@ -254,7 +254,7 @@ interface IORMTable {
         * @param array $conditions
         * @param array $options
         *
-        * @return integer
+        * @return int
         */
        public function count( array $conditions = array(), array $options = array() );
 
@@ -266,7 +266,7 @@ interface IORMTable {
         * @param array $conditions
         * @param string|null $functionName
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function delete( array $conditions, $functionName = null );
 
@@ -275,8 +275,8 @@ interface IORMTable {
         *
         * @since 1.20
         *
-        * @param boolean $requireParams
-        * @param boolean $setDefaults
+        * @param bool $requireParams
+        * @param bool $setDefaults
         *
         * @return array
         */
@@ -298,14 +298,14 @@ interface IORMTable {
         *
         * @since 1.20
         *
-        * @return integer DB_ enum
+        * @return int DB_ enum
         */
        public function getReadDb();
 
        /**
         * Set the database type to use for read operations.
         *
-        * @param integer $db
+        * @param int $db
         *
         * @since 1.20
         */
@@ -316,7 +316,7 @@ interface IORMTable {
         *
         * @since 1.20
         *
-        * @return String|bool The target wiki, in a form that LBFactory
+        * @return string|bool The target wiki, in a form that LBFactory
         *   understands (or false if the local wiki is used)
         */
        public function getTargetWiki();
@@ -372,7 +372,7 @@ interface IORMTable {
         *
         * @see LoadBalancer::reuseConnection
         *
-        * @param DatabaseBase $db the database
+        * @param DatabaseBase $db The database
         *
         * @since 1.20
         */
@@ -388,7 +388,7 @@ interface IORMTable {
         * @param array $values
         * @param array $conditions
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function update( array $values, array $conditions = array() );
 
@@ -490,7 +490,7 @@ interface IORMTable {
         * @since 1.20
         *
         * @param array $data
-        * @param boolean $loadDefaults
+        * @param bool $loadDefaults
         *
         * @return IORMRow
         */
@@ -512,7 +512,7 @@ interface IORMTable {
         *
         * @param string $name
         *
-        * @return boolean
+        * @return bool
         */
        public function canHaveField( $name );
 }
index eca9564..bea195b 100644 (file)
@@ -179,7 +179,7 @@ abstract class LBFactory {
         * Private helper for forEachLBCallMethod
         * @param LoadBalancer $loadBalancer
         * @param string $methodName
-        * @param $args
+        * @param array $args
         */
        function callMethod( $loadBalancer, $methodName, $args ) {
                call_user_func_array( array( $loadBalancer, $methodName ), $args );
index 66e9d12..6219573 100644 (file)
@@ -62,7 +62,7 @@ class LBFactorySingle extends LBFactory {
        }
 
        /**
-        * @param string $cluster external storage cluster, or false for core
+        * @param string $cluster External storage cluster, or false for core
         * @param bool|string $wiki Wiki ID, or false for the current wiki
         * @return LoadBalancerSingle
         */
@@ -87,7 +87,7 @@ class LoadBalancerSingle extends LoadBalancer {
        protected $db;
 
        /**
-        * @param $params array
+        * @param array $params
         */
        function __construct( $params ) {
                $this->db = $params['connection'];
index aab0486..38c3d2d 100644 (file)
@@ -113,7 +113,7 @@ class LoadBalancer {
 
        /**
         * Get or set arbitrary data used by the parent object, usually an LBFactory
-        * @param $x
+        * @param mixed $x
         * @return mixed
         */
        function parentInfo( $x = null ) {
@@ -369,8 +369,8 @@ class LoadBalancer {
 
        /**
         * Wait for a given slave to catch up to the master pos stored in $this
-        * @param $index
-        * @param $open bool
+        * @param int $index
+        * @param bool $open
         * @return bool
         */
        protected function doWait( $index, $open = false ) {
@@ -410,8 +410,8 @@ class LoadBalancer {
         * Get a connection by index
         * This is the main entry point for this class.
         *
-        * @param $i Integer: server index
-        * @param array $groups query groups
+        * @param int $i Server index
+        * @param array $groups Query groups
         * @param bool|string $wiki Wiki ID
         *
         * @throws MWException
@@ -538,7 +538,7 @@ class LoadBalancer {
         *
         * @see LoadBalancer::getConnection() for parameter information
         *
-        * @param integer $db
+        * @param int $db
         * @param mixed $groups
         * @param bool|string $wiki
         * @return DBConnRef
@@ -554,7 +554,7 @@ class LoadBalancer {
         *
         * @see LoadBalancer::getConnection() for parameter information
         *
-        * @param integer $db
+        * @param int $db
         * @param mixed $groups
         * @param bool|string $wiki
         * @return DBConnRef
@@ -571,8 +571,8 @@ class LoadBalancer {
         * On error, returns false, and the connection which caused the
         * error will be available via $this->mErrorConnection.
         *
-        * @param $i Integer server index
-        * @param bool|string $wiki wiki ID to open
+        * @param int $i Server index
+        * @param bool|string $wiki Wiki ID to open
         * @return DatabaseBase
         *
         * @access private
@@ -619,8 +619,8 @@ class LoadBalancer {
         * On error, returns false, and the connection which caused the
         * error will be available via $this->mErrorConnection.
         *
-        * @param $i Integer: server index
-        * @param string $wiki wiki ID to open
+        * @param int $i Server index
+        * @param string $wiki Wiki ID to open
         * @return DatabaseBase
         */
        function openForeignConnection( $i, $wiki ) {
@@ -683,7 +683,7 @@ class LoadBalancer {
        /**
         * Test if the specified index represents an open connection
         *
-        * @param $index Integer: server index
+        * @param int $index Server index
         * @access private
         * @return bool
         */
@@ -700,8 +700,8 @@ class LoadBalancer {
         * Returns a Database object whether or not the connection was successful.
         * @access private
         *
-        * @param $server
-        * @param $dbNameOverride bool
+        * @param array $server
+        * @param bool $dbNameOverride
         * @throws MWException
         * @return DatabaseBase
         */
@@ -811,8 +811,8 @@ class LoadBalancer {
 
        /**
         * Return the server info structure for a given index, or false if the index is invalid.
-        * @param $i
-        * @return bool
+        * @param int $i
+        * @return array|bool
         */
        function getServerInfo( $i ) {
                if ( isset( $this->mServers[$i] ) ) {
@@ -825,8 +825,8 @@ class LoadBalancer {
        /**
         * Sets the server info structure for the given index. Entry at index $i
         * is created if it doesn't exist
-        * @param $i
-        * @param $serverInfo
+        * @param int $i
+        * @param array $serverInfo
         */
        function setServerInfo( $i, $serverInfo ) {
                $this->mServers[$i] = $serverInfo;
@@ -993,8 +993,8 @@ class LoadBalancer {
        }
 
        /**
-        * @param $value null
-        * @return Mixed
+        * @param mixed $value
+        * @return mixed
         */
        function waitTimeout( $value = null ) {
                return wfSetVar( $this->mWaitTimeout, $value );
index e4efc01..327d20d 100644 (file)
@@ -36,7 +36,7 @@ class ORMResult implements ORMIterator {
        protected $res;
 
        /**
-        * @var integer
+        * @var int
         */
        protected $key;
 
@@ -62,7 +62,7 @@ class ORMResult implements ORMIterator {
        }
 
        /**
-        * @param $row
+        * @param bool|object $row
         */
        protected function setCurrent( $row ) {
                if ( $row === false ) {
@@ -73,14 +73,14 @@ class ORMResult implements ORMIterator {
        }
 
        /**
-        * @return integer
+        * @return int
         */
        public function count() {
                return $this->res->numRows();
        }
 
        /**
-        * @return boolean
+        * @return bool
         */
        public function isEmpty() {
                return $this->res->numRows() === 0;
@@ -94,7 +94,7 @@ class ORMResult implements ORMIterator {
        }
 
        /**
-        * @return integer
+        * @return int
         */
        public function key() {
                return $this->key;
@@ -113,7 +113,7 @@ class ORMResult implements ORMIterator {
        }
 
        /**
-        * @return boolean
+        * @return bool
         */
        public function valid() {
                return $this->current !== false;
index 1d11202..b0bade3 100644 (file)
@@ -78,7 +78,7 @@ class ORMRow implements IORMRow {
         *
         * @param IORMTable|null $table Deprecated since 1.22
         * @param array|null $fields
-        * @param boolean $loadDefaults Deprecated since 1.22
+        * @param bool $loadDefaults Deprecated since 1.22
         */
        public function __construct( IORMTable $table = null, $fields = null, $loadDefaults = false ) {
                $this->table = $table;
@@ -101,8 +101,8 @@ class ORMRow implements IORMRow {
         * @deprecated since 1.22
         *
         * @param array|null $fields
-        * @param boolean $override
-        * @param boolean $skipLoaded
+        * @param bool $override
+        * @param bool $skipLoaded
         *
         * @return bool Success indicator
         */
@@ -145,7 +145,7 @@ class ORMRow implements IORMRow {
         * @since 1.20
         *
         * @param string $name Field name
-        * @param $default mixed: Default value to return when none is found
+        * @param mixed $default Default value to return when none is found
         * (default: null)
         *
         * @throws MWException
@@ -167,7 +167,7 @@ class ORMRow implements IORMRow {
         * @since 1.20
         * @deprecated since 1.22
         *
-        * @param $name string
+        * @param string $name
         *
         * @return mixed
         */
@@ -195,7 +195,7 @@ class ORMRow implements IORMRow {
         *
         * @since 1.20
         *
-        * @return integer|null
+        * @return int|null
         */
        public function getId() {
                return $this->getField( 'id' );
@@ -206,7 +206,7 @@ class ORMRow implements IORMRow {
         *
         * @since 1.20
         *
-        * @param integer|null $id
+        * @param int|null $id
         */
        public function setId( $id ) {
                $this->setField( 'id', $id );
@@ -219,7 +219,7 @@ class ORMRow implements IORMRow {
         *
         * @param string $name
         *
-        * @return boolean
+        * @return bool
         */
        public function hasField( $name ) {
                return array_key_exists( $name, $this->fields );
@@ -230,7 +230,7 @@ class ORMRow implements IORMRow {
         *
         * @since 1.20
         *
-        * @return boolean
+        * @return bool
         */
        public function hasIdField() {
                return $this->hasField( 'id' ) && !is_null( $this->getField( 'id' ) );
@@ -278,7 +278,7 @@ class ORMRow implements IORMRow {
         * @since 1.20
         *
         * @param array $fields The fields to set
-        * @param boolean $override Override already set fields with the provided values?
+        * @param bool $override Override already set fields with the provided values?
         */
        public function setFields( array $fields, $override = true ) {
                foreach ( $fields as $name => $value ) {
@@ -295,7 +295,7 @@ class ORMRow implements IORMRow {
         * @since 1.20
         *
         * @param null|array $fields
-        * @param boolean $incNullId
+        * @param bool $incNullId
         *
         * @return array
         */
@@ -328,7 +328,7 @@ class ORMRow implements IORMRow {
         * @since 1.20
         * @deprecated since 1.22
         *
-        * @param boolean $override
+        * @param bool $override
         */
        public function loadDefaults( $override = true ) {
                $this->setFields( $this->table->getDefaults(), $override );
@@ -343,7 +343,7 @@ class ORMRow implements IORMRow {
         *
         * @param string|null $functionName
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function save( $functionName = null ) {
                if ( $this->hasIdField() ) {
@@ -361,7 +361,7 @@ class ORMRow implements IORMRow {
         *
         * @param string|null $functionName
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        protected function saveExisting( $functionName = null ) {
                $dbw = $this->table->getWriteDbConnection();
@@ -400,7 +400,7 @@ class ORMRow implements IORMRow {
         * @param string|null $functionName
         * @param array|null $options
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        protected function insert( $functionName = null, array $options = null ) {
                $dbw = $this->table->getWriteDbConnection();
@@ -430,7 +430,7 @@ class ORMRow implements IORMRow {
         * @since 1.20
         * @deprecated since 1.22, use IORMTable->removeRow
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function remove() {
                $this->beforeRemove();
@@ -524,9 +524,9 @@ class ORMRow implements IORMRow {
         * @deprecated since 1.22, use IORMTable->addToField
         *
         * @param string $field
-        * @param integer $amount
+        * @param int $amount
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function addToField( $field, $amount ) {
                return $this->table->addToField( $this->getUpdateConditions(), $field, $amount );
@@ -561,7 +561,7 @@ class ORMRow implements IORMRow {
         * @since 1.20
         * @deprecated since 1.22
         *
-        * @param boolean $update
+        * @param bool $update
         */
        public function setUpdateSummaries( $update ) {
                $this->updateSummaries = $update;
@@ -573,7 +573,7 @@ class ORMRow implements IORMRow {
         * @since 1.20
         * @deprecated since 1.22
         *
-        * @param boolean $summaryMode
+        * @param bool $summaryMode
         */
        public function setSummaryMode( $summaryMode ) {
                $this->inSummaryMode = $summaryMode;
index 3f91e0a..a06c12c 100644 (file)
@@ -80,7 +80,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         *
         * @since 1.20
         *
-        * @var integer DB_ enum
+        * @var int DB_ enum
         */
        protected $readDb = DB_SLAVE;
 
@@ -311,7 +311,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @param array|string|null $fields
         * @param array $conditions
         * @param array $options
-        * @param boolean $collapse Set to false to always return each result row as associative array.
+        * @param bool $collapse Set to false to always return each result row as associative array.
         * @param string|null $functionName
         *
         * @return array of array
@@ -410,7 +410,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @param array|string|null $fields
         * @param array $conditions
         * @param array $options
-        * @param boolean $collapse Set to false to always return each result row as associative array.
+        * @param bool $collapse Set to false to always return each result row as associative array.
         * @param string|null $functionName
         *
         * @return mixed|array|bool False on failure
@@ -433,7 +433,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         *
         * @param array $conditions
         *
-        * @return boolean
+        * @return bool
         */
        public function has( array $conditions = array() ) {
                return $this->selectRow( array( 'id' ), $conditions ) !== false;
@@ -444,7 +444,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         *
         * @since 1.21
         *
-        * @return boolean
+        * @return bool
         */
        public function exists() {
                $dbr = $this->getReadDbConnection();
@@ -466,7 +466,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @param array $conditions
         * @param array $options
         *
-        * @return integer
+        * @return int
         */
        public function count( array $conditions = array(), array $options = array() ) {
                $res = $this->rawSelectRow(
@@ -487,7 +487,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @param array $conditions
         * @param string|null $functionName
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function delete( array $conditions, $functionName = null ) {
                $dbw = $this->getWriteDbConnection();
@@ -508,8 +508,8 @@ class ORMTable extends DBAccessBase implements IORMTable {
         *
         * @since 1.20
         *
-        * @param boolean $requireParams
-        * @param boolean $setDefaults
+        * @param bool $requireParams
+        * @param bool $setDefaults
         *
         * @return array
         */
@@ -572,7 +572,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         *
         * @since 1.20
         *
-        * @return integer DB_ enum
+        * @return int DB_ enum
         */
        public function getReadDb() {
                return $this->readDb;
@@ -582,7 +582,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * Set the database ID to use for read operations, use DB_XXX constants or
         *   an index to the load balancer setup.
         *
-        * @param integer $db
+        * @param int $db
         *
         * @since 1.20
         */
@@ -595,7 +595,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         *
         * @since 1.20
         *
-        * @return String|bool The target wiki, in a form that LBFactory understands
+        * @return string|bool The target wiki, in a form that LBFactory understands
         *   (or false if the local wiki is used)
         */
        public function getTargetWiki() {
@@ -668,7 +668,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @param array $values
         * @param array $conditions
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function update( array $values, array $conditions = array() ) {
                $dbw = $this->getWriteDbConnection();
@@ -919,7 +919,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @since 1.20
         *
         * @param array $data
-        * @param boolean $loadDefaults
+        * @param bool $loadDefaults
         *
         * @return IORMRow
         */
@@ -933,7 +933,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @since 1.20
         *
         * @param array $fields
-        * @param boolean $loadDefaults
+        * @param bool $loadDefaults
         *
         * @return IORMRow
         */
@@ -961,7 +961,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         *
         * @param string $name
         *
-        * @return boolean
+        * @return bool
         */
        public function canHaveField( $name ) {
                return array_key_exists( $name, $this->getFields() );
@@ -975,7 +975,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @param IORMRow $row The row to save
         * @param string|null $functionName
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function updateRow( IORMRow $row, $functionName = null ) {
                $dbw = $this->getWriteDbConnection();
@@ -1002,7 +1002,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @param string|null $functionName
         * @param array|null $options
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function insertRow( IORMRow $row, $functionName = null, array $options = null ) {
                $dbw = $this->getWriteDbConnection();
@@ -1068,7 +1068,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @param IORMRow $row
         * @param string|null $functionName
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function removeRow( IORMRow $row, $functionName = null ) {
                $success = $this->delete(
@@ -1087,9 +1087,9 @@ class ORMTable extends DBAccessBase implements IORMTable {
         *
         * @param array $conditions
         * @param string $field
-        * @param integer $amount
+        * @param int $amount
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         * @throws MWException
         */
        public function addToField( array $conditions, $field, $amount ) {
index 86f3dda..2117010 100644 (file)
@@ -82,7 +82,7 @@ class MWDebug {
         * enabled.
         *
         * @since 1.19
-        * @param $out OutputPage
+        * @param OutputPage $out
         */
        public static function addModules( OutputPage $out ) {
                if ( self::$enabled ) {
@@ -96,7 +96,7 @@ class MWDebug {
         * @todo Add support for passing objects
         *
         * @since 1.19
-        * @param $str string
+        * @param string $str
         */
        public static function log( $str ) {
                if ( !self::$enabled ) {
@@ -132,12 +132,12 @@ class MWDebug {
         * Adds a warning entry to the log
         *
         * @since 1.19
-        * @param $msg string
-        * @param $callerOffset int
-        * @param $level int A PHP error level. See sendMessage()
-        * @param $log string: 'production' will always trigger a php error, 'auto'
-        *        will trigger an error if $wgDevelopmentWarnings is true, and 'debug'
-        *        will only write to the debug log(s).
+        * @param string $msg
+        * @param int $callerOffset
+        * @param int $level A PHP error level. See sendMessage()
+        * @param string $log 'production' will always trigger a php error, 'auto'
+        *    will trigger an error if $wgDevelopmentWarnings is true, and 'debug'
+        *    will only write to the debug log(s).
         *
         * @return mixed
         */
@@ -178,8 +178,8 @@ class MWDebug {
         * @param string $function Function that is deprecated.
         * @param string|bool $version Version in which the function was deprecated.
         * @param string|bool $component Component to which the function belongs.
-        *     If false, it is assumbed the function is in MediaWiki core.
-        * @param $callerOffset integer: How far up the callstack is the original
+        *    If false, it is assumbed the function is in MediaWiki core.
+        * @param int $callerOffset How far up the callstack is the original
         *    caller. 2 = function that called the function that called
         *    MWDebug::deprecated() (Added in 1.20).
         * @return mixed
@@ -253,9 +253,9 @@ class MWDebug {
        /**
         * Get an array describing the calling function at a specified offset.
         *
-        * @param $callerOffset integer: How far up the callstack is the original
+        * @param int $callerOffset How far up the callstack is the original
         *    caller. 0 = function that called getCallerDescription()
-        * @return array with two keys: 'file' and 'func'
+        * @return array Array with two keys: 'file' and 'func'
         */
        private static function getCallerDescription( $callerOffset ) {
                $callers = wfDebugBacktrace();
@@ -291,10 +291,10 @@ class MWDebug {
         * Send a message to the debug log and optionally also trigger a PHP
         * error, depending on the $level argument.
         *
-        * @param $msg string Message to send
-        * @param $caller array caller description get from getCallerDescription()
-        * @param $group string log group on which to send the message
-        * @param $level int|bool error level to use; set to false to not trigger an error
+        * @param string $msg Message to send
+        * @param array $caller Caller description get from getCallerDescription()
+        * @param string $group Log group on which to send the message
+        * @param int|bool $level Error level to use; set to false to not trigger an error
         */
        private static function sendMessage( $msg, $caller, $group, $level ) {
                $msg .= ' [Called from ' . $caller['func'] . ' in ' . $caller['file'] . ']';
@@ -311,7 +311,7 @@ class MWDebug {
         * Do NOT use this method, use MWDebug::log or wfDebug()
         *
         * @since 1.19
-        * @param $str string
+        * @param string $str
         */
        public static function debugMsg( $str ) {
                global $wgDebugComments, $wgShowDebug;
@@ -325,9 +325,9 @@ class MWDebug {
         * Begins profiling on a database query
         *
         * @since 1.19
-        * @param $sql string
-        * @param $function string
-        * @param $isMaster bool
+        * @param string $sql
+        * @param string $function
+        * @param bool $isMaster
         * @return int ID number of the query to pass to queryTime or -1 if the
         *  debugger is disabled
         */
@@ -351,7 +351,7 @@ class MWDebug {
         * Calculates how long a query took.
         *
         * @since 1.19
-        * @param $id int
+        * @param int $id
         */
        public static function queryTime( $id ) {
                if ( $id === -1 || !self::$enabled ) {
@@ -365,7 +365,7 @@ class MWDebug {
        /**
         * Returns a list of files included, along with their size
         *
-        * @param $context IContextSource
+        * @param IContextSource $context
         * @return array
         */
        protected static function getFilesIncluded( IContextSource $context ) {
@@ -386,7 +386,7 @@ class MWDebug {
         * Returns the HTML to add to the page for the toolbar
         *
         * @since 1.19
-        * @param $context IContextSource
+        * @param IContextSource $context
         * @return string
         */
        public static function getDebugHTML( IContextSource $context ) {
@@ -485,8 +485,8 @@ class MWDebug {
        /**
         * Append the debug info to given ApiResult
         *
-        * @param $context IContextSource
-        * @param $result ApiResult
+        * @param IContextSource $context
+        * @param ApiResult $result
         */
        public static function appendDebugInfoToApiResult( IContextSource $context, ApiResult $result ) {
                if ( !self::$enabled ) {
@@ -519,7 +519,7 @@ class MWDebug {
        /**
         * Returns the HTML to add to the page for the toolbar
         *
-        * @param $context IContextSource
+        * @param IContextSource $context
         * @return array
         */
        public static function getDebugInfo( IContextSource $context ) {
index f0569dd..808626d 100644 (file)
@@ -5,7 +5,7 @@
  */
 class MWCallableUpdate implements DeferrableUpdate {
        /**
-        * @var closure/callback
+        * @var Closure|callable
         */
        private $callback;
 
index 06df440..6dc2e18 100644 (file)
@@ -179,7 +179,7 @@ class SearchUpdate implements DeferrableUpdate {
         * Get a string representation of a title suitable for
         * including in a search index
         *
-        * @return String a stripped-down title string ready for the search index
+        * @return string A stripped-down title string ready for the search index
         */
        private function indexTitle() {
                global $wgContLang;
index 34f6b51..4575e7c 100644 (file)
@@ -45,7 +45,7 @@ class FSFile {
        /**
         * Returns the file system path
         *
-        * @return String
+        * @return string
         */
        public function getPath() {
                return $this->path;
index 8438919..2b18443 100644 (file)
@@ -454,7 +454,7 @@ class FSFileBackend extends FileBackendStore {
 
        /**
         * @param string $fullCont
-        * @param $dirRel
+        * @param string $dirRel
         * @param array $params
         * @return Status
         */
index c759725..79c17aa 100644 (file)
@@ -207,7 +207,7 @@ abstract class FileBackend {
        /**
         * Get the a bitfield of extra features supported by the backend medium
         *
-        * @return integer Bitfield of FileBackend::ATTR_* flags
+        * @return int Bitfield of FileBackend::ATTR_* flags
         * @since 1.23
         */
        public function getFeatures() {
@@ -217,7 +217,7 @@ abstract class FileBackend {
        /**
         * Check if the backend medium supports a field of extra features
         *
-        * @return integer Bitfield of FileBackend::ATTR_* flags
+        * @return int Bitfield of FileBackend::ATTR_* flags
         * @return bool
         * @since 1.23
         */
@@ -941,7 +941,7 @@ abstract class FileBackend {
         * $params include:
         *   - src    : source storage path
         *   - latest : use the latest available data
-        * @return Array|bool Returns false on failure
+        * @return array|bool Returns false on failure
         * @since 1.23
         */
        abstract public function getFileXAttributes( array $params );
@@ -1128,7 +1128,7 @@ abstract class FileBackend {
         * @param array $params Parameters include:
         *   - dir     : storage directory
         *   - topOnly : only return direct child dirs of the directory
-        * @return Traversable|Array|null Returns null on failure
+        * @return Traversable|array|null Returns null on failure
         * @since 1.20
         */
        abstract public function getDirectoryList( array $params );
@@ -1143,7 +1143,7 @@ abstract class FileBackend {
         *
         * @param array $params Parameters include:
         *   - dir : storage directory
-        * @return Traversable|Array|null Returns null on failure
+        * @return Traversable|array|null Returns null on failure
         * @since 1.20
         */
        final public function getTopDirectoryList( array $params ) {
@@ -1166,7 +1166,7 @@ abstract class FileBackend {
         *   - dir        : storage directory
         *   - topOnly    : only return direct child files of the directory (since 1.20)
         *   - adviseStat : set to true if stat requests will be made on the files (since 1.22)
-        * @return Traversable|Array|null Returns null on failure
+        * @return Traversable|array|null Returns null on failure
         */
        abstract public function getFileList( array $params );
 
@@ -1181,7 +1181,7 @@ abstract class FileBackend {
         * @param array $params Parameters include:
         *   - dir        : storage directory
         *   - adviseStat : set to true if stat requests will be made on the files (since 1.22)
-        * @return Traversable|Array|null Returns null on failure
+        * @return Traversable|array|null Returns null on failure
         * @since 1.20
         */
        final public function getTopFileList( array $params ) {
index 2fd1bf6..5776013 100644 (file)
@@ -46,7 +46,7 @@ abstract class FileBackendStore extends FileBackend {
        /** @var array Map of container names to sharding config */
        protected $shardViaHashLevels = array();
 
-       /** @var callback Method to get the MIME type of files */
+       /** @var callable Method to get the MIME type of files */
        protected $mimeCallback;
 
        protected $maxFileSize = 4294967296; // integer bytes (4GiB)
@@ -464,7 +464,7 @@ abstract class FileBackendStore extends FileBackend {
 
        /**
         * @see FileBackendStore::doPrepare()
-        * @param $container
+        * @param string $container
         * @param string $dir
         * @param array $params
         * @return Status
@@ -499,7 +499,7 @@ abstract class FileBackendStore extends FileBackend {
 
        /**
         * @see FileBackendStore::doSecure()
-        * @param $container
+        * @param string $container
         * @param string $dir
         * @param array $params
         * @return Status
@@ -534,7 +534,7 @@ abstract class FileBackendStore extends FileBackend {
 
        /**
         * @see FileBackendStore::doPublish()
-        * @param $container
+        * @param string $container
         * @param string $dir
         * @param array $params
         * @return Status
@@ -590,7 +590,7 @@ abstract class FileBackendStore extends FileBackend {
 
        /**
         * @see FileBackendStore::doClean()
-        * @param $container
+        * @param string $container
         * @param string $dir
         * @param array $params
         * @return Status
@@ -962,7 +962,7 @@ abstract class FileBackendStore extends FileBackend {
         * @param string $container Resolved container name
         * @param string $dir Resolved path relative to container
         * @param array $params
-        * @return Traversable|Array|null Returns null on failure
+        * @return Traversable|array|null Returns null on failure
         */
        abstract public function getDirectoryListInternal( $container, $dir, array $params );
 
@@ -992,7 +992,7 @@ abstract class FileBackendStore extends FileBackend {
         * @param string $container Resolved container name
         * @param string $dir Resolved path relative to container
         * @param array $params
-        * @return Traversable|Array|null Returns null on failure
+        * @return Traversable|array|null Returns null on failure
         */
        abstract public function getFileListInternal( $container, $dir, array $params );
 
index 4e03675..66d8794 100644 (file)
@@ -178,7 +178,7 @@ abstract class FileOp {
         * Check if this operation changes files listed in $paths
         *
         * @param array $deps Prior path reads/writes; format of FileOp::newPredicates()
-        * @return boolean
+        * @return bool
         */
        final public function dependsOn( array $deps ) {
                foreach ( $this->storagePathsChanged() as $path ) {
index e90fcb7..56d7000 100644 (file)
@@ -152,6 +152,8 @@ class FileOpBatch {
                                // We can't continue (even with $ignoreErrors) as $predicates is wrong.
                                // Log the remaining ops as failed for recovery...
                                foreach ( $performOpsBatch as $i => $fileOp ) {
+                                       $status->success[$i] = false;
+                                       ++$status->failCount;
                                        $performOpsBatch[$i]->logFailure( 'attempt_aborted' );
                                }
                                continue;
index 174f9f3..cae4079 100644 (file)
@@ -1394,7 +1394,7 @@ class SwiftFileBackend extends FileBackendStore {
         *
         * @param string $fullCont
         * @param string $type ('info' for a list of object detail maps, 'names' for names only)
-        * @param integer $limit
+        * @param int $limit
         * @param string|null $after
         * @param string|null $prefix
         * @param string|null $delim
@@ -1641,7 +1641,7 @@ class SwiftFileBackend extends FileBackendStore {
         * @param string $func
         * @param array $params
         * @param string $err Error string
-        * @param integer $code HTTP status
+        * @param int $code HTTP status
         * @param string $desc HTTP status description
         */
        public function onError( $status, $func, array $params, $err = '', $code = 0, $desc = '' ) {
index 0464e03..20c7c35 100644 (file)
@@ -150,9 +150,9 @@ abstract class FileJournal {
         * Get an array of file change log entries.
         * A starting change ID and/or limit can be specified.
         *
-        * @param $start integer Starting change ID or null
-        * @param $limit integer Maximum number of items to return
-        * @param &$next string Updated to the ID of the next entry.
+        * @param int $start Starting change ID or null
+        * @param int $limit Maximum number of items to return
+        * @param string &$next Updated to the ID of the next entry.
         * @return array List of associative arrays, each having:
         *     id         : unique, monotonic, ID for this change
         *     batch_uuid : UUID for an operation batch
index 4418a83..b58e901 100644 (file)
@@ -195,7 +195,7 @@ abstract class DBLockManager extends QuorumLockManager {
         * Checks if the DB has not recently had connection/query errors.
         * This just avoids wasting time on doomed connection attempts.
         *
-        * @param $lockDb string
+        * @param string $lockDb
         * @return bool
         */
        protected function cacheCheckFailures( $lockDb ) {
index 888af37..1fc91d8 100644 (file)
@@ -52,7 +52,7 @@ class FileRepo {
        /** @var FileBackend */
        protected $backend;
 
-       /** @var Array Map of zones to config */
+       /** @var array Map of zones to config */
        protected $zones = array();
 
        /** @var string URL of thumb.php */
@@ -305,7 +305,7 @@ class FileRepo {
         * from the URL path, one can configure thumb_handler.php to recognize a special path on the
         * same host name as the wiki that is used for viewing thumbnails.
         *
-        * @param string $zone one of: public, deleted, temp, thumb
+        * @param string $zone One of: public, deleted, temp, thumb
         * @return string|bool String or false
         */
        public function getZoneHandlerUrl( $zone ) {
@@ -966,7 +966,7 @@ class FileRepo {
         *
         * @param string $src Source file system path, storage path, or virtual URL
         * @param string $dst Virtual URL or storage path
-        * @param Array|string|null $options An array consisting of a key named headers
+        * @param array|string|null $options An array consisting of a key named headers
         *   listing extra headers. If a string, taken as content-disposition header.
         *   (Support for array of options new in 1.23)
         * @return FileRepoStatus
@@ -1381,7 +1381,7 @@ class FileRepo {
         * @param mixed $srcRel Relative path for the file to be deleted
         * @param mixed $archiveRel Relative path for the archive location.
         *   Relative to a private archive directory.
-        * @return FileRepoStatus object
+        * @return FileRepoStatus
         */
        public function delete( $srcRel, $archiveRel ) {
                $this->assertWritableRepo(); // fail out if read-only
@@ -1536,7 +1536,7 @@ class FileRepo {
         * Properties should ultimately be obtained via FSFile::getProps().
         *
         * @param string $virtualUrl
-        * @return Array
+        * @return array
         */
        public function getFileProps( $virtualUrl ) {
                $path = $this->resolveToStoragePath( $virtualUrl );
@@ -1560,7 +1560,7 @@ class FileRepo {
         * Get the size of a file with a given virtual URL/storage path
         *
         * @param string $virtualUrl
-        * @return integer|bool False on failure
+        * @return int|bool False on failure
         */
        public function getFileSize( $virtualUrl ) {
                $path = $this->resolveToStoragePath( $virtualUrl );
@@ -1635,7 +1635,7 @@ class FileRepo {
        /**
         * Determine if a relative path is valid, i.e. not blank or involving directory traveral
         *
-        * @param $filename string
+        * @param string $filename
         * @return bool
         */
        public function validateFilename( $filename ) {
@@ -1686,7 +1686,7 @@ class FileRepo {
        /**
         * Create a new fatal error
         *
-        * @param $message
+        * @param string $message
         * @return FileRepoStatus
         */
        public function newFatal( $message /*, parameters...*/ ) {
@@ -1747,7 +1747,7 @@ class FileRepo {
         * Get the portion of the file that contains the origin file name.
         * If that name is too long, then the name "thumbnail.<ext>" will be given.
         *
-        * @param $name string
+        * @param string $name
         * @return string
         */
        public function nameForThumb( $name ) {
index 4be38bf..56848df 100644 (file)
@@ -43,7 +43,7 @@ class FileRepoStatus extends Status {
 
        /**
         * @param FileRepo|bool $repo Default: false
-        * @param $value
+        * @param mixed $value
         * @return FileRepoStatus
         */
        static function newGood( $repo = false, $value = null ) {
index 35ac60f..7f25a00 100644 (file)
@@ -66,7 +66,7 @@ class ForeignAPIRepo extends FileRepo {
        private $mQueryCache = array();
 
        /**
-        * @param $info array|null
+        * @param array|null $info
         */
        function __construct( $info ) {
                global $wgLocalFileRepo;
@@ -319,7 +319,7 @@ class ForeignAPIRepo extends FileRepo {
         * If the url has been requested today, get it from cache
         * Otherwise retrieve remote thumb url, check for local file.
         *
-        * @param string $name is a dbkey form of a title
+        * @param string $name Is a dbkey form of a title
         * @param int $width
         * @param int $height
         * @param string $params Other rendering parameters (page number, etc)
@@ -418,7 +418,7 @@ class ForeignAPIRepo extends FileRepo {
         * @see FileRepo::getZoneUrl()
         * @param string $zone
         * @param string|null $ext Optional file extension
-        * @return String
+        * @return string
         */
        function getZoneUrl( $zone, $ext = null ) {
                switch ( $zone ) {
@@ -501,7 +501,7 @@ class ForeignAPIRepo extends FileRepo {
         * @param string $url
         * @param string $timeout
         * @param array $options
-        * @return bool|String
+        * @return bool|string
         */
        public static function httpGet( $url, $timeout = 'default', $options = array() ) {
                $options['timeout'] = $timeout;
index 18432a1..103e78e 100644 (file)
@@ -90,7 +90,7 @@ class RepoGroup {
         * Construct a group of file repositories.
         *
         * @param array $localInfo Associative array for local repo's info
-        * @param array $foreignInfo of repository info arrays.
+        * @param array $foreignInfo Array of repository info arrays.
         *   Each info array is an associative array with the 'class' member
         *   giving the class name. The entire array is passed to the repository
         *   constructor as the first parameter.
@@ -105,7 +105,7 @@ class RepoGroup {
         * Search repositories for an image.
         * You can also use wfFindFile() to do this.
         *
-        * @param $title Title|string Title object or string
+        * @param Title|string $title Title object or string
         * @param array $options Associative array of options:
         *   time:           requested time for an archived image, or false for the
         *                   current version. An image object will be returned which was
@@ -185,7 +185,7 @@ class RepoGroup {
         * @return array Map of (file name => File objects) for matches
         *
         * @param array $inputItems
-        * @param integer $flags
+        * @param int $flags
         * @return array
         */
        function findFiles( array $inputItems, $flags = 0 ) {
@@ -220,7 +220,7 @@ class RepoGroup {
 
        /**
         * Interface for FileRepo::checkRedirect()
-        * @param $title Title
+        * @param Title $title
         * @return bool
         */
        function checkRedirect( Title $title ) {
@@ -247,9 +247,9 @@ class RepoGroup {
         * Find an instance of the file with this key, created at the specified time
         * Returns false if the file does not exist.
         *
-        * @param string $hash base 36 SHA-1 hash
+        * @param string $hash Base 36 SHA-1 hash
         * @param array $options Option array, same as findFile()
-        * @return File object or false if it is not found
+        * @return File|bool File object or false if it is not found
         */
        function findFileFromKey( $hash, $options = array() ) {
                if ( !$this->reposInitialised ) {
@@ -273,7 +273,7 @@ class RepoGroup {
         * Find all instances of files with this key
         *
         * @param string $hash base 36 SHA-1 hash
-        * @return Array of File objects
+        * @return array Array of File objects
         */
        function findBySha1( $hash ) {
                if ( !$this->reposInitialised ) {
@@ -293,7 +293,7 @@ class RepoGroup {
         * Find all instances of files with this keys
         *
         * @param array $hashes base 36 SHA-1 hashes
-        * @return array of array of File objects
+        * @return array Array of array of File objects
         */
        function findBySha1s( array $hashes ) {
                if ( !$this->reposInitialised ) {
index 21ff65c..fb20e96 100644 (file)
@@ -503,7 +503,7 @@ abstract class File {
         * format does not support that sort of thing, returns
         * an empty array.
         *
-        * @return Array
+        * @return array
         * @since 1.23
         */
        public function getAvailableLanguages() {
@@ -519,7 +519,7 @@ abstract class File {
         * In files that support multiple language, what is the default language
         * to use if none specified.
         *
-        * @return String lang code, or null if filetype doesn't support multiple languages.
+        * @return string Lang code, or null if filetype doesn't support multiple languages.
         * @since 1.23
         */
        public function getDefaultRenderLanguage() {
@@ -853,7 +853,7 @@ abstract class File {
         * Use File::THUMB_FULL_NAME to always get a name like "<params>-<source>".
         * Otherwise, the format may be "<params>-<source>" or "<params>-thumbnail.<ext>".
         *
-        * @param array $params handler-specific parameters
+        * @param array $params Handler-specific parameters
         * @param int $flags Bitfield that supports THUMB_* constants
         * @return string
         */
@@ -941,7 +941,7 @@ abstract class File {
        /**
         * Transform a media file
         *
-        * @param array $params an associative array of handler-specific parameters.
+        * @param array $params An associative array of handler-specific parameters.
         *   Typical keys are width, height and page.
         * @param int $flags A bitfield, may contain self::RENDER_NOW to force rendering
         * @return MediaTransformOutput|bool False on failure
@@ -1188,8 +1188,8 @@ abstract class File {
         *
         * STUB
         * @param int $limit Limit of rows to return
-        * @param string $start timestamp Only revisions older than $start will be returned
-        * @param string $end timestamp Only revisions newer than $end will be returned
+        * @param string $start Only revisions older than $start will be returned
+        * @param string $end Only revisions newer than $end will be returned
         * @param bool $inc Include the endpoints of the time range
         *
         * @return array
@@ -1249,7 +1249,7 @@ abstract class File {
        /**
         * Get the path of an archived file relative to the public zone root
         *
-        * @param bool|string $suffix if not false, the name of an archived thumbnail file
+        * @param bool|string $suffix If not false, the name of an archived thumbnail file
         *
         * @return string
         */
@@ -1268,7 +1268,7 @@ abstract class File {
         * Get the path, relative to the thumbnail zone root, of the
         * thumbnail directory or a particular file if $suffix is specified
         *
-        * @param bool|string $suffix if not false, the name of a thumbnail file
+        * @param bool|string $suffix If not false, the name of a thumbnail file
         * @return string
         */
        function getThumbRel( $suffix = false ) {
@@ -1294,8 +1294,8 @@ abstract class File {
         * Get the path, relative to the thumbnail zone root, for an archived file's thumbs directory
         * or a specific thumb if the $suffix is given.
         *
-        * @param string $archiveName the timestamped name of an archived image
-        * @param bool|string $suffix if not false, the name of a thumbnail file
+        * @param string $archiveName The timestamped name of an archived image
+        * @param bool|string $suffix If not false, the name of a thumbnail file
         * @return string
         */
        function getArchiveThumbRel( $archiveName, $suffix = false ) {
@@ -1312,7 +1312,7 @@ abstract class File {
        /**
         * Get the path of the archived file.
         *
-        * @param bool|string $suffix if not false, the name of an archived file.
+        * @param bool|string $suffix If not false, the name of an archived file.
         * @return string
         */
        function getArchivePath( $suffix = false ) {
@@ -1324,8 +1324,8 @@ abstract class File {
        /**
         * Get the path of an archived file's thumbs, or a particular thumb if $suffix is specified
         *
-        * @param string $archiveName the timestamped name of an archived image
-        * @param bool|string $suffix if not false, the name of a thumbnail file
+        * @param string $archiveName The timestamped name of an archived image
+        * @param bool|string $suffix If not false, the name of a thumbnail file
         * @return string
         */
        function getArchiveThumbPath( $archiveName, $suffix = false ) {
@@ -1381,7 +1381,7 @@ abstract class File {
        /**
         * Get the URL of the archived file's thumbs, or a particular thumb if $suffix is specified
         *
-        * @param string $archiveName the timestamped name of an archived image
+        * @param string $archiveName The timestamped name of an archived image
         * @param bool|string $suffix If not false, the name of a thumbnail file
         * @return string
         */
@@ -1402,7 +1402,7 @@ abstract class File {
        /**
         * Get the URL of the zone directory, or a particular file if $suffix is specified
         *
-        * @param string $zone name of requested zone
+        * @param string $zone Name of requested zone
         * @param bool|string $suffix If not false, the name of a file in zone
         * @return string path
         */
@@ -1420,7 +1420,7 @@ abstract class File {
        /**
         * Get the URL of the thumbnail directory, or a particular file if $suffix is specified
         *
-        * @param bool|string $suffix if not false, the name of a thumbnail file
+        * @param bool|string $suffix If not false, the name of a thumbnail file
         * @return string path
         */
        function getThumbUrl( $suffix = false ) {
@@ -1507,8 +1507,8 @@ abstract class File {
         * Record a file upload in the upload log and the image table
         * STUB
         * Overridden by LocalFile
-        * @param $oldver
-        * @param $desc
+        * @param string $oldver
+        * @param string $desc
         * @param string $license
         * @param string $copyStatus
         * @param string $source
@@ -1535,7 +1535,7 @@ abstract class File {
         * Options to $options include:
         *   - headers : name/value map of HTTP headers to use in response to GET/HEAD requests
         *
-        * @param string $srcPath local filesystem path to the source image
+        * @param string $srcPath Local filesystem path to the source image
         * @param int $flags A bitwise combination of:
         *   File::DELETE_SOURCE    Delete the source file, i.e. move rather than copy
         * @param array $options Optional additional parameters
@@ -1601,7 +1601,7 @@ abstract class File {
         * Is this file a "deleted" file in a private archive?
         * STUB
         *
-        * @param int $field one of DELETED_* bitfield constants
+        * @param int $field One of DELETED_* bitfield constants
         * @return bool
         */
        function isDeleted( $field ) {
@@ -1638,7 +1638,7 @@ abstract class File {
         * and logging are caller's responsibility
         *
         * @param Title $target New file name
-        * @return FileRepoStatus object.
+        * @return FileRepoStatus
         */
        function move( $target ) {
                $this->readOnlyError();
@@ -1654,7 +1654,7 @@ abstract class File {
         *
         * @param string $reason
         * @param bool $suppress Hide content from sysops?
-        * @return bool on success, false on some kind of failure
+        * @return bool Boolean on success, false on some kind of failure
         * STUB
         * Overridden by LocalFile
         */
@@ -1668,10 +1668,10 @@ abstract class File {
         *
         * May throw database exceptions on error.
         *
-        * @param array $versions set of record ids of deleted items to restore,
+        * @param array $versions Set of record ids of deleted items to restore,
         *   or empty to restore all revisions.
-        * @param bool $unsuppress remove restrictions on content upon restoration?
-        * @return int|bool the number of file revisions restored if successful,
+        * @param bool $unsuppress Remove restrictions on content upon restoration?
+        * @return int|bool The number of file revisions restored if successful,
         *   or false on failure
         * STUB
         * Overridden by LocalFile
@@ -1869,7 +1869,7 @@ abstract class File {
        /**
         * Get an associative array containing information about a file in the local filesystem.
         *
-        * @param string $path absolute local filesystem path
+        * @param string $path Absolute local filesystem path
         * @param string|bool $ext The file extension, or true to extract it from
         *   the filename. Set it to false to ignore the extension.
         *
@@ -1892,7 +1892,7 @@ abstract class File {
         * 160 log 2 / log 36 = 30.95, so the 160-bit hash fills 31 digits in base 36
         * fairly neatly.
         *
-        * @param $path string
+        * @param string $path
         * @return bool|string False on failure
         * @deprecated since 1.19
         */
index 690d1b8..3d5d5d6 100644 (file)
@@ -33,9 +33,9 @@ class ForeignAPIFile extends File {
        protected $repoClass = 'ForeignApiRepo';
 
        /**
-        * @param $title
+        * @param Title|string|bool $title
         * @param ForeignApiRepo $repo
-        * @param $info
+        * @param array $info
         * @param bool $exists
         */
        function __construct( $title, $repo, $info, $exists = false ) {
@@ -236,7 +236,7 @@ class ForeignAPIFile extends File {
        }
 
        /**
-        * @return null|String
+        * @return null|string
         */
        function getSha1() {
                return isset( $this->mInfo['sha1'] )
index 36558c4..c5ff4a7 100644 (file)
@@ -65,14 +65,14 @@ class ForeignDBFile extends LocalFile {
        }
 
        /**
-        * @param $oldver
-        * @param $desc string
-        * @param $license string
-        * @param $copyStatus string
-        * @param $source string
-        * @param $watch bool
-        * @param $timestamp bool|string
-        * @param $user User object or null to use $wgUser
+        * @param string $oldver
+        * @param string $desc
+        * @param string $license
+        * @param string $copyStatus
+        * @param string $source
+        * @param bool $watch
+        * @param bool|string $timestamp
+        * @param User $user User object or null to use $wgUser
         * @return bool
         * @throws MWException
         */
index eb55e82..f9b4f47 100644 (file)
@@ -131,7 +131,7 @@ class LocalFile extends File {
         *
         * @param Title $title
         * @param FileRepo $repo
-        * @param $unused
+        * @param null $unused
         *
         * @return LocalFile
         */
@@ -207,6 +207,8 @@ class LocalFile extends File {
        /**
         * Constructor.
         * Do not call this except from inside a repo class.
+        * @param Title $title
+        * @param FileRepo $repo
         */
        function __construct( $title, $repo ) {
                parent::__construct( $title, $repo );
@@ -322,7 +324,7 @@ class LocalFile extends File {
        }
 
        /**
-        * @param $prefix string
+        * @param string $prefix
         * @return array
         */
        function getCacheFields( $prefix = 'img_' ) {
@@ -455,8 +457,8 @@ class LocalFile extends File {
        /**
         * Decode a row from the database (either object or array) to an array
         * with timestamps and MIME types decoded, and the field prefix removed.
-        * @param $row
-        * @param $prefix string
+        * @param object $row
+        * @param string $prefix
         * @throws MWException
         * @return array
         */
@@ -482,6 +484,9 @@ class LocalFile extends File {
 
        /**
         * Load file metadata from a DB result row
+        *
+        * @param object $row
+        * @param string $prefix
         */
        function loadFromRow( $row, $prefix = 'img_' ) {
                $this->dataLoaded = true;
@@ -499,7 +504,7 @@ class LocalFile extends File {
 
        /**
         * Load file metadata from cache or DB, unless already loaded
-        * @param integer $flags
+        * @param int $flags
         */
        function load( $flags = 0 ) {
                if ( !$this->dataLoaded ) {
@@ -604,6 +609,8 @@ class LocalFile extends File {
         *
         * If 'mime' is given, it will be split into major_mime/minor_mime.
         * If major_mime/minor_mime are given, $this->mime will also be set.
+        *
+        * @param array $info
         */
        function setProps( $info ) {
                $this->dataLoaded = true;
@@ -791,6 +798,8 @@ class LocalFile extends File {
         * @todo Do we still care about this? Perhaps a maintenance script
         *   can be made instead. Enabling this code results in a serious
         *   RTT regression for wikis without 404 handling.
+        *
+        * @param string $thumbName
         */
        function migrateThumbFile( $thumbName ) {
                /* Old code for bug 2532
@@ -1124,7 +1133,7 @@ class LocalFile extends File {
         *   current time
         * @param User|null $user User object or null to use $wgUser
         *
-        * @return FileRepoStatus object. On success, the value member contains the
+        * @return FileRepoStatus On success, the value member contains the
         *     archive name, or an empty string if it was a new file.
         */
        function upload( $srcPath, $comment, $pageText, $flags = 0, $props = false,
@@ -1684,7 +1693,7 @@ class LocalFile extends File {
         *
         * May throw database exceptions on error.
         *
-        * @param array $versions set of record ids of deleted items to restore,
+        * @param array $versions Set of record ids of deleted items to restore,
         *   or empty to restore all revisions.
         * @param bool $unsuppress
         * @return FileRepoStatus
@@ -2219,7 +2228,7 @@ class LocalFileDeleteBatch {
 
        /**
         * Removes non-existent files from a deletion batch.
-        * @param $batch array
+        * @param array $batch
         * @return array
         */
        function removeNonexistentFiles( $batch ) {
index 2eaf1fb..1c7762b 100644 (file)
@@ -49,9 +49,9 @@ class CliInstaller extends Installer {
        /**
         * Constructor.
         *
-        * @param $siteName
-        * @param $admin
-        * @param $option Array
+        * @param string $siteName
+        * @param string $admin
+        * @param array $option
         */
        function __construct( $siteName, $admin = null, array $option = array() ) {
                global $wgContLang;
@@ -159,7 +159,7 @@ class CliInstaller extends Installer {
        }
 
        /**
-        * @param $params array
+        * @param array $params
         *
         * @return string
         */
index 321884b..8a01b32 100644 (file)
@@ -219,7 +219,7 @@ abstract class DatabaseInstaller {
        /**
         * Get the DBMS-specific options for LocalSettings.php generation.
         *
-        * @return String
+        * @return string
         */
        abstract public function getLocalSettings();
 
@@ -267,7 +267,7 @@ abstract class DatabaseInstaller {
        /**
         * Perform database upgrades
         *
-        * @return Boolean
+        * @return bool
         */
        public function doUpgrade() {
                $this->setupSchemaVars();
@@ -314,7 +314,7 @@ abstract class DatabaseInstaller {
        /**
         * Construct and initialise parent.
         * This is typically only called from Installer::getDBInstaller()
-        * @param $parent
+        * @param WebInstaller $parent
         */
        public function __construct( $parent ) {
                $this->parent = $parent;
@@ -324,7 +324,7 @@ abstract class DatabaseInstaller {
         * Convenience function.
         * Check if a named extension is present.
         *
-        * @param $name
+        * @param string $name
         * @return bool
         */
        protected static function checkExtension( $name ) {
@@ -333,7 +333,7 @@ abstract class DatabaseInstaller {
 
        /**
         * Get the internationalised name for this DBMS.
-        * @return String
+        * @return string
         */
        public function getReadableName() {
                // Messages: config-type-mysql, config-type-postgres, config-type-sqlite,
@@ -360,8 +360,8 @@ abstract class DatabaseInstaller {
 
        /**
         * Get a variable, taking local defaults into account.
-        * @param $var string
-        * @param $default null
+        * @param string $var
+        * @param mixed|null $default
         * @return mixed
         */
        public function getVar( $var, $default = null ) {
@@ -378,8 +378,8 @@ abstract class DatabaseInstaller {
 
        /**
         * Convenience alias for $this->parent->setVar()
-        * @param $name string
-        * @param $value mixed
+        * @param string $name
+        * @param mixed $value
         */
        public function setVar( $name, $value ) {
                $this->parent->setVar( $name, $value );
@@ -388,10 +388,10 @@ abstract class DatabaseInstaller {
        /**
         * Get a labelled text box to configure a local variable.
         *
-        * @param $var string
-        * @param $label string
-        * @param $attribs array
-        * @param $helpData string
+        * @param string $var
+        * @param string $label
+        * @param array $attribs
+        * @param string $helpData
         * @return string
         */
        public function getTextBox( $var, $label, $attribs = array(), $helpData = "" ) {
@@ -415,10 +415,10 @@ abstract class DatabaseInstaller {
         * Get a labelled password box to configure a local variable.
         * Implements password hiding.
         *
-        * @param $var string
-        * @param $label string
-        * @param $attribs array
-        * @param $helpData string
+        * @param string $var
+        * @param string $label
+        * @param array $attribs
+        * @param string $helpData
         * @return string
         */
        public function getPasswordBox( $var, $label, $attribs = array(), $helpData = "" ) {
@@ -464,8 +464,7 @@ abstract class DatabaseInstaller {
        /**
         * Get a set of labelled radio buttons.
         *
-        * @param $params Array:
-        *    Parameters are:
+        * @param array $params Parameters are:
         *      var:            The variable to be configured (required)
         *      label:          The message name for the label (required)
         *      itemLabelPrefix: The message name prefix for the item labels (required)
@@ -485,7 +484,7 @@ abstract class DatabaseInstaller {
         * Convenience function to set variables based on form data.
         * Assumes that variables containing "password" in the name are (potentially
         * fake) passwords.
-        * @param $varNames Array
+        * @param array $varNames
         * @return array
         */
        public function setVarsFromRequest( $varNames ) {
@@ -500,7 +499,7 @@ abstract class DatabaseInstaller {
         * Traditionally, this is done by testing for the existence of either
         * the revision table or the cur table.
         *
-        * @return Boolean
+        * @return bool
         */
        public function needsUpgrade() {
                $status = $this->getConnection();
@@ -519,7 +518,7 @@ abstract class DatabaseInstaller {
        /**
         * Get a standard install-user fieldset.
         *
-        * @return String
+        * @return string
         */
        public function getInstallUserBox() {
                return Html::openElement( 'fieldset' ) .
@@ -554,7 +553,7 @@ abstract class DatabaseInstaller {
         * @param string|bool $noCreateMsg Message to display instead of the creation checkbox.
         *   Set this to false to show a creation checkbox (default).
         *
-        * @return String
+        * @return string
         */
        public function getWebUserBox( $noCreateMsg = false ) {
                $wrapperStyle = $this->getVar( '_SameAccount' ) ? 'display: none' : '';
index b7a718f..82a358e 100644 (file)
@@ -232,9 +232,9 @@ abstract class DatabaseUpdater {
        /**
         * @since 1.19
         *
-        * @param $tableName string
-        * @param $indexName string
-        * @param $sqlPath string
+        * @param string $tableName
+        * @param string $indexName
+        * @param string $sqlPath
         */
        public function addExtensionIndex( $tableName, $indexName, $sqlPath ) {
                $this->extensionUpdates[] = array( 'addIndex', $tableName, $indexName, $sqlPath, true );
@@ -244,9 +244,9 @@ abstract class DatabaseUpdater {
         *
         * @since 1.19
         *
-        * @param $tableName string
-        * @param $columnName string
-        * @param $sqlPath string
+        * @param string $tableName
+        * @param string $columnName
+        * @param string $sqlPath
         */
        public function addExtensionField( $tableName, $columnName, $sqlPath ) {
                $this->extensionUpdates[] = array( 'addField', $tableName, $columnName, $sqlPath, true );
@@ -256,9 +256,9 @@ abstract class DatabaseUpdater {
         *
         * @since 1.20
         *
-        * @param $tableName string
-        * @param $columnName string
-        * @param $sqlPath string
+        * @param string $tableName
+        * @param string $columnName
+        * @param string $sqlPath
         */
        public function dropExtensionField( $tableName, $columnName, $sqlPath ) {
                $this->extensionUpdates[] = array( 'dropField', $tableName, $columnName, $sqlPath, true );
@@ -281,8 +281,8 @@ abstract class DatabaseUpdater {
         *
         * @since 1.20
         *
-        * @param $tableName string
-        * @param $sqlPath string
+        * @param string $tableName
+        * @param string $sqlPath
         */
        public function dropExtensionTable( $tableName, $sqlPath ) {
                $this->extensionUpdates[] = array( 'dropTable', $tableName, $sqlPath, true );
@@ -296,7 +296,7 @@ abstract class DatabaseUpdater {
         * @param string $tableName The table name
         * @param string $oldIndexName The old index name
         * @param string $newIndexName The new index name
-        * @param $skipBothIndexExistWarning Boolean: Whether to warn if both the old
+        * @param bool $skipBothIndexExistWarning Whether to warn if both the old
         * and the new indexes exist. [facultative; by default, false]
         * @param string $sqlPath The path to the SQL change path
         */
@@ -329,7 +329,7 @@ abstract class DatabaseUpdater {
         *
         * @since 1.20
         *
-        * @param $tableName string
+        * @param string $tableName
         * @return bool
         */
        public function tableExists( $tableName ) {
@@ -352,7 +352,7 @@ abstract class DatabaseUpdater {
        /**
         * Get the list of extension-defined updates
         *
-        * @return Array
+        * @return array
         */
        protected function getExtensionUpdates() {
                return $this->extensionUpdates;
@@ -371,6 +371,7 @@ abstract class DatabaseUpdater {
         * @since 1.21
         *
         * Writes the schema updates desired to a file for the DB Admin to run.
+        * @param array $schemaUpdate
         */
        private function writeSchemaUpdateFile( $schemaUpdate = array() ) {
                $updates = $this->updatesSkipped;
@@ -423,9 +424,8 @@ abstract class DatabaseUpdater {
        /**
         * Helper function for doUpdates()
         *
-        * @param array $updates of updates to run
-        * @param bool $passSelf Whether to pass this object we calling external
-        *                  functions
+        * @param array $updates Array of updates to run
+        * @param bool $passSelf Whether to pass this object we calling external functions
         */
        private function runUpdates( array $updates, $passSelf ) {
                $updatesDone = array();
@@ -507,7 +507,7 @@ abstract class DatabaseUpdater {
         * class does). Pre-1.17 wikis won't have this column, and really old wikis
         * might not even have updatelog at all
         *
-        * @return boolean
+        * @return bool
         */
        protected function canUseNewUpdatelog() {
                return $this->db->tableExists( 'updatelog', __METHOD__ ) &&
@@ -627,7 +627,7 @@ abstract class DatabaseUpdater {
         * Applies a SQL patch
         *
         * @param string $path Path to the patch file
-        * @param $isFullPath Boolean Whether to treat $path as a relative or not
+        * @param bool $isFullPath Whether to treat $path as a relative or not
         * @param string $msg Description of the patch
         * @return bool False if patch is skipped.
         */
@@ -780,7 +780,7 @@ abstract class DatabaseUpdater {
         * @param string $table Name of the table to modify
         * @param string $oldIndex Old name of the index
         * @param string $newIndex New name of the index
-        * @param $skipBothIndexExistWarning Boolean: Whether to warn if both the
+        * @param bool $skipBothIndexExistWarning Whether to warn if both the
         * old and the new indexes exist.
         * @param string $patch Path to the patch file
         * @param bool $fullpath Whether to treat $patch path as a relative or not
index 48f850f..372091a 100644 (file)
@@ -71,7 +71,7 @@ abstract class Installer {
        /**
         * Minimum memory size in MB.
         *
-        * @var integer
+        * @var int
         */
        protected $minMemorySize = 50;
 
@@ -326,19 +326,19 @@ abstract class Installer {
         * The parameters are like parameters to wfMessage().
         * The messages will be in wikitext format, which will be converted to an
         * output format such as HTML or text before being sent to the user.
-        * @param $msg
+        * @param string $msg
         */
        abstract public function showMessage( $msg /*, ... */ );
 
        /**
         * Same as showMessage(), but for displaying errors
-        * @param $msg
+        * @param string $msg
         */
        abstract public function showError( $msg /*, ... */ );
 
        /**
         * Show a message to the installing user by using a Status object
-        * @param $status Status
+        * @param Status $status
         */
        abstract public function showStatusMessage( Status $status );
 
@@ -448,8 +448,8 @@ abstract class Installer {
        /**
         * Set a MW configuration variable, or internal installer configuration variable.
         *
-        * @param $name String
-        * @param $value Mixed
+        * @param string $name
+        * @param mixed $value
         */
        public function setVar( $name, $value ) {
                $this->settings[$name] = $value;
@@ -460,8 +460,8 @@ abstract class Installer {
         * The defaults come from $GLOBALS (ultimately DefaultSettings.php).
         * Installer variables are typically prefixed by an underscore.
         *
-        * @param $name String
-        * @param $default Mixed
+        * @param string $name
+        * @param mixed $default
         *
         * @return mixed
         */
@@ -485,7 +485,7 @@ abstract class Installer {
        /**
         * Get an instance of DatabaseInstaller for the specified DB type.
         *
-        * @param $type Mixed: DB installer for which is needed, false to use default.
+        * @param mixed $type DB installer for which is needed, false to use default.
         *
         * @return DatabaseInstaller
         */
@@ -507,7 +507,7 @@ abstract class Installer {
        /**
         * Determine if LocalSettings.php exists. If it does, return its variables.
         *
-        * @return Array
+        * @return array
         */
        public static function getExistingLocalSettings() {
                global $IP;
@@ -532,7 +532,7 @@ abstract class Installer {
         * This is a security mechanism to avoid compromise of the password in the
         * event of session ID compromise.
         *
-        * @param $realPassword String
+        * @param string $realPassword
         *
         * @return string
         */
@@ -544,8 +544,8 @@ abstract class Installer {
         * Set a variable which stores a password, except if the new value is a
         * fake password in which case leave it as it is.
         *
-        * @param $name String
-        * @param $value Mixed
+        * @param string $name
+        * @param mixed $value
         */
        public function setPassword( $name, $value ) {
                if ( !preg_match( '/^\*+$/', $value ) ) {
@@ -591,9 +591,9 @@ abstract class Installer {
         * whatever, this function is guarded to catch the attempted DB access and to present
         * some fallback text.
         *
-        * @param $text String
-        * @param $lineStart Boolean
-        * @return String
+        * @param string $text
+        * @param bool $lineStart
+        * @return string
         */
        public function parse( $text, $lineStart = false ) {
                global $wgParser;
@@ -632,7 +632,7 @@ abstract class Installer {
         * Install step which adds a row to the site_stats table with appropriate
         * initial values.
         *
-        * @param $installer DatabaseInstaller
+        * @param DatabaseInstaller $installer
         *
         * @return Status
         */
@@ -969,7 +969,7 @@ abstract class Installer {
 
        /**
         * Helper function to be called from envCheckServer()
-        * @return String
+        * @return string
         */
        abstract protected function envGetDefaultServer();
 
@@ -1120,7 +1120,7 @@ abstract class Installer {
 
        /**
         * Convert a hex string representing a Unicode code point to that code point.
-        * @param $c String
+        * @param string $c
         * @return string
         */
        protected function unicodeChar( $c ) {
@@ -1223,7 +1223,7 @@ abstract class Installer {
         * of known Unix-like defaults, as well as the PATH environment variable
         * (which should maybe make it work for Windows?)
         *
-        * @return Array
+        * @return array
         */
        protected static function getPossibleBinPaths() {
                return array_merge(
@@ -1242,9 +1242,9 @@ abstract class Installer {
         *
         * @param string $path path to search
         * @param array $names of executable names
-        * @param $versionInfo Boolean false or array with two members:
-        *         0 => Command to run for version check, with $1 for the full executable name
-        *         1 => String to compare the output with
+        * @param array|bool $versionInfo False or array with two members:
+        *   0 => Command to run for version check, with $1 for the full executable name
+        *   1 => String to compare the output with
         *
         * If $versionInfo is not false, only executables with a version
         * matching $versionInfo[1] will be returned.
@@ -1282,8 +1282,8 @@ abstract class Installer {
         * @see locateExecutable()
         * @param array $names Array of possible names.
         * @param array|bool $versionInfo Default: false or array with two members:
-        *         0 => Command to run for version check, with $1 for the full executable name
-        *         1 => String to compare the output with
+        *   0 => Command to run for version check, with $1 for the full executable name
+        *   1 => String to compare the output with
         *
         * If $versionInfo is not false, only executables with a version
         * matching $versionInfo[1] will be returned.
@@ -1304,8 +1304,8 @@ abstract class Installer {
         * Checks if scripts located in the given directory can be executed via the given URL.
         *
         * Used only by environment checks.
-        * @param $dir string
-        * @param $url string
+        * @param string $dir
+        * @param string $url
         * @return bool|int|string
         */
        public function dirIsExecutable( $dir, $url ) {
@@ -1370,7 +1370,7 @@ abstract class Installer {
        /**
         * ParserOptions are constructed before we determined the language, so fix it
         *
-        * @param $lang Language
+        * @param Language $lang
         */
        public function setParserLanguage( $lang ) {
                $this->parserOptions->setTargetLanguage( $lang );
@@ -1379,7 +1379,7 @@ abstract class Installer {
 
        /**
         * Overridden by WebInstaller to provide lastPage parameters.
-        * @param $page string
+        * @param string $page
         * @return string
         */
        protected function getDocUrl( $page ) {
@@ -1464,7 +1464,7 @@ abstract class Installer {
         * There must be a config-install-$name message defined per step, which will
         * be shown on install.
         *
-        * @param $installer DatabaseInstaller so we can make callbacks
+        * @param DatabaseInstaller $installer DatabaseInstaller so we can make callbacks
         * @return array
         */
        protected function getInstallSteps( DatabaseInstaller $installer ) {
@@ -1518,7 +1518,7 @@ abstract class Installer {
         * @param array $startCB A callback array for the beginning of each step
         * @param array $endCB A callback array for the end of each step
         *
-        * @return Array of Status objects
+        * @return array Array of Status objects
         */
        public function performInstallation( $startCB, $endCB ) {
                $installResults = array();
@@ -1567,7 +1567,7 @@ abstract class Installer {
         * Generate a secret value for variables using our CryptRand generator.
         * Produce a warning if the random source was insecure.
         *
-        * @param $keys Array
+        * @param array $keys
         * @return Status
         */
        protected function doGenerateKeys( $keys ) {
@@ -1637,7 +1637,7 @@ abstract class Installer {
        }
 
        /**
-        * @param $s Status
+        * @param Status $s
         */
        private function subscribeToMediaWikiAnnounce( Status $s ) {
                $params = array(
@@ -1668,7 +1668,7 @@ abstract class Installer {
        /**
         * Insert Main Page with default content.
         *
-        * @param $installer DatabaseInstaller
+        * @param DatabaseInstaller $installer
         * @return Status
         */
        protected function createMainpage( DatabaseInstaller $installer ) {
@@ -1733,7 +1733,7 @@ abstract class Installer {
         *
         * @param array $callback A valid installation callback array, in this form:
         *    array( 'name' => 'some-unique-name', 'callback' => array( $obj, 'function' ) );
-        * @param string $findStep the step to find. Omit to put the step at the beginning
+        * @param string $findStep The step to find. Omit to put the step at the beginning
         */
        public function addInstallStep( $callback, $findStep = 'BEGINNING' ) {
                $this->extraInstallSteps[$findStep][] = $callback;
index fe036ad..4416aff 100644 (file)
@@ -43,7 +43,7 @@ class LocalSettingsGenerator {
        /**
         * Constructor.
         *
-        * @param $installer Installer subclass
+        * @param Installer $installer
         */
        public function __construct( Installer $installer ) {
                $this->installer = $installer;
@@ -105,9 +105,9 @@ class LocalSettingsGenerator {
        /**
         * Returns the escaped version of a string of php code.
         *
-        * @param $string String
+        * @param string $string
         *
-        * @return String
+        * @return string
         */
        public static function escapePhpString( $string ) {
                if ( is_array( $string ) || is_object( $string ) ) {
@@ -131,7 +131,7 @@ class LocalSettingsGenerator {
         * Return the full text of the generated LocalSettings.php file,
         * including the extensions
         *
-        * @return String
+        * @return string
         */
        public function getText() {
                $localSettings = $this->getDefaultText();
@@ -164,7 +164,7 @@ class LocalSettingsGenerator {
        }
 
        /**
-        * @return String
+        * @return string
         */
        protected function buildMemcachedServerList() {
                $servers = $this->values['_MemCachedServers'];
@@ -185,7 +185,7 @@ class LocalSettingsGenerator {
        }
 
        /**
-        * @return String
+        * @return string
         */
        protected function getDefaultText() {
                if ( !$this->values['wgImageMagickConvertCommand'] ) {
index d6c84eb..248a6e4 100644 (file)
@@ -66,7 +66,7 @@ class MssqlInstaller extends DatabaseInstaller {
        }
 
        /**
-        * @return Bool
+        * @return bool
         */
        public function isCompiled() {
                return self::checkExtension( 'sqlsrv' );
@@ -615,7 +615,7 @@ class MssqlInstaller extends DatabaseInstaller {
        /**
         * Try to see if the login exists
         * @param string $user Username to check
-        * @return boolean
+        * @return bool
         */
        private function loginExists( $user ) {
                $res = $this->db->selectField( 'sys.sql_logins', 1, array( 'name' => $user ) );
@@ -626,7 +626,7 @@ class MssqlInstaller extends DatabaseInstaller {
         * Try to see if the user account exists
         * We assume we already have the appropriate database selected
         * @param string $user Username to check
-        * @return boolean
+        * @return bool
         */
        private function userExists( $user ) {
                $res = $this->db->selectField( 'sys.sysusers', 1, array( 'name' => $user ) );
@@ -636,7 +636,7 @@ class MssqlInstaller extends DatabaseInstaller {
        /**
         * Try to see if a given database exists
         * @param string $dbName Database name to check
-        * @return boolean
+        * @return bool
         */
        private function databaseExists( $dbName ) {
                $res = $this->db->selectField( 'sys.databases', 1, array( 'name' => $dbName ) );
@@ -647,7 +647,7 @@ class MssqlInstaller extends DatabaseInstaller {
         * Try to see if a given schema exists
         * We assume we already have the appropriate database selected
         * @param string $schemaName Schema name to check
-        * @return boolean
+        * @return bool
         */
        private function schemaExists( $schemaName ) {
                $res = $this->db->selectField( 'sys.schemas', 1, array( 'name' => $schemaName ) );
@@ -658,7 +658,7 @@ class MssqlInstaller extends DatabaseInstaller {
         * Try to see if a given fulltext catalog exists
         * We assume we already have the appropriate database selected
         * @param string $schemaName Catalog name to check
-        * @return boolean
+        * @return bool
         */
        private function catalogExists( $catalogName ) {
                $res = $this->db->selectField( 'sys.fulltext_catalogs', 1, array( 'name' => $catalogName ) );
index 4c72528..10f6692 100644 (file)
@@ -65,7 +65,7 @@ class MysqlInstaller extends DatabaseInstaller {
        }
 
        /**
-        * @return Bool
+        * @return bool
         */
        public function isCompiled() {
                return self::checkExtension( 'mysql' ) || self::checkExtension( 'mysqli' );
@@ -603,7 +603,7 @@ class MysqlInstaller extends DatabaseInstaller {
         * Return a formal 'User'@'Host' username for use in queries
         * @param string $name Username, quotes will be added
         * @param string $host Hostname, quotes will be added
-        * @return String
+        * @return string
         */
        private function buildFullUserName( $name, $host ) {
                return $this->db->addQuotes( $name ) . '@' . $this->db->addQuotes( $host );
@@ -614,7 +614,7 @@ class MysqlInstaller extends DatabaseInstaller {
         * access to mysql.user, so false means "no" or "maybe"
         * @param string $host Hostname to check
         * @param string $user Username to check
-        * @return boolean
+        * @return bool
         */
        private function userDefinitelyExists( $host, $user ) {
                try {
@@ -631,7 +631,7 @@ class MysqlInstaller extends DatabaseInstaller {
         * Return any table options to be applied to all tables that don't
         * override them.
         *
-        * @return String
+        * @return string
         */
        protected function getTableOptions() {
                $options = array();
index 02116ea..5e10af1 100644 (file)
@@ -259,7 +259,7 @@ class OracleUpdater extends DatabaseUpdater {
        /**
         * Overload: after this action field info table has to be rebuilt
         *
-        * @param $what array
+        * @param array $what
         */
        public function doUpdates( $what = array( 'core', 'extensions', 'purge', 'stats' ) ) {
                parent::doUpdates( $what );
index 780431a..9e25f47 100644 (file)
@@ -218,8 +218,7 @@ class PostgresInstaller extends DatabaseInstaller {
         *    - create-tables: A connection with a role suitable for creating tables.
         *
         * @throws MWException
-        * @return Status object. On success, a connection object will be in the
-        *   value member.
+        * @return Status On success, a connection object will be in the value member.
         */
        protected function openPgConnection( $type ) {
                switch ( $type ) {
@@ -414,7 +413,7 @@ class PostgresInstaller extends DatabaseInstaller {
 
        /**
         * Recursive helper for canCreateObjectsForWebUser().
-        * @param $conn DatabaseBase object
+        * @param DatabaseBase $conn
         * @param int $targetMember Role ID of the member to look for
         * @param int $group Role ID of the group to look for
         * @param int $maxDepth Maximum recursive search depth
index 19218c6..351b022 100644 (file)
@@ -50,7 +50,7 @@ class SqliteInstaller extends DatabaseInstaller {
 
        /**
         *
-        * @return Status:
+        * @return Status
         */
        public function checkPrerequisites() {
                $result = Status::newGood();
@@ -98,7 +98,7 @@ class SqliteInstaller extends DatabaseInstaller {
        /**
         * Safe wrapper for PHP's realpath() that fails gracefully if it's unable to canonicalize the path.
         *
-        * @param $path string
+        * @param string $path
         *
         * @return string
         */
@@ -132,8 +132,8 @@ class SqliteInstaller extends DatabaseInstaller {
        }
 
        /**
-        * @param $dir
-        * @param $create bool
+        * @param string $dir
+        * @param bool $create
         * @return Status
         */
        private static function dataDirOKmaybeCreate( $dir, $create = false ) {
@@ -255,7 +255,7 @@ class SqliteInstaller extends DatabaseInstaller {
        }
 
        /**
-        * @param $status Status
+        * @param Status $status
         * @return Status
         */
        public function setupSearchIndex( &$status ) {
index 42672ca..d897507 100644 (file)
@@ -392,7 +392,7 @@ class WebInstaller extends Installer {
 
        /**
         * Show an error message in a box. Parameters are like wfMessage().
-        * @param $msg
+        * @param string $msg
         */
        public function showError( $msg /*...*/ ) {
                $args = func_get_args();
@@ -691,7 +691,7 @@ class WebInstaller extends Installer {
         * Get small text indented help for a preceding form field.
         * Parameters like wfMessage().
         *
-        * @param $msg
+        * @param string $msg
         * @return string
         */
        public function getHelpBox( $msg /*, ... */ ) {
@@ -747,9 +747,9 @@ class WebInstaller extends Installer {
         * Label a control by wrapping a config-input div around it and putting a
         * label before it.
         *
-        * @param $msg
-        * @param $forId
-        * @param $contents
+        * @param string $msg
+        * @param string $forId
+        * @param string $contents
         * @param string $helpData
         * @return string
         */
@@ -1155,7 +1155,7 @@ class WebInstaller extends Installer {
        }
 
        /**
-        * @return String
+        * @return string
         */
        protected function envGetDefaultServer() {
                return WebRequest::detectServer();
index 7a7f125..cbfa34f 100644 (file)
@@ -43,7 +43,7 @@ class WebInstallerOutput {
 
        /**
         * Buffered contents that haven't been output yet
-        * @var String
+        * @var string
         */
        private $contents = '';
 
@@ -127,7 +127,7 @@ class WebInstallerOutput {
         *
         * @param string $dir 'ltr' or 'rtl'
         *
-        * @return String
+        * @return string
         */
        public function getCSS( $dir ) {
                // All CSS files these modules reference will be concatenated in sequence
@@ -210,7 +210,7 @@ class WebInstallerOutput {
        /**
         * "<link>" to index.php?css=foobar for the "<head>"
         *
-        * @return String
+        * @return string
         */
        private function getCssUrl() {
                return Html::linkedStyle( $_SERVER['PHP_SELF'] . '?css=' . $this->getDir() );
@@ -364,7 +364,7 @@ class WebInstallerOutput {
         * @return string
         */
        public function getJQuery() {
-               return Html::linkedScript( "../resources/src/jquery/jquery.js" );
+               return Html::linkedScript( "../resources/lib/jquery/jquery.js" );
        }
 
 }
index f2599ae..05ded4e 100644 (file)
  * @since 1.22
  */
 class JobQueueFederated extends JobQueue {
-       /** @var array (partition name => weight) reverse sorted by weight */
-       protected $partitionMap = array();
-
-       /** @var array (partition name => JobQueue) reverse sorted by weight */
-       protected $partitionQueues = array();
-
+       /** @var HashRing */
+       protected $partitionRing;
        /** @var HashRing */
        protected $partitionPushRing;
+       /** @var array (partition name => JobQueue) reverse sorted by weight */
+       protected $partitionQueues = array();
 
        /** @var BagOStuff */
        protected $cache;
@@ -97,10 +95,10 @@ class JobQueueFederated extends JobQueue {
                        ? $params['maxPartitionsTry']
                        : 2;
                // Get the full partition map
-               $this->partitionMap = $params['partitionsBySection'][$section];
-               arsort( $this->partitionMap, SORT_NUMERIC );
+               $partitionMap = $params['partitionsBySection'][$section];
+               arsort( $partitionMap, SORT_NUMERIC );
                // Get the partitions jobs can actually be pushed to
-               $partitionPushMap = $this->partitionMap;
+               $partitionPushMap = $partitionMap;
                if ( isset( $params['partitionsNoPush'] ) ) {
                        foreach ( $params['partitionsNoPush'] as $partition ) {
                                unset( $partitionPushMap[$partition] );
@@ -114,17 +112,23 @@ class JobQueueFederated extends JobQueue {
                        unset( $baseConfig[$o] ); // partition queue doesn't care about this
                }
                // Get the partition queue objects
-               foreach ( $this->partitionMap as $partition => $w ) {
+               foreach ( $partitionMap as $partition => $w ) {
                        if ( !isset( $params['configByPartition'][$partition] ) ) {
                                throw new MWException( "No configuration for partition '$partition'." );
                        }
                        $this->partitionQueues[$partition] = JobQueue::factory(
                                $baseConfig + $params['configByPartition'][$partition] );
                }
+               // Ring of all partitions
+               $this->partitionRing = new HashRing( $partitionMap );
                // Get the ring of partitions to push jobs into
-               $this->partitionPushRing = new HashRing( $partitionPushMap );
+               if ( count( $partitionPushMap ) === count( $partitionMap ) ) {
+                       $this->partitionPushRing = clone $this->partitionRing; // faster
+               } else {
+                       $this->partitionPushRing = new HashRing( $partitionPushMap );
+               }
                // Aggregate cache some per-queue values if there are multiple partition queues
-               $this->cache = count( $this->partitionMap ) > 1 ? wfGetMainCache() : new EmptyBagOStuff();
+               $this->cache = count( $partitionMap ) > 1 ? wfGetMainCache() : new EmptyBagOStuff();
        }
 
        protected function supportedOrders() {
@@ -218,6 +222,11 @@ class JobQueueFederated extends JobQueue {
                // Retry to insert any remaning jobs again, ignoring the bad partitions.
                $jobsLeft = $jobs;
                for ( $i = $this->maxPartitionsTry; $i > 0 && count( $jobsLeft ); --$i ) {
+                       try {
+                               $partitionRing->getLiveRing();
+                       } catch ( UnexpectedValueException $e ) {
+                               break; // all servers down; nothing to insert to
+                       }
                        $jobsLeft = $this->tryJobInsertions( $jobsLeft, $partitionRing, $flags );
                }
                if ( count( $jobsLeft ) ) {
@@ -246,7 +255,7 @@ class JobQueueFederated extends JobQueue {
                foreach ( $jobs as $key => $job ) {
                        if ( $job->ignoreDuplicates() ) {
                                $sha1 = sha1( serialize( $job->getDeduplicationInfo() ) );
-                               $uJobsByPartition[$partitionRing->getLocation( $sha1 )][] = $job;
+                               $uJobsByPartition[$partitionRing->getLiveLocation( $sha1 )][] = $job;
                                unset( $jobs[$key] );
                        }
                }
@@ -275,8 +284,7 @@ class JobQueueFederated extends JobQueue {
                                $key = $this->getCacheKey( 'empty' );
                                $this->cache->set( $key, 'false', JobQueueDB::CACHE_TTL_LONG );
                        } else {
-                               $partitionRing = $partitionRing->newWithoutLocation( $partition ); // blacklist
-                               if ( !$partitionRing ) {
+                               if ( !$partitionRing->ejectFromLiveRing( $partition, 5 ) ) { // blacklist
                                        throw new JobQueueError( "Could not insert job(s), no partitions available." );
                                }
                                $jobsLeft = array_merge( $jobsLeft, $jobBatch ); // not inserted
@@ -285,7 +293,7 @@ class JobQueueFederated extends JobQueue {
 
                // Insert the jobs that are not de-duplicated into the queues...
                foreach ( $nuJobBatches as $jobBatch ) {
-                       $partition = ArrayUtils::pickRandom( $partitionRing->getLocationWeights() );
+                       $partition = ArrayUtils::pickRandom( $partitionRing->getLiveLocationWeights() );
                        $queue = $this->partitionQueues[$partition];
                        try {
                                $ok = true;
@@ -298,8 +306,7 @@ class JobQueueFederated extends JobQueue {
                                $key = $this->getCacheKey( 'empty' );
                                $this->cache->set( $key, 'false', JobQueueDB::CACHE_TTL_LONG );
                        } else {
-                               $partitionRing = $partitionRing->newWithoutLocation( $partition ); // blacklist
-                               if ( !$partitionRing ) {
+                               if ( !$partitionRing->ejectFromLiveRing( $partition, 5 ) ) { // blacklist
                                        throw new JobQueueError( "Could not insert job(s), no partitions available." );
                                }
                                $jobsLeft = array_merge( $jobsLeft, $jobBatch ); // not inserted
@@ -317,7 +324,7 @@ class JobQueueFederated extends JobQueue {
                        return false;
                }
 
-               $partitionsTry = $this->partitionMap; // (partition => weight)
+               $partitionsTry = $this->partitionRing->getLiveLocationWeights(); // (partition => weight)
 
                $failed = 0;
                while ( count( $partitionsTry ) ) {
@@ -360,12 +367,14 @@ class JobQueueFederated extends JobQueue {
 
        protected function doIsRootJobOldDuplicate( Job $job ) {
                $params = $job->getRootJobParams();
-               $partitions = $this->partitionPushRing->getLocations( $params['rootJobSignature'], 2 );
+               $sigature = $params['rootJobSignature'];
+               $partition = $this->partitionPushRing->getLiveLocation( $sigature );
                try {
-                       return $this->partitionQueues[$partitions[0]]->doIsRootJobOldDuplicate( $job );
+                       return $this->partitionQueues[$partition]->doIsRootJobOldDuplicate( $job );
                } catch ( JobQueueError $e ) {
-                       if ( isset( $partitions[1] ) ) { // check fallback partition
-                               return $this->partitionQueues[$partitions[1]]->doIsRootJobOldDuplicate( $job );
+                       if ( $this->partitionPushRing->ejectFromLiveRing( $partition, 5 ) ) {
+                               $partition = $this->partitionPushRing->getLiveLocation( $sigature );
+                               return $this->partitionQueues[$partition]->doIsRootJobOldDuplicate( $job );
                        }
                }
 
@@ -374,12 +383,14 @@ class JobQueueFederated extends JobQueue {
 
        protected function doDeduplicateRootJob( Job $job ) {
                $params = $job->getRootJobParams();
-               $partitions = $this->partitionPushRing->getLocations( $params['rootJobSignature'], 2 );
+               $sigature = $params['rootJobSignature'];
+               $partition = $this->partitionPushRing->getLiveLocation( $sigature );
                try {
-                       return $this->partitionQueues[$partitions[0]]->doDeduplicateRootJob( $job );
+                       return $this->partitionQueues[$partition]->doDeduplicateRootJob( $job );
                } catch ( JobQueueError $e ) {
-                       if ( isset( $partitions[1] ) ) { // check fallback partition
-                               return $this->partitionQueues[$partitions[1]]->doDeduplicateRootJob( $job );
+                       if ( $this->partitionPushRing->ejectFromLiveRing( $partition, 5 ) ) {
+                               $partition = $this->partitionPushRing->getLiveLocation( $sigature );
+                               return $this->partitionQueues[$partition]->doDeduplicateRootJob( $job );
                        }
                }
 
@@ -470,7 +481,7 @@ class JobQueueFederated extends JobQueue {
 
        public function getCoalesceLocationInternal() {
                return "JobQueueFederated:wiki:{$this->wiki}" .
-                       sha1( serialize( array_keys( $this->partitionMap ) ) );
+                       sha1( serialize( array_keys( $this->partitionQueues ) ) );
        }
 
        protected function doGetSiblingQueuesWithJobs( array $types ) {
index 6925c7f..df99098 100644 (file)
@@ -32,6 +32,13 @@ class HashRing {
        /** @var Array (location => (start, end)) */
        protected $ring = array();
 
+       /** @var Array (location => (start, end)) */
+       protected $liveRing;
+       /** @var Array (location => UNIX timestamp) */
+       protected $ejectionExpiries = array();
+       /** @var integer UNIX timestamp */
+       protected $ejectionNextExpiry = INF;
+
        const RING_SIZE = 268435456; // 2^28
 
        /**
@@ -84,7 +91,7 @@ class HashRing {
        }
 
        /**
-        * Get the location of an item on the ring, as well as the next clockwise locations
+        * Get the location of an item on the ring, as well as the next locations
         *
         * @param string $item
         * @param integer $limit Maximum number of locations to return
@@ -138,10 +145,95 @@ class HashRing {
        public function newWithoutLocation( $location ) {
                $map = $this->sourceMap;
                unset( $map[$location] );
-               if ( count( $map ) ) {
-                       return new self( $map );
+
+               return count( $map ) ? new self( $map ) : false;
+       }
+
+       /**
+        * Remove a location from the "live" hash ring
+        *
+        * @param string $location
+        * @param integer $ttl Seconds
+        * @return bool Whether some non-ejected locations are left
+        */
+       public function ejectFromLiveRing( $location, $ttl ) {
+               if ( !isset( $this->sourceMap[$location] ) ) {
+                       throw new UnexpectedValueException( "No location '$location' in the ring." );
+               }
+               $expiry = time() + $ttl;
+               $this->liveRing = null; // stale
+               $this->ejectionExpiries[$location] = $expiry;
+               $this->ejectionNextExpiry = min( $expiry, $this->ejectionNextExpiry );
+
+               return ( count( $this->ejectionExpiries ) < count( $this->sourceMap ) );
+       }
+
+       /**
+        * Get the "live" hash ring (which does not include ejected locations)
+        *
+        * @return HashRing
+        * @throws UnexpectedValueException
+        */
+       public function getLiveRing() {
+               $now = time();
+               if ( $this->liveRing === null || $this->ejectionNextExpiry <= $now ) {
+                       $this->ejectionExpiries = array_filter(
+                               $this->ejectionExpiries,
+                               function( $expiry ) use ( $now ) {
+                                       return ( $expiry > $now );
+                               }
+                       );
+                       if ( count( $this->ejectionExpiries ) ) {
+                               $map = array_diff_key( $this->sourceMap, $this->ejectionExpiries );
+                               $this->liveRing = count( $map ) ? new self( $map ) : false;
+
+                               $this->ejectionNextExpiry = min( $this->ejectionExpiries );
+                       } else { // common case; avoid recalculating ring
+                               $this->liveRing = clone $this;
+                               $this->liveRing->ejectionExpiries = array();
+                               $this->liveRing->ejectionNextExpiry = INF;
+                               $this->liveRing->liveRing = null;
+
+                               $this->ejectionNextExpiry = INF;
+                       }
+               }
+               if ( !$this->liveRing ) {
+                       throw UnexpectedValueException( "The live ring is currently empty." );
                }
 
-               return false;
+               return $this->liveRing;
+       }
+
+       /**
+        * Get the location of an item on the "live" ring
+        *
+        * @param string $item
+        * @return string Location
+        * @throws UnexpectedValueException
+        */
+       public function getLiveLocation( $item ) {
+               return $this->getLiveRing()->getLocation( $item );
+       }
+
+       /**
+        * Get the location of an item on the "live" ring, as well as the next locations
+        *
+        * @param string $item
+        * @param integer $limit Maximum number of locations to return
+        * @return array List of locations
+        * @throws UnexpectedValueException
+        */
+       public function getLiveLocations( $item ) {
+               return $this->getLiveRing()->getLocations( $item );
+       }
+
+       /**
+        * Get the map of "live" locations to weight (ignores 0-weight items)
+        *
+        * @return array
+        * @throws UnexpectedValueException
+        */
+       public function getLiveLocationWeights() {
+               return $this->getLiveRing()->getLocationWeights();
        }
 }
index 71b4fc2..c7f9e40 100644 (file)
@@ -88,8 +88,8 @@ interface LogEntry {
        public function getDeleted();
 
        /**
-        * @param $field Integer: one of LogPage::DELETED_* bitfield constants
-        * @return Boolean
+        * @param int $field One of LogPage::DELETED_* bitfield constants
+        * @return bool
         */
        public function isDeleted( $field );
 }
@@ -463,7 +463,7 @@ class ManualLogEntry extends LogEntryBase {
         *
         * @since 1.19
         *
-        * @param integer $deleted
+        * @param int $deleted
         */
        public function setDeleted( $deleted ) {
                $this->deleted = $deleted;
@@ -569,8 +569,8 @@ class ManualLogEntry extends LogEntryBase {
 
        /**
         * Publishes the log entry.
-        * @param int $newId id of the log entry.
-        * @param string $to rcandudp (default), rc, udp
+        * @param int $newId Id of the log entry.
+        * @param string $to One of: rcandudp (default), rc, udp
         */
        public function publish( $newId, $to = 'rcandudp' ) {
                $log = new LogPage( $this->getType() );
index cce902f..fda9a20 100644 (file)
@@ -31,7 +31,7 @@ class LogEventsList extends ContextSource {
        public $flags;
 
        /**
-        * @var Array
+        * @var array
         */
        protected $mDefaultQuery;
 
@@ -276,7 +276,7 @@ class LogEventsList extends ContextSource {
        }
 
        /**
-        * @param $pattern
+        * @param string $pattern
         * @return string Checkbox
         */
        private function getTitlePattern( $pattern ) {
index ed3a8da..0139c4a 100644 (file)
@@ -64,7 +64,7 @@ class LogFormatter {
        /**
         * Handy shortcut for constructing a formatter directly from
         * database row.
-        * @param $row
+        * @param object $row
         * @see DatabaseLogEntry::getSelectQueryData
         * @return LogFormatter
         */
@@ -77,7 +77,7 @@ class LogFormatter {
        /** @var LogEntryBase */
        protected $entry;
 
-       /** @var Integer Constant for handling log_deleted */
+       /** @var int Constant for handling log_deleted */
        protected $audience = self::FOR_PUBLIC;
 
        /** @var bool Whether to output user tool links */
index d33fc91..399c799 100644 (file)
@@ -50,13 +50,13 @@ class LogPager extends ReverseChronologicalPager {
         *
         * @param LogEventsList $list
         * @param string|array $types Log types to show
-        * @param string $performer the user who made the log entries
-        * @param string|Title $title the page title the log entries are for
-        * @param string $pattern do a prefix search rather than an exact title match
-        * @param array $conds extra conditions for the query
+        * @param string $performer The user who made the log entries
+        * @param string|Title $title The page title the log entries are for
+        * @param string $pattern Do a prefix search rather than an exact title match
+        * @param array $conds Extra conditions for the query
         * @param int|bool $year The year to start from. Default: false
         * @param int|bool $month The month to start from. Default: false
-        * @param string $tagFilter tag
+        * @param string $tagFilter Tag
         */
        public function __construct( $list, $types = array(), $performer = '', $title = '', $pattern = '',
                $conds = array(), $year = false, $month = false, $tagFilter = '' ) {
@@ -289,7 +289,7 @@ class LogPager extends ReverseChronologicalPager {
 
        /**
         * Checks if $this->mConds has $field matched to a *single* value
-        * @param $field
+        * @param string $field
         * @return bool
         */
        protected function hasEqualsClause( $field ) {
index 3fb8083..4cbb32d 100644 (file)
@@ -28,8 +28,8 @@
  */
 class APCBagOStuff extends BagOStuff {
        /**
-        * @param $key string
-        * @param $casToken[optional] int
+        * @param string $key
+        * @param int $casToken [optional]
         * @return mixed
         */
        public function get( $key, &$casToken = null ) {
@@ -49,9 +49,9 @@ class APCBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function set( $key, $value, $exptime = 0 ) {
@@ -65,10 +65,10 @@ class APCBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $casToken mixed
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param mixed $casToken
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function cas( $casToken, $key, $value, $exptime = 0 ) {
@@ -77,8 +77,8 @@ class APCBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $time int
+        * @param string $key
+        * @param int $time
         * @return bool
         */
        public function delete( $key, $time = 0 ) {
@@ -88,13 +88,13 @@ class APCBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $callback closure Callback method to be executed
+        * @param string $key
+        * @param Closure $callback Callback method to be executed
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @param int $attempts The amount of times to attempt a merge in case of failure
-        * @return bool success
+        * @return bool Success
         */
-       public function merge( $key, closure $callback, $exptime = 0, $attempts = 10 ) {
+       public function merge( $key, Closure $callback, $exptime = 0, $attempts = 10 ) {
                return $this->mergeViaLock( $key, $callback, $exptime, $attempts );
        }
 
index 1b3e4bc..99f73aa 100644 (file)
@@ -52,7 +52,7 @@ abstract class BagOStuff {
        const ERR_UNEXPECTED  = 3; // response gave some error
 
        /**
-        * @param $bool bool
+        * @param bool $bool
         */
        public function setDebug( $bool ) {
                $this->debugMode = $bool;
@@ -63,34 +63,34 @@ abstract class BagOStuff {
 
        /**
         * Get an item with the given key. Returns false if it does not exist.
-        * @param $key string
-        * @param $casToken[optional] mixed
+        * @param string $key
+        * @param mixed $casToken [optional]
         * @return mixed Returns false on failure
         */
        abstract public function get( $key, &$casToken = null );
 
        /**
         * Set an item.
-        * @param $key string
-        * @param $value mixed
+        * @param string $key
+        * @param mixed $value
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
-        * @return bool success
+        * @return bool Success
         */
        abstract public function set( $key, $value, $exptime = 0 );
 
        /**
         * Check and set an item.
-        * @param $casToken mixed
-        * @param $key string
-        * @param $value mixed
+        * @param mixed $casToken
+        * @param string $key
+        * @param mixed $value
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
-        * @return bool success
+        * @return bool Success
         */
        abstract public function cas( $casToken, $key, $value, $exptime = 0 );
 
        /**
         * Delete an item.
-        * @param $key string
+        * @param string $key
         * @param int $time Amount of time to delay the operation (mostly memcached-specific)
         * @return bool True if the item was deleted or not found, false on failure
         */
@@ -101,26 +101,26 @@ abstract class BagOStuff {
         * The callback function returns the new value given the current value (possibly false),
         * and takes the arguments: (this BagOStuff object, cache key, current value).
         *
-        * @param $key string
-        * @param $callback closure Callback method to be executed
+        * @param string $key
+        * @param Closure $callback Callback method to be executed
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @param int $attempts The amount of times to attempt a merge in case of failure
-        * @return bool success
+        * @return bool Success
         */
-       public function merge( $key, closure $callback, $exptime = 0, $attempts = 10 ) {
+       public function merge( $key, Closure $callback, $exptime = 0, $attempts = 10 ) {
                return $this->mergeViaCas( $key, $callback, $exptime, $attempts );
        }
 
        /**
         * @see BagOStuff::merge()
         *
-        * @param $key string
-        * @param $callback closure Callback method to be executed
+        * @param string $key
+        * @param Closure $callback Callback method to be executed
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @param int $attempts The amount of times to attempt a merge in case of failure
-        * @return bool success
+        * @return bool Success
         */
-       protected function mergeViaCas( $key, closure $callback, $exptime = 0, $attempts = 10 ) {
+       protected function mergeViaCas( $key, Closure $callback, $exptime = 0, $attempts = 10 ) {
                do {
                        $casToken = null; // passed by reference
                        $currentValue = $this->get( $key, $casToken ); // get the old value
@@ -143,13 +143,13 @@ abstract class BagOStuff {
        /**
         * @see BagOStuff::merge()
         *
-        * @param $key string
-        * @param $callback closure Callback method to be executed
+        * @param string $key
+        * @param Closure $callback Callback method to be executed
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @param int $attempts The amount of times to attempt a merge in case of failure
-        * @return bool success
+        * @return bool Success
         */
-       protected function mergeViaLock( $key, closure $callback, $exptime = 0, $attempts = 10 ) {
+       protected function mergeViaLock( $key, Closure $callback, $exptime = 0, $attempts = 10 ) {
                if ( !$this->lock( $key, 6 ) ) {
                        return false;
                }
@@ -172,9 +172,9 @@ abstract class BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $timeout integer [optional]
-        * @return bool success
+        * @param string $key
+        * @param int $timeout [optional]
+        * @return bool Success
         */
        public function lock( $key, $timeout = 6 ) {
                $this->clearLastError();
@@ -208,8 +208,8 @@ abstract class BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @return bool success
+        * @param string $key
+        * @return bool Success
         */
        public function unlock( $key ) {
                return $this->delete( "{$key}:lock" );
@@ -218,11 +218,11 @@ abstract class BagOStuff {
        /**
         * Delete all objects expiring before a certain date.
         * @param string $date The reference date in MW format
-        * @param $progressCallback callback|bool Optional, a function which will be called
+        * @param callable|bool $progressCallback Optional, a function which will be called
         *     regularly during long-running operations with the percentage progress
         *     as the first parameter.
         *
-        * @return bool on success, false if unimplemented
+        * @return bool Success, false if unimplemented
         */
        public function deleteObjectsExpiringBefore( $date, $progressCallback = false ) {
                // stub
@@ -234,7 +234,7 @@ abstract class BagOStuff {
        /**
         * Get an associative array containing the item for each of the keys that have items.
         * @param array $keys List of strings
-        * @return Array
+        * @return array
         */
        public function getMulti( array $keys ) {
                $res = array();
@@ -248,10 +248,10 @@ abstract class BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime integer
-        * @return bool success
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
+        * @return bool Success
         */
        public function add( $key, $value, $exptime = 0 ) {
                if ( $this->get( $key ) === false ) {
@@ -261,10 +261,10 @@ abstract class BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
-        * @return bool success
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
+        * @return bool Success
         * @deprecated since 1.23
         */
        public function replace( $key, $value, $exptime = 0 ) {
@@ -278,8 +278,8 @@ abstract class BagOStuff {
        /**
         * Increase stored value of $key by $value while preserving its TTL
         * @param string $key Key to increase
-        * @param $value Integer: Value to add to $key (Default 1)
-        * @return integer|bool New value or false on failure
+        * @param int $value Value to add to $key (Default 1)
+        * @return int|bool New value or false on failure
         */
        public function incr( $key, $value = 1 ) {
                if ( !$this->lock( $key ) ) {
@@ -299,9 +299,9 @@ abstract class BagOStuff {
 
        /**
         * Decrease stored value of $key by $value while preserving its TTL
-        * @param $key String
-        * @param $value Integer
-        * @return integer
+        * @param string $key
+        * @param int $value
+        * @return int
         */
        public function decr( $key, $value = 1 ) {
                return $this->incr( $key, - $value );
@@ -309,7 +309,7 @@ abstract class BagOStuff {
 
        /**
         * Get the "last error" registered; clearLastError() should be called manually
-        * @return integer ERR_* constant for the "last error" registry
+        * @return int ERR_* constant for the "last error" registry
         * @since 1.23
         */
        public function getLastError() {
@@ -326,7 +326,7 @@ abstract class BagOStuff {
 
        /**
         * Set the "last error" registry
-        * @param $err integer ERR_* constant
+        * @param int $err ERR_* constant
         * @since 1.23
         */
        protected function setLastError( $err ) {
@@ -334,7 +334,7 @@ abstract class BagOStuff {
        }
 
        /**
-        * @param $text string
+        * @param string $text
         */
        public function debug( $text ) {
                if ( $this->debugMode ) {
@@ -345,7 +345,7 @@ abstract class BagOStuff {
 
        /**
         * Convert an optionally relative time to an absolute time
-        * @param $exptime integer
+        * @param int $exptime
         * @return int
         */
        protected function convertExpiry( $exptime ) {
@@ -360,8 +360,8 @@ abstract class BagOStuff {
         * Convert an optionally absolute expiry time to a relative time. If an
         * absolute time is specified which is in the past, use a short expiry time.
         *
-        * @param $exptime integer
-        * @return integer
+        * @param int $exptime
+        * @return int
         */
        protected function convertToRelative( $exptime ) {
                if ( $exptime >= 86400 * 3650 /* 10 years */ ) {
@@ -378,7 +378,7 @@ abstract class BagOStuff {
        /**
         * Check if a value is an integer
         *
-        * @param $value mixed
+        * @param mixed $value
         * @return bool
         */
        protected function isInteger( $value ) {
index 0a945a9..9595b83 100644 (file)
@@ -29,8 +29,8 @@
 class EmptyBagOStuff extends BagOStuff {
 
        /**
-        * @param $key string
-        * @param $casToken[optional] mixed
+        * @param string $key
+        * @param mixed $casToken [optional]
         * @return bool
         */
        function get( $key, &$casToken = null ) {
@@ -38,9 +38,9 @@ class EmptyBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value mixed
-        * @param $exp int
+        * @param string $key
+        * @param mixed $value
+        * @param int $exp
         * @return bool
         */
        function set( $key, $value, $exp = 0 ) {
@@ -48,10 +48,10 @@ class EmptyBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $casToken mixed
-        * @param $key string
-        * @param $value mixed
-        * @param $exp int
+        * @param mixed $casToken
+        * @param string $key
+        * @param mixed $value
+        * @param int $exp
         * @return bool
         */
        function cas( $casToken, $key, $value, $exp = 0 ) {
@@ -59,8 +59,8 @@ class EmptyBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $time int
+        * @param string $key
+        * @param int $time
         * @return bool
         */
        function delete( $key, $time = 0 ) {
@@ -68,13 +68,13 @@ class EmptyBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $callback closure Callback method to be executed
+        * @param string $key
+        * @param Closure $callback Callback method to be executed
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @param int $attempts The amount of times to attempt a merge in case of failure
-        * @return bool success
+        * @return bool Success
         */
-       public function merge( $key, closure $callback, $exptime = 0, $attempts = 10 ) {
+       public function merge( $key, Closure $callback, $exptime = 0, $attempts = 10 ) {
                return true;
        }
 }
index bc5167d..db0e579 100644 (file)
@@ -35,7 +35,7 @@ class HashBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
+        * @param string $key
         * @return bool
         */
        protected function expire( $key ) {
@@ -51,8 +51,8 @@ class HashBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $casToken[optional] mixed
+        * @param string $key
+        * @param mixed $casToken [optional]
         * @return bool|mixed
         */
        function get( $key, &$casToken = null ) {
@@ -70,9 +70,9 @@ class HashBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        function set( $key, $value, $exptime = 0 ) {
@@ -81,10 +81,10 @@ class HashBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $casToken mixed
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param mixed $casToken
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        function cas( $casToken, $key, $value, $exptime = 0 ) {
@@ -96,8 +96,8 @@ class HashBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $time int
+        * @param string $key
+        * @param int $time
         * @return bool
         */
        function delete( $key, $time = 0 ) {
index e4bbb43..79a6841 100644 (file)
@@ -32,6 +32,8 @@ class MemcachedBagOStuff extends BagOStuff {
        /**
         * Fill in the defaults for any parameters missing from $params, using the
         * backwards-compatible global variables
+        * @param array $params
+        * @return array
         */
        protected function applyDefaultParams( $params ) {
                if ( !isset( $params['servers'] ) ) {
@@ -56,18 +58,18 @@ class MemcachedBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $casToken[optional] mixed
-        * @return Mixed
+        * @param string $key
+        * @param mixed $casToken [optional]
+        * @return mixed
         */
        public function get( $key, &$casToken = null ) {
                return $this->client->get( $this->encodeKey( $key ), $casToken );
        }
 
        /**
-        * @param $key string
-        * @param $value
-        * @param $exptime int
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function set( $key, $value, $exptime = 0 ) {
@@ -76,10 +78,10 @@ class MemcachedBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $casToken mixed
-        * @param $value
-        * @param $exptime int
+        * @param string $key
+        * @param mixed $casToken
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function cas( $casToken, $key, $value, $exptime = 0 ) {
@@ -88,8 +90,8 @@ class MemcachedBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $time int
+        * @param string $key
+        * @param int $time
         * @return bool
         */
        public function delete( $key, $time = 0 ) {
@@ -97,10 +99,10 @@ class MemcachedBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value int
+        * @param string $key
+        * @param int $value
         * @param int $exptime (default 0)
-        * @return Mixed
+        * @return mixed
         */
        public function add( $key, $value, $exptime = 0 ) {
                return $this->client->add( $this->encodeKey( $key ), $value,
@@ -110,6 +112,7 @@ class MemcachedBagOStuff extends BagOStuff {
        /**
         * Get the underlying client object. This is provided for debugging
         * purposes.
+        * @return BagOStuff
         */
        public function getClient() {
                return $this->client;
@@ -122,7 +125,7 @@ class MemcachedBagOStuff extends BagOStuff {
         * the other control characters for compatibility with libmemcached
         * verify_key. We leave other punctuation alone, to maximise backwards
         * compatibility.
-        * @param $key string
+        * @param string $key
         * @return string
         */
        public function encodeKey( $key ) {
@@ -131,7 +134,7 @@ class MemcachedBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $m array
+        * @param array $m
         * @return string
         */
        protected function encodeKeyCallback( $m ) {
@@ -144,6 +147,8 @@ class MemcachedBagOStuff extends BagOStuff {
         * discarded immediately because the expiry is in the past.
         * Clamp expiries >30d at 30d, unless they're >=1e9 in which
         * case they are likely to really be absolute (1e9 = 2011-09-09)
+        * @param int $expiry
+        * @return int
         */
        function fixExpiry( $expiry ) {
                if ( $expiry > 2592000 && $expiry < 1000000000 ) {
@@ -156,7 +161,7 @@ class MemcachedBagOStuff extends BagOStuff {
         * Decode a key encoded with encodeKey(). This is provided as a convenience
         * function for debugging.
         *
-        * @param $key string
+        * @param string $key
         *
         * @return string
         */
@@ -166,6 +171,7 @@ class MemcachedBagOStuff extends BagOStuff {
 
        /**
         * Send a debug message to the log
+        * @param string $text
         */
        protected function debugLog( $text ) {
                wfDebugLog( 'memcached', $text );
index d39b288..bc59c6f 100644 (file)
@@ -121,7 +121,7 @@ class MWMemcached {
        /**
         * Current debug status; 0 - none to 9 - profiling
         *
-        * @var boolean
+        * @var bool
         * @access private
         */
        var $_debug;
@@ -137,7 +137,7 @@ class MWMemcached {
        /**
         * Is compression available?
         *
-        * @var boolean
+        * @var bool
         * @access private
         */
        var $_have_zlib;
@@ -145,7 +145,7 @@ class MWMemcached {
        /**
         * Do we want to use compression?
         *
-        * @var boolean
+        * @var bool
         * @access private
         */
        var $_compress_enable;
@@ -153,7 +153,7 @@ class MWMemcached {
        /**
         * At how many bytes should we compress?
         *
-        * @var integer
+        * @var int
         * @access private
         */
        var $_compress_threshold;
@@ -161,7 +161,7 @@ class MWMemcached {
        /**
         * Are we using persistent links?
         *
-        * @var boolean
+        * @var bool
         * @access private
         */
        var $_persistent;
@@ -193,7 +193,7 @@ class MWMemcached {
        /**
         * Total # of bit buckets we have
         *
-        * @var integer
+        * @var int
         * @access private
         */
        var $_bucketcount;
@@ -201,7 +201,7 @@ class MWMemcached {
        /**
         * # of total servers we have
         *
-        * @var integer
+        * @var int
         * @access private
         */
        var $_active;
@@ -209,7 +209,7 @@ class MWMemcached {
        /**
         * Stream timeout in seconds. Applies for example to fread()
         *
-        * @var integer
+        * @var int
         * @access private
         */
        var $_timeout_seconds;
@@ -217,7 +217,7 @@ class MWMemcached {
        /**
         * Stream timeout in microseconds
         *
-        * @var integer
+        * @var int
         * @access private
         */
        var $_timeout_microseconds;
@@ -271,15 +271,15 @@ class MWMemcached {
         * Adds a key/value to the memcache server if one isn't already set with
         * that key
         *
-        * @param string $key key to set with data
-        * @param $val Mixed: value to store
-        * @param $exp Integer: (optional) Expiration time. This can be a number of seconds
+        * @param string $key Key to set with data
+        * @param mixed $val Value to store
+        * @param int $exp (optional) Expiration time. This can be a number of seconds
         * to cache for (up to 30 days inclusive).  Any timespans of 30 days + 1 second or
         * longer must be the timestamp of the time at which the mapping should expire. It
         * is safe to use timestamps in all cases, regardless of expiration
         * eg: strtotime("+3 hour")
         *
-        * @return Boolean
+        * @return bool
         */
        public function add( $key, $val, $exp = 0 ) {
                return $this->_set( 'add', $key, $val, $exp );
@@ -291,10 +291,10 @@ class MWMemcached {
        /**
         * Decrease a value stored on the memcache server
         *
-        * @param string $key key to decrease
-        * @param $amt Integer: (optional) amount to decrease
+        * @param string $key Key to decrease
+        * @param int $amt (optional) amount to decrease
         *
-        * @return Mixed: FALSE on failure, value on success
+        * @return mixed False on failure, value on success
         */
        public function decr( $key, $amt = 1 ) {
                return $this->_incrdecr( 'decr', $key, $amt );
@@ -306,10 +306,10 @@ class MWMemcached {
        /**
         * Deletes a key from the server, optionally after $time
         *
-        * @param string $key key to delete
-        * @param $time Integer: (optional) how long to wait before deleting
+        * @param string $key Key to delete
+        * @param int $time (optional) how long to wait before deleting
         *
-        * @return Boolean: TRUE on success, FALSE on failure
+        * @return bool True on success, false on failure
         */
        public function delete( $key, $time = 0 ) {
                if ( !$this->_active ) {
@@ -346,8 +346,8 @@ class MWMemcached {
        }
 
        /**
-        * @param $key
-        * @param $timeout int
+        * @param string $key
+        * @param int $timeout
         * @return bool
         */
        public function lock( $key, $timeout = 0 ) {
@@ -356,7 +356,7 @@ class MWMemcached {
        }
 
        /**
-        * @param $key
+        * @param string $key
         * @return bool
         */
        public function unlock( $key ) {
@@ -384,7 +384,7 @@ class MWMemcached {
        /**
         * Enable / Disable compression
         *
-        * @param $enable Boolean: TRUE to enable, FALSE to disable
+        * @param bool $enable True to enable, false to disable
         */
        public function enable_compress( $enable ) {
                $this->_compress_enable = $enable;
@@ -407,9 +407,9 @@ class MWMemcached {
         * Retrieves the value associated with the key from the memcache server
         *
         * @param array|string $key key to retrieve
-        * @param $casToken[optional] Float
+        * @param float $casToken [optional]
         *
-        * @return Mixed
+        * @return mixed
         */
        public function get( $key, &$casToken = null ) {
                wfProfileIn( __METHOD__ );
@@ -466,9 +466,9 @@ class MWMemcached {
        /**
         * Get multiple keys from the server(s)
         *
-        * @param array $keys keys to retrieve
+        * @param array $keys Keys to retrieve
         *
-        * @return Array
+        * @return array
         */
        public function get_multi( $keys ) {
                if ( !$this->_active ) {
@@ -530,10 +530,10 @@ class MWMemcached {
        /**
         * Increments $key (optionally) by $amt
         *
-        * @param string $key key to increment
-        * @param $amt Integer: (optional) amount to increment
+        * @param string $key Key to increment
+        * @param int $amt (optional) amount to increment
         *
-        * @return Integer: null if the key does not exist yet (this does NOT
+        * @return int|null Null if the key does not exist yet (this does NOT
         * create new mappings if the key does not exist). If the key does
         * exist, this returns the new value for that key.
         */
@@ -547,15 +547,15 @@ class MWMemcached {
        /**
         * Overwrites an existing value for key; only works if key is already set
         *
-        * @param string $key key to set value as
-        * @param $value Mixed: value to store
-        * @param $exp Integer: (optional) Expiration time. This can be a number of seconds
+        * @param string $key Key to set value as
+        * @param mixed $value Value to store
+        * @param int $exp (optional) Expiration time. This can be a number of seconds
         * to cache for (up to 30 days inclusive).  Any timespans of 30 days + 1 second or
         * longer must be the timestamp of the time at which the mapping should expire. It
         * is safe to use timestamps in all cases, regardless of exipration
         * eg: strtotime("+3 hour")
         *
-        * @return Boolean
+        * @return bool
         */
        public function replace( $key, $value, $exp = 0 ) {
                return $this->_set( 'replace', $key, $value, $exp );
@@ -568,10 +568,10 @@ class MWMemcached {
         * Passes through $cmd to the memcache server connected by $sock; returns
         * output as an array (null array if no output)
         *
-        * @param $sock Resource: socket to send command on
-        * @param string $cmd command to run
+        * @param Resource $sock Socket to send command on
+        * @param string $cmd Command to run
         *
-        * @return Array: output array
+        * @return array Output array
         */
        public function run_command( $sock, $cmd ) {
                if ( !is_resource( $sock ) ) {
@@ -603,15 +603,15 @@ class MWMemcached {
         * Unconditionally sets a key to a given value in the memcache.  Returns true
         * if set successfully.
         *
-        * @param string $key key to set value as
-        * @param $value Mixed: value to set
-        * @param $exp Integer: (optional) Expiration time. This can be a number of seconds
+        * @param string $key Key to set value as
+        * @param mixed $value Value to set
+        * @param int $exp (optional) Expiration time. This can be a number of seconds
         * to cache for (up to 30 days inclusive).  Any timespans of 30 days + 1 second or
         * longer must be the timestamp of the time at which the mapping should expire. It
         * is safe to use timestamps in all cases, regardless of exipration
         * eg: strtotime("+3 hour")
         *
-        * @return Boolean: TRUE on success
+        * @return bool True on success
         */
        public function set( $key, $value, $exp = 0 ) {
                return $this->_set( 'set', $key, $value, $exp );
@@ -624,16 +624,16 @@ class MWMemcached {
         * Sets a key to a given value in the memcache if the current value still corresponds
         * to a known, given value.  Returns true if set successfully.
         *
-        * @param $casToken Float: current known value
-        * @param string $key key to set value as
-        * @param $value Mixed: value to set
-        * @param $exp Integer: (optional) Expiration time. This can be a number of seconds
+        * @param float $casToken Current known value
+        * @param string $key Key to set value as
+        * @param mixed $value Value to set
+        * @param int $exp (optional) Expiration time. This can be a number of seconds
         * to cache for (up to 30 days inclusive).  Any timespans of 30 days + 1 second or
         * longer must be the timestamp of the time at which the mapping should expire. It
         * is safe to use timestamps in all cases, regardless of exipration
         * eg: strtotime("+3 hour")
         *
-        * @return Boolean: TRUE on success
+        * @return bool True on success
         */
        public function cas( $casToken, $key, $value, $exp = 0 ) {
                return $this->_set( 'cas', $key, $value, $exp, $casToken );
@@ -645,7 +645,7 @@ class MWMemcached {
        /**
         * Sets the compression threshold
         *
-        * @param $thresh Integer: threshold to compress if larger than
+        * @param int $thresh Threshold to compress if larger than
         */
        public function set_compress_threshold( $thresh ) {
                $this->_compress_threshold = $thresh;
@@ -657,9 +657,9 @@ class MWMemcached {
        /**
         * Sets the debug flag
         *
-        * @param $dbg Boolean: TRUE for debugging, FALSE otherwise
+        * @param bool $dbg True for debugging, false otherwise
         *
-        * @see     MWMemcached::__construct
+        * @see MWMemcached::__construct
         */
        public function set_debug( $dbg ) {
                $this->_debug = $dbg;
@@ -671,9 +671,9 @@ class MWMemcached {
        /**
         * Sets the server list to distribute key gets and puts between
         *
-        * @param array $list of servers to connect to
+        * @param array $list Array of servers to connect to
         *
-        * @see     MWMemcached::__construct()
+        * @see MWMemcached::__construct()
         */
        public function set_servers( $list ) {
                $this->_servers = $list;
@@ -690,8 +690,8 @@ class MWMemcached {
        /**
         * Sets the timeout for new connections
         *
-        * @param $seconds Integer: number of seconds
-        * @param $microseconds Integer: number of microseconds
+        * @param int $seconds Number of seconds
+        * @param int $microseconds Number of microseconds
         */
        public function set_timeout( $seconds, $microseconds ) {
                $this->_timeout_seconds = $seconds;
@@ -706,7 +706,7 @@ class MWMemcached {
        /**
         * Close the specified socket
         *
-        * @param string $sock socket to close
+        * @param string $sock Socket to close
         *
         * @access private
         */
@@ -722,10 +722,10 @@ class MWMemcached {
        /**
         * Connects $sock to $host, timing out after $timeout
         *
-        * @param $sock Integer: socket to connect
+        * @param int $sock Socket to connect
         * @param string $host Host:IP to connect to
         *
-        * @return boolean
+        * @return bool
         * @access private
         */
        function _connect_sock( &$sock, $host ) {
@@ -765,7 +765,7 @@ class MWMemcached {
        /**
         * Marks a host as dead until 30-40 seconds in the future
         *
-        * @param string $sock socket to mark as dead
+        * @param string $sock Socket to mark as dead
         *
         * @access private
         */
@@ -775,7 +775,7 @@ class MWMemcached {
        }
 
        /**
-        * @param $host
+        * @param string $host
         */
        function _dead_host( $host ) {
                $parts = explode( ':', $host );
@@ -791,9 +791,9 @@ class MWMemcached {
        /**
         * get_sock
         *
-        * @param string $key key to retrieve value for;
+        * @param string $key Key to retrieve value for;
         *
-        * @return Mixed: resource on success, false on failure
+        * @return Resource|bool Resource on success, false on failure
         * @access private
         */
        function get_sock( $key ) {
@@ -840,9 +840,9 @@ class MWMemcached {
        /**
         * Creates a hash integer based on the $key
         *
-        * @param string $key key to hash
+        * @param string $key Key to hash
         *
-        * @return Integer: hash value
+        * @return int Hash value
         * @access private
         */
        function _hashfunc( $key ) {
@@ -858,11 +858,11 @@ class MWMemcached {
        /**
         * Perform increment/decriment on $key
         *
-        * @param string $cmd command to perform
-        * @param string|array $key key to perform it on
-        * @param $amt Integer amount to adjust
+        * @param string $cmd Command to perform
+        * @param string|array $key Key to perform it on
+        * @param int $amt Amount to adjust
         *
-        * @return Integer: new value of $key
+        * @return int New value of $key
         * @access private
         */
        function _incrdecr( $cmd, $key, $amt = 1 ) {
@@ -899,10 +899,10 @@ class MWMemcached {
        /**
         * Load items into $ret from $sock
         *
-        * @param $sock Resource: socket to read from
+        * @param Resource $sock Socket to read from
         * @param array $ret returned values
-        * @param $casToken[optional] Float
-        * @return boolean True for success, false for failure
+        * @param float $casToken [optional]
+        * @return bool True for success, false for failure
         *
         * @access private
         */
@@ -985,17 +985,17 @@ class MWMemcached {
        /**
         * Performs the requested storage operation to the memcache server
         *
-        * @param string $cmd command to perform
-        * @param string $key key to act on
-        * @param $val Mixed: what we need to store
-        * @param $exp Integer: (optional) Expiration time. This can be a number of seconds
+        * @param string $cmd Command to perform
+        * @param string $key Key to act on
+        * @param mixed $val What we need to store
+        * @param int $exp (optional) Expiration time. This can be a number of seconds
         * to cache for (up to 30 days inclusive).  Any timespans of 30 days + 1 second or
         * longer must be the timestamp of the time at which the mapping should expire. It
         * is safe to use timestamps in all cases, regardless of exipration
         * eg: strtotime("+3 hour")
-        * @param $casToken[optional] Float
+        * @param float $casToken [optional]
         *
-        * @return Boolean
+        * @return bool
         * @access private
         */
        function _set( $cmd, $key, $val, $exp, $casToken = null ) {
@@ -1070,7 +1070,7 @@ class MWMemcached {
         *
         * @param string $host Host:IP to get socket for
         *
-        * @return Mixed: IO Stream or false
+        * @return Resource|bool IO Stream or false
         * @access private
         */
        function sock_to_host( $host ) {
@@ -1100,14 +1100,14 @@ class MWMemcached {
        }
 
        /**
-        * @param $text string
+        * @param string $text
         */
        function _debugprint( $text ) {
                wfDebugLog( 'memcached', $text );
        }
 
        /**
-        * @param $text string
+        * @param string $text
         */
        function _error_log( $text ) {
                wfDebugLog( 'memcached-serious', "Memcached error: $text" );
@@ -1116,8 +1116,8 @@ class MWMemcached {
        /**
         * Write to a stream. If there is an error, mark the socket dead.
         *
-        * @param $sock The socket
-        * @param $buf The string to write
+        * @param Resource $sock The socket
+        * @param string $buf The string to write
         * @return bool True on success, false on failure
         */
        function _fwrite( $sock, $buf ) {
@@ -1143,6 +1143,9 @@ class MWMemcached {
 
        /**
         * Handle an I/O error. Mark the socket dead and log an error.
+        *
+        * @param Resource $sock
+        * @param string $msg
         */
        function _handle_error( $sock, $msg ) {
                $peer = stream_socket_get_name( $sock, true /** remote **/ );
@@ -1161,9 +1164,9 @@ class MWMemcached {
         * Read the specified number of bytes from a stream. If there is an error,
         * mark the socket dead.
         *
-        * @param $sock The socket
-        * @param $len The number of bytes to read
-        * @return The string on success, false on failure.
+        * @param Resource $sock The socket
+        * @param int $len The number of bytes to read
+        * @return string|bool The string on success, false on failure.
         */
        function _fread( $sock, $len ) {
                $buf = '';
@@ -1193,8 +1196,8 @@ class MWMemcached {
         * Read a line from a stream. If there is an error, mark the socket dead.
         * The \r\n line ending is stripped from the response.
         *
-        * @param $sock The socket
-        * @return The string on success, false on failure
+        * @param Resource $sock The socket
+        * @return string|bool The string on success, false on failure
         */
        function _fgets( $sock ) {
                $result = fgets( $sock );
@@ -1223,7 +1226,7 @@ class MWMemcached {
 
        /**
         * Flush the read buffer of a stream
-        * @param $f Resource
+        * @param Resource $f
         */
        function _flush_read_buffer( $f ) {
                if ( !is_resource( $f ) ) {
index 1c780b4..5a96f7b 100644 (file)
@@ -42,6 +42,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
         *   - serializer:          May be either "php" or "igbinary". Igbinary produces more compact
         *                          values, but serialization is much slower unless the php.ini option
         *                          igbinary.compact_strings is off.
+        * @param array $params
         */
        function __construct( $params ) {
                $params = $this->applyDefaultParams( $params );
@@ -113,9 +114,9 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $casToken[optional] float
-        * @return Mixed
+        * @param string $key
+        * @param float $casToken [optional]
+        * @return mixed
         */
        public function get( $key, &$casToken = null ) {
                wfProfileIn( __METHOD__ );
@@ -127,9 +128,9 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value
-        * @param $exptime int
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function set( $key, $value, $exptime = 0 ) {
@@ -138,10 +139,10 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $casToken float
-        * @param $key string
-        * @param $value
-        * @param $exptime int
+        * @param float $casToken
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function cas( $casToken, $key, $value, $exptime = 0 ) {
@@ -150,8 +151,8 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $time int
+        * @param string $key
+        * @param int $time
         * @return bool
         */
        public function delete( $key, $time = 0 ) {
@@ -166,10 +167,10 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value int
-        * @param $exptime int
-        * @return Mixed
+        * @param string $key
+        * @param int $value
+        * @param int $exptime
+        * @return mixed
         */
        public function add( $key, $value, $exptime = 0 ) {
                $this->debugLog( "add($key)" );
@@ -177,9 +178,9 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value int
-        * @return Mixed
+        * @param string $key
+        * @param int $value
+        * @return mixed
         */
        public function incr( $key, $value = 1 ) {
                $this->debugLog( "incr($key)" );
@@ -188,9 +189,9 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value int
-        * @return Mixed
+        * @param string $key
+        * @param int $value
+        * @return mixed
         */
        public function decr( $key, $value = 1 ) {
                $this->debugLog( "decr($key)" );
@@ -206,8 +207,8 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
         * different.
         *
         * @param string $key The key used by the caller, or false if there wasn't one.
-        * @param $result Mixed The return value
-        * @return Mixed
+        * @param mixed $result The return value
+        * @return mixed
         */
        protected function checkResult( $key, $result ) {
                if ( $result !== false ) {
@@ -237,8 +238,8 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $keys Array
-        * @return Array
+        * @param array $keys
+        * @return array
         */
        public function getMulti( array $keys ) {
                wfProfileIn( __METHOD__ );
index 33a134c..330d2b5 100644 (file)
@@ -39,7 +39,7 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff {
         *   - timeout:             The read timeout in microseconds
         *   - connect_timeout:     The connect timeout in seconds
         *
-        * @param $params array
+        * @param array $params
         */
        function __construct( $params ) {
                $params = $this->applyDefaultParams( $params );
@@ -50,15 +50,15 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $debug bool
+        * @param bool $debug
         */
        public function setDebug( $debug ) {
                $this->client->set_debug( $debug );
        }
 
        /**
-        * @param $keys Array
-        * @return Array
+        * @param array $keys
+        * @return array
         */
        public function getMulti( array $keys ) {
                $callback = array( $this, 'encodeKey' );
@@ -66,8 +66,8 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $key
-        * @param $timeout int
+        * @param string $key
+        * @param int $timeout
         * @return bool
         */
        public function lock( $key, $timeout = 0 ) {
@@ -75,26 +75,26 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * @param $key string
-        * @return Mixed
+        * @param string $key
+        * @return mixed
         */
        public function unlock( $key ) {
                return $this->client->unlock( $this->encodeKey( $key ) );
        }
 
        /**
-        * @param $key string
-        * @param $value int
-        * @return Mixed
+        * @param string $key
+        * @param int $value
+        * @return mixed
         */
        public function incr( $key, $value = 1 ) {
                return $this->client->incr( $this->encodeKey( $key ), $value );
        }
 
        /**
-        * @param $key string
-        * @param $value int
-        * @return Mixed
+        * @param string $key
+        * @param int $value
+        * @return mixed
         */
        public function decr( $key, $value = 1 ) {
                return $this->client->decr( $this->encodeKey( $key ), $value );
index b97410a..c656bdd 100644 (file)
@@ -38,7 +38,7 @@ class MultiWriteBagOStuff extends BagOStuff {
         *               structures, in the style required by $wgObjectCaches. See
         *               the documentation of $wgObjectCaches for more detail.
         *
-        * @param $params array
+        * @param array $params
         * @throws MWException
         */
        public function __construct( $params ) {
@@ -53,15 +53,15 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $debug bool
+        * @param bool $debug
         */
        public function setDebug( $debug ) {
                $this->doWrite( 'setDebug', $debug );
        }
 
        /**
-        * @param $key string
-        * @param $casToken[optional] mixed
+        * @param string $key
+        * @param mixed $casToken [optional]
         * @return bool|mixed
         */
        public function get( $key, &$casToken = null ) {
@@ -75,10 +75,10 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $casToken mixed
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param mixed $casToken
+        * @param string $key
+        * @param mixed $value
+        * @param mixed $exptime
         * @return bool
         */
        public function cas( $casToken, $key, $value, $exptime = 0 ) {
@@ -86,9 +86,9 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function set( $key, $value, $exptime = 0 ) {
@@ -96,8 +96,8 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $time int
+        * @param string $key
+        * @param int $time
         * @return bool
         */
        public function delete( $key, $time = 0 ) {
@@ -105,9 +105,9 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function add( $key, $value, $exptime = 0 ) {
@@ -115,9 +115,9 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function replace( $key, $value, $exptime = 0 ) {
@@ -125,8 +125,8 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value int
+        * @param string $key
+        * @param int $value
         * @return bool|null
         */
        public function incr( $key, $value = 1 ) {
@@ -134,8 +134,8 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value int
+        * @param string $key
+        * @param int $value
         * @return bool
         */
        public function decr( $key, $value = 1 ) {
@@ -143,8 +143,8 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $timeout int
+        * @param string $key
+        * @param int $timeout
         * @return bool
         */
        public function lock( $key, $timeout = 0 ) {
@@ -157,7 +157,7 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
+        * @param string $key
         * @return bool
         */
        public function unlock( $key ) {
@@ -169,13 +169,13 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $callback closure Callback method to be executed
+        * @param string $key
+        * @param Closure $callback Callback method to be executed
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @param int $attempts The amount of times to attempt a merge in case of failure
-        * @return bool success
+        * @return bool Success
         */
-       public function merge( $key, closure $callback, $exptime = 0, $attempts = 10 ) {
+       public function merge( $key, Closure $callback, $exptime = 0, $attempts = 10 ) {
                return $this->doWrite( 'merge', $key, $callback, $exptime );
        }
 
@@ -190,7 +190,7 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $method string
+        * @param string $method
         * @return bool
         */
        protected function doWrite( $method /*, ... */ ) {
@@ -210,8 +210,8 @@ class MultiWriteBagOStuff extends BagOStuff {
         * Delete objects expiring before a certain date.
         *
         * Succeed if any of the child caches succeed.
-        * @param $date string
-        * @param $progressCallback bool|callback
+        * @param string $date
+        * @param bool|callable $progressCallback
         * @return bool
         */
        public function deleteObjectsExpiringBefore( $date, $progressCallback = false ) {
index 6c1433a..3be251c 100644 (file)
@@ -32,7 +32,7 @@ class ObjectCache {
        /**
         * Get a cached instance of the specified type of cache object.
         *
-        * @param $id string
+        * @param string $id
         *
         * @return BagOStuff
         */
@@ -56,7 +56,7 @@ class ObjectCache {
        /**
         * Create a new cache object of the specified type.
         *
-        * @param $id string
+        * @param string $id
         *
         * @throws MWException
         * @return BagOStuff
@@ -75,7 +75,7 @@ class ObjectCache {
        /**
         * Create a new cache object from parameters
         *
-        * @param $params array
+        * @param array $params
         *
         * @throws MWException
         * @return BagOStuff
@@ -101,7 +101,7 @@ class ObjectCache {
         * be an alias to the configured cache choice for that.
         * If no cache choice is configured (by default $wgMainCacheType is CACHE_NONE),
         * then CACHE_ANYTHING will forward to CACHE_DB.
-        * @param $params array
+        * @param array $params
         * @return BagOStuff
         */
        static function newAnything( $params ) {
@@ -118,7 +118,7 @@ class ObjectCache {
        /**
         * Factory function referenced from DefaultSettings.php for CACHE_ACCEL.
         *
-        * @param $params array
+        * @param array $params
         * @throws MWException
         * @return BagOStuff
         */
@@ -143,7 +143,7 @@ class ObjectCache {
         * hashing scheme and a different interpretation of the flags bitfield, so
         * switching between the two clients randomly would be disastrous.
         *
-        * @param $params array
+        * @param array $params
         *
         * @return MemcachedPhpBagOStuff
         */
index 7cf960e..cdf8da1 100644 (file)
@@ -49,6 +49,7 @@ class ObjectCacheSessionHandler {
 
        /**
         * Get the cache storage object to use for session storage
+        * @return ObjectCache
         */
        static function getCache() {
                global $wgSessionCacheType;
@@ -58,8 +59,8 @@ class ObjectCacheSessionHandler {
        /**
         * Get a cache key for the given session id.
         *
-        * @param string $id session id
-        * @return String: cache key
+        * @param string $id Session id
+        * @return string Cache key
         */
        static function getKey( $id ) {
                return wfMemcKey( 'session', $id );
@@ -68,9 +69,9 @@ class ObjectCacheSessionHandler {
        /**
         * Callback when opening a session.
         *
-        * @param $save_path String: path used to store session files, unused
-        * @param $session_name String: session name
-        * @return Boolean: success
+        * @param string $save_path Path used to store session files, unused
+        * @param string $session_name Session name
+        * @return bool Success
         */
        static function open( $save_path, $session_name ) {
                return true;
@@ -80,7 +81,7 @@ class ObjectCacheSessionHandler {
         * Callback when closing a session.
         * NOP.
         *
-        * @return Boolean: success
+        * @return bool Success
         */
        static function close() {
                return true;
@@ -89,8 +90,8 @@ class ObjectCacheSessionHandler {
        /**
         * Callback when reading session data.
         *
-        * @param string $id session id
-        * @return Mixed: session data
+        * @param string $id Session id
+        * @return mixed Session data
         */
        static function read( $id ) {
                $data = self::getCache()->get( self::getKey( $id ) );
@@ -103,9 +104,9 @@ class ObjectCacheSessionHandler {
        /**
         * Callback when writing session data.
         *
-        * @param string $id session id
-        * @param $data Mixed: session data
-        * @return Boolean: success
+        * @param string $id Session id
+        * @param mixed $data Session data
+        * @return bool Success
         */
        static function write( $id, $data ) {
                global $wgObjectCacheSessionExpiry;
@@ -116,8 +117,8 @@ class ObjectCacheSessionHandler {
        /**
         * Callback to destroy a session when calling session_destroy().
         *
-        * @param string $id session id
-        * @return Boolean: success
+        * @param string $id Session id
+        * @return bool Success
         */
        static function destroy( $id ) {
                self::getCache()->delete( self::getKey( $id ) );
@@ -128,8 +129,8 @@ class ObjectCacheSessionHandler {
         * Callback to execute garbage collection.
         * NOP: Object caches perform garbage collection implicitly
         *
-        * @param $maxlifetime Integer: maximum session life time
-        * @return Boolean: success
+        * @param int $maxlifetime Maximum session life time
+        * @return bool Success
         */
        static function gc( $maxlifetime ) {
                return true;
index 872af63..d6d49ae 100644 (file)
@@ -23,7 +23,7 @@
 class RedisBagOStuff extends BagOStuff {
        /** @var RedisConnectionPool */
        protected $redisPool;
-       /** @var Array List of server names */
+       /** @var array List of server names */
        protected $servers;
        /** @var bool */
        protected $automaticFailover;
@@ -53,6 +53,7 @@ class RedisBagOStuff extends BagOStuff {
         *     consistent hashing algorithm). True by default. This has the
         *     potential to create consistency issues if a server is slow enough to
         *     flap, for example if it is in swap death.
+        * @param array $params
         */
        function __construct( $params ) {
                $redisConf = array( 'serializer' => 'none' ); // manage that in this class
@@ -244,6 +245,9 @@ class RedisBagOStuff extends BagOStuff {
         * command. But we are constrained by the memcached-like interface to
         * return null in that case. Once the key exists, further increments are
         * atomic.
+        * @param string $key
+        * @param int $value
+        * @param bool|mixed
         */
        public function incr( $key, $value = 1 ) {
                $section = new ProfileSection( __METHOD__ );
@@ -286,7 +290,7 @@ class RedisBagOStuff extends BagOStuff {
 
        /**
         * Get a Redis object with a connection suitable for fetching the specified key
-        * @return Array (server, RedisConnRef) or (false, false)
+        * @return array (server, RedisConnRef) or (false, false)
         */
        protected function getConnection( $key ) {
                if ( count( $this->servers ) === 1 ) {
@@ -311,6 +315,7 @@ class RedisBagOStuff extends BagOStuff {
 
        /**
         * Log a fatal error
+        * @param string $msg
         */
        protected function logError( $msg ) {
                wfDebugLog( 'redis', "Redis error: $msg" );
@@ -321,6 +326,8 @@ class RedisBagOStuff extends BagOStuff {
         * and protocol errors. Sometimes it also closes the connection, sometimes
         * not. The safest response for us is to explicitly destroy the connection
         * object and let it be reopened during the next request.
+        * @param RedisConnRef $conn
+        * @param Exception $e
         */
        protected function handleException( RedisConnRef $conn, $e ) {
                $this->setLastError( BagOStuff::ERR_UNEXPECTED );
@@ -329,6 +336,10 @@ class RedisBagOStuff extends BagOStuff {
 
        /**
         * Send information about a single request to the debug log
+        * @param string $method
+        * @param string $key
+        * @param string $server
+        * @param bool $result
         */
        public function logRequest( $method, $key, $server, $result ) {
                $this->debug( "$method $key on $server: " .
index 74b5de2..8bf0c81 100644 (file)
@@ -70,7 +70,7 @@ class SqlBagOStuff extends BagOStuff {
         *                  distributed across all tables by key hash. This is for
         *                  MySQL bugs 61735 and 61736.
         *
-        * @param $params array
+        * @param array $params
         */
        public function __construct( $params ) {
                if ( isset( $params['servers'] ) ) {
@@ -101,7 +101,7 @@ class SqlBagOStuff extends BagOStuff {
        /**
         * Get a connection to the specified database
         *
-        * @param $serverIndex integer
+        * @param int $serverIndex
         * @return DatabaseBase
         */
        protected function getDB( $serverIndex ) {
@@ -155,8 +155,8 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Get the server index and table name for a given key
-        * @param $key string
-        * @return Array: server index and table name
+        * @param string $key
+        * @return array Server index and table name
         */
        protected function getTableByKey( $key ) {
                if ( $this->shards > 1 ) {
@@ -178,7 +178,7 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Get the table name for a given shard index
-        * @param $index int
+        * @param int $index
         * @return string
         */
        protected function getTableNameByShard( $index ) {
@@ -192,8 +192,8 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $casToken[optional] mixed
+        * @param string $key
+        * @param mixed $casToken [optional]
         * @return mixed
         */
        public function get( $key, &$casToken = null ) {
@@ -206,8 +206,8 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $keys array
-        * @return Array
+        * @param array $keys
+        * @return array
         */
        public function getMulti( array $keys ) {
                $values = array(); // array of (key => value)
@@ -272,9 +272,9 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function set( $key, $value, $exptime = 0 ) {
@@ -317,10 +317,10 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $casToken mixed
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param mixed $casToken
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function cas( $casToken, $key, $value, $exptime = 0 ) {
@@ -368,8 +368,8 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $time int
+        * @param string $key
+        * @param int $time
         * @return bool
         */
        public function delete( $key, $time = 0 ) {
@@ -391,8 +391,8 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $key string
-        * @param $step int
+        * @param string $key
+        * @param int $step
         * @return int|null
         */
        public function incr( $key, $step = 1 ) {
@@ -444,7 +444,7 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $exptime string
+        * @param string $exptime
         * @return bool
         */
        protected function isExpired( $db, $exptime ) {
@@ -452,6 +452,7 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
+        * @param DatabaseBase $db
         * @return string
         */
        protected function getMaxDateTime( $db ) {
@@ -485,8 +486,8 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Delete objects from the database which expire before a certain date.
-        * @param $timestamp string
-        * @param $progressCallback bool|callback
+        * @param string $timestamp
+        * @param bool|callable $progressCallback
         * @return bool
         */
        public function deleteObjectsExpiringBefore( $timestamp, $progressCallback = false ) {
@@ -583,7 +584,7 @@ class SqlBagOStuff extends BagOStuff {
         * On typical message and page data, this can provide a 3X decrease
         * in storage requirements.
         *
-        * @param $data mixed
+        * @param mixed $data
         * @return string
         */
        protected function serialize( &$data ) {
@@ -598,7 +599,7 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Unserialize and, if necessary, decompress an object.
-        * @param $serial string
+        * @param string $serial
         * @return mixed
         */
        protected function unserialize( $serial ) {
@@ -619,6 +620,9 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Handle a DBError which occurred during a read operation.
+        *
+        * @param DBError $exception
+        * @param int $serverIndex
         */
        protected function handleReadError( DBError $exception, $serverIndex ) {
                if ( $exception instanceof DBConnectionError ) {
@@ -636,6 +640,9 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Handle a DBQueryError which occurred during a write operation.
+        *
+        * @param DBError $exception
+        * @param int $serverIndex
         */
        protected function handleWriteError( DBError $exception, $serverIndex ) {
                if ( $exception instanceof DBConnectionError ) {
@@ -658,6 +665,9 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Mark a server down due to a DBConnectionError exception
+        *
+        * @param DBError $exception
+        * @param int $serverIndex
         */
        protected function markServerDown( $exception, $serverIndex ) {
                if ( isset( $this->connFailureTimes[$serverIndex] ) ) {
index 6d9b47a..a6c7d9c 100644 (file)
@@ -32,8 +32,8 @@ class WinCacheBagOStuff extends BagOStuff {
        /**
         * Get a value from the WinCache object cache
         *
-        * @param string $key cache key
-        * @param $casToken[optional] int: cas token
+        * @param string $key Cache key
+        * @param int $casToken [optional] Cas token
         * @return mixed
         */
        public function get( $key, &$casToken = null ) {
@@ -51,9 +51,9 @@ class WinCacheBagOStuff extends BagOStuff {
        /**
         * Store a value in the WinCache object cache
         *
-        * @param string $key cache key
-        * @param $value Mixed: object to store
-        * @param int $expire expiration time
+        * @param string $key Cache key
+        * @param mixed $valueObject to store
+        * @param int $expire Expiration time
         * @return bool
         */
        public function set( $key, $value, $expire = 0 ) {
@@ -67,10 +67,10 @@ class WinCacheBagOStuff extends BagOStuff {
        /**
         * Store a value in the WinCache object cache, race condition-safe
         *
-        * @param int $casToken cas token
-        * @param string $key cache key
-        * @param int $value object to store
-        * @param int $exptime expiration time
+        * @param int $casToken Cas token
+        * @param string $key Cache key
+        * @param int $value Object to store
+        * @param int $exptime Expiration time
         * @return bool
         */
        public function cas( $casToken, $key, $value, $exptime = 0 ) {
@@ -80,8 +80,8 @@ class WinCacheBagOStuff extends BagOStuff {
        /**
         * Remove a value from the WinCache object cache
         *
-        * @param string $key cache key
-        * @param int $time not used in this implementation
+        * @param string $key Cache key
+        * @param int $time Not used in this implementation
         * @return bool
         */
        public function delete( $key, $time = 0 ) {
index 0f45db7..b12a40c 100644 (file)
@@ -31,8 +31,8 @@ class XCacheBagOStuff extends BagOStuff {
        /**
         * Get a value from the XCache object cache
         *
-        * @param string $key cache key
-        * @param $casToken mixed: cas token
+        * @param string $key Cache key
+        * @param mixed $casToken Cas token
         * @return mixed
         */
        public function get( $key, &$casToken = null ) {
@@ -54,9 +54,9 @@ class XCacheBagOStuff extends BagOStuff {
        /**
         * Store a value in the XCache object cache
         *
-        * @param string $key cache key
-        * @param $value Mixed: object to store
-        * @param int $expire expiration time
+        * @param string $key Cache key
+        * @param mixed $value Object to store
+        * @param int $expire Expiration time
         * @return bool
         */
        public function set( $key, $value, $expire = 0 ) {
@@ -69,10 +69,10 @@ class XCacheBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param $casToken mixed
-        * @param $key string
-        * @param $value mixed
-        * @param $exptime int
+        * @param mixed $casToken
+        * @param string $key
+        * @param mixed $value
+        * @param int $exptime
         * @return bool
         */
        public function cas( $casToken, $key, $value, $exptime = 0 ) {
@@ -83,8 +83,8 @@ class XCacheBagOStuff extends BagOStuff {
        /**
         * Remove a value from the XCache object cache
         *
-        * @param string $key cache key
-        * @param int $time not used in this implementation
+        * @param string $key Cache key
+        * @param int $time Not used in this implementation
         * @return bool
         */
        public function delete( $key, $time = 0 ) {
@@ -97,13 +97,13 @@ class XCacheBagOStuff extends BagOStuff {
         * XCache does not seem to support any way of performing CAS - this however will
         * provide a way to perform CAS-like functionality.
         *
-        * @param $key string
-        * @param $callback closure Callback method to be executed
+        * @param string $key
+        * @param Closure $callback Callback method to be executed
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @param int $attempts The amount of times to attempt a merge in case of failure
-        * @return bool success
+        * @return bool Cuccess
         */
-       public function merge( $key, closure $callback, $exptime = 0, $attempts = 10 ) {
+       public function merge( $key, Closure $callback, $exptime = 0, $attempts = 10 ) {
                return $this->mergeViaLock( $key, $callback, $exptime, $attempts );
        }
 
index 1a1ef38..6818884 100644 (file)
@@ -4973,7 +4973,7 @@ class Parser {
         *     about the methods available in PPFrame and PPNode.
         *
         * @throws MWException
-        * @return string|callback The old callback function for this name, if any
+        * @return string|callable The old callback function for this name, if any
         */
        public function setFunctionHook( $id, $callback, $flags = 0 ) {
                global $wgContLang;
index 1b209e4..a44200f 100644 (file)
@@ -53,9 +53,9 @@ abstract class PoolCounter {
 
        /** @var string All workers with the same key share the lock */
        protected $key;
-       /** @var integer Maximum number of workers doing the task simultaneously */
+       /** @var int Maximum number of workers doing the task simultaneously */
        protected $workers;
-       /** @var integer If this number of workers are already working/waiting, fail instead of wait */
+       /** @var int If this number of workers are already working/waiting, fail instead of wait */
        protected $maxqueue;
        /** @var float Maximum time in seconds to wait for the lock */
        protected $timeout;
@@ -75,8 +75,8 @@ abstract class PoolCounter {
        /**
         * Create a Pool counter. This should only be called from the PoolWorks.
         *
-        * @param $type
-        * @param $key
+        * @param string $type
+        * @param string $key
         *
         * @return PoolCounter
         */
index 5c88239..36101e0 100644 (file)
@@ -59,24 +59,24 @@ class PoolCounterRedis extends PoolCounter {
        protected $serversByLabel;
        /** @var string SHA-1 of the key */
        protected $keySha1;
-       /** @var integer TTL for locks to expire (work should finish in this time) */
+       /** @var int TTL for locks to expire (work should finish in this time) */
        protected $lockTTL;
 
        /** @var RedisConnRef */
        protected $conn;
        /** @var string Pool slot value */
        protected $slot;
-       /** @var integer AWAKE_* constant */
+       /** @var int AWAKE_* constant */
        protected $onRelease;
        /** @var string Unique string to identify this process */
        protected $session;
-       /** @var integer UNIX timestamp */
+       /** @var int UNIX timestamp */
        protected $slotTime;
 
        const AWAKE_ONE = 1; // wake-up if when a slot can be taken from an existing process
        const AWAKE_ALL = 2; // wake-up if an existing process finishes and wake up such others
 
-       /** @var Array List of active PoolCounterRedis objects in this script */
+       /** @var array List of active PoolCounterRedis objects in this script */
        protected static $active = null;
 
        function __construct( $conf, $type, $key ) {
index 50ddd90..86bf8f1 100644 (file)
@@ -37,13 +37,13 @@ abstract class PoolCounterWork {
 
        /**
         * Actually perform the work, caching it if needed
-        * @return mixed work result or false
+        * @return mixed Work result or false
         */
        abstract public function doWork();
 
        /**
         * Retrieve the work from cache
-        * @return mixed work result or false
+        * @return mixed Work result or false
         */
        public function getCachedWork() {
                return false;
@@ -52,7 +52,7 @@ abstract class PoolCounterWork {
        /**
         * A work not so good (eg. expired one) but better than an error
         * message.
-        * @return mixed work result or false
+        * @return mixed Work result or false
         */
        public function fallback() {
                return false;
@@ -69,7 +69,7 @@ abstract class PoolCounterWork {
        /**
         * Log an error
         *
-        * @param $status Status
+        * @param Status $status
         * @return void
         */
        public function logError( $status ) {
@@ -91,7 +91,7 @@ abstract class PoolCounterWork {
         *   - c) fallback()     : Applies for all remaining cases.
         * If these all fall through (by returning false), then the result of error() is returned.
         *
-        * @param $skipcache bool
+        * @param bool $skipcache
         * @return mixed
         */
        public function execute( $skipcache = false ) {
index 02367e1..109e3eb 100644 (file)
@@ -118,9 +118,9 @@ class Profiler {
 
        /** @var float seconds */
        protected $mDBLockThreshold = 5.0;
-       /** @var Array DB/server name => (active trx count,timestamp) */
+       /** @var array DB/server name => (active trx count,timestamp) */
        protected $mDBTrxHoldingLocks = array();
-       /** @var Array DB/server name => list of (function name, elapsed time) */
+       /** @var array DB/server name => list of (function name, elapsed time) */
        protected $mDBTrxMethodTimes = array();
 
        /** @var Profiler */
@@ -167,7 +167,7 @@ class Profiler {
 
        /**
         * Set the profiler to a specific profiler instance. Mostly for dumpHTML
-        * @param $p Profiler object
+        * @param Profiler $p
         */
        public static function setInstance( Profiler $p ) {
                self::$__instance = $p;
@@ -176,7 +176,7 @@ class Profiler {
        /**
         * Return whether this a stub profiler
         *
-        * @return Boolean
+        * @return bool
         */
        public function isStub() {
                return false;
@@ -186,7 +186,7 @@ class Profiler {
         * Return whether this profiler stores data
         *
         * @see Profiler::logData()
-        * @return Boolean
+        * @return bool
         */
        public function isPersistent() {
                return false;
@@ -213,7 +213,7 @@ class Profiler {
        /**
         * Whether to internally just track aggregates and ignore the full stack trace
         *
-        * @return boolean
+        * @return bool
         */
        protected function collateOnly() {
                return false;
@@ -276,8 +276,8 @@ class Profiler {
         * @param string $name
         * @param float $elapsedCpu
         * @param float $elapsedReal
-        * @param integer $memChange
-        * @param integer $subcalls
+        * @param int $memChange
+        * @param int $subcalls
         * @param array|null $period Map of ('start','end','memory','subcalls')
         */
        protected function updateEntry(
@@ -308,7 +308,7 @@ class Profiler {
        /**
         * Called by wfProfieIn()
         *
-        * @param $functionname String
+        * @param string $functionname
         */
        public function profileIn( $functionname ) {
                global $wgDebugFunctionEntry;
@@ -330,7 +330,7 @@ class Profiler {
        /**
         * Called by wfProfieOut()
         *
-        * @param $functionname String
+        * @param  string $functionname
         */
        public function profileOut( $functionname ) {
                global $wgDebugFunctionEntry;
@@ -477,7 +477,7 @@ class Profiler {
        /**
         * Mark this call as templated or not
         *
-        * @param $t Boolean
+        * @param bool $t
         */
        public function setTemplated( $t ) {
                $this->mTemplated = $t;
@@ -486,7 +486,7 @@ class Profiler {
        /**
         * Returns a profiling output to be stored in debug file
         *
-        * @return String
+        * @return string
         */
        public function getOutput() {
                global $wgDebugFunctionEntry, $wgProfileCallTree;
@@ -573,7 +573,7 @@ class Profiler {
         * Get the initial time of the request, based either on $wgRequestTime or
         * $wgRUstart. Will return null if not able to find data.
         *
-        * @param string|false $metric metric to use, with the following possibilities:
+        * @param string|false $metric Metric to use, with the following possibilities:
         *   - user: User CPU time (without system calls)
         *   - cpu: Total CPU time (user and system calls)
         *   - wall (or any other string): elapsed time
@@ -606,7 +606,7 @@ class Profiler {
         * Get the initial time of the request, based either on $wgRequestTime or
         * $wgRUstart. Will return null if not able to find data.
         *
-        * @param string|false $metric metric to use, with the following possibilities:
+        * @param string|false $metric Metric to use, with the following possibilities:
         *   - user: User CPU time (without system calls)
         *   - cpu: Total CPU time (user and system calls)
         *   - wall (or any other string): elapsed time
@@ -804,6 +804,8 @@ class Profiler {
 
        /**
         * Dummy calls to wfProfileIn/wfProfileOut to calculate its overhead
+        *
+        * @param int $profileCount
         */
        protected static function calculateOverhead( $profileCount ) {
                wfProfileIn( '-overhead-total' );
@@ -818,9 +820,9 @@ class Profiler {
         * Counts the number of profiled function calls sitting under
         * the given point in the call graph. Not the most efficient algo.
         *
-        * @param $stack Array:
-        * @param $start Integer:
-        * @return Integer
+        * @param array $stack
+        * @param int $start
+        * @return int
         */
        protected function calltreeCount( $stack, $start ) {
                $level = $stack[$start][1];
@@ -834,7 +836,7 @@ class Profiler {
        /**
         * Add an entry in the debug log file
         *
-        * @param string $s to output
+        * @param string $s String to output
         */
        protected function debug( $s ) {
                if ( function_exists( 'wfDebug' ) ) {
@@ -846,7 +848,7 @@ class Profiler {
         * Add an entry in the debug log group
         *
         * @param string $group Group to send the message to
-        * @param string $s to output
+        * @param string $s String to output
         */
        protected function debugGroup( $group, $s ) {
                if ( function_exists( 'wfDebugLog' ) ) {
index eac6a02..6b8c7c4 100644 (file)
@@ -1319,12 +1319,9 @@ class ResourceLoader {
        public static function getLESSVars() {
                global $wgResourceLoaderLESSVars;
 
-               static $lessVars = null;
-               if ( $lessVars === null ) {
-                       $lessVars = $wgResourceLoaderLESSVars;
-                       // Sort by key to ensure consistent hashing for cache lookups.
-                       ksort( $lessVars );
-               }
+               $lessVars = $wgResourceLoaderLESSVars;
+               // Sort by key to ensure consistent hashing for cache lookups.
+               ksort( $lessVars );
                return $lessVars;
        }
 }
index 7992882..0553880 100644 (file)
@@ -55,7 +55,7 @@ class RevDel_RevisionList extends RevDel_List {
        }
 
        /**
-        * @param $db DatabaseBase
+        * @param DatabaseBase $db
         * @return mixed
         */
        public function doQuery( $db ) {
@@ -318,7 +318,7 @@ class RevDel_ArchiveList extends RevDel_RevisionList {
        }
 
        /**
-        * @param $db DatabaseBase
+        * @param DatabaseBase $db
         * @return mixed
         */
        public function doQuery( $db ) {
@@ -489,7 +489,7 @@ class RevDel_FileList extends RevDel_List {
        var $storeBatch, $deleteBatch, $cleanupBatch;
 
        /**
-        * @param $db DatabaseBase
+        * @param DatabaseBase $db
         * @return mixed
         */
        public function doQuery( $db ) {
@@ -792,7 +792,7 @@ class RevDel_ArchivedFileList extends RevDel_FileList {
        }
 
        /**
-        * @param $db DatabaseBase
+        * @param DatabaseBase $db
         * @return mixed
         */
        public function doQuery( $db ) {
@@ -916,7 +916,7 @@ class RevDel_LogList extends RevDel_List {
        }
 
        /**
-        * @param $db DatabaseBase
+        * @param DatabaseBase $db
         * @return mixed
         */
        public function doQuery( $db ) {
index 3874602..e326dce 100644 (file)
@@ -339,7 +339,7 @@ abstract class RevDel_Item extends RevisionItemBase {
         * If the update fails because it did not match, the function should return
         * false. This prevents concurrency problems.
         *
-        * @return boolean success
+        * @return bool Success
         */
        abstract public function setBits( $newBits );
 
index b0b2253..7b82b7b 100644 (file)
@@ -33,10 +33,10 @@ class RevisionDeleteUser {
 
        /**
         * Update *_deleted bitfields in various tables to hide or unhide usernames
-        * @param $name String username
-        * @param $userId Int user id
-        * @param $op String operator '|' or '&'
-        * @param $dbw null|DatabaseBase, if you happen to have one lying around
+        * @param string $name Username
+        * @param int $userId User id
+        * @param string $op Operator '|' or '&'
+        * @param null|DatabaseBase $dbw If you happen to have one lying around
         * @return bool
         */
        private static function setUsernameBitfields( $name, $userId, $op, $dbw ) {
index bea8460..ecfe1d8 100644 (file)
@@ -93,10 +93,10 @@ class RevisionDeleter {
         *
         * @param string $desc description to add to the array if the option was
         * enabled / disabled.
-        * @param $field Integer: the bitmask describing the single option.
-        * @param $diff Integer: the xor of the old and new bitfields.
-        * @param $new Integer: the new bitfield
-        * @param array $arr the array to update.
+        * @param int $field The bitmask describing the single option.
+        * @param int $diff The xor of the old and new bitfields.
+        * @param int $new The new bitfield
+        * @param array $arr The array to update.
         */
        protected static function checkItem( $desc, $field, $diff, $new, &$arr ) {
                if ( $diff & $field ) {
@@ -117,8 +117,8 @@ class RevisionDeleter {
         * You can turn the keys in $arr[0] and $arr[1] into message keys by
         * appending -hid and and -unhid to the keys respectively.
         *
-        * @param $n Integer: the new bitfield.
-        * @param $o Integer: the old bitfield.
+        * @param int $n The new bitfield.
+        * @param int $o The old bitfield.
         * @return array An array as described above.
         * @since 1.19 public
         */
@@ -206,8 +206,8 @@ class RevisionDeleter {
         * If it doesn't, returns the corresponding ar_timestamp field
         * so that this key can be used instead.
         *
-        * @param $title Title
-        * @param $revid
+        * @param Title $title
+        * @param int $revid
         * @return bool|mixed
         */
        public static function checkRevisionExistence( $title, $revid ) {
@@ -230,8 +230,8 @@ class RevisionDeleter {
        /**
         * Put together a rev_deleted bitfield
         * @since 1.22
-        * @param array $bitPars extractBitParams() params
-        * @param int $oldfield current bitfield
+        * @param array $bitPars ExtractBitParams() params
+        * @param int $oldfield Current bitfield
         * @return array
         */
        public static function extractBitfield( $bitPars, $oldfield ) {
index f3b8a0c..248066b 100644 (file)
@@ -41,7 +41,7 @@ class MediaWikiSite extends Site {
         * @since 1.21
         * @deprecated Just use the constructor or the factory Site::newForType
         *
-        * @param integer $globalId
+        * @param int $globalId
         *
         * @return MediaWikiSite
         */
@@ -67,9 +67,9 @@ class MediaWikiSite extends Site {
         *
         * @since 1.21
         *
-        * @param string $title the target page's title, in normalized form.
+        * @param string $title The target page's title, in normalized form.
         *
-        * @return String
+        * @return string
         */
        public function toDBKey( $title ) {
                return str_replace( ' ', '_', $title );
@@ -177,7 +177,7 @@ class MediaWikiSite extends Site {
         * @param array $externalData A reply from the API on a external server.
         * @param string $pageTitle Identifies the page at the external site, needing normalization.
         *
-        * @return array|boolean a 'page' structure representing the page identified by $pageTitle.
+        * @return array|bool A 'page' structure representing the page identified by $pageTitle.
         */
        private static function extractPageRecord( $externalData, $pageTitle ) {
                // If there is a special case with only one returned page
@@ -309,7 +309,7 @@ class MediaWikiSite extends Site {
         *
         * @since 1.21
         *
-        * @param string|boolean $pageName Page name or false (default: false)
+        * @param string|bool $pageName Page name or false (default: false)
         *
         * @return string
         */
@@ -335,7 +335,7 @@ class MediaWikiSite extends Site {
         *
         * @since 1.21
         *
-        * @param string|boolean $path
+        * @param string|bool $path
         *
         * @return string
         */
index 076dc88..59230c7 100644 (file)
@@ -234,7 +234,7 @@ class Site implements Serializable {
         *
         * @since 1.21
         *
-        * @return boolean
+        * @return bool
         */
        public function shouldForward() {
                return $this->forward;
@@ -246,7 +246,7 @@ class Site implements Serializable {
         *
         * @since 1.21
         *
-        * @param boolean $shouldForward
+        * @param bool $shouldForward
         *
         * @throws MWException
         */
@@ -365,9 +365,9 @@ class Site implements Serializable {
         *
         * @since 1.21
         *
-        * @param bool|String $pageName
+        * @param bool|string $pageName
         *
-        * @return string|boolean false
+        * @return string|bool
         */
        public function getPageUrl( $pageName = false ) {
                $url = $this->getLinkPath();
index a7c196b..6992450 100644 (file)
@@ -33,7 +33,7 @@ class SiteList extends GenericArrayObject {
         *
         * @since 1.21
         *
-        * @var array of integer
+        * @var array Array of integer
         */
        protected $byInternalId = array();
 
@@ -42,7 +42,7 @@ class SiteList extends GenericArrayObject {
         *
         * @since 1.21
         *
-        * @var array of string
+        * @var array Array of string
         */
        protected $byGlobalId = array();
 
@@ -52,7 +52,7 @@ class SiteList extends GenericArrayObject {
         *
         * @since 1.23
         *
-        * @var array of string
+        * @var array Array of string
         */
        protected $byNavigationId = array();
 
@@ -75,7 +75,7 @@ class SiteList extends GenericArrayObject {
         * @param int|string $index
         * @param Site $site
         *
-        * @return boolean
+        * @return bool
         */
        protected function preSetElement( $index, $site ) {
                if ( $this->hasSite( $site->getGlobalId() ) ) {
@@ -136,7 +136,7 @@ class SiteList extends GenericArrayObject {
         *
         * @param string $globalSiteId
         *
-        * @return boolean
+        * @return bool
         */
        public function hasSite( $globalSiteId ) {
                return array_key_exists( $globalSiteId, $this->byGlobalId );
@@ -173,7 +173,7 @@ class SiteList extends GenericArrayObject {
         *
         * @since 1.21
         *
-        * @return boolean
+        * @return bool
         */
        public function isEmpty() {
                return $this->byGlobalId === array();
@@ -182,9 +182,9 @@ class SiteList extends GenericArrayObject {
        /**
         * Returns if the list contains the site with the provided site id.
         *
-        * @param integer $id
+        * @param int $id
         *
-        * @return boolean
+        * @return bool
         */
        public function hasInternalId( $id ) {
                return array_key_exists( $id, $this->byInternalId );
@@ -196,7 +196,7 @@ class SiteList extends GenericArrayObject {
         *
         * @since 1.21
         *
-        * @param integer $id
+        * @param int $id
         *
         * @return Site
         */
@@ -210,7 +210,7 @@ class SiteList extends GenericArrayObject {
         *
         * @since 1.21
         *
-        * @param integer $id
+        * @param int $id
         */
        public function removeSiteByInternalId( $id ) {
                $this->offsetUnset( $this->byInternalId[$id] );
@@ -221,7 +221,7 @@ class SiteList extends GenericArrayObject {
         *
         * @param string $id
         *
-        * @return boolean
+        * @return bool
         */
        public function hasNavigationId( $id ) {
                return array_key_exists( $id, $this->byNavigationId );
index 7bf933c..d14569a 100644 (file)
@@ -90,7 +90,7 @@ class SiteSQLStore implements SiteStore {
         *
         * @see SiteList::getSerialVersionId
         *
-        * @return String The cache key.
+        * @return string The cache key.
         */
        protected function getCacheKey() {
                wfProfileIn( __METHOD__ );
@@ -115,7 +115,7 @@ class SiteSQLStore implements SiteStore {
         *
         * @since 1.21
         *
-        * @param string $source either 'cache' or 'recache'
+        * @param string $source Either 'cache' or 'recache'
         *
         * @return SiteList
         */
@@ -287,7 +287,7 @@ class SiteSQLStore implements SiteStore {
         *
         * @param Site $site
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function saveSite( Site $site ) {
                return $this->saveSites( array( $site ) );
@@ -300,7 +300,7 @@ class SiteSQLStore implements SiteStore {
         *
         * @param Site[] $sites
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function saveSites( array $sites ) {
                wfProfileIn( __METHOD__ );
@@ -390,7 +390,7 @@ class SiteSQLStore implements SiteStore {
         *
         * @see SiteStore::clear()
         *
-        * @return bool success
+        * @return bool Success
         */
        public function clear() {
                wfProfileIn( __METHOD__ );
@@ -468,7 +468,7 @@ class Sites extends SiteSQLStore {
         * @since 1.21
         * @deprecated
         *
-        * @param string|boolean false $globalId
+        * @param string|bool $globalId
         *
         * @return Site
         */
@@ -498,6 +498,7 @@ class Sites extends SiteSQLStore {
 
        /**
         * @deprecated
+        * @param string $group
         * @return SiteList
         */
        public function getSiteGroup( $group ) {
index 52ba8fb..537f1cc 100644 (file)
@@ -35,7 +35,7 @@ interface SiteStore {
         *
         * @param Site $site
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function saveSite( Site $site );
 
@@ -46,7 +46,7 @@ interface SiteStore {
         *
         * @param Site[] $sites
         *
-        * @return boolean Success indicator
+        * @return bool Success indicator
         */
        public function saveSites( array $sites );
 
@@ -56,7 +56,7 @@ interface SiteStore {
         * @since 1.21
         *
         * @param string $globalId
-        * @param string $source either 'cache' or 'recache'.
+        * @param string $source Either 'cache' or 'recache'.
         * If 'cache', the values are allowed (but not obliged) to come from a cache.
         *
         * @return Site|null
@@ -70,7 +70,7 @@ interface SiteStore {
         *
         * @since 1.21
         *
-        * @param string $source either 'cache' or 'recache'.
+        * @param string $source Either 'cache' or 'recache'.
         * If 'cache', the values are allowed (but not obliged) to come from a cache.
         *
         * @return SiteList
index bc0b8ff..7e108af 100644 (file)
@@ -164,7 +164,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
         *
         * Intended for subclassing, e.g. to add a backwards-compatibility layer.
         *
-        * @param FormOptions $parameters
+        * @param FormOptions $opts
         * @return FormOptions
         */
        protected function fetchOptionsFromRequest( $opts ) {
@@ -398,7 +398,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
         * @todo This should not be static, then we can drop the parameter
         * @todo Not called by anything, should be called by doHeader()
         *
-        * @param $context the object available as $this in non-static functions
+        * @param IContextSource $context The object available as $this in non-static functions
         * @return string
         */
        public static function makeLegend( IContextSource $context ) {
index 7496262..6020396 100644 (file)
@@ -37,13 +37,13 @@ abstract class FormSpecialPage extends SpecialPage {
 
        /**
         * Get an HTMLForm descriptor array
-        * @return Array
+        * @return array
         */
        abstract protected function getFormFields();
 
        /**
         * Add pre-text to the form
-        * @return String HTML which will be sent to $form->addPreText()
+        * @return string HTML which will be sent to $form->addPreText()
         */
        protected function preText() {
                return '';
@@ -51,7 +51,7 @@ abstract class FormSpecialPage extends SpecialPage {
 
        /**
         * Add post-text to the form
-        * @return String HTML which will be sent to $form->addPostText()
+        * @return string HTML which will be sent to $form->addPostText()
         */
        protected function postText() {
                return '';
@@ -59,7 +59,7 @@ abstract class FormSpecialPage extends SpecialPage {
 
        /**
         * Play with the HTMLForm if you need to more substantially
-        * @param $form HTMLForm
+        * @param HTMLForm $form
         */
        protected function alterForm( HTMLForm $form ) {
        }
@@ -113,8 +113,8 @@ abstract class FormSpecialPage extends SpecialPage {
 
        /**
         * Process the form on POST submission.
-        * @param $data Array
-        * @return Bool|Array true for success, false for didn't-try, array of errors on failure
+        * @param array $data
+        * @return bool|array True for success, false for didn't-try, array of errors on failure
         */
        abstract public function onSubmit( array $data );
 
@@ -155,9 +155,9 @@ abstract class FormSpecialPage extends SpecialPage {
        /**
         * Called from execute() to check if the given user can perform this action.
         * Failures here must throw subclasses of ErrorPageError.
-        * @param $user User
+        * @param User $user
         * @throws UserBlockedError
-        * @return Bool true
+        * @return bool True
         */
        protected function checkExecutePermissions( User $user ) {
                $this->checkPermissions();
@@ -176,7 +176,7 @@ abstract class FormSpecialPage extends SpecialPage {
 
        /**
         * Whether this action requires the wiki not to be locked
-        * @return Bool
+        * @return bool
         */
        public function requiresWrite() {
                return true;
@@ -184,7 +184,7 @@ abstract class FormSpecialPage extends SpecialPage {
 
        /**
         * Whether this action cannot be executed by a blocked user
-        * @return Bool
+        * @return bool
         */
        public function requiresUnblock() {
                return true;
index 3fbb0e5..3bdbc3c 100644 (file)
@@ -67,7 +67,7 @@ abstract class RedirectSpecialPage extends UnlistedSpecialPage {
         * Return part of the request string for a special redirect page
         * This allows passing, e.g. action=history to Special:Mypage, etc.
         *
-        * @return String
+        * @return string
         */
        public function getRedirectQuery() {
                $params = array();
index 15a71ff..2305f21 100644 (file)
@@ -232,7 +232,7 @@ class SpecialPageFactory {
         * aliases; the first in the array is the canonical alias.  All registered special
         * pages are guaranteed to have a property entry, and for that property array to
         * contain at least one entry (English fallbacks will be added if necessary).
-        * @return Object
+        * @return object
         */
        static function getAliasList() {
                if ( !is_object( self::$aliases ) ) {
@@ -361,7 +361,7 @@ class SpecialPageFactory {
         * Return categorised listable special pages which are available
         * for the current user, and everyone.
         *
-        * @param $user User object to check permissions, $wgUser will be used if
+        * @param User $user User object to check permissions, $wgUser will be used if
         *   if not provided
         * @return array ( string => Specialpage )
         */
index f739d3b..d963677 100644 (file)
@@ -38,18 +38,18 @@ class ActiveUsersPager extends UsersPager {
        protected $opts;
 
        /**
-        * @var Array
+        * @var array
         */
        protected $hideGroups = array();
 
        /**
-        * @var Array
+        * @var array
         */
        protected $hideRights = array();
 
        /**
-        * @param $context IContextSource
-        * @param $group null Unused
+        * @param IContextSource $context
+        * @param null $group Unused
         * @param string $par Parameter passed to the page
         */
        function __construct( IContextSource $context = null, $group = null, $par = null ) {
@@ -230,7 +230,7 @@ class SpecialActiveUsers extends SpecialPage {
        /**
         * Show the special page
         *
-        * @param $par Mixed: parameter passed to the page or null
+        * @param string $par Parameter passed to the page or null
         */
        public function execute( $par ) {
                global $wgActiveUserDays;
@@ -270,8 +270,8 @@ class SpecialActiveUsers extends SpecialPage {
        }
 
        /**
-        * @param integer $period Seconds (do updates no more often than this)
-        * @return integer How many seconds old the cache is
+        * @param intr $period Seconds (do updates no more often than this)
+        * @return int How many seconds old the cache is
         */
        public static function mergeActiveUsers( $period ) {
                global $wgActiveUserDays;
@@ -311,7 +311,7 @@ class SpecialActiveUsers extends SpecialPage {
         * Update the query cache as needed
         *
         * @param DatabaseBase $dbw
-        * @param integer $window Maximum time range of new data to scan (in seconds)
+        * @param int $window Maximum time range of new data to scan (in seconds)
         * @return bool Success
         */
        protected static function doQueryCacheUpdate( DatabaseBase $dbw, $window ) {
index 6cef130..33c92b5 100644 (file)
@@ -43,7 +43,7 @@ class SpecialAllmessages extends SpecialPage {
        /**
         * Show the special page
         *
-        * @param $par Mixed: parameter passed to the page or null
+        * @param string $par Parameter passed to the page or null
         */
        public function execute( $par ) {
                $request = $this->getRequest();
@@ -114,7 +114,7 @@ class AllmessagesTablePager extends TablePager {
 
                $this->lang = ( $langObj ? $langObj : $wgContLang );
                $this->langcode = $this->lang->getCode();
-               $this->foreign = $this->langcode != $wgContLang->getCode();
+               $this->foreign = $this->langcode !== $wgContLang->getCode();
 
                $request = $this->getRequest();
 
@@ -122,11 +122,14 @@ class AllmessagesTablePager extends TablePager {
                if ( $this->filter === 'all' ) {
                        $this->custom = null; // So won't match in either case
                } else {
-                       $this->custom = ( $this->filter == 'unmodified' );
+                       $this->custom = ( $this->filter === 'unmodified' );
                }
 
                $prefix = $this->getLanguage()->ucfirst( $request->getVal( 'prefix', '' ) );
-               $prefix = $prefix != '' ? Title::makeTitleSafe( NS_MEDIAWIKI, $request->getVal( 'prefix', null ) ) : null;
+               $prefix = $prefix !== '' ?
+                       Title::makeTitleSafe( NS_MEDIAWIKI, $request->getVal( 'prefix', null ) ) :
+                       null;
+
                if ( $prefix !== null ) {
                        $this->displayPrefix = $prefix->getDBkey();
                        $this->prefix = '/^' . preg_quote( $this->displayPrefix ) . '/i';
@@ -151,7 +154,11 @@ class AllmessagesTablePager extends TablePager {
                $msg = wfMessage( 'allmessages-language' );
                $langSelect = Xml::languageSelector( $this->langcode, false, null, $attrs, $msg );
 
-               $out = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'id' => 'mw-allmessages-form' ) ) .
+               $out = Xml::openElement( 'form', array(
+                               'method' => 'get',
+                               'action' => $wgScript,
+                               'id' => 'mw-allmessages-form'
+                       ) ) .
                        Xml::fieldset( $this->msg( 'allmessages-filter-legend' )->text() ) .
                        Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
                        Xml::openElement( 'table', array( 'class' => 'mw-allmessages-table' ) ) . "\n" .
@@ -160,7 +167,12 @@ class AllmessagesTablePager extends TablePager {
                        Xml::label( $this->msg( 'allmessages-prefix' )->text(), 'mw-allmessages-form-prefix' ) .
                        "</td>\n
                        <td class=\"mw-input\">" .
-                       Xml::input( 'prefix', 20, str_replace( '_', ' ', $this->displayPrefix ), array( 'id' => 'mw-allmessages-form-prefix' ) ) .
+                       Xml::input(
+                               'prefix',
+                               20,
+                               str_replace( '_', ' ', $this->displayPrefix ),
+                               array( 'id' => 'mw-allmessages-form-prefix' )
+                       ) .
                        "</td>\n
                        </tr>
                        <tr>\n
@@ -172,19 +184,19 @@ class AllmessagesTablePager extends TablePager {
                                'filter',
                                'unmodified',
                                'mw-allmessages-form-filter-unmodified',
-                               ( $this->filter == 'unmodified' )
+                               ( $this->filter === 'unmodified' )
                        ) .
                        Xml::radioLabel( $this->msg( 'allmessages-filter-all' )->text(),
                                'filter',
                                'all',
                                'mw-allmessages-form-filter-all',
-                               ( $this->filter == 'all' )
+                               ( $this->filter === 'all' )
                        ) .
                        Xml::radioLabel( $this->msg( 'allmessages-filter-modified' )->text(),
                                'filter',
                                'modified',
                                'mw-allmessages-form-filter-modified',
-                               ( $this->filter == 'modified' )
+                               ( $this->filter === 'modified' )
                        ) .
                        "</td>\n
                        </tr>
@@ -241,7 +253,7 @@ class AllmessagesTablePager extends TablePager {
         * @param array $messageNames
         * @param string $langcode What language code
         * @param bool $foreign Whether the $langcode is not the content language
-        * @return array: a 'pages' and 'talks' array with the keys of existing pages
+        * @return array A 'pages' and 'talks' array with the keys of existing pages
         */
        public static function getCustomisedStatuses( $messageNames, $langcode = 'en', $foreign = false ) {
                // FIXME: This function should be moved to Language:: or something.
@@ -262,7 +274,7 @@ class AllmessagesTablePager extends TablePager {
                        $exists = false;
                        if ( $foreign ) {
                                $title = explode( '/', $s->page_title );
-                               if ( count( $title ) === 2 && $langcode == $title[1]
+                               if ( count( $title ) === 2 && $langcode === $title[1]
                                        && isset( $xNames[$title[0]] )
                                ) {
                                        $exists = $title[0];
@@ -270,9 +282,9 @@ class AllmessagesTablePager extends TablePager {
                        } elseif ( isset( $xNames[$s->page_title] ) ) {
                                $exists = $s->page_title;
                        }
-                       if ( $exists && $s->page_namespace == NS_MEDIAWIKI ) {
+                       if ( $exists && $s->page_namespace === NS_MEDIAWIKI ) {
                                $pageFlags[$exists] = true;
-                       } elseif ( $exists && $s->page_namespace == NS_MEDIAWIKI_TALK ) {
+                       } elseif ( $exists && $s->page_namespace === NS_MEDIAWIKI_TALK ) {
                                $talkFlags[$exists] = true;
                        }
                }
@@ -315,7 +327,7 @@ class AllmessagesTablePager extends TablePager {
                                $count++;
                        }
 
-                       if ( $count == $limit ) {
+                       if ( $count === $limit ) {
                                break;
                        }
                }
@@ -324,7 +336,11 @@ class AllmessagesTablePager extends TablePager {
        }
 
        function getStartBody() {
-               return Xml::openElement( 'table', array( 'class' => 'mw-datatable TablePager', 'id' => 'mw-allmessagestable' ) ) . "\n" .
+               return Xml::openElement( 'table', array(
+                               'class' => 'mw-datatable TablePager',
+                               'id' => 'mw-allmessagestable'
+                       ) ) .
+                       "\n" .
                        "<thead><tr>
                                <th rowspan=\"2\">" .
                        $this->msg( 'allmessagesname' )->escaped() . "
@@ -389,6 +405,7 @@ class AllmessagesTablePager extends TablePager {
                        case 'am_actual' :
                                return Sanitizer::escapeHtmlAllowEntities( $value, ENT_QUOTES );
                }
+
                return '';
        }
 
@@ -400,9 +417,11 @@ class AllmessagesTablePager extends TablePager {
                if ( $row->am_customised ) {
                        $s .= Xml::openElement( 'tr', $this->getRowAttrs( $row, true ) );
                        $formatted = strval( $this->formatValue( 'am_actual', $row->am_actual ) );
-                       if ( $formatted == '' ) {
+
+                       if ( $formatted === '' ) {
                                $formatted = '&#160;';
                        }
+
                        $s .= Xml::tags( 'td', $this->getCellAttrs( 'am_actual', $row->am_actual ), $formatted )
                                . "</tr>\n";
                }
@@ -412,9 +431,11 @@ class AllmessagesTablePager extends TablePager {
 
        function getRowAttrs( $row, $isSecond = false ) {
                $arr = array();
+
                if ( $row->am_customised ) {
                        $arr['class'] = 'allmessages-customised';
                }
+
                if ( !$isSecond ) {
                        $arr['id'] = Sanitizer::escapeId( 'msg_' . $this->getLanguage()->lcfirst( $row->am_title ) );
                }
@@ -423,9 +444,9 @@ class AllmessagesTablePager extends TablePager {
        }
 
        function getCellAttrs( $field, $value ) {
-               if ( $this->mCurrentRow->am_customised && $field == 'am_title' ) {
+               if ( $this->mCurrentRow->am_customised && $field === 'am_title' ) {
                        return array( 'rowspan' => '2', 'class' => $field );
-               } elseif ( $field == 'am_title' ) {
+               } elseif ( $field === 'am_title' ) {
                        return array( 'class' => $field );
                } else {
                        return array( 'lang' => $this->langcode, 'dir' => $this->lang->getDir(), 'class' => $field );
index 70949d4..a61c90d 100644 (file)
@@ -115,10 +115,10 @@ class SpecialAllpages extends IncludableSpecialPage {
        /**
         * HTML for the top form
         *
-        * @param $namespace Integer: a namespace constant (default NS_MAIN).
-        * @param string $from dbKey we are starting listing at.
-        * @param string $to dbKey we are ending listing at.
-        * @param bool $hideredirects dont show redirects  (default FALSE)
+        * @param int $namespace A namespace constant (default NS_MAIN).
+        * @param string $from DbKey we are starting listing at.
+        * @param string $to DbKey we are ending listing at.
+        * @param bool $hideredirects Dont show redirects  (default false)
         * @return string
         */
        function namespaceForm( $namespace = NS_MAIN, $from = '', $to = '', $hideredirects = false ) {
@@ -174,10 +174,10 @@ class SpecialAllpages extends IncludableSpecialPage {
        }
 
        /**
-        * @param $namespace Integer (default NS_MAIN)
-        * @param string $from list all pages from this name
-        * @param string $to list all pages to this name
-        * @param bool $hideredirects dont show redirects (default FALSE)
+        * @param int $namespace (default NS_MAIN)
+        * @param string $from List all pages from this name
+        * @param string $to List all pages to this name
+        * @param bool $hideredirects Dont show redirects (default false)
         */
        function showToplevel( $namespace = NS_MAIN, $from = '', $to = '', $hideredirects = false ) {
                $output = $this->getOutput();
@@ -318,10 +318,10 @@ class SpecialAllpages extends IncludableSpecialPage {
        /**
         * Show a line of "ABC to DEF" ranges of articles
         *
-        * @param string $inpoint lower limit of pagenames
-        * @param string $outpoint upper limit of pagenames
-        * @param $namespace Integer (Default NS_MAIN)
-        * @param bool $hideRedirects don't show redirects. Default: false
+        * @param string $inpoint Lower limit of pagenames
+        * @param string $outpoint Upper limit of pagenames
+        * @param int $namespace (Default NS_MAIN)
+        * @param bool $hideRedirects Don't show redirects. Default: false
         * @return string
         */
        function showline( $inpoint, $outpoint, $namespace = NS_MAIN, $hideRedirects = false ) {
@@ -361,9 +361,9 @@ class SpecialAllpages extends IncludableSpecialPage {
 
        /**
         * @param int $namespace Namespace (Default NS_MAIN)
-        * @param string $from list all pages from this name (default FALSE)
-        * @param string $to list all pages to this name (default FALSE)
-        * @param bool $hideredirects dont show redirects (default FALSE)
+        * @param string $from List all pages from this name (default FALSE)
+        * @param string $to List all pages to this name (default FALSE)
+        * @param bool $hideredirects Dont show redirects (default FALSE)
         */
        function showChunk( $namespace = NS_MAIN, $from = false, $to = false, $hideredirects = false ) {
                $output = $this->getOutput();
@@ -559,8 +559,8 @@ class SpecialAllpages extends IncludableSpecialPage {
        }
 
        /**
-        * @param $ns Integer: the namespace of the article
-        * @param string $text the name of the article
+        * @param int $ns The namespace of the article
+        * @param string $text The name of the article
         * @return array( int namespace, string dbkey, string pagename ) or NULL on error
         */
        protected function getNamespaceKeyAndText( $ns, $text ) {
index 57637c9..e0ebd4d 100644 (file)
@@ -32,19 +32,19 @@ class SpecialBlock extends FormSpecialPage {
         * or as subpage (Special:Block/Foo) */
        protected $target;
 
-       /** @var Integer Block::TYPE_ constant */
+       /** @var int Block::TYPE_ constant */
        protected $type;
 
-       /** @var User|String the previous block target */
+       /** @var User|string The previous block target */
        protected $previousTarget;
 
-       /** @var Bool whether the previous submission of the form asked for HideUser */
+       /** @var bool Whether the previous submission of the form asked for HideUser */
        protected $requestedHideUser;
 
-       /** @var Bool */
+       /** @var bool */
        protected $alreadyBlocked;
 
-       /** @var Array */
+       /** @var array */
        protected $preErrors = array();
 
        public function __construct() {
@@ -70,7 +70,7 @@ class SpecialBlock extends FormSpecialPage {
        /**
         * Handle some magic here
         *
-        * @param $par String
+        * @param string $par
         */
        protected function setParameter( $par ) {
                # Extract variables from the request.  Try not to get into a situation where we
@@ -91,7 +91,7 @@ class SpecialBlock extends FormSpecialPage {
        /**
         * Customizes the HTMLForm a bit
         *
-        * @param $form HTMLForm
+        * @param HTMLForm $form
         */
        protected function alterForm( HTMLForm $form ) {
                $form->setWrapperLegendMsg( 'blockip-legend' );
@@ -116,7 +116,7 @@ class SpecialBlock extends FormSpecialPage {
 
        /**
         * Get the HTMLForm descriptor array for the block form
-        * @return Array
+        * @return array
         */
        protected function getFormFields() {
                global $wgBlockAllowsUTEdit;
@@ -227,7 +227,7 @@ class SpecialBlock extends FormSpecialPage {
         * If the user has already been blocked with similar settings, load that block
         * and change the defaults for the form fields to match the existing settings.
         * @param array $fields HTMLForm descriptor array
-        * @return Bool whether fields were altered (that is, whether the target is
+        * @return bool Whether fields were altered (that is, whether the target is
         *     already blocked)
         */
        protected function maybeAlterFormDefaults( &$fields ) {
@@ -305,7 +305,7 @@ class SpecialBlock extends FormSpecialPage {
 
        /**
         * Add header elements like block log entries, etc.
-        * @return String
+        * @return string
         */
        protected function preText() {
                $this->getOutput()->addModules( 'mediawiki.special.block' );
@@ -436,7 +436,7 @@ class SpecialBlock extends FormSpecialPage {
        /**
         * Get a user page target for things like logs.
         * This handles account and IP range targets.
-        * @param $target User|string
+        * @param User|string $target
         * @return Title|null
         */
        protected static function getTargetUserTitle( $target ) {
@@ -454,7 +454,7 @@ class SpecialBlock extends FormSpecialPage {
         * TODO: should be in Block.php?
         * @param string $par subpage parameter passed to setup, or data value from
         *     the HTMLForm
-        * @param $request WebRequest optionally try and get data from a request too
+        * @param WebRequest $request Optionally try and get data from a request too
         * @return array( User|string|null, Block::TYPE_ constant|null )
         */
        public static function getTargetAndType( $par, WebRequest $request = null ) {
@@ -503,9 +503,9 @@ class SpecialBlock extends FormSpecialPage {
        /**
         * HTMLForm field validation-callback for Target field.
         * @since 1.18
-        * @param $value String
-        * @param $alldata Array
-        * @param $form HTMLForm
+        * @param string $value
+        * @param array $alldata
+        * @param HTMLForm $form
         * @return Message
         */
        public static function validateTargetField( $value, $alldata, $form ) {
@@ -583,9 +583,9 @@ class SpecialBlock extends FormSpecialPage {
 
        /**
         * Submit callback for an HTMLForm object, will simply pass
-        * @param $data array
-        * @param $form HTMLForm
-        * @return Bool|String
+        * @param array $data
+        * @param HTMLForm $form
+        * @return bool|string
         */
        public static function processUIForm( array $data, HTMLForm $form ) {
                return self::processForm( $data, $form->getContext() );
@@ -593,9 +593,9 @@ class SpecialBlock extends FormSpecialPage {
 
        /**
         * Given the form data, actually implement a block
-        * @param $data Array
-        * @param $context IContextSource
-        * @return Bool|String
+        * @param array $data
+        * @param IContextSource $context
+        * @return bool|string
         */
        public static function processForm( array $data, IContextSource $context ) {
                global $wgBlockAllowsUTEdit, $wgHideUserContribLimit;
@@ -799,9 +799,9 @@ class SpecialBlock extends FormSpecialPage {
         * Get an array of suggested block durations from MediaWiki:Ipboptions
         * @todo FIXME: This uses a rather odd syntax for the options, should it be converted
         *     to the standard "**<duration>|<displayname>" format?
-        * @param $lang Language|null the language to get the durations in, or null to use
+        * @param Language|null $lang The language to get the durations in, or null to use
         *     the wiki's content language
-        * @return Array
+        * @return array
         */
        public static function getSuggestedDurations( $lang = null ) {
                $a = array();
@@ -828,8 +828,8 @@ class SpecialBlock extends FormSpecialPage {
        /**
         * Convert a submitted expiry time, which may be relative ("2 weeks", etc) or absolute
         * ("24 May 2034", etc), into an absolute timestamp we can put into the database.
-        * @param string $expiry whatever was typed into the form
-        * @return String: timestamp or "infinity" string for the DB implementation
+        * @param string $expiry Whatever was typed into the form
+        * @return string Timestamp or "infinity" string for the DB implementation
         */
        public static function parseExpiryInput( $expiry ) {
                static $infinity;
@@ -854,8 +854,8 @@ class SpecialBlock extends FormSpecialPage {
 
        /**
         * Can we do an email block?
-        * @param $user User: the sysop wanting to make a block
-        * @return Boolean
+        * @param User $user The sysop wanting to make a block
+        * @return bool
         */
        public static function canBlockEmail( $user ) {
                global $wgEnableUserEmail, $wgSysopEmailBans;
@@ -867,9 +867,9 @@ class SpecialBlock extends FormSpecialPage {
         * bug 15810: blocked admins should not be able to block/unblock
         * others, and probably shouldn't be able to unblock themselves
         * either.
-        * @param $user User|Int|String
-        * @param $performer User user doing the request
-        * @return Bool|String true or error message key
+        * @param User|int|string $user
+        * @param User $performer User doing the request
+        * @return bool|string True or error message key
         */
        public static function checkUnblockSelf( $user, User $performer ) {
                if ( is_int( $user ) ) {
@@ -901,8 +901,8 @@ class SpecialBlock extends FormSpecialPage {
        /**
         * Return a comma-delimited list of "flags" to be passed to the log
         * reader for this block, to provide more information in the logs
-        * @param array $data from HTMLForm data
-        * @param $type Block::TYPE_ constant (USER, RANGE, or IP)
+        * @param array $data From HTMLForm data
+        * @param int $type Block::TYPE_ constant (USER, RANGE, or IP)
         * @return string
         */
        protected static function blockLogFlags( array $data, $type ) {
@@ -947,8 +947,8 @@ class SpecialBlock extends FormSpecialPage {
 
        /**
         * Process the form on POST submission.
-        * @param $data Array
-        * @return Bool|Array true for success, false for didn't-try, array of errors on failure
+        * @param array $data
+        * @return bool|array True for success, false for didn't-try, array of errors on failure
         */
        public function onSubmit( array $data ) {
                // This isn't used since we need that HTMLForm that's passed in the
index 4e7043d..bf61cce 100644 (file)
@@ -37,7 +37,7 @@ class SpecialBlockList extends SpecialPage {
        /**
         * Main execution point
         *
-        * @param string $par title fragment
+        * @param string $par Title fragment
         */
        public function execute( $par ) {
                $this->setHeaders();
@@ -217,8 +217,8 @@ class BlockListPager extends TablePager {
        protected $page;
 
        /**
-        * @param $page SpecialPage
-        * @param $conds Array
+        * @param SpecialPage $page
+        * @param array $conds
         */
        function __construct( $page, $conds ) {
                $this->page = $page;
@@ -461,8 +461,8 @@ class HTMLBlockedUsersItemSelect extends HTMLSelectField {
         * Basically don't do any validation. If it's a number that's fine. Also,
         * add it to the list if it's not there already
         *
-        * @param $value
-        * @param $alldata
+        * @param string $value
+        * @param array $alldata
         * @return bool
         */
        function validate( $value, $alldata ) {
index 39305f0..7763166 100644 (file)
@@ -52,7 +52,7 @@ abstract class SpecialCachedPage extends SpecialPage implements ICacheHelper {
         * If the cache is enabled or not.
         *
         * @since 1.20
-        * @var boolean
+        * @var bool
         */
        protected $cacheEnabled = true;
 
@@ -61,7 +61,7 @@ abstract class SpecialCachedPage extends SpecialPage implements ICacheHelper {
         *
         * @since 1.20
         *
-        * @param $subPage string|null
+        * @param string|null $subPage
         */
        protected function afterExecute( $subPage ) {
                $this->saveCache();
@@ -73,7 +73,7 @@ abstract class SpecialCachedPage extends SpecialPage implements ICacheHelper {
         * Sets if the cache should be enabled or not.
         *
         * @since 1.20
-        * @param boolean $cacheEnabled
+        * @param bool $cacheEnabled
         */
        public function setCacheEnabled( $cacheEnabled ) {
                $this->cacheHelper->setCacheEnabled( $cacheEnabled );
@@ -85,8 +85,8 @@ abstract class SpecialCachedPage extends SpecialPage implements ICacheHelper {
         *
         * @since 1.20
         *
-        * @param integer|null $cacheExpiry Sets the cache expiry, either ttl in seconds or unix timestamp.
-        * @param boolean|null $cacheEnabled Sets if the cache should be enabled or not.
+        * @param int|null $cacheExpiry Sets the cache expiry, either ttl in seconds or unix timestamp.
+        * @param bool|null $cacheEnabled Sets if the cache should be enabled or not.
         */
        public function startCache( $cacheExpiry = null, $cacheEnabled = null ) {
                if ( !isset( $this->cacheHelper ) ) {
@@ -162,7 +162,7 @@ abstract class SpecialCachedPage extends SpecialPage implements ICacheHelper {
         *
         * @since 1.20
         *
-        * @param integer $cacheExpiry
+        * @param int $cacheExpiry
         */
        public function setExpiry( $cacheExpiry ) {
                $this->cacheHelper->setExpiry( $cacheExpiry );
@@ -187,7 +187,7 @@ abstract class SpecialCachedPage extends SpecialPage implements ICacheHelper {
         *
         * @since 1.20
         *
-        * @param boolean $hasCached
+        * @param bool $hasCached
         */
        public function onCacheInitialized( $hasCached ) {
                if ( $hasCached ) {
index e678259..07a2a86 100644 (file)
@@ -45,7 +45,7 @@ class SpecialChangeEmail extends UnlistedSpecialPage {
        }
 
        /**
-        * @return Bool
+        * @return bool
         */
        function isListed() {
                global $wgAuth;
@@ -55,6 +55,7 @@ class SpecialChangeEmail extends UnlistedSpecialPage {
 
        /**
         * Main execution point
+        * @param string $par
         */
        function execute( $par ) {
                global $wgAuth;
@@ -114,7 +115,7 @@ class SpecialChangeEmail extends UnlistedSpecialPage {
        }
 
        /**
-        * @param $type string
+        * @param string $type
         */
        protected function doReturnTo( $type = 'hard' ) {
                $titleObj = Title::newFromText( $this->getRequest()->getVal( 'returnto' ) );
@@ -129,7 +130,7 @@ class SpecialChangeEmail extends UnlistedSpecialPage {
        }
 
        /**
-        * @param $msg string
+        * @param string $msg
         */
        protected function error( $msg ) {
                $this->getOutput()->wrapWikiMsg( "<p class='error'>\n$1\n</p>", $msg );
@@ -181,7 +182,7 @@ class SpecialChangeEmail extends UnlistedSpecialPage {
        }
 
        /**
-        * @param $fields array
+        * @param array $fields
         * @return string
         */
        protected function pretty( $fields ) {
@@ -215,10 +216,10 @@ class SpecialChangeEmail extends UnlistedSpecialPage {
        }
 
        /**
-        * @param $user User
-        * @param $pass string
-        * @param $newaddr string
-        * @return bool|string true or string on success, false on failure
+        * @param User $user
+        * @param string $pass
+        * @param string $newaddr
+        * @return bool|string True or string on success, false on failure
         */
        protected function attemptChange( User $user, $pass, $newaddr ) {
                global $wgAuth, $wgPasswordAttemptThrottle;
index fc6b0c5..da1a54c 100644 (file)
@@ -43,8 +43,8 @@ class SpecialComparePages extends SpecialPage {
        /**
         * Show a form for filtering namespace and username
         *
-        * @param $par String
-        * @return String
+        * @param string $par
+        * @return string
         */
        public function execute( $par ) {
                $this->setHeaders();
index 2c91805..6a4467c 100644 (file)
@@ -237,8 +237,8 @@ class SpecialContributions extends IncludableSpecialPage {
 
        /**
         * Generates the subheading with links
-        * @param $userObj User object for the target
-        * @return String: appropriately-escaped HTML to be output literally
+        * @param User $userObj User object for the target
+        * @return string Appropriately-escaped HTML to be output literally
         * @todo FIXME: Almost the same as getSubTitle in SpecialDeletedContributions.php.
         * Could be combined.
         */
@@ -295,9 +295,9 @@ class SpecialContributions extends IncludableSpecialPage {
 
        /**
         * Links to different places.
-        * @param $userpage Title: Target user page
-        * @param $talkpage Title: Talk page
-        * @param $target User: Target user object
+        * @param Title $userpage Target user page
+        * @param Title $talkpage Talk page
+        * @param User $target Target user object
         * @return array
         */
        public function getUserLinks( Title $userpage, Title $talkpage, User $target ) {
@@ -381,7 +381,7 @@ class SpecialContributions extends IncludableSpecialPage {
 
        /**
         * Generates the namespace selector form with hidden attributes.
-        * @return String: HTML fragment
+        * @return string HTML fragment
         */
        protected function getForm() {
                global $wgScript;
@@ -707,9 +707,9 @@ class ContribsPager extends ReverseChronologicalPager {
         * This method basically executes the exact same code as the parent class, though with
         * a hook added, to allow extentions to add additional queries.
         *
-        * @param string $offset index offset, inclusive
-        * @param $limit Integer: exact query limit
-        * @param $descending Boolean: query direction, false for ascending, true for descending
+        * @param string $offset Index offset, inclusive
+        * @param int $limit Exact query limit
+        * @param bool $descending Query direction, false for ascending, true for descending
         * @return ResultWrapper
         */
        function reallyDoQuery( $offset, $limit, $descending ) {
@@ -944,7 +944,7 @@ class ContribsPager extends ReverseChronologicalPager {
         * was not written by the target user.
         *
         * @todo This would probably look a lot nicer in a table.
-        * @param $row
+        * @param object $row
         * @return string
         */
        function formatRow( $row ) {
index 3115215..5bec95b 100644 (file)
@@ -147,7 +147,7 @@ class DeletedContribsPager extends IndexPager {
         * written by the target user.
         *
         * @todo This would probably look a lot nicer in a table.
-        * @param $row
+        * @param stdClass $row
         * @return string
         */
        function formatRow( $row ) {
@@ -375,8 +375,8 @@ class DeletedContributionsPage extends SpecialPage {
 
        /**
         * Generates the subheading with links
-        * @param $userObj User object for the target
-        * @return String: appropriately-escaped HTML to be output literally
+        * @param User $userObj User object for the target
+        * @return string Appropriately-escaped HTML to be output literally
         * @todo FIXME: Almost the same as contributionsSub in SpecialContributions.php. Could be combined.
         */
        function getSubTitle( $userObj ) {
@@ -498,7 +498,7 @@ class DeletedContributionsPage extends SpecialPage {
 
        /**
         * Generates the namespace selector form with hidden attributes.
-        * @param array $options the options to be included.
+        * @param array $options The options to be included.
         * @return string
         */
        function getForm( $options ) {
index 31fcc61..0c860a5 100644 (file)
@@ -56,7 +56,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
        /**
         * Main execution point
         *
-        * @param $mode int
+        * @param int $mode
         */
        public function execute( $mode ) {
                $this->setHeaders();
@@ -113,7 +113,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
         * Extract a list of titles from a blob of text, returning
         * (prefixed) strings; unwatchable titles are ignored
         *
-        * @param $list String
+        * @param string $list
         * @return array
         */
        private function extractTitles( $list ) {
@@ -197,8 +197,8 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
         * $titles can be an array of strings or Title objects; the former
         * is preferred, since Titles are very memory-heavy
         *
-        * @param array $titles of strings, or Title objects
-        * @param $output String
+        * @param array $titles Array of strings, or Title objects
+        * @param string $output
         */
        private function showTitles( $titles, &$output ) {
                $talk = $this->msg( 'talkpagelinktext' )->escaped();
@@ -319,7 +319,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
         * @param Title $title
         * @param int $namespace
         * @param string $dbKey
-        * @return bool: Whether this item is valid
+        * @return bool Whether this item is valid
         */
        private function checkTitle( $title, $namespace, $dbKey ) {
                if ( $title
@@ -390,7 +390,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
         * $titles can be an array of strings or Title objects; the former
         * is preferred, since Titles are very memory-heavy
         *
-        * @param array $titles of strings, or Title objects
+        * @param array $titles Array of strings, or Title objects
         */
        private function watchTitles( $titles ) {
                $dbw = wfGetDB( DB_MASTER );
@@ -426,7 +426,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
         * $titles can be an array of strings or Title objects; the former
         * is preferred, since Titles are very memory-heavy
         *
-        * @param array $titles of strings, or Title objects
+        * @param array $titles Array of strings, or Title objects
         */
        private function unwatchTitles( $titles ) {
                $dbw = wfGetDB( DB_MASTER );
@@ -550,7 +550,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
        /**
         * Build the label for a checkbox, with a link to the title, and various additional bits
         *
-        * @param $title Title
+        * @param Title $title
         * @return string
         */
        private function buildRemoveLine( $title ) {
@@ -615,8 +615,8 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
         * Determine whether we are editing the watchlist, and if so, what
         * kind of editing operation
         *
-        * @param $request WebRequest
-        * @param $par mixed
+        * @param WebRequest $request
+        * @param string $par
         * @return int
         */
        public static function getMode( $request, $par ) {
@@ -640,7 +640,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
         * Build a set of links for convenient navigation
         * between watchlist viewing and editing modes
         *
-        * @param $unused
+        * @param null $unused
         * @return string
         */
        public static function buildTools( $unused ) {
@@ -700,7 +700,7 @@ class EditWatchlistCheckboxSeriesField extends HTMLMultiSelectField {
         *
         * @param string $value the value the field was submitted with
         * @param array $alldata the data collected from the form
-        * @return Mixed Bool true on success, or String error to display.
+        * @return bool|string Bool true on success, or String error to display.
         */
        function validate( $value, $alldata ) {
                // Need to call into grandparent to be a good citizen. :)
index fbddfbd..0062211 100644 (file)
@@ -176,7 +176,7 @@ class SpecialEmailUser extends UnlistedSpecialPage {
         * Validate target User
         *
         * @param string $target target user name
-        * @return User object on success or a string on error
+        * @return User User object on success or a string on error
         */
        public static function getTarget( $target ) {
                if ( $target == '' ) {
@@ -206,9 +206,9 @@ class SpecialEmailUser extends UnlistedSpecialPage {
        /**
         * Check whether a user is allowed to send email
         *
-        * @param $user User object
-        * @param string $editToken edit token
-        * @return null on success or string on error
+        * @param User $user
+        * @param string $editToken Edit token
+        * @return string|null Null on success or string on error
         */
        public static function getPermissionsError( $user, $editToken ) {
                global $wgEnableEmail, $wgEnableUserEmail;
@@ -252,8 +252,8 @@ class SpecialEmailUser extends UnlistedSpecialPage {
        /**
         * Form to ask for target user name.
         *
-        * @param string $name user name submitted.
-        * @return String: form asking for user name.
+        * @param string $name User name submitted.
+        * @return string Form asking for user name.
         */
        protected function userForm( $name ) {
                global $wgScript;
@@ -283,8 +283,8 @@ class SpecialEmailUser extends UnlistedSpecialPage {
         * Submit callback for an HTMLForm object, will simply call submit().
         *
         * @since 1.20
-        * @param $data array
-        * @param $form HTMLForm object
+        * @param array $data
+        * @param HTMLForm $form
         * @return Status|string|bool
         */
        public static function uiSubmit( array $data, HTMLForm $form ) {
@@ -298,7 +298,7 @@ class SpecialEmailUser extends UnlistedSpecialPage {
         *
         * @param array $data
         * @param IContextSource $context
-        * @return Mixed: Status object, or potentially a String on error
+        * @return Status|string|bool Status object, or potentially a String on error
         * or maybe even true on success if anything uses the EmailUser hook.
         */
        public static function submit( array $data, IContextSource $context ) {
index 61925cf..f89f03c 100644 (file)
  */
 class SpecialExpandTemplates extends SpecialPage {
 
-       /** @var boolean whether or not to show the XML parse tree */
+       /** @var bool Whether or not to show the XML parse tree */
        protected $generateXML;
 
-       /** @var boolean whether or not to show the raw HTML code */
+       /** @var bool Whether or not to show the raw HTML code */
        protected $generateRawHtml;
 
-       /** @var boolean whether or not to remove comments in the expanded wikitext */
+       /** @var bool Whether or not to remove comments in the expanded wikitext */
        protected $removeComments;
 
-       /** @var boolean whether or not to remove <nowiki> tags in the expanded wikitext */
+       /** @var bool Whether or not to remove <nowiki> tags in the expanded wikitext */
        protected $removeNowiki;
 
        /** @var maximum size in bytes to include. 50MB allows fixing those huge pages */
index 6fb5e8c..487d979 100644 (file)
@@ -297,10 +297,10 @@ class SpecialExport extends SpecialPage {
         * Do the actual page exporting
         *
         * @param string $page user input on what page(s) to export
-        * @param $history Mixed: one of the WikiExporter history export constants
-        * @param $list_authors Boolean: Whether to add distinct author list (when
-        *                      not returning full history)
-        * @param $exportall Boolean: Whether to export everything
+        * @param int $history One of the WikiExporter history export constants
+        * @param bool $list_authors Whether to add distinct author list (when
+        *   not returning full history)
+        * @param bool $exportall Whether to export everything
         */
        private function doExport( $page, $history, $list_authors, $exportall ) {
 
@@ -397,7 +397,7 @@ class SpecialExport extends SpecialPage {
        }
 
        /**
-        * @param $title Title
+        * @param Title $title
         * @return array
         */
        private function getPagesFromCategory( $title ) {
@@ -430,7 +430,7 @@ class SpecialExport extends SpecialPage {
        }
 
        /**
-        * @param $nsindex int
+        * @param int $nsindex
         * @return array
         */
        private function getPagesFromNamespace( $nsindex ) {
@@ -463,9 +463,9 @@ class SpecialExport extends SpecialPage {
 
        /**
         * Expand a list of pages to include templates used in those pages.
-        * @param $inputPages array, list of titles to look up
-        * @param $pageSet array, associative array indexed by titles for output
-        * @return array associative array index by titles
+        * @param array $inputPages List of titles to look up
+        * @param array $pageSet Associative array indexed by titles for output
+        * @return array Associative array index by titles
         */
        private function getTemplates( $inputPages, $pageSet ) {
                return $this->getLinks( $inputPages, $pageSet,
@@ -477,7 +477,7 @@ class SpecialExport extends SpecialPage {
 
        /**
         * Validate link depth setting, if available.
-        * @param $depth int
+        * @param int $depth
         * @return int
         */
        private function validateLinkDepth( $depth ) {
@@ -504,9 +504,9 @@ class SpecialExport extends SpecialPage {
 
        /**
         * Expand a list of pages to include pages linked to from that page.
-        * @param $inputPages array
-        * @param $pageSet array
-        * @param $depth int
+        * @param array $inputPages
+        * @param array $pageSet
+        * @param int $depth
         * @return array
         */
        private function getPageLinks( $inputPages, $pageSet, $depth ) {
@@ -525,8 +525,8 @@ class SpecialExport extends SpecialPage {
        /**
         * Expand a list of pages to include images used in those pages.
         *
-        * @param $inputPages array, list of titles to look up
-        * @param $pageSet array, associative array indexed by titles for output
+        * @param array $inputPages List of titles to look up
+        * @param array $pageSet Associative array indexed by titles for output
         *
         * @return array associative array index by titles
         */
index 47a4d75..dc9d57c 100644 (file)
@@ -71,7 +71,7 @@ class FewestrevisionsPage extends QueryPage {
        /**
         * @param Skin $skin
         * @param object $result Database row
-        * @return String
+        * @return string
         */
        function formatResult( $skin, $result ) {
                global $wgContLang;
index 1bd4228..aca8c96 100644 (file)
@@ -413,8 +413,8 @@ class ImportReporter extends ContextSource {
 
        /**
         * @param WikiImporter $importer
-        * @param $upload
-        * @param $interwiki
+        * @param bool $upload
+        * @param string $interwiki
         * @param string|bool $reason
         */
        function __construct( $importer, $upload, $interwiki, $reason = false ) {
@@ -448,8 +448,8 @@ class ImportReporter extends ContextSource {
         * @param Title $title
         * @param Title $origTitle
         * @param int $revisionCount
-        * @param $successCount
-        * @param $pageInfo
+        * @param int $successCount
+        * @param array $pageInfo
         * @return void
         */
        function reportPage( $title, $origTitle, $revisionCount, $successCount, $pageInfo ) {
index 5995347..c44e8e1 100644 (file)
@@ -177,8 +177,8 @@ class LinkSearchPage extends QueryPage {
        /**
         * Return an appropriately formatted LIKE query and the clause
         *
-        * @param String $query Search pattern to search for
-        * @param String $prot Protocol, e.g. 'http://'
+        * @param string $query Search pattern to search for
+        * @param string $prot Protocol, e.g. 'http://'
         *
         * @return array
         */
index 9f0d127..f9caff6 100644 (file)
@@ -121,7 +121,7 @@ class ImageListPager extends TablePager {
         * Build the where clause of the query.
         *
         * Replaces the older mQueryConds member variable.
-        * @param $table String Either "image" or "oldimage"
+        * @param string $table Either "image" or "oldimage"
         * @return array The query conditions.
         */
        protected function buildQueryConds( $table ) {
@@ -154,7 +154,7 @@ class ImageListPager extends TablePager {
        }
 
        /**
-        * @return Array
+        * @return array
         */
        function getFieldNames() {
                if ( !$this->mFieldNames ) {
@@ -226,7 +226,7 @@ class ImageListPager extends TablePager {
         *
         * This is a bit hacky.
         *
-        * @param $table String Either 'image' or 'oldimage'
+        * @param string $table Either 'image' or 'oldimage'
         * @return array Query info
         */
        protected function getQueryInfoReal( $table ) {
@@ -291,6 +291,9 @@ class ImageListPager extends TablePager {
         * @note $asc is named $descending in IndexPager base class. However
         *   it is true when the order is ascending, and false when the order
         *   is descending, so I renamed it to $asc here.
+        * @param int $offset
+        * @param int $limit
+        * @param bool $asc
         */
        function reallyDoQuery( $offset, $limit, $asc ) {
                $prevTableName = $this->mTableName;
@@ -326,10 +329,10 @@ class ImageListPager extends TablePager {
         *
         * Note: This will throw away some results
         *
-        * @param $res1 ResultWrapper
-        * @param $res2 ResultWrapper
-        * @param $limit int
-        * @param $ascending boolean See note about $asc in $this->reallyDoQuery
+        * @param ResultWrapper $res1
+        * @param ResultWrapper $res2
+        * @param int $limit
+        * @param bool $ascending See note about $asc in $this->reallyDoQuery
         * @return FakeResultWrapper $res1 and $res2 combined
         */
        protected function combineResult( $res1, $res2, $limit, $ascending ) {
index f69e177..367adef 100644 (file)
@@ -35,9 +35,9 @@
 class UsersPager extends AlphabeticPager {
 
        /**
-        * @param $context IContextSource
+        * @param IContextSource $context
         * @param array $par (Default null)
-        * @param $including boolean Whether this page is being transcluded in
+        * @param bool $including Whether this page is being transcluded in
         * another page
         */
        function __construct( IContextSource $context = null, $par = null, $including = null ) {
@@ -92,7 +92,7 @@ class UsersPager extends AlphabeticPager {
        }
 
        /**
-        * @return Array
+        * @return array
         */
        function getQueryInfo() {
                $dbr = wfGetDB( DB_SLAVE );
@@ -154,8 +154,8 @@ class UsersPager extends AlphabeticPager {
        }
 
        /**
-        * @param $row Object
-        * @return String
+        * @param stdClass $row
+        * @return string
         */
        function formatRow( $row ) {
                if ( $row->user_id == 0 ) { #Bug 16487
@@ -333,7 +333,7 @@ class UsersPager extends AlphabeticPager {
        /**
         * Get a list of groups the specified user belongs to
         *
-        * @param $uid Integer: user id
+        * @param int $uid User id
         * @return array
         */
        protected static function getGroups( $uid ) {
@@ -346,7 +346,7 @@ class UsersPager extends AlphabeticPager {
        /**
         * Format a link to a group description page
         *
-        * @param string $group group name
+        * @param string $group Group name
         * @param string $username Username
         * @return string
         */
index 5265403..dd5ab93 100644 (file)
@@ -218,7 +218,7 @@ class SpecialLog extends SpecialPage {
 
        /**
         * Set page title and show header for this log type
-        * @param $type string
+        * @param string $type
         * @since 1.19
         */
        protected function addHeader( $type ) {
index 50af915..013fc26 100644 (file)
@@ -166,7 +166,7 @@ class MIMEsearchPage extends QueryPage {
        }
 
        /**
-        * @param $type string
+        * @param string $type
         * @return bool
         */
        protected static function isValidType( $type ) {
index 98dd68e..30ccbe5 100644 (file)
@@ -92,8 +92,8 @@ class MostinterwikisPage extends QueryPage {
        }
 
        /**
-        * @param $skin Skin
-        * @param $result
+        * @param Skin $skin
+        * @param object $result
         * @return string
         */
        function formatResult( $skin, $result ) {
index 37593bf..99f0ecf 100644 (file)
@@ -93,9 +93,9 @@ class MostlinkedPage extends QueryPage {
        /**
         * Make a link to "what links here" for the specified title
         *
-        * @param $title Title being queried
-        * @param string $caption text to display on the link
-        * @return String
+        * @param Title $title Title being queried
+        * @param string $caption Text to display on the link
+        * @return string
         */
        function makeWlhLink( $title, $caption ) {
                $wlh = SpecialPage::getTitleFor( 'Whatlinkshere', $title->getPrefixedDBkey() );
index c90acb1..8ee583b 100644 (file)
@@ -36,7 +36,7 @@ class MostlinkedTemplatesPage extends QueryPage {
        /**
         * Is this report expensive, i.e should it be cached?
         *
-        * @return Boolean
+        * @return bool
         */
        public function isExpensive() {
                return true;
@@ -45,7 +45,7 @@ class MostlinkedTemplatesPage extends QueryPage {
        /**
         * Is there a feed available?
         *
-        * @return Boolean
+        * @return bool
         */
        public function isSyndicated() {
                return false;
@@ -54,7 +54,7 @@ class MostlinkedTemplatesPage extends QueryPage {
        /**
         * Sort the results in descending order?
         *
-        * @return Boolean
+        * @return bool
         */
        public function sortDescending() {
                return true;
@@ -76,7 +76,7 @@ class MostlinkedTemplatesPage extends QueryPage {
        /**
         * Pre-cache page existence to speed up link generation
         *
-        * @param $db DatabaseBase connection
+        * @param DatabaseBase $db
         * @param ResultWrapper $res
         */
        public function preprocessResults( $db, $res ) {
@@ -125,7 +125,7 @@ class MostlinkedTemplatesPage extends QueryPage {
         *
         * @param Title $title Title to make the link for
         * @param object $result Result row
-        * @return String
+        * @return string
         */
        private function makeWlhLink( $title, $result ) {
                $wlh = SpecialPage::getTitleFor( 'Whatlinkshere', $title->getPrefixedText() );
index 1e631f9..66ec693 100644 (file)
@@ -124,8 +124,8 @@ class SpecialNewpages extends IncludableSpecialPage {
        /**
         * Show a form for filtering namespace and username
         *
-        * @param $par String
-        * @return String
+        * @param string $par
+        * @return string
         */
        public function execute( $par ) {
                $out = $this->getOutput();
@@ -301,7 +301,7 @@ class SpecialNewpages extends IncludableSpecialPage {
         * size, user links, and a comment
         *
         * @param object $result Result row
-        * @return String
+        * @return string
         */
        public function formatRow( $result ) {
                $title = Title::newFromRow( $result );
@@ -401,7 +401,7 @@ class SpecialNewpages extends IncludableSpecialPage {
         * Should a specific result row provide "patrollable" links?
         *
         * @param object $result Result row
-        * @return Boolean
+        * @return bool
         */
        protected function patrollable( $result ) {
                return ( $this->getUser()->useNPPatrol() && !$result->rc_patrolled );
@@ -410,7 +410,7 @@ class SpecialNewpages extends IncludableSpecialPage {
        /**
         * Output a subscription feed listing recent edits to this page.
         *
-        * @param $type String
+        * @param string $type
         */
        protected function feed( $type ) {
                global $wgFeed, $wgFeedClasses, $wgFeedLimit;
index 082eed0..14f3ccd 100644 (file)
@@ -135,10 +135,10 @@ class SpecialPasswordReset extends FormSpecialPage {
         * Process the form.  At this point we know that the user passes all the criteria in
         * userCanExecute(), and if the data array contains 'Username', etc, then Username
         * resets are allowed.
-        * @param $data array
+        * @param array $data
         * @throws MWException
         * @throws ThrottledError|PermissionsError
-        * @return Bool|Array
+        * @return bool|array
         */
        public function onSubmit( array $data ) {
                global $wgAuth;
@@ -349,7 +349,7 @@ class SpecialPasswordReset extends FormSpecialPage {
 
        /**
         * Hide the password reset page if resets are disabled.
-        * @return Bool
+        * @return bool
         */
        function isListed() {
                if ( $this->canChangePassword( $this->getUser() ) === true ) {
index 7ad39d2..7bd9896 100644 (file)
@@ -47,7 +47,7 @@ class SpecialPrefixindex extends SpecialAllpages {
 
        /**
         * Entry point : initialise variables and call subfunctions.
-        * @param string $par becomes "FOO" when called like Special:Prefixindex/FOO (default null)
+        * @param string $par Becomes "FOO" when called like Special:Prefixindex/FOO (default null)
         */
        function execute( $par ) {
                global $wgContLang;
@@ -96,8 +96,8 @@ class SpecialPrefixindex extends SpecialAllpages {
 
        /**
         * HTML for the top form
-        * @param $namespace Integer: a namespace constant (default NS_MAIN).
-        * @param string $from dbKey we are starting listing at.
+        * @param int $namespace A namespace constant (default NS_MAIN).
+        * @param string $from DbKey we are starting listing at.
         * @return string
         */
        protected function namespacePrefixForm( $namespace = NS_MAIN, $from = '' ) {
@@ -153,9 +153,9 @@ class SpecialPrefixindex extends SpecialAllpages {
        }
 
        /**
-        * @param $namespace Integer, default NS_MAIN
-        * @param $prefix String
-        * @param string $from list all pages from this name (default FALSE)
+        * @param int $namespace Default NS_MAIN
+        * @param string $prefix
+        * @param string $from List all pages from this name (default FALSE)
         */
        protected function showPrefixChunk( $namespace = NS_MAIN, $prefix, $from = null ) {
                global $wgContLang;
index 5b4ccb5..6edf2c0 100644 (file)
@@ -99,7 +99,7 @@ class SpecialProtectedpages extends SpecialPage {
         * @param bool $indefOnly Only indefinite protection
         * @param bool $cascadeOnly Only cascading protection
         * @param bool $noRedirect Don't show redirects
-        * @return String: input form
+        * @return string Input form
         */
        protected function showOptions( $namespace, $type = 'edit', $level, $sizetype,
                $size, $indefOnly, $cascadeOnly, $noRedirect
@@ -131,8 +131,8 @@ class SpecialProtectedpages extends SpecialPage {
         * Prepare the namespace filter drop-down; standard namespace
         * selector, sans the MediaWiki namespace
         *
-        * @param $namespace Mixed: pre-select namespace
-        * @return String
+        * @param string|null $namespace Pre-select namespace
+        * @return string
         */
        protected function getNamespaceMenu( $namespace = null ) {
                return Html::rawElement( 'span', array( 'style' => 'white-space: nowrap;' ),
@@ -220,7 +220,7 @@ class SpecialProtectedpages extends SpecialPage {
 
        /**
         * Creates the input label of the restriction type
-        * @param $pr_type string Protection type
+        * @param string $pr_type Protection type
         * @return string Formatted HTML
         */
        protected function getTypeMenu( $pr_type ) {
@@ -249,7 +249,7 @@ class SpecialProtectedpages extends SpecialPage {
 
        /**
         * Creates the input label of the restriction level
-        * @param $pr_level string Protection level
+        * @param string $pr_level Protection level
         * @return string Formatted HTML
         */
        protected function getLevelMenu( $pr_level ) {
index c3ebd80..cb6ec3c 100644 (file)
@@ -126,9 +126,9 @@ class SpecialProtectedtitles extends SpecialPage {
        }
 
        /**
-        * @param $namespace Integer:
-        * @param $type string
-        * @param $level string
+        * @param int $namespace
+        * @param string $type
+        * @param string $level
         * @return string
         * @private
         */
@@ -152,7 +152,7 @@ class SpecialProtectedtitles extends SpecialPage {
         * Prepare the namespace filter drop-down; standard namespace
         * selector, sans the MediaWiki namespace
         *
-        * @param $namespace Mixed: pre-select namespace
+        * @param string|null $namespace Pre-select namespace
         * @return string
         */
        function getNamespaceMenu( $namespace = null ) {
index e877b4e..2707916 100644 (file)
@@ -127,7 +127,7 @@ class SpecialRandomInCategory extends SpecialPage {
 
        /**
         * Choose a random title.
-        * @return Title object (or null if nothing to choose from)
+        * @return Title|null Title object (or null if nothing to choose from)
         */
        public function getRandomTitle() {
                // Convert to float, since we do math with the random number.
@@ -177,7 +177,7 @@ class SpecialRandomInCategory extends SpecialPage {
         *   was a large gap in the distribution of cl_timestamp values. This way instead
         *   of things to the right of the gap being favoured, both sides of the gap
         *   are favoured.
-        * @return Array Query information.
+        * @return array Query information.
         */
        protected function getQueryInfo( $rand, $offset, $up ) {
                $op = $up ? '>=' : '<=';
@@ -238,7 +238,7 @@ class SpecialRandomInCategory extends SpecialPage {
         * Get the lowest and highest timestamp for a category.
         *
         * @param Title $category
-        * @return Array The lowest and highest timestamp
+        * @return array The lowest and highest timestamp
         * @throws MWException if category has no entries.
         */
        protected function getMinAndMaxForCat( Title $category ) {
@@ -268,8 +268,8 @@ class SpecialRandomInCategory extends SpecialPage {
         * @param float $rand A random number that is converted to a random timestamp
         * @param int $offset A small offset to make the result seem more "random"
         * @param bool $up Get the result above the random value
-        * @param String $fname The name of the calling method
-        * @return Array Info for the title selected.
+        * @param string $fname The name of the calling method
+        * @return array Info for the title selected.
         */
        private function selectRandomPageFromDB( $rand, $offset, $up, $fname = __METHOD__ ) {
                $dbr = wfGetDB( DB_SLAVE );
index 086193e..24b363d 100644 (file)
@@ -80,7 +80,7 @@ class RandomPage extends SpecialPage {
        /**
         * Get a comma-delimited list of namespaces we don't have
         * any pages in
-        * @return String
+        * @return string
         */
        private function getNsList() {
                global $wgContLang;
@@ -98,7 +98,7 @@ class RandomPage extends SpecialPage {
 
        /**
         * Choose a random title.
-        * @return Title object (or null if nothing to choose from)
+        * @return Title|null Title object (or null if nothing to choose from)
         */
        public function getRandomTitle() {
                $randstr = wfRandom();
index c10b7a6..4edf33c 100644 (file)
@@ -43,19 +43,19 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
        /** @var string Edit token for securing image views against XSS */
        private $token;
 
-       /** @var Title object for target parameter */
+       /** @var Title Title object for target parameter */
        private $targetObj;
 
        /** @var string Deletion type, may be revision, archive, oldimage, filearchive, logging. */
        private $typeName;
 
-       /** @var array of checkbox specs (message, name, deletion bits) */
+       /** @var array Array of checkbox specs (message, name, deletion bits) */
        private $checks;
 
        /** @var array UI Labels about the current type */
        private $typeLabels;
 
-       /** @var RevDel_List object, storing the list of items to be deleted/undeleted */
+       /** @var RevDel_List RevDel_List object, storing the list of items to be deleted/undeleted */
        private $revDelList;
 
        /** @var bool Whether user is allowed to perform the action */
@@ -278,6 +278,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
        /**
         * Show a deleted file version requested by the visitor.
         * TODO Mostly copied from Special:Undelete. Refactor.
+        * @param string $archiveName
         */
        protected function tryShowFile( $archiveName ) {
                $repo = RepoGroup::singleton()->getLocalRepo();
@@ -335,6 +336,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
 
        /**
         * Get the list object for this request
+        * @return RevDel_List
         */
        protected function getList() {
                if ( is_null( $this->revDelList ) ) {
@@ -462,7 +464,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
        }
 
        /**
-        * @return String: HTML
+        * @return string HTML
         */
        protected function buildCheckBoxes() {
                $html = '<table>';
@@ -605,9 +607,9 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
 
        /**
         * Do the write operations. Simple wrapper for RevDel_*List::setVisibility().
-        * @param $bitfield
-        * @param $reason
-        * @param $title
+        * @param int $bitfield
+        * @param string $reason
+        * @param Title $title
         * @return Status
         */
        protected function save( $bitfield, $reason, $title ) {
index 104cd54..10e7009 100644 (file)
@@ -117,7 +117,7 @@ class SpecialRunJobs extends UnlistedSpecialPage {
         *
         * @note: also called from Wiki.php
         *
-        * @param integer $maxJobs Maximum number of jobs to run
+        * @param int $maxJobs Maximum number of jobs to run
         * @return void
         */
        public static function executeJobs( $maxJobs ) {
index ec8d754..61bb1cd 100644 (file)
@@ -41,13 +41,13 @@ class SpecialSearch extends SpecialPage {
        /** @var SearchEngine Search engine */
        protected $searchEngine;
 
-       /** @var String Search engine type, if not default */
+       /** @var string Search engine type, if not default */
        protected $searchEngineType;
 
-       /** @var Array For links */
+       /** @var array For links */
        protected $extraParams = array();
 
-       /** @var String No idea, apparently used by some other classes */
+       /** @var string No idea, apparently used by some other classes */
        protected $mPrefix;
 
        /**
@@ -74,7 +74,7 @@ class SpecialSearch extends SpecialPage {
        /**
         * Entry point
         *
-        * @param string $par or null
+        * @param string $par
         */
        public function execute( $par ) {
                $this->setHeaders();
@@ -162,7 +162,7 @@ class SpecialSearch extends SpecialPage {
        /**
         * If an exact title match can be found, jump straight ahead to it.
         *
-        * @param $term String
+        * @param string $term
         */
        public function goResult( $term ) {
                $this->setupPage( $term );
@@ -177,11 +177,6 @@ class SpecialSearch extends SpecialPage {
                # If there's an exact or very near match, jump right there.
                $title = SearchEngine::getNearMatch( $term );
 
-               if ( !wfRunHooks( 'SpecialSearchGo', array( &$title, &$term ) ) ) {
-                       # Hook requested termination
-                       return;
-               }
-
                if ( !is_null( $title ) ) {
                        $this->getOutput()->redirect( $title->getFullURL() );
 
@@ -205,7 +200,7 @@ class SpecialSearch extends SpecialPage {
        }
 
        /**
-        * @param $term String
+        * @param string $term
         */
        public function showResults( $term ) {
                global $wgDisableTextSearch, $wgSearchForwardUrl, $wgContLang, $wgScript;
@@ -421,14 +416,13 @@ class SpecialSearch extends SpecialPage {
                if ( $num || $this->offset ) {
                        $out->addHTML( "<p class='mw-search-pager-bottom'>{$prevnext}</p>\n" );
                }
-               wfRunHooks( 'SpecialSearchResultsAppend', array( $this, $out, $term ) );
        }
 
        /**
-        * @param $title Title
+        * @param Title $title
         * @param int $num The number of search results found
-        * @param $titleMatches null|SearchResultSet results from title search
-        * @param $textMatches null|SearchResultSet results from text search
+        * @param null|SearchResultSet $titleMatches Results from title search
+        * @param null|SearchResultSet $textMatches  Results from text search
         */
        protected function showCreateLink( $title, $num, $titleMatches, $textMatches ) {
                // show direct page/create link if applicable
@@ -465,7 +459,7 @@ class SpecialSearch extends SpecialPage {
        }
 
        /**
-        * @param $term string
+        * @param string $term
         */
        protected function setupPage( $term ) {
                # Should advanced UI be used?
@@ -486,8 +480,8 @@ class SpecialSearch extends SpecialPage {
         * Extract "power search" namespace settings from the request object,
         * returning a list of index numbers to search.
         *
-        * @param $request WebRequest
-        * @return Array
+        * @param WebRequest $request
+        * @return array
         */
        protected function powerSearch( &$request ) {
                $arr = array();
@@ -503,7 +497,7 @@ class SpecialSearch extends SpecialPage {
        /**
         * Reconstruct the 'power search' options for links
         *
-        * @return Array
+        * @return array
         */
        protected function powerSearchOptions() {
                $opt = array();
@@ -521,7 +515,7 @@ class SpecialSearch extends SpecialPage {
        /**
         * Show whole set of results
         *
-        * @param $matches SearchResultSet
+        * @param SearchResultSet $matches
         *
         * @return string
         */
@@ -548,8 +542,8 @@ class SpecialSearch extends SpecialPage {
        /**
         * Format a single hit result
         *
-        * @param $result SearchResult
-        * @param array $terms terms to highlight
+        * @param SearchResult $result
+        * @param array $terms Terms to highlight
         *
         * @return string
         */
@@ -728,8 +722,8 @@ class SpecialSearch extends SpecialPage {
        /**
         * Show results from other wikis
         *
-        * @param $matches SearchResultSet|array
-        * @param $query String
+        * @param SearchResultSet|array $matches
+        * @param string $query
         *
         * @return string
         */
@@ -778,9 +772,9 @@ class SpecialSearch extends SpecialPage {
        /**
         * Show single interwiki link
         *
-        * @param $result SearchResult
-        * @param $lastInterwiki String
-        * @param $query String
+        * @param SearchResult $result
+        * @param string $lastInterwiki
+        * @param string $query
         * @param array $customCaptions iw prefix -> caption
         *
         * @return string
@@ -853,9 +847,9 @@ class SpecialSearch extends SpecialPage {
        }
 
        /**
-        * @param $profile
-        * @param $term
-        * @return String
+        * @param string $profile
+        * @param string $term
+        * @return string
         */
        protected function getProfileForm( $profile, $term ) {
                // Hidden stuff
@@ -875,9 +869,9 @@ class SpecialSearch extends SpecialPage {
        /**
         * Generates the power search box at [[Special:Search]]
         *
-        * @param string $term search term
-        * @param $opts array
-        * @return String: HTML form
+        * @param string $term Search term
+        * @param array $opts
+        * @return string HTML form
         */
        protected function powerSearchBox( $term, $opts ) {
                global $wgContLang;
@@ -1004,9 +998,9 @@ class SpecialSearch extends SpecialPage {
        }
 
        /**
-        * @param $term
-        * @param $resultsShown
-        * @param $totalNum
+        * @param string $term
+        * @param int $resultsShown
+        * @param int $totalNum
         * @return string
         */
        protected function formHeader( $term, $resultsShown, $totalNum ) {
@@ -1078,7 +1072,7 @@ class SpecialSearch extends SpecialPage {
        }
 
        /**
-        * @param $term string
+        * @param string $term
         * @return string
         */
        protected function shortDialog( $term ) {
@@ -1103,12 +1097,12 @@ class SpecialSearch extends SpecialPage {
        /**
         * Make a search link with some target namespaces
         *
-        * @param $term String
-        * @param array $namespaces ignored
-        * @param string $label link's text
-        * @param string $tooltip link's tooltip
-        * @param array $params query string parameters
-        * @return String: HTML fragment
+        * @param string $term
+        * @param array $namespaces Ignored
+        * @param string $label Link's text
+        * @param string $tooltip Link's tooltip
+        * @param array $params Query string parameters
+        * @return string HTML fragment
         */
        protected function makeSearchLink( $term, $namespaces, $label, $tooltip, $params = array() ) {
                $opt = $params;
@@ -1137,8 +1131,8 @@ class SpecialSearch extends SpecialPage {
        /**
         * Check if query starts with image: prefix
         *
-        * @param string $term the string to check
-        * @return Boolean
+        * @param string $term The string to check
+        * @return bool
         */
        protected function startsWithImage( $term ) {
                global $wgContLang;
@@ -1154,8 +1148,8 @@ class SpecialSearch extends SpecialPage {
        /**
         * Check if query starts with all: prefix
         *
-        * @param string $term the string to check
-        * @return Boolean
+        * @param string $term The string to check
+        * @return bool
         */
        protected function startsWithAll( $term ) {
 
@@ -1205,8 +1199,8 @@ class SpecialSearch extends SpecialPage {
         * user navigates search results.
         * @since 1.18
         *
-        * @param $key
-        * @param $value
+        * @param string $key
+        * @param mixed $value
         */
        public function setExtraParam( $key, $value ) {
                $this->extraParams[$key] = $value;
index dffa7de..782d9a1 100644 (file)
@@ -58,7 +58,7 @@ class ShortPagesPage extends QueryPage {
        }
 
        /**
-        * @param $db DatabaseBase
+        * @param DatabaseBase $db
         * @param ResultWrapper $res
         */
        function preprocessResults( $db, $res ) {
index 3a2b0c6..ac6aaf6 100644 (file)
@@ -144,7 +144,7 @@ class SpecialUnblock extends SpecialPage {
         * Submit callback for an HTMLForm object
         * @param array $data
         * @param HTMLForm $form
-        * @return Array( Array(message key, parameters)
+        * @return array|bool Array(message key, parameters)
         */
        public static function processUIUnblock( array $data, HTMLForm $form ) {
                return self::processUnblock( $data, $form->getContext() );
@@ -153,10 +153,10 @@ class SpecialUnblock extends SpecialPage {
        /**
         * Process the form
         *
-        * @param $data Array
-        * @param $context IContextSource
+        * @param array $data
+        * @param IContextSource $context
         * @throws ErrorPageError
-        * @return Array( Array(message key, parameters) ) on failure, True on success
+        * @return array|bool Array(message key, parameters) on failure, True on success
         */
        public static function processUnblock( array $data, IContextSource $context ) {
                $performer = $context->getUser();
index 55ab32d..6d6b2c1 100644 (file)
@@ -331,7 +331,7 @@ class PageArchive {
        /**
         * Quick check if any archived revisions are present for the page.
         *
-        * @return boolean
+        * @return bool
         */
        function isDeleted() {
                $dbr = wfGetDB( DB_SLAVE );
@@ -439,7 +439,7 @@ class PageArchive {
         * @param bool $unsuppress Remove all ar_deleted/fa_deleted restrictions of seletected revs
         * @param string $comment
         * @throws ReadOnlyError
-        * @return Status Object containing the number of revisions restored on success
+        * @return Status Status object containing the number of revisions restored on success
         */
        private function undeleteRevisions( $timestamps, $unsuppress = false, $comment = '' ) {
                global $wgContentHandlerUseDB;
@@ -1147,6 +1147,7 @@ class SpecialUndelete extends SpecialPage {
 
        /**
         * Show a form confirming whether a tokenless user really wants to see a file
+        * @param string $key
         */
        private function showFileConfirmationForm( $key ) {
                $out = $this->getOutput();
@@ -1174,6 +1175,7 @@ class SpecialUndelete extends SpecialPage {
 
        /**
         * Show a deleted file version requested by the visitor.
+        * @param string $key
         */
        private function showFile( $key ) {
                $this->getOutput()->disable();
@@ -1539,7 +1541,7 @@ class SpecialUndelete extends SpecialPage {
         * @param File|ArchivedFile $file
         * @param Title $titleObj
         * @param string $ts A timestamp
-        * @param string $key a storage key
+        * @param string $key A storage key
         *
         * @return string HTML fragment
         */
index b46f942..01c0aaf 100644 (file)
@@ -32,7 +32,7 @@ class SpecialUpload extends SpecialPage {
        /**
         * Constructor : initialise object
         * Get data POSTed through the form and assign them to the object
-        * @param $request WebRequest : data posted.
+        * @param WebRequest $request Data posted.
         */
        public function __construct( $request = null ) {
                parent::__construct( 'Upload', 'upload' );
@@ -133,8 +133,8 @@ class SpecialUpload extends SpecialPage {
         * Handle permission checking elsewhere in order to be able to show
         * custom error messages.
         *
-        * @param $user User object
-        * @return Boolean
+        * @param User $user
+        * @return bool
         */
        public function userCanExecute( User $user ) {
                return UploadBase::isEnabled() && parent::userCanExecute( $user );
@@ -142,6 +142,7 @@ class SpecialUpload extends SpecialPage {
 
        /**
         * Special page entry point
+        * @param string $par
         */
        public function execute( $par ) {
                $this->setHeaders();
@@ -202,7 +203,7 @@ class SpecialUpload extends SpecialPage {
        /**
         * Show the main upload form
         *
-        * @param $form Mixed: an HTMLForm instance or HTML string to show
+        * @param HTMLForm|string $form An HTMLForm instance or HTML string to show
         */
        protected function showUploadForm( $form ) {
                # Add links if file was previously deleted
@@ -221,8 +222,8 @@ class SpecialUpload extends SpecialPage {
         * Get an UploadForm instance with title and text properly set.
         *
         * @param string $message HTML string to add to the form
-        * @param string $sessionKey session key in case this is a stashed upload
-        * @param $hideIgnoreWarning Boolean: whether to hide "ignore warning" check box
+        * @param string $sessionKey Session key in case this is a stashed upload
+        * @param bool $hideIgnoreWarning Whether to hide "ignore warning" check box
         * @return UploadForm
         */
        protected function getUploadForm( $message = '', $sessionKey = '', $hideIgnoreWarning = false ) {
@@ -328,9 +329,9 @@ class SpecialUpload extends SpecialPage {
         * Stashes the upload, shows the main form, but adds a "continue anyway button".
         * Also checks whether there are actually warnings to display.
         *
-        * @param $warnings Array
-        * @return boolean true if warnings were displayed, false if there are no
-        *         warnings and it should continue processing
+        * @param array $warnings
+        * @return bool True if warnings were displayed, false if there are no
+        *   warnings and it should continue processing
         */
        protected function showUploadWarning( $warnings ) {
                # If there are no warnings, or warnings we can ignore, return early.
@@ -535,7 +536,7 @@ class SpecialUpload extends SpecialPage {
         *
         * Note that the page target can be changed *on the form*, so our check
         * state can get out of sync.
-        * @return Bool|String
+        * @return bool|string
         */
        protected function getWatchCheck() {
                if ( $this->getUser()->getOption( 'watchdefault' ) ) {
@@ -563,7 +564,7 @@ class SpecialUpload extends SpecialPage {
        /**
         * Provides output to the user for a result of UploadBase::verifyUpload
         *
-        * @param array $details result of UploadBase::verifyUpload
+        * @param array $details Result of UploadBase::verifyUpload
         * @throws MWException
         */
        protected function processVerificationError( $details ) {
@@ -642,7 +643,7 @@ class SpecialUpload extends SpecialPage {
        /**
         * Remove a temporarily kept file stashed by saveTempUploadedFile().
         *
-        * @return Boolean: success
+        * @return bool Success
         */
        protected function unsaveUploadedFile() {
                if ( !( $this->mUpload instanceof UploadFromStash ) ) {
@@ -664,8 +665,8 @@ class SpecialUpload extends SpecialPage {
         * Formats a result of UploadBase::getExistsWarning as HTML
         * This check is static and can be done pre-upload via AJAX
         *
-        * @param array $exists the result of UploadBase::getExistsWarning
-        * @return String: empty string if there is no warning or an HTML fragment
+        * @param array $exists The result of UploadBase::getExistsWarning
+        * @return string Empty string if there is no warning or an HTML fragment
         */
        public static function getExistsWarning( $exists ) {
                if ( !$exists ) {
@@ -716,7 +717,7 @@ class SpecialUpload extends SpecialPage {
 
        /**
         * Construct a warning and a gallery from an array of duplicate files.
-        * @param $dupes array
+        * @param array $dupes
         * @return string
         */
        public function getDupeWarning( $dupes ) {
@@ -807,7 +808,7 @@ class UploadForm extends HTMLForm {
         * Get the descriptor of the fieldset that contains the file source
         * selection. The section is 'source'
         *
-        * @return Array: descriptor array
+        * @return array Descriptor array
         */
        protected function getSourceSection() {
                global $wgCopyUploadsFromSpecialUpload;
@@ -901,7 +902,7 @@ class UploadForm extends HTMLForm {
        /**
         * Get the messages indicating which extensions are preferred and prohibitted.
         *
-        * @return String: HTML string containing the message
+        * @return string HTML string containing the message
         */
        protected function getExtensionsMessage() {
                # Print a list of allowed file extensions, if so configured.  We ignore
@@ -947,7 +948,7 @@ class UploadForm extends HTMLForm {
         * Get the descriptor of the fieldset that contains the file description
         * input. The section is 'description'
         *
-        * @return Array: descriptor array
+        * @return array Descriptor array
         */
        protected function getDescriptionSection() {
                if ( $this->mSessionKey ) {
@@ -1045,7 +1046,7 @@ class UploadForm extends HTMLForm {
         * Get the descriptor of the fieldset that contains the upload options,
         * such as "watch this file". The section is 'options'
         *
-        * @return Array: descriptor array
+        * @return array Descriptor array
         */
        protected function getOptionsSection() {
                $user = $this->getUser();
@@ -1144,7 +1145,7 @@ class UploadForm extends HTMLForm {
 class UploadSourceField extends HTMLTextField {
 
        /**
-        * @param $cellAttributes array
+        * @param array $cellAttributes
         * @return string
         */
        function getLabelHtml( $cellAttributes = array() ) {
index 33883b0..75ab19f 100644 (file)
@@ -59,7 +59,7 @@ class SpecialUploadStash extends UnlistedSpecialPage {
         *
         * @param string $subPage subpage, e.g. in
         *   http://example.com/wiki/Special:UploadStash/foo.jpg, the "foo.jpg" part
-        * @return Boolean: success
+        * @return bool Success
         */
        public function execute( $subPage ) {
                $this->checkPermissions();
@@ -153,10 +153,10 @@ class SpecialUploadStash extends UnlistedSpecialPage {
        /**
         * Get a thumbnail for file, either generated locally or remotely, and stream it out
         *
-        * @param $file
-        * @param $params array
+        * @param File $file
+        * @param array $params
         *
-        * @return boolean success
+        * @return bool Success
         */
        private function outputThumbFromStash( $file, $params ) {
                // this global, if it exists, points to a "scaler", as you might find in
@@ -177,11 +177,11 @@ class SpecialUploadStash extends UnlistedSpecialPage {
        /**
         * Scale a file (probably with a locally installed imagemagick, or similar)
         * and output it to STDOUT.
-        * @param $file File
+        * @param File $file
         * @param array $params Scaling parameters ( e.g. array( width => '50' ) );
         * @param int $flags Scaling flags ( see File:: constants )
         * @throws MWException|UploadStashFileNotFoundException
-        * @return boolean success
+        * @return bool Success
         */
        private function outputLocallyScaledThumb( $file, $params, $flags ) {
                // n.b. this is stupid, we insist on re-transforming the file every time we are invoked. We rely
@@ -227,7 +227,7 @@ class SpecialUploadStash extends UnlistedSpecialPage {
         * @param array $params Scaling parameters ( e.g. array( width => '50' ) );
         * @param int $flags Scaling flags ( see File:: constants )
         * @throws MWException
-        * @return boolean success
+        * @return bool success
         */
        private function outputRemoteScaledThumb( $file, $params, $flags ) {
                // This global probably looks something like
@@ -294,8 +294,8 @@ class SpecialUploadStash extends UnlistedSpecialPage {
        /**
         * Output HTTP response of raw content
         * Side effect: writes HTTP response to STDOUT.
-        * @param string $content content
-        * @param string $contentType mime type
+        * @param string $content Content
+        * @param string $contentType Mime type
         * @throws SpecialUploadStashTooLargeException
         * @return bool
         */
index 9a2e194..4006e49 100644 (file)
@@ -166,7 +166,7 @@ class LoginForm extends SpecialPage {
        }
 
        /*
-        * @param $subPage string|null
+        * @param string|null $subPage
         */
        public function execute( $subPage ) {
                if ( session_id() == '' ) {
@@ -536,9 +536,9 @@ class LoginForm extends SpecialPage {
         * Actually add a user to the database.
         * Give it a User object that has been initialised with a name.
         *
-        * @param $u User object.
-        * @param $autocreate boolean -- true if this is an autocreation via auth plugin
-        * @return Status object, with the User object in the value member on success
+        * @param User $u
+        * @param bool $autocreate True if this is an autocreation via auth plugin
+        * @return Status Status object, with the User object in the value member on success
         * @private
         */
        function initUser( $u, $autocreate ) {
@@ -720,7 +720,7 @@ class LoginForm extends SpecialPage {
         * Increment the login attempt throttle hit count for the (username,current IP)
         * tuple unless the throttle was already reached.
         * @param string $username The user name
-        * @return Bool|Integer The integer hit count or True if it is already at the limit
+        * @return bool|int The integer hit count or True if it is already at the limit
         */
        public static function incLoginThrottle( $username ) {
                global $wgPasswordAttemptThrottle, $wgMemc, $wgRequest;
@@ -762,9 +762,9 @@ class LoginForm extends SpecialPage {
         * Attempt to automatically create a user on login. Only succeeds if there
         * is an external authentication method which allows it.
         *
-        * @param $user User
+        * @param User $user
         *
-        * @return integer Status code
+        * @return int Status code
         */
        function attemptAutoCreate( $user ) {
                global $wgAuth;
@@ -948,11 +948,11 @@ class LoginForm extends SpecialPage {
        }
 
        /**
-        * @param $u User object
-        * @param $throttle Boolean
-        * @param string $emailTitle message name of email title
-        * @param string $emailText message name of email text
-        * @return Status object
+        * @param User $u
+        * @param bool $throttle
+        * @param string $emailTitle Message name of email title
+        * @param string $emailText Message name of email text
+        * @return Status
         */
        function mailPasswordInternal( $u, $throttle = true, $emailTitle = 'passwordremindertitle',
                $emailText = 'passwordremindertext'
@@ -1037,9 +1037,9 @@ class LoginForm extends SpecialPage {
        /**
         * Display an "successful action" page.
         *
-        * @param string|Message $title page's title
-        * @param $msgname string
-        * @param $injected_html string
+        * @param string|Message $title Page's title
+        * @param string $msgname
+        * @param string $injected_html
         */
        private function displaySuccessfulAction( $title, $msgname, $injected_html ) {
                $out = $this->getOutput();
@@ -1058,7 +1058,7 @@ class LoginForm extends SpecialPage {
         * there is a block on them or their IP which prevents account creation.  Note that
         * User::isBlockedFromCreateAccount(), which gets this block, ignores the 'hardblock'
         * setting on blocks (bug 13611).
-        * @param $block Block the block causing this error
+        * @param Block $block The block causing this error
         * @throws ErrorPageError
         */
        function userBlockedMessage( Block $block ) {
@@ -1094,7 +1094,7 @@ class LoginForm extends SpecialPage {
         * Extensions can use this to reuse the "return to" logic after
         * inject steps (such as redirection) into the login process.
         *
-        * @param $type string, one of the following:
+        * @param string $type One of the following:
         *    - error: display a return to link ignoring $wgRedirectOnLogin
         *    - success: display a return to link using $wgRedirectOnLogin if needed
         *    - successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
@@ -1115,7 +1115,7 @@ class LoginForm extends SpecialPage {
        /**
         * Add a "return to" link or redirect to it.
         *
-        * @param $type string, one of the following:
+        * @param string $type One of the following:
         *    - error: display a return to link ignoring $wgRedirectOnLogin
         *    - success: display a return to link using $wgRedirectOnLogin if needed
         *    - successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
@@ -1344,7 +1344,7 @@ class LoginForm extends SpecialPage {
         * Whether the login/create account form should display a link to the
         * other form (in addition to whatever the skin provides).
         *
-        * @param $user User
+        * @param User $user
         * @return bool
         */
        private function showCreateOrLoginLink( &$user ) {
@@ -1375,7 +1375,7 @@ class LoginForm extends SpecialPage {
 
        /**
         * Get the login token from the current session
-        * @return Mixed
+        * @return mixed
         */
        public static function getLoginToken() {
                global $wgRequest;
@@ -1403,7 +1403,7 @@ class LoginForm extends SpecialPage {
 
        /**
         * Get the createaccount token from the current session
-        * @return Mixed
+        * @return mixed
         */
        public static function getCreateaccountToken() {
                global $wgRequest;
index 29266ca..8a5ba1d 100644 (file)
@@ -190,8 +190,8 @@ class UserrightsPage extends SpecialPage {
         * Save user groups changes in the database.
         * Data comes from the editUserGroupsForm() form function
         *
-        * @param string $username username to apply changes to.
-        * @param string $reason reason for group change
+        * @param string $username Username to apply changes to.
+        * @param string $reason Reason for group change
         * @param User|UserRightsProxy $user Target user object.
         * @return null
         */
@@ -278,6 +278,10 @@ class UserrightsPage extends SpecialPage {
 
        /**
         * Add a rights log entry for an action.
+        * @param User $user
+        * @param array $oldGroups
+        * @param array $newGroups
+        * @param array $reason
         */
        function addLogEntry( $user, $oldGroups, $newGroups, $reason ) {
                $logEntry = new ManualLogEntry( 'rights', 'rights' );
@@ -294,7 +298,7 @@ class UserrightsPage extends SpecialPage {
 
        /**
         * Edit user groups membership
-        * @param string $username name of the user.
+        * @param string $username Name of the user.
         */
        function editUserGroupsForm( $username ) {
                $status = $this->fetchUser( $username );
@@ -321,7 +325,7 @@ class UserrightsPage extends SpecialPage {
         *
         * Side effects: error output for invalid access
         * @param string $username
-        * @return Status object
+        * @return Status
         */
        public function fetchUser( $username ) {
                global $wgUserrightsInterwikiDelimiter;
@@ -396,7 +400,7 @@ class UserrightsPage extends SpecialPage {
         * Make a list of group names to be stored as parameter for log entries
         *
         * @deprecated since 1.21; use LogFormatter instead.
-        * @param $ids array
+        * @param array $ids
         * @return string
         */
        function makeGroupNameListForLog( $ids ) {
@@ -572,7 +576,7 @@ class UserrightsPage extends SpecialPage {
        /**
         * Format a link to a group description page
         *
-        * @param $group string
+        * @param string $group
         * @return string
         */
        private static function buildGroupLink( $group ) {
@@ -582,7 +586,7 @@ class UserrightsPage extends SpecialPage {
        /**
         * Format a link to a group member description page
         *
-        * @param $group string
+        * @param string $group
         * @return string
         */
        private static function buildGroupMemberLink( $group ) {
@@ -601,8 +605,8 @@ class UserrightsPage extends SpecialPage {
         * Adds a table with checkboxes where you can select what groups to add/remove
         *
         * @todo Just pass the username string?
-        * @param array $usergroups groups the user belongs to
-        * @param $user User a user object
+        * @param array $usergroups Groups the user belongs to
+        * @param User $user
         * @return string XHTML table element with checkboxes
         */
        private function groupCheckboxes( $usergroups, $user ) {
@@ -696,7 +700,7 @@ class UserrightsPage extends SpecialPage {
        }
 
        /**
-        * @param string $group the name of the group to check
+        * @param string $group The name of the group to check
         * @return bool Can we add the group?
         */
        private function canAdd( $group ) {
@@ -725,8 +729,8 @@ class UserrightsPage extends SpecialPage {
        /**
         * Show a rights log fragment for the specified user
         *
-        * @param $user User to show log for
-        * @param $output OutputPage to use
+        * @param User $user User to show log for
+        * @param OutputPage $output OutputPage to use
         */
        protected function showLogFragment( $user, $output ) {
                $rightsLogPage = new LogPage( 'rights' );
index 9ad95ec..e61d17a 100644 (file)
@@ -165,7 +165,7 @@ class SpecialVersion extends SpecialPage {
        /**
         * Get the "MediaWiki is copyright 2001-20xx by lots of cool guys" text
         *
-        * @return String
+        * @return string
         */
        public static function getCopyrightAndAuthorList() {
                global $wgLang;
@@ -240,7 +240,7 @@ class SpecialVersion extends SpecialPage {
        /**
         * Return a string of the MediaWiki version with SVN revision if available.
         *
-        * @param $flags String
+        * @param string $flags
         * @return mixed
         */
        public static function getVersion( $flags = '' ) {
@@ -409,7 +409,7 @@ class SpecialVersion extends SpecialPage {
         *
         * @since 1.17
         *
-        * @param $type String
+        * @param string $type
         *
         * @return string
         */
@@ -530,8 +530,8 @@ class SpecialVersion extends SpecialPage {
         *
         * @since 1.17
         *
-        * @param $type String
-        * @param $message String
+        * @param string $type
+        * @param string $message
         *
         * @return string
         */
@@ -555,8 +555,8 @@ class SpecialVersion extends SpecialPage {
 
        /**
         * Callback to sort extensions by type.
-        * @param $a array
-        * @param $b array
+        * @param array $a
+        * @param array $b
         * @return int
         */
        function compare( $a, $b ) {
@@ -582,9 +582,9 @@ class SpecialVersion extends SpecialPage {
         *  - Description of extension (descriptionmsg or description)
         *  - List of authors (author) and link to a ((AUTHORS)|(CREDITS))(\.txt)? file if it exists
         *
-        * @param $extension Array
+        * @param array $extension
         *
-        * @return string raw HTML
+        * @return string Raw HTML
         */
        function getCreditsForExtension( array $extension ) {
                $out = $this->getOutput();
@@ -961,27 +961,21 @@ class SpecialVersion extends SpecialPage {
         * @return string
         */
        function listToText( $list, $sort = true ) {
-               $cnt = count( $list );
-
-               if ( $cnt == 1 ) {
-                       // Enforce always returning a string
-                       return (string)self::arrayToString( $list[0] );
-               } elseif ( $cnt == 0 ) {
+               if ( !count( $list ) ) {
                        return '';
-               } else {
-                       if ( $sort ) {
-                               sort( $list );
-                       }
-
-                       return $this->getLanguage()
-                               ->listToText( array_map( array( __CLASS__, 'arrayToString' ), $list ) );
                }
+               if ( $sort ) {
+                       sort( $list );
+               }
+
+               return $this->getLanguage()
+                       ->listToText( array_map( array( __CLASS__, 'arrayToString' ), $list ) );
        }
 
        /**
         * Convert an array or object to a string for display.
         *
-        * @param mixed $list will convert an array to string if given and return
+        * @param mixed $list Will convert an array to string if given and return
         *   the paramater unaltered otherwise
         *
         * @return mixed
@@ -1020,7 +1014,7 @@ class SpecialVersion extends SpecialPage {
         *        url                   The subversion URL of the directory
         *        repo-url              The base URL of the repository
         *        viewvc-url            A ViewVC URL pointing to the checked-out revision
-        * @param $dir string
+        * @param string $dir
         * @return array|bool
         */
        public static function getSvnInfo( $dir ) {
@@ -1093,7 +1087,7 @@ class SpecialVersion extends SpecialPage {
        /**
         * Retrieve the revision number of a Subversion working directory.
         *
-        * @param string $dir directory of the svn checkout
+        * @param string $dir Directory of the svn checkout
         *
         * @return int Revision number
         */
@@ -1110,8 +1104,8 @@ class SpecialVersion extends SpecialPage {
        }
 
        /**
-        * @param string $dir directory of the git checkout
-        * @return bool|String sha1 of commit HEAD points to
+        * @param string $dir Directory of the git checkout
+        * @return bool|string Sha1 of commit HEAD points to
         */
        public static function getGitHeadSha1( $dir ) {
                $repo = new GitInfo( $dir );
index 1345b76..fc39ef5 100644 (file)
@@ -120,7 +120,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
         * Maps old pre-1.23 request parameters Watchlist used to use (different from Recentchanges' ones)
         * to the current ones.
         *
-        * @param FormOptions $parameters
+        * @param FormOptions $opts
         * @return FormOptions
         */
        protected function fetchOptionsFromRequest( $opts ) {
@@ -577,7 +577,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
         * Count the number of items on a user's watchlist
         *
         * @param DatabaseBase $dbr A database connection
-        * @return Integer
+        * @return int
         */
        protected function countItems( $dbr ) {
                # Fetch the raw count
index 878f95d..8d2fba0 100644 (file)
@@ -67,7 +67,7 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
         * @param string $text
         *
         * @throws InvalidArgumentException if the namespace is invalid
-        * @return String
+        * @return string
         */
        public function getNamespaceName( $namespace, $text ) {
                if ( $this->language->needsGenderDistinction() &&
@@ -120,8 +120,8 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
         * Parses the given text and constructs a TitleValue. Normalization
         * is applied according to the rules appropriate for the form specified by $form.
         *
-        * @param string $text the text to parse
-        * @param int $defaultNamespace namespace to assume per default (usually NS_MAIN)
+        * @param string $text The text to parse
+        * @param int $defaultNamespace Namespace to assume per default (usually NS_MAIN)
         *
         * @throws MalformedTitleException
         * @return TitleValue
index f3822b6..263f547 100644 (file)
@@ -85,7 +85,7 @@ interface TitleFormatter {
         * @param string $text
         *
         * @throws InvalidArgumentException
-        * @return String
+        * @return string
         */
        public function getNamespaceName( $namespace, $text );
 }
index 7a865eb..d2b4d86 100644 (file)
@@ -59,10 +59,10 @@ class TitleValue {
         * un-normalized text when constructing TitleValues. For constructing a TitleValue from
         * user input or external sources, use a TitleParser.
         *
-        * @param $namespace int The namespace ID. This is not validated.
-        * @param $dbkey string The page title in valid DBkey form. No normalization is applied.
-        * @param $fragment string The fragment title. Use '' to represent the whole page.
-        *        No validation or normalization is applied.
+        * @param int $namespace The namespace ID. This is not validated.
+        * @param string $dbkey The page title in valid DBkey form. No normalization is applied.
+        * @param string $fragment The fragment title. Use '' to represent the whole page.
+        *   No validation or normalization is applied.
         *
         * @throws InvalidArgumentException
         */
index b14a284..995cd7b 100644 (file)
@@ -66,7 +66,7 @@ abstract class UploadBase {
        const SESSION_STATUS_KEY = 'wsUploadStatusData';
 
        /**
-        * @param $error int
+        * @param int $error
         * @return string
         */
        public function getVerificationErrorCode( $error ) {
@@ -111,7 +111,7 @@ abstract class UploadBase {
         * identifying the missing permission.
         * Can be overridden by subclasses.
         *
-        * @param $user User
+        * @param User $user
         * @return bool
         */
        public static function isAllowed( $user ) {
@@ -129,9 +129,9 @@ abstract class UploadBase {
        /**
         * Create a form of UploadBase depending on wpSourceType and initializes it
         *
-        * @param $request WebRequest
-        * @param $type
-        * @return null
+        * @param WebRequest $request
+        * @param string|null $type
+        * @return null|UploadBase
         */
        public static function createFromRequest( &$request, $type = null ) {
                $type = $type ? $type : $request->getVal( 'wpSourceType', 'File' );
@@ -172,7 +172,7 @@ abstract class UploadBase {
 
        /**
         * Check whether a request if valid for this handler
-        * @param $request
+        * @param WebRequest $request
         * @return bool
         */
        public static function isValidRequest( $request ) {
@@ -193,9 +193,9 @@ abstract class UploadBase {
 
        /**
         * Initialize the path information
-        * @param string $name the desired destination name
-        * @param string $tempPath the temporary path
-        * @param int $fileSize the file size
+        * @param string $name The desired destination name
+        * @param string $tempPath The temporary path
+        * @param int $fileSize The file size
         * @param bool $removeTempFile (false) remove the temporary file?
         * @throws MWException
         */
@@ -211,6 +211,8 @@ abstract class UploadBase {
 
        /**
         * Initialize from a WebRequest. Override this in a subclass.
+        *
+        * @param WebRequest $request
         */
        abstract public function initializeFromRequest( &$request );
 
@@ -232,7 +234,7 @@ abstract class UploadBase {
 
        /**
         * Return the file size
-        * @return integer
+        * @return int
         */
        public function getFileSize() {
                return $this->mFileSize;
@@ -247,8 +249,8 @@ abstract class UploadBase {
        }
 
        /**
-        * @param string $srcPath the source path
-        * @return string|bool the real path if it was a virtual URL Returns false on failure
+        * @param string $srcPath The source path
+        * @return string|bool The real path if it was a virtual URL Returns false on failure
         */
        function getRealPath( $srcPath ) {
                wfProfileIn( __METHOD__ );
@@ -333,9 +335,9 @@ abstract class UploadBase {
        /**
         * Verify that the name is valid and, if necessary, that we can overwrite
         *
-        * @return mixed true if valid, otherwise and array with 'status'
+        * @return mixed True if valid, otherwise and array with 'status'
         * and other keys
-        **/
+        */
        public function validateName() {
                $nt = $this->getTitle();
                if ( is_null( $nt ) ) {
@@ -361,8 +363,8 @@ abstract class UploadBase {
         *
         * @note Only checks that it is not an evil mime. The does it have
         *  correct extension given its mime type check is in verifyFile.
-        * @param string $mime representing the mime
-        * @return mixed true if the file is verified, an array otherwise
+        * @param string $mime Representing the mime
+        * @return mixed True if the file is verified, an array otherwise
         */
        protected function verifyMimeType( $mime ) {
                global $wgVerifyMimeType;
@@ -398,7 +400,7 @@ abstract class UploadBase {
        /**
         * Verifies that it's ok to include the uploaded file
         *
-        * @return mixed true of the file is verified, array otherwise.
+        * @return mixed True of the file is verified, array otherwise.
         */
        protected function verifyFile() {
                global $wgVerifyMimeType;
@@ -448,7 +450,7 @@ abstract class UploadBase {
         * Runs the blacklist checks, but not any checks that may
         * assume the entire file is present.
         *
-        * @return Mixed true for valid or array with error message key.
+        * @return mixed True for valid or array with error message key.
         */
        protected function verifyPartialFile() {
                global $wgAllowJavaUploads, $wgDisableUploadScriptChecks;
@@ -515,6 +517,8 @@ abstract class UploadBase {
 
        /**
         * Callback for ZipDirectoryReader to detect Java class files.
+        *
+        * @param array $entry
         */
        function zipEntryCallback( $entry ) {
                $names = array( $entry['name'] );
@@ -539,9 +543,9 @@ abstract class UploadBase {
        /**
         * Alias for verifyTitlePermissions. The function was originally 'verifyPermissions'
         * but that suggests it's checking the user, when it's really checking the title + user combination.
-        * @param $user User object to verify the permissions against
+        * @param User $user User object to verify the permissions against
         * @return mixed An array as returned by getUserPermissionsErrors or true
-        *               in case the user has proper permissions.
+        *   in case the user has proper permissions.
         */
        public function verifyPermissions( $user ) {
                return $this->verifyTitlePermissions( $user );
@@ -554,9 +558,9 @@ abstract class UploadBase {
         * isAllowed() should be called as well for generic is-user-blocked or
         * can-user-upload checking.
         *
-        * @param $user User object to verify the permissions against
+        * @param User $user object to verify the permissions against
         * @return mixed An array as returned by getUserPermissionsErrors or true
-        *               in case the user has proper permissions.
+        *   in case the user has proper permissions.
         */
        public function verifyTitlePermissions( $user ) {
                /**
@@ -593,7 +597,7 @@ abstract class UploadBase {
         *
         * This should not assume that mTempPath is set.
         *
-        * @return Array of warnings
+        * @return array Array of warnings
         */
        public function checkWarnings() {
                global $wgLang;
@@ -673,12 +677,12 @@ abstract class UploadBase {
         * Really perform the upload. Stores the file in the local repo, watches
         * if necessary and runs the UploadComplete hook.
         *
-        * @param $comment
-        * @param $pageText
-        * @param $watch
-        * @param $user User
+        * @param string $comment
+        * @param string $pageText
+        * @param bool $watch
+        * @param User $user
         *
-        * @return Status indicating the whether the upload succeeded.
+        * @return Status Indicating the whether the upload succeeded.
         */
        public function performUpload( $comment, $pageText, $watch, $user ) {
                wfProfileIn( __METHOD__ );
@@ -842,8 +846,8 @@ abstract class UploadBase {
         * This method returns the file object, which also has a 'fileKey' property which can be passed through a form or
         * API request to find this stashed file again.
         *
-        * @param $user User
-        * @return UploadStashFile stashed file
+        * @param User $user
+        * @return UploadStashFile Stashed file
         */
        public function stashFile( User $user = null ) {
                // was stashSessionFile
@@ -860,7 +864,7 @@ abstract class UploadBase {
        /**
         * Stash a file in a temporary directory, returning a key which can be used to find the file again. See stashFile().
         *
-        * @return String: file key
+        * @return string File key
         */
        public function stashFileGetKey() {
                return $this->stashFile()->getFileKey();
@@ -869,7 +873,7 @@ abstract class UploadBase {
        /**
         * alias for stashFileGetKey, for backwards compatibility
         *
-        * @return String: file key
+        * @return string File key
         */
        public function stashSession() {
                return $this->stashFileGetKey();
@@ -896,7 +900,7 @@ abstract class UploadBase {
         * earlier pseudo-'extensions' to determine type and execute
         * scripts, so the blacklist needs to check them all.
         *
-        * @param $filename string
+        * @param string $filename
         * @return array
         */
        public static function splitExtensions( $filename ) {
@@ -909,9 +913,9 @@ abstract class UploadBase {
         * Perform case-insensitive match against a list of file extensions.
         * Returns true if the extension is in the list.
         *
-        * @param $ext String
-        * @param $list Array
-        * @return Boolean
+        * @param string $ext
+        * @param array $list
+        * @return bool
         */
        public static function checkFileExtension( $ext, $list ) {
                return in_array( strtolower( $ext ), $list );
@@ -921,9 +925,9 @@ abstract class UploadBase {
         * Perform case-insensitive match against a list of file extensions.
         * Returns an array of matching extensions.
         *
-        * @param $ext Array
-        * @param $list Array
-        * @return Boolean
+        * @param array $ext
+        * @param array $list
+        * @return bool
         */
        public static function checkFileExtensionList( $ext, $list ) {
                return array_intersect( array_map( 'strtolower', $ext ), $list );
@@ -932,9 +936,9 @@ abstract class UploadBase {
        /**
         * Checks if the mime type of the uploaded file matches the file extension.
         *
-        * @param string $mime the mime type of the uploaded file
-        * @param string $extension the filename extension that the file is to be served with
-        * @return Boolean
+        * @param string $mime The mime type of the uploaded file
+        * @param string $extension The filename extension that the file is to be served with
+        * @return bool
         */
        public static function verifyExtension( $mime, $extension ) {
                $magic = MimeMagic::singleton();
@@ -979,10 +983,10 @@ abstract class UploadBase {
         * potentially harmful. The present implementation will produce false
         * positives in some situations.
         *
-        * @param string $file pathname to the temporary upload file
-        * @param string $mime the mime type of the file
-        * @param string $extension the extension of the file
-        * @return Boolean: true if the file contains something looking like embedded scripts
+        * @param string $file Pathname to the temporary upload file
+        * @param string $mime The mime type of the file
+        * @param string $extension The extension of the file
+        * @return bool True if the file contains something looking like embedded scripts
         */
        public static function detectScript( $file, $mime, $extension ) {
                global $wgAllowTitlesInSVG;
@@ -1114,8 +1118,8 @@ abstract class UploadBase {
         * Check a whitelist of xml encodings that are known not to be interpreted differently
         * by the server's xml parser (expat) and some common browsers.
         *
-        * @param string $file pathname to the temporary upload file
-        * @return Boolean: true if the file contains an encoding that could be misinterpreted
+        * @param string $file Pathname to the temporary upload file
+        * @return bool True if the file contains an encoding that could be misinterpreted
         */
        public static function checkXMLEncodingMissmatch( $file ) {
                global $wgSVGMetadataCutoff;
@@ -1166,8 +1170,8 @@ abstract class UploadBase {
        }
 
        /**
-        * @param $filename string
-        * @return mixed false of the file is verified (does not contain scripts), array otherwise.
+        * @param string $filename
+        * @return mixed False of the file is verified (does not contain scripts), array otherwise.
         */
        protected function detectScriptInSvg( $filename ) {
                $this->mSVGNSError = false;
@@ -1191,8 +1195,8 @@ abstract class UploadBase {
 
        /**
         * Callback to filter SVG Processing Instructions.
-        * @param $target string processing instruction name
-        * @param $data string processing instruction attribute and value
+        * @param string $target processing instruction name
+        * @param string $data processing instruction attribute and value
         * @return bool (true if the filter identified something bad)
         */
        public static function checkSvgPICallback( $target, $data ) {
@@ -1205,8 +1209,8 @@ abstract class UploadBase {
 
        /**
         * @todo Replace this with a whitelist filter!
-        * @param $element string
-        * @param $attribs array
+        * @param string $element
+        * @param array $attribs
         * @return bool
         */
        public function checkSvgScriptCallback( $element, $attribs ) {
@@ -1357,8 +1361,8 @@ abstract class UploadBase {
 
        /**
         * Divide the element name passed by the xml parser to the callback into URI and prifix.
-        * @param $name string
-        * @return array containing the namespace URI and prefix
+        * @param string $name
+        * @return array Containing the namespace URI and prefix
         */
        private static function splitXmlNamespace( $element ) {
                // 'http://www.w3.org/2000/svg:script' -> array( 'http://www.w3.org/2000/svg', 'script' )
@@ -1369,7 +1373,7 @@ abstract class UploadBase {
        }
 
        /**
-        * @param $name string
+        * @param string $name
         * @return string
         */
        private function stripXmlNamespace( $name ) {
@@ -1383,10 +1387,10 @@ abstract class UploadBase {
         * This relies on the $wgAntivirus and $wgAntivirusSetup variables.
         * $wgAntivirusRequired may be used to deny upload if the scan fails.
         *
-        * @param string $file pathname to the temporary upload file
-        * @return mixed false if not virus is found, NULL if the scan fails or is disabled,
-        *         or a string containing feedback from the virus scanner if a virus was found.
-        *         If textual feedback is missing but a virus was found, this function returns true.
+        * @param string $file Pathname to the temporary upload file
+        * @return mixed False if not virus is found, NULL if the scan fails or is disabled,
+        *   or a string containing feedback from the virus scanner if a virus was found.
+        *   If textual feedback is missing but a virus was found, this function returns true.
         */
        public static function detectVirus( $file ) {
                global $wgAntivirus, $wgAntivirusSetup, $wgAntivirusRequired, $wgOut;
@@ -1481,9 +1485,9 @@ abstract class UploadBase {
         * Check if there's an overwrite conflict and, if so, if restrictions
         * forbid this user from performing the upload.
         *
-        * @param $user User
+        * @param User $user
         *
-        * @return mixed true on success, array on failure
+        * @return mixed True on success, array on failure
         */
        private function checkOverwrite( $user ) {
                // First check whether the local file can be overwritten
@@ -1510,9 +1514,9 @@ abstract class UploadBase {
        /**
         * Check if a user is the last uploader
         *
-        * @param $user User object
-        * @param string $img image name
-        * @return Boolean
+        * @param User $user
+        * @param string $img Image name
+        * @return bool
         */
        public static function userCanReUpload( User $user, $img ) {
                if ( $user->isAllowed( 'reupload' ) ) {
@@ -1539,7 +1543,7 @@ abstract class UploadBase {
         * - File exists with normalized extension
         * - The file looks like a thumbnail and the original exists
         *
-        * @param $file File The File object to check
+        * @param File $file The File object to check
         * @return mixed False if the file does not exists, else an array
         */
        public static function getExistsWarning( $file ) {
@@ -1629,7 +1633,7 @@ abstract class UploadBase {
 
        /**
         * Helper function that checks whether the filename looks like a thumbnail
-        * @param $filename string
+        * @param string $filename
         * @return bool
         */
        public static function isThumbName( $filename ) {
@@ -1645,7 +1649,7 @@ abstract class UploadBase {
        /**
         * Get a list of blacklisted filename prefixes from [[MediaWiki:Filename-prefix-blacklist]]
         *
-        * @return array list of prefixes
+        * @return array List of prefixes
         */
        public static function getFilenamePrefixBlacklist() {
                $blacklist = array();
@@ -1676,8 +1680,8 @@ abstract class UploadBase {
         * 'metadata' was requested. Oddly, we have to pass the "result" object down just so it can do that
         * with the appropriate format, presumably.
         *
-        * @param $result ApiResult:
-        * @return Array: image info
+        * @param ApiResult $result
+        * @return array Image info
         */
        public function getImageInfo( $result ) {
                $file = $this->getLocalFile();
@@ -1694,7 +1698,7 @@ abstract class UploadBase {
        }
 
        /**
-        * @param $error array
+        * @param array $error
         * @return Status
         */
        public function convertVerifyErrorToStatus( $error ) {
@@ -1704,7 +1708,7 @@ abstract class UploadBase {
        }
 
        /**
-        * @param $forType null|string
+        * @param null|string $forType
         * @return int
         */
        public static function getMaxUploadSize( $forType = null ) {
@@ -1724,8 +1728,8 @@ abstract class UploadBase {
        /**
         * Get the current status of a chunked upload (used for polling).
         * The status will be read from the *current* user session.
-        * @param $statusKey string
-        * @return Array|bool
+        * @param string $statusKey
+        * @return array|bool
         */
        public static function getSessionStatus( $statusKey ) {
                return isset( $_SESSION[self::SESSION_STATUS_KEY][$statusKey] )
@@ -1736,8 +1740,8 @@ abstract class UploadBase {
        /**
         * Set the current status of a chunked upload (used for polling).
         * The status will be stored in the *current* user session.
-        * @param $statusKey string
-        * @param $value array|false
+        * @param string $statusKey
+        * @param array|bool $value
         * @return void
         */
        public static function setSessionStatus( $statusKey, $value ) {
index bdcc9a1..d15ae43 100644 (file)
@@ -36,9 +36,9 @@ class UploadFromChunks extends UploadFromFile {
        /**
         * Setup local pointers to stash, repo and user (similar to UploadFromStash)
         *
-        * @param $user User|null Default: null
-        * @param $stash UploadStash|bool Default: false
-        * @param $repo FileRepo|bool Default: false
+        * @param User|null $user Default: null
+        * @param UploadStash|bool $stash Default: false
+        * @param FileRepo|bool $repo Default: false
         */
        public function __construct( $user = null, $stash = false, $repo = false ) {
                // user object. sometimes this won't exist, as when running from cron.
@@ -67,6 +67,7 @@ class UploadFromChunks extends UploadFromFile {
        /**
         * Calls the parent stashFile and updates the uploadsession table to handle "chunks"
         *
+        * @param User|null $user
         * @return UploadStashFile stashed file
         */
        public function stashFile( User $user = null ) {
@@ -91,6 +92,10 @@ class UploadFromChunks extends UploadFromFile {
 
        /**
         * Continue chunk uploading
+        *
+        * @param string $name
+        * @param string $key
+        * @param WebRequestUpload $webRequestUpload
         */
        public function continueChunks( $name, $key, $webRequestUpload ) {
                $this->mFileKey = $key;
@@ -165,10 +170,10 @@ class UploadFromChunks extends UploadFromFile {
 
        /**
         * Perform the upload, then remove the temp copy afterward
-        * @param $comment string
-        * @param $pageText string
-        * @param $watch bool
-        * @param $user User
+        * @param string $comment
+        * @param string $pageText
+        * @param bool $watch
+        * @param User $user
         * @return Status
         */
        public function performUpload( $comment, $pageText, $watch, $user ) {
@@ -178,7 +183,7 @@ class UploadFromChunks extends UploadFromFile {
 
        /**
         * Returns the virtual chunk location:
-        * @param $index
+        * @param int $index
         * @return string
         */
        function getVirtualChunkLocation( $index ) {
@@ -283,7 +288,7 @@ class UploadFromChunks extends UploadFromFile {
 
        /**
         * Get the current Chunk index
-        * @return Integer index of the current chunk
+        * @return int Index of the current chunk
         */
        private function getChunkIndex() {
                if ( $this->mChunkIndex !== null ) {
@@ -294,7 +299,7 @@ class UploadFromChunks extends UploadFromFile {
 
        /**
         * Gets the current offset in fromt the stashedupload table
-        * @return Integer current byte offset of the chunk file set
+        * @return int Current byte offset of the chunk file set
         */
        private function getOffset() {
                if ( $this->mOffset !== null ) {
@@ -306,7 +311,7 @@ class UploadFromChunks extends UploadFromFile {
        /**
         * Output the chunk to disk
         *
-        * @param $chunkPath string
+        * @param string $chunkPath
         * @throws UploadChunkFileException
         * @return FileRepoStatus
         */
index a00ed32..5bc040c 100644 (file)
@@ -35,7 +35,7 @@ class UploadFromFile extends UploadBase {
        protected $mUpload = null;
 
        /**
-        * @param $request WebRequest
+        * @param WebRequest $request
         */
        function initializeFromRequest( &$request ) {
                $upload = $request->getUpload( 'wpUploadFile' );
@@ -49,8 +49,8 @@ class UploadFromFile extends UploadBase {
 
        /**
         * Initialize from a filename and a WebRequestUpload
-        * @param $name
-        * @param $webRequestUpload
+        * @param string $name
+        * @param WebRequestUpload $webRequestUpload
         */
        function initialize( $name, $webRequestUpload ) {
                $this->mUpload = $webRequestUpload;
@@ -59,7 +59,7 @@ class UploadFromFile extends UploadBase {
        }
 
        /**
-        * @param $request
+        * @param WebRequest $request
         * @return bool
         */
        static function isValidRequest( $request ) {
index 19b4dfd..9ebd7a9 100644 (file)
@@ -41,7 +41,7 @@ class UploadFromUrl extends UploadBase {
         * user is not allowed, return the name of the user right as a string. If
         * the user is allowed, have the parent do further permissions checking.
         *
-        * @param $user User
+        * @param User $user
         *
         * @return bool|string
         */
@@ -66,7 +66,7 @@ class UploadFromUrl extends UploadBase {
         * The domains in the whitelist can include wildcard characters (*) in place
         * of any of the domain levels, e.g. '*.flickr.com' or 'upload.*.gov.uk'.
         *
-        * @param $url string
+        * @param string $url
         * @return bool
         */
        public static function isAllowedHost( $url ) {
@@ -109,7 +109,7 @@ class UploadFromUrl extends UploadBase {
        /**
         * Checks whether the URL is not allowed.
         *
-        * @param $url string
+        * @param string $url
         * @return bool
         */
        public static function isAllowedUrl( $url ) {
@@ -124,9 +124,9 @@ class UploadFromUrl extends UploadBase {
        /**
         * Entry point for API upload
         *
-        * @param $name string
-        * @param $url string
-        * @param $async mixed Whether the download should be performed
+        * @param string $name
+        * @param string $url
+        * @param bool|string $async Whether the download should be performed
         * asynchronous. False for synchronous, async or async-leavemessage for
         * asynchronous download.
         * @throws MWException
@@ -147,7 +147,7 @@ class UploadFromUrl extends UploadBase {
 
        /**
         * Entry point for SpecialUpload
-        * @param $request WebRequest object
+        * @param WebRequest $request
         */
        public function initializeFromRequest( &$request ) {
                $desiredDestName = $request->getText( 'wpDestFile' );
@@ -162,7 +162,7 @@ class UploadFromUrl extends UploadBase {
        }
 
        /**
-        * @param $request WebRequest object
+        * @param WebRequest $request
         * @return bool
         */
        public static function isValidRequest( $request ) {
@@ -184,7 +184,7 @@ class UploadFromUrl extends UploadBase {
        /**
         * Download the file (if not async)
         *
-        * @param Array $httpOptions Array of options for MWHttpRequest. Ignored if async.
+        * @param array $httpOptions Array of options for MWHttpRequest. Ignored if async.
         *   This could be used to override the timeout on the http request.
         * @return Status
         */
@@ -219,9 +219,9 @@ class UploadFromUrl extends UploadBase {
        /**
         * Callback: save a chunk of the result of a HTTP request to the temporary file
         *
-        * @param $req mixed
-        * @param $buffer string
-        * @return int number of bytes handled
+        * @param mixed $req
+        * @param string $buffer
+        * @return int Number of bytes handled
         */
        public function saveTempFileChunk( $req, $buffer ) {
                $nbytes = fwrite( $this->mTmpHandle, $buffer );
@@ -241,7 +241,7 @@ class UploadFromUrl extends UploadBase {
         * Download the file, save it to the temporary file and update the file
         * size and set $mRemoveTempFile to true.
         *
-        * @param Array $httpOptions Array of options for MWHttpRequest
+        * @param array $httpOptions Array of options for MWHttpRequest
         * @return Status
         */
        protected function reallyFetchFile( $httpOptions = array() ) {
@@ -303,7 +303,7 @@ class UploadFromUrl extends UploadBase {
        /**
         * Wrapper around the parent function in order to defer checking warnings
         * until the file really has been fetched.
-        * @return Array
+        * @return array
         */
        public function checkWarnings() {
                if ( $this->mAsync ) {
@@ -316,7 +316,7 @@ class UploadFromUrl extends UploadBase {
        /**
         * Wrapper around the parent function in order to defer checking protection
         * until we are sure that the file can actually be uploaded
-        * @param $user User
+        * @param User $user
         * @return bool|mixed
         */
        public function verifyTitlePermissions( $user ) {
@@ -329,10 +329,10 @@ class UploadFromUrl extends UploadBase {
        /**
         * Wrapper around the parent function in order to defer uploading to the
         * job queue for asynchronous uploads
-        * @param $comment string
-        * @param $pageText string
-        * @param $watch bool
-        * @param $user User
+        * @param string $comment
+        * @param string $pageText
+        * @param bool $watch
+        * @param User $user
         * @return Status
         */
        public function performUpload( $comment, $pageText, $watch, $user ) {
@@ -346,11 +346,11 @@ class UploadFromUrl extends UploadBase {
        }
 
        /**
-        * @param $comment
-        * @param $pageText
-        * @param $watch
-        * @param $user User
-        * @return String
+        * @param string $comment
+        * @param string $pageText
+        * @param bool $watch
+        * @param User $user
+        * @return string
         */
        protected function insertJob( $comment, $pageText, $watch, $user ) {
                $sessionKey = $this->stashSession();
index ad2196d..33cb0db 100644 (file)
@@ -71,8 +71,8 @@ class UploadStash {
         * Designed to be compatible with the session stashing code in UploadBase
         * (should replace it eventually).
         *
-        * @param $repo FileRepo
-        * @param $user User (default null)
+        * @param FileRepo $repo
+        * @param User $user (default null)
         */
        public function __construct( FileRepo $repo, $user = null ) {
                // this might change based on wiki's configuration.
@@ -97,8 +97,8 @@ class UploadStash {
         * Get a file and its metadata from the stash.
         * The noAuth param is a bit janky but is required for automated scripts which clean out the stash.
         *
-        * @param string $key key under which file information is stored
-        * @param $noAuth Boolean (optional) Don't check authentication. Used by maintenance scripts.
+        * @param string $key Key under which file information is stored
+        * @param bool $noAuth (optional) Don't check authentication. Used by maintenance scripts.
         * @throws UploadStashFileNotFoundException
         * @throws UploadStashNotLoggedInException
         * @throws UploadStashWrongOwnerException
@@ -156,7 +156,7 @@ class UploadStash {
         * Getter for file metadata.
         *
         * @param string $key key under which file information is stored
-        * @return Array
+        * @return array
         */
        public function getMetadata( $key ) {
                $this->getFile( $key );
@@ -167,7 +167,7 @@ class UploadStash {
         * Getter for fileProps
         *
         * @param string $key key under which file information is stored
-        * @return Array
+        * @return array
         */
        public function getFileProps( $key ) {
                $this->getFile( $key );
@@ -293,7 +293,7 @@ class UploadStash {
         * Does not clean up files in the repo, just the record of them.
         *
         * @throws UploadStashNotLoggedInException
-        * @return bool success
+        * @return bool Success
         */
        public function clear() {
                if ( !$this->isLoggedIn ) {
@@ -383,7 +383,7 @@ class UploadStash {
         * List all files in the stash.
         *
         * @throws UploadStashNotLoggedInException
-        * @return Array
+        * @return array
         */
        public function listFiles() {
                if ( !$this->isLoggedIn ) {
@@ -418,7 +418,7 @@ class UploadStash {
         * with an extension.
         * XXX this is somewhat redundant with the checks that ApiUpload.php does with incoming
         * uploads versus the desired filename. Maybe we can get that passed to us...
-        * @param $path
+        * @param string $path
         * @throws UploadStashFileException
         * @return string
         */
@@ -459,7 +459,7 @@ class UploadStash {
         *
         * @param string $key
         * @param int $readFromDB Constant (default: DB_SLAVE)
-        * @return boolean
+        * @return bool
         */
        protected function fetchFileMetadata( $key, $readFromDB = DB_SLAVE ) {
                // populate $fileMetadata[$key]
index 2bc888f..93aec22 100644 (file)
@@ -54,7 +54,6 @@
        "tog-showtoolbar": "إظهار شريط التحرير",
        "tog-editondblclick": "تعديل الصفحات بالنقر المزدوج",
        "tog-editsectiononrightclick": "تفعيل تعديل الأقسام بالنقر باليمين على عناوين الأقسام",
-       "tog-rememberpassword": "تذكر دخولي بهذا المتصفح (لمدة أقصاها {{PLURAL:$1||يوم واحد|يومان|$1 أيام|$1 يوما|$1 يوم}})",
        "tog-watchcreations": "أضف الصفحات التي أنشئها والملفات التي أرفعها إلى قائمة مراقبتي.",
        "tog-watchdefault": "أضف الصفحات والملفات التي أعدلها إلى قائمة مراقبتي",
        "tog-watchmoves": "أضف الصفحات والملفات التي أنقلها إلى قائمة مراقبتي",
        "november-date": "تشرين الثاني/نوفمبر $1",
        "december-date": "كانون الأول/ديسمبر $1",
        "pagecategories": "{{PLURAL:$1|بلا تصنيف|تصنيف|تصنيفان|تصنيفات}}",
-       "category_header": "صفحات تصنيف \"$1\"",
+       "category_header": "صفحات تصنيف «$1»",
        "subcategories": "تصنيفات فرعية",
        "category-media-header": "ملفات تصنيف \"$1\"",
        "category-empty": "هذا التصنيف لا يحتوي حاليا على صفحات أو ملفات.",
        "searchprofile-articles": "صفحات المحتوى",
        "searchprofile-project": "صفحات المساعدة والمشروع",
        "searchprofile-images": "الوسائط المتعددة",
-       "searchprofile-everything": "كل شيء",
+       "searchprofile-everything": "الكل",
        "searchprofile-advanced": "متقدم",
        "searchprofile-articles-tooltip": "ابحث في $1",
        "searchprofile-project-tooltip": "ابحث في $1",
index b9f2fe8..3477d65 100644 (file)
        "listgrouprights-removegroup-self": "можа выдаліць уласны рахунак з {{PLURAL:$2|1=групы|групаў}}: $1",
        "listgrouprights-addgroup-self-all": "Можа дадаць уласны рахунак да ўсіх груп",
        "listgrouprights-removegroup-self-all": "Можа выдаліць уласны рахунак з ўсіх груп",
+       "listgrouprights-namespaceprotection-header": "Абмежаваньні прасторы назваў",
        "trackingcategories": "Катэгорыі, якія патрабуюць увагі",
        "trackingcategories-summary": "На гэтай старонцы пералічаныя катэгорыя, які патрабуюць увагі і якія аўтаматычна запаўняюцца праграмным забесьяпчэньнем MediaWiki. Іх назвы могуць быць зьмененыя рэдагаваньнем сыстэмных паведамленьняў у прасторы назваў {{ns:8}}.",
        "mailnologin": "Няма адрасу атрымальніка",
index b1ec3a1..0c9ef0b 100644 (file)
@@ -34,7 +34,6 @@
        "tog-showtoolbar": "সম্পাদনা টুলবার দেখাও",
        "tog-editondblclick": "দুইবার ক্লিক করে পাতা সম্পাদনা",
        "tog-editsectiononrightclick": "পরিচ্ছেদের শিরোনামে ডান ক্লিকের মাধ্যমে সম্পাদনা করার ক্ষমতা দেয়া হোক",
-       "tog-rememberpassword": "এই ব্রাউজারে আমার লগ ইন তথ্য (শব্দচাবি) মনে রাখো (সর্বোচ্চ $1 {{PLURAL:$1|দিনের|দিনের}} জন্য)",
        "tog-watchcreations": "আমার তৈরি পাতা এবং আপলোড করা ফাইলগুললো আমার নজরতালিকায় যোগ করা হোক",
        "tog-watchdefault": "আমার সম্পাদিত পাতা এবং ফাইলগুলো আমার নজরতালিকায় যোগ করা হোক",
        "tog-watchmoves": "আমার সরিয়ে ফেলা পাতা এবং ফাইলগুলো আমার নজরতালিকায় যোগ করা হোক",
        "permalink": "স্থায়ী সংযোগ",
        "print": "মুদ্রণ",
        "view": "দেখাও",
+       "view-foreign": "$1ে দেখুন",
        "edit": "সম্পাদনা",
+       "edit-local": "স্থানীয় বিবরণ সম্পাদনা করুন",
        "create": "তৈরি",
+       "create-local": "স্থানীয় বিবরণ যোগ করুন",
        "editthispage": "সম্পাদনা করুন",
        "create-this-page": "পাতাটি তৈরি করো",
        "delete": "অপসারণ",
        "revdelete-no-file": "নির্ধারিত ফাইলটি নেই।",
        "revdelete-show-file-confirm": "আপনি কি নিশ্চিত যে \"<nowiki>$1</nowiki>\" ফাইলের $2 তারিখের $3 টার অপসারণ লগ দেখানো হবে?",
        "revdelete-show-file-submit": "হ্যাঁ",
+       "revdelete-selected-text": "[[:$2]] পাতার {{PLURAL:$1|নির্বাচিত সংশোধন|নির্বাচিত সংশোধনসমূহ}}:",
        "logdelete-selected": "{{PLURAL:$1|টি নির্বাচিত লগ-ঘটনা|টি নির্বাচিত লগ-ঘটনা}}:",
        "revdelete-confirm": "অনুগ্রহ করে নিশ্চিত করুন যে আপনি এটি করতে চাচ্ছিলেন, আপনি এর ফলাফল সম্পর্কে অবগত আছেন, এবং [[{{MediaWiki:Policy-url}}|নীতিমালার]] উপর ভিত্তি করেই এই কাজটি করছেন।",
        "revdelete-suppress-text": "নিচের বিষয়গুলোর ক্ষেত্রেই '''কেবলমাত্র'''  চাপাচাপি করা যাবে:\n* সম্ভাব্য মানহানিকর তথ্য\n* ভুল ব্যক্তিগত তথ্য\n*: ''বাসার ঠিকানা এবং ফোন নম্বর, সোসাল সিকিউরিটি নম্বর, ইত্যাদি।''",
        "download": "ডাউনলোড",
        "unwatchedpages": "নজরে না রাখা পাতাগুলি",
        "listredirects": "তালিকা পুনর্নির্দেশগুলি",
+       "listduplicatedfiles": "সদৃশ ফাইলের তালিকা",
+       "listduplicatedfiles-summary": "এটি ফাইলসমূহের একটি তালিকা যেখানে একটি ফাইলের সাম্প্রতিকতম সংস্করণ অন্য আরেকটি ফাইলের সাম্প্রতিকতম সংস্করণের প্রতিলিপি। শুধু স্থানীয় ফাইল বিবেচনা করা হয়েছে।",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]]-এর [[$3|{{PLURAL:$2|একটি প্রতিলিপি|$2টি প্রতিলিপি}}]] রয়েছে।",
        "unusedtemplates": "অব্যবহৃত টেমপ্লেটগুলি",
        "unusedtemplatestext": "{{ns:template}} নামস্থানের যে সমস্ত পাতা অন্য কোন পাতায় অন্তর্ভুক্ত নয়, তাদের সবগুলির তালিকা এই পাতায় দেওয়া হল। টেমপ্লেটগুলি মুছে ফেলার আগে পরীক্ষা করে দেখুন অন্য কোথাও থেকে এগুলিতে সংযোগ আছে কি না।",
        "unusedtemplateswlh": "অন্যান্য সংযোগগুলি",
        "listgrouprights-removegroup-self": "নিজের অ্যাকাউন্ট থেকে {{PLURAL:$2|দল|দলসমূহ}} অপসারণ: $1",
        "listgrouprights-addgroup-self-all": "নিজের অ্যাকাউন্টে সকল দল সংযোজন",
        "listgrouprights-removegroup-self-all": "নিজের অ্যাকাউন্ট থেকে সকল দল অপসারণ",
+       "listgrouprights-namespaceprotection-namespace": "নামস্থান",
+       "trackingcategories-name": "বার্তা নাম",
        "mailnologin": "প্রাপকের ঠিকানা নেই",
        "mailnologintext": "অন্য ব্যবহারকারীদেরকে ই-মেইল পাঠাতে হলে আপনাকে অবশ্যই আগে [[Special:UserLogin|লগ-ইন]] করতে হবে এবং ''[[Special:Preferences|আপনার পছন্দ তালিকায়]] আপনার ই-মেইল ঠিকানাটি ঠিকমত দিতে হবে।",
        "emailuser": "ইমেইল করো",
        "unwatchthispage": "নজর সরিয়ে নিন",
        "notanarticle": "বিষয়বস্তু পাতা নয়",
        "notvisiblerev": "অপর একজন ব্যবহারকারী কর্তৃক প্রণীত সর্বশেষ সংস্করণটি অপসারিত হয়েছে",
-       "watchlist-details": "নà¦\9cরতালিà¦\95াতà§\87 {{PLURAL:$1|$1à¦\9fি à¦ªà¦¾à¦¤à¦¾|$1টি পাতা}} আছে (আলাপ পাতাগুলি গণনায় না ধরে)।",
+       "watchlist-details": "à¦\86পনার à¦¨à¦\9cরতালিà¦\95াতà§\87 {{PLURAL:$1|$1টি পাতা}} আছে (আলাপ পাতাগুলি গণনায় না ধরে)।",
        "wlheader-enotif": "ইমেল বিজ্ঞপ্তি সক্রিয় করা আছে।",
        "wlheader-showupdated": "আপনার শেষ আগমনের পর থেকে যেসব পাতায় পরিবর্তন হয়েছে সেগুলি '''গাঢ়''' করে দেখানো হয়েছে।",
        "watchmethod-recent": "নজরে রাখা পাতাগুলিতে সাম্প্রতিক পরিবর্তন পরীক্ষা করা হচ্ছে",
        "protect-locked-blocked": "বাধাপ্রাপ্ত অবস্থায় আপনি পাতাটির সুরক্ষা স্তর পরিবর্তন করতে পারবেন না। এখানে '''$1''' পাতাটির বর্তমান সেটিংস দেওয়া হল:",
        "protect-locked-dblock": "ডাটাবেজ বন্ধ থাকায় সুরক্ষা স্তর পরিবর্তন করা যাবে না।\nএখানে '''$1''' পাতাটির বর্তমান সেটিংস দেওয়া হল:",
        "protect-locked-access": "আপনার অ্যাকাউন্ট থেকে পাতার সুরক্ষা স্তর পরিবর্তন করার অনুমতি নেই।\nএখানে '''$1''' পাতাটির বর্তমান সেটিংস দেওয়া হল:",
-       "protect-cascadeon": "à¦\8fà¦\87 à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦¬à¦°à§\8dতমানà§\87 à¦¸à§\81রà¦\95à§\8dষিত à¦\86à¦\9bà§\87, à¦\95ারণ à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦¨à¦¿à¦\9aà§\87র {{PLURAL:$1|à¦\9fি à¦ªà¦¾à¦¤à¦¾à¦¯à¦¼|à¦\9fি à¦ªà¦¾à¦¤à¦¾à¦¯à¦¼}} à¦\85নà§\8dতরà§\8dভà§\81à¦\95à§\8dত, à¦¯à¦¾à¦¤à§\87 (যà§\87à¦\97à§\81লিতà§\87) à¦ªà§\8dরপাতাà¦\95ারà§\87 সুরক্ষা চালু আছে। আপনি এই পাতাটির সুরক্ষা স্তর পরিবর্তন করতে পারেন, তবে এটি প্রপাতাকার সুরক্ষাটিতে কোন পরিবর্তন সাধন করবে না।",
+       "protect-cascadeon": "à¦\8fà¦\87 à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦¬à¦°à§\8dতমানà§\87 à¦¸à§\81রà¦\95à§\8dষিত à¦\86à¦\9bà§\87, à¦\95ারণ à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦¨à¦¿à¦\9aà§\87র {{PLURAL:$1|পাতায়|পাতাà¦\97à§\81লিতà§\87}} à¦\85নà§\8dতরà§\8dভà§\81à¦\95à§\8dত, {{PLURAL:$1|যাতà§\87|যà§\87à¦\97à§\81লিতà§\87}} à¦ªà§\8dরপাতাà¦\95ার সুরক্ষা চালু আছে। আপনি এই পাতাটির সুরক্ষা স্তর পরিবর্তন করতে পারেন, তবে এটি প্রপাতাকার সুরক্ষাটিতে কোন পরিবর্তন সাধন করবে না।",
        "protect-default": "সমস্ত ব্যবহারকারীর জন্য",
        "protect-fallback": "\"$1\" অধিকার রয়েছে এমন ব্যবহারকারীদের জন্য অনুমতি",
        "protect-level-autoconfirmed": "কেবলমাত্র সয়ংক্রিয় পরীক্ষিত ব্যবহারকারীদের জন্য",
index 20832a3..eb7f720 100644 (file)
        "post-expand-template-argument-category": "Кепашан аргументаш юкъахь йитина агӀонаш",
        "parser-template-loop-warning": "Карийна кепаш юкъахь хилла шад: [[$1]]",
        "parser-template-recursion-depth-warning": "Дозанал хьаладаьлла кӀоргенца юх юха дина кеп ($1)",
+       "expansion-depth-exceeded-category": "Схьаелларан кӀоргалла тӀех даьккхина агӀонаш",
+       "expansion-depth-exceeded-warning": "АгӀонгахь чуйихкар тӀехдаьккхина",
        "parser-unstrip-loop-warning": "ДӀачӀагӀанца pre карина",
        "undo-success": "Нисйинарг а тlе цалаца мега. Дехар до, хьажа цхьатерра йуй башхо, тешна хила, баккъалла иза хийцам буйте хьуна безарг, тlакха тlе таlайе «дlайазйе агlо», хийцам хlотта ба.",
        "undo-failure": "Юккъера хийцамаш бахьнехь нисдар юхадаккха йиш яц.",
        "feedback-close": "Кийчча ю",
        "searchsuggest-search": "Лаха",
        "searchsuggest-containing": "чуьраниг…",
+       "api-error-duplicate": "Иштта чулацам болу {{PLURAL:$1|1=[$2 кхин файл]|[$2 кхин файлаш]}} йолуш ю",
        "api-error-duplicate-popup-title": "{{PLURAL:$1|1=Файлан|Файлийн}} дубликат.",
        "api-error-empty-file": "Ахьа яхьийтина файл еса ю.",
        "duration-seconds": "$1 {{PLURAL:$1|секунд}}",
index 1c78aef..98a3286 100644 (file)
        "group-user-member": "{{GENDER:$1|بەکارھێنەر}}",
        "group-autoconfirmed-member": "{{GENDER:$1|بەکارھێنەرانی پەسندکراوی خۆگەڕ}}",
        "group-bot-member": "بۆت",
-       "group-sysop-member": "{{GENDER:$1|بەڕێوبەر}}",
+       "group-sysop-member": "{{GENDER:$1|بەڕێوەبەر}}",
        "group-bureaucrat-member": "{{GENDER:$1|بیوروکرات}}",
        "group-suppress-member": "{{GENDER:$1|چاودێر}}",
        "grouppage-user": "{{ns:project}}:بەکارھێنەران",
        "grouppage-autoconfirmed": "{{ns:project}}:بەکارھێنەرانی پەسندکراوی خۆگەڕ",
        "grouppage-bot": "{{ns:project}}:بۆت",
-       "grouppage-sysop": "{{ns:project}}:بەڕێوبەران",
+       "grouppage-sysop": "{{ns:project}}:بەڕێوەبەران",
        "grouppage-bureaucrat": "{{ns:project}}:بیوروکراتەکان",
        "grouppage-suppress": "{{ns:project}}:چاودێر",
        "right-read": "خوێندنەوەی پەڕەکان",
        "statistics-pages": "پەڕەکان",
        "statistics-pages-desc": "گشت پەڕەکانی ویکی، بە لەخۆگرتنی پەڕەکانی لێدوان، ڕەوانەکەرەکان و ھتد.",
        "statistics-files": "پەڕگە بارکراوەکان",
-       "statistics-edits": "دەستکارییەکانی پەڕەکان لە کاتی دامەزراندنی {{SITENAME}}ەوە",
+       "statistics-edits": "دەستکارییەکانی پەڕەکان لە کاتی دامەزراندنی {{SITENAME}}",
        "statistics-edits-average": "ناونجیی دەستکارییەکان بۆ ھەر پەڕە",
        "statistics-views-total": "دیتنی هەموو",
        "statistics-views-peredit": "دیتنی هەر دەستکارییەک",
index 00edca9..5f8c96b 100644 (file)
        "prefs-edits": "Amarê vurnayışan:",
        "prefsnologintext2": "Reca kem  sazé tercihané karberi $1.",
        "prefs-skin": "Çerme",
-       "skin-preview": "Verasayış",
+       "skin-preview": "Verqayt",
        "datedefault": "Tercih çıniyo",
        "prefs-labs": "Xacetê labs",
        "prefs-user-pages": "Pela Karberi",
        "tooltip-diff": "Metni sero vurnayışan mocneno",
        "tooltip-compareselectedversions": "Ena per de ferqê rewziyonan de dı weçinaya bıvinê",
        "tooltip-watch": "Ena pele lista xoya seyrkerdışi ke",
-       "tooltip-watchlistedit-normal-submit": "Sernuşteya hewad",
+       "tooltip-watchlistedit-normal-submit": "Sernuşteyan wedare",
        "tooltip-watchlistedit-raw-submit": "Listeyê seyri newen ke",
        "tooltip-recreate": "pel hewn a bışiyo zi tepiya biya",
        "tooltip-upload": "Sergen de bari be",
        "metadata-langitem": "'''$2:''' $1",
        "metadata-langitem-default": "$1",
        "exif-imagewidth": "Herayey",
-       "exif-imagelength": "Dergi",
+       "exif-imagelength": "Berziye",
        "exif-bitspersample": "yew parçe de biti",
        "exif-compression": "Planê kompresyoni",
        "exif-photometricinterpretation": "Compozisyonê pixeli",
        "watchlistedit-normal-title": "Listeyê seyirkerdişi bivurne",
        "watchlistedit-normal-legend": "Listeyê seyr kerdişê tu de seroğ biwedarna.",
        "watchlistedit-normal-explain": "Listeyê seyr kerdîşî ti de serogî cor de mucnayiyo.\nEka ti wazeno seroğ biwedarne, kuti ke kistê de, ay işaret bike u \"{{int:Watchlistedit-normal-submit}}\" klik bike.\nTi hem zi eşkeno [[Special:EditWatchlist/raw|edit the raw list]].",
-       "watchlistedit-normal-submit": "Seroğî biwedarnê",
+       "watchlistedit-normal-submit": "Sernuşteyan wedare",
        "watchlistedit-normal-done": "{{PLURAL:$1|1 seroğ|$1 seroğî}} seyr kerdişê tu ra wedarno.",
        "watchlistedit-raw-title": "Listeyê seyirkerdişi ye hami bivurne",
        "watchlistedit-raw-legend": "Listeyê seyirkerdişi ye hami bivurne",
        "redirect-value": "Erc:",
        "redirect-user": "Kamiya Karberi:",
        "redirect-page": "Kamiya pele",
-       "redirect-revision": "Rewizyona pela",
+       "redirect-revision": "Çımraviyarnayışê pele",
        "redirect-file": "Namey dosya",
        "redirect-not-exists": "Erc nêvineyê",
        "fileduplicatesearch": "Dosyayanê zey pêyan cı geyrê",
        "api-error-unclassified": "Yew xeteyê nizanyeni biya.",
        "api-error-unknown-code": "$1'dı jew xeta vıciye",
        "api-error-unknown-error": "Zerre xırabin:Dasoya barkerdış de tay çi raşt nêşı.",
-       "api-error-unknown-warning": "$1'dı ikazo xırab:",
+       "api-error-unknown-warning": "İqazo nêzanaye: \"$1\".",
        "api-error-unknownerror": "$1'dı jew xeta vıciye",
        "api-error-uploaddisabled": "BArkerdış ena wikide qefılneyayo",
        "api-error-verification-error": "Dosya xırabiya yana derganiya cı xıraba.",
index a113db0..a5e45b8 100644 (file)
        "history-show-deleted": "Sōl quî scanşlê",
        "histfirst": "préma",
        "histlast": "ûltma",
+       "historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
        "historyempty": "(vōda)",
        "history-feed-title": "Stòria dal mudéfichi",
        "history-feed-description": "Stòria 'd la pàgina in sém a cól sî ché",
        "rev-suppressed-text-unhide": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. Consultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.\nS' l' é necesâri a j aministradōr a gh'é incòra permés [$1 ed guardêr cla versiòun ché].",
        "rev-deleted-text-view": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. J aministradōr a pōlen incòra guardêrla; \nconsultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.",
        "rev-suppressed-text-view": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. J aministradōr a pōlen incòra guardêrla; \nconsultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.",
+       "rev-deleted-no-diff": "An n'é mìa pusébil guardêr cól cunfrûnt ché tra 'l versiòun perchè óna dal revisiòun l'é stêda <strong> scanşlêda </strong>. Consûlta al [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log dal scanşladûri] per i particulêr.",
+       "rev-suppressed-no-diff": "An n'é mìa pusébil guardêr cól cunfrûnt ché tra 'l versiòun perchè óna dal revisiòun l'é stêda <strong> scanşlêda </strong>.",
+       "rev-deleted-unhide-diff": "Ó dal revisiòun de sté cunfrûnt l'é stêda <strong> scanşlêda </strong>. Consultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal scanşladûri] per i particulêr.\nS' l' é necesâri a j aministradōr a gh'é incòra permés [$1 ed guardêr cla versiòun ché].",
        "rev-delundel": "Guêrda/nascònd",
        "revdelete-radio-set": "Nascònd",
        "revdelete-radio-unset": "Fà vèder",
index d94cd30..5453c5f 100644 (file)
     "doubleredirects": "Double redirects",
     "doubleredirects-summary": "",
     "doubleredirectstext": "This page lists pages that redirect to other redirect pages.\nEach row contains links to the first and second redirect, as well as the target of the second redirect, which is usually the \"real\" target page to which the first redirect should point.\n<del>Crossed out</del> entries have been solved.",
-    "double-redirect-fixed-move": "[[$1]] has been moved.\nIt now redirects to [[$2]].",
-    "double-redirect-fixed-maintenance": "Fixing double redirect from [[$1]] to [[$2]].",
+    "double-redirect-fixed-move": "[[$1]] has been moved.\nIt was automatically updated and now it redirects to [[$2]].",
+    "double-redirect-fixed-maintenance": "Automatically fixing double redirect from [[$1]] to [[$2]] in a maintenance job.",
     "double-redirect-fixer": "Redirect fixer",
     "brokenredirects": "Broken redirects",
     "brokenredirects-summary": "",
index f0898c7..b443422 100644 (file)
        "revdelete-no-file": "El archivo especificado no existe.",
        "revdelete-show-file-confirm": "¿Quieres ver la revisión borrada del archivo «<nowiki>$1</nowiki>» del $2 a las $3?",
        "revdelete-show-file-submit": "Sí",
+       "revdelete-selected-text": "{{PLURAL:$1|Revisión seleccionada|Revisiones seleccionadas}} de [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Versión de archivo seleccionada|Versiones de archivo seleccionadas}} de [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Seleccionado un evento|Seleccionados eventos}}:",
        "revdelete-text-text": "Las revisiones eliminadas aún aparecerán en el historial de la página, pero parte de su contenido será inaccesible para el público.",
        "revdelete-text-file": "Las versiones de los archivos eliminados aún aparecerán en el historial del archivo, pero partes de su contenido serán inaccesibles para el público.",
        "unwatchedpages": "Páginas no vigiladas",
        "listredirects": "Lista de redirecciones",
        "listduplicatedfiles": "Lista de archivos con duplicados",
+       "listduplicatedfiles-summary": "Esta es una lista de archivos donde la versión más reciente es un duplicado de la versión más reciente de un archivo con otro nombre. Solo se tienen en cuenta archivos locales.",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] tiene [[$3|{{PLURAL:$2|un duplicado|$2 duplicados}}]].",
        "unusedtemplates": "Plantillas sin uso",
        "unusedtemplatestext": "Aquí se enumeran todas las páginas en el espacio de nombres {{ns:template}} que no están incluidas en otras páginas. Recuerda mirar lo que enlaza a las plantillas antes de borrarlas.",
        "protectedpages-unknown-timestamp": "Desconocido",
        "protectedpages-unknown-performer": "Usuario desconocido",
        "protectedtitles": "Títulos protegidos",
-       "protectedtitles-summary": "Esta página enumera títulos que actualmente están protegidos desde su creación. Para una lista de las páginas existentes que están protegidos, véase [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
+       "protectedtitles-summary": "Esta página enumera títulos que actualmente están protegidos desde su creación. Para una lista de las páginas existentes que están protegidas, véase [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Actualmente no existen entradas protegidas con esos parámetros.",
        "listusers": "Lista de usuarios",
        "listusers-editsonly": "Muestra sólo usuarios con ediciones",
        "listgrouprights-namespaceprotection-namespace": "Espacio de nombre",
        "listgrouprights-namespaceprotection-restrictedto": "Derechos de usuario para editar",
        "trackingcategories": "Categorías de seguimiento",
+       "trackingcategories-summary": "Esta página lista categorías de seguimiento que han sido generadas automáticamente por el software MediaWiki. Sus nombres pueden cambiarse editando su mensaje correspondiente en el espacio de nombres {{ns:8}}.",
        "trackingcategories-msg": "Categoría de seguimiento",
        "trackingcategories-name": "Nombre del mensaje",
        "trackingcategories-desc": "Criterios de inclusión de categoría",
        "noindex-category-desc": "La página contiene la palabra mágica <code><nowiki>__NOINDEX__</nowiki></code> (y está en un espacio de nombres donde la función está activada); y por ello los robots no la indizan.",
+       "index-category-desc": "La página contiene la palabra mágica <code><nowiki>__INDEX__</nowiki></code> (y está en un espacio de nombres donde la función está activada); y por ello los robots la indizarán.",
        "post-expand-template-inclusion-category-desc": "Después de expandir todas las plantillas, el tamaño de la página es más grande que <code>$wgMaxArticleSize</code>, así que algunas plantillas no se expandieron.",
        "post-expand-template-argument-category-desc": "Después de expandir un argumento de plantilla (algunos en tres llaves, como <code>{{{Foo}}})</code>, la página es más grande que <code>$wgMaxArticleSize</code>.",
+       "expensive-parserfunction-category-desc": "Páginas que contienen demasiadas funciones sintácticas muy costosas (como <code>#ifexist</code>). Consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "Categoría añadida cuando una página contiene enlaces rotos a archivos (enlaces a archivos incrustados cuando el archivo no existe).",
        "hidden-category-category-desc": "Esta es una categoría con <code><nowiki>__HIDDENCAT__</nowiki></code> en ella, que evita que aparezca en el cuadro de enlace de la categoría en las páginas, de forma predeterminada.",
        "trackingcategories-nodesc": "No hay descripción disponible.",
        "trackingcategories-disabled": "La categoría está desactivada",
        "contributions-title": "Contribuciones {{GENDER:$1|del usuario|de la usuaria}} $1",
        "mycontris": "Contribuciones",
        "contribsub2": "Para {{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "La cuenta de usuario «$1» no está registrada.",
        "nocontribs": "No se encontraron cambios que cumplieran estos criterios.",
        "uctop": "(edición actual)",
        "month": "Desde el mes (y anteriores):",
index 28d3736..875b437 100644 (file)
@@ -23,7 +23,6 @@
        "tog-showtoolbar": "显示编辑工具栏(JavaScript)",
        "tog-editondblclick": "按两下改吖(JavaScript)",
        "tog-editsectiononrightclick": "可以按右键来编写只把子段落(JavaScript)",
-       "tog-rememberpassword": "到个只电脑记到我𠮶密码(至多$1{{PLURAL:$1|日|日}})",
        "tog-watchcreations": "拿偶开嘞𠮶页面加到偶𠮶监视列表",
        "tog-watchdefault": "拿偶改嘞𠮶页面加到偶𠮶监视列表",
        "tog-watchmoves": "拿偶动嘞𠮶页面加到偶𠮶监视列表",
        "page-atom-feed": "\"$1\" Atom Feed",
        "red-link-title": "$1 (哈冇开始写)",
        "nstab-main": "文章",
-       "nstab-user": "用户页",
+       "nstab-user": "用户页",
        "nstab-media": "媒体页",
        "nstab-special": "特殊页",
        "nstab-project": "项目页",
index 268330e..b45dc10 100644 (file)
        "permalink": "この版への固定リンク",
        "print": "印刷",
        "view": "閲覧",
+       "view-foreign": "$1で閲覧",
        "edit": "編集",
+       "edit-local": "ローカルの解説を編集",
        "create": "作成",
+       "create-local": "ローカルの解説を作成",
        "editthispage": "このページを編集",
        "create-this-page": "このページを作成",
        "delete": "削除",
        "download": "ダウンロード",
        "unwatchedpages": "ウォッチされていないページ",
        "listredirects": "転送ページの一覧",
+       "listduplicatedfiles": "重複ファイル一覧",
+       "listduplicatedfiles-summary": "以下のファイルの最新版は、他の1件以上のファイルの最新版と重複しています。ローカルに存在するファイルのみを挙げています。",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] には [[$3|{{PLURAL:$2|$2 件の重複ファイル}}]]があります。",
        "unusedtemplates": "使われていないテンプレート",
        "unusedtemplatestext": "このページでは{{ns:template}}名前空間にあって他のページに読み込まれていないページを一覧にしています。\n削除する前にリンク元で他のリンクがないか確認してください。",
index d39d95b..ee72afb 100644 (file)
@@ -34,7 +34,6 @@
        "tog-showtoolbar": "ಸಂಪಾದನೆಯ ಉಪಕರಣಗಳ ಪಟ್ಟಿಯನ್ನು ತೋರು",
        "tog-editondblclick": "ಎರಡು ಬಾರಿ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಪುಟವು ಸಂಪಾದಿಸುವಂತಾಗಲಿ",
        "tog-editsectiononrightclick": "ಪುಟದ ವಿಭಾಗಗಳನ್ನು ಅವುಗಳ ಶೀರ್ಷಿಕೆಯನ್ನು ಎರಡು ಬಾರಿ ಕ್ಲಿಕ್ ಮಾಡಿ ಸಂಪಾದನೆ ಮಾಡುವಂತೆ ಇರಲಿ",
-       "tog-rememberpassword": "ಈ ಗಣಕಯಂತ್ರದಲ್ಲಿ ನನ್ನ ಲಾಗಿನ್ ನೆನಪಿನಲ್ಲಿಟ್ಟುಕೊ (ಗರಿಷ್ಠ $1 {{PLURAL:$1|ದಿನದ|ದಿನಗಳ}}ವರೆಗೆ)",
        "tog-watchcreations": "ನಾನು ಪ್ರಾರಂಭಿಸುವ ಲೇಖನಗಳನ್ನು ನನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಗೆ ಸೇರಿಸು",
        "tog-watchdefault": "ನಾನು ಸಂಪಾದಿಸುವ ಪುಟಗಳನ್ನು ವೀಕ್ಷಣಾಪಟ್ಟಿಗೆ ಸೇರಿಸು",
        "tog-watchmoves": "ನಾನು ಸ್ಥಳಾಂತರಿಸುವ ಪುಟಗಳನ್ನು ನನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಗೆ ಸೇರಿಸು",
        "permalink": "ಸ್ಥಿರ ಸಂಪರ್ಕ",
        "print": "ಮುದ್ರಿಸು",
        "view": "ನೋಟ",
+       "view-foreign": "$1 ರಲ್ಲಿ ನೋಡಿ",
        "edit": "ಸಂಪಾದಿಸಿ",
+       "edit-local": "ಸ್ಥಳೀಯ ವಿವರಣೆಯನ್ನು ಸಂಪಾದಿಸಿ",
        "create": "ಸೃಷ್ಟಿಸು",
+       "create-local": "ಸ್ಥಳೀಯ ವಿವರಣೆಯನ್ನು ಸೇರಿಸಿ",
        "editthispage": "ಈ ಪುಟವನ್ನು ಬದಲಾಯಿಸಿ",
        "create-this-page": "ಈ ಪುಟವನ್ನು ಸೃಷ್ಟಿಸು",
        "delete": "ಅಳಿಸಿ",
        "gotaccountlink": "ಲಾಗ್ ಇನ್",
        "userlogin-resetlink": "ನಿಮ್ಮ ಲಾಗಿನ್ ವಿವರಗಳನ್ನು ಮರೆತಿದ್ದೀರಾ?",
        "userlogin-resetpassword-link": "ನಿಮ್ಮ ಪ್ರವೇಶಪದ ಮರೆತಿರೇ?",
+       "userlogin-helplink2": "ಲಾಗಿನ್ ಆಗಲು ಸಹಾಯ",
+       "userlogin-createanother": "ಇನ್ನೊಂದು ಖಾತೆಯನ್ನು ಸೃಷ್ಟಿಸಿ",
        "createacct-join": "ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಕೆಳಗೆ ನಮೂದಿಸಿ",
+       "createacct-another-join": "ಹೊಸ ಖಾತೆಯ ವಿವರಗಳನ್ನು ಈ ಕೆಳಗೆ ನಮೂದಿಸಿ.",
        "createacct-emailrequired": "ಇ-ಮೇಲ್ ವಿಳಾಸ:",
+       "createacct-emailoptional": "ಮಿಂಚಂಚೆ ವಿಳಾಸ (ಐಚ್ಛಿಕ)",
        "createacct-email-ph": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ",
+       "createacct-another-email-ph": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ",
        "createaccountmail": "(ರಾಂಡಮ್) ತಾತ್ಕಾಲಿಕವಾಗಿ ಯಾದೃಚ್ಛಿಕ ಪಾಸ್ವರ್ಡ್ ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಸೂಚಿಸಿ: ಕಳುಹಿಸಿ",
        "createacct-realname": "ನಿಜವಾದ ಹೆಸರು (ಐಚ್ಛಿಕ)",
        "createaccountreason": "ಕಾರಣ:",
        "nosuchuser": "\"$1\" ಹೆಸರಿನ ಯಾವ ಸದಸ್ಯರೂ ಇಲ್ಲ.\nಕಾಗುಣಿತವನ್ನು ಪರೀಕ್ಷಿಸಿ, ಅಥವಾ [[Special:UserLogin/signup|ಹೊಸ ಸದಸ್ಯತ್ವ ಖಾತೆಯನ್ನು ಸೃಷ್ಟಿಸಿ]].",
        "nosuchusershort": "\"$1\" ಹೆಸರಿನ ಸದಸ್ಯರು ಯಾರೂ ಇಲ್ಲ.\nಹೆಸರಲ್ಲಿ ಕಾಗುಣಿತ ತಪ್ಪಿದೆಯೆ ಎಂದು ಪರೀಕ್ಷಿಸಿ.",
        "nouserspecified": "ನೀವು ಒಂದು ಸದಸ್ಯತ್ವದ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು.",
+       "login-userblocked": "ಈ ಬಳಕೆದಾರರನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ. ಲಾಗಿನ್ ಆಗಲು ಸಾದ್ಯವಿಲ್ಲ.",
        "wrongpassword": "ತಪ್ಪು ಪ್ರವೇಶ ಪದ ನೀಡಿರುವಿರಿ. ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.",
        "wrongpasswordempty": "ಖಾಲಿ ಪ್ರವೇಶ ಪದವನ್ನು ನೀಡಿರುವಿರಿ. ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.",
        "passwordtooshort": "ಪ್ರವೇಶಪದ ಕನಿಷ್ಟ {{PLURAL:$1|೧ ಅಕ್ಷರವನ್ನು|$1 ಅಕ್ಷರಗಳನ್ನು}} ಹೊಂದಿರಬೇಕು.",
+       "password-name-match": "ನಿಮ್ಮ ಬಳಕೆದಾರ ಹೆಸರಿನಿಂದ ಪ್ರವೇಶಪದ ವಿಭಿನ್ನವಾಗಿರಬೇಕು.",
+       "password-login-forbidden": "ಈ ಬಳಕೆದಾರರ ಹೆಸರು ಮತ್ತು ಪ್ರವೇಶಪದವನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.",
        "mailmypassword": "ಹೊಸ ಪ್ರವೇಶ ಪದವನ್ನು ಇ-ಅಂಚೆ ಮೂಲಕ ಕಳುಹಿಸಿ",
        "passwordremindertitle": "{{SITENAME}}ಗೆ ಹೊಸ ತಾತ್ಕಾಲಿಕ ಪ್ರವೇಶ ಪದ",
        "passwordremindertext": "{{SITENAME}} ($4) ಸೈಟಿಗೆ ಹೊಸ ಪ್ರವೇಶಪದವನ್ನು $1 ಐ.ಪಿ. ವಿಳಾಸದಿಂದ ಕೋರಲಾಗಿದೆ.\nಸದಸ್ಯ \"$2\" ಅವರ ಹೊಸ ಪ್ರವೇಶಪದ ಈಗ \"$3\".\nನೀವು ಲಾಗ್ ಇನ್ ಆಗಿ ತಮ್ಮ ಪ್ರವೇಶಪದವನ್ನು ಬದಲಾಯಿಸಿ.\n\nನೀವು ಈ ಕೋರಿಕೆಯನ್ನು ಮಾಡಿಲ್ಲದಿದ್ದರೆ, ಅಥವ ನೀವು ನಿಮ್ಮ ಹಳೆಯ ಪ್ರವೇಶಪದವನ್ನು ನೆನಪಿಸಿಕೊಂಡರೆ ಈ ಮಾಹಿತಿಗೆ ಗಮನ ನೀಡದೆ ನಿಮ್ಮ ಹಳೆಯ ಪ್ರವೇಶಪದವನ್ನು ಉಪಯೋಗಿಸಲು ಮುಂದುವರೆಸಿರಿ.",
        "noemail": "ಸದಸ್ಯ \"$1\" ಅವರ ಹೆಸರಿನಲ್ಲಿ ಯಾವ ಇ-ಅಂಚೆ ವಿಳಾಸವೂ ದಾಖಲಾಗಿಲ್ಲ.",
+       "noemailcreate": "ನೀವು ಬಳಕೆಯಲ್ಲಿರುವ ಮಿಂಚಂಚೆ ವಿಳಾಸ ನೀಡಬೇಕಾಗುವುದು.",
        "passwordsent": "\"$1\" ಅವರ ಹೆಸರಿನಲ್ಲಿ ನೋಂದಾಯಿತವಾದ ಇ-ಅಂಚೆ ವಿಳಾಸಕ್ಕೆ ಹೊಸ ಪ್ರವೇಶಪದವನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ.\nಅದನ್ನು ಪಡೆದ ಮೇಲೆ ಮತ್ತೆ ಲಾಗಿನ್ ಆಗಿ.",
        "blocked-mailpassword": "ನಿಮ್ಮ IP ವಿಳಾಸವನ್ನು ಸಂಪಾದನೆ ಮಾಡದಂತೆ ತಡೆ ಹಿಡಿಯಲಾಗಿದೆ. ದುರ್ಬಳಕೆ ಆಗದಿರಲೆಂದು ಈ ವಿಳಾಸದಿಂದ ಪ್ರವೇಶಪದ ಹಿಂಪಡೆಯುವ ಸೌಲಭ್ಯವನ್ನು ತಡೆ ಹಿಡಿಯಲಾಗಿದೆ.",
        "eauthentsent": "ನೀವು ನೊಂದಾಯಿಸಿದ ಇ-ಅಂಚೆ ವಿಳಾಸಕ್ಕೆ ಧೃಡೀಕರಣ ಅಂಚೆಯನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ.\nಈ ವಿಳಾಸಕ್ಕೆ ಮುಂದೆ ಯಾವುದೇ ಇ-ಅಂಚೆ ಕಳುಹಿಸಲ್ಪಡುವ ಮುನ್ನ ನೀವು ಈ ಕಳುಹಿಸಿರುವ ಅಂಚೆಯಲ್ಲಿನ ನಿರ್ದೇಶನಗಳನ್ನು ಪಾಲಿಸಿ, ಈ ವಿಳಾಸವು ನಿಮ್ಮದೇ ಎಂದು ಧೃಡೀಕರಿಸಬೇಕು.",
        "noemailprefs": "ಈ ಸೌಲಭ್ಯಗಳು ಕೆಲಸ ಮಾಡಬೇಕಾದರೆ ಒಂದು ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ.",
        "emailconfirmlink": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ಧೃಡೀಕರಿಸಿ",
        "invalidemailaddress": "ಈ ಇ-ಅಂಚೆ ವಿಳಾಸವು ಸರಿಯಾದ ಪ್ರಕಾರದಲ್ಲಿ ಇಲ್ಲದಿರುವುದರಿಂದ ಇದನ್ನು ಸ್ವೀಕಾರ ಮಾಡಲಾಗುವುದಿಲ್ಲ.\nದಯವಿಟ್ಟು ಸರಿಯಾದ ಪ್ರಕಾರದ ವಿಳಾಸವನ್ನು ಸೇರಿಸಿ ಅಥವ ಆ ಚೌಕವನ್ನು ಖಾಲಿ ಬಿಡಿ.",
+       "emaildisabled": "ಈ ಜಾಲತಾಣವು ಮಿಂಚಂಚೆ ಕಳುಹಿಸಲು ಸಾದ್ಯವಿಲ್ಲ.",
        "accountcreated": "ಖಾತೆಯನ್ನು ಸೃಷ್ಟಿಸಲಾಯಿತು",
        "accountcreatedtext": "$1 ಅವರ ಬಳಕೆದಾರ ಖಾತೆ ಸೃಷ್ಟಿಸಲ್ಪಟ್ಟಿದೆ.",
        "createaccount-title": "{{SITENAME}} ತಾಣಕ್ಕೆ ಬಳಕೆದಾರ ಖಾತೆ ಸೃಷ್ಟಿ ಮಾಡುವಿಕೆ",
        "createaccount-text": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸ ನೀಡಿ {{SITENAME}} ($4) ಅಲ್ಲಿ ಯಾರೊ \"$2\" ಹೆಸರಿನ ಖಾತೆಯೊಂದನ್ನು ತೆಗೆದಿದ್ದಾರೆ, ಮತ್ತು ಅದರ ಪ್ರವೇಶ ಪದ \"$3\".\nನೀವು ಲಾಗ್ ಇನ್ ಆಗಿ ನಿಮ್ಮ ಪ್ರವೇಶ ಪದವನ್ನು ಬದಲಾಯಿಸಬೇಕು.\n\nಆ ಖಾತೆ ತಪ್ಪಾಗಿ ತೆಗೆದಿದ್ದಲ್ಲಿ, ಈ ಸಂದೇಶವನ್ನು ನೀವು ಅಲಕ್ಷಿಸಬಹುದು.",
+       "login-abort-generic": "ನಿಮ್ಮ ಲಾಗಿನ್ ಪಲಪ್ರದವಾಗಿಲ್ಲ-ವಿಫಲವಾಗಿದೆ",
        "loginlanguagelabel": "ಭಾಷೆ: $1",
+       "createacct-another-realname-tip": "ಹೆಸರು ನೀಡುವುದು ಐಚ್ಛಿಕ. ನೀವು ಅದನ್ನು ನೀಡಿದಲ್ಲಿ ನಿಮ್ಮ ಕಾಣಿಕೆಗಳಿಗೆ ನಿಮಗೆ ಮನ್ನಣೆ ನೀಡಲಾಗುವುದು.",
+       "pt-login": "ಲಾಗ್ ಇನ್",
+       "pt-login-button": "ಲಾಗ್ ಇನ್",
+       "pt-createaccount": "ಹೊಸ ಖಾತೆ ತೆರೆಯಿರಿ",
+       "pt-userlogout": "ಲಾಗ್ ಔಟ್",
        "changepassword": "ಪ್ರವೇಶ ಪದ ಬದಲಾಯಿಸಿ",
        "resetpass_announce": "ನೀವು ತಾತ್ಕಾಲಿಕ ಇ-ಅಂಚೆ ಕೋಡ್ ಅನ್ನು ಉಪಯೋಗಿಸಿ ಲಾಗ್ ಇನ್ ಆಗಿರುವಿರಿ.\nಲಾಗ್ ಇನ್ ಪೂರ್ಣಗೊಳಿಸಲು ನೀವಿಲ್ಲ ಹೊಸ ಪ್ರವೇಶಪದ ನೀಡಬೇಕು:",
        "resetpass_header": "ಖಾತೆಯ ಪ್ರವೇಶಪದ ಬದಲಾಯಿಸಿ",
        "resetpass_submit": "ಪ್ರವೇಶ ಪದವನ್ನು ನಿಶ್ಚಯಿಸಿ ಲಾಗ್ ಇನ್ ಆಗಿ",
        "changepassword-success": "ನಿಮ್ಮ ಪ್ರವೇಶ ಪದವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬದಲಾಯಿಸಲಾಗಿದೆ. ಈಗ ನಿಮ್ಮನ್ನು ಲಾಗ್ ಇನ್ ಮಾಡಲಾಗುತ್ತಿದೆ...",
        "resetpass_forbidden": "ಪ್ರವೇಶಪದಗಳನ್ನು ಬದಲಾಯಿಸುವಂತಿಲ್ಲ.",
+       "resetpass-no-info": "ನೀವು ಈ ಪುಟವನ್ನು ನೇರತಲುಪಲು ಲಾಗಿನ್ ಆಗಿರುವುದು ಆವಶ್ಯಕ.",
        "resetpass-submit-loggedin": "ಪ್ರವೇಶಪದ ಬದಲಾಯಿಸು",
        "resetpass-submit-cancel": "ರದ್ದು ಮಾಡು",
+       "resetpass-recycled": "ದಯವಿಟ್ಟು ಈಗಿನ ಪ್ರವೇಶಪದದ ಬದಲು ಹೊಸಪ್ರವೇಶಪದ ಬದಲಾಯಿಸಿ ಮರುಚಾಲನೆ ನೀಡಿ.",
        "resetpass-temp-password": "ತಾತ್ಕಾಲಿಕ ಪ್ರವೇಶಪದ:",
+       "passwordreset": "ಪ್ರವೇಶಪದವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಿ.",
+       "passwordreset-legend": "ಪ್ರವೇಶಪದವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಿ.",
+       "passwordreset-username": "ಬಳಕೆದಾರ ಹೆಸರು:",
+       "passwordreset-domain": "ಕ್ಷೇತ್ರ:",
+       "passwordreset-email": "ಇ-ಮೇಲ್ ವಿಳಾಸ:",
+       "passwordreset-emailsent": "ಪ್ರವೇಶಪದವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಿದ ಮಿಂಚಂಚೆಯನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ.",
+       "passwordreset-emailsent-capture": "ಪ್ರವೇಶಪದವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಿದ ಮಿಂಚಂಚೆಯನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ,ಇದನ್ನು ಈ ಕೆಳಗೆ ತೋರಿಸಲಾಗಿದೆ.",
+       "changeemail": "ಮಿಂಚಂಚೆ ವಿಳಾಸವನ್ನು ಬದಲಾಯಿಸಿ",
+       "changeemail-no-info": "ನೀವು ಈ ಪುಟವನ್ನು ನೇರತಲುಪಲು ಲಾಗಿನ್ ಆಗಿರುವುದು ಆವಶ್ಯಕ.",
+       "changeemail-oldemail": "ಪ್ರಸ್ತುತ ಮಿಂಚಂಚೆ ವಿಳಾಸ:",
        "changeemail-newemail": "ಹೊಸ  ಇ-ಅಂಚೆ ವಿಳಾಸ:",
+       "changeemail-none": "(ಯಾವೂ ಇಲ್ಲ)",
        "changeemail-submit": "ಇಮೇಲ್ ಬದಲಾಯಿಸಿ",
        "changeemail-cancel": "ರದ್ದುಗೊಳಿಸಿ",
        "bold_sample": "ದಪ್ಪಗಿನ ಅಚ್ಚು",
        "previewnote": "'''ಇದು ಕೇವಲ ಮುನ್ನೋಟ.'''\nಪುಟವನ್ನು ಇನ್ನೂ ಉಳಿಸಲಾಗಿಲ್ಲ ಎಂಬುದನ್ನು ಮರೆಯದಿರಿ!",
        "continue-editing": "ಸಂಪಾದನೆಯ ಪ್ರದೇಶಕ್ಕೆ  ಹೋಗಿ",
        "editing": "'$1' ಲೇಖನ ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ",
+       "creating": "$1 ನ್ನು ಸೃಷ್ಟಿಸಲಾಗುತ್ತಿದೆ",
        "editingsection": "$1 (ವಿಭಾಗ) ಅನ್ನು ಸಂಪಾದಿಸುತ್ತಿರುವಿರಿ",
        "editingcomment": "$1 (ಹೊಸ ವಿಭಾಗ) ಸಂಪಾದಿಸಲಾಗುತ್ತಿದೆ",
+       "editconflict": "ಸಂಪಾದನಾ ಘರ್ಷಣೆ: $1",
        "explainconflict": "ನೀವು ಈ ಪುಟವನ್ನು ಸಂಪಾದಿಸಲು ಪ್ರಾರಂಭ ಮಾಡಿದ ಮೇಲೆ ಬೇರೊಬ್ಬರು ಯಾರೊ ಪುಟವನ್ನು ಬದಲಾಯಿಸಿದ್ದಾರೆ.\nಮೇಲಿನ ಬರವಣಗೆ ಚೌಕದಲ್ಲಿ ಪುಟದ ಪ್ರಸಕ್ತ ಸ್ವರೂಪ ತೋರಿಸಲಾಗಿದೆ.\nನೀವು ಮಾಡಿದ ಸಂಪಾದನೆಗಳನ್ನು ಕೆಳಗಿನ ಬರವಣಗೆ ಚೌಕದಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ.\nನಿಮ್ಮ ಸಂಪಾದನೆಗಳನ್ನು ಪ್ರಸಕ್ತ ಸ್ವರೂಪದ ಲೇಖನದಲ್ಲಿ ನೀವು ಸೇರಿಸಬೇಕಾಗುತ್ತದೆ.\nನೀವು ಪುಟವನ್ನು ಉಳಿಸಿದಾಗ '''ಮೇಲಿನ ಚೌಕದಲ್ಲಿ ನೀವು ಮಾಡುವ ಬದಲಾವಣೆಗಳನ್ನು ಮಾತ್ರ''' ಉಳಿಸಲಾಗುತ್ತದೆ.",
        "yourtext": "ನಿಮ್ಮ ಸಂಪಾದನೆ",
        "storedversion": "ಈಗಾಗಲೇ ಉಳಿಸಲಾಗಿರುವ ಆವೃತ್ತಿ",
        "hiddencategories": "ಈ ಪುಟವು {{PLURAL:$1|೧ ಗುಪ್ತ ವರ್ಗಕ್ಕೆ|$1 ಗುಪ್ತ ವರ್ಗಗಳಿಗೆ}} ಸೇರಿದೆ:",
        "nocreatetext": "{{SITENAME}} ಅಲ್ಲಿ ಹೊಸ ಪುಟಗಳನ್ನು ಸೃಷ್ಟಿಸಲು ಕೆಲವು ನಿಬಂಧನೆಗಳಿವೆ.\nನೀವು ಹಿಂದಿರುಗಿ ಆಗಲೇ ಅಸ್ಥಿತ್ವದಲ್ಲಿರುವ ಪುಟವೊಂದನ್ನು ಸಂಪಾದಿಸಿ, ಅಥವ [[Special:UserLogin|ಲಾಗ್ ಇನ್ ಆಗಿ ಅಥವ ಹೊಸ ಸದಸ್ಯರಾಗಿ]].",
        "nocreate-loggedin": "ಹೊಸ ಪುಟಗಳನ್ನು ಸೃಷ್ಟಿಸಲು ನಿಮಗೆ ಅನುಮತಿ ಇಲ್ಲ.",
-       "permissionserrors": "ಅನುಮತಿಗಳ ದೋಷಗಳು",
+       "permissionserrors": "ಅನುಮತಿ ದೋಷ",
        "permissionserrorstext": "ನಿಮಗೆ ಅದನ್ನು ಮಾಡಲು ಅನುಮತಿ ಇಲ್ಲ, ಅದಕ್ಕೆ {{PLURAL:$1|ಕಾರಣ|ಕಾರಣಗಳು}}:",
        "permissionserrorstext-withaction": "$2 ನಿಮಗೆ ಅನುಮತಿ ಇಲ್ಲ, ಅದಕ್ಕೆ {{PLURAL:$1|ಕಾರಣ|ಕಾರಣಗಳು}}:",
        "recreate-moveddeleted-warn": "'''ಎಚ್ಚರಿಕೆ: ಹಿಂದೆ ಅಳಿಸಲಾದ ಪುಟವನ್ನು ನೀವು ಮತ್ತೆ ಸೃಷ್ಟಿಸುತ್ತಿರುವಿರಿ.'''\n\nಈ ಪುಟವನ್ನು ಸಂಪಾದಿಸಲು ಸಮರ್ಪಕ ಕಾರಣವಿದೆಯೆ ಎಂದು ದಯವಿಟ್ಟು ಆಲೋಚಿಸಿ.\nಪುಟದ ಅಳಿಸುವಿಕೆ ದಿನಚರಿಯನ್ನು ಈ ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ:",
        "edit-gone-missing": "ಪುಟವನ್ನು ಪ್ರಸ್ತುತಗೊಳಿಸಲು ಸಾದ್ಯವಿಲ್ಲ, ಪುಟವು ಬಹುಶ: ಅಳಿಸಲ್ಪಟ್ಟಿರಬಹುದು",
        "edit-conflict": "ಸಂಪಾದನಾ ಘರ್ಷಣೆ.",
        "edit-no-change": "ನಿಮ್ಮ ಸಂಪಾದನೆಯನ್ನು ಕಡೆಗಣಿಸಲಾಗಿದೆ ಏಕೆಂದರೆ ಪಠ್ಯದಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆ ಮಾಡಲಾಗಿಲ್ಲ್ಲ",
+       "postedit-confirmation": "ನಿಮ್ಮ ಸಂಪಾದನೆಯನ್ನು ಉಳಿಸಲಾಗಿದೆ.",
        "edit-already-exists": "ಹೊಸ ಪುಟವನ್ನು ಸೃಷ್ಟಿಸಲಾಗಲಿಲ್ಲ.\nಅದು ಆಗಲೆ ಅಸ್ಥಿತ್ವದಲ್ಲಿದೆ.",
+       "content-model-javascript": "ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್",
+       "content-model-css": "ಸಿಎಸ್‍ಎಸ್",
        "expensive-parserfunction-warning": "ಎಚ್ಚರಿಕೆ: ಈ ಪುಟದಲ್ಲಿ ಬಹುತೇಕ ದುಬಾರಿ parser function ಕರೆಗಳಿವೆ.\n\nಈಗ {{PLURAL:$1|$1 ಕರೆ|$1 ಕರೆಗಳು}} ಇದ್ದು, $2 {{PLURAL:$2|ಕರೆಗಿಂತ|ಕರೆಗಳಿಗಿಂತ}} ಕಡಿಮೆ ಇರಬೇಕು.",
        "expensive-parserfunction-category": "ಬಹುತೇಕ ದುಬಾರಿ parser function ಕರೆಗಳಿರುವ ಪುಟಗಳು",
        "post-expand-template-inclusion-warning": "' ' 'ಎಚ್ಚರಿಕೆ:' ' ' ಪುಟದಲ್ಲಿ ಹಕುವ ಛಿತ್ರ ಥೊದಥು. \nಕೆಲವು ಟೆಂಪ್ಲೇಟುಗಳು ಹಕಲಗುದಿಲ್ಲ.",
        "revdelete-hide-comment": "ಸಂಪಾದನೆ ವಿವರಣೆ ಅಡಗಿಸು",
        "revdelete-hide-user": "ಸಂಪಾದಕರ ಬಳಕೆಯ ಹೆಸರು/IP ಅಡಗಿಸು",
        "revdelete-hide-restricted": "ಈ ನಿಬಂಧನೆಗಳನ್ನು ನಿರ್ವಾಹಕರಿಗೂ ಅನ್ವಯಿಸು ಮತ್ತು ಈ interface ಗೆ ಬೀಗ ಹಾಕು",
+       "revdelete-radio-same": "(ಬದಲಾಯಿಸಬೇಡಿ)",
        "revdelete-radio-set": "ಹೌದು",
        "revdelete-radio-unset": "ಇಲ್ಲ",
        "revdelete-suppress": "ನಿರ್ವಾಹಕರಿಂದ ಮತ್ತಿತರರಿಂದ ಬಂದ ಮಾಹಿತಿಯನ್ನು ಅಡಗಿಸು",
        "powersearch-legend": "ಮುಂದುವರೆದ ಹುಡುಕಾಟ",
        "powersearch-ns": "ಈ ಪುಟ ಪ್ರಬೇಧಗಳಲ್ಲಿ ಹುಡುಕು:",
        "powersearch-redir": "ಪುನರ್ನಿರ್ದೇಶನಗಳ ಪಟ್ಟಿ",
+       "powersearch-togglelabel": "ಪರೀಕ್ಷಿಸಿ:",
        "powersearch-toggleall": "ಎಲ್ಲಾ",
        "powersearch-togglenone": "ಯಾವುದೂ ಇಲ್ಲ",
        "search-external": "ಬಾಹ್ಯ ಹುಡುಕಾಟ",
        "prefs-skin": "ಚರ್ಮ",
        "skin-preview": "ಮುನ್ನೋಟ",
        "datedefault": "ಯಾವುದೇ ಪ್ರಾಶಸ್ತ್ಯ ಇಲ್ಲ",
+       "prefs-user-pages": "ಸದಸ್ಯರ ಪುಟಗಳು",
        "prefs-personal": "ಬಳಕೆದಾರರ ಬಗ್ಗೆ",
        "prefs-rc": "ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳು",
        "prefs-watchlist": "ವೀಕ್ಷಣಾಪಟ್ಟಿ",
        "prefs-watchlist-edits-max": "ಗರಿಷ್ಠ ಸಂಖ್ಯೆ: ೧೦೦೦",
        "prefs-misc": "ಇತರೆ",
        "prefs-resetpass": "ಪ್ರವೇಶಪದ ಬದಲಾಯಿಸಿ",
+       "prefs-changeemail": "ಮಿಂಚಂಚೆ ವಿಳಾಸವನ್ನು ಬದಲಾಯಿಸಿ",
+       "prefs-setemail": "ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ಸ್ಥಾಪಿಸಿ",
        "prefs-email": "ಇ-ಅಂಚೆ ಇಚ್ಛೆಗಳು",
        "saveprefs": "ಉಳಿಸಿ",
        "prefs-editing": "ಸಂಪಾದನೆ",
        "rows": "ಸಾಲುಗಳು:",
+       "columns": "ಸಾಲುಗಳು:",
        "searchresultshead": "ಹುಡುಕು",
+       "stub-threshold-disabled": "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.",
        "recentchangesdays": "ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳಲ್ಲಿ ತೋರಿಸಬೇಕಾದ ದಿನಗಳು:",
        "recentchangescount": "ಇತ್ತೀಚೆಗಿನ ಬದಲಾವಣೆಗಳಲ್ಲಿರುವ ವಿಷಯಗಳ ಸಂಖ್ಯೆ",
        "savedprefs": "ನಿಮ್ಮ ಇಚ್ಛೆಗಳನ್ನು ಉಳಿಸಲಾಯಿತು.",
        "timezoneregion-indian": "ಹಿಂದೂ ಮಹಾಸಾಗರ",
        "timezoneregion-pacific": "ಪೆಸಿಫಿಕ್ ಮಹಾಸಾಗರ",
        "allowemail": "ಬೇರೆ ಸದಸ್ಯರಿಂದ ಈ-ಮೈಲ್‍ಗಳನ್ನು ಸ್ವೀಕರಿಸು",
+       "prefs-searchoptions": "ಹುಡುಕು",
        "prefs-namespaces": "ನಾಮವರ್ಗಗಳು",
        "defaultns": "ಮೂಲಸ್ಥಿತಿಯಲ್ಲಿ ಈ ಪುಟಪ್ರಬೇಧಗಳಲ್ಲಿ ಹುಡುಕಿ:",
        "default": "ಮೂಲಸ್ಥಿತಿ",
        "yournick": "ಸಹಿ:",
        "badsiglength": "ನಿಮ್ಮ ಅಡ್ಡಹೆಸರು ತುಂಬಾ ಉದ್ದವಾಗಿದೆ.\nಅದು $1 {{PLURAL:$1|ಅಕ್ಷರಕ್ಕಿಂತ|ಅಕ್ಷರಗಳಿಗಿಂತ}} ಕಡಿಮೆ ಇರಬೇಕು.",
        "yourgender": "ಲಿಂಗ:",
+       "gender-unknown": "ನಾನು ಹೇಳಲಿಚ್ಛಿಸುವುದಿಲ್ಲ",
        "gender-male": "ಗಂಡಸು",
        "gender-female": "ಸ್ತ್ರೀ",
        "email": "ಇ-ಅಂಚೆ",
        "prefs-help-realname": "ನಿಜ ಹೆಸರು ನೀಡುವುದು ಐಚ್ಛಿಕ. ನೀವು ಅದನ್ನು ನೀಡಿದಲ್ಲಿ ನಿಮ್ಮ ಕಾಣಿಕೆಗಳಿಗೆ ನಿಮಗೆ ಮನ್ನಣೆ ನೀಡಲಾಗುವುದು.",
        "prefs-help-email": "ಇ-ಅಂಚೆ ವಿಳಾಸ ಕಡ್ಡಾಯವಲ್ಲ, ಆದರೆ ನೀವು ಅದನ್ನು ನೀಡಿದರೆ ನೀವು ನಿಮ್ಮ ಪ್ರವೇಶ ಪದವನ್ನು ಮರೆತರೆ ಅದನ್ನು ನಿಮಗೆ ಇ-ಅಂಚೆಯಿಂದ ಕಳುಹಿಸಿಬಹುದು.",
        "prefs-help-email-required": "ಇ-ಅಂಚೆ ವಿಳಾಸ ಬೇಕಾಗಿದೆ.",
+       "prefs-info": "ಮೂಲಭೂತ ಮಾಹಿತಿ",
        "prefs-i18n": "ಅಂತರರಾಷ್ಟ್ರೀಕರಣ",
        "prefs-signature": "ಸಹಿ",
+       "prefs-dateformat": "ದಿನಾಂಕ ಶೈಲಿ",
        "prefs-advancedediting": "ಪರಿಣತ ಇಚ್ಛೆಗಳು",
+       "prefs-editor": "ಸಂಪಾದಕ",
+       "prefs-preview": "ಮುನ್ನೋಟ",
        "prefs-advancedrc": "ಪರಿಣತ ಇಚ್ಛೆಗಳು",
        "prefs-advancedrendering": "ಪರಿಣತ ಇಚ್ಛೆಗಳು",
        "prefs-advancedsearchoptions": "ಪರಿಣತ ಇಚ್ಛೆಗಳು",
        "prefs-displayrc": "ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು",
        "prefs-displaysearchoptions": "ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು",
        "prefs-displaywatchlist": "ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು",
+       "email-address-validity-valid": "ಮಿಂಚಂಚೆ ವಿಳಾಸವು ಸಿಂಧುವೆಂದು ತೋರುತ್ತದೆ",
+       "email-address-validity-invalid": "ಸಿಂಧುವಾದ ಮಿಂಚಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ",
        "userrights": "ಬಳಕೆದಾರ ಹಕ್ಕುಗಳ ನಿರ್ವಹಣೆ",
        "userrights-lookup-user": "ಬಳಕೆದಾರ ಗುಂಪುಗಳನ್ನು ನಿರ್ವಹಿಸು",
        "userrights-user-editname": "ಬಳಕೆದಾರ ಹೆಸರನ್ನು ಸೂಚಿಸಿ:",
        "right-read": "ಪುಟಗಳನ್ನು ಓದಿ",
        "right-edit": "ಪುಟಗಳನ್ನು ಬದಲಾಯಿಸಿ",
        "right-createpage": "ಪುಟಗಳನ್ನು ಸೃಷ್ಟಿಸಿ (ಚರ್ಚಾ ಪುಟಗಳಲ್ಲಿ ಇಲ್ಲದ್ದು)",
+       "right-createtalk": "ಚರ್ಚಾ ಪುಟಗಳನ್ನು ಸೃಷ್ಟಿಸು",
+       "right-createaccount": "ಹೊಸ ಬಳಕೆದಾರ ಖಾತೆಯನ್ನು ರಚಿಸಿ",
+       "right-move": "ಪುಟಗಳನ್ನು ಸ್ಥಳಾಂತರಿಸಿ",
+       "right-move-subpages": "ಪುಟಗಳನ್ನು ಅವುಗಳ ಉಪಪುಟಗಳೊಂದಿಗೆ ಸ್ಥಾಳಾಂತರಿಸಿ",
+       "right-movefile": "ಕಡತಗಳನ್ನು ಸ್ಥಳಾಂತರಿಸಿ",
        "right-upload": "ಕಡತಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡು",
        "right-reupload": "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫೈಲ್ ಗಳ ಕಡತಗಳ ಮೇಲೆ ಬರೆಯಿರಿ",
        "right-reupload-own": "ವತಃ ತಾವೇ ನಕಲೆರಿಸಿರುವ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫೈಲ್ ಗಳ ಕಡತಗಳ ಮೇಲೆ ಬರೆಯಿರಿ",
        "right-deletedtext": "ಆಳಿಸಿದ ಪಠ್ಯ ಮತ್ತು ಅಳಿಸಿದ ಆವೃತ್ತಿಗಳ ನಡುವಿನ ಬದಲಾವಣೆಗಳನ್ನು ನೋಡಿ",
        "right-browsearchive": "ಅಳಿಸಲಾಗಿರುವ ಪುಟಗಳನ್ನು ಹುಡುಕಿ",
        "right-undelete": "ಆಳಿಸಿದ ಪುಟವನ್ನು ಉಳಿಸಿ",
+       "right-block": "ಬೇರೆ ಬಳಕೆದಾರರು ಸಂಪಾದಿಸದಂತೆ ನಿರ್ಬಂಧಿಸು",
+       "right-blockemail": "ಬಳಕೆದಾರನು ಇ-ಅಂಚೆ ಕಳುಹಿಸುವುದನ್ನು ತಡೆಗಟ್ಟು",
+       "right-import": "ಬೇರೆ ವಿಕಿಗಳಿಂದ ಪುಟಗಳನ್ನು ಆಮದು ಮಾಡು",
        "right-unwatchedpages": "ಪಹರೆಯಿಲ್ಲದ ಪುಟಗಳ ಪಟ್ಟಿಯನ್ನು ವೀಕ್ಷಿಸಿ",
        "right-mergehistory": "ಪುಟಗಳು ಇತಿಹಾಸದಲ್ಲಿ ವಿಲೀನಗೊಳಿಸಿ",
        "right-userrights": "ಎಲ್ಲಾ ಬಳಕೆದಾರ ಹಕ್ಕುಗಳನ್ನು ತಿದ್ದುಪಡಿಸಿ",
        "action-delete": "ಈ ಪುಟವನ್ನು ಅಳಿಸು",
        "action-deleterevision": "ಈ ಆವೃತ್ತಿಯನ್ನು ಅಳಿಸು",
        "action-browsearchive": "ಅಳಿಸಲಾಗಿರುವ ಪುಟಗಳನ್ನು ಹುಡುಕು",
+       "action-undelete": "ಈ ಪುಟವನ್ನು ಅಳಿಸಬೇಡ",
        "action-block": "ಈ ಸದಸ್ಯರನ್ನು ಸಂಪಾದಿಸಲು ಆಗದಂತೆ ನಿರ್ಭಂಧಿಸಿ",
        "action-protect": "ಈ ಪುಟದ ಸಂರಕ್ಷಣೆ ಮಟ್ಟಗಳನ್ನು ಬದಲಾಯಿಸಲು",
+       "action-import": "ಇನ್ನೊಂದು ವಿಕಿಯಿಂದ ಪುಟಗಳನ್ನು ಆಮದು ಮಾಡು",
        "action-unwatchedpages": "ಪಹರೆಯಿಲ್ಲದ ಪುಟಗಳ ಪಟ್ಟಿಯನ್ನು ವೀಕ್ಷಿಸಿ",
        "action-userrights": "ಎಲ್ಲಾ ಬಳಕೆದಾರ ಹಕ್ಕುಗಳನ್ನು ತಿದ್ದುಪಡಿಸಿ",
+       "action-userrights-interwiki": "ಬೇರೆ ವಿಕಿಗಳ ಮೇಲೆ  ಎಲ್ಲಾ ಬಳಕೆದಾರ ಹಕ್ಕುಗಳನ್ನು ತಿದ್ದುಪಡಿಸಿ",
        "action-sendemail": "ಇ-ಅಂಚೆ ಕಳುಹಿಸಿ",
+       "action-editmywatchlist": "ನಿಮ್ಮ ನಿಗಾಪುಟವನ್ನು ಸಂಪಾದಿಸಿ",
+       "action-viewmywatchlist": "ನಿಮ್ಮ ನಿಗಾಪುಟವನ್ನು ನೋಡಿ",
+       "action-viewmyprivateinfo": "ನಿಮ್ಮ ಖಾಸಗಿ ಮಾಹಿತಿಗಳನ್ನು ನೋಡಿ",
+       "action-editmyprivateinfo": "ನಿಮ್ಮ ಖಾಸಗಿ ಮಾಹಿತಿಯನ್ನು ಮಾರ್ಪಡಿಸಿ",
        "nchanges": "$1 {{PLURAL:$1|ಬದಲಾವಣೆ|ಬದಲಾವಣೆಗಳು}}",
+       "enhancedrc-history": "ಇತಿಹಾಸ",
        "recentchanges": "ಇತ್ತೀಚೆಗಿನ ಬದಲಾವಣೆಗಳು",
        "recentchanges-legend": "ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳ ಆಯ್ಕೆಗಳು",
        "recentchanges-summary": "ವಿಕಿಗೆ ಮಾಡಲ್ಪಟ್ಟ ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳನ್ನು ಈ ಪುಟದಲ್ಲಿ ನೀವು ಕಾಣಬಹುದು.",
        "rcnotefrom": "'''$2''' ಇಂದ ಆಗಿರುವ ಬದಲಾವಣೆಗಳು ಕೆಳಗಿವೆ (ಕೊನೆಯ '''$1'''ರವರೆಗೆ ತೋರಿಸಲಾಗಿದೆ).",
        "rclistfrom": "$1 ಇಂದ ಪ್ರಾರಂಭಿಸಿ ಮಾಡಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ನೋಡಿ",
        "rcshowhideminor": "ಚಿಕ್ಕಪುಟ್ಟ ಬದಲಾವಣೆಗಳನ್ನು $1",
+       "rcshowhideminor-show": "ತೊರಿಸಿ",
+       "rcshowhideminor-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhidebots": "ಬಾಟ್‍ಗಳನ್ನು $1",
+       "rcshowhidebots-show": "ತೊರಿಸಿ",
+       "rcshowhidebots-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhideliu": "ಲಾಗ್-ಇನ್ ಆಗಿರುವ ಸದಸ್ಯರು $1",
+       "rcshowhideliu-show": "ತೊರಿಸಿ",
+       "rcshowhideliu-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhideanons": "ಅನಾಮಧೇಯ ಸದಸ್ಯರು $1",
+       "rcshowhideanons-show": "ತೊರಿಸಿ",
+       "rcshowhideanons-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhidepatr": "$1 ಪರೀಕ್ಷಿತ ಸಂಪಾದನೆಗಳು",
+       "rcshowhidepatr-show": "ತೊರಿಸಿ",
+       "rcshowhidepatr-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhidemine": "ನನ್ನ ಸಂಪಾದನೆಗಳನ್ನು $1",
+       "rcshowhidemine-show": "ತೊರಿಸಿ",
+       "rcshowhidemine-hide": "ಮರೆ ಮಾಡಿ",
        "rclinks": "ಕೊನೆಯ $2 ದಿನಗಳಲ್ಲಿ ಮಾಡಿದ $1 ಕೊನೆಯ ಬದಲಾವಣೆಗಳನ್ನು ನೋಡಿ <br />$3",
        "diff": "ವ್ಯತ್ಯಾಸ",
        "hist": "ಇತಿಹಾಸ",
        "filename": "ಕಡತದ ಹೆಸರು",
        "filedesc": "ಸಾರಾಂಶ",
        "fileuploadsummary": "ತಾತ್ಪರ್ಯ:",
+       "filereuploadsummary": "ಕಡತ ಬದಲಾವಣೆಗಳು:",
        "filestatus": "ಕೃತಿಸ್ವಾಮ್ಯತೆಯ ಸ್ಥಿತಿ:",
        "filesource": "ಆಕರ:",
        "ignorewarning": "ಎಚ್ಚರಿಕೆಯನ್ನು ಕಡೆಗಣಿಸಿ ಫೈಲನ್ನು ಉಳಿಸಿ",
        "filetype-banned-type": "'''\".$1\"''' ಒಂದು ನಿರ್ಬಂಧಿತ ಫೈಲಿನ ಮಾದರಿ.  ನಿರ್ಬಂಧನೆಯಿಲ್ಲದ ಫೈಲಿನ {{PLURAL:$3|ಮಾದರಿಯು|ಮಾದರಿಗಳು}} $2.",
        "filetype-missing": "ಈ ಫೈಲಿಗೆ ಉಪನಾಮ (extension ಉದಾ \".jpg\") ಇಲ್ಲ.",
        "empty-file": "ನೀವು ಸಮರ್ಪಿಸಿದ ಕಡತವು ಖಾಲಿಯಾಗಿತ್ತು.",
+       "file-too-large": "ನೀವು ಸಮರ್ಪಿಸಿದ ಕಡತವು ಬಹಳ ಉದ್ದವಾಗಿತ್ತು.",
+       "filename-tooshort": "ಕಡತದ ಹೆಸರು ತೀರಾ ಚಿಕ್ಕದಾಯಿತು.",
+       "filetype-banned": "ಈ ಮಾದರಿಯ ಕಡತವನ್ನು ನಿಷೇಧಿಸಲಾಗಿದೆ.",
+       "verification-error": "ಈ ಕಡತವು ಕಡತ ಪರೀಕ್ಷೆಯಲ್ಲಿ ತೇರ್ಗಡೆಯಾಗಿಲ್ಲ.",
+       "illegal-filename": "ಈ ಕಡತದ ಹೆಸರನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ.",
+       "overwrite": "ಪ್ರಸ್ತುತದಲ್ಲಿರುವ ಕಡತವನ್ನು ಪುನರ್ಲೇಖಿಸಲು ಅನುಮತಿ ಇಲ್ಲ.",
        "unknown-error": "ಒಂದು ಅಜ್ಞಾತ ದೋಷ ಸಂಭವಿಸಿದೆ.",
        "tmp-create-error": "ತಾತ್ಕಾಲಿಕ ಕಡತವನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ",
        "tmp-write-error": "ತಾತ್ಕಾಲಿಕ ಕಡತವನ್ನು ಬರೆಯುವಾಗ  ದೋಷ ಉಂಟಾಗಿದೆ",
        "watchthisupload": "ಈ ಪುಟವನ್ನು ವೀಕ್ಷಿಸಿ",
        "filewasdeleted": "ಈ ಹೆಸರಿನ ಫೈಲು ಮುಂಚೆ ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗಿ ಅದನ್ನು ಆನಂತರ ಅಳಿಸಲಾಗಿತ್ತು.\nಇದನ್ನು ಮತ್ತೊಮ್ಮೆ ಅಪ್ಲೋಡ್ ಮಾಡುವ ಮುನ್ನ ನೀವು $1 ಅನ್ನು ಪರೀಕ್ಷಿಸಬೇಕು.",
        "upload-success-subj": "ಯಶಸ್ವಿ ಅಪ್ಲೋಡ್",
+       "upload-warning-subj": "ಅಪ್ಲೋಡ್ ಎಚ್ಚರಿಕೆ",
        "upload-file-error": "ಆಂತರಿಕ ದೋಷ",
        "upload-file-error-text": "ಸರ್ವರ್‍ನಲ್ಲಿ ತಾತ್ಕಾಲಿಕ ಫೈಲನ್ನು ಸೃಷ್ಟಿಸುವಲ್ಲಿ ಒಂದು ಆಂತರಿಕ ದೋಷವಾಯಿತು.\nದಯವಿಟ್ಟು ವ್ಯವಸ್ಥಾಪಕರೊಬ್ಬರನ್ನು ಸಂಪರ್ಕಿಸಿ.",
        "upload-misc-error": "ತಿಳಿದಿಲ್ಲದ ಅಪ್ಲೋಡ್ ದೋಷ",
+       "backend-fail-delete": "\"$1\" ಫೈಲ್ ಅನ್ನು ಅಳಿಸಲಾಗಲಿಲ್ಲ.",
+       "backend-fail-alreadyexists": " \"$1\" ಕಡತವು ಪ್ರಸ್ತುತವಿದೆ.",
+       "backend-fail-copy": "\"$1\" ಫೈಲ್ ಅನ್ನು \"$2\" ಗೆ ನಕಲಿಸಲಾಗಲಿಲ್ಲ.",
+       "backend-fail-move": "\"$1\"ನ್ನು\"$2\" ರೊಂದಿಗೆ ಸೇರಿಸಲಾಗಿಲ್ಲ",
+       "backend-fail-opentemp": "ತಾತ್ಕಾಲಿಕ ಕಡತವನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ",
+       "backend-fail-writetemp": "ತಾತ್ಕಾಲಿಕ ಕಡತವನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ",
+       "backend-fail-closetemp": "ತಾತ್ಕಾಲಿಕ ಕಡತವನ್ನು ಮುಚ್ಚಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ.",
+       "backend-fail-read": " \"$1\"ಕಡತವನ್ನು ಓದಲಾಗಲಿಲ್ಲ.",
+       "backend-fail-create": " \"$1\"ಕಡತದಲ್ಲಿ ಬರೆಯಲಾಗಲಿಲ್ಲ.",
        "zip-file-open-error": "ZIP ಚೆಕ್ಗಳಿಗೆ ಕಡತವನ್ನು ತೆರೆಯುವಾಗ ಒಂದು ದೋಷ ಸಂಭವಿಸಿದೆ.",
        "zip-wrong-format": "ಸೂಚಿಸಲಾದ ಕಡತ ZIP ಫೈಲ್ ಅಲ್ಲ.",
        "uploadstash-badtoken": "ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸುವಾಗ ನಿಮ್ಮ ಸಂಪಾದನೆಯನ್ನು ರುಜುವಾತುಗಳು ಅವಧಿ ಬಹುಶಃ, ಯಶಸ್ವಿಯಾಗಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.",
        "listfiles-summary": "ಈ ವಿಶೇಷ ಪುಟವು ಎಲ್ಲಾ ಅಪ್ಲೋಡ್ ಆಗಿರುವ ಫೈಲುಗಳನ್ನು ತೋರುತ್ತದೆ.\nವಸ್ತುಸ್ಥಿತಿಯಲ್ಲಿ, ಕೊನೆಯದಾಗಿ ಅಪ್ಲೋಡ್ ಆಗಿರುವ ಫೈಲುಗಳು ಪಟ್ಟಿಯ ಪ್ರಾರಂಭದಲ್ಲಿ ಕಾಣುತ್ತವೆ.\nಪಟ್ಟಿಯ ವಿಭಾಗದ ತಲೆಬರಹವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದರೆ ಪಟ್ಟಿಯ ರಚನೆ ಬದಲಾಗುತ್ತದೆ.",
        "imgfile": "ಫೈಲು",
        "listfiles": "ಚಿತ್ರಗಳ ಪಟ್ಟಿ",
+       "listfiles_thumb": "ಕಿರುನೋಟ",
        "listfiles_date": "ದಿನಾಂಕ",
        "listfiles_name": "ಹೆಸರು",
        "listfiles_user": "ಸದಸ್ಯ",
        "listfiles_size": "ಗಾತ್ರ",
        "listfiles_description": "ವಿವರ",
        "listfiles_count": "ಆವೃತ್ತಿಗಳು",
+       "listfiles-latestversion": "ಪ್ರಸಕ್ತ ಆವೃತ್ತಿ",
+       "listfiles-latestversion-yes": "ಹೌದು",
+       "listfiles-latestversion-no": "ಇಲ್ಲ",
        "file-anchor-link": "ಚಿತ್ರ",
        "filehist": "ಕಡತದ ಇತಿಹಾಸ",
        "filehist-help": "ದಿನ/ಕಾಲ ಒತ್ತಿದರೆ ಆ ಸಮಯದಲ್ಲಿ ಈ ಕಡತದ ವಸ್ತುಸ್ಥಿತಿ ತೋರುತ್ತದೆ.",
        "filehist-datetime": "ದಿನ/ಕಾಲ",
        "filehist-thumb": "ಕಿರುನೋಟ",
        "filehist-thumbtext": "$1 ವರೆಗಿನ ಆವೃತ್ತಿಯ ಕಿರುನೋಟ",
+       "filehist-nothumb": "ಕಿರುನೋಟ ಇಲ್ಲ",
        "filehist-user": "ಸದಸ್ಯ",
        "filehist-dimensions": "ಆಯಾಮಗಳು",
        "filehist-filesize": "ಫೈಲಿನ ಗಾತ್ರ",
        "filepage-nofile": "ಈ ಹೆಸರಿನ ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ",
        "filepage-nofile-link": "ಈ ಹೆಸರಿನ ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ ಆದರೆ ನೀವು ಇದನ್ನು [$1 ನಕಲೆರಿಸಬಹುದು ]",
        "uploadnewversion-linktext": "ಈ ಫೈಲಿನ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ",
+       "upload-disallowed-here": "ನೀವು ಈ ಕಡತವನ್ನು ಪುನರ್ಲೇಖಿಸಲು ಸಾದ್ಯವಿಲ್ಲ.",
        "filerevert": "$1 ಹಿಂದಿನಂತಾಗಿಸು",
        "filerevert-comment": "ಕಾರಣ:",
        "filerevert-submit": "ಹಿಂದಿನಂತಾಗಿಸು",
        "unusedtemplateswlh": "ಇತರ ಕೊಂಡಿಗಳು",
        "randompage": "ಯಾದೃಚ್ಛಿಕ ಪುಟ",
        "randompage-nopages": "ಈ ಪುಟಪ್ರಬೇಧದಲ್ಲಿ ಯಾವ ಪುಟವೂ ಇಲ್ಲ.",
+       "randomincategory-selectcategory-submit": "ಹೋಗು",
        "randomredirect": "ಯದೃಚ್ಛಿಕ ಪುನರ್ನಿರ್ದೇಶಿತ ಪುಟ",
        "randomredirect-nopages": "ಈ ಪುಟಪ್ರಬೇಧದಲ್ಲಿ ಯಾವ ಪುನರ್ನಿರ್ದೇಶನಗಳೂ ಇಲ್ಲ.",
        "statistics": "ಅಂಕಿ ಅಂಶಗಳು",
        "statistics-header-hooks": "ಇತರ ಅಂಕಿಅಂಶಗಳು",
        "statistics-articles": "ಲೇಖನ ಪುಟ",
        "statistics-pages": "ಪುಟಗಳು",
+       "statistics-files": "ಅಪ್ಲೋಡ್ ಆಗಿರುವ ಫೈಲುಗಳು",
+       "statistics-edits-average": "ಪುಟದ ಸರಾಸರಿ ಮಾರ್ಪಡಿಕೆಗಳು",
        "statistics-views-total": "ಒಟ್ಟು ವೀಕ್ಷಣೆಗಳು",
+       "statistics-users-active": "ಸಕ್ರಿಯ ಬಳಕೆದಾರರು",
        "statistics-mostpopular": "ಅತ್ಯಂತ ಹೆಚ್ಚು ವೀಕ್ಷಿತ ಪುಟಗಳು",
+       "pageswithprop-submit": "ಹೋಗು",
        "doubleredirects": "ಮರುಕಳಿಸಿದ ಪುನರ್ನಿರ್ದೇಶನಗಳು",
        "brokenredirects": "ಮುರಿದ ರಿಡೈರೆಕ್ಟ್‌ಗಳು",
        "brokenredirectstext": "ಕೆಳಗಿನ ರಿಡೈರೆಕ್ಟುಗಳು ವಿಕಿಯಲ್ಲಿ ಇಲ್ಲದ ಪುಟಗಳಿಗೆ ಸಂಪರ್ಕ ಹೊಂದಿವೆ:",
        "mostlinkedtemplates": "ಅತ್ಯಂತ ಹೆಚ್ಚು ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿರುವ ಟೆಂಪ್ಲೇಟುಗಳು",
        "mostcategories": "ಅತ್ಯಂತ ಹೆಚ್ಚು ವರ್ಗಗಳನ್ನು ಹೊಂದಿರುವ ಪುಟಗಳು",
        "mostimages": "ಅತಿ ಹೆಚ್ಚು ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿರುವ ಫೈಲುಗಳು",
+       "mostinterwikis": "ಅತ್ಯಂತ ಹೆಚ್ಚು ಅಂತರ್ವಿಕಿಗಳನ್ನು ಹೊಂದಿದ ಪುಟಗಳು",
        "mostrevisions": "ಅತ್ಯಂತ ಹೆಚ್ಚು ಬದಲಾವಣೆಗಳಾಗಿವು ಪುಟಗಳು",
        "prefixindex": "ಈ ಪೂರ್ವನಾಮವನ್ನು ಹೊಂದಿರುವ ಎಲ್ಲಾ ಪುಟಗಳು",
        "shortpages": "ಪುಟ್ಟ ಪುಟಗಳು",
        "deadendpagestext": "ಈ ಕೆಳಗಿನ ಪುಟಗಳು {{SITENAME}} ಅಲ್ಲಿ ಇರುವ ಇತರ ಪುಟಗಳಿಗೆ ಕೊಂಡಿಯನ್ನು ಹೊಂದಿಲ್ಲ.",
        "protectedpages": "ಸಂರಕ್ಷಿತ ಪುಟಗಳು",
        "protectedpages-indef": "ಅನಿಯಮಿತ ಸಂರಕ್ಷಣೆಗಳು ಮಾತ್ರ",
+       "protectedpages-noredirect": "ಪುನರ್ನಿದೇಶನಗಳನ್ನು ಅಡಗಿಸಿ",
        "protectedpagesempty": "ಈ ನಿಯಮಾವಳಿಗಳಲ್ಲಿ ಯಾವ ಪುಟವೂ ಸಂರಕ್ಷಿತವಾಗಿಲ್ಲ.",
+       "protectedpages-page": "ಪುಟ",
+       "protectedpages-reason": "ಕಾರಣ",
+       "protectedpages-unknown-timestamp": "ಅಜ್ಞಾತ",
+       "protectedpages-unknown-performer": "ಅಜ್ಞಾತ ಬಳಕೆದಾರ",
        "protectedtitles": "ಸಂರಕ್ಷಿತ ಶೀರ್ಷಿಕೆಗಳು",
+       "protectedtitlesempty": "ಈ ನಿಯಮಾವಳಿಗಳಲ್ಲಿ ಯಾವ ಪುಟವೂ ಸಂರಕ್ಷಿತವಾಗಿಲ್ಲ.",
        "listusers": "ಸದಸ್ಯರ ಪಟ್ಟಿ",
+       "usereditcount": "$1{{PLURAL:$1|ಸಂಪಾದನೆ|ಸಂಪಾದನೆಗಳು}}",
        "usercreated": "$1 ರಂದು $2 ಸಮಯಕ್ಕೆ {{GENDER:$3|ಸೃಷ್ಟಿಸಿದರು}}",
        "newpages": "ಹೊಸ ಪುಟಗಳು",
        "newpages-username": "ಬಳಕೆದಾರ ಹೆಸರು:",
        "allinnamespace": "ಎಲ್ಲಾ ಪುಟಗಳೂ ($1 ಪುಟಪ್ರಬೇಧ)",
        "allpagessubmit": "ಹೋಗು",
        "allpagesprefix": "ಈ ಪೂರ್ವಪದವನ್ನು ಹೊಂದಿರುವ ಪುಟಗಳನ್ನು ತೋರಿಸು:",
+       "allpagesbadtitle": "ನೀವು ಕೋರಿದ ಪುಟದ ಶೀರ್ಷಿಕೆ ಸಿಂಧುವಲ್ಲದ್ದು ಅಥವ ಖಾಲಿ ಅಥವ ಸರಿಯಾದ ಕೊಂಡಿಯಲ್ಲದ ಅಂತರ-ಭಾಷೆ/ಅಂತರ-ವಿಕಿ ಸಂಪರ್ಕವಾಗಿದೆ.\nಅದರಲ್ಲಿ ಒಂದು ಅಥವ ಹೆಚ್ಚು ಶೀರ್ಷಿಕೆಯಲ್ಲಿ ಬಳಸಲು ನಿಷಿದ್ಧವಾಗಿರುವ ಅಕ್ಷರಗಳು ಇರಬಹುದು.",
        "allpages-bad-ns": "{{SITENAME}} ಅಲ್ಲಿ \"$1\" ಪುಟಪ್ರಬೇಧ ಇಲ್ಲ.",
+       "allpages-hide-redirects": "ಪುನರ್ನಿದೇಶನಗಳನ್ನು ಅಡಗಿಸಿ",
        "categories": "ವರ್ಗಗಳು",
        "categoriespagetext": "ಈ ಕೆಳಗಿನ ವರ್ಗಗಳು ಪುಟಗಳನ್ನು ಅಥವ ಮೀಡಿಯಗಳನ್ನು ಹೊಂದಿವೆ.\n[[Special:UnusedCategories|ಅನುಪಯೋಗಿತ ವರ್ಗಗಳು]] ಇಲ್ಲಿ ತೋರಲಾಗಿಲ್ಲ.\nಇದನ್ನೂ ನೋಡಿ: [[Special:WantedCategories|ಬೇಕಾಗಿರುವ ವರ್ಗಗಳು]].",
+       "categoriesfrom": "ಇದರಿಂದ ಪ್ರಾರಂಭವಾಗುವ ವರ್ಗಗಳನ್ನು ತೋರಿಸು:",
        "special-categories-sort-count": "ಎಣಿಕೆಯ ಪ್ರಕಾರ ಜೋಡಿಸು",
        "special-categories-sort-abc": "ಅಕ್ಷರಮಾಲೆಯ ಪ್ರಕಾರ ಜೋಡಿಸು",
        "sp-deletedcontributions-contribs": "ಕಾಣಿಕೆಗಳು",
        "listgrouprights-helppage": "Help:ಗುಂಪು ಹಕ್ಕುಗಳು",
        "listgrouprights-members": "(ಸದಸ್ಯರ ಪಟ್ಟಿ)",
        "listgrouprights-addgroup-all": "ಎಲ್ಲಾ ಗುಂಪುಗಳನ್ನು ಸೇರಿಸಿ",
+       "listgrouprights-namespaceprotection-namespace": "ನಾಮವರ್ಗ",
+       "trackingcategories-name": "ಸಂದೇಶದ ಹೆಸರು",
+       "trackingcategories-nodesc": "ಯಾವುದೇ ವಿವರಣೆಯಿಲ್ಲ.",
        "mailnologin": "ಕಳುಹಿಸುವ ವಿಳಾಸ ಇಲ್ಲ",
        "mailnologintext": "ಇತರ ಬಳಕೆದಾರರಿಗೆ ಇ-ಅಂಚೆ ಕಳುಹಿಸಲು ನೀವು [[Special:UserLogin|ಲಾಗ್ ಇನ್]] ಆಗಿರಬೇಕು ಮತ್ತು ನಿಮ್ಮ [[Special:Preferences|ಪ್ರಾಶಸ್ತ್ಯಗಳ ಪುಟದಲ್ಲಿ]] ಒಂದು ಧೃಡೀಕೃತ ಇ-ಅಂಚೆ ವಿಳಾಸ ನೀಡಿರಬೇಕು.",
        "emailuser": "ಈ ಸದಸ್ಯರಿಗೆ ಇ-ಅಂಚೆ ಕಳಿಸಿ",
        "emailuser-title-notarget": "ಸದಸ್ಯರಿಗೆ ವಿ-ಅ೦ಚೆ ಕಳಿಸಿ",
        "emailpage": "ಸದಸ್ಯರಿಗೆ ವಿ-ಅ೦ಚೆ ಕಳಿಸಿ",
        "defemailsubject": "ವಿಕಿಪೀಡಿಯ ವಿ-ಅ೦ಚೆ",
+       "usermaildisabled": "ಬಳಕೆದಾರರ ಮಿಂಚಂಚೆಯನ್ನು ನಿಷ್ಕ್ತಿಯಗೊಳಿಸಲಾಗಿದೆ",
        "noemailtitle": "ಯಾವುದೇ ಇ-ಅಂಚೆ ವಿಳಾಸ ಇಲ್ಲ",
        "noemailtext": "ಈ ಸದಸ್ಯ ಯಾವುದೇ ಇ-ಅಂಚೆ ವಿಳಾಸ ನೀಡಿಲ್ಲ, ಅಥವ ಬೇರೆ ಸದಸ್ಯರಿಂದ ಇ-ಅಂಚೆ ಪಡೆಯಲು ಒಪ್ಪಿಕೊಂಡಿಲ್ಲ.",
+       "emailusername": "ಬಳಕೆದಾರ ಹೆಸರು:",
+       "emailusernamesubmit": "ಒಪ್ಪಿಸು",
        "emailfrom": "ಇಂದ:",
        "emailto": "ಗೆ:",
        "emailsubject": "ವಿಷಯ:",
        "nowatchlist": "ನಿಮ್ಮ ವೀಕ್ಷಣಾಪಟ್ಟಿಯಲ್ಲಿ ಯಾವುದೇ ಪುಟಗಳಿಲ್ಲ",
        "watchlistanontext": "ನಿಮ್ಮ ವೀಕ್ಷಣಾಪಟ್ಟಿಯನ್ನು ನೋಡಲು ಅಥವ ಸಂಪಾದಿಸಲು ದಯವಿಟ್ಟು $1 ಮಾಡಿ.",
        "watchnologin": "ಲಾಗಿನ್ ಆಗಿಲ್ಲ",
+       "addwatch": "ವೀಕ್ಷಣಾಪಟ್ಟಿಗೆ ಸೇರಿಸು",
        "addedwatchtext": "\"[[:$1]]\" ಪುಟವನ್ನು ನಿಮ್ಮ [[Special:Watchlist|ವೀಕ್ಷಣಾಪಟ್ಟಿಗೆ]] ಸೇರಿಸಲಾಗಿದೆ. ಈ ಪುಟದ ಮತ್ತು ಇದರ ಚರ್ಚಾ ಪುಟದ ಮುಂದಿನ ಬದಲಾವಣೆಗಳು ವೀಕ್ಷಣಾ ಪಟ್ಟಿಯಲ್ಲಿ ಕಾಣಸಿಗುತ್ತವೆ, ಮತ್ತು [[Special:RecentChanges|ಇತ್ತೀಚೆಗಿನ ಬದಲಾವಣೆಗಳ]] ಪಟ್ಟಿಯಲ್ಲಿ ಈ ಪುಟಗಳನ್ನು ದಪ್ಪಕ್ಷರಗಳಲ್ಲಿ ಕಾಣಿಸಲಾಗುವುದು.\n\n<p>ಈ ಪುಟವನ್ನು ವೀಕ್ಷಣಾ ಪಟ್ಟಿಯಿಂದ ತೆಗೆಯಬಯಸಿದಲ್ಲಿ, ಮೇಲ್ಪಟ್ಟಿಯಲ್ಲಿ ಕಾಣಿಸಿರುವ \"ವೀಕ್ಷಣಾ ಪುಟದಿಂದ ತೆಗೆ\" ಅನ್ನು ಕ್ಲಿಕ್ಕಿಸಿ.",
+       "removewatch": "ವೀಕ್ಷಣಾಪಟ್ಟಿಯಿಂದ ತೆಗೆ",
        "removedwatchtext": "\"[[:$1]]\" ಪುಟವನ್ನು ನಿಮ್ಮ [[Special:Watchlist|ವೀಕ್ಷಣಾಪಟ್ಟಿಯಿಂದ]] ತೆಗೆಯಲಾಗಿದೆ.",
        "watch": "ವೀಕ್ಷಿಸಿ",
        "watchthispage": "ಈ ಪುಟವನ್ನು ವೀಕ್ಷಿಸಿ",
        "unwatchthispage": "ವೀಕ್ಷಣೆ ನಿಲ್ಲಿಸು",
        "notvisiblerev": "ಆವೃತ್ತಿಯನ್ನು ಅಳಿಸಲಾಗಿದೆ",
        "watchlist-details": "ಚರ್ಚೆ ಪುಟಗಳನ್ನು ಹೊರತುಪಡಿಸಿ, ನಿಮ್ಮ ವೀಕ್ಷಣಾಪಟ್ಟಿಯಲ್ಲಿ {{PLURAL:$1|$1 ಪುಟ ಇದೆ|$1 ಪುಟಗಳು ಇವೆ}}.",
+       "wlheader-enotif": "ಮಿಂಚಂಚೆ ಸೂಚನೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.",
        "wlheader-showupdated": "ನೀವು ಕೊನೆಯ ಬಾರಿ ಭೇಟಿ ನೀಡಿದ ನಂತರ ಬದಲಾವಣೆಗಳು ಆಗಿರುವ ಪುಟಗಳು '''ದಪ್ಪ ಅಕ್ಷರಗಳಲ್ಲಿ''' ತೋರಿಸಲಾಗಿದೆ",
        "watchmethod-recent": "ಇತ್ತೀಚಿನ ಸಂಪಾದನೆಗಳಲ್ಲಿ ವೀಕ್ಷಣಾಪಟ್ಟಿಗೆ ಸೇರುವ ಪುಟಗಳ ಹುಡುಕು",
        "watchmethod-list": "ವೀಕ್ಷಣಾಪಟ್ಟಿಗೆ ಸೇರುವ ಪುಟಗಳಲ್ಲಿ ಇತ್ತೀಚಿನ ಸಂಪಾದನೆಗಳಿಗೆ ಹುಡುಕು",
        "modifiedarticleprotection": "\"[[$1]]\" ಪುಟದ ಸಂರಕ್ಷಣೆ ಮಟ್ಟವನ್ನು ಬದಲಾಯಿಸಲಾಯಿತು",
        "unprotectedarticle": "\"[[$1]]\" ಪುಟದ ಸಂರಕ್ಷಣೆ ತೆಗೆಯಲಾಯಿತು",
        "protect-title": "\"$1\" ಪುಟದ ಸಂರಕ್ಷಣೆ ಮಟ್ಟವನ್ನು ಬದಲಾಯಿಸು",
+       "protect-title-notallowed": "\"$1\" ಪುಟದ ಸಂರಕ್ಷಣೆ ಮಟ್ಟವನ್ನು ವೀಕ್ಷಿಸು",
        "prot_1movedto2": "[[$1]] - [[$2]] ಪುಟಕ್ಕೆ ಸ್ಥಳಾಂತರಿಸಲಾಗಿದೆ",
        "protect-legend": "ಸಂರಕ್ಷಣೆ ಧೃಡಪಡಿಸಿ",
        "protectcomment": "ಕಾರಣ:",
        "restriction-edit": "ಸಂಪಾದನೆ",
        "restriction-move": "ಸ್ಥಳಾಂತರ",
        "restriction-create": "ಸೃಷ್ಟಿ",
+       "restriction-upload": "ನಕಲೇರಿಸು",
        "restriction-level-sysop": "ಪೂರ್ಣವಾಗಿ ಸಂರಕ್ಷಿತ",
        "restriction-level-autoconfirmed": "ಅರೆ ಸಂರಕ್ಷಿತ",
        "restriction-level-all": "ಯಾವುದೇ ಮಟ್ಟ",
        "whatlinkshere-hidelinks": "$1 ಕೊಂಡಿಗಳು",
        "whatlinkshere-hideimages": "$1 ಚಿತ್ರದ ಕೊಂಡಿಗಳು",
        "whatlinkshere-filters": "ಶೋಧಕಗಳು",
+       "block": "ಬಳಕೆದಾರನನ್ನು ತಡೆಹಿಡಿ",
+       "unblock": "ಬಳಕೆದಾರನ ತಡೆಯನ್ನು ತೆಗೆ",
        "blockip": "ಈ ಸದಸ್ಯನನ್ನು ತಡೆ ಹಿಡಿಯಿರಿ",
        "blockip-legend": "ಬಳಕೆದಾರನನ್ನು ತಡೆಹಿಡಿ",
        "ipadressorusername": "IP ವಿಳಾಸ ಅಥವ ಬಳಕೆಯ ಹೆಸರು:",
        "ipusubmit": "ಈ ವಿಳಾಸದ ತಡೆಯನ್ನು ತೆಗೆ",
        "unblocked": "[[User:$1|$1]] ಖಾತೆಯ ತಡೆಯನ್ನು ತೆಗೆಯಲಾಗಿದೆ",
        "unblocked-id": "$1 ತಡೆಯನ್ನು ತೆಗೆಯಲಾಗಿದೆ",
+       "blocklist": "ನಿರ್ಬಂಧಿಸಲಾಗಿರುವ ಸದಸ್ಯರು",
        "ipblocklist": "ನಿರ್ಬಂಧಿಸಲಾಗಿರುವ ಸದಸ್ಯರು",
        "ipblocklist-legend": "ತಡೆಹಿಡಿಯಲಾದ ಬಳಕೆದಾರನನ್ನು ಹುಡುಕು",
+       "blocklist-reason": "ಕಾರಣ",
        "ipblocklist-submit": "ಹುಡುಕು",
        "infiniteblock": "ಅನಂತ",
        "anononlyblock": "ಅನಾಮಧೇಯ ಮಾತ್ರ",
        "unblocklink": "ತಡೆಯನ್ನು ತಗೆ",
        "change-blocklink": "ತಡೆಹಿಡಿತವನ್ನು ಬದಲಾಯಿಸು",
        "contribslink": "ಕಾಣಿಕೆಗಳು",
+       "emaillink": "ಇ-ಅಂಚೆ ಕಳುಹಿಸಿ",
        "blocklogpage": "ತಡೆಹಿಡಿದ ಸದಸ್ಯರ ದಿನಚರಿ",
        "blocklogentry": "[[$1]] ಖಾತೆಯನ್ನು $2 $3 ಸಮಯದವರೆಗೆ ತಡೆಹಿಡಿಯಲಾಗಿದೆ",
        "unblocklogentry": "$1 ಖಾತೆಯ ತಡೆ ತೆಗೆಯಲಾಗಿದೆ",
        "allmessages-filter-modified": "ಬದಲಾಯಿಸಲಾದ",
        "allmessages-language": "ಭಾಷೆ:",
        "allmessages-filter-submit": "ಹೋಗು",
+       "allmessages-filter-translate": "ಭಾಷಾಂತರಿಸಿ",
        "thumbnail-more": "ದೊಡ್ಡದಾಗಿಸು",
        "filemissing": "ಫೈಲು ಕಾಣೆಯಾಗಿದೆ",
        "thumbnail_error": "ಮುನ್ನೋಟ ಚಿತ್ರವನ್ನು ಸೃಷ್ಟಿಸುವಲ್ಲಿ ದೋಷ: $1",
        "exif-gpsspeedref": "ವೇಗದ ಘಟಕ",
        "exif-gpsareainformation": "GPS ಪ್ರದೇಶದ ಹೆಸರು",
        "exif-gpsdatestamp": "GPS ದಿನಾಂಕ",
+       "exif-iimcategory": "ವರ್ಗ",
+       "exif-label": "ಗುರುತು ಪಟ್ಟಿ",
+       "exif-copyrighted": "ಕೃತಿಸ್ವಾಮ್ಯತೆಯ ಸ್ಥಿತಿ",
+       "exif-copyrightowner": "ಕೃತಿಸ್ವಾಮ್ಯತೆಯನ್ನು ಹೊಂದಿರುವವರು",
        "exif-unknowndate": "ದಿನಾಂಕ ತಿಳಿದಿಲ್ಲ",
        "exif-orientation-3": "180° ತಿರುಗಿಸಲ್ಪಟ್ಟಿದೆ",
        "exif-componentsconfiguration-0": "ಅಸ್ಥಿತ್ವದಲ್ಲಿ ಇಲ್ಲ",
        "version-software": "ಸಂಸ್ಥಾಪಿಸಲಾಗಿರುವ ತಂತ್ರಾಂಶ",
        "version-software-product": "ಉತ್ಪನ್ನ",
        "version-software-version": "ಆವೃತ್ತಿ",
+       "redirect-submit": "ಹೋಗು",
+       "redirect-value": "ಮೌಲ್ಯ:",
+       "redirect-user": "ಬಳಕೆದಾರ ID",
+       "redirect-page": "ಪುಟದ ID",
+       "redirect-file": "ಕಡತದ ಹೆಸರು",
        "fileduplicatesearch": "ದ್ವಿಪ್ರತಿ ಫೈಲುಗಳಿಗೆ ಹುಡುಕು",
        "fileduplicatesearch-legend": "ದ್ವಿಪ್ರತಿಯನ್ನು ಹುಡುಕು",
        "fileduplicatesearch-filename": "ಫೈಲಿನ ಹೆಸರು:",
        "specialpages-group-redirects": "ವಿಶೇಷ ಪುಟಗಳನ್ನು ಪುನರ್ನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ",
        "blankpage": "ಖಾಲಿ ಪುಟ",
        "tag-filter": "[[ವಿಶೇಷ:ತಳುಕುಗಳು|ತಳುಕು]] ಶೋಧಕ:",
+       "tag-filter-submit": "ಶೋಧಕ",
+       "tags-title": "ಅಂಕಿತಗಳು",
+       "tags-tag": "ಅಂಕಿತ ನಾಮ",
+       "tags-active-header": "ಸಕ್ರಿಯ?",
+       "tags-active-yes": "ಹೌದು",
+       "tags-active-no": "ಇಲ್ಲ",
        "tags-edit": "ಸಂಪಾದಿಸಿ",
        "comparepages": "ಪುಟಗಳನ್ನು ಹೋಲಿಸು",
        "compare-page1": "ಪುಟ ೧",
        "compare-rev2": "ಆವೃತ್ತಿ ೨",
        "compare-submit": "ಹೋಲಿಸು",
        "htmlform-selectorother-other": "ಇತರ",
+       "htmlform-no": "ಇಲ್ಲ",
+       "htmlform-yes": "ಹೌದು",
        "revdelete-restricted": "ನಿರ್ವಾಹಕರಿಗೆ ನಿಬಂಧನೆಗಳನ್ನು ಅನ್ವಯಿಸಲಾಯಿತು",
        "revdelete-unrestricted": "ನಿರ್ವಾಹಕರ ನಿಬಂಧನೆಗಳನ್ನು ತೆಗೆಯಲಾಯಿತು",
        "rightsnone": "(ಯಾವೂ ಇಲ್ಲ)",
+       "feedback-subject": "ವಿಷಯ:",
+       "feedback-message": "ಸಂದೇಶ:",
        "duration-seconds": "$1 {{PLURAL:$1|ಕ್ಷಣ|ಕ್ಷಣಗಳು}}",
        "duration-minutes": "$1 {{PLURAL:$1|ನಿಮಿಷ|ನಿಮಿಷಗಳು}}",
        "duration-hours": "$1 {{PLURAL:$1|ಘಂಟೆ|ಘಂಟೆಗಳು}}",
index 6a8c5d2..7884a3b 100644 (file)
        "pool-timeout": "잠금 대기 중 타임아웃",
        "pool-queuefull": "풀 대기열이 가득 찼습니다",
        "pool-errorunknown": "알 수 없는 오류",
+       "pool-servererror": "풀 카운터 서비스는 사용할 수 없습니다 ($1).",
        "aboutsite": "{{SITENAME}} 소개",
        "aboutpage": "Project:소개",
        "copyright": "내용은 별도로 명시하지 않을 경우 $1에 따라 사용할 수 있습니다.",
        "subject": "주제/제목:",
        "minoredit": "사소한 편집입니다",
        "watchthis": "이 문서 주시하기",
-       "savearticle": "저장",
+       "savearticle": "문서 저장",
        "preview": "미리 보기",
        "showpreview": "미리 보기",
        "showlivepreview": "실시간 미리 보기",
        "listgrouprights-namespaceprotection-namespace": "이름공간",
        "listgrouprights-namespaceprotection-restrictedto": "사용자가 편집할 수 있는 권한",
        "trackingcategories": "분류 추적",
+       "trackingcategories-summary": "이 페이지는 미디어위키 소프트웨어에 의해 자동으로 채워지는 분류 추적을 나열합니다. 그들의 이름은 {{ns:8}} 이름공간에 관련된 시스템 메시지를 바꾸어서 바꿀 수 있습니다.",
        "trackingcategories-msg": "분류 추적",
        "trackingcategories-name": "메시지 이름",
        "trackingcategories-desc": "분류 포함 기준",
+       "noindex-category-desc": "문서는 그것과 그 플래그가 허용된 곳에 있는 이름공간에서 <code><nowiki>__NOINDEX__</nowiki></code> 특수 명령이 있기 때문에 로봇이 색인하지 않습니다.",
+       "index-category-desc": "문서는 그것(과 플래그가 허용된 곳에 있는 이름공간에 있는 것)에 <code><nowiki>__INDEX__</nowiki></code>가 있어서, 정상적이지 않을 곳에 로봇에 의해 색인됩니다.",
        "trackingcategories-nodesc": "사용할 수 있는 설명이 없습니다.",
        "trackingcategories-disabled": "분류가 비활성화되어 있습니다",
        "mailnologin": "보낼 이메일 주소가 없음",
        "unwatchthispage": "주시 해제하기",
        "notanarticle": "문서가 아님",
        "notvisiblerev": "이 판은 삭제되었습니다.",
-       "watchlist-details": "토론을 제외하고 {{PLURAL:$1|문서 $1개}}를 주시하고 있습니다.",
+       "watchlist-details": "별도의 토론 문서를 세지 않고, 주시문서 목록에 {{PLURAL:$1|문서 $1개}}가 있습니다.",
        "wlheader-enotif": "이메일 알림 기능이 활성화되었습니다.",
        "wlheader-showupdated": "마지막으로 방문한 이후에 바뀐 문서는 '''굵은 글씨'''로 보입니다.",
        "watchmethod-recent": "주시된 문서를 확인하고자 최근 편집을 확인",
        "exif-filesource-3": "디지털 정지 카메라",
        "exif-scenetype-1": "직접 촬영한 그림",
        "exif-customrendered-0": "일반",
-       "exif-customrendered-1": "ì\82¬ì\9a©ì\9e\90 ì \95ì\9d\98",
+       "exif-customrendered-1": "ì\82¬ì\9a©ì\9e\90 ì§\80ì \95 ì²\98리",
        "exif-exposuremode-0": "자동 노출",
        "exif-exposuremode-1": "수동 노출",
        "exif-exposuremode-2": "자동 노출 브래킷",
        "livepreview-error": "연결에 실패하였습니다: $1 \"$2\"\n일반 미리 보기를 이용하세요.",
        "lag-warn-normal": "최근 $1{{PLURAL:$1|초}} 안에 바뀐 문서는 이 목록에서 빠졌을 수 있습니다.",
        "lag-warn-high": "데이터베이스 서버의 과도한 부하 때문에 최근 $1{{PLURAL:$1|초}} 안에 바뀐 문서 목록은 보이지 않을 수 있습니다.",
-       "watchlistedit-numitems": "토론 문서를 제외하고 {{PLURAL:$1|문서 1개|문서 $1개}}를 주시하고 있습니다.",
+       "watchlistedit-numitems": "주시문서 목록에 토론 문서를 제외하고, {{PLURAL:$1|문서 1개|문서 $1개}}가 들어 있습니다.",
        "watchlistedit-noitems": "주시문서 목록이 비어 있습니다.",
        "watchlistedit-normal-title": "주시문서 목록 편집하기",
        "watchlistedit-normal-legend": "주시문서 목록에서 문서 제거하기",
        "htmlform-int-toolow": "지정한 값은 최소값 $1 미만입니다.",
        "htmlform-int-toohigh": "지정한 값은 최대값 $1 이상입니다.",
        "htmlform-required": "이 값은 필수 항목입니다",
-       "htmlform-submit": "ì \80ì\9e¥",
+       "htmlform-submit": "ì \9cì¶\9c",
        "htmlform-reset": "바뀜을 되돌리기",
        "htmlform-selectorother-other": "기타",
        "htmlform-no": "아니오",
index 204c7bf..a45ae31 100644 (file)
        "permalink": "Zitéierfäege Link",
        "print": "Drécken",
        "view": "Weisen",
+       "view-foreign": "Op $1 kucken",
        "edit": "Änneren",
        "edit-local": "Lokal Beschreiwung änneren",
        "create": "Uleeën",
        "revdelete-no-file": "De Fichier deen ugi war gëtt et net.",
        "revdelete-show-file-confirm": "Sidd Dir sécher datt Dir déi geläschte Versioun vum Fichier \"<nowiki>$1</nowiki>\" vum $2 ëm $3 gesi wëllt?",
        "revdelete-show-file-submit": "Jo",
+       "revdelete-selected-text": "{{PLURAL:$1|Erausgesicht Versioun|Erausgesicht Versioune}} vu(n) [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Erausgesicht Versioun|Erausgesicht Versioune}} vum Fichier vu(n) [[:$2]]:",
        "logdelete-selected": "Ausgewielten {{PLURAL:$1|Evenement|Evenementer}} aus dem Logbuch:",
        "revdelete-text-others": "Aner Administrateuren op {{SITENAME}} kënnen nach ëmmer de verstoppten Inhalt gesinn an en iwwer deeselwechten Interface nees restauréieren, ausser wann zousätzlech Limitatiounen agestallt sinn.",
        "revdelete-confirm": "Confirméiert w.e.g. datt Dir dat maache wëllt, datt Dir d'Konsequenze verstitt an datt Dir dëst an Aklang mat de [[{{MediaWiki:Policy-url}}|Richtlinne]] maacht.",
        "contributions-title": "Kontributioune vum $1",
        "mycontris": "Kontributiounen",
        "contribsub2": "Fir {{GENDER:$3|den $1|d'$1|de Benotzer $1}} ($2)",
+       "contributions-userdoesnotexist": "De Benotzerkont \"$1\" ass net registréiert.",
        "nocontribs": "Et goufe keng Ännerunge fonnt, déi dëse Kritèren entspriechen.",
        "uctop": "(aktuell)",
        "month": "Vum Mount (a virdrun):",
index 333c9c7..308ae7c 100644 (file)
        "content-model-javascript": "ജാവാസ്ക്രിപ്റ്റ്",
        "content-model-css": "സി.എസ്.എസ്.",
        "expensive-parserfunction-warning": "'''മുന്നറിയിപ്പ്:''' ഈ താളിൽ വളരെക്കൂടുതൽ പാഴ്സർ ഫങ്ഷനുകൾ വിളിച്ചിരിക്കുന്നു.\n\n{{PLURAL:$2|ഒരു വിളി|$2 വിളികൾ}} മാത്രമുണ്ടാകേണ്ടയിടത്ത്, ഇപ്പോൾ {{PLURAL:$1|ഒരു വിളി|$1 വിളികൾ}} ഉണ്ട്.",
-       "expensive-parserfunction-category": "വളരàµ\86യധിà´\95à´\82 à´µà´¿à´²à´¯àµ\87റിയ à´µàµ\8dയാà´\95à´°à´£ à´¨à´¿àµ¼à´¦àµ\8dà´¦àµ\87à´¶à´\99àµ\8dà´\99ൾ à´\85à´\9fà´\99àµ\8dà´\99à´¿à´¯ താളുകൾ",
+       "expensive-parserfunction-category": "വളരàµ\86യധിà´\95à´\82 à´\9aിലവàµ\87റിയ à´ªà´¾à´´àµ\8dസർ à´«à´\99àµ\8dഷൻ à´µà´¿à´³à´¿à´\95ൾ à´\89ൾà´\95àµ\8dà´\95àµ\8aà´³àµ\8dà´³àµ\81à´¨àµ\8dà´¨ താളുകൾ",
        "post-expand-template-inclusion-warning": "'''അറിയിപ്പ്:''' ഫലകം ഉൾപ്പെടുത്താവുന്ന വലിപ്പത്തിലും വളരെ കൂടുതൽ ആയിരിക്കുന്നു.\nചില ഫലകങ്ങൾ ഉൾപ്പെടുത്തുകയില്ല.",
        "post-expand-template-inclusion-category": "ഫലകം ഉൾപ്പെടുത്താവുന്ന വലിപ്പത്തിലും കൂടുതലുള്ള താളുകൾ",
        "post-expand-template-argument-warning": "'''അറിയിപ്പ്:''' ഈ താളിൽ വളരെയധികം വികസിപ്പിക്കപ്പെട്ടേക്കാവുന്ന ഒരു ഫലകമെങ്കിലും ഉണ്ട്.\nഅതിനായുള്ള ഘടകങ്ങൾ ഒഴിവാക്കിയിരിക്കുന്നു.",
        "listgrouprights-removegroup-self": "സ്വന്തം അംഗത്വത്തിൽ നിന്ന് {{PLURAL:$2|സംഘത്തെ|സംഘങ്ങളെ}} നീക്കം ചെയ്യുക: $1",
        "listgrouprights-addgroup-self-all": "എല്ലാ സംഘങ്ങളേയും സ്വന്തം അംഗത്വത്തിൽ ചേർക്കുക",
        "listgrouprights-removegroup-self-all": "സ്വന്തം അംഗത്വത്തിൽ നിന്ന് എല്ലാ സംഘങ്ങളേയും നീക്കംചെയ്യുക",
+       "listgrouprights-namespaceprotection-header": "നാമമേഖലയിലെ നിയന്ത്രണങ്ങൾ",
+       "listgrouprights-namespaceprotection-namespace": "നാമമേഖല",
+       "listgrouprights-namespaceprotection-restrictedto": "ഉപയോക്താവിന് ഉപയോഗിക്കാവുന്ന അവകാശം (അവകാശങ്ങൾ)",
        "trackingcategories": "പിന്തുടരൽ വർഗ്ഗങ്ങൾ",
        "trackingcategories-summary": "ഈ താളിൽ മീഡിയവിക്കി സോഫ്റ്റ്‌വേർ സ്വതേ നിർമ്മിക്കുന്ന പിന്തുടരൽ വർഗ്ഗങ്ങളുടെ പട്ടിക കാണാം. അവയുടെ പേരുകൾ {{ns:8}} നാമമേഖലയിലെ ബന്ധപ്പെട്ട വ്യവസ്ഥാസന്ദേശങ്ങൾ തിരുത്തി മാറ്റാവുന്നതാണ്.",
        "trackingcategories-msg": "പിന്തുടരൽ വർഗ്ഗം",
        "contributions-title": "$1 എന്ന ഉപയോക്താവിന്റെ സംഭാവനകൾ",
        "mycontris": "സംഭാവനകൾ",
        "contribsub2": "ഉപയോക്താവ് {{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "\"$1\" എന്ന ഉപയോക്തൃ അം‌ഗത്വം നിലവിലില്ല.",
        "nocontribs": "ഈ മാനദണ്ഡങ്ങളുമായി യോജിക്കുന്ന മാറ്റങ്ങൾ ഒന്നും കണ്ടില്ല.",
        "uctop": "(നിലവിലുള്ളത്)",
        "month": "മാസം:",
index 4f19e96..7ae9d4f 100644 (file)
        "tog-hidepatrolled": "Am chòe-kīn sûn koè--ê  kái-piàn",
        "tog-newpageshidepatrolled": "Sin-ia̍h ê chheng-toaⁿ am sûn koè--ê",
        "tog-extendwatchlist": "thián-khui kàm-sī-toaⁿ, khoàⁿ choân-pō͘  kái ê, m̄-nā choè-kīn niā.",
-       "tog-usenewrc": "Ka-kiông pán ê chòe-kīn-ê-kái-piàn (su-iàu JavaScript)",
+       "tog-usenewrc": "共文章最近有改的佮監視列表囥做伙",
        "tog-numberheadings": "Phiau-tê chū-tōng pian-hō",
-       "tog-showtoolbar": "Hián-sī pian-chi̍p ke-si-tiâu (su-iàu JavaScript)",
-       "tog-editondblclick": "Siang-ji̍h ia̍h-bīn to̍h ē-tàng pian-chi̍p (su-iàu JavaScript)",
-       "tog-editsectiononrightclick": "Chiàⁿ-ji̍h (right click) toāⁿ-lo̍h (section) phiau-tê to̍h ē-tàng pian-chi̍p toāⁿ-lo̍h (su-iàu JavaScript)",
-       "tog-watchcreations": "Kā goá khui ê ia̍h ka-ji̍p kàm-sī-toaⁿ lāi-té",
-       "tog-watchdefault": "Kā goá pian-chi̍p kòe ê ia̍h ka-ji̍p kàm-sī-toaⁿ lāi-té",
-       "tog-watchmoves": "Kā goá soá ê ia̍h ka-ji̍p kàm-sī-toaⁿ",
-       "tog-watchdeletion": "Kā goá thâi tiāu ê ia̍h ka-ji̍p kàm-sī-toaⁿ",
+       "tog-showtoolbar": "Hián-sī pian-chi̍p ke-si-tiâu",
+       "tog-editondblclick": "連揤兩个就通編輯",
+       "tog-editsectiononrightclick": "Chiàⁿ ji̍h toāⁿ-lo̍h phiau-tê to̍h ē-tàng pian-chi̍p toāⁿ-lo̍h",
+       "tog-watchcreations": "Kā goá khui ê ia̍h kah chiūⁿ chái ê tóng-àn ka-ji̍p kàm-sī-toaⁿ lāi-té",
+       "tog-watchdefault": "Kā goá pian-chi̍p kòe ê ia̍h kah tóng-àn ka-ji̍p kàm-sī-toaⁿ lāi-té",
+       "tog-watchmoves": "Kā goá soá ê ia̍h kah tóng-àn ka-ji̍p kàm-sī-toaⁿ",
+       "tog-watchdeletion": "Kā goá thâi tiāu ê ia̍h kah tóng-àn ka-ji̍p kàm-sī-toaⁿ",
        "tog-minordefault": "Chiām-tēng bī-lâi ê siu-kái lóng sī sió-siu-ká",
        "tog-previewontop": "Sûn-khoàⁿ ê lōe-iông tī pian-chi̍p keh-á thâu-chêng",
        "tog-previewonfirst": "Thâu-pái pian-chi̍p seng khoàⁿ-māi",
@@ -29,8 +29,8 @@
        "tog-enotifrevealaddr": "Hō͘ pat-lâng khoàⁿ ê tio̍h oá ê tiān-chú-phoe tē-chí",
        "tog-shownumberswatching": "Hián-sī tng leh khoàⁿ ê iōng-chiá sò͘-bo̍k",
        "tog-oldsig": "Chit-má ê chhiam-miâ:",
-       "tog-fancysig": "Chhiam-miâ mài chò liân-kiat",
-       "tog-uselivepreview": "Ēng sui khoàⁿ-māi (ài ū JavaScript) (chhì-giām--ê)",
+       "tog-fancysig": "共我的簽名當做文章文字,(無需要自動連結)",
+       "tog-uselivepreview": "Ēng sui khoàⁿ-māi (chhì-giām--ê)",
        "tog-forceeditsummary": "Pian-chi̍p khài-iàu bô thiⁿ ê sî-chūn, kā goá thê-chhéⁿ",
        "tog-watchlisthideown": "Kàm-sī-toaⁿ bián hián-sī goá ê pian-chi̍p",
        "tog-watchlisthidebots": "Kàm-sī-toaⁿ bián hián-sī ki-khì pian-chi̍p",
@@ -44,7 +44,7 @@
        "tog-norollbackdiff": "ká tńg-khí liáu bián-koán cheng-chha goā-chē",
        "underline-always": "Tiāⁿ-tio̍h",
        "underline-never": "Tiāⁿ-tio̍h mài",
-       "underline-default": "Tòe liû-lám-khì ê default",
+       "underline-default": "Tòe liû-lám-khì ê siat-piān",
        "editfont-style": "Pian-chi̍p sî ēng ê jī-thé hêng-sek:",
        "editfont-default": "Tòe liû-lám-khì ê default",
        "editfont-monospace": "Monospaced jī-thé",
        "newwindow": "(ē khui sin thang-á hián-sī)",
        "cancel": "Chhú-siau",
        "moredotdotdot": "Iáu-ū",
-       "mypage": "Góa ê ia̍h",
+       "mypage": "Ia̍h",
        "mytalk": "Góa ê thó-lūn",
        "anontalk": "Chit ê IP ê thó-lūn-ia̍h",
        "navigation": "Se̍h chām",
        "vector-action-move": "Sóa khì",
        "vector-action-protect": "Pó-hō·",
        "vector-action-undelete": "chhú-siau thâi tiàu",
-       "vector-action-unprotect": "Chhú-siau pó-hō·",
+       "vector-action-unprotect": "kái pó-hō·",
        "vector-view-create": "Khai-sí siá",
        "vector-view-edit": "Siu-kái",
        "vector-view-history": "khoàⁿ le̍k-sú",
        "create-this-page": "Khai-sí siá chit ia̍h",
        "delete": "Thâi",
        "deletethispage": "Thâi chit ia̍h",
-       "undelete_short": "Kiù {{PLURAL:$1|$1|$1}} ê siu-kái",
+       "undelete_short": "Kiù {{PLURAL:$1|$1|$1}} ê thâi-tiāu ê",
        "viewdeleted_short": "Khoàⁿ {{PLURAL:$1|chi̍t-ê thâi tiàu--ê pian-chi̍p|$1 ê thâi tiàu--ê pian-chi̍p}}",
        "protect": "Pó-hō·",
        "protect_change": "kái-piàn",
        "protectthispage": "Pó-hō· chit ia̍h",
-       "unprotect": "Chhú-siau pó-hō·",
+       "unprotect": "kái pó-hō·",
        "unprotectthispage": "Chhú-siau pó-hō· chit ia̍h",
        "newpage": "Sin ia̍h",
        "talkpage": "Thó-lūn chit ia̍h",
        "nospecialpagetext": "<strong>Bô lí beh tih ê te̍k-sû-ia̍h。</strong>\n\n[[Special:SpecialPages|{{int:specialpages}}]] sī só͘-ū ê te̍k-sû-ia̍h lia̍t-pió.",
        "error": "Chhò-gō·",
        "databaseerror": "Chu-liāu-khò· chhò-gō·",
-       "databaseerror-query": "揣:",
-       "databaseerror-function": "功能:",
+       "databaseerror-query": "揣:$1",
+       "databaseerror-function": "功能:$1",
        "laggedslavemode": "'''提醒:'''頁內容可能毋是上新的。",
        "readonly": "Chu-liāu-khò· só tiâu leh",
        "enterlockreason": "Phah beh hong-só ê lí-iû, pau-koah ko͘-kè siáⁿ-mi̍h sî-chūn ē kái-tû hong-só.",
index 457a856..07c4b95 100644 (file)
@@ -23,7 +23,6 @@
        "tog-showtoolbar": "ସମ୍ପାଦନା ଟୁଲବାର ଦେଖାଇବେ",
        "tog-editondblclick": "ଦୁଇଥର କ୍ଲିକରେ ପୃଷ୍ଠା ବଦଳାଇବେ",
        "tog-editsectiononrightclick": "ବିଭାଗ ନାମରେ ଡାହାଣ କ୍ଲିକ କରି ବିଭାଗ ସମ୍ପାଦନାକୁ ସଚଳ କରିବେ",
-       "tog-rememberpassword": "ଏହି ବ୍ରାଉଜରରେ (ସର୍ବାଧିକ $1 {{PLURAL:$1|day|ଦିନ}}) ପାଇଁ ମୋ ଲଗ-ଇନ ମନେରଖିଥିବେ",
        "tog-watchcreations": "ମୋ ତିଆରି ପୃଷ୍ଠାସବୁକୁ ଏବଂ ମୋ ଅପଲୋଡ଼ଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ",
        "tog-watchdefault": "ମୁଁ ବଦଳେଇଥିବା ପୃଷ୍ଠା ଏବଂ ଫାଇଲଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ",
        "tog-watchmoves": "ମୁଁ ଘୁଞ୍ଚାଇଥିବା ପୃଷ୍ଠା ଏବଂ ଫାଇଲଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ",
index f7a2742..b2cdaa1 100644 (file)
        "permalink": "Link do tej wersji",
        "print": "Drukuj",
        "view": "Podgląd",
+       "view-foreign": "Zobacz w {{grammar:MS.lp|$1}}",
        "edit": "Edytuj",
        "edit-local": "Edytuj lokalny opis",
        "create": "Utwórz",
        "changeemail-submit": "Zapisz nowy",
        "changeemail-cancel": "Anuluj",
        "changeemail-throttled": "Zbyt wiele razy próbowałeś zalogować się na to konto.\nOdczekaj $1, zanim ponowisz próbę.",
-       "resettokens": "Resetuj tokeny",
+       "resettokens": "Resetowanie tokenów",
        "resettokens-text": "Na tej stronie możesz zresetować tokeny, które umożliwiają dostęp do pewnych prywatnych danych związanych z Twoim kontem.\n\nNależy to zrobić, jeśli ktoś je poznał lub zdobył hasło do Twojego konta.",
        "resettokens-no-tokens": "Brak tokenów do zresetowania.",
-       "resettokens-legend": "Resetuj tokeny",
+       "resettokens-legend": "Resetowanie tokenów",
        "resettokens-tokens": "Tokeny:",
        "resettokens-token-label": "$1 (obecna wartość: $2)",
        "resettokens-watchlist-token": "Token kanału internetowego (Atom/RSS) zmian w [[Special:Watchlist|obserwowanych stronach]]",
index 7d31be8..7ec8f3f 100644 (file)
        "permalink": "Link permanente",
        "print": "Imprimir",
        "view": "Ver",
+       "view-foreign": "Ver no $1",
        "edit": "Editar",
        "edit-local": "Editar descrição local",
        "create": "Criar",
index 4e4872d..546c042 100644 (file)
        "versionrequired": "This message is not used in the MediaWiki core, but was introduced with the reason that it could be useful for extensions.\n\nParameters:\n* $1 - MediaWiki version number\nSee also:\n* {{msg-mw|Versionrequiredtext}}",
        "versionrequiredtext": "This message is not used in the MediaWiki core, but was introduced with the reason that it could be useful for extensions.\n\nParameters:\n* $1 - MediaWiki version number\nSee also:\n* {{msg-mw|Versionrequired}}",
        "ok": "{{Identical|OK}}",
-       "pagetitle": "{{Optional}}\n{{doc-important|You most probably do not need to translate this message.}}\nDo '''not''' replace SITENAME with a translation of Wikipedia or some encycopedic additions. The message has to be neutral for all projects.\n\nParameters:\n* $1 - page title or any one of the following messages:\n** {{msg-mw|Contributions-title}}\n** {{msg-mw|Searchresults-title}}\n** {{msg-mw|Sp-contributions-newbies-title}}",
+       "pagetitle": "{{Optional}}\n{{doc-important|You most probably do not need to translate this message.}}\nDo '''not''' replace SITENAME with a translation of Wikipedia or some encyclopedic additions. The message has to be neutral for all projects.\n\nParameters:\n* $1 - page title or any one of the following messages:\n** {{msg-mw|Contributions-title}}\n** {{msg-mw|Searchresults-title}}\n** {{msg-mw|Sp-contributions-newbies-title}}",
        "pagetitle-view-mainpage": "{{optional}}",
        "backlinksubtitle": "{{optional}}\nAppears in subtitle. Parameters:\n* $1 - 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.\n\nParameters:\n* $1 - a link back to the current page: {{FULLURL:{{FULLPAGENAME}}}}",
index 839afb2..5190593 100644 (file)
        "revdelete-failure": "<strong>संस्करणस्य दृश्यता अद्यतना नाभवत् </strong> $1",
        "logdelete-success": "<strong>संरक्षिताऽऽवल्याः दृश्यता योग्यतया परिवर्तिता ।</strong>",
        "logdelete-failure": "<strong>संरक्षिताऽऽवल्याः दृश्यता न परिवर्तिता ।</strong> $1",
-       "revdel-restore": "दृश्यता परिवर्त्यताम्",
+       "revdel-restore": "दृश्यताम्/गोप्यताम्",
        "pagehist": "पृष्ठस्य इतिहासः",
        "deletedhist": "अपाकृतः इतिहासः",
-       "revdelete-hide-current": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95सà¥\8dय $1 à¤¸à¤®à¤¯à¥\87 à¤\95सà¥\8dयापि à¤µà¤¸à¥\8dतà¥\8bà¤\83 à¤¨à¤¿à¤\97à¥\82ढनà¤\82 à¤\95ारà¥\8dयà¤\82 à¤¨ à¤¸à¤«à¤²à¥\80भà¥\80तमà¥\8d à¥¤ à¤\8fततà¥\8d à¤¸à¤¦à¥\8dयà¤\83à¤\95ालà¥\80न संस्करणमस्ति । एतत् निगूढितुं शक्यते ।",
+       "revdelete-hide-current": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95सà¥\8dय $1 à¤¸à¤®à¤¯à¥\87 à¤\95सà¥\8dयापि à¤µà¤¸à¥\8dतà¥\8bà¤\83 à¤¨à¤¿à¤\97à¥\82ढनà¤\95ारà¥\8dयà¤\82 à¤¨ à¤¸à¤«à¤²à¥\80भà¥\80तमà¥\8d à¥¤ à¤\8fततà¥\8d à¤¸à¤¦à¥\8dयà¤\83à¤\95ालà¥\80नà¤\82 संस्करणमस्ति । एतत् निगूढितुं शक्यते ।",
        "revdelete-show-no-access": "$2 दिनाङ्कस्य $1 समयस्य वस्तुनि दोषः दृष्टः । तत् वस्तुः निषिद्धावल्याम् अस्ति । भवान्/भवती तस्य परिवर्तनं कर्तुं न शक्नोति ।",
        "revdelete-modify-no-access": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तितवस्तुनि दोषः दृष्टः । तत् वस्तुः निषिद्धावल्याम् अस्ति । भवान्/भवती तस्य परिवर्तनं कर्तुं न शक्नोति ।",
-       "revdelete-modify-missing": " ID $1 इत्यस्य परिवर्तने दोषः : एतत् दत्तांशे न प्राप्तम् !",
+       "revdelete-modify-missing": "ID $1 इत्यस्य परिवर्तने दोषः : एतत् दत्तांशे न प्राप्तम् !",
        "revdelete-no-change": "'''पूर्वसूचना :''' $2, $1 इत्यस्मिन् याचितवस्तूनि पूर्वस्मादेव विद्यन्ते ।",
-       "revdelete-concurrent-change": "$2, $1:",
-       "revdelete-only-restricted": "$2, $1: दिनाङ्कितस्य गोपने दोषाः। अन्यदृश्यविकल्पानां चयनेन विना एतत् निग्रहितुं नैव शक्नोति",
+       "revdelete-concurrent-change": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तनेषु दोषः दृष्टः । अस्य पृष्ठस्य यदा भवान्/भवती सम्पादनं करोति स्म, तदा अन्य कोऽपि अत्र परिवर्तनम् अकरोत् । अतः परिवर्तनस्य इतिहासे अन्यस्य नाम दृश्यते । \nकृपया स्वस्य संरक्षिताऽवलिं पश्यतु ।",
+       "revdelete-only-restricted": "$2 दिनाङ्कस्य $1 समयस्य निगूढनकार्ये दोषः दृष्टः । भावान्/भवती दृश्यता-विकल्पे परिवर्तनं अकृत्वा प्रबन्धकेभ्यः एतत् परिवर्तनं निगूढितुं न शक्नोति ।",
        "revdelete-reason-dropdown": "* अपाकरणस्य सामान्यकारणानि\n** प्रतिकृत्यधिकारस्य उल्लङ्घनम्\n** अयोग्या टिप्पणी वैयक्तिकमाहिती वा\n** अयोग्यं सभ्यनाम\n** हानिकारकमाहिती",
        "revdelete-otherreason": "अपरं/अतिरिक्तं कारणम् :",
        "revdelete-reasonotherlist": "अन्यानि कारणानि",
        "revdelete-edit-reasonlist": "सम्पादनस्य अपाकरणाय कारणानि",
        "revdelete-offender": "संस्करणकर्ता",
-       "suppressionlog": "निà¤\97à¥\8dरहनामाभिलà¥\87à¤\96à¤\83 à¥¤",
-       "suppressionlogtext": "à¤\85धà¥\8bनिदà¥\87शितपà¥\8dरशासà¤\95à¥\88à¤\83 à¤¸à¤\99à¥\8dà¤\97à¥\81पà¥\8dतसà¥\8dय à¤µà¤¿à¤­à¤¾à¤\97सà¥\8dय à¤¨à¤¿à¤·à¥\8dà¤\95ासितपà¥\81à¤\9fानाà¤\82 à¤¸à¥\82à¤\9aà¥\80 à¥¤\nनिषिदà¥\8dधपिहितपà¥\81à¤\9fानि  [[Special:BlockList|block list]] पश्यतु ।",
-       "mergehistory": "सà¤\82लà¥\80नपà¥\81à¤\9fà¥\87तिहासाà¤\83 à¥¤",
-       "mergehistory-header": "à¤\8fततà¥\8dपà¥\81à¤\9fà¤\82 à¤\95सà¥\8dयà¤\9aितà¥\8d à¤¸à¥\8dरà¥\8bतपà¥\81à¤\9fसà¥\8dय à¤\87तिहाससà¥\8dय à¤¸à¤\82यà¥\8bà¤\9cनारà¥\8dथमसà¥\8dति à¥¤\nà¤\8fततà¥\8dपरिवरà¥\8dतनà¤\82 à¤ªà¥\82रà¥\8dवतनपà¥\81à¤\9fà¥\88à¤\83 à¤¨à¥\88रनà¥\8dतरà¥\8dयà¤\82 à¤°à¤\95à¥\8dषति à¤\87ति à¤¦à¥\83ढयतà¥\81 ।",
-       "mergehistory-box": "पà¥\81à¤\9fदà¥\8dवयसà¥\8dय à¤\85वतरणà¤\82 à¤µà¥\8dयलà¥\80यतामà¥\8d à¥¤",
-       "mergehistory-from": "मà¥\82लपà¥\81à¤\9fमà¥\8d à¥¤",
-       "mergehistory-into": "लà¤\95à¥\8dषितपà¥\81à¤\9fमà¥\8d à¥¤",
-       "mergehistory-list": "विलीनयोग्यसम्पादनस्य इतिहासः ।",
-       "mergehistory-merge": "[[:$1]] à¤\87तà¥\8dयसà¥\8dय à¤¨à¤¿à¤®à¥\8dनावतरणà¤\82 à¥¤ [[:$2]] à¤\87तà¥\8dयनà¥\87न à¤¸à¤\82यà¥\8bà¤\9cयितà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9fà¤\95ालà¥\87 à¤¸à¤°à¥\8dà¤\9cितानि à¤¸à¤\82यà¥\8bà¤\9cयितà¥\81à¤\82 à¤°à¥\87डियà¥\8bपिà¤\9eà¥\8dà¤\9cसà¥\8dतमà¥\8dभमà¥\8d à¤\89पयà¥\8bà¤\9cयतà¥\81 à¥¤ \nसà¤\9eà¥\8dà¤\9aलनसà¥\8dय à¤\85नà¥\81बनà¥\8dधाà¤\83 à¤¸à¥\8dतमà¥\8dभमà¥\87तà¤\82 à¤ªà¥\81नà¤\83सà¥\8dथापयति ।",
-       "mergehistory-go": "विलीनयोग्यसम्पादनानि दर्शयतु ।",
+       "suppressionlog": "निà¤\97à¥\8dरहणानाà¤\82 à¤¸à¤\82रà¤\95à¥\8dषणाऽवलिà¤\83",
+       "suppressionlogtext": "à¤\85धà¤\83 à¤\85वरà¥\8bधितपà¥\83षà¥\8dठानामà¥\8d, à¤\85पाà¤\95रणà¥\80यपà¥\83षà¥\8dठानाà¤\82 à¤\9a à¤\86वलिà¤\83 à¤\85सà¥\8dति à¥¤ à¤\8fषा à¤\86वलिà¤\83 à¤ªà¥\8dरबनà¥\8dधà¤\95à¥\87भà¥\8dयà¤\83 à¤¨à¤¿à¤\97à¥\82ढिता à¤\85सà¥\8dति à¥¤\nसदà¥\8dयà¤\83à¤\95ालà¥\80ना à¤\85वरà¥\8bधितपà¥\83षà¥\8dठानामà¥\8d, à¤\85पाà¤\95रणà¥\80यपà¥\83षà¥\8dठानाà¤\82 à¤\9a à¤\86वलिà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81मà¥\8d [[Special:BlockList|à¤\85वरà¥\8bधितावलिà¤\83]] पश्यतु ।",
+       "mergehistory": "पà¥\83षà¥\8dठयà¥\8bà¤\83 à¤\87तिहाससà¥\8dय à¤µà¤¿à¤²à¥\80निà¤\95रणà¤\82 à¤\95रà¥\8bतà¥\81",
+       "mergehistory-header": "à¤\8fà¤\95सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासà¥\87न à¤¸à¤¹ à¤¨à¤µà¥\80नपà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासमà¥\8d à¤\8fà¤\95तà¥\8dरà¥\80à¤\95रà¥\8dतà¥\81मà¥\8d à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤¾à¤¹à¤¾à¤¯à¥\8dयà¤\82 à¤\95रà¥\8bति à¥¤ à¤\85तà¥\8dर à¤\87तिहासà¤\83 à¤\95à¥\8dरमशà¤\83 à¤­à¤µà¥\87तà¥\8d à¤\87ति à¤\85वधà¥\87यमà¥\8d ।",
+       "mergehistory-box": "दà¥\8dवयà¥\8bà¤\83 à¤ªà¥\83षà¥\8dठयà¥\8bà¤\83 à¤\87तिहासà¤\83 à¤\8fà¤\95तà¥\8dरà¥\80à¤\95à¥\8dरियतामà¥\8d :",
+       "mergehistory-from": "सà¥\8dरà¥\8bतपà¥\83षà¥\8dठमà¥\8d :",
+       "mergehistory-into": "लà¤\95à¥\8dषितपà¥\83षà¥\8dठमà¥\8d :",
+       "mergehistory-list": "विलीनयोग्यसम्पादनस्य इतिहासः",
+       "mergehistory-merge": "[[:$1]] à¤\87तà¥\8dयसà¥\8dय à¤¨à¤¿à¤®à¥\8dनसà¤\82सà¥\8dà¤\95रणानि [[:$2]] à¤\87तà¥\8dयनà¥\87न à¤¸à¤¹ à¤¸à¤\82यà¥\8bà¤\9cयितà¥\81à¤\82 à¤¶à¤\95à¥\8dयनà¥\8dतà¥\87 à¥¤ à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9fà¤\95ालसà¥\8dय, à¤¤à¤¸à¥\8dमातà¥\8d à¤ªà¥\82रà¥\8dवतनसà¥\8dय à¤\9a à¤¸à¤\82सà¥\8dà¤\95रणानि à¤\8fà¤\95तà¥\8dरà¥\80à¤\95रà¥\8dतà¥\81à¤\82 à¤°à¥\87डियà¥\8b-à¤\95à¥\81डà¥\8dमलसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤\95रà¥\8bतà¥\81 à¥¤ \nसà¥\82à¤\9aनायाà¤\83, à¤¸à¤\9eà¥\8dà¤\9aरणसà¥\8dय (navigation) à¤\9a à¤\89पयà¥\8bà¤\97à¤\95रà¥\8dतारà¤\83 à¤\8fतà¥\87 à¤¸à¥\8dतमà¥\8dभाà¤\83 à¤ªà¥\81नà¤\83 à¤ªà¥\82रà¥\8dववतà¥\8d à¤­à¤µà¤¿à¤·à¥\8dयति ।",
+       "mergehistory-go": "विलीनयोग्यसम्पादनानि दर्शयतु",
        "mergehistory-submit": "अवतरणं योजयतु ।",
        "mergehistory-empty": "अवतरणानि संयोजयितुं न शक्यते ।",
        "mergehistory-success": "$3 {{PLURAL:$3|revision|revisions}} of [[:$1]] successfully merged into [[:$2]].",
index 9f77a37..22e4e98 100644 (file)
        "nav-login-createaccount": "Intra / registhrazioni",
        "loginprompt": "Pa intrà a {{SITENAME}} è nezzessàriu abirità li cookie.",
        "userlogin": "Intra o cria una noba registhrazioni",
+       "userloginnocreate": "Intra",
        "logout": "Esci",
        "userlogout": "Esci",
        "notloggedin": "Intradda no effettuadda",
        "gotaccountlink": "Intra",
        "userlogin-resetlink": "Hai immintiggaddu li minuddi d'intradda?",
        "createaccountmail": "via postha erettrònica",
+       "createaccountreason": "Mutibu:",
+       "createacct-reason": "Mutibu",
        "badretype": "Li paràuri d'órdhini insiriddi nò cuinzidhini tra èddi.",
        "userexists": "L'innòmu utenti insiriddu è già utirizaddu. Pa pazieri chirria un'innòmu utenti dibessu.",
        "loginerror": "Errori i' l'intradda",
        "changepassword-success": "La paràura d'órdhini tóia è isthadda mudìfiggadda. Abà sei intrendi...",
        "resetpass_forbidden": "No è pussìbiri mudifiggà li paràuri d'órdhini in {{SITENAME}}.",
        "passwordreset-username": "Innòmu utenti:",
+       "changeemail-none": "(nisciunu)",
        "resettokens-tokens": "Token:",
        "bold_sample": "Grassetu",
        "bold_tip": "Grassetu",
        "rev-deleted-text-permission": "Chistha versioni di la pàgina è isthadda buggadda da l'archìbi visìbiri a lu pùbbriggu.\nCunsulthà lu [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rigisthru di canzilladdura] pa althri dettàgli.",
        "rev-deleted-text-view": "Chistha versioni di la pàgina è isthadda buggadda da l'archìbi visìbiri a lu pùbbriggu.\nLu testhu pò assé visuarizzaddu soru da l'amministhradori di lu situ.\nCunsulthà lu [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rigisthru di canzilladdura] pa althri dettàgli.",
        "rev-delundel": "musthrà/cuà",
+       "rev-showdeleted": "musthra",
        "revisiondelete": "Canzella o ricùpara versioni",
        "revdelete-nooldid-title": "Versioni nò ippizzificadda",
        "revdelete-nooldid-text": "No ài ippizzificaddu la o li versioni di la pàgina i' li quari eseguì chistha funzioni; pò assé chi nò esisthini.",
        "revdelete-show-file-submit": "Si",
        "logdelete-selected": "{{PLURAL:$1|Eventu di lu rigisthru sciubaraddu|Eventi di lu rigisthru sciubaraddi}}:",
        "revdelete-legend": "Impustha li sighenti limitazioni i'li versioni canzilladdi:",
-       "revdelete-hide-text": "Cua lu testhu di la versioni",
+       "revdelete-hide-text": "Testhu di la versioni",
        "revdelete-hide-image": "Cua li cuntinuddi di lu file",
        "revdelete-hide-name": "Cua azioni e oggettu di la matessi",
        "revdelete-hide-comment": "Cua l'oggettu di la mudìfigga",
        "revdelete-hide-restricted": "Apprica chisthi limitazioni puru a l'amministhradori e brocca chistha interfàccia",
        "revdelete-suppress": "Cua l'infuimmazioni puru a l'amministhradori",
        "revdelete-unsuppress": "Elimina li limitazioni i' li ribisioni turraddi che primma",
-       "revdelete-log": "Cummentu pa lu rigisthru:",
+       "revdelete-log": "Mutibu:",
        "revdelete-submit": "Apprica a la ribisioni isciubaradda",
        "revdelete-success": "'''Visibiriddai di la ribisioni impusthadda.'''",
        "logdelete-success": "'''Visibiriddai di l'eventu impusthadda.'''",
        "revdel-restore": "Ciamba la visibiriddai",
+       "revdelete-reasonotherlist": "Althra mutibazioni",
        "mergehistory": "Unioni cronologi",
        "mergehistory-box": "Unì la cronologia di dui pàgini:",
        "mergehistory-from": "Pàgina d'orìgini:",
        "mergehistory-no-destination": "La pàgina dI disthinazioni $1 nò isisthi.",
        "mergehistory-invalid-source": "La pàgina d'orìgini débi abé un tìturu currettu.",
        "mergehistory-invalid-destination": "La pàgina di disthinazioni débi abé un tìturu currettu.",
+       "mergehistory-reason": "Mutibu:",
        "mergelog": "Rigisthru di l'unioni",
        "pagemerge-logentry": "ha uniddu [[$1]] a [[$2]] (ribisioni finz'a $3)",
        "revertmerge": "Anulla unioni",
        "servertime": "Ora di lu server:",
        "guesstimezone": "Usa l'ora di lu tóiu nabiggadori",
        "allowemail": "Cunsenti lu rizzibimentu di postha erettrònica d'althri utenti (1)",
-       "prefs-searchoptions": "Opzioni di zercha",
+       "prefs-searchoptions": "Zercha",
        "prefs-namespaces": "Tipu di pagina",
        "defaultns": "Namespace pridifiniddi pa zirchà:",
        "default": "pridifiniddu",
        "userrights-editusergroup": "Mudìfigga gruppi utenti",
        "saveusergroups": "Sàivva gruppi utenti",
        "userrights-groupsmember": "Appartheni a li gruppi:",
-       "userrights-reason": "Mutibu di la mudìffiga:",
+       "userrights-reason": "Mutibu:",
        "userrights-no-interwiki": "Nò ài lu primmissu pa mudìfiggà li diritti di l'utenti i' althri siti.",
        "userrights-nodatabase": "La bancadati $1 nò isisthi o nò è in lucari.",
        "userrights-nologin": "Débi [[Special:UserLogin|intrà]] cumenti amministhradori pa assignà li diritti utenti.",
        "group-bureaucrat": "Buròcrati",
        "group-suppress": "Ibbàgli",
        "group-all": "(utenti)",
-       "group-user-member": "Utenti",
+       "group-user-member": "{{GENDER:$1|utenti}}",
        "group-autoconfirmed-member": "Utenti autocunfèimmaddu",
-       "group-bot-member": "Bot",
+       "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "Amministhradori",
        "group-bureaucrat-member": "Buròcrati",
        "group-suppress-member": "Ibbàgliu",
        "rightslogtext": "Chisthu è lu rigisthru di lu mudìfigghi a li diritti assignaddi a l'utenti.",
        "action-edit": "mudìfiggà chistha pàgina",
        "nchanges": "$1 {{PLURAL:$1|mudìfigga|mudìfigghi}}",
+       "enhancedrc-history": "cronologia",
        "recentchanges": "Ulthimi mudìfigghi",
        "recentchanges-legend": "Opzioni ùlthimi mudìfigghi",
        "recentchanges-summary": "Chistha pàgina prisinta li mudìfigghi più rizzenti a li cuntinuddi di lu situ.",
        "listfiles_user": "Utenti",
        "listfiles_size": "Misuri in byte",
        "listfiles_description": "Deschrizioni",
+       "listfiles-latestversion-yes": "Sì",
        "file-anchor-link": "Immàgina",
        "filehist": "Cronologia di lu file",
        "filehist-help": "Fà clic i' un gruppu data/ora pa vidé lu file cumenti era i' lu mamentu indicaddu.",
        "filerevert": "Turra che primma $1",
        "filerevert-legend": "Ricupara file",
        "filerevert-intro": "N'isthai pa ricuparà lu file '''[[Media:$1|$1]]''' a la [versioni $4 di lu $2, $3].",
-       "filerevert-comment": "Oggettu:",
+       "filerevert-comment": "Mutibu:",
        "filerevert-defaultcomment": "Turradda che primma la versioni di lu $1, $2",
        "filerevert-submit": "Turra che primma",
        "filerevert-success": "'''Lu file [[Media:$1|$1]]''' è isthaddu ricuparaddu a la [versioni $4 di lu $2, $3].",
        "brokenredirects-delete": "canzella",
        "withoutinterwiki": "Pàgini chena cullegamenti p'althri linghi",
        "withoutinterwiki-summary": "Li sighenti pàgini so chena cullegamenti a versioni in althri linghi (interwiki):",
+       "withoutinterwiki-legend": "Prefissu",
        "withoutinterwiki-submit": "Musthra",
        "fewestrevisions": "Pàgini cun mancu ribisioni",
        "nbytes": "$1 {{PLURAL:$1|byte|byte}}",
        "ncategories": "$1 {{PLURAL:$1|categuria|categuri}}",
+       "ninterwikis": "$1 {{PLURAL:$1|interwiki}}",
        "nlinks": "$1 {{PLURAL:$1|cullegamentu|cullegamenti}}",
        "nmembers": "$1 {{PLURAL:$1|erementu|erementi}}",
        "nrevisions": "$1 {{PLURAL:$1|ribisioni|ribisioni}}",
        "protectedpages": "Pàgini prutiggiddi",
        "protectedpages-noredirect": "Cuà rinvii",
        "protectedpagesempty": "Abà nò vi so pàgini prutiggiddi.",
+       "protectedpages-page": "Pàgina",
+       "protectedpages-reason": "Mutibu",
+       "protectedpages-unknown-timestamp": "Ischunisciddu",
        "protectedtitles": "Tìturi prutiggiddi",
        "protectedtitlesempty": "Abà nò vi so tìturi prutiggiddi.",
        "listusers": "Erencu di li utenti",
        "protect-level-sysop": "Soru amministhradori",
        "protect-summary-cascade": "ricussiba",
        "protect-expiring": "ischadènzia: $1 (UTC)",
+       "protect-expiry-indefinite": "infiniddu",
        "protect-cascade": "Prutizioni ricussiba (isthendi la prutizioni a tutti li pàgini incrusi in chistha)",
        "protect-cantedit": "Nò è pussìbiri mudìfiggà li libelli di prutizioni pa la pàgina parchí nò si diponi di pimmissi nezzessàri pa mudìfiggà la pàgina.",
        "protect-expiry-options": "2 ori:2 hours,1 dì:1 day,3 dì:3 days,1 chedda:1 week,2 cheddi:2 weeks,1 mesi:1 month,3 mesi:3 months,6 mesi:6 months,1 anni:1 year,infiniddu:infinite",
        "undelete-missing-filearchive": "Impussìbiri ricuparà l'ID $1 di l'archìbiu file parchí nò è prisenti i' la bancadati. Pudia assé isthaddu già ricuparaddu.",
        "undelete-error-short": "Errori i' lu ricùparu di lu file: $1",
        "undelete-error-long": "Si so verifiggaddi di l'errori annullendi la canzilladdura di lu file:\n\n$1",
+       "undelete-show-file-submit": "Sì",
        "namespace": "Tipu di pàgina:",
        "invert": "invirthi la isciubaradda",
        "blanknamespace": "(Prinzipari)",
        "export-submit": "Ippurtha",
        "export-addcattext": "Aggiungi pàgini da la categuria:",
        "export-addcat": "Aggiungi",
+       "export-addns": "Aggiungì",
        "export-download": "Dumanda lu saivvamentu cumenti file",
        "allmessages": "Imbasciaddi di sisthema",
        "allmessagesname": "Nommu",
        "spambot_username": "MediaWiki buggadda spam",
        "spam_reverting": "Turradda a l'ulthima versioni chena cullegamenti a $1",
        "spam_blanking": "Pàgina ibbiuddadda, tutti li ribisioni abìani cullegamenti a $1",
+       "pageinfo-contentpage-yes": "Sì",
+       "pageinfo-protect-cascading-yes": "Sì",
        "markaspatrolleddiff": "Signa la mudìffiga cumenti verifiggadda",
        "markaspatrolledtext": "Signa chistha pàgina cumenti verifiggadda",
        "markedaspatrolled": "Signaddu cumenti verifiggaddu",
        "exif-flash": "Caratterìsthiga e cundizioni di lu lampu",
        "exif-flashenergy": "Putènzia di lu lampu",
        "exif-contrast": "Cuntrollu cuntrasthu",
+       "exif-languagecode": "Linga",
+       "exif-iimcategory": "Categuria",
        "exif-orientation-1": "Noimmari",
        "exif-componentsconfiguration-0": "assenti",
        "exif-subjectdistance-value": "$1 metri",
        "recreate": "Ricrea",
        "confirm_purge_button": "Cunfèimma",
        "confirm-purge-top": "Vói pulì la mimória cache di chistha pàgina?",
+       "quotation-marks": "«$1»",
        "imgmultipageprev": "← pàgina prizzidenti",
        "imgmultipagenext": "pàgina sighenti →",
        "imgmultigo": "Vai",
        "specialpages": "Pagini ippiziari",
        "specialpages-group-login": "Intra / registhrazioni",
        "tag-filter": "[[Special:Tags|Tag]] filthru:",
+       "tags-active-yes": "Sì",
        "tags-edit": "mudifigga",
        "htmlform-submit": "Invia",
        "htmlform-reset": "Annulla mudifigghi",
        "htmlform-selectorother-other": "Althru",
+       "htmlform-yes": "Sì",
        "rightsnone": "(nisciunu)"
 }
index 5e73b3e..002b191 100644 (file)
        "permalink": "Трајна веза",
        "print": "Штампај",
        "view": "Погледај",
+       "view-foreign": "Види на $1",
        "edit": "Уреди",
+       "edit-local": "Уреди локални опис",
        "create": "Направи",
+       "create-local": "Додај локални опис",
        "editthispage": "Уреди ову страницу",
        "create-this-page": "Направи ову страницу",
        "delete": "Обриши",
        "uploadnewversion-linktext": "Пошаљи нову верзију ове датотеке",
        "shared-repo-from": "из $1",
        "shared-repo": "заједничко складиште",
-       "shared-repo-name-wikimediacommons": "Викимедијина остава",
+       "shared-repo-name-wikimediacommons": "{{#SWITCH:{{{1|}}}\n|#default=Викимедијина остава\n|dat=Викимедијиној остави\n}}",
        "filepage.css": "/* CSS који је постављен овде се налази на страницама за опис датотека, као и на страним викијима */",
        "upload-disallowed-here": "Не можете да замените ову датотеку.",
        "filerevert": "Врати $1",
index 7c1aedb..c40efa6 100644 (file)
        "permalink": "Trajna veza",
        "print": "Štampaj",
        "view": "Pogledaj",
+       "view-foreign": "Vidi na $1",
        "edit": "Uredi",
+       "edit-local": "Uredi lokalni opis",
        "create": "Napravi",
+       "create-local": "Dodaj lokalni opis",
        "editthispage": "Uredi ovu stranicu",
        "create-this-page": "Napravi ovu stranicu",
        "delete": "Obriši",
        "uploadnewversion-linktext": "Pošalji novo izdanje ove datoteke",
        "shared-repo-from": "iz $1",
        "shared-repo": "zajedničko skladište",
-       "shared-repo-name-wikimediacommons": "Vikimedijina ostava",
+       "shared-repo-name-wikimediacommons": "{{#SWITCH:{{{1|}}}\n|#default=Vikimedijina ostava\n|dat=Vikimedijinoj ostavi\n}}",
        "filepage.css": "/* CSS koji je postavljen ovde se nalazi na stranicama za opis datoteka, kao i na stranim vikijima */",
        "upload-disallowed-here": "Ne možete da zamenite ovu datoteku.",
        "filerevert": "Vrati $1",
index dc6b031..0467a43 100644 (file)
        "undo-summary-username-hidden": "Gör version $1 av en dold användare ogjord",
        "cantcreateaccounttitle": "Kan inte skapa konto",
        "cantcreateaccount-text": "[[User:$3|$3]] har blockerat den här IP-adressen ('''$1''') från att registrera konton.\n\nAnledningen till blockeringen var \"$2\".",
-       "cantcreateaccount-range-text": "IP-adresserna mellan '''$1''', som inkluderar din IP-adress ('''$4'''), har blockerats från att registrera konton av [[User:$3|$3]].\n\nAnledningen enligt $3 var ''$2''",
+       "cantcreateaccount-range-text": "IP-adresserna i intervallet '''$1''', som inkluderar din IP-adress ('''$4'''), har blockerats från att skapa konton av [[User:$3|$3]].\n\nAnledningen enligt $3 var ''$2''",
        "viewpagelogs": "Visa loggar för denna sida",
        "nohistory": "Den här sidan har ingen versionshistorik.",
        "currentrev": "Nuvarande version",
        "contributions-title": "Bidrag av $1",
        "mycontris": "Bidrag",
        "contribsub2": "För {{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "Användarkontot \"$1\" är inte registrerat.",
        "nocontribs": "Inga ändringar som motsvarar dessa kriterier hittades.",
        "uctop": "(senaste)",
        "month": "Från månad (och tidigare):",
index 77b3223..eea24b0 100644 (file)
@@ -21,7 +21,6 @@
        "tog-showtoolbar": "Redaktirleme mahalynda gural panelini görkez (JavaScript)",
        "tog-editondblclick": "Sahypany jübüt tyklap, redaktirläp başla (JavaScript)",
        "tog-editsectiononrightclick": "Bölümleri bölümiň adyna sag tyklap redaktirlemäge mümkinçilik döret (JavaScript)",
-       "tog-rememberpassword": "Sessiýamy şu brauzerde ýatda sakla  (iň köp $1 {{PLURAL:$1|günläp|günläp}})",
        "tog-watchcreations": "Döreden sahypalarymy gözegçilik sanawyma goş",
        "tog-watchdefault": "Redaktirlän sahypalarymy gözegçilik sanawyma goş",
        "tog-watchmoves": "Adyny üýtgeden sahypalarymy gözegçilik sanawyma goş",
        "and": "&#32;we",
        "qbfind": "Tap",
        "qbbrowse": "Göz aýla",
-       "qbedit": "Redaktirle",
+       "qbedit": "Düzet",
        "qbpageoptions": "Bu sahypa",
        "qbmyoptions": "Meniň sahypalarym",
        "faq": "KSS",
index 51bea03..6cf4e9b 100644 (file)
@@ -70,7 +70,6 @@
        "tog-showtoolbar": "Düzenleme araç çubuğunu göster",
        "tog-editondblclick": "Çift tıklayarak sayfaları düzenle",
        "tog-editsectiononrightclick": "Bölüm başlığına sağ tıklayarak bölümleri düzenleyebilme olanağı ver",
-       "tog-rememberpassword": "Girişimi bu tarayıcıda hatırla (en fazla $1 {{PLURAL:$1|gün|gün}} için)",
        "tog-watchcreations": "Açtığım sayfaları ve yüklediğim dosyaları izleme listeme ekle",
        "tog-watchdefault": "Düzenleme yaptığım sayfaları ve dosyaları izleme listeme ekle",
        "tog-watchmoves": "Taşıdığım sayfaları ve dosyaları izleme listeme ekle",
        "permalink": "Kalıcı bağlantı",
        "print": "Yazdır",
        "view": "Görüntüle",
+       "view-foreign": "$1 üzerinde gör",
        "edit": "Düzenle",
+       "edit-local": "Yerel açıklama düzenle",
        "create": "Oluştur",
+       "create-local": "Yerel açıklama ekle",
        "editthispage": "Bu sayfayı değiştir",
        "create-this-page": "Bu sayfayı oluştur",
        "delete": "Sil",
index db0d587..ae11274 100644 (file)
        "changed": "o‘zgartirildi",
        "deletepage": "Sahifani o'chirish",
        "confirm": "Tasdiqlash",
-       "excontent": "tarkibi: \"$1\"",
+       "excontent": "tarkibi: „$1“",
+       "excontentauthor": "tarkibi: „$1“ (faqat bitta muallifi bor edi: „[[Special:Contributions/$2|$2]]“)",
+       "exbeforeblank": "tozalashdan oldingi tarkibi: „$1“",
        "delete-confirm": "$1 — oʻchirish",
        "delete-legend": "O‘chirish",
        "actioncomplete": "Bajarildi",
index 9c4243d..6fce1eb 100644 (file)
        "contributions-title": "Đóng góp của thành viên $1",
        "mycontris": "Đóng góp",
        "contribsub2": "Của {{GENDER:$3}}$1 ($2)",
+       "contributions-userdoesnotexist": "Chưa có tài khoản với tên “$1”.",
        "nocontribs": "Không tìm thấy thay đổi nào khớp với yêu cầu.",
        "uctop": "(hiện tại)",
        "month": "Từ tháng (trở về trước):",
index 439e400..6bb3170 100644 (file)
@@ -22,7 +22,6 @@
        "tog-showtoolbar": "顯示編傢伙欄",
        "tog-editondblclick": "捺兩記編頁",
        "tog-editsectiononrightclick": "用右捺標題編段",
-       "tog-rememberpassword": "箇流覽器裏記牢我個登錄狀態(記$1{{PLURAL:$1|日|日}})",
        "tog-watchcreations": "畀我建个页搭我传个文件加进我个关注表里去",
        "tog-watchdefault": "畀我编个页搭文件加进我个关注表里去",
        "tog-watchmoves": "畀我移个页搭文件加进我个监控列表里去",
        "sort-descending": "倒排",
        "sort-ascending": "顺排",
        "nstab-main": "页",
-       "nstab-user": "用户页",
+       "nstab-user": "用户页",
        "nstab-media": "媒體頁",
        "nstab-special": "特別页",
        "nstab-project": "項目頁",
index 0bb9b03..2472cc4 100644 (file)
        "privacypage": "Project:隐私权政策",
        "badaccess": "权限错误",
        "badaccess-group0": "你被禁止执行你刚才请求的操作。",
-       "badaccess-groups": "您刚才请求的操作只对以下$2个用户组开放:$1。",
+       "badaccess-groups": "您请求的操作仅限属于{{PLURAL:$2|该用户组|这些用户组}}的用户执行:$1",
        "versionrequired": "需要$1版本的MediaWiki",
        "versionrequiredtext": "使用本页需要$1版本的MediaWiki。请见[[Special:Version|版本页面]]。",
        "ok": "确定",
        "sort-descending": "降序",
        "sort-ascending": "升序",
        "nstab-main": "页面",
-       "nstab-user": "用户页",
+       "nstab-user": "用户页",
        "nstab-media": "媒体文件页面",
        "nstab-special": "特殊页面",
        "nstab-project": "项目页面",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "expensive-parserfunction-warning": "<strong>警告:</strong>这个页面有太多高昂的语法功能调用。\n\n它应该少过$2次呼叫,现在有$1次呼叫。",
-       "expensive-parserfunction-category": "有过多高开销函数解析器调用的页面",
+       "expensive-parserfunction-category": "有过多高开销解析器函数调用的页面",
        "post-expand-template-inclusion-warning": "'''警告:'''包含模板大小过大。\n一些模板将不会包含。",
        "post-expand-template-inclusion-category": "模板包含大小超限的页面",
        "post-expand-template-argument-warning": "'''警告:'''本页面包含至少一个模板参数有过大扩展大小。这些参数会被略过。",
        "skin-preview": "预览",
        "datedefault": "默认格式",
        "prefs-labs": "实验室特性",
-       "prefs-user-pages": "用户页",
+       "prefs-user-pages": "用户页",
        "prefs-personal": "用户资料",
        "prefs-rc": "最近更改",
        "prefs-watchlist": "监视列表",
        "ipbother": "其它时间:",
        "ipboptions": "2小时:2 hours,1天:1 day,3天:3 days,1周:1 week,2周:2 weeks,1个月:1 month,3个月:3 months,6个月:6 months,1年:1 year,不限期:infinite",
        "ipbhidename": "在编辑及列表中隐藏用户名",
-       "ipbwatchuser": "监视该用户的用户页和讨论页",
+       "ipbwatchuser": "监视该用户的用户及讨论页面",
        "ipb-disableusertalk": "阻止用户在封禁期间编辑自己的讨论页",
        "ipb-change-block": "使用这些设置重新封禁用户",
        "ipb-confirm": "确认封禁",
index fa7e11c..cc7b471 100644 (file)
@@ -26,7 +26,7 @@
  */
 class Languages {
        /** @var array List of languages */
-       protected $mLanguages; #
+       protected $mLanguages;
 
        /** @var array Raw list of the messages in each language  */
        protected $mRawMessages;
index 62d1bba..442163e 100755 (executable)
@@ -6,21 +6,22 @@ then
        JSDUCK_MWVERSION="$2"
 elif [[ "$*" != "" ]]
 then
-       echo "Usage: $0 [--version <mediawiki version>]"
+       FILENAME=$(basename $0)
+       echo "Usage: $FILENAME [--version <mediawiki version>]"
        echo
        exit 1
 fi
 
+MWCORE_DIR=$(cd $(dirname $0)/..; pwd)
+
 # Support jsduck 4.x and 5.x
 JSDUCK_VERSION="$(jsduck --version | sed -e 's/[.].*//')"
 if [  "$JSDUCK_VERSION" = "JSDuck 4" ]; then
-       JSDUCK_VERSION_OPT="--meta-tags ./maintenance/jsduck/MetaTags.rb --warnings=-no_doc"
+       JSDUCK_VERSION_OPT="--meta-tags $MWCORE_DIR/maintenance/jsduck/MetaTags.rb --warnings=-no_doc"
 else
-       JSDUCK_VERSION_OPT="--tags ./maintenance/jsduck/CustomTags.rb --warnings=-nodoc(class,public)"
+       JSDUCK_VERSION_OPT="--tags $MWCORE_DIR/maintenance/jsduck/CustomTags.rb --warnings=-nodoc(class,public)"
 fi
 
-MWCORE_DIR=$(cd $(dirname $0)/..; pwd)
-
 jsduck \
 --config=$MWCORE_DIR/maintenance/jsduck/config.json \
 $JSDUCK_VERSION_OPT \
diff --git a/maintenance/resources/update-oojs-ui.sh b/maintenance/resources/update-oojs-ui.sh
new file mode 100755 (executable)
index 0000000..cc5988c
--- /dev/null
@@ -0,0 +1,97 @@
+#!/usr/bin/env bash
+
+# This script generates a commit that updates our distribution copy of OOjs UI
+
+if [ -z "$1" ]
+then
+       # Missing required parameter
+       echo >&2 "Usage: $0 path/to/repo/for/oojs-ui"
+       exit 1
+fi
+
+TARGET_REPO=$(cd $(dirname $0)/../..; pwd)
+TARGET_DIR=resources/lib/oojs-ui
+UI_REPO=$1
+
+function oojsuihash() {
+       grep "OOjs UI v" $TARGET_REPO/$TARGET_DIR/oojs-ui.js \
+               | head -n 1 \
+               | grep -Eo '\([a-z0-9]+\)' \
+               | sed 's/^(//' \
+               | sed 's/)$//'
+}
+
+function oojsuitag() {
+       grep "OOjs UI v" $TARGET_REPO/$TARGET_DIR/oojs-ui.js \
+               | head -n 1 \
+               | grep -Eo '\bv[0-9a-z.-]+\b'
+}
+
+function oojsuiversion() {
+       grep "OOjs UI v" $TARGET_REPO/$TARGET_DIR/oojs-ui.js \
+               | head -n 1 \
+               | grep -Eo '\bv[0-9a-z.-]+\b.*$'
+}
+
+# Prepare working tree
+cd $TARGET_REPO &&
+git reset $TARGET_DIR && git checkout $TARGET_DIR && git fetch origin &&
+git checkout -B upstream-oojsui origin/master || exit 1
+
+cd $UI_REPO || exit 1
+
+# Read the old version and check for changes
+OLDHASH=$(oojsuihash)
+if [ -z "$OLDHASH" ]
+then
+       OLDTAG=$(oojsuitag)
+fi
+if [ "$OLDHASH" == "" ]
+then
+       OLDHASH=$(git rev-parse $OLDTAG)
+       if [ $? != 0 ]
+       then
+               echo Could not find OOjs UI version
+               cd -
+               exit 1
+       fi
+fi
+if [ "$(git rev-parse $OLDHASH)" == "$(git rev-parse HEAD)" ]
+then
+       echo "No changes (already at $OLDHASH)"
+       cd -
+       exit 0
+fi
+
+# Build the distribution (using grunt-test instead of grunt-build, because we
+# want to run unit tests first, and because grunt-build is for a release build
+# and wouldn't put a git hash in the file headers)
+npm install && grunt test || exit 1
+
+# Get the list of changes
+NEWCHANGES=$(git log $OLDHASH.. --oneline --no-merges --reverse --color=never)
+NEWCHANGESDISPLAY=$(git log $OLDHASH.. --oneline --no-merges --reverse --color=always)
+
+# Copy files
+# - Exclude the default non-svg stylesheet
+rsync --recursive --delete --force --exclude 'oojs-ui.css' ./dist/ $TARGET_REPO/$TARGET_DIR || exit 1
+
+# Read the new version
+NEWVERSION=$(oojsuiversion)
+
+# Generate commit
+cd $TARGET_REPO
+COMMITMSG=$(cat <<END
+Update OOjs UI to $NEWVERSION
+
+New changes:
+$NEWCHANGES
+END
+)
+git add -u $TARGET_DIR && git add $TARGET_DIR && git commit -m "$COMMITMSG"
+cat >&2 <<END
+
+
+Created commit with changes:
+$NEWCHANGESDISPLAY
+END
index f26350f..2c50002 100755 (executable)
@@ -1,23 +1,24 @@
 #!/usr/bin/env bash
 
-if [ "$2" != "" ]
+if [ -n "$2" ]
 then
+       # Too many parameters
        echo >&2 "Usage: $0 [<version>]"
        exit 1
 fi
 
-MW_DIR=$(cd $(dirname $0)/../..; pwd) # e.g. mediawiki-core/
-NPM_DIR=`mktemp -d 2>/dev/null || mktemp -d -t 'mw-update-oojs'` # e.g. /tmp/mw-update-oojs.rI0I5Vir
-
-# Prepare MediaWiki working copy
-cd $MW_DIR
-git reset resources/lib/oojs/ && git checkout resources/lib/oojs/ && git fetch origin || exit 1
+REPO_DIR=$(cd $(dirname $0)/../..; pwd) # Root dir of the git repo working tree
+TARGET_DIR=resources/lib/oojs # Destination relative to the root of the repo
+NPM_DIR=`mktemp -d 2>/dev/null || mktemp -d -t 'update-oojs'` # e.g. /tmp/update-oojs.rI0I5Vir
 
+# Prepare working tree
+cd $REPO_DIR &&
+git reset $TARGET_DIR && git checkout $TARGET_DIR && git fetch origin &&
 git checkout -B upstream-oojs origin/master || exit 1
 
 # Fetch upstream version
 cd $NPM_DIR
-if [ "$1" != "" ]
+if [ -n "$1" ]
 then
        npm install oojs@$1 || exit 1
 else
@@ -32,14 +33,14 @@ then
 fi
 
 # Copy file(s)
-mv ./node_modules/oojs/dist/* $MW_DIR/resources/lib/oojs/ || exit 1
-
-# Generate commit
-cd $MW_DIR || exit 1
+rsync --recursive --delete --force ./node_modules/oojs/dist $REPO_DIR/$TARGET_DIR || exit 1
 
 # Clean up temporary area
 rm -rf $NPM_DIR
 
+# Generate commit
+cd $REPO_DIR || exit 1
+
 COMMITMSG=$(cat <<END
 Update OOjs to v$OOJS_VERSION
 
@@ -48,4 +49,5 @@ Release notes:
 END
 )
 
-git commit resources/lib/oojs/ -m "$COMMITMSG" || exit 1
+# Stage deletion, modification and creation of files. Then commit.
+git add --update $TARGET_DIR && git add $TARGET_DIR && git commit -m "$COMMITMSG" || exit 1
index 8b0d675..a3c427e 100644 (file)
@@ -135,7 +135,8 @@ return array(
        'skins.vector.styles' => array(
                // Used in the web installer. Test it after modifying this definition!
                'styles' => array(
-                       'vector/styles.less',
+                       'vector/screen.less' => array( 'media' => 'screen' ),
+                       'vector/screen-hd.less' => array( 'media' => 'screen and (min-width: 982px)' ),
                ),
                'remoteBasePath' => $GLOBALS['wgStylePath'],
                'localBasePath' => $GLOBALS['wgStyleDirectory'],
index b2352ce..105d806 100644 (file)
@@ -12,5 +12,6 @@
        "ooui-dialog-action-close": "Racnê",
        "ooui-outline-control-move-down": "Bendi bere cêr",
        "ooui-outline-control-move-up": "Bendi bere cor",
+       "ooui-outline-control-remove": "Obji hewad",
        "ooui-toolbar-more": "Zewbi"
 }
diff --git a/resources/lib/oojs-ui/i18n/egl.json b/resources/lib/oojs-ui/i18n/egl.json
new file mode 100644 (file)
index 0000000..831da51
--- /dev/null
@@ -0,0 +1,12 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Lévi"
+               ]
+       },
+       "ooui-dialog-action-close": "Sèra",
+       "ooui-outline-control-move-down": "Spôsta in bâs",
+       "ooui-outline-control-move-up": "Spôsta in êlt",
+       "ooui-outline-control-remove": "Armōv l'elemèint",
+       "ooui-toolbar-more": "Êter"
+}
index 7f4874d..35f26c6 100644 (file)
@@ -8,5 +8,6 @@
        "ooui-dialog-action-close": "Sèra",
        "ooui-outline-control-move-down": "Spôsta in bâs",
        "ooui-outline-control-move-up": "Spôsta in êlt",
+       "ooui-outline-control-remove": "Tór vìa 'l elemèint",
        "ooui-toolbar-more": "Êter"
 }
index 8cb2f01..d2b89a7 100644 (file)
@@ -17,8 +17,8 @@
                ]
        },
        "ooui-dialog-action-close": "Cerrar",
-       "ooui-outline-control-move-down": "Mover abajo",
-       "ooui-outline-control-move-up": "Mover arriba",
+       "ooui-outline-control-move-down": "Bajar elemento",
+       "ooui-outline-control-move-up": "Subir elemento",
        "ooui-outline-control-remove": "Eliminar elemento",
        "ooui-toolbar-more": "Más"
 }
diff --git a/resources/lib/oojs-ui/i18n/tg-cyrl.json b/resources/lib/oojs-ui/i18n/tg-cyrl.json
new file mode 100644 (file)
index 0000000..908c894
--- /dev/null
@@ -0,0 +1,12 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ibrahim"
+               ]
+       },
+       "ooui-dialog-action-close": "Пӯшиш",
+       "ooui-outline-control-move-down": "Ҳаракати мавод ба поён",
+       "ooui-outline-control-move-up": "Ҳаракати мавод ба боло",
+       "ooui-outline-control-remove": "Ҳазви мавод",
+       "ooui-toolbar-more": "Бештар"
+}
diff --git a/resources/lib/oojs-ui/images/fade-down.png b/resources/lib/oojs-ui/images/fade-down.png
deleted file mode 100644 (file)
index 50c7931..0000000
Binary files a/resources/lib/oojs-ui/images/fade-down.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/images/fade-up.png b/resources/lib/oojs-ui/images/fade-up.png
deleted file mode 100644 (file)
index 7a0cb87..0000000
Binary files a/resources/lib/oojs-ui/images/fade-up.png and /dev/null differ
index b6e8d3a..9e6cc6d 100644 (file)
           transform: scale(1);
 }
 
+.oo-ui-dialog-content .oo-ui-window-head,
+.oo-ui-dialog-content .oo-ui-window-foot {
+  z-index: 1;
+}
+
 .oo-ui-dialog-content .oo-ui-window-body {
+  z-index: 2;
   box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
 }
 
+.oo-ui-dialog-content .oo-ui-window-overlay {
+  z-index: 3;
+}
+
 .oo-ui-frame-content {
   font-family: sans-serif;
   font-size: 0.8em;
   box-shadow: none;
 }
 
-.oo-ui-bookletLayout > .oo-ui-gridLayout > .oo-ui-panelLayout {
-  -webkit-transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
-     -moz-transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
-      -ms-transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
-       -o-transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
-          transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
-}
-
 .oo-ui-bookletLayout-outlinePanel {
   border-right: solid 1px #ddd;
 }
index bed97f3..3257604 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (9d291a9222)
+ * OOjs UI v0.1.0-pre (989950a4db)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Wed Apr 16 2014 18:45:32 GMT-0700 (PDT)
+ * Date: Fri Apr 18 2014 13:02:46 GMT-0700 (PDT)
  */
 ( function ( OO ) {
 
@@ -1535,6 +1535,7 @@ OO.ui.Dialog = function OoUiDialog( config ) {
        this.visible = false;
        this.footless = !!config.footless;
        this.size = null;
+       this.pending = 0;
        this.onWindowMouseWheelHandler = OO.ui.bind( this.onWindowMouseWheel, this );
        this.onDocumentKeyDownHandler = OO.ui.bind( this.onDocumentKeyDown, this );
 
@@ -1721,6 +1722,49 @@ OO.ui.Dialog.prototype.close = function ( data ) {
                }, 250 );
        }
 };
+
+/**
+ * Check if input is pending.
+ *
+ * @return {boolean}
+ */
+OO.ui.Dialog.prototype.isPending = function () {
+       return !!this.pending;
+};
+
+/**
+ * Increase the pending stack.
+ *
+ * @chainable
+ */
+OO.ui.Dialog.prototype.pushPending = function () {
+       if ( this.pending === 0 ) {
+               this.frame.$content.addClass( 'oo-ui-dialog-pending' );
+               this.$head.addClass( 'oo-ui-texture-pending' );
+               this.$foot.addClass( 'oo-ui-texture-pending' );
+       }
+       this.pending++;
+
+       return this;
+};
+
+/**
+ * Reduce the pending stack.
+ *
+ * Clamped at zero.
+ *
+ * @chainable
+ */
+OO.ui.Dialog.prototype.popPending = function () {
+       if ( this.pending === 1 ) {
+               this.frame.$content.removeClass( 'oo-ui-dialog-pending' );
+               this.$head.removeClass( 'oo-ui-texture-pending' );
+               this.$foot.removeClass( 'oo-ui-texture-pending' );
+       }
+       this.pending = Math.max( 0, this.pending - 1 );
+
+       return this;
+};
 /**
  * Container for elements.
  *
@@ -2148,7 +2192,6 @@ OO.ui.FlaggableElement.prototype.setFlags = function ( flags ) {
  * @constructor
  * @param {jQuery} $group Container node, assigned to #$group
  * @param {Object} [config] Configuration options
- * @cfg {Object.<string,string>} [aggregations] Events to aggregate, keyed by item event name
  */
 OO.ui.GroupElement = function OoUiGroupElement( $group, config ) {
        // Configuration
@@ -2158,8 +2201,7 @@ OO.ui.GroupElement = function OoUiGroupElement( $group, config ) {
        this.$group = $group;
        this.items = [];
        this.$items = this.$( [] );
-       this.aggregate = !$.isEmptyObject( config.aggregations );
-       this.aggregations = config.aggregations || {};
+       this.aggregateItemEvents = {};
 };
 
 /* Methods */
@@ -2173,6 +2215,54 @@ OO.ui.GroupElement.prototype.getItems = function () {
        return this.items.slice( 0 );
 };
 
+/**
+ * Add an aggregate item event.
+ *
+ * Aggregated events are listened to on each item and then emitted by the group under a new name,
+ * and with an additional leading parameter containing the item that emitted the original event.
+ * Other arguments that were emitted from the original event are passed through.
+ *
+ * @param {Object.<string,string|null>} events Aggregate events emitted by group, keyed by item
+ *   event, use null value to remove aggregation
+ * @throws {Error} If aggregation already exists
+ */
+OO.ui.GroupElement.prototype.aggregate = function ( events ) {
+       var i, len, item, add, remove, itemEvent, groupEvent;
+
+       for ( itemEvent in events ) {
+               groupEvent = events[itemEvent];
+
+               // Remove existing aggregated event
+               if ( itemEvent in this.aggregateItemEvents ) {
+                       // Don't allow duplicate aggregations
+                       if ( groupEvent ) {
+                               throw new Error( 'Duplicate item event aggregation for ' + itemEvent );
+                       }
+                       // Remove event aggregation from existing items
+                       remove = {};
+                       remove[itemEvent] = this.aggregateItemEvents[itemEvent];
+                       for ( i = 0, len = this.items.length; i < len; i++ ) {
+                               this.items[i].disconnect( this, remove );
+                       }
+                       // Prevent future items from aggregating event
+                       delete this.aggregateItemEvents[itemEvent];
+               }
+
+               // Add new aggregate event
+               if ( groupEvent ) {
+                       // Make future items aggregate event
+                       this.aggregateItemEvents[itemEvent] = groupEvent;
+                       // Add event aggregation to existing items
+                       for ( i = 0, len = this.items.length; i < len; i++ ) {
+                               item = this.items[i];
+                               add = {};
+                               add[itemEvent] = [ 'emit', groupEvent, item ];
+                               item.connect( this, add );
+                       }
+               }
+       }
+};
+
 /**
  * Add items.
  *
@@ -2197,10 +2287,10 @@ OO.ui.GroupElement.prototype.addItems = function ( items, index ) {
                        }
                }
                // Add the item
-               if ( this.aggregate ) {
+               if ( !$.isEmptyObject( this.aggregateItemEvents ) ) {
                        events = {};
-                       for ( event in this.aggregations ) {
-                               events[event] = [ 'emit', this.aggregations[event], item ];
+                       for ( event in this.aggregateItemEvents ) {
+                               events[event] = [ 'emit', this.aggregateItemEvents[event], item ];
                        }
                        item.connect( this, events );
                }
@@ -2240,7 +2330,7 @@ OO.ui.GroupElement.prototype.removeItems = function ( items ) {
                item = items[i];
                index = $.inArray( item, this.items );
                if ( index !== -1 ) {
-                       if ( this.aggregate ) {
+                       if ( !$.isEmptyObject( this.aggregateItemEvents ) ) {
                                item.disconnect( this );
                        }
                        item.setElementGroup( null );
@@ -2266,7 +2356,7 @@ OO.ui.GroupElement.prototype.clearItems = function () {
        // Remove all items
        for ( i = 0, len = this.items.length; i < len; i++ ) {
                item = this.items[i];
-               if ( this.aggregate ) {
+               if ( !$.isEmptyObject( this.aggregateItemEvents ) ) {
                        item.disconnect( this );
                }
                item.setElementGroup( null );
@@ -4535,17 +4625,26 @@ OO.mixinClass( OO.ui.StackLayout, OO.ui.GroupElement );
 
 /**
  * @event set
- * @param {OO.ui.PanelLayout|null} [item] Current item
+ * @param {OO.ui.Layout|null} [item] Current item
  */
 
 /* Methods */
 
+/**
+ * Get the current item.
+ *
+ * @return {OO.ui.Layout|null} [description]
+ */
+OO.ui.StackLayout.prototype.getCurrentItem = function () {
+       return this.currentItem;
+};
+
 /**
  * Add items.
  *
  * Adding an existing item (by value) will move it.
  *
- * @param {OO.ui.PanelLayout[]} items Items to add
+ * @param {OO.ui.Layout[]} items Items to add
  * @param {number} [index] Index to insert items after
  * @chainable
  */
@@ -4564,7 +4663,7 @@ OO.ui.StackLayout.prototype.addItems = function ( items, index ) {
  *
  * Items will be detached, not removed, so they can be used later.
  *
- * @param {OO.ui.PanelLayout[]} items Items to remove
+ * @param {OO.ui.Layout[]} items Items to remove
  * @chainable
  */
 OO.ui.StackLayout.prototype.removeItems = function ( items ) {
@@ -4598,7 +4697,7 @@ OO.ui.StackLayout.prototype.clearItems = function () {
  *
  * Any currently shown item will be hidden.
  *
- * @param {OO.ui.PanelLayout} item Item to show
+ * @param {OO.ui.Layout} item Item to show
  * @chainable
  */
 OO.ui.StackLayout.prototype.setItem = function ( item ) {
@@ -7824,9 +7923,12 @@ OO.ui.TextInputWidget.prototype.isPending = function () {
  * @chainable
  */
 OO.ui.TextInputWidget.prototype.pushPending = function () {
+       if ( this.pending === 0 ) {
+               this.$element.addClass( 'oo-ui-textInputWidget-pending' );
+               this.$input.addClass( 'oo-ui-texture-pending' );
+       }
        this.pending++;
-       this.$element.addClass( 'oo-ui-textInputWidget-pending' );
-       this.$input.addClass( 'oo-ui-texture-pending' );
+
        return this;
 };
 
@@ -7838,11 +7940,12 @@ OO.ui.TextInputWidget.prototype.pushPending = function () {
  * @chainable
  */
 OO.ui.TextInputWidget.prototype.popPending = function () {
-       this.pending = Math.max( 0, this.pending - 1 );
-       if ( !this.pending ) {
+       if ( this.pending === 1 ) {
                this.$element.removeClass( 'oo-ui-textInputWidget-pending' );
                this.$input.removeClass( 'oo-ui-texture-pending' );
        }
+       this.pending = Math.max( 0, this.pending - 1 );
+
        return this;
 };
 /**
index deb35ef..a79c4a1 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (9d291a9222)
+ * OOjs UI v0.1.0-pre (989950a4db)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Wed Apr 16 2014 18:45:32 GMT-0700 (PDT)
+ * Date: Fri Apr 18 2014 13:02:46 GMT-0700 (PDT)
  */
 
 /* Textures */
diff --git a/resources/lib/oojs-ui/update-oojs-ui.sh b/resources/lib/oojs-ui/update-oojs-ui.sh
deleted file mode 100755 (executable)
index 3c6dca6..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env bash
-
-# FIXME this script is duplicated from update-oojs.sh - factor this out
-
-# This script generates a commit that updates the oojs-ui distribution
-# ./bin/update-oojs-ui.sh path/to/repo/for/oojs-ui
-
-function oojsuihash() {
-       grep "OOjs UI v" resources/lib/oojs-ui/oojs-ui.js \
-               | head -n 1 \
-               | grep -Eo '\([a-z0-9]+\)' \
-               | sed 's/^(//' \
-               | sed 's/)$//'
-}
-
-function oojsuitag() {
-       grep "OOjs UI v" resources/lib/oojs-ui/oojs-ui.js \
-               | head -n 1 \
-               | grep -Eo '\bv[0-9a-z.-]+\b'
-}
-
-function oojsuiversion() {
-       grep "OOjs UI v" resources/lib/oojs-ui/oojs-ui.js \
-               | head -n 1 \
-               | grep -Eo '\bv[0-9a-z.-]+\b.*$'
-}
-
-# cd to the MW root directory
-cd $(cd $(dirname $0)/../../..; pwd)
-
-if [ "x$1" == "x" ]
-then
-       echo >&2 "Usage: update-oojs-ui.sh path/to/repo/for/oojs-ui"
-       exit 1
-fi
-
-# Undo any changes in the oojs-ui directory
-git reset -- resources/lib/oojs-ui/
-git checkout -- resources/lib/oojs-ui/
-
-git fetch origin
-# Create a branch of MW if needed, and reset it to master
-git checkout -B update-oojsui origin/master
-
-# Get the old oojs-ui version
-OLDVERSION=$(oojsuihash)
-if [ "x$OLDVERSION" == "x" ]
-then
-       TAG=$(oojsuitag)
-fi
-
-# cd to the oojs-ui directory
-cd $1 || exit 1
-if [ "x$OLDVERSION" == "x" ]
-then
-       # Try the tag
-       OLDVERSION=$(git rev-parse $TAG)
-       if [ $? != 0 ]
-       then
-               echo Could not find OOjs UI version
-               cd -
-               exit 1
-       fi
-fi
-if [ "$(git rev-parse $OLDVERSION)" == "$(git rev-parse HEAD)" ]
-then
-       echo "No changes (already at $OLDVERSION)"
-       cd -
-       exit 0
-fi
-# Build the distribution
-npm install || exit 1
-grunt || exit 1
-# Get the list of changes
-NEWCHANGES=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=never)
-NEWCHANGESDISPLAY=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=always)
-# cd back to the VisualEditor directory
-cd -
-
-# Copy files from dist/ to resources/lib/oojs-ui
-cp -a $1/dist/{oojs-ui.js,oojs-ui.svg.css,oojs-ui-apex.css,oojs-ui-agora.css,images,i18n} resources/lib/oojs-ui/
-# Figure out what the new version is
-NEWVERSION=$(oojsuiversion)
-# Generate commit summary
-COMMITMSG=$(cat <<END
-Update OOjs UI to $NEWVERSION
-
-New changes:
-$NEWCHANGES
-END
-)
-# Commit
-git commit resources/lib/oojs-ui/ -m "$COMMITMSG"
-cat >&2 <<END
-
-
-Created commit with changes:
-$NEWCHANGESDISPLAY
-END
index ed3d862..22e8652 100644 (file)
@@ -140,7 +140,7 @@ $.suggestions = {
         */
        configure: function ( context, property, value ) {
                var newCSS,
-                       $result, $results, childrenWidth,
+                       $result, $results, $spanForWidth, childrenWidth,
                        i, expWidth, maxWidth, text;
 
                // Validate creation using fallback values
@@ -266,9 +266,11 @@ $.suggestions = {
                                                                $result.highlightText( context.data.prevText );
                                                        }
 
-                                                       // Widen results box if needed
-                                                       // New width is only calculated here, applied later
-                                                       childrenWidth = $result.children().outerWidth();
+                                                       // Widen results box if needed (new width is only calculated here, applied later).
+                                                       // We need this awful hack to calculate the actual pre-ellipsis width.
+                                                       $spanForWidth = $result.wrapInner( '<span>' ).children();
+                                                       childrenWidth = $spanForWidth.outerWidth();
+                                                       $spanForWidth.contents().unwrap();
                                                        if ( childrenWidth > $result.width() && childrenWidth > expWidth ) {
                                                                // factor in any padding, margin, or border space on the parent
                                                                expWidth = childrenWidth + ( context.data.$container.width() - $result.width() );
index 5a1fc05..8b286f4 100644 (file)
@@ -1,5 +1,7 @@
 /* Vector screen styles for high definition displays */
 
+@import "variables.less";
+
 div#content {
        margin-left: 11em;
        padding: 1.25em 1.5em 1.5em 1.5em;
diff --git a/skins/vector/screen.less b/skins/vector/screen.less
new file mode 100644 (file)
index 0000000..f7b374f
--- /dev/null
@@ -0,0 +1,10 @@
+/* Vector screen styles */
+
+@import "variables.less";
+
+@import "components/common.less";
+@import "components/animations.less";
+@import "components/navigation.less";
+@import "components/footer.less";
+@import 'components/notifications.less';
+@import "components/externalLinks.less";
diff --git a/skins/vector/styles.less b/skins/vector/styles.less
deleted file mode 100644 (file)
index 819286e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-@import "variables.less";
-
-@media screen {
-       @import "components/common.less";
-       @import "components/animations.less";
-       @import "components/navigation.less";
-       @import "components/footer.less";
-       @import 'components/notifications.less';
-       @import "components/externalLinks.less";
-}
-
-@media screen and (min-width: 982px) {
-       @import "screen-hd.less";
-}
index 99a6efd..98eff7b 100644 (file)
@@ -8,17 +8,23 @@ class HtmlFormatterTest extends MediaWikiTestCase {
         * @dataProvider getHtmlData
         * @covers HtmlFormatter::getText
         */
-       public function testTransform( $input, $expected, $callback = false ) {
+       public function testTransform( $input, $expectedText, $expectedRemoved = array(), $callback = false ) {
                $input = self::normalize( $input );
                $formatter = new HtmlFormatter( HtmlFormatter::wrapHTML( $input ) );
                if ( $callback ) {
                        $callback( $formatter );
                }
-               $formatter->filterContent();
+               $removedElements = $formatter->filterContent();
                $html = $formatter->getText();
+               $removed = array();
+               foreach ( $removedElements as $removedElement ) {
+                       $removed[] = self::normalize( $formatter->getText( $removedElement ) );
+               }
+               $expectedRemoved = array_map( 'self::normalize', $expectedRemoved );
 
                $this->assertValidHtmlSnippet( $html );
-               $this->assertEquals( self::normalize( $expected ), self::normalize( $html ) );
+               $this->assertEquals( self::normalize( $expectedText ), self::normalize( $html ) );
+               $this->assertEquals( asort( $expectedRemoved ), asort( $removed ) );
        }
 
        private static function normalize( $s ) {
@@ -45,6 +51,7 @@ class HtmlFormatterTest extends MediaWikiTestCase {
                        array(
                                '<img src="/foo/bar.jpg" alt="Blah"/>',
                                '',
+                               array( '<img src="/foo/bar.jpg" alt="Blah">' ),
                                $removeImages,
                        ),
                        // basic tag removal
@@ -52,21 +59,30 @@ class HtmlFormatterTest extends MediaWikiTestCase {
                                '<table><tr><td>foo</td></tr></table><div class="foo">foo</div><div class="foo quux">foo</div><span id="bar">bar</span>
 <strong class="foo" id="bar">foobar</strong><div class="notfoo">test</div><div class="baz"/>
 <span class="baz">baz</span>',
-
                                '<div class="notfoo">test</div>
 <span class="baz">baz</span>',
+                               array(
+                                       '<table><tr><td>foo</td></tr></table>',
+                                       '<div class="foo">foo</div>',
+                                       '<div class="foo quux">foo</div>',
+                                       '<span id="bar">bar</span>',
+                                       '<strong class="foo" id="bar">foobar</strong>',
+                                       '<div class="baz"/>',
+                               ),
                                $removeTags,
                        ),
                        // don't flatten tags that start like chosen ones
                        array(
                                '<div><s>foo</s> <span>bar</span></div>',
                                'foo <span>bar</span>',
+                               array(),
                                $flattenSomeStuff,
                        ),
                        // total flattening
                        array(
                                '<div style="foo">bar<sup>2</sup></div>',
                                'bar2',
+                               array(),
                                $flattenEverything,
                        ),
                        // UTF-8 preservation and security
index e2ec474..806f5bf 100644 (file)
@@ -170,7 +170,7 @@ abstract class GenericArrayObjectTest extends MediaWikiTestCase {
        /**
         * @since 1.20
         *
-        * @param callback $function
+        * @param callable $function
         *
         * @covers GenericArrayObject::getObjectType
         */
index 8f8a8b5..13d84f7 100644 (file)
@@ -16,7 +16,7 @@ class LanguageTest extends LanguageClassesTestCase {
        }
 
        /**
-        * @dataProvider provideFormattableTimes#
+        * @dataProvider provideFormattableTimes
         * @covers Language::formatTimePeriod
         */
        public function testFormatTimePeriod( $seconds, $format, $expected, $desc ) {