Merge "User: Avoid deprecated Linker::link()"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 28 Jun 2017 12:49:55 +0000 (12:49 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 28 Jun 2017 12:49:55 +0000 (12:49 +0000)
243 files changed:
autoload.php
includes/Defines.php
includes/EventRelayerGroup.php
includes/MediaWikiServices.php
includes/PageProps.php
includes/ServiceWiring.php
includes/WatchedItemQueryService.php
includes/WatchedItemStore.php
includes/Xml.php
includes/api/ApiAMCreateAccount.php
includes/api/ApiAuthManagerHelper.php
includes/api/ApiChangeAuthenticationData.php
includes/api/ApiCheckToken.php
includes/api/ApiClientLogin.php
includes/api/ApiHelp.php
includes/api/ApiHelpParamValueMessage.php
includes/api/ApiLinkAccount.php
includes/api/ApiOpenSearch.php
includes/api/ApiQueryAllDeletedRevisions.php
includes/api/ApiQueryAllRevisions.php
includes/api/ApiQueryAuthManagerInfo.php
includes/api/ApiQueryBacklinksprop.php
includes/api/ApiQueryContributors.php
includes/api/ApiQueryDeletedRevisions.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryPagePropNames.php
includes/api/ApiQueryPagesWithProp.php
includes/api/ApiQueryPrefixSearch.php
includes/api/ApiQueryTokens.php
includes/api/ApiQueryUsers.php
includes/api/ApiRemoveAuthenticationData.php
includes/api/ApiResetPassword.php
includes/api/ApiRevisionDelete.php
includes/api/ApiSerializable.php
includes/api/ApiSetNotificationTimestamp.php
includes/api/ApiStashEdit.php
includes/api/i18n/fr.json
includes/api/i18n/pl.json
includes/cache/BacklinkCache.php
includes/changes/EnhancedChangesList.php
includes/config/EtcdConfig.php
includes/db/CloneDatabase.php
includes/debug/logger/LegacyLogger.php
includes/debug/logger/LegacySpi.php
includes/debug/logger/LoggerFactory.php
includes/debug/logger/MonologSpi.php
includes/debug/logger/NullSpi.php
includes/debug/logger/Spi.php
includes/debug/logger/monolog/LegacyFormatter.php
includes/debug/logger/monolog/LegacyHandler.php
includes/debug/logger/monolog/LineFormatter.php
includes/debug/logger/monolog/SyslogHandler.php
includes/debug/logger/monolog/WikiProcessor.php
includes/deferred/SearchUpdate.php
includes/diff/DifferenceEngine.php
includes/exception/MWExceptionRenderer.php
includes/externalstore/ExternalStoreMedium.php
includes/filebackend/FileBackendGroup.php
includes/filebackend/filejournal/DBFileJournal.php
includes/filebackend/lockmanager/LockManagerGroup.php
includes/filerepo/FileBackendDBRepoWrapper.php
includes/filerepo/ForeignDBViaLBRepo.php
includes/filerepo/LocalRepo.php
includes/filerepo/file/LocalFile.php
includes/htmlform/HTMLFormElement.php
includes/htmlform/fields/HTMLUsersMultiselectField.php
includes/installer/DatabaseInstaller.php
includes/installer/Installer.php
includes/jobqueue/JobQueue.php
includes/jobqueue/JobQueueDB.php
includes/jobqueue/JobQueueFederated.php
includes/jobqueue/JobQueueGroup.php
includes/jobqueue/JobQueueMemory.php
includes/jobqueue/JobQueueRedis.php
includes/jobqueue/aggregator/JobQueueAggregator.php
includes/jobqueue/aggregator/JobQueueAggregatorRedis.php
includes/jobqueue/jobs/ActivityUpdateJob.php
includes/jobqueue/jobs/RecentChangesUpdateJob.php
includes/jobqueue/utils/BacklinkJobUtils.php
includes/libs/CSSMin.php
includes/libs/HashRing.php
includes/libs/IP.php
includes/libs/MappedIterator.php
includes/libs/MultiHttpClient.php
includes/libs/ObjectFactory.php
includes/libs/XhprofData.php
includes/libs/eventrelayer/EventRelayer.php
includes/libs/eventrelayer/EventRelayerNull.php
includes/libs/filebackend/FSFileBackend.php
includes/libs/filebackend/FileBackend.php
includes/libs/filebackend/FileBackendMultiWrite.php
includes/libs/filebackend/FileBackendStore.php
includes/libs/filebackend/FileOpBatch.php
includes/libs/filebackend/MemoryFileBackend.php
includes/libs/filebackend/SwiftFileBackend.php
includes/libs/filebackend/filejournal/FileJournal.php
includes/libs/filebackend/fileop/CopyFileOp.php
includes/libs/filebackend/fileop/CreateFileOp.php
includes/libs/filebackend/fileop/DeleteFileOp.php
includes/libs/filebackend/fileop/DescribeFileOp.php
includes/libs/filebackend/fileop/FileOp.php
includes/libs/filebackend/fileop/MoveFileOp.php
includes/libs/filebackend/fileop/NullFileOp.php
includes/libs/filebackend/fileop/StoreFileOp.php
includes/libs/lockmanager/LockManager.php
includes/libs/lockmanager/NullLockManager.php
includes/libs/lockmanager/ScopedLock.php
includes/libs/objectcache/BagOStuff.php
includes/libs/objectcache/ReplicatedBagOStuff.php
includes/libs/objectcache/WANObjectCache.php
includes/libs/objectcache/WANObjectCacheReaper.php
includes/libs/rdbms/TransactionProfiler.php
includes/libs/rdbms/database/Database.php
includes/libs/rdbms/database/DatabaseMysqlBase.php
includes/libs/rdbms/database/DatabaseSqlite.php
includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php
includes/libs/rdbms/exception/DBTransactionError.php
includes/libs/rdbms/lbfactory/LBFactory.php
includes/libs/rdbms/loadbalancer/ILoadBalancer.php
includes/libs/rdbms/loadbalancer/LoadBalancer.php
includes/libs/redis/RedisConnRef.php
includes/libs/redis/RedisConnectionPool.php
includes/libs/stats/SamplingStatsdClient.php
includes/libs/virtualrest/VirtualRESTServiceClient.php
includes/linkeddata/PageDataRequestHandler.php
includes/logging/LogEventsList.php
includes/logging/LogPager.php
includes/logging/RightsLogFormatter.php
includes/page/WikiPage.php
includes/pager/RangeChronologicalPager.php
includes/parser/Parser.php
includes/parser/ParserCache.php
includes/parser/ParserOptions.php
includes/poolcounter/PoolCounterRedis.php
includes/profiler/ProfilerSectionOnly.php
includes/profiler/ProfilerXhprof.php
includes/profiler/SectionProfiler.php
includes/registration/ExtensionProcessor.php
includes/registration/ExtensionRegistry.php
includes/resourceloader/ResourceLoaderJqueryMsgModule.php
includes/search/SearchEngine.php
includes/search/SearchMySQL.php
includes/search/SearchOracle.php
includes/search/SearchSqlite.php
includes/search/SearchSuggestionSet.php
includes/session/MetadataMergeException.php
includes/skins/SkinApi.php
includes/skins/SkinApiTemplate.php
includes/specialpage/SpecialPage.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialBotPasswords.php
includes/specials/SpecialChangeContentModel.php
includes/specials/SpecialLog.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialPagesWithProp.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialRunJobs.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/specials/pagers/ActiveUsersPager.php
includes/tidy/Balancer.php
includes/upload/UploadBase.php
includes/user/User.php
includes/utils/BatchRowUpdate.php
includes/utils/UIDGenerator.php
includes/utils/ZipDirectoryReader.php
languages/ConverterRule.php
languages/FakeConverter.php
languages/LanguageConverter.php
languages/i18n/be-tarask.json
languages/i18n/bho.json
languages/i18n/ckb.json
languages/i18n/en.json
languages/i18n/fr.json
languages/i18n/frr.json
languages/i18n/hr.json
languages/i18n/lij.json
languages/i18n/lv.json
languages/i18n/nn.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/tcy.json
maintenance/CodeCleanerGlobalsPass.inc
maintenance/benchmarks/Benchmarker.php
maintenance/benchmarks/benchmarkJSMinPlus.php [new file with mode: 0644]
maintenance/deleteArchivedFiles.php
maintenance/deleteArchivedRevisions.php
maintenance/eraseArchivedFile.php
maintenance/findMissingFiles.php
maintenance/findOrphanedFiles.php
maintenance/jsparse.php
maintenance/manageJobs.php
maintenance/refreshFileHeaders.php
maintenance/validateRegistrationFile.php
phpcs.xml
resources/Resources.php
resources/src/mediawiki.action/mediawiki.action.edit.js
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterTagMultiselectWidget.less
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterMenuHeaderWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FormWrapperWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MenuSelectWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SaveFiltersPopupButtonWidget.js
resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js
resources/src/mediawiki.special/mediawiki.special.movePage.js
resources/src/mediawiki.widgets.visibleByteLimit/mediawiki.widgets.visibleByteLimit.js [new file with mode: 0644]
tests/parser/ParserTestRunner.php
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/data/resourceloader/script-comment.js [new file with mode: 0644]
tests/phpunit/data/resourceloader/script-nosemi.js [new file with mode: 0644]
tests/phpunit/includes/GlobalFunctions/wfArrayFilterTest.php
tests/phpunit/includes/LinkerTest.php
tests/phpunit/includes/MediaWikiServicesTest.php
tests/phpunit/includes/Services/ServiceContainerTest.php
tests/phpunit/includes/Services/TestWiring1.php
tests/phpunit/includes/Services/TestWiring2.php
tests/phpunit/includes/TestLogger.php
tests/phpunit/includes/WatchedItemQueryServiceUnitTest.php
tests/phpunit/includes/WatchedItemStoreUnitTest.php
tests/phpunit/includes/api/ApiPageSetTest.php
tests/phpunit/includes/api/ApiQueryWatchlistIntegrationTest.php
tests/phpunit/includes/api/RandomImageGenerator.php
tests/phpunit/includes/config/ConfigFactoryTest.php
tests/phpunit/includes/content/ContentHandlerTest.php
tests/phpunit/includes/db/DatabaseMysqlBaseTest.php
tests/phpunit/includes/jobqueue/JobTest.php
tests/phpunit/includes/libs/DeferredStringifierTest.php
tests/phpunit/includes/libs/ObjectFactoryTest.php
tests/phpunit/includes/libs/XhprofDataTest.php
tests/phpunit/includes/libs/XmlTypeCheckTest.php
tests/phpunit/includes/libs/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/libs/rdbms/TransactionProfilerTest.php [new file with mode: 0644]
tests/phpunit/includes/parser/ParserOptionsTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderTest.php
tests/phpunit/includes/search/SearchEnginePrefixTest.php
tests/phpunit/includes/search/SearchEngineTest.php
tests/phpunit/includes/search/SearchSuggestionSetTest.php
tests/phpunit/includes/site/CachingSiteStoreTest.php
tests/phpunit/includes/specials/SpecialSearchTest.php
tests/phpunit/includes/utils/BatchRowUpdateTest.php

index 293bf6a..2560bdb 100644 (file)
@@ -192,6 +192,7 @@ $wgAutoloadLocalClasses = [
        'BenchmarkCSSMin' => __DIR__ . '/maintenance/benchmarks/benchmarkCSSMin.php',
        'BenchmarkDeleteTruncate' => __DIR__ . '/maintenance/benchmarks/bench_delete_truncate.php',
        'BenchmarkHooks' => __DIR__ . '/maintenance/benchmarks/benchmarkHooks.php',
+       'BenchmarkJSMinPlus' => __DIR__ . '/maintenance/benchmarks/benchmarkJSMinPlus.php',
        'BenchmarkParse' => __DIR__ . '/maintenance/benchmarks/benchmarkParse.php',
        'BenchmarkPurge' => __DIR__ . '/maintenance/benchmarks/benchmarkPurge.php',
        'BenchmarkTidy' => __DIR__ . '/maintenance/benchmarks/benchmarkTidy.php',
index 6bc70ed..8ac84e5 100644 (file)
@@ -267,3 +267,28 @@ define( 'CONTENT_FORMAT_XML', 'application/xml' );
  */
 define( 'SHELL_MAX_ARG_STRLEN', '100000' );
 /**@}*/
+
+/**@{
+ * Schema change migration flags.
+ *
+ * Used as values of a feature flag for an orderly transition from an old
+ * schema to a new schema.
+ *
+ * - MIGRATION_OLD: Only read and write the old schema. The new schema need not
+ *   even exist. This is used from when the patch is merged until the schema
+ *   change is actually applied to the database.
+ * - MIGRATION_WRITE_BOTH: Write both the old and new schema. Read the new
+ *   schema preferentially, falling back to the old. This is used while the
+ *   change is being tested, allowing easy roll-back to the old schema.
+ * - MIGRATION_WRITE_NEW: Write only the new schema. Read the new schema
+ *   preferentially, falling back to the old. This is used while running the
+ *   maintenance script to migrate existing entries in the old schema to the
+ *   new schema.
+ * - MIGRATION_NEW: Only read and write the new schema. The old schema (and the
+ *   feature flag) may now be removed.
+ */
+define( 'MIGRATION_OLD', 0 );
+define( 'MIGRATION_WRITE_BOTH', 1 );
+define( 'MIGRATION_WRITE_NEW', 2 );
+define( 'MIGRATION_NEW', 3 );
+/**@}*/
index 9360693..18b1cd3 100644 (file)
@@ -1,10 +1,28 @@
 <?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
 use MediaWiki\MediaWikiServices;
 
 /**
  * Factory class for spawning EventRelayer objects using configuration
  *
- * @author Aaron Schulz
  * @since 1.27
  */
 class EventRelayerGroup {
index b63c769..6161ee7 100644 (file)
@@ -377,7 +377,7 @@ class MediaWikiServices extends ServiceContainer {
                parent::__construct();
 
                // Register the given Config object as the bootstrap config service.
-               $this->defineService( 'BootstrapConfig', function() use ( $config ) {
+               $this->defineService( 'BootstrapConfig', function () use ( $config ) {
                        return $config;
                } );
        }
index 382d089..dac756e 100644 (file)
@@ -55,7 +55,7 @@ class PageProps {
                }
                $previousValue = self::$instance;
                self::$instance = $store;
-               return new ScopedCallback( function() use ( $previousValue ) {
+               return new ScopedCallback( function () use ( $previousValue ) {
                        self::$instance = $previousValue;
                } );
        }
index 6afabed..2dfcc42 100644 (file)
@@ -43,7 +43,7 @@ use MediaWiki\Logger\LoggerFactory;
 use MediaWiki\MediaWikiServices;
 
 return [
-       'DBLoadBalancerFactory' => function( MediaWikiServices $services ) {
+       'DBLoadBalancerFactory' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
 
                $lbConf = MWLBFactory::applyDefaultConfig(
@@ -56,12 +56,12 @@ return [
                return new $class( $lbConf );
        },
 
-       'DBLoadBalancer' => function( MediaWikiServices $services ) {
+       'DBLoadBalancer' => function ( MediaWikiServices $services ) {
                // just return the default LB from the DBLoadBalancerFactory service
                return $services->getDBLoadBalancerFactory()->getMainLB();
        },
 
-       'SiteStore' => function( MediaWikiServices $services ) {
+       'SiteStore' => function ( MediaWikiServices $services ) {
                $rawSiteStore = new DBSiteStore( $services->getDBLoadBalancer() );
 
                // TODO: replace wfGetCache with a CacheFactory service.
@@ -71,7 +71,7 @@ return [
                return new CachingSiteStore( $rawSiteStore, $cache );
        },
 
-       'SiteLookup' => function( MediaWikiServices $services ) {
+       'SiteLookup' => function ( MediaWikiServices $services ) {
                $cacheFile = $services->getMainConfig()->get( 'SitesCacheFile' );
 
                if ( $cacheFile !== false ) {
@@ -82,7 +82,7 @@ return [
                }
        },
 
-       'ConfigFactory' => function( MediaWikiServices $services ) {
+       'ConfigFactory' => function ( MediaWikiServices $services ) {
                // Use the bootstrap config to initialize the ConfigFactory.
                $registry = $services->getBootstrapConfig()->get( 'ConfigRegistry' );
                $factory = new ConfigFactory();
@@ -93,12 +93,12 @@ return [
                return $factory;
        },
 
-       'MainConfig' => function( MediaWikiServices $services ) {
+       'MainConfig' => function ( MediaWikiServices $services ) {
                // Use the 'main' config from the ConfigFactory service.
                return $services->getConfigFactory()->makeConfig( 'main' );
        },
 
-       'InterwikiLookup' => function( MediaWikiServices $services ) {
+       'InterwikiLookup' => function ( MediaWikiServices $services ) {
                global $wgContLang; // TODO: manage $wgContLang as a service
                $config = $services->getMainConfig();
                return new ClassicInterwikiLookup(
@@ -111,26 +111,26 @@ return [
                );
        },
 
-       'StatsdDataFactory' => function( MediaWikiServices $services ) {
+       'StatsdDataFactory' => function ( MediaWikiServices $services ) {
                return new BufferingStatsdDataFactory(
                        rtrim( $services->getMainConfig()->get( 'StatsdMetricPrefix' ), '.' )
                );
        },
 
-       'EventRelayerGroup' => function( MediaWikiServices $services ) {
+       'EventRelayerGroup' => function ( MediaWikiServices $services ) {
                return new EventRelayerGroup( $services->getMainConfig()->get( 'EventRelayerConfig' ) );
        },
 
-       'SearchEngineFactory' => function( MediaWikiServices $services ) {
+       'SearchEngineFactory' => function ( MediaWikiServices $services ) {
                return new SearchEngineFactory( $services->getSearchEngineConfig() );
        },
 
-       'SearchEngineConfig' => function( MediaWikiServices $services ) {
+       'SearchEngineConfig' => function ( MediaWikiServices $services ) {
                global $wgContLang;
                return new SearchEngineConfig( $services->getMainConfig(), $wgContLang );
        },
 
-       'SkinFactory' => function( MediaWikiServices $services ) {
+       'SkinFactory' => function ( MediaWikiServices $services ) {
                $factory = new SkinFactory();
 
                $names = $services->getMainConfig()->get( 'ValidSkinNames' );
@@ -153,7 +153,7 @@ return [
                return $factory;
        },
 
-       'WatchedItemStore' => function( MediaWikiServices $services ) {
+       'WatchedItemStore' => function ( MediaWikiServices $services ) {
                $store = new WatchedItemStore(
                        $services->getDBLoadBalancer(),
                        new HashBagOStuff( [ 'maxKeys' => 100 ] ),
@@ -163,11 +163,11 @@ return [
                return $store;
        },
 
-       'WatchedItemQueryService' => function( MediaWikiServices $services ) {
+       'WatchedItemQueryService' => function ( MediaWikiServices $services ) {
                return new WatchedItemQueryService( $services->getDBLoadBalancer() );
        },
 
-       'CryptRand' => function( MediaWikiServices $services ) {
+       'CryptRand' => function ( MediaWikiServices $services ) {
                $secretKey = $services->getMainConfig()->get( 'SecretKey' );
                return new CryptRand(
                        [
@@ -178,7 +178,7 @@ return [
                                // for a little more variance
                                'wfWikiID',
                                // If we have a secret key set then throw it into the state as well
-                               function() use ( $secretKey ) {
+                               function () use ( $secretKey ) {
                                        return $secretKey ?: '';
                                }
                        ],
@@ -192,7 +192,7 @@ return [
                );
        },
 
-       'CryptHKDF' => function( MediaWikiServices $services ) {
+       'CryptHKDF' => function ( MediaWikiServices $services ) {
                $config = $services->getMainConfig();
 
                $secret = $config->get( 'HKDFSecret' ) ?: $config->get( 'SecretKey' );
@@ -215,13 +215,13 @@ return [
                );
        },
 
-       'MediaHandlerFactory' => function( MediaWikiServices $services ) {
+       'MediaHandlerFactory' => function ( MediaWikiServices $services ) {
                return new MediaHandlerFactory(
                        $services->getMainConfig()->get( 'MediaHandlers' )
                );
        },
 
-       'MimeAnalyzer' => function( MediaWikiServices $services ) {
+       'MimeAnalyzer' => function ( MediaWikiServices $services ) {
                $logger = LoggerFactory::getInstance( 'Mime' );
                $mainConfig = $services->getMainConfig();
                $params = [
@@ -274,7 +274,7 @@ return [
                return new MimeMagic( $params );
        },
 
-       'ProxyLookup' => function( MediaWikiServices $services ) {
+       'ProxyLookup' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
                return new ProxyLookup(
                        $mainConfig->get( 'SquidServers' ),
@@ -282,26 +282,26 @@ return [
                );
        },
 
-       'Parser' => function( MediaWikiServices $services ) {
+       'Parser' => function ( MediaWikiServices $services ) {
                $conf = $services->getMainConfig()->get( 'ParserConf' );
                return ObjectFactory::constructClassInstance( $conf['class'], [ $conf ] );
        },
 
-       'LinkCache' => function( MediaWikiServices $services ) {
+       'LinkCache' => function ( MediaWikiServices $services ) {
                return new LinkCache(
                        $services->getTitleFormatter(),
                        $services->getMainWANObjectCache()
                );
        },
 
-       'LinkRendererFactory' => function( MediaWikiServices $services ) {
+       'LinkRendererFactory' => function ( MediaWikiServices $services ) {
                return new LinkRendererFactory(
                        $services->getTitleFormatter(),
                        $services->getLinkCache()
                );
        },
 
-       'LinkRenderer' => function( MediaWikiServices $services ) {
+       'LinkRenderer' => function ( MediaWikiServices $services ) {
                global $wgUser;
 
                if ( defined( 'MW_NO_SESSION' ) ) {
@@ -311,11 +311,11 @@ return [
                }
        },
 
-       'GenderCache' => function( MediaWikiServices $services ) {
+       'GenderCache' => function ( MediaWikiServices $services ) {
                return new GenderCache();
        },
 
-       '_MediaWikiTitleCodec' => function( MediaWikiServices $services ) {
+       '_MediaWikiTitleCodec' => function ( MediaWikiServices $services ) {
                global $wgContLang;
 
                return new MediaWikiTitleCodec(
@@ -325,15 +325,15 @@ return [
                );
        },
 
-       'TitleFormatter' => function( MediaWikiServices $services ) {
+       'TitleFormatter' => function ( MediaWikiServices $services ) {
                return $services->getService( '_MediaWikiTitleCodec' );
        },
 
-       'TitleParser' => function( MediaWikiServices $services ) {
+       'TitleParser' => function ( MediaWikiServices $services ) {
                return $services->getService( '_MediaWikiTitleCodec' );
        },
 
-       'MainObjectStash' => function( MediaWikiServices $services ) {
+       'MainObjectStash' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
 
                $id = $mainConfig->get( 'MainStash' );
@@ -345,7 +345,7 @@ return [
                return \ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
        },
 
-       'MainWANObjectCache' => function( MediaWikiServices $services ) {
+       'MainWANObjectCache' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
 
                $id = $mainConfig->get( 'MainWANCache' );
@@ -365,7 +365,7 @@ return [
                return \ObjectCache::newWANCacheFromParams( $params );
        },
 
-       'LocalServerObjectCache' => function( MediaWikiServices $services ) {
+       'LocalServerObjectCache' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
 
                if ( function_exists( 'apc_fetch' ) ) {
@@ -388,7 +388,7 @@ return [
                return \ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
        },
 
-       'VirtualRESTServiceClient' => function( MediaWikiServices $services ) {
+       'VirtualRESTServiceClient' => function ( MediaWikiServices $services ) {
                $config = $services->getMainConfig()->get( 'VirtualRestConfig' );
 
                $vrsClient = new VirtualRESTServiceClient( new MultiHttpClient( [] ) );
@@ -406,11 +406,11 @@ return [
                return $vrsClient;
        },
 
-       'ConfiguredReadOnlyMode' => function( MediaWikiServices $services ) {
+       'ConfiguredReadOnlyMode' => function ( MediaWikiServices $services ) {
                return new ConfiguredReadOnlyMode( $services->getMainConfig() );
        },
 
-       'ReadOnlyMode' => function( MediaWikiServices $services ) {
+       'ReadOnlyMode' => function ( MediaWikiServices $services ) {
                return new ReadOnlyMode(
                        $services->getConfiguredReadOnlyMode(),
                        $services->getDBLoadBalancer()
index 22d5439..1fafb24 100644 (file)
@@ -313,7 +313,7 @@ class WatchedItemQueryService {
                $allFields = get_object_vars( $row );
                $rcKeys = array_filter(
                        array_keys( $allFields ),
-                       function( $key ) {
+                       function ( $key ) {
                                return substr( $key, 0, 3 ) === 'rc_';
                        }
                );
index 06f93c6..69a9df2 100644 (file)
@@ -104,7 +104,7 @@ class WatchedItemStore implements StatsdAwareInterface {
                }
                $previousValue = $this->deferredUpdatesAddCallableUpdateCallback;
                $this->deferredUpdatesAddCallableUpdateCallback = $callback;
-               return new ScopedCallback( function() use ( $previousValue ) {
+               return new ScopedCallback( function () use ( $previousValue ) {
                        $this->deferredUpdatesAddCallableUpdateCallback = $previousValue;
                } );
        }
@@ -127,7 +127,7 @@ class WatchedItemStore implements StatsdAwareInterface {
                }
                $previousValue = $this->revisionGetTimestampFromIdCallback;
                $this->revisionGetTimestampFromIdCallback = $callback;
-               return new ScopedCallback( function() use ( $previousValue ) {
+               return new ScopedCallback( function () use ( $previousValue ) {
                        $this->revisionGetTimestampFromIdCallback = $previousValue;
                } );
        }
@@ -821,7 +821,7 @@ class WatchedItemStore implements StatsdAwareInterface {
                // Calls DeferredUpdates::addCallableUpdate in normal operation
                call_user_func(
                        $this->deferredUpdatesAddCallableUpdateCallback,
-                       function() use ( $job ) {
+                       function () use ( $job ) {
                                $job->run();
                        }
                );
index 8289b81..d016433 100644 (file)
@@ -826,4 +826,3 @@ class Xml {
                return $s;
        }
 }
-
index b8bd511..72a36d7 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 8862cc7..3a9fb73 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 35c4e56..d4a26ad 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 480915e..e1be8ef 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Created on Jan 29, 2015
  *
- * Copyright © 2015 Brad Jorsch bjorsch@wikimedia.org
+ * Copyright © 2015 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 0d512b3..65dea93 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 3fd29ae..12e778b 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Created on Aug 29, 2014
  *
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index ebe4e26..162b7cd 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Created on Dec 22, 2014
  *
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index f5c5dee..9553f29 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 9eb5793..419fd14 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Copyright © 2006 Yuri Astrakhan "<Firstname><Lastname>@gmail.com"
  * Copyright © 2008 Brion Vibber <brion@wikimedia.org>
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 5682cc2..b22bb1f 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Created on Oct 3, 2014
  *
- * Copyright © 2014 Brad Jorsch "bjorsch@wikimedia.org"
+ * Copyright © 2014 Wikimedia Foundation and contributors
  *
  * Heavily based on ApiQueryDeletedrevs,
  * Copyright © 2007 Roan Kattouw "<Firstname>.<Lastname>@gmail.com"
index 20746c9..8f7d6eb 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Created on Sep 27, 2015
  *
- * Copyright © 2015 Brad Jorsch "bjorsch@wikimedia.org"
+ * Copyright © 2015 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index c775942..d23d898 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 00cbcd9..1db15f8 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Created on Aug 19, 2014
  *
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 693d954..f802d9e 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Created on Nov 14, 2013
  *
- * Copyright © 2013 Brad Jorsch
+ * Copyright © 2013 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 90fd695..8e4752e 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Created on Oct 3, 2014
  *
- * Copyright © 2014 Brad Jorsch "bjorsch@wikimedia.org"
+ * Copyright © 2014 Wikimedia Foundation and contributors
  *
  * Heavily based on ApiQueryDeletedrevs,
  * Copyright © 2007 Roan Kattouw "<Firstname>.<Lastname>@gmail.com"
index c2cdfe4..6b8f98c 100644 (file)
@@ -766,7 +766,7 @@ class ApiQueryInfo extends ApiQueryBase {
                if ( $this->fld_watched ) {
                        foreach ( $timestamps as $namespaceId => $dbKeys ) {
                                $this->watched[$namespaceId] = array_map(
-                                       function( $x ) {
+                                       function ( $x ) {
                                                return $x !== false;
                                        },
                                        $dbKeys
@@ -847,7 +847,7 @@ class ApiQueryInfo extends ApiQueryBase {
                                $timestamps[$row->page_namespace][$row->page_title] = $revTimestamp - $age;
                        }
                        $titlesWithThresholds = array_map(
-                               function( LinkTarget $target ) use ( $timestamps ) {
+                               function ( LinkTarget $target ) use ( $timestamps ) {
                                        return [
                                                $target, $timestamps[$target->getNamespace()][$target->getDBkey()]
                                        ];
@@ -860,7 +860,7 @@ class ApiQueryInfo extends ApiQueryBase {
                        $titlesWithThresholds = array_merge(
                                $titlesWithThresholds,
                                array_map(
-                                       function( LinkTarget $target ) {
+                                       function ( LinkTarget $target ) {
                                                return [ $target, null ];
                                        },
                                        $this->missing
index ff97668..2d56983 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Created on January 21, 2013
  *
- * Copyright © 2013 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2013 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,7 +21,6 @@
  *
  * @file
  * @since 1.21
- * @author Brad Jorsch
  */
 
 /**
index e90356d..97f79b6 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Created on December 31, 2012
  *
- * Copyright © 2012 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2012 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,7 +21,6 @@
  *
  * @file
  * @since 1.21
- * @author Brad Jorsch
  */
 
 /**
index 5606f3c..2fbc518 100644 (file)
@@ -54,7 +54,7 @@ class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
                $titles = $searchEngine->extractTitles( $searchEngine->completionSearchWithVariants( $search ) );
 
                if ( $resultPageSet ) {
-                       $resultPageSet->setRedirectMergePolicy( function( array $current, array $new ) {
+                       $resultPageSet->setRedirectMergePolicy( function ( array $current, array $new ) {
                                if ( !isset( $current['index'] ) || $new['index'] < $current['index'] ) {
                                        $current['index'] = $new['index'];
                                }
index 85205c8..0e46fd0 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Created on August 8, 2014
  *
- * Copyright © 2014 Brad Jorsch bjorsch@wikimedia.org
+ * Copyright © 2014 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index a5d06c8..5b094cd 100644 (file)
@@ -214,7 +214,7 @@ class ApiQueryUsers extends ApiQueryBase {
                                }
 
                                if ( isset( $this->prop['groupmemberships'] ) ) {
-                                       $data[$key]['groupmemberships'] = array_map( function( $ugm ) {
+                                       $data[$key]['groupmemberships'] = array_map( function ( $ugm ) {
                                                return [
                                                        'group' => $ugm->getGroup(),
                                                        'expiry' => ApiResult::formatExpiry( $ugm->getExpiry() ),
index 661b50c..e18484b 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index a4b51b5..7783826 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 4580aa2..9d71a7d 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Created on Jun 25, 2013
  *
- * Copyright © 2013 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2013 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 70e93a6..a41f655 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Created on Feb 25, 2015
  *
- * Copyright © 2015 Brad Jorsch "bjorsch@wikimedia.org"
+ * Copyright © 2015 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 1fc8fc2..663416e 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Created on Jun 18, 2012
  *
- * Copyright © 2012 Brad Jorsch
+ * Copyright © 2012 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 37ee3e7..c7a00c6 100644 (file)
@@ -16,7 +16,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 use MediaWiki\Logger\LoggerFactory;
index bf0f8e5..8eda106 100644 (file)
                        "Yasten",
                        "Trial",
                        "Pols12",
-                       "The RedBurn"
+                       "The RedBurn",
+                       "Umherirrender"
                ]
        },
-       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Documentation]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Liste de diffusion]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annonces de l’API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bogues et demandes]\n</div>\n<strong>État :</strong> Toutes les fonctionnalités affichées sur cette page devraient fonctionner, mais l’API est encore en cours de développement et peut changer à tout moment. Inscrivez-vous à [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la liste de diffusion mediawiki-api-announce] pour être informé des mises à jour.\n\n<strong>Requêtes erronées :</strong> Si des requêtes erronées sont envoyées à l’API, un entête HTTP sera renvoyé avec la clé « MediaWiki-API-Error ». La valeur de cet entête et le code d’erreur renvoyé prendront la même valeur. Pour plus d’information, voyez [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Errors and warnings]].\n\n<strong>Test :</strong> Pour faciliter le test des requêtes de l’API, voyez [[Special:ApiSandbox]].",
        "apihelp-main-param-action": "Quelle action effectuer.",
        "apihelp-main-param-format": "Le format de sortie.",
        "apihelp-main-param-maxlag": "La latence maximale peut être utilisée quand MédiaWiki est installé sur un cluster de base de données répliqué. Pour éviter des actions provoquant un supplément de latence de réplication de site, ce paramètre peut faire attendre le client jusqu’à ce que la latence de réplication soit inférieure à une valeur spécifiée. En cas de latence excessive, le code d’erreur <samp>maxlag</samp> est renvoyé avec un message tel que <samp>Attente de $host : $lag secondes de délai</samp>.<br />Voyez [[mw:Special:MyLanguage/Manual:Maxlag_parameter|Manuel: Maxlag parameter]] pour plus d’information.",
@@ -46,7 +46,7 @@
        "apihelp-main-param-errorformat": "Format à utiliser pour la sortie du texte d’avertissement et d’erreur.\n; plaintext: Wikitexte avec balises HTML supprimées et les entités remplacées.\n; wikitext: wikitexte non analysé.\n; html: HTML.\n; raw: Clé de message et paramètres.\n; none: Aucune sortie de texte, uniquement les codes erreur.\n; bc: Format utilisé avant MédiaWiki 1.29. <var>errorlang</var> et <var>errorsuselocal</var> sont ignorés.",
        "apihelp-main-param-errorlang": "Langue à utiliser pour les avertissements et les erreurs. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> avec <kbd>siprop=languages</kbd> renvoyant une liste de codes de langue, ou spécifier <kbd>content</kbd> pour utiliser la langue du contenu de ce wiki, ou spécifier <kbd>uselang</kbd> pour utiliser la même valeur que le paramètre <var>uselang</var>.",
        "apihelp-main-param-errorsuselocal": "S’il est fourni, les textes d’erreur utiliseront des messages adaptés à la langue dans l’espace de noms {{ns:MediaWiki}}.",
-       "apihelp-block-description": "Bloquer un utilisateur.",
+       "apihelp-block-summary": "Bloquer un utilisateur.",
        "apihelp-block-param-user": "Nom d’utilisateur, adresse IP ou plage d’adresses IP que vous voulez bloquer. Ne peut pas être utilisé en même temps que <var>$1userid</var>",
        "apihelp-block-param-userid": "ID d'utilisateur à bloquer. Ne peut pas être utilisé avec <var>$1user</var>.",
        "apihelp-block-param-expiry": "Durée d’expiration. Peut être relative (par ex. <kbd>5 months</kbd> ou <kbd>2 weeks</kbd>) ou absolue (par ex. <kbd>2014-09-18T12:34:56Z</kbd>). Si elle est mise à <kbd>infinite</kbd>, <kbd>indefinite</kbd> ou <kbd>never</kbd>, le blocage n’expirera jamais.",
        "apihelp-block-param-tags": "Modifier les balises à appliquer à l’entrée du journal des blocages.",
        "apihelp-block-example-ip-simple": "Bloquer l’adresse IP <kbd>192.0.2.5</kbd> pour trois jours avec le motif <kbd>Premier avertissement</kbd>.",
        "apihelp-block-example-user-complex": "Bloquer indéfiniment l’utilisateur <kbd>Vandal</kbd> avec le motif <kbd>Vandalism</kbd>, et empêcher la création de nouveau compte et l'envoi de courriel.",
-       "apihelp-changeauthenticationdata-description": "Modifier les données d’authentification pour l’utilisateur actuel.",
+       "apihelp-changeauthenticationdata-summary": "Modifier les données d’authentification pour l’utilisateur actuel.",
        "apihelp-changeauthenticationdata-example-password": "Tentative de modification du mot de passe de l’utilisateur actuel en <kbd>ExempleMotDePasse</kbd>.",
-       "apihelp-checktoken-description": "Vérifier la validité d'un jeton de <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
+       "apihelp-checktoken-summary": "Vérifier la validité d'un jeton de <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
        "apihelp-checktoken-param-type": "Type de jeton testé",
        "apihelp-checktoken-param-token": "Jeton à tester.",
        "apihelp-checktoken-param-maxtokenage": "Temps maximum autorisé pour l'utilisation du jeton, en secondes",
        "apihelp-checktoken-example-simple": "Tester la validité d'un jeton de <kbd>csrf</kbd>.",
-       "apihelp-clearhasmsg-description": "Efface le drapeau <code>hasmsg</code> pour l’utilisateur courant.",
+       "apihelp-clearhasmsg-summary": "Efface le drapeau <code>hasmsg</code> pour l’utilisateur courant.",
        "apihelp-clearhasmsg-example-1": "Effacer le drapeau <code>hasmsg</code> pour l’utilisateur courant",
-       "apihelp-clientlogin-description": "Se connecter au wiki en utilisant le flux interactif.",
+       "apihelp-clientlogin-summary": "Se connecter au wiki en utilisant le flux interactif.",
        "apihelp-clientlogin-example-login": "Commencer le processus de connexion au wiki en tant qu’utilisateur <kbd>Exemple</kbd> avec le mot de passe <kbd>ExempleMotDePasse</kbd>.",
        "apihelp-clientlogin-example-login2": "Continuer la connexion après une réponse de l’<samp>IHM</samp> pour l’authentification à deux facteurs, en fournissant un <var>OATHToken</var> valant <kbd>987654</kbd>.",
-       "apihelp-compare-description": "Obtenir la différence entre 2 pages.\n\nVous devez passer un numéro de révision, un titre de page, ou un ID de page, à la fois pour « from » et « to ».",
        "apihelp-compare-param-fromtitle": "Premier titre à comparer.",
        "apihelp-compare-param-fromid": "ID de la première page à comparer.",
        "apihelp-compare-param-fromrev": "Première révision à comparer.",
        "apihelp-compare-paramvalue-prop-parsedcomment": "Le commentaire analysé des révisions 'depuis' et 'vers'.",
        "apihelp-compare-paramvalue-prop-size": "La taille des révisions 'depuis' et 'vers'.",
        "apihelp-compare-example-1": "Créer une différence entre les révisions 1 et 2",
-       "apihelp-createaccount-description": "Créer un nouveau compte utilisateur.",
+       "apihelp-createaccount-summary": "Créer un nouveau compte utilisateur.",
        "apihelp-createaccount-param-preservestate": "Si <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> a retourné true pour <samp>hasprimarypreservedstate</samp>, les demandes marquées comme <samp>primary-required</samp> doivent être omises. Si elle a retourné une valeur non vide pour <samp>preservedusername</samp>, ce nom d'utilisateur doit être utilisé pour le paramètre <var>username</var>.",
        "apihelp-createaccount-example-create": "Commencer le processus de création d’un utilisateur <kbd>Exemple</kbd> avec le mot de passe <kbd>ExempleMotDePasse</kbd>.",
        "apihelp-createaccount-param-name": "Nom d’utilisateur.",
        "apihelp-createaccount-param-language": "Code de langue à mettre par défaut pour l’utilisateur (facultatif, par défaut langue du contenu).",
        "apihelp-createaccount-example-pass": "Créer l’utilisateur <kbd>testuser</kbd> avec le mot de passe <kbd>test123</kbd>.",
        "apihelp-createaccount-example-mail": "Créer l’utilisateur <kbd>testmailuser</kbd> et envoyer par courriel un mot de passe généré aléatoirement.",
-       "apihelp-cspreport-description": "Utilisé par les navigateurs pour signaler les violations de la politique de confidentialité du contenu. Ce module ne devrait jamais être utilisé, sauf quand il est utilisé automatiquement par un navigateur web compatible avec CSP.",
+       "apihelp-cspreport-summary": "Utilisé par les navigateurs pour signaler les violations de la politique de confidentialité du contenu. Ce module ne devrait jamais être utilisé, sauf quand il est utilisé automatiquement par un navigateur web compatible avec CSP.",
        "apihelp-cspreport-param-reportonly": "Marquer comme étant un rapport d’une politique de surveillance, et non une politique exigée",
        "apihelp-cspreport-param-source": "Ce qui a généré l’entête CSP qui a déclenché ce rapport",
-       "apihelp-delete-description": "Supprimer une page.",
+       "apihelp-delete-summary": "Supprimer une page.",
        "apihelp-delete-param-title": "Titre de la page que vous voulez supprimer. Impossible à utiliser avec <var>$1pageid</var>.",
        "apihelp-delete-param-pageid": "ID de la page que vous voulez supprimer. Impossible à utiliser avec <var>$1title</var>.",
        "apihelp-delete-param-reason": "Motif de suppression. Si non défini, un motif généré automatiquement sera utilisé.",
        "apihelp-delete-param-oldimage": "Le nom de l’ancienne image à supprimer tel que fourni par [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].",
        "apihelp-delete-example-simple": "Supprimer <kbd>Main Page</kbd>.",
        "apihelp-delete-example-reason": "Supprimer <kbd>Main Page</kbd> avec le motif <kbd>Preparing for move</kbd>.",
-       "apihelp-disabled-description": "Ce module a été désactivé.",
-       "apihelp-edit-description": "Créer et modifier les pages.",
+       "apihelp-disabled-summary": "Ce module a été désactivé.",
+       "apihelp-edit-summary": "Créer et modifier les pages.",
        "apihelp-edit-param-title": "Titre de la page que vous voulez modifier. Impossible de l’utiliser avec <var>$1pageid</var>.",
        "apihelp-edit-param-pageid": "ID de la page que vous voulez modifier. Impossible à utiliser avec <var>$1title</var>.",
        "apihelp-edit-param-section": "Numéro de section. <kbd>0</kbd> pour la section de tête, <kbd>new</kbd> pour une nouvelle section.",
        "apihelp-edit-example-edit": "Modifier une page",
        "apihelp-edit-example-prepend": "Préfixer une page par <kbd>_&#95;NOTOC_&#95;</kbd>.",
        "apihelp-edit-example-undo": "Annuler les révisions 13579 à 13585 avec résumé automatique.",
-       "apihelp-emailuser-description": "Envoyer un courriel à un utilisateur.",
+       "apihelp-emailuser-summary": "Envoyer un courriel à un utilisateur.",
        "apihelp-emailuser-param-target": "Utilisateur à qui envoyer le courriel.",
        "apihelp-emailuser-param-subject": "Entête du sujet.",
        "apihelp-emailuser-param-text": "Corps du courriel.",
        "apihelp-emailuser-param-ccme": "M’envoyer une copie de ce courriel.",
        "apihelp-emailuser-example-email": "Envoyer un courriel à l’utilisateur <kbd>WikiSysop</kbd> avec le texte <kbd>Content</kbd>.",
-       "apihelp-expandtemplates-description": "Développe tous les modèles avec du wikitexte.",
+       "apihelp-expandtemplates-summary": "Développe tous les modèles avec du wikitexte.",
        "apihelp-expandtemplates-param-title": "Titre de la page.",
        "apihelp-expandtemplates-param-text": "Wikitexte à convertir.",
        "apihelp-expandtemplates-param-revid": "ID de révision, pour <nowiki>{{REVISIONID}}</nowiki> et les variables semblables.",
        "apihelp-expandtemplates-param-includecomments": "S’il faut inclure les commentaires HTML dans la sortie.",
        "apihelp-expandtemplates-param-generatexml": "Générer l’arbre d’analyse XML (remplacé par $1prop=parsetree).",
        "apihelp-expandtemplates-example-simple": "Développe le wikitexte <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
-       "apihelp-feedcontributions-description": "Renvoie le fil des contributions d’un utilisateur.",
+       "apihelp-feedcontributions-summary": "Renvoie le fil des contributions d’un utilisateur.",
        "apihelp-feedcontributions-param-feedformat": "Le format du flux.",
        "apihelp-feedcontributions-param-user": "Pour quels utilisateurs récupérer les contributions.",
        "apihelp-feedcontributions-param-namespace": "Par quels espaces de nom filtrer les contributions.",
        "apihelp-feedcontributions-param-hideminor": "Masquer les modifications mineures.",
        "apihelp-feedcontributions-param-showsizediff": "Afficher la différence de taille entre les révisions.",
        "apihelp-feedcontributions-example-simple": "Renvoyer les contributions de l'utilisateur <kbd>Exemple</kbd>.",
-       "apihelp-feedrecentchanges-description": "Renvoie un fil de modifications récentes.",
+       "apihelp-feedrecentchanges-summary": "Renvoie un fil de modifications récentes.",
        "apihelp-feedrecentchanges-param-feedformat": "Le format du flux.",
        "apihelp-feedrecentchanges-param-namespace": "Espace de noms auquel limiter les résultats.",
        "apihelp-feedrecentchanges-param-invert": "Tous les espaces de noms sauf celui sélectionné.",
        "apihelp-feedrecentchanges-param-categories_any": "Afficher plutôt uniquement les modifications sur les pages dans n’importe laquelle de ces catégories.",
        "apihelp-feedrecentchanges-example-simple": "Afficher les modifications récentes",
        "apihelp-feedrecentchanges-example-30days": "Afficher les modifications récentes sur 30 jours",
-       "apihelp-feedwatchlist-description": "Renvoie un flux de liste de suivi.",
+       "apihelp-feedwatchlist-summary": "Renvoie un flux de liste de suivi.",
        "apihelp-feedwatchlist-param-feedformat": "Le format du flux.",
        "apihelp-feedwatchlist-param-hours": "Lister les pages modifiées lors de ce nombre d’heures depuis maintenant.",
        "apihelp-feedwatchlist-param-linktosections": "Lier directement vers les sections modifées si possible.",
        "apihelp-feedwatchlist-example-default": "Afficher le flux de la liste de suivi",
        "apihelp-feedwatchlist-example-all6hrs": "Afficher toutes les modifications sur les pages suivies dans les dernières 6 heures",
-       "apihelp-filerevert-description": "Rétablir un fichier dans une ancienne version.",
+       "apihelp-filerevert-summary": "Rétablir un fichier dans une ancienne version.",
        "apihelp-filerevert-param-filename": "Nom de fichier cible, sans le préfixe File:.",
        "apihelp-filerevert-param-comment": "Téléverser le commentaire.",
        "apihelp-filerevert-param-archivename": "Nom d’archive de la révision à rétablir.",
        "apihelp-filerevert-example-revert": "Rétablir <kbd>Wiki.png</kbd> dans la version du <kbd>2011-03-05T15:27:40Z</kbd>.",
-       "apihelp-help-description": "Afficher l’aide pour les modules spécifiés.",
+       "apihelp-help-summary": "Afficher l’aide pour les modules spécifiés.",
        "apihelp-help-param-modules": "Modules pour lesquels afficher l’aide (valeurs des paramètres <var>action</var> et <var>format</var>, ou <kbd>main</kbd>). Les sous-modules peuvent être spécifiés avec un <kbd>+</kbd>.",
        "apihelp-help-param-submodules": "Inclure l’aide pour les sous-modules du module nommé.",
        "apihelp-help-param-recursivesubmodules": "Inclure l’aide pour les sous-modules de façon récursive.",
        "apihelp-help-example-recursive": "Toute l’aide sur une page.",
        "apihelp-help-example-help": "Aide pour le module d’aide lui-même.",
        "apihelp-help-example-query": "Aide pour deux sous-modules de recherche.",
-       "apihelp-imagerotate-description": "Faire pivoter une ou plusieurs images.",
+       "apihelp-imagerotate-summary": "Faire pivoter une ou plusieurs images.",
        "apihelp-imagerotate-param-rotation": "Degrés de rotation de l’image dans le sens des aiguilles d’une montre.",
        "apihelp-imagerotate-param-tags": "Balises à appliquer à l’entrée dans le journal de téléversement.",
        "apihelp-imagerotate-example-simple": "Faire pivoter <kbd>File:Example.png</kbd> de <kbd>90</kbd> degrés.",
        "apihelp-imagerotate-example-generator": "Faire pivoter toutes les images de <kbd>Category:Flip</kbd> de <kbd>180</kbd> degrés.",
-       "apihelp-import-description": "Importer une page depuis un autre wiki, ou depuis un fichier XML.\n\nNoter que le POST HTTP doit être effectué comme un import de fichier (c’est-à-dire en utilisant multipart/form-data) lors de l’envoi d’un fichier pour le paramètre <var>xml</var>.",
        "apihelp-import-param-summary": "Résumé de l’importation de l’entrée de journal.",
        "apihelp-import-param-xml": "Fichier XML téléversé.",
        "apihelp-import-param-interwikisource": "Pour les importations interwiki : wiki depuis lequel importer.",
        "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Impossible à utiliser avec <var>$1namespace</var>.",
        "apihelp-import-param-tags": "Modifier les balises à appliquer à l'entrée du journal d'importation et à la version zéro des pages importées.",
        "apihelp-import-example-import": "Importer [[meta:Help:ParserFunctions]] vers l’espace de noms 100 avec tout l’historique.",
-       "apihelp-linkaccount-description": "Lier un compte d’un fournisseur tiers à l’utilisateur actuel.",
+       "apihelp-linkaccount-summary": "Lier un compte d’un fournisseur tiers à l’utilisateur actuel.",
        "apihelp-linkaccount-example-link": "Commencer le processus de liaison d’un compte depuis <kbd>Exemple</kbd>.",
-       "apihelp-login-description": "Se connecter et obtenir les témoins d’authentification.\n\nCette action ne devrait être utilisée qu’en lien avec [[Special:BotPasswords]] ; l’utiliser pour la connexion du compte principal est désuet et peut échouer sans avertissement. Pour se connecter sans problème au compte principal, utiliser <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
-       "apihelp-login-description-nobotpasswords": "Se connecter et obtenir les témoins d’authentification.\n\nCette action est désuète et peut échouer sans prévenir. Pour se connecter sans problème, utiliser <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
+       "apihelp-login-summary": "Reconnecte et récupère les témoins (cookies) d'authentification.",
        "apihelp-login-param-name": "Nom d’utilisateur.",
        "apihelp-login-param-password": "Mot de passe.",
        "apihelp-login-param-domain": "Domaine (facultatif).",
        "apihelp-login-param-token": "Jeton de connexion obtenu à la première requête.",
        "apihelp-login-example-gettoken": "Récupérer un jeton de connexion",
        "apihelp-login-example-login": "Se connecter",
-       "apihelp-logout-description": "Se déconnecter et effacer les données de session.",
+       "apihelp-logout-summary": "Se déconnecter et effacer les données de session.",
        "apihelp-logout-example-logout": "Déconnecter l’utilisateur actuel.",
-       "apihelp-managetags-description": "Effectuer des tâches de gestion relatives à la modification des balises.",
+       "apihelp-managetags-summary": "Effectuer des tâches de gestion relatives à la modification des balises.",
        "apihelp-managetags-param-operation": "Quelle opération effectuer :\n;create:Créer une nouvelle balise de modification pour un usage manuel.\n;delete:Supprimer une balise de modification de la base de données, y compris la suppression de la marque de toutes les révisions, entrées de modification récente et entrées de journal dans lesquelles elle serait utilisée.\n;activate:Activer une balise de modification, permettant aux utilisateurs de l’appliquer manuellement.\n;deactivate:Désactiver une balise de modification, empêchant les utilisateurs de l’appliquer manuellement.",
        "apihelp-managetags-param-tag": "Balise à créer, supprimer, activer ou désactiver. Pour la création de balise, elle ne doit pas exister. Pour la suppression de balise, elle doit exister. Pour l’activation de balise, elle doit exister et ne pas être utilisée par une extension. Pour la désactivation de balise, elle doit être actuellement active et définie manuellement.",
        "apihelp-managetags-param-reason": "Un motif facultatif pour créer, supprimer, activer ou désactiver la balise.",
        "apihelp-managetags-example-delete": "Supprimer la balise <kbd>vandlaism</kbd> avec le motif <kbd>Misspelt</kbd>",
        "apihelp-managetags-example-activate": "Activer une balise nommée <kbd>spam</kbd> avec le motif <kbd>For use in edit patrolling</kbd>",
        "apihelp-managetags-example-deactivate": "Désactiver une balise nommée <kbd>spam</kbd> avec le motif <kbd>No longer required</kbd>",
-       "apihelp-mergehistory-description": "Fusionner les historiques des pages.",
+       "apihelp-mergehistory-summary": "Fusionner les historiques des pages.",
        "apihelp-mergehistory-param-from": "Titre de la page depuis laquelle l’historique sera fusionné. Impossible à utiliser avec <var>$1fromid</var>.",
        "apihelp-mergehistory-param-fromid": "ID de la page depuis laquelle l’historique sera fusionné. Impossible à utiliser avec <var>$1from</var>.",
        "apihelp-mergehistory-param-to": "Titre de la page vers laquelle l’historique sera fusionné. Impossible à utiliser avec <var>$1toid</var>.",
        "apihelp-mergehistory-param-reason": "Raison pour fusionner l’historique.",
        "apihelp-mergehistory-example-merge": "Fusionner l’historique complet de  <kbd>AnciennePage</kbd> dans <kbd>NouvellePage</kbd>.",
        "apihelp-mergehistory-example-merge-timestamp": "Fusionner les révisions de la page <kbd>AnciennePage</kbd> jusqu’au <kbd>2015-12-31T04:37:41Z</kbd> dans <kbd>NouvellePage</kbd>.",
-       "apihelp-move-description": "Déplacer une page.",
+       "apihelp-move-summary": "Déplacer une page.",
        "apihelp-move-param-from": "Titre de la page à renommer. Impossible de l’utiliser avec <var>$1fromid</var>.",
        "apihelp-move-param-fromid": "ID de la page à renommer. Impossible à utiliser avec <var>$1from</var>.",
        "apihelp-move-param-to": "Nouveau titre de la page.",
        "apihelp-move-param-ignorewarnings": "Ignorer tous les avertissements.",
        "apihelp-move-param-tags": "Modifier les balises à appliquer à l'entrée du journal des renommages et à la version zéro de la page de destination.",
        "apihelp-move-example-move": "Renommer <kbd>Badtitle</kbd> en <kbd>Goodtitle</kbd> sans garder de redirection.",
-       "apihelp-opensearch-description": "Rechercher dans le wiki en utilisant le protocole OpenSearch.",
+       "apihelp-opensearch-summary": "Rechercher dans le wiki en utilisant le protocole OpenSearch.",
        "apihelp-opensearch-param-search": "Chaîne de caractères cherchée.",
        "apihelp-opensearch-param-limit": "Nombre maximal de résultats à renvoyer.",
        "apihelp-opensearch-param-namespace": "Espaces de nom à rechercher.",
        "apihelp-opensearch-param-format": "Le format de sortie.",
        "apihelp-opensearch-param-warningsaserror": "Si des avertissements apparaissent avec <kbd>format=json</kbd>, renvoyer une erreur d’API au lieu de les ignorer.",
        "apihelp-opensearch-example-te": "Trouver les pages commençant par <kbd>Te</kbd>.",
-       "apihelp-options-description": "Modifier les préférences de l’utilisateur courant.\n\nSeules les options enregistrées dans le cœur ou dans l’une des extensions installées, ou les options avec des clés préfixées par <code>userjs-</code> (devant être utilisées dans les scripts utilisateur), peuvent être définies.",
+       "apihelp-options-summary": "Modifier les préférences de l'utilisateur courant.",
        "apihelp-options-param-reset": "Réinitialise les préférences avec les valeurs par défaut du site.",
        "apihelp-options-param-resetkinds": "Liste des types d’option à réinitialiser quand l’option <var>$1reset</var> est définie.",
        "apihelp-options-param-change": "Liste des modifications, au format nom=valeur (par ex. skin=vector). Si aucune valeur n’est fournie (pas même un signe égal), par ex., nomoption|autreoption|…, l’option sera réinitialisée à sa valeur par défaut. Pour toute valeur passée contenant une barre verticale (<kbd>|</kbd>), utiliser le [[Special:ApiHelp/main#main/datatypes|séparateur alternatif de valeur multiple]] pour que l'opération soit correcte.",
        "apihelp-options-example-reset": "Réinitialiser toutes les préférences",
        "apihelp-options-example-change": "Modifier les préférences <kbd>skin</kbd> et <kbd>hideminor</kbd>.",
        "apihelp-options-example-complex": "Réinitialiser toutes les préférences, puis définir <kbd>skin</kbd> et <kbd>nickname</kbd>.",
-       "apihelp-paraminfo-description": "Obtenir des informations sur les modules de l’API.",
+       "apihelp-paraminfo-summary": "Obtenir des informations sur les modules de l’API.",
        "apihelp-paraminfo-param-modules": "Liste des noms de module (valeurs des paramètres <var>action</var> et <var>format</var>, ou <kbd>main</kbd>). Peut spécifier des sous-modules avec un <kbd>+</kbd>, ou tous les sous-modules avec <kbd>+*</kbd>, ou tous les sous-modules récursivement avec <kbd>+**</kbd>.",
        "apihelp-paraminfo-param-helpformat": "Format des chaînes d’aide.",
        "apihelp-paraminfo-param-querymodules": "Liste des noms des modules de requête (valeur des paramètres <var>prop</var>, <var>meta</var> ou <var>list</var>). Utiliser <kbd>$1modules=query+foo</kbd> au lieu de <kbd>$1querymodules=foo</kbd>.",
        "apihelp-paraminfo-param-formatmodules": "Liste des noms de module de mise en forme (valeur du paramètre <var>format</var>). Utiliser plutôt <var>$1modules</var>.",
        "apihelp-paraminfo-example-1": "Afficher les informations pour <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd> et <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
        "apihelp-paraminfo-example-2": "Afficher les informations pour tous les sous-modules de <kbd>[[Special:ApiHelp/query|action=query]]</kbd>.",
-       "apihelp-parse-description": "Analyse le contenu et renvoie le résultat de l’analyseur.\n\nVoyez les différents modules prop de <kbd>[[Special:ApiHelp/query|action=query]]</kbd> pour avoir de l’information sur la version actuelle d’une page.\n\nIl y a plusieurs moyens de spécifier le texte à analyser :\n# Spécifier une page ou une révision, en utilisant <var>$1page</var>, <var>$1pageid</var> ou <var>$1oldid</var>.\n# Spécifier explicitement un contenu, en utilisant <var>$1text</var>, <var>$1title</var> et <var>$1contentmodel</var>\n# Spécifier uniquement un résumé à analyser. <var>$1prop</var> doit recevoir une valeur vide.",
        "apihelp-parse-param-title": "Titre de la page à laquelle appartient le texte. Si omis, <var>$1contentmodel</var> doit être spécifié, et [[API]] sera utilisé comme titre.",
        "apihelp-parse-param-text": "Texte à analyser. utiliser <var>$1title</var> ou <var>$1contentmodel</var> pour contrôler le modèle de contenu.",
        "apihelp-parse-param-summary": "Résumé à analyser.",
        "apihelp-parse-example-text": "Analyser le wikitexte.",
        "apihelp-parse-example-texttitle": "Analyser du wikitexte, en spécifiant le titre de la page.",
        "apihelp-parse-example-summary": "Analyser un résumé.",
-       "apihelp-patrol-description": "Patrouiller une page ou une révision.",
+       "apihelp-patrol-summary": "Patrouiller une page ou une révision.",
        "apihelp-patrol-param-rcid": "ID de modification récente à patrouiller.",
        "apihelp-patrol-param-revid": "ID de révision à patrouiller.",
        "apihelp-patrol-param-tags": "Modifier les balises à appliquer à l’entrée dans le journal de surveillance.",
        "apihelp-patrol-example-rcid": "Patrouiller une modification récente",
        "apihelp-patrol-example-revid": "Patrouiller une révision",
-       "apihelp-protect-description": "Modifier le niveau de protection d’une page.",
+       "apihelp-protect-summary": "Modifier le niveau de protection d’une page.",
        "apihelp-protect-param-title": "Titre de la page à (dé)protéger. Impossible à utiliser avec $1pageid.",
        "apihelp-protect-param-pageid": "ID de la page à (dé)protéger. Impossible à utiliser avec $1title.",
        "apihelp-protect-param-protections": "Liste des niveaux de protection, au format <kbd>action=niveau</kbd> (par exemple  <kbd>edit=sysop</kbd>). Un niveau de <kbd>tout</kbd>, indique que tout le monde est autorisé à faire l'action, c'est à dire aucune restriction.\n\n<strong>NOTE :<strong> Toutes les actions non listées auront leur restrictions supprimées.",
        "apihelp-protect-example-protect": "Protéger une page",
        "apihelp-protect-example-unprotect": "Enlever la protection d’une page en mettant les restrictions à <kbd>all</kbd> (c'est à dire tout le monde est autorisé à faire l'action).",
        "apihelp-protect-example-unprotect2": "Enlever la protection de la page en ne mettant aucune restriction",
-       "apihelp-purge-description": "Vider le cache des titres fournis.",
+       "apihelp-purge-summary": "Vider le cache des titres fournis.",
        "apihelp-purge-param-forcelinkupdate": "Mettre à jour les tables de liens.",
        "apihelp-purge-param-forcerecursivelinkupdate": "Mettre à jour la table des liens, et mettre à jour les tables de liens pour toute page qui utilise cette page comme modèle",
        "apihelp-purge-example-simple": "Purger les pages <kbd>Main Page</kbd> et <kbd>API</kbd>.",
        "apihelp-purge-example-generator": "Purger les 10 premières pages de l’espace de noms principal",
-       "apihelp-query-description": "Extraire des données de et sur MediaWiki.\n\nToutes les modifications de données devront d’abord utiliser une requête pour obtenir un jeton, afin d’éviter les abus de la part de sites malveillants.",
        "apihelp-query-param-prop": "Quelles propriétés obtenir pour les pages demandées.",
        "apihelp-query-param-list": "Quelles listes obtenir.",
        "apihelp-query-param-meta": "Quelles métadonnées obtenir.",
        "apihelp-query-param-rawcontinue": "Renvoyer les données <samp>query-continue</samp> brutes pour continuer.",
        "apihelp-query-example-revisions": "Récupérer [[Special:ApiHelp/query+siteinfo|l’info du site]] et [[Special:ApiHelp/query+revisions|les révisions]] de <kbd>Main Page</kbd>.",
        "apihelp-query-example-allpages": "Récupérer les révisions des pages commençant par <kbd>API/</kbd>.",
-       "apihelp-query+allcategories-description": "Énumérer toutes les catégories.",
+       "apihelp-query+allcategories-summary": "Énumérer toutes les catégories.",
        "apihelp-query+allcategories-param-from": "La catégorie depuis laquelle démarrer l’énumération.",
        "apihelp-query+allcategories-param-to": "La catégorie à laquelle terminer l’énumération.",
        "apihelp-query+allcategories-param-prefix": "Rechercher tous les titres de catégorie qui commencent avec cette valeur.",
        "apihelp-query+allcategories-paramvalue-prop-hidden": "Marque les catégories qui sont masquées avec <code>_&#95;HIDDENCAT_&#95;</code>.",
        "apihelp-query+allcategories-example-size": "Lister les catégories avec l’information sur le nombre de pages dans chacune",
        "apihelp-query+allcategories-example-generator": "Récupérer l’information sur la page de catégorie elle-même pour les catégories commençant par <kbd>List</kbd>.",
-       "apihelp-query+alldeletedrevisions-description": "Lister toutes les révisions supprimées par un utilisateur ou dans un espace de noms.",
+       "apihelp-query+alldeletedrevisions-summary": "Lister toutes les révisions supprimées par un utilisateur ou dans un espace de noms.",
        "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Utilisable uniquement avec <var>$3user</var>.",
        "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Impossible à utiliser avec <var>$3user</var>.",
        "apihelp-query+alldeletedrevisions-param-start": "L’horodatage auquel démarrer l’énumération.",
        "apihelp-query+alldeletedrevisions-param-generatetitles": "Utilisé comme générateur, générer des titres plutôt que des IDs de révision.",
        "apihelp-query+alldeletedrevisions-example-user": "Lister les 50 dernières contributions supprimées par l'utilisateur <kbd>Example</kbd>.",
        "apihelp-query+alldeletedrevisions-example-ns-main": "Lister les 50 premières révisions supprimées dans l’espace de noms principal.",
-       "apihelp-query+allfileusages-description": "Lister toutes les utilisations de fichiers, y compris ceux n’existant pas.",
+       "apihelp-query+allfileusages-summary": "Lister toutes les utilisations de fichiers, y compris ceux n’existant pas.",
        "apihelp-query+allfileusages-param-from": "Le titre du fichier depuis lequel commencer l’énumération.",
        "apihelp-query+allfileusages-param-to": "Le titre du fichier auquel arrêter l’énumération.",
        "apihelp-query+allfileusages-param-prefix": "Rechercher tous les fichiers dont le titre commence par cette valeur.",
        "apihelp-query+allfileusages-example-unique": "Lister les titres de fichier uniques.",
        "apihelp-query+allfileusages-example-unique-generator": "Obtient tous les titres de fichier, en marquant les manquants.",
        "apihelp-query+allfileusages-example-generator": "Obtient les pages contenant les fichiers.",
-       "apihelp-query+allimages-description": "Énumérer toutes les images séquentiellement.",
+       "apihelp-query+allimages-summary": "Énumérer toutes les images séquentiellement.",
        "apihelp-query+allimages-param-sort": "Propriété par laquelle trier.",
        "apihelp-query+allimages-param-dir": "L'ordre dans laquel lister.",
        "apihelp-query+allimages-param-from": "Le titre de l’image depuis laquelle démarrer l’énumération. Ne peut être utilisé qu’avec $1sort=name.",
        "apihelp-query+allimages-example-recent": "Afficher une liste de fichiers récemment téléversés, semblable à [[Special:NewFiles]].",
        "apihelp-query+allimages-example-mimetypes": "Afficher une liste de fichiers avec le type MIME <kbd>image/png</kbd> ou <kbd>image/gif</kbd>",
        "apihelp-query+allimages-example-generator": "Afficher l’information sur 4 fichiers commençant par la lettre <kbd>T</kbd>.",
-       "apihelp-query+alllinks-description": "Énumérer tous les liens pointant vers un espace de noms donné.",
+       "apihelp-query+alllinks-summary": "Énumérer tous les liens pointant vers un espace de noms donné.",
        "apihelp-query+alllinks-param-from": "Le titre du lien auquel démarrer l’énumération.",
        "apihelp-query+alllinks-param-to": "Le titre du lien auquel arrêter l’énumération.",
        "apihelp-query+alllinks-param-prefix": "Rechercher tous les titres liés commençant par cette valeur.",
        "apihelp-query+alllinks-example-unique": "Lister les titres liés uniques",
        "apihelp-query+alllinks-example-unique-generator": "Obtient tous les titres liés, en marquant les manquants",
        "apihelp-query+alllinks-example-generator": "Obtient les pages contenant les liens",
-       "apihelp-query+allmessages-description": "Renvoyer les messages depuis ce site.",
+       "apihelp-query+allmessages-summary": "Renvoyer les messages depuis ce site.",
        "apihelp-query+allmessages-param-messages": "Quels messages sortir. <kbd>*</kbd> (par défaut) signifie tous les messages.",
        "apihelp-query+allmessages-param-prop": "Quelles propriétés obtenir.",
        "apihelp-query+allmessages-param-enableparser": "Positionner pour activer l’analyseur, traitera en avance le wikitexte du message (substitution des mots magiques, gestion des modèles, etc.).",
        "apihelp-query+allmessages-param-prefix": "Renvoyer les messages avec ce préfixe.",
        "apihelp-query+allmessages-example-ipb": "Afficher les messages commençant par <kbd>ipb-</kbd>.",
        "apihelp-query+allmessages-example-de": "Afficher les messages <kbd>august</kbd> et <kbd>mainpage</kbd> en allemand.",
-       "apihelp-query+allpages-description": "Énumérer toutes les pages séquentiellement dans un espace de noms donné.",
+       "apihelp-query+allpages-summary": "Énumérer toutes les pages séquentiellement dans un espace de noms donné.",
        "apihelp-query+allpages-param-from": "Le titre de la page depuis lequel commencer l’énumération.",
        "apihelp-query+allpages-param-to": "Le titre de la page auquel stopper l’énumération.",
        "apihelp-query+allpages-param-prefix": "Rechercher tous les titres de page qui commencent par cette valeur.",
        "apihelp-query+allpages-example-B": "Afficher une liste des pages commençant par la lettre <kbd>B</kbd>.",
        "apihelp-query+allpages-example-generator": "Afficher l’information sur 4 pages commençant par la lettre <kbd>T</kbd>.",
        "apihelp-query+allpages-example-generator-revisions": "Afficher le contenu des 2 premières pages hors redirections commençant par <kbd>Re</kbd>.",
-       "apihelp-query+allredirects-description": "Lister toutes les redirections vers un espace de noms.",
+       "apihelp-query+allredirects-summary": "Lister toutes les redirections vers un espace de noms.",
        "apihelp-query+allredirects-param-from": "Le titre de la redirection auquel démarrer l’énumération.",
        "apihelp-query+allredirects-param-to": "Le titre de la redirection auquel arrêter l’énumération.",
        "apihelp-query+allredirects-param-prefix": "Rechercher toutes les pages cible commençant par cette valeur.",
        "apihelp-query+allredirects-example-unique": "Lister les pages cible unique",
        "apihelp-query+allredirects-example-unique-generator": "Obtient toutes les pages cible, en marquant les manquantes",
        "apihelp-query+allredirects-example-generator": "Obtient les pages contenant les redirections",
-       "apihelp-query+allrevisions-description": "Lister toutes les révisions.",
+       "apihelp-query+allrevisions-summary": "Lister toutes les révisions.",
        "apihelp-query+allrevisions-param-start": "L’horodatage auquel démarrer l’énumération.",
        "apihelp-query+allrevisions-param-end": "L’horodatage auquel arrêter l’énumération.",
        "apihelp-query+allrevisions-param-user": "Lister uniquement les révisions faites par cet utilisateur.",
        "apihelp-query+allrevisions-param-generatetitles": "Utilisé comme générateur, génère des titres plutôt que des IDs de révision.",
        "apihelp-query+allrevisions-example-user": "Lister les 50 dernières contributions de l’utilisateur <kbd>Example</kbd>.",
        "apihelp-query+allrevisions-example-ns-main": "Lister les 50 premières révisions dans l’espace de noms principal.",
-       "apihelp-query+mystashedfiles-description": "Obtenir une liste des fichiers dans le cache de téléversement de l’utilisateur actuel",
+       "apihelp-query+mystashedfiles-summary": "Obtenir une liste des fichiers dans le cache de téléversement de l’utilisateur actuel",
        "apihelp-query+mystashedfiles-param-prop": "Quelles propriétés récupérer pour les fichiers.",
        "apihelp-query+mystashedfiles-paramvalue-prop-size": "Récupérer la taille du fichier et les dimensions de l’image.",
        "apihelp-query+mystashedfiles-paramvalue-prop-type": "Récupérer le type MIME du fichier et son type de média.",
        "apihelp-query+mystashedfiles-param-limit": "Combien de fichiers obtenir.",
        "apihelp-query+mystashedfiles-example-simple": "Obtenir la clé du fichier, sa taille, et la taille en pixels des fichiers dans le cache de téléversement de l’utilisateur actuel.",
-       "apihelp-query+alltransclusions-description": "Lister toutes les transclusions (pages intégrées en utilisant &#123;&#123;x&#125;&#125;), y compris les inexistantes.",
+       "apihelp-query+alltransclusions-summary": "Lister toutes les transclusions (pages intégrées en utilisant &#123;&#123;x&#125;&#125;), y compris les inexistantes.",
        "apihelp-query+alltransclusions-param-from": "Le titre de la transclusion depuis lequel commencer l’énumération.",
        "apihelp-query+alltransclusions-param-to": "Le titre de la transclusion auquel arrêter l’énumération.",
        "apihelp-query+alltransclusions-param-prefix": "Rechercher tous les titres inclus qui commencent par cette valeur.",
        "apihelp-query+alltransclusions-example-unique": "Lister les titres inclus uniques",
        "apihelp-query+alltransclusions-example-unique-generator": "Obtient tous les titres inclus, en marquant les manquants.",
        "apihelp-query+alltransclusions-example-generator": "Obtient les pages contenant les transclusions.",
-       "apihelp-query+allusers-description": "Énumérer tous les utilisateurs enregistrés.",
+       "apihelp-query+allusers-summary": "Énumérer tous les utilisateurs enregistrés.",
        "apihelp-query+allusers-param-from": "Le nom d’utilisateur auquel démarrer l’énumération.",
        "apihelp-query+allusers-param-to": "Le nom d’utilisateur auquel stopper l’énumération.",
        "apihelp-query+allusers-param-prefix": "Rechercher tous les utilisateurs commençant par cette valeur.",
        "apihelp-query+allusers-param-activeusers": "Lister uniquement les utilisateurs actifs durant {{PLURAL:$1|le dernier jour|les $1 derniers jours}}.",
        "apihelp-query+allusers-param-attachedwiki": "Avec <kbd>$1prop=centralids</kbd>, indiquer aussi si l’utilisateur est attaché avec le wiki identifié par cet ID.",
        "apihelp-query+allusers-example-Y": "Lister les utilisateurs en commençant à <kbd>Y</kbd>.",
-       "apihelp-query+authmanagerinfo-description": "Récupérer les informations concernant l’état d’authentification actuel.",
+       "apihelp-query+authmanagerinfo-summary": "Récupérer les informations concernant l’état d’authentification actuel.",
        "apihelp-query+authmanagerinfo-param-securitysensitiveoperation": "Tester si l’état d’authentification actuel de l’utilisateur est suffisant pour l’opération spécifiée comme sensible du point de vue sécurité.",
        "apihelp-query+authmanagerinfo-param-requestsfor": "Récupérer les informations sur les requêtes d’authentification nécessaires pour l’action d’authentification spécifiée.",
        "apihelp-query+authmanagerinfo-example-login": "Récupérer les requêtes qui peuvent être utilisées en commençant une connexion.",
        "apihelp-query+authmanagerinfo-example-login-merged": "Récupérer les requêtes qui peuvent être utilisées au début de la connexion, avec les champs de formulaire intégrés.",
        "apihelp-query+authmanagerinfo-example-securitysensitiveoperation": "Tester si l’authentification est suffisante pour l’action <kbd>foo</kbd>.",
-       "apihelp-query+backlinks-description": "Trouver toutes les pages qui ont un lien vers la page donnée.",
+       "apihelp-query+backlinks-summary": "Trouver toutes les pages qui ont un lien vers la page donnée.",
        "apihelp-query+backlinks-param-title": "Titre à rechercher. Impossible à utiliser avec <var>$1pageid</var>.",
        "apihelp-query+backlinks-param-pageid": "ID de la page à chercher. Impossible à utiliser avec <var>$1title</var>.",
        "apihelp-query+backlinks-param-namespace": "L’espace de noms à énumérer.",
        "apihelp-query+backlinks-param-redirect": "Si le lien vers une page est une redirection, trouver également toutes les pages qui ont un lien vers cette redirection. La limite maximale est divisée par deux.",
        "apihelp-query+backlinks-example-simple": "Afficher les liens vers <kbd>Main page</kbd>.",
        "apihelp-query+backlinks-example-generator": "Obtenir des informations sur les pages ayant un lien vers <kbd>Main page</kbd>.",
-       "apihelp-query+blocks-description": "Lister tous les utilisateurs et les adresses IP bloqués.",
+       "apihelp-query+blocks-summary": "Lister tous les utilisateurs et les adresses IP bloqués.",
        "apihelp-query+blocks-param-start": "L’horodatage auquel démarrer l’énumération.",
        "apihelp-query+blocks-param-end": "L’horodatage auquel arrêter l’énumération.",
        "apihelp-query+blocks-param-ids": "Liste des IDs de bloc à lister (facultatif).",
        "apihelp-query+blocks-param-show": "Afficher uniquement les éléments correspondant à ces critères.\nPar exemple, pour voir uniquement les blocages infinis sur les adresses IP, mettre <kbd>$1show=ip|!temp</kbd>.",
        "apihelp-query+blocks-example-simple": "Lister les blocages",
        "apihelp-query+blocks-example-users": "Lister les blocages des utilisateurs <kbd>Alice</kbd> et <kbd>Bob</kbd>.",
-       "apihelp-query+categories-description": "Lister toutes les catégories auxquelles les pages appartiennent.",
+       "apihelp-query+categories-summary": "Lister toutes les catégories auxquelles les pages appartiennent.",
        "apihelp-query+categories-param-prop": "Quelles propriétés supplémentaires obtenir de chaque catégorie :",
        "apihelp-query+categories-paramvalue-prop-sortkey": "Ajoute la clé de tri (chaîne hexadécimale) et son préfixe (partie lisible) de la catégorie.",
        "apihelp-query+categories-paramvalue-prop-timestamp": "Ajoute l’horodatage de l’ajout de la catégorie.",
        "apihelp-query+categories-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+categories-example-simple": "Obtenir une liste des catégories auxquelles appartient la page <kbd>Albert Einstein</kbd>.",
        "apihelp-query+categories-example-generator": "Obtenir des informations sur toutes les catégories utilisées dans la page <kbd>Albert Einstein</kbd>.",
-       "apihelp-query+categoryinfo-description": "Renvoie les informations sur les catégories données.",
+       "apihelp-query+categoryinfo-summary": "Renvoie les informations sur les catégories données.",
        "apihelp-query+categoryinfo-example-simple": "Obtenir des informations sur <kbd>Category:Foo</kbd> et <kbd>Category:Bar</kbd>.",
-       "apihelp-query+categorymembers-description": "Lister toutes les pages d’une catégorie donnée.",
+       "apihelp-query+categorymembers-summary": "Lister toutes les pages d’une catégorie donnée.",
        "apihelp-query+categorymembers-param-title": "Quelle catégorie énumérer (obligatoire). Doit comprendre le préfixe <kbd>{{ns:category}}:</kbd>. Impossible à utiliser avec <var>$1pageid</var>.",
        "apihelp-query+categorymembers-param-pageid": "ID de la page de la catégorie à énumérer. Impossible à utiliser avec <var>$1title</var>.",
        "apihelp-query+categorymembers-param-prop": "Quelles informations inclure :",
        "apihelp-query+categorymembers-param-endsortkey": "Utiliser plutôt $1endhexsortkey.",
        "apihelp-query+categorymembers-example-simple": "Obtenir les 10 premières pages de <kbd>Category:Physics</kbd>.",
        "apihelp-query+categorymembers-example-generator": "Obtenir l’information sur les 10 premières pages de <kbd>Category:Physics</kbd>.",
-       "apihelp-query+contributors-description": "Obtenir la liste des contributeurs connectés et le nombre de contributeurs anonymes d’une page.",
+       "apihelp-query+contributors-summary": "Obtenir la liste des contributeurs connectés et le nombre de contributeurs anonymes d’une page.",
        "apihelp-query+contributors-param-group": "Inclut uniquement les utilisateurs dans les groupes donnés. N'inclut pas les groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
        "apihelp-query+contributors-param-excludegroup": "Exclure les utilisateurs des groupes donnés. Ne pas inclure les groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
        "apihelp-query+contributors-param-rights": "Inclure uniquement les utilisateurs ayant les droits donnés. Ne pas inclure les droits accordés par les groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
        "apihelp-query+contributors-param-excluderights": "Exclure les utilisateurs ayant les droits donnés. Ne pas inclure les droits accordés par les groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
        "apihelp-query+contributors-param-limit": "Combien de contributeurs renvoyer.",
        "apihelp-query+contributors-example-simple": "Afficher les contributeurs dans la <kbd>Main Page</kbd>.",
-       "apihelp-query+deletedrevisions-description": "Obtenir des informations sur la révision supprimée.\n\nPeut être utilisé de différentes manières :\n# Obtenir les révisions supprimées pour un ensemble de pages, en donnant les titres ou les ids de page. Ordonné par titre  et horodatage.\n# Obtenir des données sur un ensemble de révisions supprimées en donnant leurs IDs et leurs ids de révision. Ordonné par ID de révision.",
        "apihelp-query+deletedrevisions-param-start": "L’horodatage auquel démarrer l’énumération. Ignoré lors du traitement d’une liste d’IDs de révisions.",
        "apihelp-query+deletedrevisions-param-end": "L’horodatage auquel arrêter l’énumération. Ignoré lors du traitement d’une liste d’IDs de révisions.",
        "apihelp-query+deletedrevisions-param-tag": "Lister uniquement les révisions marquées par cette balise.",
        "apihelp-query+deletedrevisions-param-excludeuser": "Ne pas lister les révisions faites par cet utilisateur.",
        "apihelp-query+deletedrevisions-example-titles": "Lister les révisions supprimées des pages <kbd>Main Page</kbd> et <kbd>Talk:Main Page</kbd>, avec leur contenu.",
        "apihelp-query+deletedrevisions-example-revids": "Lister les informations pour la révision supprimée <kbd>123456</kbd>.",
-       "apihelp-query+deletedrevs-description": "Lister les révisions supprimées.\n\nOpère selon trois modes :\n# Lister les révisions supprimées pour les titres donnés, triées par horodatage.\n# Lister les contributions supprimées pour l’utilisateur donné, triées par horodatage (pas de titres spécifiés).\n# Lister toutes les révisions supprimées dans l’espace de noms donné, triées par titre et horodatage (aucun titre spécifié, $1user non positionné).\n\nCertains paramètres ne s’appliquent qu’à certains modes et sont ignorés dans les autres.",
+       "apihelp-query+deletedrevs-summary": "Afficher les versions supprimées.",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Mode|Modes}} : $2",
        "apihelp-query+deletedrevs-param-start": "L’horodatage auquel démarrer l’énumération.",
        "apihelp-query+deletedrevs-param-end": "L’horodatage auquel arrêter l’énumération.",
        "apihelp-query+deletedrevs-example-mode2": "Lister les 50 dernières contributions de <kbd>Bob</kbd> supprimées (mode 2).",
        "apihelp-query+deletedrevs-example-mode3-main": "Lister les 50 premières révisions supprimées dans l’espace de noms principal (mode 3)",
        "apihelp-query+deletedrevs-example-mode3-talk": "Lister les 50 premières pages supprimées dans l’espace de noms {{ns:talk}} (mode 3).",
-       "apihelp-query+disabled-description": "Ce module de requête a été désactivé.",
-       "apihelp-query+duplicatefiles-description": "Lister d’après leurs valeurs de hachage, tous les fichiers qui sont des doublons de fichiers donnés.",
+       "apihelp-query+disabled-summary": "Ce module de requête a été désactivé.",
+       "apihelp-query+duplicatefiles-summary": "Lister d’après leurs valeurs de hachage, tous les fichiers qui sont des doublons de fichiers donnés.",
        "apihelp-query+duplicatefiles-param-limit": "Combien de fichiers dupliqués à renvoyer.",
        "apihelp-query+duplicatefiles-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+duplicatefiles-param-localonly": "Rechercher les fichiers uniquement dans le référentiel local.",
        "apihelp-query+duplicatefiles-example-simple": "Rechercher les doublons de [[:File:Albert Einstein Head.jpg]].",
        "apihelp-query+duplicatefiles-example-generated": "Rechercher les doublons de tous les fichiers",
-       "apihelp-query+embeddedin-description": "Trouver toutes les pages qui incluent (par transclusion) le titre donné.",
+       "apihelp-query+embeddedin-summary": "Trouver toutes les pages qui incluent (par transclusion) le titre donné.",
        "apihelp-query+embeddedin-param-title": "Titre à rechercher. Impossible à utiliser avec $1pageid.",
        "apihelp-query+embeddedin-param-pageid": "ID de la page à rechercher. Impossible à utiliser avec $1title.",
        "apihelp-query+embeddedin-param-namespace": "L’espace de noms à énumérer.",
        "apihelp-query+embeddedin-param-limit": "Combien de pages renvoyer au total.",
        "apihelp-query+embeddedin-example-simple": "Afficher les pages incluant <kbd>Template:Stub</kbd>.",
        "apihelp-query+embeddedin-example-generator": "Obtenir des informations sur les pages incluant <kbd>Template:Stub</kbd>.",
-       "apihelp-query+extlinks-description": "Renvoyer toutes les URLs externes (non interwikis) des pages données.",
        "apihelp-query+extlinks-param-limit": "Combien de liens renvoyer.",
        "apihelp-query+extlinks-param-protocol": "Protocole de l’URL. Si vide et <var>$1query</var> est positionné, le protocole est <kbd>http</kbd>. Laisser à la fois ceci et <var>$1query</var> vides pour lister tous les liens externes.",
        "apihelp-query+extlinks-param-query": "Rechercher une chaîne sans protocole. Utile pour vérifier si une certaine page contient une certaine URL externe.",
        "apihelp-query+extlinks-param-expandurl": "Étendre les URLs relatives au protocole avec le protocole canonique.",
        "apihelp-query+extlinks-example-simple": "Obtenir une liste des liens externes de <kbd>Main Page</kbd>.",
-       "apihelp-query+exturlusage-description": "Énumérer les pages contenant une URL donnée.",
+       "apihelp-query+exturlusage-summary": "Énumérer les pages contenant une URL donnée.",
        "apihelp-query+exturlusage-param-prop": "Quelles informations inclure :",
        "apihelp-query+exturlusage-paramvalue-prop-ids": "Ajoute l’ID de la page.",
        "apihelp-query+exturlusage-paramvalue-prop-title": "Ajoute le titre et l’ID de l’espace de noms de la page.",
        "apihelp-query+exturlusage-param-limit": "Combien de pages renvoyer.",
        "apihelp-query+exturlusage-param-expandurl": "Étendre les URLs relatives au protocole avec le protocole canonique.",
        "apihelp-query+exturlusage-example-simple": "Afficher les pages avec un lien vers <kbd>http://www.mediawiki.org</kbd>.",
-       "apihelp-query+filearchive-description": "Énumérer séquentiellement tous les fichiers supprimés.",
+       "apihelp-query+filearchive-summary": "Énumérer séquentiellement tous les fichiers supprimés.",
        "apihelp-query+filearchive-param-from": "Le titre de l’image auquel démarrer l’énumération.",
        "apihelp-query+filearchive-param-to": "Le titre de l’image auquel arrêter l’énumération.",
        "apihelp-query+filearchive-param-prefix": "Rechercher tous les titres d’image qui commencent par cette valeur.",
        "apihelp-query+filearchive-paramvalue-prop-bitdepth": "Ajoute la profondeur de bit de la version.",
        "apihelp-query+filearchive-paramvalue-prop-archivename": "Ajoute le nom de fichier de la version d’archive pour les versions autres que la dernière.",
        "apihelp-query+filearchive-example-simple": "Afficher une liste de tous les fichiers supprimés",
-       "apihelp-query+filerepoinfo-description": "Renvoyer les méta-informations sur les référentiels d’images configurés dans le wiki.",
+       "apihelp-query+filerepoinfo-summary": "Renvoyer les méta-informations sur les référentiels d’images configurés dans le wiki.",
        "apihelp-query+filerepoinfo-param-prop": "Quelles propriétés du référentiel récupérer (il peut y en avoir plus de disponibles sur certains wikis) :\n;apiurl:URL de l’API du référentiel - utile pour obtenir les infos de l’image depuis l’hôte.\n;name:La clé du référentiel - utilisé par ex. dans les valeurs de retour de <var>[[mw:Special:MyLanguage/Manual:$wgForeignFileRepos|$wgForeignFileRepos]]</var> et [[Special:ApiHelp/query+imageinfo|imageinfo]].\n;displayname:Le nom lisible du wiki référentiel.\n;rooturl:URL racine des chemins d’image.\n;local:Si ce référentiel est le référentiel local ou non.",
        "apihelp-query+filerepoinfo-example-simple": "Obtenir des informations sur les référentiels de fichier.",
-       "apihelp-query+fileusage-description": "Trouver toutes les pages qui utilisent les fichiers donnés.",
+       "apihelp-query+fileusage-summary": "Trouver toutes les pages qui utilisent les fichiers donnés.",
        "apihelp-query+fileusage-param-prop": "Quelles propriétés obtenir :",
        "apihelp-query+fileusage-paramvalue-prop-pageid": "ID de chaque page.",
        "apihelp-query+fileusage-paramvalue-prop-title": "Titre de chaque page.",
        "apihelp-query+fileusage-param-show": "Afficher uniquement les éléments qui correspondent à ces critères :\n;redirect:Afficher uniquement les redirections.\n;!redirect:Afficher uniquement les non-redirections.",
        "apihelp-query+fileusage-example-simple": "Obtenir une liste des pages utilisant [[:File:Example.jpg]]",
        "apihelp-query+fileusage-example-generator": "Obtenir l’information sur les pages utilisant [[:File:Example.jpg]]",
-       "apihelp-query+imageinfo-description": "Renvoyer l’information de fichier et l’historique de téléversement.",
+       "apihelp-query+imageinfo-summary": "Renvoyer l’information de fichier et l’historique de téléversement.",
        "apihelp-query+imageinfo-param-prop": "Quelle information obtenir du fichier :",
        "apihelp-query+imageinfo-paramvalue-prop-timestamp": "Ajoute l’horodatage à la version téléversée.",
        "apihelp-query+imageinfo-paramvalue-prop-user": "Ajoute l’utilisateur qui a téléversé chaque version du fichier.",
        "apihelp-query+imageinfo-param-localonly": "Rechercher les fichiers uniquement dans le référentiel local.",
        "apihelp-query+imageinfo-example-simple": "Analyser les informations sur la version actuelle de [[:File:Albert Einstein Head.jpg]].",
        "apihelp-query+imageinfo-example-dated": "Analyser les informations sur les versions de [[:File:Test.jpg]] depuis 2008.",
-       "apihelp-query+images-description": "Renvoie tous les fichiers contenus dans les pages fournies.",
+       "apihelp-query+images-summary": "Renvoie tous les fichiers contenus dans les pages fournies.",
        "apihelp-query+images-param-limit": "Combien de fichiers renvoyer.",
        "apihelp-query+images-param-images": "Lister uniquement ces fichiers. Utile pour vérifier si une page donnée contient un fichier donné.",
        "apihelp-query+images-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+images-example-simple": "Obtenir une liste des fichiers utilisés dans [[Main Page]]",
        "apihelp-query+images-example-generator": "Obtenir des informations sur tous les fichiers utilisés dans [[Main Page]]",
-       "apihelp-query+imageusage-description": "Trouver toutes les pages qui utilisent le titre de l’image donné.",
+       "apihelp-query+imageusage-summary": "Trouver toutes les pages qui utilisent le titre de l’image donné.",
        "apihelp-query+imageusage-param-title": "Titre à rechercher. Impossible à utiliser avec $1pageid.",
        "apihelp-query+imageusage-param-pageid": "ID de la page à rechercher. Impossible à utiliser avec $1title.",
        "apihelp-query+imageusage-param-namespace": "L’espace de noms à énumérer.",
        "apihelp-query+imageusage-param-redirect": "Si le lien vers une page est une redirection, trouver toutes les pages qui ont aussi un lien vers cette redirection. La limite maximale est divisée par deux.",
        "apihelp-query+imageusage-example-simple": "Afficher les pages utilisant [[:File:Albert Einstein Head.jpg]]",
        "apihelp-query+imageusage-example-generator": "Obtenir des informations sur les pages utilisant [[:File:Albert Einstein Head.jpg]]",
-       "apihelp-query+info-description": "Obtenir les informations de base sur la page.",
+       "apihelp-query+info-summary": "Obtenir les informations de base sur la page.",
        "apihelp-query+info-param-prop": "Quelles propriétés supplémentaires récupérer :",
        "apihelp-query+info-paramvalue-prop-protection": "Lister le niveau de protection de chaque page.",
        "apihelp-query+info-paramvalue-prop-talkid": "L’ID de la page de discussion de chaque page qui n’est pas de discussion.",
        "apihelp-query+info-param-token": "Utiliser plutôt [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-query+info-example-simple": "Obtenir des informations sur la page <kbd>Main Page</kbd>.",
        "apihelp-query+info-example-protection": "Obtenir des informations générales et de protection sur la page <kbd>Main Page</kbd>.",
-       "apihelp-query+iwbacklinks-description": "Trouver toutes les pages qui ont un lien vers le lien interwiki indiqué.\n\nPeut être utilisé pour trouver tous les liens avec un préfixe, ou tous les liens vers un titre (avec un préfixe donné). Sans paramètre, équivaut à « tous les liens interwiki ».",
        "apihelp-query+iwbacklinks-param-prefix": "Préfixe pour l’interwiki.",
        "apihelp-query+iwbacklinks-param-title": "Lien interwiki à rechercher. Doit être utilisé avec <var>$1blprefix</var>.",
        "apihelp-query+iwbacklinks-param-limit": "Combien de pages renvoyer.",
        "apihelp-query+iwbacklinks-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+iwbacklinks-example-simple": "Obtenir les pages qui ont un lien vers [[wikibooks:Test]].",
        "apihelp-query+iwbacklinks-example-generator": "Obtenir des informations sur les pages qui ont un lien vers [[wikibooks:Test]].",
-       "apihelp-query+iwlinks-description": "Renvoie tous les liens interwiki des pages indiquées.",
+       "apihelp-query+iwlinks-summary": "Renvoie tous les liens interwiki des pages indiquées.",
        "apihelp-query+iwlinks-param-url": "S'il faut obtenir l’URL complète (impossible à utiliser avec $1prop).",
        "apihelp-query+iwlinks-param-prop": "Quelles propriétés supplémentaires obtenir pour chaque lien interlangue :",
        "apihelp-query+iwlinks-paramvalue-prop-url": "Ajoute l’URL complète.",
        "apihelp-query+iwlinks-param-title": "Lien interwiki à rechercher. Doit être utilisé avec <var>$1prefix</var>.",
        "apihelp-query+iwlinks-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+iwlinks-example-simple": "Obtenir les liens interwiki de la page <kbd>Main Page</kbd>.",
-       "apihelp-query+langbacklinks-description": "Trouver toutes les pages qui ont un lien vers le lien de langue indiqué.\n\nPeut être utilisé pour trouver tous les liens avec un code de langue, ou tous les liens vers un titre (avec une langue donnée). N’utiliser aucun paramètre revient à « tous les liens de langue ».\n\nNotez que cela peut ne pas prendre en compte les liens de langue ajoutés par les extensions.",
        "apihelp-query+langbacklinks-param-lang": "Langue pour le lien de langue.",
        "apihelp-query+langbacklinks-param-title": "Lien interlangue à rechercher. Doit être utilisé avec $1lang.",
        "apihelp-query+langbacklinks-param-limit": "Combien de pages renvoyer au total.",
        "apihelp-query+langbacklinks-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+langbacklinks-example-simple": "Obtenir les pages ayant un lien vers [[:fr:Test]].",
        "apihelp-query+langbacklinks-example-generator": "Obtenir des informations sur les pages ayant un lien vers [[:fr:Test]].",
-       "apihelp-query+langlinks-description": "Renvoie tous les liens interlangue des pages fournies.",
+       "apihelp-query+langlinks-summary": "Renvoie tous les liens interlangue des pages fournies.",
        "apihelp-query+langlinks-param-limit": "Combien de liens interlangue renvoyer.",
        "apihelp-query+langlinks-param-url": "S’il faut récupérer l’URL complète (impossible à utiliser avec <var>$1prop</var>).",
        "apihelp-query+langlinks-param-prop": "Quelles propriétés supplémentaires obtenir pour chaque lien interlangue :",
        "apihelp-query+langlinks-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+langlinks-param-inlanguagecode": "Code de langue pour les noms de langue localisés.",
        "apihelp-query+langlinks-example-simple": "Obtenir les liens interlangue de la page <kbd>Main Page</kbd>.",
-       "apihelp-query+links-description": "Renvoie tous les liens des pages fournies.",
+       "apihelp-query+links-summary": "Renvoie tous les liens des pages fournies.",
        "apihelp-query+links-param-namespace": "Afficher les liens uniquement dans ces espaces de noms.",
        "apihelp-query+links-param-limit": "Combien de liens renvoyer.",
        "apihelp-query+links-param-titles": "Lister uniquement les liens vers ces titres. Utile pour vérifier si une certaine page a un lien vers un titre donné.",
        "apihelp-query+links-example-simple": "Obtenir les liens de la page <kbd>Main Page</kbd>",
        "apihelp-query+links-example-generator": "Obtenir des informations sur tous les liens de page dans <kbd>Main Page</kbd>.",
        "apihelp-query+links-example-namespaces": "Obtenir les liens de la page <kbd>Main Page</kbd> dans les espaces de nom {{ns:user}} et {{ns:template}}.",
-       "apihelp-query+linkshere-description": "Trouver toutes les pages ayant un lien vers les pages données.",
+       "apihelp-query+linkshere-summary": "Trouver toutes les pages ayant un lien vers les pages données.",
        "apihelp-query+linkshere-param-prop": "Quelles propriétés obtenir :",
        "apihelp-query+linkshere-paramvalue-prop-pageid": "ID de chaque page.",
        "apihelp-query+linkshere-paramvalue-prop-title": "Titre de chaque page.",
        "apihelp-query+linkshere-param-show": "Afficher uniquement les éléments qui correspondent à ces critères :\n;redirect:Afficher uniquement les redirections.\n;!redirect:Afficher uniquement les non-redirections.",
        "apihelp-query+linkshere-example-simple": "Obtenir une liste des pages liées à  [[Main Page]]",
        "apihelp-query+linkshere-example-generator": "Obtenir des informations sur les pages liées à [[Main Page]]",
-       "apihelp-query+logevents-description": "Obtenir des événements des journaux.",
+       "apihelp-query+logevents-summary": "Récupère les événements à partir des journaux.",
        "apihelp-query+logevents-param-prop": "Quelles propriétés obtenir :",
        "apihelp-query+logevents-paramvalue-prop-ids": "Ajoute l’ID de l’événement.",
        "apihelp-query+logevents-paramvalue-prop-title": "Ajoute le titre de la page pour l’événement enregistré.",
        "apihelp-query+logevents-param-tag": "Lister seulement les entrées ayant cette balise.",
        "apihelp-query+logevents-param-limit": "Combien d'entrées renvoyer au total.",
        "apihelp-query+logevents-example-simple": "Liste les entrées de journal récentes.",
-       "apihelp-query+pagepropnames-description": "Lister les noms de toutes les propriétés de page utilisées sur le wiki.",
+       "apihelp-query+pagepropnames-summary": "Lister les noms de toutes les propriétés de page utilisées sur le wiki.",
        "apihelp-query+pagepropnames-param-limit": "Le nombre maximal de noms à renvoyer.",
        "apihelp-query+pagepropnames-example-simple": "Obtenir les 10 premiers noms de propriété.",
-       "apihelp-query+pageprops-description": "Obtenir diverses propriétés de page définies dans le contenu de la page.",
+       "apihelp-query+pageprops-summary": "Obtenir diverses propriétés de page définies dans le contenu de la page.",
        "apihelp-query+pageprops-param-prop": "Lister uniquement ces propriétés de page (<kbd>[[Special:ApiHelp/query+pagepropnames|action=query&list=pagepropnames]]</kbd> renvoie les noms de propriété de page utilisés). Utile pour vérifier si des pages utilisent une certaine propriété de page.",
        "apihelp-query+pageprops-example-simple": "Obtenir les propriétés des pages <kbd>Main Page</kbd> et <kbd>MediaWiki</kbd>.",
-       "apihelp-query+pageswithprop-description": "Lister toutes les pages utilisant une propriété de page donnée.",
+       "apihelp-query+pageswithprop-summary": "Lister toutes les pages utilisant une propriété de page donnée.",
        "apihelp-query+pageswithprop-param-propname": "Propriété de page pour laquelle énumérer les pages (<kbd>[[Special:ApiHelp/query+pagepropnames|action=query&list=pagepropnames]]</kbd> renvoie les noms de propriété de page utilisés).",
        "apihelp-query+pageswithprop-param-prop": "Quelles informations inclure :",
        "apihelp-query+pageswithprop-paramvalue-prop-ids": "Ajoute l’ID de la page.",
        "apihelp-query+pageswithprop-param-dir": "Dans quelle direction trier.",
        "apihelp-query+pageswithprop-example-simple": "Lister les 10 premières pages en utilisant <code>&#123;&#123;DISPLAYTITLE:&#125;&#125;</code>.",
        "apihelp-query+pageswithprop-example-generator": "Obtenir des informations supplémentaires sur les 10 premières pages utilisant <code>_&#95;NOTOC_&#95;</code>.",
-       "apihelp-query+prefixsearch-description": "Effectuer une recherche de préfixe sur les titres de page.\n\nMalgré les similarités dans le nom, ce module n’est pas destiné à être l’équivalent de [[Special:PrefixIndex]] ; pour cela, voyez <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd> avec le paramètre <kbd>apprefix</kbd>. Le but de ce module est similaire à <kbd>[[Special:ApiHelp/opensearch|action=opensearch]]</kbd> : prendre l’entrée utilisateur et fournir les meilleurs titres s’en approchant. Selon le serveur du moteur de recherche, cela peut inclure corriger des fautes de frappe, éviter des redirections, ou d’autres heuristiques.",
        "apihelp-query+prefixsearch-param-search": "Chaîne de recherche.",
        "apihelp-query+prefixsearch-param-namespace": "Espaces de noms à rechercher.",
        "apihelp-query+prefixsearch-param-limit": "Nombre maximal de résultats à renvoyer.",
        "apihelp-query+prefixsearch-param-offset": "Nombre de résultats à sauter.",
        "apihelp-query+prefixsearch-example-simple": "Rechercher les titres de page commençant par <kbd>meaning</kbd>.",
        "apihelp-query+prefixsearch-param-profile": "Rechercher le profil à utiliser.",
-       "apihelp-query+protectedtitles-description": "Lister tous les titres protégés en création.",
+       "apihelp-query+protectedtitles-summary": "Lister tous les titres protégés en création.",
        "apihelp-query+protectedtitles-param-namespace": "Lister uniquement les titres dans ces espaces de nom.",
        "apihelp-query+protectedtitles-param-level": "Lister uniquement les titres avec ces niveaux de protection.",
        "apihelp-query+protectedtitles-param-limit": "Combien de pages renvoyer au total.",
        "apihelp-query+protectedtitles-paramvalue-prop-level": "Ajoute le niveau de protection.",
        "apihelp-query+protectedtitles-example-simple": "Lister les titres protégés",
        "apihelp-query+protectedtitles-example-generator": "Trouver les liens vers les titres protégés dans l’espace de noms principal.",
-       "apihelp-query+querypage-description": "Obtenir une liste fournie par une page spéciale basée sur QueryPage.",
+       "apihelp-query+querypage-summary": "Obtenir une liste fournie par une page spéciale basée sur QueryPage.",
        "apihelp-query+querypage-param-page": "Le nom de la page spéciale. Notez que ce nom est sensible à la casse.",
        "apihelp-query+querypage-param-limit": "Nombre de résultats à renvoyer.",
        "apihelp-query+querypage-example-ancientpages": "Renvoyer les résultats de [[Special:Ancientpages]].",
-       "apihelp-query+random-description": "Obtenir un ensemble de pages au hasard.\n\nLes pages sont listées dans un ordre prédéterminé, seul le point de départ est aléatoire. Par exemple, cela signifie que si la première page dans la liste est <samp>Accueil</samp>, la seconde sera <em>toujours</em> <samp>Liste des singes de fiction</samp>, la troisième <samp>Liste de personnes figurant sur les timbres de Vanuatu</samp>, etc.",
+       "apihelp-query+random-summary": "Récupèrer un ensemble de pages au hasard.",
        "apihelp-query+random-param-namespace": "Renvoyer seulement des pages de ces espaces de noms.",
        "apihelp-query+random-param-limit": "Limiter le nombre de pages aléatoires renvoyées.",
        "apihelp-query+random-param-redirect": "Utilisez <kbd>$1filterredir=redirects</kbd> au lieu de ce paramètre.",
        "apihelp-query+random-param-filterredir": "Comment filtrer les redirections.",
        "apihelp-query+random-example-simple": "Obtenir deux pages aléatoires de l’espace de noms principal.",
        "apihelp-query+random-example-generator": "Renvoyer les informations de la page sur deux pages au hasard de l’espace de noms principal.",
-       "apihelp-query+recentchanges-description": "Énumérer les modifications récentes.",
+       "apihelp-query+recentchanges-summary": "Énumérer les modifications récentes.",
        "apihelp-query+recentchanges-param-start": "L’horodatage auquel démarrer l’énumération.",
        "apihelp-query+recentchanges-param-end": "L’horodatage auquel arrêter l’énumération.",
        "apihelp-query+recentchanges-param-namespace": "Filtrer les modifications uniquement sur ces espaces de noms.",
        "apihelp-query+recentchanges-param-generaterevisions": "Utilisé comme générateur, générer des IDs de révision plutôt que des titres.\nLes entrées de modification récentes sans IDs de révision associé (par ex. la plupart des entrées de journaux) ne généreront rien.",
        "apihelp-query+recentchanges-example-simple": "Lister les modifications récentes",
        "apihelp-query+recentchanges-example-generator": "Obtenir l’information de page sur les modifications récentes non patrouillées",
-       "apihelp-query+redirects-description": "Renvoie toutes les redirections vers les pages données.",
+       "apihelp-query+redirects-summary": "Renvoie toutes les redirections vers les pages données.",
        "apihelp-query+redirects-param-prop": "Quelles propriétés récupérer :",
        "apihelp-query+redirects-paramvalue-prop-pageid": "ID de page de chaque redirection.",
        "apihelp-query+redirects-paramvalue-prop-title": "Titre de chaque redirection.",
        "apihelp-query+redirects-param-show": "Afficher uniquement les éléments correspondant à ces critères :\n;fragment:Afficher uniquement les redirections avec un fragment.\n;!fragment:Afficher uniquement les redirections sans fragment.",
        "apihelp-query+redirects-example-simple": "Obtenir une liste des redirections vers [[Main Page]]",
        "apihelp-query+redirects-example-generator": "Obtenir des informations sur toutes les redirections vers [[Main Page]]",
-       "apihelp-query+revisions-description": "Obtenir des informations sur la révision.\n\nPeut être utilisé de différentes manières :\n# Obtenir des données sur un ensemble de pages (dernière révision), en mettant les titres ou les ids de page.\n# Obtenir les révisions d’une page donnée, en utilisant les titres ou les ids de page avec rvstart, rvend ou rvlimit.\n# Obtenir des données sur un ensemble de révisions en donnant leurs IDs avec revids.",
+       "apihelp-query+revisions-summary": "Récupèrer les informations de relecture.",
        "apihelp-query+revisions-paraminfo-singlepageonly": "Utilisable uniquement avec une seule page (mode #2).",
        "apihelp-query+revisions-param-startid": "Commencer l'énumération à partir de la date de cette revue. La revue doit exister, mais ne concerne pas forcément cette page.",
        "apihelp-query+revisions-param-endid": "Arrêter l’énumération à la date de cette revue. La revue doit exister mais ne concerne pas forcément cette page.",
        "apihelp-query+revisions+base-param-difftotext": "Texte auquel comparer chaque révision. Compare uniquement un nombre limité de révisions. Écrase <var>$1diffto</var>. Si <var>$1section</var> est positionné, seule cette section sera comparée avec ce texte.",
        "apihelp-query+revisions+base-param-difftotextpst": "Effectuer une transformation avant enregistrement sur le texte avant de le comparer. Valide uniquement quand c’est utilisé avec <var>$1difftotext</var>.",
        "apihelp-query+revisions+base-param-contentformat": "Format de sérialisation utilisé pour <var>$1difftotext</var> et attendu pour la sortie du contenu.",
-       "apihelp-query+search-description": "Effectuer une recherche en texte intégral.",
+       "apihelp-query+search-summary": "Effectuer une recherche en texte intégral.",
        "apihelp-query+search-param-search": "Rechercher les titres de page ou le contenu correspondant à cette valeur. Vous pouvez utiliser la chaîne de recherche pour invoquer des fonctionnalités de recherche spéciales, selon ce que le serveur de recherche du wiki implémente.",
        "apihelp-query+search-param-namespace": "Rechercher uniquement dans ces espaces de noms.",
        "apihelp-query+search-param-what": "Quel type de recherche effectuer.",
        "apihelp-query+search-example-simple": "Rechercher <kbd>meaning</kbd>.",
        "apihelp-query+search-example-text": "Rechercher des textes pour <kbd>meaning</kbd>.",
        "apihelp-query+search-example-generator": "Obtenir les informations sur les pages renvoyées par une recherche de <kbd>meaning</kbd>.",
-       "apihelp-query+siteinfo-description": "Renvoyer les informations générales sur le site.",
+       "apihelp-query+siteinfo-summary": "Renvoyer les informations générales sur le site.",
        "apihelp-query+siteinfo-param-prop": "Quelles informations obtenir :",
        "apihelp-query+siteinfo-paramvalue-prop-general": "Information globale du système.",
        "apihelp-query+siteinfo-paramvalue-prop-namespaces": "Liste des espaces de noms déclarés avec leur nom canonique.",
        "apihelp-query+siteinfo-example-simple": "Extraire les informations du site.",
        "apihelp-query+siteinfo-example-interwiki": "Extraire une liste des préfixes interwiki locaux.",
        "apihelp-query+siteinfo-example-replag": "Vérifier la latence de réplication actuelle.",
-       "apihelp-query+stashimageinfo-description": "Renvoie les informations de fichier des fichiers mis en réserve.",
+       "apihelp-query+stashimageinfo-summary": "Renvoie les informations de fichier des fichiers mis en réserve.",
        "apihelp-query+stashimageinfo-param-filekey": "Clé qui identifie un téléversement précédent qui a été temporairement mis en réserve.",
        "apihelp-query+stashimageinfo-param-sessionkey": "Alias pour $1filekey, pour la compatibilité ascendante.",
        "apihelp-query+stashimageinfo-example-simple": "Renvoie les informations sur un fichier mis en réserve.",
        "apihelp-query+stashimageinfo-example-params": "Renvoie les vignettes pour deux fichiers mis de côté.",
-       "apihelp-query+tags-description": "Lister les balises de modification.",
+       "apihelp-query+tags-summary": "Lister les balises de modification.",
        "apihelp-query+tags-param-limit": "Le nombre maximal de balises à lister.",
        "apihelp-query+tags-param-prop": "Quelles propriétés récupérer :",
        "apihelp-query+tags-paramvalue-prop-name": "Ajoute le nom de la balise.",
        "apihelp-query+tags-paramvalue-prop-source": "Retourne les sources de la balise, ce qui comprend <samp>extension</samp> pour les balises définies par une extension et <samp>manual</samp> pour les balises pouvant être appliquées manuellement par les utilisateurs.",
        "apihelp-query+tags-paramvalue-prop-active": "Si la balise est encore appliquée.",
        "apihelp-query+tags-example-simple": "Lister les balises disponibles.",
-       "apihelp-query+templates-description": "Renvoie toutes les pages incluses dans les pages fournies.",
+       "apihelp-query+templates-summary": "Renvoie toutes les pages incluses dans les pages fournies.",
        "apihelp-query+templates-param-namespace": "Afficher les modèles uniquement dans ces espaces de noms.",
        "apihelp-query+templates-param-limit": "Combien de modèles renvoyer.",
        "apihelp-query+templates-param-templates": "Lister uniquement ces modèles. Utile pour vérifier si une certaine page utilise un modèle donné.",
        "apihelp-query+templates-example-simple": "Obtenir les modèles utilisés sur la page <kbd>Main Page</kbd>.",
        "apihelp-query+templates-example-generator": "Obtenir des informations sur les pages modèle utilisé sur <kbd>Main Page</kbd>.",
        "apihelp-query+templates-example-namespaces": "Obtenir les pages des espaces de noms {{ns:user}} et {{ns:template}} qui sont inclues dans la page <kdb>Main Page<kdb>.",
-       "apihelp-query+tokens-description": "Récupère les jetons pour les actions de modification de données.",
+       "apihelp-query+tokens-summary": "Récupère les jetons pour les actions de modification de données.",
        "apihelp-query+tokens-param-type": "Types de jeton à demander.",
        "apihelp-query+tokens-example-simple": "Récupérer un jeton csrf (par défaut).",
        "apihelp-query+tokens-example-types": "Récupérer un jeton de suivi et un de patrouille.",
-       "apihelp-query+transcludedin-description": "Trouver toutes les pages qui incluent les pages données.",
+       "apihelp-query+transcludedin-summary": "Trouver toutes les pages qui incluent les pages données.",
        "apihelp-query+transcludedin-param-prop": "Quelles propriétés obtenir :",
        "apihelp-query+transcludedin-paramvalue-prop-pageid": "ID de page de chaque page.",
        "apihelp-query+transcludedin-paramvalue-prop-title": "Titre de chaque page.",
        "apihelp-query+transcludedin-param-show": "Afficher uniquement les éléments qui correspondent à ces critères:\n;redirect:Afficher uniquement les redirections.\n;!redirect:Afficher uniquement les non-redirections.",
        "apihelp-query+transcludedin-example-simple": "Obtenir une liste des pages incluant <kbd>Main Page</kbd>.",
        "apihelp-query+transcludedin-example-generator": "Obtenir des informations sur les pages incluant <kbd>Main Page</kbd>.",
-       "apihelp-query+usercontribs-description": "Obtenir toutes les modifications d'un utilisateur.",
+       "apihelp-query+usercontribs-summary": "Obtenir toutes les modifications d'un utilisateur.",
        "apihelp-query+usercontribs-param-limit": "Le nombre maximal de contributions à renvoyer.",
        "apihelp-query+usercontribs-param-start": "L’horodatage auquel démarrer le retour.",
        "apihelp-query+usercontribs-param-end": "L’horodatage auquel arrêter le retour.",
        "apihelp-query+usercontribs-param-toponly": "Lister uniquement les modifications de la dernière révision.",
        "apihelp-query+usercontribs-example-user": "Afficher les contributions de l'utilisateur <kbd>Exemple</kbd>.",
        "apihelp-query+usercontribs-example-ipprefix": "Afficher les contributions de toutes les adresses IP avec le préfixe <kbd>192.0.2.</kbd>.",
-       "apihelp-query+userinfo-description": "Obtenir des informations sur l’utilisateur courant.",
+       "apihelp-query+userinfo-summary": "Obtenir des informations sur l’utilisateur courant.",
        "apihelp-query+userinfo-param-prop": "Quelles informations inclure :",
        "apihelp-query+userinfo-paramvalue-prop-blockinfo": "Marque si l’utilisateur actuel est bloqué, par qui, et pour quelle raison.",
        "apihelp-query+userinfo-paramvalue-prop-hasmsg": "Ajoute une balise <samp>messages</samp> si l’utilisateur actuel a des messages en cours.",
        "apihelp-query+userinfo-param-attachedwiki": "Avec <kbd>$1prop=centralids</kbd>, indiquer si l’utilisateur est attaché au wiki identifié par cet ID.",
        "apihelp-query+userinfo-example-simple": "Obtenir des informations sur l’utilisateur actuel.",
        "apihelp-query+userinfo-example-data": "Obtenir des informations supplémentaires sur l’utilisateur actuel.",
-       "apihelp-query+users-description": "Obtenir des informations sur une liste d’utilisateurs",
+       "apihelp-query+users-summary": "Obtenir des informations sur une liste d’utilisateurs",
        "apihelp-query+users-param-prop": "Quelles informations inclure :",
        "apihelp-query+users-paramvalue-prop-blockinfo": "Marque si l’utilisateur est bloqué, par qui, et pour quelle raison.",
        "apihelp-query+users-paramvalue-prop-groups": "Liste tous les groupes auxquels appartient chaque utilisateur.",
        "apihelp-query+users-param-userids": "Une liste d’ID utilisateur pour lesquels obtenir des informations.",
        "apihelp-query+users-param-token": "Utiliser <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> à la place.",
        "apihelp-query+users-example-simple": "Renvoyer des informations pour l'utilisateur <kbd>Example</kbd>.",
-       "apihelp-query+watchlist-description": "Obtenir les modifications récentes des pages de la liste de suivi de l’utilisateur actuel.",
+       "apihelp-query+watchlist-summary": "Obtenir les modifications récentes des pages de la liste de suivi de l’utilisateur actuel.",
        "apihelp-query+watchlist-param-allrev": "Inclure les multiples révisions de la même page dans l’intervalle de temps fourni.",
        "apihelp-query+watchlist-param-start": "L’horodatage auquel démarrer l’énumération.",
        "apihelp-query+watchlist-param-end": "L’horodatage auquel arrêter l’énumération.",
        "apihelp-query+watchlist-example-generator": "Chercher l’information de la page sur les pages récemment modifiées de la liste de suivi de l’utilisateur actuel",
        "apihelp-query+watchlist-example-generator-rev": "Chercher l’information de la révision pour les modifications récentes des pages de la liste de suivi de l’utilisateur actuel.",
        "apihelp-query+watchlist-example-wlowner": "Lister la révision de tête des pages récemment modifiées de la liste de suivi de l'utilisateur <kbd>Exemple</kbd>.",
-       "apihelp-query+watchlistraw-description": "Obtenir toutes les pages de la liste de suivi de l’utilisateur actuel.",
+       "apihelp-query+watchlistraw-summary": "Obtenir toutes les pages de la liste de suivi de l’utilisateur actuel.",
        "apihelp-query+watchlistraw-param-namespace": "Lister uniquement les pages dans les espaces de noms fournis.",
        "apihelp-query+watchlistraw-param-limit": "Combien de résultats renvoyer au total par requête.",
        "apihelp-query+watchlistraw-param-prop": "Quelles propriétés supplémentaires obtenir :",
        "apihelp-query+watchlistraw-param-totitle": "Terminer l'énumération avec ce Titre (inclure le préfixe d'espace de noms) :",
        "apihelp-query+watchlistraw-example-simple": "Lister les pages dans la liste de suivi de l’utilisateur actuel.",
        "apihelp-query+watchlistraw-example-generator": "Chercher l’information sur les pages de la liste de suivi de l’utilisateur actuel.",
-       "apihelp-removeauthenticationdata-description": "Supprimer les données d’authentification pour l’utilisateur actuel.",
+       "apihelp-removeauthenticationdata-summary": "Supprimer les données d’authentification pour l’utilisateur actuel.",
        "apihelp-removeauthenticationdata-example-simple": "Tentative de suppression des données de l’utilisateur pour <kbd>FooAuthenticationRequest</kbd>.",
-       "apihelp-resetpassword-description": "Envoyer un courriel de réinitialisation du mot de passe à un utilisateur.",
-       "apihelp-resetpassword-description-noroutes": "Aucun chemin pour réinitialiser le mot de passe n’est disponible.\n\nActiver les chemins dans <var>[[mw:Special:MyLanguage/Manual:$wgPasswordResetRoutes|$wgPasswordResetRoutes]]</var> pour utiliser ce module.",
+       "apihelp-resetpassword-summary": "Envoyer un courriel de réinitialisation du mot de passe à un utilisateur.",
        "apihelp-resetpassword-param-user": "Utilisateur ayant été réinitialisé.",
        "apihelp-resetpassword-param-email": "Adresse courriel de l’utilisateur ayant été réinitialisé.",
        "apihelp-resetpassword-example-user": "Envoyer un courriel de réinitialisation du mot de passe à l’utilisateur <kbd>Exemple</kbd>.",
        "apihelp-resetpassword-example-email": "Envoyer un courriel pour la réinitialisation de mot de passe à tous les utilisateurs avec l’adresse <kbd>user@example.com</kbd>.",
-       "apihelp-revisiondelete-description": "Supprimer et rétablir des révisions.",
+       "apihelp-revisiondelete-summary": "Supprimer et rétablir des révisions.",
        "apihelp-revisiondelete-param-type": "Type de suppression de révision en cours de traitement.",
        "apihelp-revisiondelete-param-target": "Titre de page pour la suppression de révision, s’il est nécessaire pour le type.",
        "apihelp-revisiondelete-param-ids": "Identifiants pour les révisions à supprimer.",
        "apihelp-revisiondelete-param-tags": "Balises à appliquer à l’entrée dans le journal de suppression.",
        "apihelp-revisiondelete-example-revision": "Masquer le contenu de la révision <kbd>12345</kbd> de la page <kbd>Main Page</kbd>.",
        "apihelp-revisiondelete-example-log": "Masquer toutes les données de l’entrée de journal <kbd>67890</kbd> avec le motif <kbd>Violation de Biographie de Personne Vivante</kbd>.",
-       "apihelp-rollback-description": "Annuler la dernière modification de la page.\n\nSi le dernier utilisateur à avoir modifié la page a fait plusieurs modifications sur une ligne, elles seront toutes annulées.",
+       "apihelp-rollback-summary": "Annuler les dernières modifications de la page.",
        "apihelp-rollback-param-title": "Titre de la page à restaurer. Impossible à utiliser avec <var>$1pageid</var>.",
        "apihelp-rollback-param-pageid": "ID de la page à restaurer. Impossible à utiliser avec <var>$1title</var>.",
        "apihelp-rollback-param-tags": "Balises à appliquer à la révocation.",
        "apihelp-rollback-param-watchlist": "Ajouter ou supprimer la page de la liste de suivi de l’utilisateur actuel sans condition, utiliser les préférences ou ne pas modifier le suivi.",
        "apihelp-rollback-example-simple": "Annuler les dernières modifications à <kbd>Main Page</kbd> par l’utilisateur <kbd>Example</kbd>.",
        "apihelp-rollback-example-summary": "Annuler les dernières modifications de la page <kbd>Main Page</kbd> par l’utilisateur à l’adresse IP <kbd>192.0.2.5</kbd> avec le résumé <kbd>Annulation de vandalisme<kbd>, et marquer ces modifications et l’annulation comme modifications de robots.",
-       "apihelp-rsd-description": "Exporter un schéma RSD (Découverte Très Simple).",
+       "apihelp-rsd-summary": "Exporter un schéma RSD (Découverte Très Simple).",
        "apihelp-rsd-example-simple": "Exporter le schéma RSD",
-       "apihelp-setnotificationtimestamp-description": "Mettre à jour l’horodatage de notification pour les pages suivies.\n\nCela affecte la mise en évidence des pages modifiées dans la liste de suivi et l’historique, et l’envoi de courriel quand la préférence « {{int:tog-enotifwatchlistpages}} » est activée.",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "Travailler sur toutes les pages suivies.",
        "apihelp-setnotificationtimestamp-param-timestamp": "Horodatage auquel dater la notification.",
        "apihelp-setnotificationtimestamp-param-torevid": "Révision pour laquelle fixer l’horodatage de notification (une page uniquement).",
        "apihelp-setnotificationtimestamp-example-page": "Réinitialiser l’état de notification pour la <kbd>Page principale<kbd>.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixer l’horodatage de notification pour <kbd>Page principale</kbd> afin que toutes les modifications depuis le 1 janvier 2012 soient non vues",
        "apihelp-setnotificationtimestamp-example-allpages": "Réinitialiser l’état de notification sur les pages dans l’espace de noms <kbd>{{ns:user}}</kbd>.",
-       "apihelp-setpagelanguage-description": "Modifier la langue d’une page.",
-       "apihelp-setpagelanguage-description-disabled": "Il n’est pas possible de modifier la langue d’une page sur ce wiki.\n\nActiver <var>[[mw:Special:MyLanguage/Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]]</var> pour utiliser cette action.",
+       "apihelp-setpagelanguage-summary": "Modifier la langue d’une page.",
+       "apihelp-setpagelanguage-extended-description-disabled": "Il n’est pas possible de modifier la langue d’une page sur ce wiki.\n\nActiver <var>[[mw:Special:MyLanguage/Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]]</var> pour utiliser cette action.",
        "apihelp-setpagelanguage-param-title": "Titre de la page dont vous souhaitez modifier la langue. Ne peut pas être utilisé avec <var>$1pageid</var>.",
        "apihelp-setpagelanguage-param-pageid": "Identifiant (ID) de la page dont vous souhaitez modifier la langue. Ne peut être utilisé avec <var>$1title</var>.",
        "apihelp-setpagelanguage-param-lang": "Code de langue vers lequel la page doit être changée. Utiliser <kbd>defaut</kbd> pour réinitialiser la page sur la langue par défaut du contenu du wiki.",
        "apihelp-setpagelanguage-param-tags": "Modifier les balises à appliquer à l'entrée du journal résultant de cette action.",
        "apihelp-setpagelanguage-example-language": "Changer la langue de la <kbd>page principale</kbd> en basque.",
        "apihelp-setpagelanguage-example-default": "Remplacer la langue de la page ayant l'ID 123 par la langue par défaut du contenu du wiki.",
-       "apihelp-stashedit-description": "Préparer une modification dans le cache partagé.\n\nCeci a pour but d’être utilisé via AJAX depuis le formulaire d’édition pour améliorer la performance de la sauvegarde de la page.",
+       "apihelp-stashedit-summary": "Préparer des modifications dans le cache partagé.",
        "apihelp-stashedit-param-title": "Titre de la page en cours de modification.",
        "apihelp-stashedit-param-section": "Numéro de section. <kbd>0</kbd> pour la section du haut, <kbd>new</kbd> pour une nouvelle section.",
        "apihelp-stashedit-param-sectiontitle": "Le titre pour une nouvelle section.",
        "apihelp-stashedit-param-contentformat": "Format de sérialisation de contenu utilisé pour le texte saisi.",
        "apihelp-stashedit-param-baserevid": "ID de révision de la révision de base.",
        "apihelp-stashedit-param-summary": "Résumé du changement",
-       "apihelp-tag-description": "Ajouter ou enlever des balises de modification aux révisions ou ou aux entrées de journal individuelles.",
+       "apihelp-tag-summary": "Ajouter ou enlever des balises de modification aux révisions ou ou aux entrées de journal individuelles.",
        "apihelp-tag-param-rcid": "Un ou plus IDs de modification récente à partir desquels ajouter ou supprimer la balise.",
        "apihelp-tag-param-revid": "Un ou plusieurs IDs de révision à partir desquels ajouter ou supprimer la balise.",
        "apihelp-tag-param-logid": "Un ou plusieurs IDs d’entrée de journal à partir desquels ajouter ou supprimer la balise.",
        "apihelp-tag-param-tags": "Balises à appliquer à l’entrée de journal qui sera créée en résultat de cette action.",
        "apihelp-tag-example-rev": "Ajoute la balise <kbd>vandalism</kbd> à partir de l’ID de révision 123 sans indiquer de motif",
        "apihelp-tag-example-log": "Supprimer la balise <kbd>spam</kbd> à partir de l’ID d’entrée de journal 123 avec le motif <kbd>Wrongly applied</kbd>",
-       "apihelp-tokens-description": "Obtenir les jetons pour les actions modifiant les données.\n\nCe module est désuet, remplacé par [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
+       "apihelp-tokens-summary": "Obtenir des jetons pour des actions de modification des données.",
        "apihelp-tokens-param-type": "Types de jeton à demander.",
        "apihelp-tokens-example-edit": "Récupérer un jeton de modification (par défaut).",
        "apihelp-tokens-example-emailmove": "Récupérer un jeton de courriel et un jeton de déplacement.",
-       "apihelp-unblock-description": "Débloquer un utilisateur.",
+       "apihelp-unblock-summary": "Débloquer un utilisateur.",
        "apihelp-unblock-param-id": "ID du blocage à lever (obtenu via <kbd>list=blocks</kbd>). Impossible à utiliser avec <var>$1user</var> ou <var>$1userid</var>.",
        "apihelp-unblock-param-user": "Nom d’utilisateur, adresse IP ou plage d’adresses IP à débloquer. Impossible à utiliser en même temps que <var>$1id</var> ou <var>$1userid</var>.",
        "apihelp-unblock-param-userid": "ID de l'utilisateur à débloquer. Ne peut être utilisé avec <var>$1id</var> ou <var>$1user</var>.",
        "apihelp-unblock-param-tags": "Modifier les balises à appliquer à l’entrée dans le journal de blocage.",
        "apihelp-unblock-example-id": "Lever le blocage d’ID #<kbd>105</kbd>.",
        "apihelp-unblock-example-user": "Débloquer l’utilisateur <kbd>Bob</kbd> avec le motif <kbd>Désolé Bob</kbd>.",
-       "apihelp-undelete-description": "Restaurer les révisions d’une page supprimée.\n\nUne liste des révisions supprimées (avec les horodatages) peut être récupérée via [[Special:ApiHelp/query+deletedrevisions|prop=deletedrevisions]], et une liste d’IDs de fichier supprimé peut être récupérée via [[Special:ApiHelp/query+filearchive|list=filearchive]].",
+       "apihelp-undelete-summary": "Restituer les versions d'une page supprimée.",
        "apihelp-undelete-param-title": "Titre de la page à restaurer.",
        "apihelp-undelete-param-reason": "Motif de restauration.",
        "apihelp-undelete-param-tags": "Modifier les balises à appliquer à l’entrée dans le journal de suppression.",
        "apihelp-undelete-param-watchlist": "Ajouter ou supprimer la page de la liste de suivi de l’utilisateur actuel sans condition, utiliser les préférences ou ne pas modifier le suivi.",
        "apihelp-undelete-example-page": "Annuler la suppression de la page <kbd>Main Page</kbd>.",
        "apihelp-undelete-example-revisions": "Annuler la suppression de deux révisions de la page <kbd>Main Page</kbd>.",
-       "apihelp-unlinkaccount-description": "Supprimer un compte tiers lié de l’utilisateur actuel.",
+       "apihelp-unlinkaccount-summary": "Supprimer un compte tiers lié de l’utilisateur actuel.",
        "apihelp-unlinkaccount-example-simple": "Essayer de supprimer le lien de l’utilisateur actuel pour le fournisseur associé avec <kbd>FooAuthenticationRequest</kbd>.",
-       "apihelp-upload-description": "Téléverser un fichier, ou obtenir l’état des téléversements en cours.\n\nPlusieurs méthodes sont disponibles :\n* Téléverser directement le contenu du fichier, en utilisant le paramètre <var>$1file</var>.\n* Téléverser le fichier par morceaux, en utilisant les paramètres <var>$1filesize</var>, <var>$1chunk</var>, and <var>$1offset</var>.\n* Pour que le serveur MédiaWiki cherche un fichier depuis une URL, utilisez le paramètre <var>$1url</var>.\n* Terminer un téléversement précédent qui a échoué à cause d’avertissements, en utilisant le paramètre <var>$1filekey</var>.\nNoter que le POST HTTP doit être fait comme un téléversement de fichier (par ex. en utilisant <code>multipart/form-data</code>) en envoyant le <code>multipart/form-data</code>.",
        "apihelp-upload-param-filename": "Nom de fichier cible.",
        "apihelp-upload-param-comment": "Téléverser le commentaire. Utilisé aussi comme texte de la page initiale pour les nouveaux fichiers si <var>$1text</var> n’est pas spécifié.",
        "apihelp-upload-param-tags": "Modifier les balises à appliquer à l’entrée du journal de téléversement et à la révision de la page du fichier.",
        "apihelp-upload-param-checkstatus": "Récupérer uniquement l’état de téléversement pour la clé de fichier donnée.",
        "apihelp-upload-example-url": "Téléverser depuis une URL",
        "apihelp-upload-example-filekey": "Terminer un téléversement qui a échoué à cause d’avertissements",
-       "apihelp-userrights-description": "Modifier l’appartenance d’un utilisateur à un groupe.",
+       "apihelp-userrights-summary": "Modifier l’appartenance d’un utilisateur à un groupe.",
        "apihelp-userrights-param-user": "Nom d’utilisateur.",
        "apihelp-userrights-param-userid": "ID de l’utilisateur.",
        "apihelp-userrights-param-add": "Ajouter l’utilisateur à ces groupes, ou s’ils sont déjà membres, mettre à jour la date d’expiration de leur appartenance à ce groupe.",
        "apihelp-userrights-example-user": "Ajouter l’utilisateur <kbd>FooBot</kbd> au groupe <kbd>bot</kbd><!-- {{int:group-bot}} ? -->, et le supprimer des groupes <kbd>sysop</kbd> et <kbd>bureaucrat</kbd>.",
        "apihelp-userrights-example-userid": "Ajouter l’utilisateur d’ID <kbd>123</kbd> au groupe <kbd>robot</kbd>, et le supprimer des groupes <kbd>sysop</kbd> et <kbd>bureaucrate</kbd>.",
        "apihelp-userrights-example-expiry": "Ajouter l'utilisateur <kbd>SometimeSysop</kbd> au groupe <kbd>sysop</kbd> pour 1 mois.",
-       "apihelp-validatepassword-description": "Valider un mot de passe en suivant les règles des mots de passe du wiki.\n\nLa validation est <samp>Good</samp> si le mot de passe est acceptable, <samp>Change</samp> s'il peut être utilisé pour se connecter et doit être changé, ou  <samp>Invalid</samp> s'il n'est pas utilisable.",
+       "apihelp-validatepassword-summary": "Valider un mot de passe conformément aux règles concernant les mots de passe du wiki.",
        "apihelp-validatepassword-param-password": "Mot de passe à valider.",
        "apihelp-validatepassword-param-user": "Nom de l'utilisateur, pour tester la création de compte. L'utilisateur ne doit pas déja exister.",
        "apihelp-validatepassword-param-email": "Adresse courriel, pour tester la création de compte.",
        "apihelp-validatepassword-param-realname": "Vrai nom, pour tester la création de compte.",
        "apihelp-validatepassword-example-1": "Valider le mot de passe <kbd>foobar</kbd> pour l'utilisateur actuel.",
        "apihelp-validatepassword-example-2": "Valider le mot de passe <kbd>qwerty</kbd> pour la création de l'utilisateur <kbd>Example</kbd>.",
-       "apihelp-watch-description": "Ajouter ou supprimer des pages de la liste de suivi de l’utilisateur actuel.",
+       "apihelp-watch-summary": "Ajouter ou supprimer des pages de la liste de suivi de l’utilisateur actuel.",
        "apihelp-watch-param-title": "La page à (ne plus) suivre. Utiliser plutôt <var>$1titles</var>.",
        "apihelp-watch-param-unwatch": "Si défini, la page ne sera plus suivie plutôt que suivie.",
        "apihelp-watch-example-watch": "Suivre la page <kbd>Main Page</kbd>.",
        "apihelp-watch-example-generator": "Suivre les quelques premières pages de l’espace de nom principal",
        "apihelp-format-example-generic": "Renvoyer le résultat de la requête dans le format $1.",
        "apihelp-format-param-wrappedhtml": "Renvoyer le HTML avec une jolie mise en forme et les modules ResourceLoader associés comme un objet JSON.",
-       "apihelp-json-description": "Extraire les données au format JSON.",
+       "apihelp-json-summary": "Extraire les données au format JSON.",
        "apihelp-json-param-callback": "Si spécifié, inclut la sortie dans l’appel d’une fonction fournie. Pour plus de sûreté, toutes les données spécifiques à l’utilisateur seront restreintes.",
        "apihelp-json-param-utf8": "Si spécifié, encode la plupart (mais pas tous) des caractères non ASCII en URF-8 au lieu de les remplacer par leur séquence d’échappement hexadécimale. Valeur par défaut quand <var>formatversion</var> ne vaut pas <kbd>1</kbd>.",
        "apihelp-json-param-ascii": "Si spécifié, encode toutes ses séquences d’échappement non ASCII utilisant l’hexadécimal. Valeur par défaut quand <var>formatversion</var> vaut <kbd>1</kbd>.",
        "apihelp-json-param-formatversion": "Mise en forme de sortie :\n;1:Format rétro-compatible (booléens de style XML, clés <samp>*</samp> pour les nœuds de contenu, etc.).\n;2:Format moderne expérimental. Des détails peuvent changer !\n;latest:Utilise le dernier format (actuellement <kbd>2</kbd>), peut changer sans avertissement.",
-       "apihelp-jsonfm-description": "Extraire les données au format JSON (affiché proprement en HTML).",
-       "apihelp-none-description": "Ne rien extraire.",
-       "apihelp-php-description": "Extraire les données au format sérialisé de PHP.",
+       "apihelp-jsonfm-summary": "Extraire les données au format JSON (affiché proprement en HTML).",
+       "apihelp-none-summary": "Ne rien extraire.",
+       "apihelp-php-summary": "Extraire les données au format sérialisé de PHP.",
        "apihelp-php-param-formatversion": "Mise en forme de la sortie :\n;1:Format rétro-compatible (bool&ens de style XML, clés <samp>*</samp> pour les nœuds de contenu, etc.).\n;2:Format moderne expérimental. Des détails peuvent changer !\n;latest:Utilise le dernier format (actuellement <kbd>2</kbd>), peut changer sans avertissement.",
-       "apihelp-phpfm-description": "Extraire les données au format sérialisé de PHP (affiché proprement en HTML).",
-       "apihelp-rawfm-description": "Extraire les données, y compris les éléments de débogage, au format JSON (affiché proprement en HTML).",
-       "apihelp-xml-description": "Extraire les données au format XML.",
+       "apihelp-phpfm-summary": "Extraire les données au format sérialisé de PHP (affiché proprement en HTML).",
+       "apihelp-rawfm-summary": "Extraire les données, y compris les éléments de débogage, au format JSON (affiché proprement en HTML).",
+       "apihelp-xml-summary": "Extraire les données au format XML.",
        "apihelp-xml-param-xslt": "Si spécifié, ajoute la page nommée comme une feuille de style XSL. La valeur doit être un titre dans l’espace de noms {{ns:MediaWiki}} se terminant par <code>.xsl</code>.",
        "apihelp-xml-param-includexmlnamespace": "Si spécifié, ajoute un espace de noms XML.",
-       "apihelp-xmlfm-description": "Extraire les données au format XML (affiché proprement en HTML).",
+       "apihelp-xmlfm-summary": "Extraire les données au format XML (affiché proprement en HTML).",
        "api-format-title": "Résultat de l’API de MediaWiki",
        "api-format-prettyprint-header": "Voici la représentation HTML du format $1. HTML est utile pour le débogage, mais inapproprié pour être utilisé dans une application.\n\nSpécifiez le paramètre <var>format</var> pour modifier le format de sortie. Pour voir la représentation non HTML du format $1, mettez <kbd>format=$2</kbd>.\n\nVoyez la [[mw:Special:MyLanguage/API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
        "api-format-prettyprint-header-only-html": "Ceci est une représentation HTML à des fins de débogage, et n’est pas approprié pour une utilisation applicative.\n\nVoir la [[mw:Special:MyLanguage/API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
        "api-help-title": "Aide de l’API de MediaWiki",
        "api-help-lead": "Ceci est une page d’aide de l’API de MediaWiki générée automatiquement.\n\nDocumentation et exemples : https://www.mediawiki.org/wiki/API",
        "api-help-main-header": "Module principal",
+       "api-help-undocumented-module": "Aucune documentation pour le module $1.",
        "api-help-flag-deprecated": "Ce module est désuet.",
        "api-help-flag-internal": "<strong>Ce module est interne ou instable.</strong> Son fonctionnement peut être modifié sans préavis.",
        "api-help-flag-readrights": "Ce module nécessite des droits de lecture.",
index 3f5d531..f4659be 100644 (file)
        "apihelp-query+blocks-paramvalue-prop-reason": "Dodaje powód zablokowania.",
        "apihelp-query+blocks-paramvalue-prop-range": "Dodaje zakres adresów IP, na który zastosowano blokadę.",
        "apihelp-query+blocks-example-simple": "Listuj blokady.",
+       "apihelp-query+categories-summary": "Lista kategorii, do których należą strony",
        "apihelp-query+categories-paramvalue-prop-timestamp": "Dodaje znacznik czasu dodania kategorii.",
        "apihelp-query+categories-param-limit": "Liczba kategorii do zwrócenia.",
        "apihelp-query+categoryinfo-summary": "Zwraca informacje o danych kategoriach.",
        "api-help-title": "Pomoc MediaWiki API",
        "api-help-lead": "To jest automatycznie wygenerowana strona dokumentacji MediaWiki API.\nDokumentacja i przykłady: https://www.mediawiki.org/wiki/API",
        "api-help-main-header": "Moduł główny",
+       "api-help-undocumented-module": "Brak dokumentacji dla modułu $1.",
        "api-help-flag-deprecated": "Ten moduł jest przestarzały.",
        "api-help-flag-internal": "<strong>Ten moduł jest wewnętrzny lub niestabilny.</strong> Jego działanie może się zmienić bez uprzedzenia.",
        "api-help-flag-readrights": "Ten moduł wymaga praw odczytu.",
index 3ee6330..11f3c2b 100644 (file)
@@ -20,7 +20,6 @@
  *
  * @file
  * @author Tim Starling
- * @author Aaron Schulz
  * @copyright © 2009, Tim Starling, Domas Mituzas
  * @copyright © 2010, Max Sem
  * @copyright © 2011, Antoine Musso
index cbbbfeb..64d4aa7 100644 (file)
@@ -685,7 +685,7 @@ class EnhancedChangesList extends ChangesList {
                }
                $attribs = $data['attribs'];
                unset( $data['attribs'] );
-               $attribs = wfArrayFilterByKey( $attribs, function( $key ) {
+               $attribs = wfArrayFilterByKey( $attribs, function ( $key ) {
                        return $key === 'class' || Sanitizer::isReservedDataAttribute( $key );
                } );
 
index ae3df49..c57eba7 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 /**
- * Copyright 2017
- *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
@@ -18,7 +16,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 use Psr\Log\LoggerAwareInterface;
index 809b660..6d18444 100644 (file)
@@ -93,8 +93,10 @@ class CloneDatabase {
                        self::changePrefix( $this->newTablePrefix );
                        $newTableName = $this->db->tableName( $tbl, 'raw' );
 
+                       // Postgres: Temp tables are automatically deleted upon end of session
+                       //           Same Temp table name hides existing table for current session
                        if ( $this->dropCurrentTables
-                               && !in_array( $this->db->getType(), [ 'postgres', 'oracle' ] )
+                               && !in_array( $this->db->getType(), [ 'oracle' ] )
                        ) {
                                if ( $oldTableName === $newTableName ) {
                                        // Last ditch check to avoid data loss
index baf4637..6359509 100644 (file)
@@ -43,8 +43,7 @@ use UDPTransport;
  *
  * @see \MediaWiki\Logger\LoggerFactory
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
  */
 class LegacyLogger extends AbstractLogger {
 
index 4cf8313..8e750ca 100644 (file)
@@ -32,8 +32,7 @@ namespace MediaWiki\Logger;
  *
  * @see \MediaWiki\Logger\LoggerFactory
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
  */
 class LegacySpi implements Spi {
 
index ce92dbd..c183ff1 100644 (file)
@@ -40,8 +40,7 @@ use ObjectFactory;
  *
  * @see \MediaWiki\Logger\Spi
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
  */
 class LoggerFactory {
 
index f44ff1c..197b269 100644 (file)
@@ -110,8 +110,7 @@ use ObjectFactory;
  *
  * @see https://github.com/Seldaek/monolog
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
  */
 class MonologSpi implements Spi {
 
index 82308d0..4862157 100644 (file)
@@ -34,8 +34,7 @@ use Psr\Log\NullLogger;
  *
  * @see \MediaWiki\Logger\LoggerFactory
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
  */
 class NullSpi implements Spi {
 
index 044789f..8e0875f 100644 (file)
@@ -31,8 +31,7 @@ namespace MediaWiki\Logger;
  *
  * @see \MediaWiki\Logger\LoggerFactory
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
  */
 interface Spi {
 
index 9ec15cb..92624a0 100644 (file)
@@ -29,8 +29,7 @@ use Monolog\Formatter\NormalizerFormatter;
  * delegating the formatting to \MediaWiki\Logger\LegacyLogger.
  *
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2013 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2013 Wikimedia Foundation and contributors
  * @see \MediaWiki\Logger\LegacyLogger
  */
 class LegacyFormatter extends NormalizerFormatter {
index d40414c..58fca8e 100644 (file)
@@ -44,8 +44,7 @@ use UnexpectedValueException;
  * replacement for \Monolog\Handler\StreamHandler.
  *
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2013 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2013 Wikimedia Foundation and contributors
  */
 class LegacyHandler extends AbstractProcessingHandler {
 
index 0ad9b15..5a7ddb1 100644 (file)
@@ -37,8 +37,7 @@ use MWExceptionHandler;
  * will be used to redact the trace information.
  *
  * @since 1.26
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2015 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2015 Wikimedia Foundation and contributors
  */
 class LineFormatter extends MonologLineFormatter {
 
index 104ee58..780ea94 100644 (file)
@@ -43,8 +43,7 @@ use Monolog\Logger;
  * default Logstash syslog input handler.
  *
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2015 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2015 Wikimedia Foundation and contributors
  */
 class SyslogHandler extends SyslogUdpHandler {
 
index ad939a0..5e32887 100644 (file)
@@ -25,8 +25,7 @@ namespace MediaWiki\Logger\Monolog;
  * wiki / request ID, and MediaWiki version.
  *
  * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2013 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2013 Wikimedia Foundation and contributors
  */
 class WikiProcessor {
 
index b9a259b..c94ae2a 100644 (file)
@@ -124,7 +124,7 @@ class SearchUpdate implements DeferrableUpdate {
                # Language-specific strip/conversion
                $text = $wgContLang->normalizeForSearch( $text );
                $se = $se ?: MediaWikiServices::getInstance()->newSearchEngine();
-               $lc = $se->legalSearchChars() . '&#;';
+               $lc = $se->legalSearchCharsForUpdate() . '&#;';
 
                $text = preg_replace( "/<\\/?\\s*[A-Za-z][^>]*?>/",
                        ' ', $wgContLang->lc( " " . $text . " " ) ); # Strip HTML markup
@@ -207,7 +207,7 @@ class SearchUpdate implements DeferrableUpdate {
                $ns = $this->title->getNamespace();
                $title = $this->title->getText();
 
-               $lc = $search->legalSearchChars() . '&#;';
+               $lc = $search->legalSearchCharsForUpdate() . '&#;';
                $t = $wgContLang->normalizeForSearch( $title );
                $t = preg_replace( "/[^{$lc}]+/", ' ', $t );
                $t = $wgContLang->lc( $t );
index b0ab244..0b58cc1 100644 (file)
@@ -847,7 +847,7 @@ class DifferenceEngine extends ContextSource {
         * @return bool|string
         */
        public function generateTextDiffBody( $otext, $ntext ) {
-               $diff = function() use ( $otext, $ntext ) {
+               $diff = function () use ( $otext, $ntext ) {
                        $time = microtime( true );
 
                        $result = $this->textDiff( $otext, $ntext );
@@ -867,7 +867,7 @@ class DifferenceEngine extends ContextSource {
                 * @param Status $status
                 * @throws FatalError
                 */
-               $error = function( $status ) {
+               $error = function ( $status ) {
                        throw new FatalError( $status->getWikiText() );
                };
 
index 5162a1f..579b6ca 100644 (file)
@@ -16,7 +16,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 use Wikimedia\Rdbms\DBConnectionError;
index 260ee17..6cfa083 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup ExternalStorage
- * @author Aaron Schulz
  */
 
 /**
index e65a594..5d0da6d 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 use \MediaWiki\Logger\LoggerFactory;
 use MediaWiki\MediaWikiServices;
index aa97c9a..42b36ff 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileJournal
- * @author Aaron Schulz
  */
 
 use MediaWiki\MediaWikiServices;
index 1e66e6e..e6f992c 100644 (file)
@@ -27,7 +27,6 @@ use MediaWiki\Logger\LoggerFactory;
  * Class to handle file lock manager registration
  *
  * @ingroup LockManager
- * @author Aaron Schulz
  * @since 1.19
  */
 class LockManagerGroup {
index 2394704..c37a942 100644 (file)
@@ -20,7 +20,6 @@
  * @file
  * @ingroup FileRepo
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 
 use Wikimedia\Rdbms\DBConnRef;
index f83fd1c..bcd253f 100644 (file)
@@ -73,7 +73,7 @@ class ForeignDBViaLBRepo extends LocalRepo {
         * @return Closure
         */
        protected function getDBFactory() {
-               return function( $index ) {
+               return function ( $index ) {
                        return wfGetLB( $this->wiki )->getConnectionRef( $index, [], $this->wiki );
                };
        }
index d91ab24..20d51c2 100644 (file)
@@ -483,7 +483,7 @@ class LocalRepo extends FileRepo {
         * @return Closure
         */
        protected function getDBFactory() {
-               return function( $index ) {
+               return function ( $index ) {
                        return wfGetDB( $index );
                };
        }
index e1c2546..a412250 100644 (file)
@@ -593,7 +593,7 @@ class LocalFile extends File {
                if ( $upgrade ) {
                        $this->upgrading = true;
                        // Defer updates unless in auto-commit CLI mode
-                       DeferredUpdates::addCallableUpdate( function() {
+                       DeferredUpdates::addCallableUpdate( function () {
                                $this->upgrading = false; // avoid duplicate updates
                                try {
                                        $this->upgradeRow();
index 089213c..10db90c 100644 (file)
@@ -26,7 +26,7 @@ trait HTMLFormElement {
                        // And it's not needed anymore after infusing, so we don't put it in JS config at all.
                        $this->setAttributes( [ 'data-mw-modules' => implode( ',', $this->modules ) ] );
                }
-               $this->registerConfigCallback( function( &$config ) {
+               $this->registerConfigCallback( function ( &$config ) {
                        if ( $this->hideIf !== null ) {
                                $config['hideIf'] = $this->hideIf;
                        }
index 8829f66..53d1d06 100644 (file)
@@ -23,7 +23,7 @@ class HTMLUsersMultiselectField extends HTMLUserTextField {
 
                $usersArray = explode( "\n", $request->getText( $this->mName ) );
                // Remove empty lines
-               $usersArray = array_values( array_filter( $usersArray, function( $username ) {
+               $usersArray = array_values( array_filter( $usersArray, function ( $username ) {
                        return trim( $username ) !== '';
                } ) );
                return $usersArray;
index 6113573..6c56b3d 100644 (file)
@@ -336,7 +336,7 @@ abstract class DatabaseInstaller {
                $services = \MediaWiki\MediaWikiServices::getInstance();
 
                $connection = $status->value;
-               $services->redefineService( 'DBLoadBalancerFactory', function() use ( $connection ) {
+               $services->redefineService( 'DBLoadBalancerFactory', function () use ( $connection ) {
                        return LBFactorySingle::newFromConnection( $connection );
                } );
        }
index 7028224..168d7ed 100644 (file)
@@ -384,7 +384,7 @@ abstract class Installer {
 
                // make sure we use the installer config as the main config
                $configRegistry = $baseConfig->get( 'ConfigRegistry' );
-               $configRegistry['main'] = function() use ( $installerConfig ) {
+               $configRegistry['main'] = function () use ( $installerConfig ) {
                        return $installerConfig;
                };
 
index 9701dd9..d20a233 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @defgroup JobQueue JobQueue
- * @author Aaron Schulz
  */
 use MediaWiki\MediaWikiServices;
 
index 9b9928d..cefe74d 100644 (file)
@@ -18,7 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 use Wikimedia\Rdbms\IDatabase;
 use Wikimedia\Rdbms\DBConnRef;
index bd832db..7fdd617 100644 (file)
@@ -18,7 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 /**
index 5d5ea26..ef0ecb3 100644 (file)
@@ -18,7 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 /**
index 2866c7f..649e2af 100644 (file)
@@ -18,7 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 /**
index eb91680..7dad014 100644 (file)
@@ -18,7 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 use Psr\Log\LoggerInterface;
 
index 4169974..7ce2c74 100644 (file)
@@ -18,7 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 /**
index d9457c6..db07086 100644 (file)
@@ -18,7 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 use Psr\Log\LoggerInterface;
 
index 6357967..da4ec23 100644 (file)
@@ -16,7 +16,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  * @ingroup JobQueue
  */
 
index eb367af..ca57d62 100644 (file)
@@ -16,7 +16,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  * @ingroup JobQueue
  */
 use MediaWiki\MediaWikiServices;
index 1c12a1c..76f8d6d 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup JobQueue
- * @author Aaron Schulz
  */
 
 /**
index c504f35..ea0f1b7 100644 (file)
@@ -356,7 +356,7 @@ class CSSMin {
 
                // Re-insert comments
                $pattern = '/' . CSSMin::PLACEHOLDER . '(\d+)x/';
-               $source = preg_replace_callback( $pattern, function( $match ) use ( &$comments ) {
+               $source = preg_replace_callback( $pattern, function ( $match ) use ( &$comments ) {
                        return $comments[ $match[1] ];
                }, $source );
 
index 4ddb813..a4aabcd 100644 (file)
@@ -18,7 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 /**
@@ -179,7 +178,7 @@ class HashRing {
                if ( $this->liveRing === null || $this->ejectionNextExpiry <= $now ) {
                        $this->ejectionExpiries = array_filter(
                                $this->ejectionExpiries,
-                               function( $expiry ) use ( $now ) {
+                               function ( $expiry ) use ( $now ) {
                                        return ( $expiry > $now );
                                }
                        );
index a6aa0a3..e8b0e6a 100644 (file)
@@ -18,7 +18,7 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Antoine Musso "<hashar at free dot fr>", Aaron Schulz
+ * @author Antoine Musso "<hashar at free dot fr>"
  */
 
 use IPSet\IPSet;
index 73ffb14..d60af34 100644 (file)
@@ -18,7 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 /**
index e9922b9..9d6b734 100644 (file)
@@ -43,7 +43,6 @@ use Psr\Log\NullLogger;
  *                  - relayResponseHeaders : write out header via header()
  * Request maps can use integer index 0 instead of 'method' and 1 instead of 'url'.
  *
- * @author Aaron Schulz
  * @since 1.23
  */
 class MultiHttpClient implements LoggerAwareInterface {
index c96a8a1..6c47c3c 100644 (file)
@@ -21,8 +21,7 @@
 /**
  * Construct objects from configuration instructions.
  *
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
  */
 class ObjectFactory {
 
index c6da432..2383d2a 100644 (file)
@@ -25,8 +25,7 @@ use RunningStat\RunningStat;
  * <https://github.com/phacility/xhprof>. XHProf can be installed as a PECL
  * package for use with PHP5 (Zend PHP) and is built-in to HHVM 3.3.0.
  *
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
  * @since 1.28
  */
 class XhprofData {
index 304f6c1..0cc9b3d 100644 (file)
@@ -16,7 +16,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 use Psr\Log\LoggerInterface;
 use Psr\Log\LoggerAwareInterface;
index b8ec55f..d933dd4 100644 (file)
@@ -16,7 +16,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 
 /**
index 4f0805b..30548ef 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 use Wikimedia\Timestamp\ConvertibleTimestamp;
 
index 15f13b9..6f51081 100644 (file)
@@ -26,7 +26,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 use Psr\Log\LoggerAwareInterface;
 use Psr\Log\LoggerInterface;
index 53bce33..f8ca7e5 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 
 /**
@@ -196,7 +195,7 @@ class FileBackendMultiWrite extends FileBackend {
                                if ( $this->asyncWrites && !$this->hasVolatileSources( $ops ) ) {
                                        // Bind $scopeLock to the callback to preserve locks
                                        DeferredUpdates::addCallableUpdate(
-                                               function() use ( $backend, $realOps, $opts, $scopeLock, $relevantPaths ) {
+                                               function () use ( $backend, $realOps, $opts, $scopeLock, $relevantPaths ) {
                                                        wfDebugLog( 'FileOperationReplication',
                                                                "'{$backend->getName()}' async replication; paths: " .
                                                                FormatJson::encode( $relevantPaths ) );
@@ -508,7 +507,7 @@ class FileBackendMultiWrite extends FileBackend {
                        $realOps = $this->substOpBatchPaths( $ops, $backend );
                        if ( $this->asyncWrites && !$this->hasVolatileSources( $ops ) ) {
                                DeferredUpdates::addCallableUpdate(
-                                       function() use ( $backend, $realOps ) {
+                                       function () use ( $backend, $realOps ) {
                                                $backend->doQuickOperations( $realOps );
                                        }
                                );
@@ -562,7 +561,7 @@ class FileBackendMultiWrite extends FileBackend {
                        $realParams = $this->substOpPaths( $params, $backend );
                        if ( $this->asyncWrites ) {
                                DeferredUpdates::addCallableUpdate(
-                                       function() use ( $backend, $method, $realParams ) {
+                                       function () use ( $backend, $method, $realParams ) {
                                                $backend->$method( $realParams );
                                        }
                                );
index 039bd42..9bfdbe8 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 use Wikimedia\Timestamp\ConvertibleTimestamp;
 
index 71b5c7d..2324098 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 
 /**
index 44fe2cb..0341a2a 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 
 /**
index 029f94c..044e976 100644 (file)
@@ -20,7 +20,6 @@
  * @file
  * @ingroup FileBackend
  * @author Russ Nelson
- * @author Aaron Schulz
  */
 
 /**
index e3b8c51..527de6a 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 
 /**
index 120ca2b..f45b055 100644 (file)
@@ -17,7 +17,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 
 /**
index 79af194..30578fa 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 use Psr\Log\LoggerInterface;
 
index fee3f4a..55dca51 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 
 /**
index ed23e81..9121759 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 
 /**
index b97b410..bba762f 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
 
 /**
index c629e7d..a6257bf 100644 (file)
@@ -26,7 +26,6 @@ use Wikimedia\WaitConditionLoop;
  *
  * @file
  * @ingroup LockManager
- * @author Aaron Schulz
  */
 
 /**
index 5ad558f..b83462c 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup LockManager
- * @author Aaron Schulz
  */
 
 /**
index ac8bee8..e10606a 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup LockManager
- * @author Aaron Schulz
  */
 
 /**
index 77c4259..7cd678b 100644 (file)
@@ -475,7 +475,7 @@ abstract class BagOStuff implements IExpiringStore, LoggerAwareInterface {
 
                $lSince = microtime( true ); // lock timestamp
 
-               return new ScopedCallback( function() use ( $key, $lSince, $expiry ) {
+               return new ScopedCallback( function () use ( $key, $lSince, $expiry ) {
                        $latency = .050; // latency skew (err towards keeping lock present)
                        $age = ( microtime( true ) - $lSince + $latency );
                        if ( ( $age + $latency ) >= $expiry ) {
index 0842e04..ff7e91a 100644 (file)
@@ -17,7 +17,6 @@
  *
  * @file
  * @ingroup Cache
- * @author Aaron Schulz
  */
 
 use Psr\Log\LoggerAwareInterface;
index 956a3a9..1696c59 100644 (file)
@@ -17,7 +17,6 @@
  *
  * @file
  * @ingroup Cache
- * @author Aaron Schulz
  */
 
 use Psr\Log\LoggerAwareInterface;
index 823e0dc..256f744 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup Profiler
- * @author Aaron Schulz
  */
 
 namespace Wikimedia\Rdbms;
@@ -156,11 +155,13 @@ class TransactionProfiler implements LoggerAwareInterface {
         */
        public function recordConnection( $server, $db, $isMaster ) {
                // Report when too many connections happen...
-               if ( $this->hits['conns']++ == $this->expect['conns'] ) {
-                       $this->reportExpectationViolated( 'conns', "[connect to $server ($db)]" );
+               if ( $this->hits['conns']++ >= $this->expect['conns'] ) {
+                       $this->reportExpectationViolated(
+                               'conns', "[connect to $server ($db)]", $this->hits['conns'] );
                }
-               if ( $isMaster && $this->hits['masterConns']++ == $this->expect['masterConns'] ) {
-                       $this->reportExpectationViolated( 'masterConns', "[connect to $server ($db)]" );
+               if ( $isMaster && $this->hits['masterConns']++ >= $this->expect['masterConns'] ) {
+                       $this->reportExpectationViolated(
+                               'masterConns', "[connect to $server ($db)]", $this->hits['masterConns'] );
                }
        }
 
@@ -211,11 +212,11 @@ class TransactionProfiler implements LoggerAwareInterface {
                }
 
                // Report when too many writes/queries happen...
-               if ( $this->hits['queries']++ == $this->expect['queries'] ) {
-                       $this->reportExpectationViolated( 'queries', $query );
+               if ( $this->hits['queries']++ >= $this->expect['queries'] ) {
+                       $this->reportExpectationViolated( 'queries', $query, $this->hits['queries'] );
                }
-               if ( $isWrite && $this->hits['writes']++ == $this->expect['writes'] ) {
-                       $this->reportExpectationViolated( 'writes', $query );
+               if ( $isWrite && $this->hits['writes']++ >= $this->expect['writes'] ) {
+                       $this->reportExpectationViolated( 'writes', $query, $this->hits['writes'] );
                }
                // Report slow queries...
                if ( !$isWrite && $elapsed > $this->expect['readQueryTime'] ) {
index afeffb3..559c28b 100644 (file)
@@ -1822,8 +1822,10 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
        }
 
        /**
-        * @param string $name Table name
-        * @return array (DB name, schema name, table prefix, table name)
+        * Get the table components needed for a query given the currently selected database
+        *
+        * @param string $name Table name in the form of db.schema.table, db.table, or table
+        * @return array (DB name or "" for default, schema name, table prefix, table name)
         */
        protected function qualifiedTableComponents( $name ) {
                # We reverse the explode so that database.table and table both output the correct table.
index e237ef4..8d19bc1 100644 (file)
@@ -527,25 +527,23 @@ abstract class DatabaseMysqlBase extends Database {
        }
 
        public function tableExists( $table, $fname = __METHOD__ ) {
-               $table = $this->tableName( $table, 'raw' );
-               if ( isset( $this->mSessionTempTables[$table] ) ) {
-                       return true; // already known to exist and won't show in SHOW TABLES anyway
-               }
-
                // Split database and table into proper variables as Database::tableName() returns
                // shared tables prefixed with their database, which do not work in SHOW TABLES statements
-               list( $database, $schema, $prefix, $table ) = $this->qualifiedTableComponents( $table );
+               list( $database, , $prefix, $table ) = $this->qualifiedTableComponents( $table );
+               $tableName = "{$prefix}{$table}";
 
-               $table = $prefix . $table;
+               if ( isset( $this->mSessionTempTables[$tableName] ) ) {
+                       return true; // already known to exist and won't show in SHOW TABLES anyway
+               }
 
                // We can't use buildLike() here, because it specifies an escape character
                // other than the backslash, which is the only one supported by SHOW TABLES
-               $encLike = $this->escapeLikeInternal( $table, '\\' );
+               $encLike = $this->escapeLikeInternal( $tableName, '\\' );
 
-               // If the database has been specified (such as for shared tables), add a FROM $database clause
+               // If the database has been specified (such as for shared tables), use "FROM"
                if ( $database !== '' ) {
-                       $database = $this->addIdentifierQuotes( $database );
-                       $query = "SHOW TABLES FROM $database LIKE '$encLike'";
+                       $encDatabase = $this->addIdentifierQuotes( $database );
+                       $query = "SHOW TABLES FROM $encDatabase LIKE '$encLike'";
                } else {
                        $query = "SHOW TABLES LIKE '$encLike'";
                }
index 60b6855..9242414 100644 (file)
@@ -1046,4 +1046,3 @@ class DatabaseSqlite extends Database {
 }
 
 class_alias( DatabaseSqlite::class, 'DatabaseSqlite' );
-
index fd79773..62a078c 100644 (file)
@@ -28,4 +28,3 @@ class DBTransactionError extends DBExpectedError {
 }
 
 class_alias( DBTransactionError::class, 'DBTransactionError' );
-
index 3567204..919f103 100644 (file)
@@ -530,7 +530,7 @@ abstract class LBFactory implements ILBFactory {
                        $prefix
                );
 
-               $this->forEachLB( function( ILoadBalancer $lb ) use ( $prefix ) {
+               $this->forEachLB( function ( ILoadBalancer $lb ) use ( $prefix ) {
                        $lb->setDomainPrefix( $prefix );
                } );
        }
index 79827a2..acb4dce 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup Database
- * @author Aaron Schulz
  */
 namespace Wikimedia\Rdbms;
 
index 0fc00a8..0b70010 100644 (file)
@@ -1257,7 +1257,7 @@ class LoadBalancer implements ILoadBalancer {
                                // This happens if onTransactionIdle() callbacks leave callbacks on *another* DB
                                // (which finished its callbacks already). Warn and recover in this case. Let the
                                // callbacks run in the final commitMasterChanges() in LBFactory::shutdown().
-                               $this->queryLogger->error( __METHOD__ . ": found writes/callbacks pending." );
+                               $this->queryLogger->info( __METHOD__ . ": found writes/callbacks pending." );
                                return;
                        } elseif ( $conn->trxLevel() ) {
                                // This happens for single-DB setups where DB_REPLICA uses the master DB,
index f2bb855..d330d3c 100644 (file)
@@ -16,7 +16,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 use Psr\Log\LoggerInterface;
 use Psr\Log\LoggerAwareInterface;
index e3fc1a6..99c2c3c 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @defgroup Redis Redis
- * @author Aaron Schulz
  */
 
 use Psr\Log\LoggerAwareInterface;
index a8af714..526f120 100644 (file)
@@ -55,7 +55,7 @@ class SamplingStatsdClient extends StatsdClient {
                        $samplingRates = [ '*' => $sampleRate ];
                }
                if ( $samplingRates ) {
-                       array_walk( $data, function( $item ) use ( $samplingRates ) {
+                       array_walk( $data, function ( $item ) use ( $samplingRates ) {
                                /** @var $item StatsdData */
                                foreach ( $samplingRates as $pattern => $rate ) {
                                        if ( fnmatch( $pattern, $item->getKey(), FNM_NOESCAPE ) ) {
index 1b7545a..e3b9376 100644 (file)
@@ -40,7 +40,6 @@
  *   - stream   : resource to stream the HTTP response body to
  * Request maps can use integer index 0 instead of 'method' and 1 instead of 'url'.
  *
- * @author Aaron Schulz
  * @since 1.23
  */
 class VirtualRESTServiceClient {
@@ -103,7 +102,7 @@ class VirtualRESTServiceClient {
         * @return array (prefix,VirtualRESTService) or (null,null) if none found
         */
        public function getMountAndService( $path ) {
-               $cmpFunc = function( $a, $b ) {
+               $cmpFunc = function ( $a, $b ) {
                        $al = substr_count( $a, '/' );
                        $bl = substr_count( $b, '/' );
                        if ( $al === $bl ) {
@@ -207,7 +206,7 @@ class VirtualRESTServiceClient {
                }
 
                // Function to get IDs that won't collide with keys in $armoredIndexMap
-               $idFunc = function() use ( &$curUniqueId ) {
+               $idFunc = function () use ( &$curUniqueId ) {
                        return $curUniqueId++;
                };
 
index d26b304..43cb44c 100644 (file)
@@ -38,7 +38,7 @@ class PageDataRequestHandler {
                $parts = explode( '/', $subPage, 2 );
                if ( $parts !== 2 ) {
                        $slot = $parts[0];
-                       if ( $slot === 'main' or $slot === '' ) {
+                       if ( $slot === 'main' || $slot === '' ) {
                                return true;
                        }
                }
index c5501cb..1463499 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Contain classes to list log entries
  *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>, 2008 Aaron Schulz
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
  * https://www.mediawiki.org/
  *
  * This program is free software; you can redistribute it and/or modify
index e02b8a6..11dce31 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Contain classes to list log entries
  *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>, 2008 Aaron Schulz
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
  * https://www.mediawiki.org/
  *
  * This program is free software; you can redistribute it and/or modify
index 791330c..4b4d19f 100644 (file)
@@ -176,7 +176,7 @@ class RightsLogFormatter extends LogFormatter {
                        $oldmetadata =& $params['oldmetadata'];
                        // unset old metadata entry to ensure metadata goes at the end of the params array
                        unset( $params['oldmetadata'] );
-                       $params['oldmetadata'] = array_map( function( $index ) use ( $params, $oldmetadata ) {
+                       $params['oldmetadata'] = array_map( function ( $index ) use ( $params, $oldmetadata ) {
                                $result = [ 'group' => $params['4:array:oldgroups'][$index] ];
                                if ( isset( $oldmetadata[$index] ) ) {
                                        $result += $oldmetadata[$index];
@@ -194,7 +194,7 @@ class RightsLogFormatter extends LogFormatter {
                        $newmetadata =& $params['newmetadata'];
                        // unset old metadata entry to ensure metadata goes at the end of the params array
                        unset( $params['newmetadata'] );
-                       $params['newmetadata'] = array_map( function( $index ) use ( $params, $newmetadata ) {
+                       $params['newmetadata'] = array_map( function ( $index ) use ( $params, $newmetadata ) {
                                $result = [ 'group' => $params['5:array:newgroups'][$index] ];
                                if ( isset( $newmetadata[$index] ) ) {
                                        $result += $newmetadata[$index];
index 0e23a88..5c7c7fe 100644 (file)
@@ -3334,7 +3334,7 @@ class WikiPage implements Page, IDBAccessObject {
                HTMLFileCache::clearFileCache( $title );
 
                $revid = $revision ? $revision->getId() : null;
-               DeferredUpdates::addCallableUpdate( function() use ( $title, $revid ) {
+               DeferredUpdates::addCallableUpdate( function () use ( $title, $revid ) {
                        InfoAction::invalidateCache( $title, $revid );
                } );
        }
index 901d576..d3cb566 100644 (file)
@@ -99,13 +99,6 @@ abstract class RangeChronologicalPager extends ReverseChronologicalPager {
         * @return array
         */
        protected function buildQueryInfo( $offset, $limit, $descending ) {
-               if ( count( $this->rangeConds ) > 0 ) {
-                       // If range conditions are set, $offset is not used.
-                       // However, if range conditions aren't set, (such as when using paging links)
-                       // use the provided offset to get the proper query.
-                       $offset = '';
-               }
-
                list( $tables, $fields, $conds, $fname, $options, $join_conds ) = parent::buildQueryInfo(
                        $offset,
                        $limit,
index c83198f..b0d0e5c 100644 (file)
@@ -6070,7 +6070,7 @@ class Parser {
                $e = new Exception;
                $this->mInParse = $e->getTraceAsString();
 
-               $recursiveCheck = new ScopedCallback( function() {
+               $recursiveCheck = new ScopedCallback( function () {
                        $this->mInParse = false;
                } );
 
index 1f0e19e..76a7e1e 100644 (file)
@@ -138,20 +138,6 @@ class ParserCache {
         * @return bool|mixed|string
         */
        public function getKey( $article, $popts, $useOutdated = true ) {
-               $dummy = null;
-               return $this->getKeyReal( $article, $popts, $useOutdated, $dummy );
-       }
-
-       /**
-        * Temporary internal function to allow accessing $usedOptions
-        * @todo Merge this back to self::getKey() when ParserOptions::optionsHashPre30() is removed
-        * @param WikiPage $article
-        * @param ParserOptions $popts
-        * @param bool $useOutdated (default true)
-        * @param array &$usedOptions Don't use this, it will go away soon
-        * @return bool|mixed|string
-        */
-       private function getKeyReal( $article, $popts, $useOutdated, &$usedOptions ) {
                global $wgCacheEpoch;
 
                if ( $popts instanceof User ) {
@@ -218,8 +204,7 @@ class ParserCache {
 
                $touched = $article->getTouched();
 
-               $usedOptions = null;
-               $parserOutputKey = $this->getKeyReal( $article, $popts, $useOutdated, $usedOptions );
+               $parserOutputKey = $this->getKey( $article, $popts, $useOutdated );
                if ( $parserOutputKey === false ) {
                        wfIncrStats( 'pcache.miss.absent' );
                        return false;
@@ -228,13 +213,6 @@ class ParserCache {
                $casToken = null;
                /** @var ParserOutput $value */
                $value = $this->mMemc->get( $parserOutputKey, $casToken, BagOStuff::READ_VERIFIED );
-               if ( !$value ) {
-                       $parserOutputKey = $this->getParserOutputKey(
-                               $article,
-                               $popts->optionsHashPre30( $usedOptions, $article->getTitle() )
-                       );
-                       $value = $this->mMemc->get( $parserOutputKey, $casToken, BagOStuff::READ_VERIFIED );
-               }
                if ( !$value ) {
                        wfDebug( "ParserOutput cache miss.\n" );
                        wfIncrStats( "pcache.miss.absent" );
@@ -327,13 +305,6 @@ class ParserCache {
                        // ...and its pointer
                        $this->mMemc->set( $this->getOptionsKey( $page ), $optionsKey, $expire );
 
-                       // Normally, when there was no key change, the above would have
-                       // overwritten the old entry. Delete that old entry to save disk
-                       // space.
-                       $oldParserOutputKey = $this->getParserOutputKey( $page,
-                               $popts->optionsHashPre30( $optionsKey->mUsedOptions, $page->getTitle() ) );
-                       $this->mMemc->delete( $oldParserOutputKey );
-
                        Hooks::run(
                                'ParserCacheSaveComplete',
                                [ $this, $parserOutput, $page->getTitle(), $popts, $revId ]
index 5be0321..4809917 100644 (file)
@@ -1269,8 +1269,7 @@ class ParserOptions {
                // Feb 2015 (instead the parser outputs a constant placeholder and post-parse
                // processing handles the option). But Wikibase forces it in $forOptions
                // and expects the cache key to still vary on it for T85252.
-               // @todo Deprecate and remove this behavior after optionsHashPre30() is
-               //  removed (Wikibase can use addExtraKey() or something instead).
+               // @deprecated since 1.30, Wikibase should use addExtraKey() or something instead.
                if ( in_array( 'editsection', $forOptions, true ) ) {
                        $options['editsection'] = $this->mEditSection;
                        $defaults['editsection'] = true;
@@ -1321,98 +1320,6 @@ class ParserOptions {
                return $confstr;
        }
 
-       /**
-        * Generate the hash used before MediaWiki 1.30
-        * @since 1.30
-        * @deprecated since 1.30. Do not use this unless you're ParserCache.
-        * @param array $forOptions
-        * @param Title $title Used to get the content language of the page (since r97636)
-        * @return string Page rendering hash
-        */
-       public function optionsHashPre30( $forOptions, $title = null ) {
-               global $wgRenderHashAppend;
-
-               // FIXME: Once the cache key is reorganized this argument
-               // can be dropped. It was used when the math extension was
-               // part of core.
-               $confstr = '*';
-
-               // Space assigned for the stubthreshold but unused
-               // since it disables the parser cache, its value will always
-               // be 0 when this function is called by parsercache.
-               if ( in_array( 'stubthreshold', $forOptions ) ) {
-                       $confstr .= '!' . $this->options['stubthreshold'];
-               } else {
-                       $confstr .= '!*';
-               }
-
-               if ( in_array( 'dateformat', $forOptions ) ) {
-                       $confstr .= '!' . $this->getDateFormat();
-               }
-
-               if ( in_array( 'numberheadings', $forOptions ) ) {
-                       $confstr .= '!' . ( $this->options['numberheadings'] ? '1' : '' );
-               } else {
-                       $confstr .= '!*';
-               }
-
-               if ( in_array( 'userlang', $forOptions ) ) {
-                       $confstr .= '!' . $this->options['userlang']->getCode();
-               } else {
-                       $confstr .= '!*';
-               }
-
-               if ( in_array( 'thumbsize', $forOptions ) ) {
-                       $confstr .= '!' . $this->options['thumbsize'];
-               } else {
-                       $confstr .= '!*';
-               }
-
-               // add in language specific options, if any
-               // @todo FIXME: This is just a way of retrieving the url/user preferred variant
-               if ( !is_null( $title ) ) {
-                       $confstr .= $title->getPageLanguage()->getExtraHashOptions();
-               } else {
-                       global $wgContLang;
-                       $confstr .= $wgContLang->getExtraHashOptions();
-               }
-
-               $confstr .= $wgRenderHashAppend;
-
-               // @note: as of Feb 2015, core never sets the editsection flag, since it uses
-               // <mw:editsection> tags to inject editsections on the fly. However, extensions
-               // may be using it by calling ParserOption::optionUsed resp. ParserOutput::registerOption
-               // directly. At least Wikibase does at this point in time.
-               if ( !in_array( 'editsection', $forOptions ) ) {
-                       $confstr .= '!*';
-               } elseif ( !$this->mEditSection ) {
-                       $confstr .= '!edit=0';
-               }
-
-               if ( $this->options['printable'] && in_array( 'printable', $forOptions ) ) {
-                       $confstr .= '!printable=1';
-               }
-
-               if ( $this->options['wrapclass'] !== 'mw-parser-output' &&
-                       in_array( 'wrapclass', $forOptions )
-               ) {
-                       $confstr .= '!wrapclass=' . $this->options['wrapclass'];
-               }
-
-               if ( $this->mExtraKey != '' ) {
-                       $confstr .= $this->mExtraKey;
-               }
-
-               // Give a chance for extensions to modify the hash, if they have
-               // extra options or other effects on the parser cache.
-               Hooks::run( 'PageRenderingHash', [ &$confstr, $this->getUser(), &$forOptions ] );
-
-               // Make it a valid memcached key fragment
-               $confstr = str_replace( ' ', '_', $confstr );
-
-               return $confstr;
-       }
-
        /**
         * Test whether these options are safe to cache
         * @since 1.30
index 5a15ddf..65ea833 100644 (file)
@@ -16,7 +16,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Aaron Schulz
  */
 use Psr\Log\LoggerInterface;
 
index 0ce8087..41260a8 100644 (file)
@@ -27,7 +27,6 @@
  * $wgProfiler['visible'] = true;
  * @endcode
  *
- * @author Aaron Schulz
  * @ingroup Profiler
  * @since 1.25
  */
@@ -73,7 +72,7 @@ class ProfilerSectionOnly extends Profiler {
         */
        protected function getFunctionReport() {
                $data = $this->getFunctionStats();
-               usort( $data, function( $a, $b ) {
+               usort( $data, function ( $a, $b ) {
                        if ( $a['real'] === $b['real'] ) {
                                return 0;
                        }
index 1bf4f54..09191ee 100644 (file)
@@ -47,8 +47,7 @@
  * a drop-in replacement for Xhprof. Just change the XHPROF_FLAGS_* constants
  * to TIDEWAYS_FLAGS_*.
  *
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
  * @ingroup Profiler
  * @see Xhprof
  * @see https://php.net/xhprof
@@ -201,7 +200,7 @@ class ProfilerXhprof extends Profiler {
         */
        protected function getFunctionReport() {
                $data = $this->getFunctionStats();
-               usort( $data, function( $a, $b ) {
+               usort( $data, function ( $a, $b ) {
                        if ( $a['real'] === $b['real'] ) {
                                return 0;
                        }
index 7e3c398..fdfb24d 100644 (file)
@@ -19,7 +19,6 @@
  *
  * @file
  * @ingroup Profiler
- * @author Aaron Schulz
  */
 use Wikimedia\ScopedCallback;
 
index 39a8a3d..ce262bd 100644 (file)
@@ -378,7 +378,7 @@ class ExtensionProcessor implements Processor {
 
        protected function extractExtensionMessagesFiles( $dir, array $info ) {
                if ( isset( $info['ExtensionMessagesFiles'] ) ) {
-                       $this->globals["wgExtensionMessagesFiles"] += array_map( function( $file ) use ( $dir ) {
+                       $this->globals["wgExtensionMessagesFiles"] += array_map( function ( $file ) use ( $dir ) {
                                return "$dir/$file";
                        }, $info['ExtensionMessagesFiles'] );
                }
index 0c5a67e..eac04a9 100644 (file)
@@ -400,7 +400,7 @@ class ExtensionRegistry {
        protected function processAutoLoader( $dir, array $info ) {
                if ( isset( $info['AutoloadClasses'] ) ) {
                        // Make paths absolute, relative to the JSON file
-                       return array_map( function( $file ) use ( $dir ) {
+                       return array_map( function ( $file ) use ( $dir ) {
                                return "$dir/$file";
                        }, $info['AutoloadClasses'] );
                } else {
index 4473bb2..7d05265 100644 (file)
@@ -206,7 +206,7 @@ abstract class SearchEngine {
        }
 
        /**
-        * Get chars legal for search.
+        * Get chars legal for search (at query time).
         * NOTE: usage as static is deprecated and preserved only as BC measure
         * @return string
         */
@@ -214,6 +214,16 @@ abstract class SearchEngine {
                return "A-Za-z_'.0-9\\x80-\\xFF\\-";
        }
 
+       /**
+        * Get chars legal for search (at index time).
+        *
+        * @since 1.30
+        * @return string
+        */
+       public function legalSearchCharsForUpdate() {
+               return static::legalSearchChars();
+       }
+
        /**
         * Set the maximum number of results to return
         * and how many to skip before returning the first.
@@ -236,7 +246,7 @@ abstract class SearchEngine {
                if ( $namespaces ) {
                        // Filter namespaces to only keep valid ones
                        $validNs = $this->searchableNamespaces();
-                       $namespaces = array_filter( $namespaces, function( $ns ) use( $validNs ) {
+                       $namespaces = array_filter( $namespaces, function ( $ns ) use( $validNs ) {
                                return $ns < 0 || isset( $validNs[$ns] );
                        } );
                } else {
@@ -464,7 +474,7 @@ abstract class SearchEngine {
                        }
                }
 
-               $ns = array_map( function( $space ) {
+               $ns = array_map( function ( $space ) {
                        return $space == NS_MEDIA ? NS_FILE : $space;
                }, $ns );
 
@@ -550,7 +560,7 @@ abstract class SearchEngine {
         * @return Title[]
         */
        public function extractTitles( SearchSuggestionSet $completionResults ) {
-               return $completionResults->map( function( SearchSuggestion $sugg ) {
+               return $completionResults->map( function ( SearchSuggestion $sugg ) {
                        return $sugg->getSuggestedTitle();
                } );
        }
@@ -564,14 +574,14 @@ abstract class SearchEngine {
        protected function processCompletionResults( $search, SearchSuggestionSet $suggestions ) {
                $search = trim( $search );
                // preload the titles with LinkBatch
-               $titles = $suggestions->map( function( SearchSuggestion $sugg ) {
+               $titles = $suggestions->map( function ( SearchSuggestion $sugg ) {
                        return $sugg->getSuggestedTitle();
                } );
                $lb = new LinkBatch( $titles );
                $lb->setCaller( __METHOD__ );
                $lb->execute();
 
-               $results = $suggestions->map( function( SearchSuggestion $sugg ) {
+               $results = $suggestions->map( function ( SearchSuggestion $sugg ) {
                        return $sugg->getSuggestedTitle()->getPrefixedText();
                } );
 
index 36cbbaa..2c7feeb 100644 (file)
@@ -149,8 +149,8 @@ class SearchMySQL extends SearchDatabase {
                return $regex;
        }
 
-       public static function legalSearchChars() {
-               return "\"*" . parent::legalSearchChars();
+       public function legalSearchCharsForUpdate() {
+               return "\"*" . parent::legalSearchCharsForUpdate();
        }
 
        /**
index c5a5ef1..2e6cb84 100644 (file)
@@ -266,7 +266,7 @@ class SearchOracle extends SearchDatabase {
                        [] );
        }
 
-       public static function legalSearchChars() {
-               return "\"" . parent::legalSearchChars();
+       public function legalSearchCharsForUpdate() {
+               return "\"" . parent::legalSearchCharsForUpdate();
        }
 }
index b40e1aa..5a8995d 100644 (file)
@@ -141,8 +141,8 @@ class SearchSqlite extends SearchDatabase {
                return $regex;
        }
 
-       public static function legalSearchChars() {
-               return "\"*" . parent::legalSearchChars();
+       public function legalSearchCharsForUpdate() {
+               return "\"*" . parent::legalSearchCharsForUpdate();
        }
 
        /**
index caad388..6d54dad 100644 (file)
@@ -180,7 +180,7 @@ class SearchSuggestionSet {
         */
        public static function fromTitles( array $titles ) {
                $score = count( $titles );
-               $suggestions = array_map( function( $title ) use ( &$score ) {
+               $suggestions = array_map( function ( $title ) use ( &$score ) {
                        return SearchSuggestion::fromTitle( $score--, $title );
                }, $titles );
                return new SearchSuggestionSet( $suggestions );
@@ -196,7 +196,7 @@ class SearchSuggestionSet {
         */
        public static function fromStrings( array $titles ) {
                $score = count( $titles );
-               $suggestions = array_map( function( $title ) use ( &$score ) {
+               $suggestions = array_map( function ( $title ) use ( &$score ) {
                        return SearchSuggestion::fromText( $score--, $title );
                }, $titles );
                return new SearchSuggestionSet( $suggestions );
index 882084d..074afe3 100644 (file)
@@ -29,8 +29,7 @@ use UnexpectedValueException;
  * Subclass of UnexpectedValueException that can be annotated with additional
  * data for debug logging.
  *
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2016 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2016 Wikimedia Foundation and contributors
  * @since 1.27
  */
 class MetadataMergeException extends UnexpectedValueException {
index 1145efd..6679098 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Created on Sep 08, 2014
  *
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index f7d7cb2..d3e453a 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Created on Sep 08, 2014
  *
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 9594952..67c14d8 100644 (file)
@@ -456,7 +456,7 @@ class SpecialPage implements MessageLocalizer {
                $searchEngine->setLimitOffset( $limit, $offset );
                $searchEngine->setNamespaces( [] );
                $result = $searchEngine->defaultPrefixSearch( $search );
-               return array_map( function( Title $t ) {
+               return array_map( function ( Title $t ) {
                        return $t->getPrefixedText();
                }, $result );
        }
index e7030c5..e7c9423 100644 (file)
@@ -2,8 +2,6 @@
 /**
  * Implements Special:Activeusers
  *
- * Copyright © 2008 Aaron Schulz
- *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
diff --git