10use MediaWiki\Config\ServiceOptions;
67use MediaWiki\Logger\LoggerFactory;
68use MediaWiki\MediaWikiServices;
72 'Translate:AggregateGroupManager' =>
static function (
73 MediaWikiServices $services
78 'Translate:AggregateGroupMessageGroupFactory' =>
static function (
79 MediaWikiServices $services
82 $services->get(
'Translate:MessageGroupMetadata' )
86 'Translate:ConfigHelper' =>
static function ():
ConfigHelper {
90 'Translate:CsvTranslationImporter' =>
static function ( MediaWikiServices $services ):
CsvTranslationImporter {
94 'Translate:EntitySearch' =>
static function ( MediaWikiServices $services ):
EntitySearch {
96 $services->getMainWANObjectCache(),
97 $services->getCollationFactory()->makeCollation(
'uca-default-u-kn' ),
99 $services->getNamespaceInfo(),
100 $services->get(
'Translate:MessageIndex' ),
101 $services->getTitleParser(),
102 $services->getTitleFormatter()
106 'Translate:ExternalMessageSourceStateComparator' =>
static function (
107 MediaWikiServices $services
111 $services->getRevisionLookup(),
112 $services->getPageStore()
116 'Translate:ExternalMessageSourceStateImporter' =>
static function (
117 MediaWikiServices $services
120 $services->get(
'Translate:GroupSynchronizationCache' ),
121 $services->getJobQueueGroup(),
122 LoggerFactory::getInstance(
'Translate.GroupSynchronization' ),
123 $services->get(
'Translate:MessageIndex' ),
124 $services->getTitleFactory(),
127 $services->getMainConfig()
132 'Translate:FileBasedMessageGroupFactory' =>
static function (
133 MediaWikiServices $services
139 $services->getMainConfig()
144 'Translate:FileFormatFactory' =>
static function ( MediaWikiServices $services ):
FileFormatFactory {
148 'Translate:GroupSynchronizationCache' =>
static function (
149 MediaWikiServices $services
154 'Translate:HookDefinedMessageGroupFactory' =>
static function (
155 MediaWikiServices $services
160 'Translate:HookRunner' =>
static function (
161 MediaWikiServices $services
166 'Translate:MessageBundleMessageGroupFactory' =>
static function (
167 MediaWikiServices $services
170 $services->get(
'Translate:MessageGroupMetadata' ),
173 $services->getMainConfig()
178 'Translate:MessageBundleStore' =>
static function ( MediaWikiServices $services ):
MessageBundleStore {
180 $services->get(
'Translate:RevTagStore' ),
181 $services->getJobQueueGroup(),
182 $services->getLanguageNameUtils(),
183 $services->get(
'Translate:MessageIndex' ),
184 $services->get(
'Translate:MessageGroupMetadata' )
188 'Translate:MessageBundleTranslationLoader' =>
static function (
189 MediaWikiServices $services
194 'Translate:MessageGroupMetadata' =>
static function ( MediaWikiServices $services ):
MessageGroupMetadata {
198 'Translate:MessageGroupReviewStore' =>
static function ( MediaWikiServices $services ):
MessageGroupReviewStore {
200 $services->getDBLoadBalancer(),
201 $services->get(
'Translate:HookRunner' )
205 'Translate:MessageGroupStatsTableFactory' =>
static function (
206 MediaWikiServices $services
209 $services->get(
'Translate:ProgressStatsTableFactory' ),
210 $services->getDBLoadBalancer(),
211 $services->getLinkRenderer(),
212 $services->get(
'Translate:MessageGroupReviewStore' ),
213 $services->get(
'Translate:MessageGroupMetadata' ),
214 $services->getMainConfig()->get(
'TranslateWorkflowStates' ) !== false
218 'Translate:MessageGroupSubscription' =>
static function (
219 MediaWikiServices $services
222 $services->get(
'Translate:MessageGroupSubscriptionStore' ),
223 $services->getJobQueueGroup(),
224 $services->getUserIdentityLookup(),
225 LoggerFactory::getInstance(
'Translate.MessageGroupSubscription' ),
228 $services->getMainConfig()
233 'Translate:MessageGroupSubscriptionHookHandler' =>
static function (
234 MediaWikiServices $services
237 $services->get(
'Translate:MessageGroupSubscription' ),
238 $services->getUserFactory()
242 'Translate:MessageGroupSubscriptionStore' =>
static function (
243 MediaWikiServices $services
248 'Translate:MessageIndex' =>
static function ( MediaWikiServices $services ):
MessageIndex {
249 $params = (array)$services->getMainConfig()->get(
'TranslateMessageIndex' );
250 $class = array_shift( $params );
252 $implementationMap = [
254 'HashMessageIndex' => HashMessageIndex::class,
255 'CDBMessageIndex' => CDBMessageIndex::class,
256 'DatabaseMessageIndex' => DatabaseMessageIndex::class,
258 'hash' => HashMessageIndex::class,
259 'cdb' => CDBMessageIndex::class,
260 'database' => DatabaseMessageIndex::class,
264 $messageIndexStoreClass = $implementationMap[$class] ?? $implementationMap[
'database'];
266 new $messageIndexStoreClass,
267 $services->getMainWANObjectCache(),
268 $services->getJobQueueGroup(),
269 $services->get(
'Translate:HookRunner' ),
270 LoggerFactory::getInstance(
'Translate' ),
271 $services->getMainObjectStash(),
272 $services->getDBLoadBalancerFactory(),
273 $services->get(
'Translate:MessageGroupSubscription' ),
274 new ServiceOptions( MessageIndex::SERVICE_OPTIONS, $services->getMainConfig() ),
278 'Translate:MessagePrefixStats' =>
static function ( MediaWikiServices $services ):
MessagePrefixStats {
286 'Translate:PersistentCache' =>
static function ( MediaWikiServices $services ):
PersistentCache {
288 $services->getDBLoadBalancer(),
289 $services->getJsonCodec()
296 $services->getLinkRenderer(),
297 $services->get(
'Translate:ConfigHelper' ),
298 $services->get(
'Translate:MessageGroupMetadata' )
302 'Translate:RevTagStore' =>
static function ( MediaWikiServices $services ):
RevTagStore {
306 'Translate:SubpageListBuilder' =>
static function ( MediaWikiServices $services ):
SubpageListBuilder
309 $services->get(
'Translate:TranslatableBundleFactory' ),
310 $services->getLinkBatchFactory()
317 $services->getMainObjectStash(),
318 $services->getJobQueueGroup(),
319 $services->get(
'Translate:SubpageListBuilder' ),
320 $services->get(
'Translate:TranslatableBundleFactory' )
324 'Translate:TranslatableBundleExporter' =>
static function (
325 MediaWikiServices $services
328 $services->get(
'Translate:SubpageListBuilder' ),
329 $services->getWikiExporterFactory(),
330 $services->getDBLoadBalancer()
337 $services->get(
'Translate:TranslatablePageStore' ),
338 $services->get(
'Translate:MessageBundleStore' )
342 'Translate:TranslatableBundleImporter' =>
static function (
343 MediaWikiServices $services
346 $services->getWikiImporterFactory(),
347 $services->get(
'Translate:TranslatablePageParser' ),
348 $services->getRevisionLookup(),
349 $services->getNamespaceInfo(),
350 $services->getTitleFactory()
354 'Translate:TranslatableBundleMover' =>
static function ( MediaWikiServices $services ):
TranslatableBundleMover
357 $services->getMovePageFactory(),
358 $services->getJobQueueGroup(),
359 $services->getLinkBatchFactory(),
360 $services->get(
'Translate:TranslatableBundleFactory' ),
361 $services->get(
'Translate:SubpageListBuilder' ),
362 $services->getDBLoadBalancerFactory(),
363 $services->getMainConfig()->get(
'TranslatePageMoveLimit' )
367 'Translate:TranslatableBundleStatusStore' =>
370 $services->getDBLoadBalancer()->getConnection( DB_PRIMARY ),
371 $services->getCollationFactory()->makeCollation(
'uca-default-u-kn' ),
372 $services->getDBLoadBalancer()->getMaintenanceConnectionRef( DB_PRIMARY )
376 'Translate:TranslatablePageMarker' =>
static function ( MediaWikiServices $services ):
TranslatablePageMarker {
378 $services->getDBLoadBalancer(),
379 $services->getJobQueueGroup(),
380 $services->getLinkRenderer(),
382 $services->get(
'Translate:MessageIndex' ),
383 $services->getTitleFormatter(),
384 $services->getTitleParser(),
385 $services->get(
'Translate:TranslatablePageParser' ),
386 $services->get(
'Translate:TranslatablePageStore' ),
387 $services->get(
'Translate:TranslatablePageStateStore' ),
388 $services->get(
'Translate:TranslationUnitStoreFactory' ),
389 $services->get(
'Translate:MessageGroupMetadata' ),
390 $services->getWikiPageFactory(),
391 $services->get(
'Translate:TranslatablePageView' )
395 'Translate:TranslatablePageMessageGroupFactory' =>
static function (
396 MediaWikiServices $services
401 $services->getMainConfig()
406 'Translate:TranslatablePageParser' =>
static function ( MediaWikiServices $services ):
TranslatablePageParser
409 $services->get(
'Translate:ParsingPlaceholderFactory' )
413 'Translate:TranslatablePageStateStore' =>
static function (
414 MediaWikiServices $services
417 $services->get(
'Translate:PersistentCache' ),
418 $services->getPageStore()
422 'Translate:TranslatablePageStore' =>
static function ( MediaWikiServices $services ):
TranslatablePageStore
425 $services->get(
'Translate:MessageIndex' ),
426 $services->getJobQueueGroup(),
427 $services->get(
'Translate:RevTagStore' ),
428 $services->getDBLoadBalancer(),
429 $services->get(
'Translate:TranslatableBundleStatusStore' ),
430 $services->get(
'Translate:TranslatablePageParser' ),
431 $services->get(
'Translate:MessageGroupMetadata' )
435 'Translate:TranslatablePageView' =>
static function ( MediaWikiServices $services ):
TranslatablePageView {
437 $services->getDBLoadBalancerFactory(),
438 $services->get(
'Translate:TranslatablePageStateStore' ),
441 $services->getMainConfig()
446 'Translate:TranslateSandbox' =>
static function ( MediaWikiServices $services ):
TranslateSandbox
449 $services->getUserFactory(),
450 $services->getDBLoadBalancer(),
451 $services->getPermissionManager(),
452 $services->getAuthManager(),
453 $services->getUserGroupManager(),
454 $services->getActorStore(),
455 $services->getUserOptionsManager(),
456 $services->getJobQueueGroup(),
457 $services->get(
'Translate:HookRunner' ),
459 TranslateSandbox::CONSTRUCTOR_OPTIONS,
460 $services->getMainConfig()
465 'Translate:TranslationStashReader' =>
static function ( MediaWikiServices $services ):
TranslationStashReader
467 $db = $services->getDBLoadBalancer()->getConnection( DB_REPLICA );
471 'Translate:TranslationStatsDataProvider' =>
static function (
472 MediaWikiServices $services
477 $services->getMainConfig()
479 $services->getObjectFactory(),
480 $services->getDBLoadBalancer()
484 'Translate:TranslationUnitStoreFactory' =>
static function (
485 MediaWikiServices $services
490 'Translate:TranslatorActivity' =>
static function ( MediaWikiServices $services ):
TranslatorActivity {
492 $services->getMainConfig(),
493 $services->getDBLoadBalancer()
497 $services->getMainObjectStash(),
499 $services->getJobQueueGroup()
503 'Translate:TtmServerFactory' =>
static function ( MediaWikiServices $services ):
TtmServerFactory {
504 $config = $services->getMainConfig();
506 $default = $config->get(
'TranslateTranslationDefaultService' );
507 if ( $default ===
false ) {
511 return new TtmServerFactory( $config->get(
'TranslateTranslationServices' ), $default );
return[ 'Translate:AggregateGroupManager'=> static function(MediaWikiServices $services):AggregateGroupManager { return new AggregateGroupManager( $services->getTitleFactory());}, 'Translate:AggregateGroupMessageGroupFactory'=> static function(MediaWikiServices $services):AggregateGroupMessageGroupFactory { return new AggregateGroupMessageGroupFactory($services->get( 'Translate:MessageGroupMetadata'));}, 'Translate:ConfigHelper'=> static function():ConfigHelper { return new ConfigHelper();}, 'Translate:CsvTranslationImporter'=> static function(MediaWikiServices $services):CsvTranslationImporter { return new CsvTranslationImporter( $services->getWikiPageFactory());}, 'Translate:EntitySearch'=> static function(MediaWikiServices $services):EntitySearch { return new EntitySearch($services->getMainWANObjectCache(), $services->getCollationFactory() ->makeCollation( 'uca-default-u-kn'), MessageGroups::singleton(), $services->getNamespaceInfo(), $services->get( 'Translate:MessageIndex'), $services->getTitleParser(), $services->getTitleFormatter());}, 'Translate:ExternalMessageSourceStateComparator'=> static function(MediaWikiServices $services):ExternalMessageSourceStateComparator { return new ExternalMessageSourceStateComparator(new SimpleStringComparator(), $services->getRevisionLookup(), $services->getPageStore());}, 'Translate:ExternalMessageSourceStateImporter'=> static function(MediaWikiServices $services):ExternalMessageSourceStateImporter { return new ExternalMessageSourceStateImporter($services->get( 'Translate:GroupSynchronizationCache'), $services->getJobQueueGroup(), LoggerFactory::getInstance( 'Translate.GroupSynchronization'), $services->get( 'Translate:MessageIndex'), $services->getTitleFactory(), new ServiceOptions(ExternalMessageSourceStateImporter::CONSTRUCTOR_OPTIONS, $services->getMainConfig()));}, 'Translate:FileBasedMessageGroupFactory'=> static function(MediaWikiServices $services):FileBasedMessageGroupFactory { return new FileBasedMessageGroupFactory(new MessageGroupConfigurationParser(), new ServiceOptions(FileBasedMessageGroupFactory::SERVICE_OPTIONS, $services->getMainConfig()),);}, 'Translate:FileFormatFactory'=> static function(MediaWikiServices $services):FileFormatFactory { return new FileFormatFactory( $services->getObjectFactory());}, 'Translate:GroupSynchronizationCache'=> static function(MediaWikiServices $services):GroupSynchronizationCache { return new GroupSynchronizationCache( $services->get( 'Translate:PersistentCache'));}, 'Translate:HookDefinedMessageGroupFactory'=> static function(MediaWikiServices $services):HookDefinedMessageGroupFactory { return new HookDefinedMessageGroupFactory( $services->get( 'Translate:HookRunner'));}, 'Translate:HookRunner'=> static function(MediaWikiServices $services):HookRunner { return new HookRunner( $services->getHookContainer());}, 'Translate:MessageBundleMessageGroupFactory'=> static function(MediaWikiServices $services):MessageBundleMessageGroupFactory { return new MessageBundleMessageGroupFactory($services->get( 'Translate:MessageGroupMetadata'), new ServiceOptions(MessageBundleMessageGroupFactory::SERVICE_OPTIONS, $services->getMainConfig()),);}, 'Translate:MessageBundleStore'=> static function(MediaWikiServices $services):MessageBundleStore { return new MessageBundleStore($services->get( 'Translate:RevTagStore'), $services->getJobQueueGroup(), $services->getLanguageNameUtils(), $services->get( 'Translate:MessageIndex'), $services->get( 'Translate:MessageGroupMetadata'));}, 'Translate:MessageBundleTranslationLoader'=> static function(MediaWikiServices $services):MessageBundleTranslationLoader { return new MessageBundleTranslationLoader( $services->getLanguageFallback());}, 'Translate:MessageGroupMetadata'=> static function(MediaWikiServices $services):MessageGroupMetadata { return new MessageGroupMetadata( $services->getDBLoadBalancer());}, 'Translate:MessageGroupReviewStore'=> static function(MediaWikiServices $services):MessageGroupReviewStore { return new MessageGroupReviewStore($services->getDBLoadBalancer(), $services->get( 'Translate:HookRunner'));}, 'Translate:MessageGroupStatsTableFactory'=> static function(MediaWikiServices $services):MessageGroupStatsTableFactory { return new MessageGroupStatsTableFactory($services->get( 'Translate:ProgressStatsTableFactory'), $services->getDBLoadBalancer(), $services->getLinkRenderer(), $services->get( 'Translate:MessageGroupReviewStore'), $services->get( 'Translate:MessageGroupMetadata'), $services->getMainConfig() ->get( 'TranslateWorkflowStates') !==false);}, 'Translate:MessageGroupSubscription'=> static function(MediaWikiServices $services):MessageGroupSubscription { return new MessageGroupSubscription($services->get( 'Translate:MessageGroupSubscriptionStore'), $services->getJobQueueGroup(), $services->getUserIdentityLookup(), LoggerFactory::getInstance( 'Translate.MessageGroupSubscription'), new ServiceOptions(MessageGroupSubscription::CONSTRUCTOR_OPTIONS, $services->getMainConfig()));}, 'Translate:MessageGroupSubscriptionHookHandler'=> static function(MediaWikiServices $services):MessageGroupSubscriptionHookHandler { return new MessageGroupSubscriptionHookHandler($services->get( 'Translate:MessageGroupSubscription'), $services->getUserFactory());}, 'Translate:MessageGroupSubscriptionStore'=> static function(MediaWikiServices $services):MessageGroupSubscriptionStore { return new MessageGroupSubscriptionStore( $services->getDBLoadBalancerFactory());}, 'Translate:MessageIndex'=> static function(MediaWikiServices $services):MessageIndex { $params=(array) $services->getMainConfig() ->get( 'TranslateMessageIndex');$class=array_shift( $params);$implementationMap=['HashMessageIndex'=> HashMessageIndex::class, 'CDBMessageIndex'=> CDBMessageIndex::class, 'DatabaseMessageIndex'=> DatabaseMessageIndex::class, 'hash'=> HashMessageIndex::class, 'cdb'=> CDBMessageIndex::class, 'database'=> DatabaseMessageIndex::class,];$messageIndexStoreClass=$implementationMap[$class] ?? $implementationMap['database'];return new MessageIndex(new $messageIndexStoreClass, $services->getMainWANObjectCache(), $services->getJobQueueGroup(), $services->get( 'Translate:HookRunner'), LoggerFactory::getInstance( 'Translate'), $services->getMainObjectStash(), $services->getDBLoadBalancerFactory(), $services->get( 'Translate:MessageGroupSubscription'), new ServiceOptions(MessageIndex::SERVICE_OPTIONS, $services->getMainConfig()),);}, 'Translate:MessagePrefixStats'=> static function(MediaWikiServices $services):MessagePrefixStats { return new MessagePrefixStats( $services->getTitleParser());}, 'Translate:ParsingPlaceholderFactory'=> static function():ParsingPlaceholderFactory { return new ParsingPlaceholderFactory();}, 'Translate:PersistentCache'=> static function(MediaWikiServices $services):PersistentCache { return new PersistentDatabaseCache($services->getDBLoadBalancer(), $services->getJsonCodec());}, 'Translate:ProgressStatsTableFactory'=> static function(MediaWikiServices $services):ProgressStatsTableFactory { return new ProgressStatsTableFactory($services->getLinkRenderer(), $services->get( 'Translate:ConfigHelper'), $services->get( 'Translate:MessageGroupMetadata'));}, 'Translate:RevTagStore'=> static function(MediaWikiServices $services):RevTagStore { return new RevTagStore( $services->getDBLoadBalancer());}, 'Translate:SubpageListBuilder'=> static function(MediaWikiServices $services):SubpageListBuilder { return new SubpageListBuilder($services->get( 'Translate:TranslatableBundleFactory'), $services->getLinkBatchFactory());}, 'Translate:TranslatableBundleDeleter'=> static function(MediaWikiServices $services):TranslatableBundleDeleter { return new TranslatableBundleDeleter($services->getMainObjectStash(), $services->getJobQueueGroup(), $services->get( 'Translate:SubpageListBuilder'), $services->get( 'Translate:TranslatableBundleFactory'));}, 'Translate:TranslatableBundleExporter'=> static function(MediaWikiServices $services):TranslatableBundleExporter { return new TranslatableBundleExporter($services->get( 'Translate:SubpageListBuilder'), $services->getWikiExporterFactory(), $services->getDBLoadBalancer());}, 'Translate:TranslatableBundleFactory'=> static function(MediaWikiServices $services):TranslatableBundleFactory { return new TranslatableBundleFactory($services->get( 'Translate:TranslatablePageStore'), $services->get( 'Translate:MessageBundleStore'));}, 'Translate:TranslatableBundleImporter'=> static function(MediaWikiServices $services):TranslatableBundleImporter { return new TranslatableBundleImporter($services->getWikiImporterFactory(), $services->get( 'Translate:TranslatablePageParser'), $services->getRevisionLookup(), $services->getNamespaceInfo(), $services->getTitleFactory());}, 'Translate:TranslatableBundleMover'=> static function(MediaWikiServices $services):TranslatableBundleMover { return new TranslatableBundleMover($services->getMovePageFactory(), $services->getJobQueueGroup(), $services->getLinkBatchFactory(), $services->get( 'Translate:TranslatableBundleFactory'), $services->get( 'Translate:SubpageListBuilder'), $services->getDBLoadBalancerFactory(), $services->getMainConfig() ->get( 'TranslatePageMoveLimit'));}, 'Translate:TranslatableBundleStatusStore'=> static function(MediaWikiServices $services):TranslatableBundleStatusStore { return new TranslatableBundleStatusStore($services->getDBLoadBalancer() ->getConnection(DB_PRIMARY), $services->getCollationFactory() ->makeCollation( 'uca-default-u-kn'), $services->getDBLoadBalancer() ->getMaintenanceConnectionRef(DB_PRIMARY));}, 'Translate:TranslatablePageMarker'=> static function(MediaWikiServices $services):TranslatablePageMarker { return new TranslatablePageMarker($services->getDBLoadBalancer(), $services->getJobQueueGroup(), $services->getLinkRenderer(), MessageGroups::singleton(), $services->get( 'Translate:MessageIndex'), $services->getTitleFormatter(), $services->getTitleParser(), $services->get( 'Translate:TranslatablePageParser'), $services->get( 'Translate:TranslatablePageStore'), $services->get( 'Translate:TranslatablePageStateStore'), $services->get( 'Translate:TranslationUnitStoreFactory'), $services->get( 'Translate:MessageGroupMetadata'), $services->getWikiPageFactory(), $services->get( 'Translate:TranslatablePageView'));}, 'Translate:TranslatablePageMessageGroupFactory'=> static function(MediaWikiServices $services):TranslatablePageMessageGroupFactory { return new TranslatablePageMessageGroupFactory(new ServiceOptions(TranslatablePageMessageGroupFactory::SERVICE_OPTIONS, $services->getMainConfig()),);}, 'Translate:TranslatablePageParser'=> static function(MediaWikiServices $services):TranslatablePageParser { return new TranslatablePageParser($services->get( 'Translate:ParsingPlaceholderFactory'));}, 'Translate:TranslatablePageStateStore'=> static function(MediaWikiServices $services):TranslatablePageStateStore { return new TranslatablePageStateStore($services->get( 'Translate:PersistentCache'), $services->getPageStore());}, 'Translate:TranslatablePageStore'=> static function(MediaWikiServices $services):TranslatablePageStore { return new TranslatablePageStore($services->get( 'Translate:MessageIndex'), $services->getJobQueueGroup(), $services->get( 'Translate:RevTagStore'), $services->getDBLoadBalancer(), $services->get( 'Translate:TranslatableBundleStatusStore'), $services->get( 'Translate:TranslatablePageParser'), $services->get( 'Translate:MessageGroupMetadata'));}, 'Translate:TranslatablePageView'=> static function(MediaWikiServices $services):TranslatablePageView { return new TranslatablePageView($services->getDBLoadBalancerFactory(), $services->get( 'Translate:TranslatablePageStateStore'), new ServiceOptions(TranslatablePageView::SERVICE_OPTIONS, $services->getMainConfig()));}, 'Translate:TranslateSandbox'=> static function(MediaWikiServices $services):TranslateSandbox { return new TranslateSandbox($services->getUserFactory(), $services->getDBLoadBalancer(), $services->getPermissionManager(), $services->getAuthManager(), $services->getUserGroupManager(), $services->getActorStore(), $services->getUserOptionsManager(), $services->getJobQueueGroup(), $services->get( 'Translate:HookRunner'), new ServiceOptions(TranslateSandbox::CONSTRUCTOR_OPTIONS, $services->getMainConfig()));}, 'Translate:TranslationStashReader'=> static function(MediaWikiServices $services):TranslationStashReader { $db=$services->getDBLoadBalancer() ->getConnection(DB_REPLICA);return new TranslationStashStorage( $db);}, 'Translate:TranslationStatsDataProvider'=> static function(MediaWikiServices $services):TranslationStatsDataProvider { return new TranslationStatsDataProvider(new ServiceOptions(TranslationStatsDataProvider::CONSTRUCTOR_OPTIONS, $services->getMainConfig()), $services->getObjectFactory(), $services->getDBLoadBalancer());}, 'Translate:TranslationUnitStoreFactory'=> static function(MediaWikiServices $services):TranslationUnitStoreFactory { return new TranslationUnitStoreFactory( $services->getDBLoadBalancer());}, 'Translate:TranslatorActivity'=> static function(MediaWikiServices $services):TranslatorActivity { $query=new TranslatorActivityQuery($services->getMainConfig(), $services->getDBLoadBalancer());return new TranslatorActivity($services->getMainObjectStash(), $query, $services->getJobQueueGroup());}, 'Translate:TtmServerFactory'=> static function(MediaWikiServices $services):TtmServerFactory { $config=$services->getMainConfig();$default=$config->get( 'TranslateTranslationDefaultService');if( $default===false) { $default=null;} return new TtmServerFactory( $config->get( 'TranslateTranslationServices'), $default);}]
@phpcs-require-sorted-array
Generates list of subpages for the translatable bundle that can be moved or deleted.
Contains the core logic to delete translatable bundles or translation pages.
Contains the core logic to validate and move translatable bundles.
Service to mark/unmark pages from translation and perform related validations.
Translatable page message group factories that uses caching.
Generates ParserOutput from text or removes all tags from a text.
Manage translation state for translatable pages.
Logic and code to generate various aspects related to how translatable pages are displayed.