10use MediaWiki\Config\ServiceOptions;
70use MediaWiki\Logger\LoggerFactory;
71use MediaWiki\MediaWikiServices;
75 'Translate:AggregateGroupManager' =>
static function (
76 MediaWikiServices $services
79 $services->getTitleFactory(),
80 $services->get(
'Translate:MessageGroupMetadata' )
84 'Translate:AggregateGroupMessageGroupFactory' =>
static function (
85 MediaWikiServices $services
88 $services->get(
'Translate:MessageGroupMetadata' )
92 'Translate:ConfigHelper' =>
static function ():
ConfigHelper {
96 'Translate:CsvTranslationImporter' =>
static function ( MediaWikiServices $services ):
CsvTranslationImporter {
100 'Translate:EntitySearch' =>
static function ( MediaWikiServices $services ):
EntitySearch {
102 $services->getMainWANObjectCache(),
103 $services->getCollationFactory()->makeCollation(
'uca-default-u-kn' ),
105 $services->getNamespaceInfo(),
106 $services->get(
'Translate:MessageIndex' ),
107 $services->getTitleParser(),
108 $services->getTitleFormatter()
112 'Translate:ExternalMessageSourceStateComparator' =>
static function (
113 MediaWikiServices $services
117 $services->getRevisionLookup(),
118 $services->getPageStore()
122 'Translate:ExternalMessageSourceStateImporter' =>
static function (
123 MediaWikiServices $services
126 $services->get(
'Translate:GroupSynchronizationCache' ),
127 $services->getJobQueueGroup(),
128 LoggerFactory::getInstance(
LogNames::GROUP_SYNCHRONIZATION ),
129 $services->get(
'Translate:MessageIndex' ),
130 $services->getTitleFactory(),
131 $services->get(
'Translate:MessageGroupSubscription' ),
134 $services->getMainConfig()
139 'Translate:FileBasedMessageGroupFactory' =>
static function (
140 MediaWikiServices $services
144 $services->getContentLanguageCode()->toString(),
147 $services->getMainConfig()
152 'Translate:FileFormatFactory' =>
static function ( MediaWikiServices $services ):
FileFormatFactory {
156 'Translate:GroupSynchronizationCache' =>
static function (
157 MediaWikiServices $services
162 'Translate:HookDefinedMessageGroupFactory' =>
static function (
163 MediaWikiServices $services
168 'Translate:HookRunner' =>
static function (
169 MediaWikiServices $services
174 'Translate:MessageBundleDependencyPurger' =>
static function (
175 MediaWikiServices $services
180 'Translate:MessageBundleMessageGroupFactory' =>
static function (
181 MediaWikiServices $services
184 $services->get(
'Translate:MessageGroupMetadata' ),
187 $services->getMainConfig()
192 'Translate:MessageBundleStore' =>
static function ( MediaWikiServices $services ):
MessageBundleStore {
194 $services->get(
'Translate:RevTagStore' ),
195 $services->getJobQueueGroup(),
196 $services->getLanguageNameUtils(),
197 $services->get(
'Translate:MessageIndex' ),
198 $services->get(
'Translate:MessageGroupMetadata' )
202 'Translate:MessageBundleTranslationLoader' =>
static function (
203 MediaWikiServices $services
208 'Translate:MessageGroupMetadata' =>
static function ( MediaWikiServices $services ):
MessageGroupMetadata {
212 'Translate:MessageGroupReviewStore' =>
static function ( MediaWikiServices $services ):
MessageGroupReviewStore {
214 $services->getConnectionProvider(),
215 $services->get(
'Translate:HookRunner' )
219 'Translate:MessageGroupStatsTableFactory' =>
static function (
220 MediaWikiServices $services
223 $services->get(
'Translate:ProgressStatsTableFactory' ),
224 $services->getLinkRenderer(),
225 $services->get(
'Translate:MessageGroupReviewStore' ),
226 $services->get(
'Translate:MessageGroupMetadata' ),
227 $services->getMainConfig()->get(
'TranslateWorkflowStates' ) !== false
231 'Translate:MessageGroupSubscription' =>
static function (
232 MediaWikiServices $services
235 $services->get(
'Translate:MessageGroupSubscriptionStore' ),
236 $services->getJobQueueGroup(),
237 $services->getUserIdentityLookup(),
238 LoggerFactory::getInstance(
LogNames::GROUP_SUBSCRIPTION ),
241 $services->getMainConfig()
246 'Translate:MessageGroupSubscriptionHookHandler' =>
static function (
247 MediaWikiServices $services
249 if ( !$services->getExtensionRegistry()->isLoaded(
'Echo' ) ) {
253 $services->get(
'Translate:MessageGroupSubscription' ),
254 $services->getUserFactory()
258 'Translate:MessageGroupSubscriptionStore' =>
static function (
259 MediaWikiServices $services
264 'Translate:MessageIndex' =>
static function ( MediaWikiServices $services ):
MessageIndex {
265 $params = (array)$services->getMainConfig()->get(
'TranslateMessageIndex' );
266 $class = array_shift( $params );
268 $implementationMap = [
270 'HashMessageIndex' => HashMessageIndex::class,
271 'CDBMessageIndex' => CDBMessageIndex::class,
272 'DatabaseMessageIndex' => DatabaseMessageIndex::class,
274 'hash' => HashMessageIndex::class,
275 'cdb' => CDBMessageIndex::class,
276 'database' => DatabaseMessageIndex::class,
280 $messageIndexStoreClass = $implementationMap[$class] ?? $implementationMap[
'database'];
282 new $messageIndexStoreClass,
283 $services->getMainWANObjectCache(),
284 $services->getJobQueueGroup(),
285 $services->get(
'Translate:HookRunner' ),
286 LoggerFactory::getInstance( LogNames::MAIN ),
287 $services->getMainObjectStash(),
288 $services->getConnectionProvider(),
289 new ServiceOptions( MessageIndex::SERVICE_OPTIONS, $services->getMainConfig() ),
293 'Translate:MessagePrefixStats' =>
static function ( MediaWikiServices $services ):
MessagePrefixStats {
301 'Translate:PersistentCache' =>
static function ( MediaWikiServices $services ):
PersistentCache {
303 $services->getConnectionProvider(),
304 $services->getJsonCodec()
311 $services->getLinkRenderer(),
312 $services->get(
'Translate:ConfigHelper' ),
313 $services->get(
'Translate:MessageGroupMetadata' )
317 'Translate:RevTagStore' =>
static function ( MediaWikiServices $services ):
RevTagStore {
321 'Translate:SubpageListBuilder' =>
static function ( MediaWikiServices $services ):
SubpageListBuilder
324 $services->get(
'Translate:TranslatableBundleFactory' ),
325 $services->getLinkBatchFactory()
332 $services->getMainObjectStash(),
333 $services->getJobQueueGroup(),
334 $services->get(
'Translate:SubpageListBuilder' ),
335 $services->get(
'Translate:TranslatableBundleFactory' )
339 'Translate:TranslatableBundleExporter' =>
static function (
340 MediaWikiServices $services
343 $services->get(
'Translate:SubpageListBuilder' ),
344 $services->getWikiExporterFactory(),
345 $services->getConnectionProvider()
352 $services->get(
'Translate:TranslatablePageStore' ),
353 $services->get(
'Translate:MessageBundleStore' )
357 'Translate:TranslatableBundleImporter' =>
static function (
358 MediaWikiServices $services
361 $services->getWikiImporterFactory(),
362 $services->get(
'Translate:TranslatablePageParser' ),
363 $services->getRevisionLookup(),
364 $services->getNamespaceInfo(),
365 $services->getTitleFactory(),
366 $services->getFormatterFactory()
370 'Translate:TranslatableBundleMover' =>
static function ( MediaWikiServices $services ):
TranslatableBundleMover
373 $services->getMovePageFactory(),
374 $services->getJobQueueGroup(),
375 $services->getLinkBatchFactory(),
376 $services->get(
'Translate:TranslatableBundleFactory' ),
377 $services->get(
'Translate:SubpageListBuilder' ),
378 $services->getConnectionProvider(),
379 $services->getObjectCacheFactory(),
380 $services->getMainConfig()->get(
'TranslatePageMoveLimit' )
384 'Translate:TranslatableBundleStatusStore' =>
387 $services->getConnectionProvider()->getPrimaryDatabase(),
388 $services->getCollationFactory()->makeCollation(
'uca-default-u-kn' ),
389 $services->getDBLoadBalancer()->getMaintenanceConnectionRef( DB_PRIMARY )
393 'Translate:TranslatablePageMarker' =>
static function ( MediaWikiServices $services ):
TranslatablePageMarker {
395 $services->getConnectionProvider(),
396 $services->getJobQueueGroup(),
397 $services->getLinkRenderer(),
399 $services->get(
'Translate:MessageIndex' ),
400 $services->getTitleFormatter(),
401 $services->getTitleParser(),
402 $services->get(
'Translate:TranslatablePageParser' ),
403 $services->get(
'Translate:TranslatablePageStore' ),
404 $services->get(
'Translate:TranslatablePageStateStore' ),
405 $services->get(
'Translate:TranslationUnitStoreFactory' ),
406 $services->get(
'Translate:MessageGroupMetadata' ),
407 $services->getWikiPageFactory(),
408 $services->get(
'Translate:TranslatablePageView' ),
409 $services->get(
'Translate:MessageGroupSubscription' ),
410 $services->getFormatterFactory(),
411 $services->get(
'Translate:HookRunner' ),
415 'Translate:TranslatablePageMessageGroupFactory' =>
static function (
416 MediaWikiServices $services
421 $services->getMainConfig()
426 'Translate:TranslatablePageParser' =>
static function ( MediaWikiServices $services ):
TranslatablePageParser
429 $services->get(
'Translate:ParsingPlaceholderFactory' )
433 'Translate:TranslatablePageStateStore' =>
static function (
434 MediaWikiServices $services
437 $services->get(
'Translate:PersistentCache' ),
438 $services->getPageStore()
442 'Translate:TranslatablePageStore' =>
static function ( MediaWikiServices $services ):
TranslatablePageStore
445 $services->get(
'Translate:MessageIndex' ),
446 $services->getJobQueueGroup(),
447 $services->get(
'Translate:RevTagStore' ),
448 $services->getConnectionProvider(),
449 $services->get(
'Translate:TranslatableBundleStatusStore' ),
450 $services->get(
'Translate:TranslatablePageParser' ),
451 $services->get(
'Translate:MessageGroupMetadata' )
455 'Translate:TranslatablePageView' =>
static function ( MediaWikiServices $services ):
TranslatablePageView {
457 $services->getConnectionProvider(),
458 $services->get(
'Translate:TranslatablePageStateStore' ),
461 $services->getMainConfig()
466 'Translate:TranslateSandbox' =>
static function ( MediaWikiServices $services ):
TranslateSandbox
469 $services->getUserFactory(),
470 $services->getConnectionProvider(),
471 $services->getPermissionManager(),
472 $services->getAuthManager(),
473 $services->getUserGroupManager(),
474 $services->getActorStore(),
475 $services->getUserOptionsManager(),
476 $services->getJobQueueGroup(),
477 $services->get(
'Translate:HookRunner' ),
479 TranslateSandbox::CONSTRUCTOR_OPTIONS,
480 $services->getMainConfig()
485 'Translate:TranslationStashReader' =>
static function ( MediaWikiServices $services ):
TranslationStashReader
490 'Translate:TranslationStatsDataProvider' =>
static function (
491 MediaWikiServices $services
496 $services->getMainConfig()
498 $services->getObjectFactory(),
499 $services->getConnectionProvider()
503 'Translate:TranslationUnitStoreFactory' =>
static function (
504 MediaWikiServices $services
509 'Translate:TranslatorActivity' =>
static function ( MediaWikiServices $services ):
TranslatorActivity {
511 $services->getMainConfig(),
512 $services->getDBLoadBalancer()
516 $services->getMainObjectStash(),
518 $services->getJobQueueGroup()
522 'Translate:TtmServerFactory' =>
static function ( MediaWikiServices $services ):
TtmServerFactory {
523 $config = $services->getMainConfig();
525 $default = $config->get(
'TranslateTranslationDefaultService' );
526 if ( $default ===
false ) {
530 return new TtmServerFactory( $config->get(
'TranslateTranslationServices' ), $default );
533 'Translate:WorkflowStatesMessageGroupLoader' =>
static function (
534 MediaWikiServices $services
539 $services->getMainConfig()
return[ 'Translate:AggregateGroupManager'=> static function(MediaWikiServices $services):AggregateGroupManager { return new AggregateGroupManager($services->getTitleFactory(), $services->get( 'Translate:MessageGroupMetadata'));}, '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(LogNames::GROUP_SYNCHRONIZATION), $services->get( 'Translate:MessageIndex'), $services->getTitleFactory(), $services->get( 'Translate:MessageGroupSubscription'), new ServiceOptions(ExternalMessageSourceStateImporter::CONSTRUCTOR_OPTIONS, $services->getMainConfig()));}, 'Translate:FileBasedMessageGroupFactory'=> static function(MediaWikiServices $services):FileBasedMessageGroupFactory { return new FileBasedMessageGroupFactory(new MessageGroupConfigurationParser(), $services->getContentLanguageCode() ->toString(), 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:MessageBundleDependencyPurger'=> static function(MediaWikiServices $services):MessageBundleDependencyPurger { return new MessageBundleDependencyPurger( $services->get( 'Translate:TranslatableBundleFactory'));}, '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->getConnectionProvider());}, 'Translate:MessageGroupReviewStore'=> static function(MediaWikiServices $services):MessageGroupReviewStore { return new MessageGroupReviewStore($services->getConnectionProvider(), $services->get( 'Translate:HookRunner'));}, 'Translate:MessageGroupStatsTableFactory'=> static function(MediaWikiServices $services):MessageGroupStatsTableFactory { return new MessageGroupStatsTableFactory($services->get( 'Translate:ProgressStatsTableFactory'), $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(LogNames::GROUP_SUBSCRIPTION), new ServiceOptions(MessageGroupSubscription::CONSTRUCTOR_OPTIONS, $services->getMainConfig()));}, 'Translate:MessageGroupSubscriptionHookHandler'=> static function(MediaWikiServices $services):?MessageGroupSubscriptionHookHandler { if(! $services->getExtensionRegistry() ->isLoaded( 'Echo')) { return null;} return new MessageGroupSubscriptionHookHandler($services->get( 'Translate:MessageGroupSubscription'), $services->getUserFactory());}, 'Translate:MessageGroupSubscriptionStore'=> static function(MediaWikiServices $services):MessageGroupSubscriptionStore { return new MessageGroupSubscriptionStore( $services->getConnectionProvider());}, '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(LogNames::MAIN), $services->getMainObjectStash(), $services->getConnectionProvider(), 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->getConnectionProvider(), $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->getConnectionProvider());}, '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->getConnectionProvider());}, '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(), $services->getFormatterFactory());}, '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->getConnectionProvider(), $services->getObjectCacheFactory(), $services->getMainConfig() ->get( 'TranslatePageMoveLimit'));}, 'Translate:TranslatableBundleStatusStore'=> static function(MediaWikiServices $services):TranslatableBundleStatusStore { return new TranslatableBundleStatusStore($services->getConnectionProvider() ->getPrimaryDatabase(), $services->getCollationFactory() ->makeCollation( 'uca-default-u-kn'), $services->getDBLoadBalancer() ->getMaintenanceConnectionRef(DB_PRIMARY));}, 'Translate:TranslatablePageMarker'=> static function(MediaWikiServices $services):TranslatablePageMarker { return new TranslatablePageMarker($services->getConnectionProvider(), $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'), $services->get( 'Translate:MessageGroupSubscription'), $services->getFormatterFactory(), $services->get( 'Translate:HookRunner'),);}, '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->getConnectionProvider(), $services->get( 'Translate:TranslatableBundleStatusStore'), $services->get( 'Translate:TranslatablePageParser'), $services->get( 'Translate:MessageGroupMetadata'));}, 'Translate:TranslatablePageView'=> static function(MediaWikiServices $services):TranslatablePageView { return new TranslatablePageView($services->getConnectionProvider(), $services->get( 'Translate:TranslatablePageStateStore'), new ServiceOptions(TranslatablePageView::SERVICE_OPTIONS, $services->getMainConfig()));}, 'Translate:TranslateSandbox'=> static function(MediaWikiServices $services):TranslateSandbox { return new TranslateSandbox($services->getUserFactory(), $services->getConnectionProvider(), $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 { return new TranslationStashStorage( $services->getConnectionProvider() ->getPrimaryDatabase());}, 'Translate:TranslationStatsDataProvider'=> static function(MediaWikiServices $services):TranslationStatsDataProvider { return new TranslationStatsDataProvider(new ServiceOptions(TranslationStatsDataProvider::CONSTRUCTOR_OPTIONS, $services->getMainConfig()), $services->getObjectFactory(), $services->getConnectionProvider());}, '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);}, 'Translate:WorkflowStatesMessageGroupLoader'=> static function(MediaWikiServices $services):WorkflowStatesMessageGroupLoader { return new WorkflowStatesMessageGroupLoader(new ServiceOptions(WorkflowStatesMessageGroupLoader::CONSTRUCTOR_OPTIONS, $services->getMainConfig()),);},]
@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.