Translate extension for MediaWiki
 
Loading...
Searching...
No Matches
ServiceWiring.php
Go to the documentation of this file.
1<?php
10use MediaWiki\Config\ServiceOptions;
70use MediaWiki\Logger\LoggerFactory;
71use MediaWiki\MediaWikiServices;
72
74return [
75 'Translate:AggregateGroupManager' => static function (
76 MediaWikiServices $services
79 $services->getTitleFactory(),
80 $services->get( 'Translate:MessageGroupMetadata' )
81 );
82 },
83
84 'Translate:AggregateGroupMessageGroupFactory' => static function (
85 MediaWikiServices $services
88 $services->get( 'Translate:MessageGroupMetadata' )
89 );
90 },
91
92 'Translate:ConfigHelper' => static function (): ConfigHelper {
93 return new ConfigHelper();
94 },
95
96 'Translate:CsvTranslationImporter' => static function ( MediaWikiServices $services ): CsvTranslationImporter {
97 return new CsvTranslationImporter( $services->getWikiPageFactory() );
98 },
99
100 'Translate:EntitySearch' => static function ( MediaWikiServices $services ): EntitySearch {
102 $services->getMainWANObjectCache(),
103 $services->getCollationFactory()->makeCollation( 'uca-default-u-kn' ),
104 MessageGroups::singleton(),
105 $services->getNamespaceInfo(),
106 $services->get( 'Translate:MessageIndex' ),
107 $services->getTitleParser(),
108 $services->getTitleFormatter()
109 );
110 },
111
112 'Translate:ExternalMessageSourceStateComparator' => static function (
113 MediaWikiServices $services
117 $services->getRevisionLookup(),
118 $services->getPageStore()
119 );
120 },
121
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' ),
132 new ServiceOptions(
133 ExternalMessageSourceStateImporter::CONSTRUCTOR_OPTIONS,
134 $services->getMainConfig()
135 )
136 );
137 },
138
139 'Translate:FileBasedMessageGroupFactory' => static function (
140 MediaWikiServices $services
144 $services->getContentLanguageCode()->toString(),
145 new ServiceOptions(
146 FileBasedMessageGroupFactory::SERVICE_OPTIONS,
147 $services->getMainConfig()
148 ),
149 );
150 },
151
152 'Translate:FileFormatFactory' => static function ( MediaWikiServices $services ): FileFormatFactory {
153 return new FileFormatFactory( $services->getObjectFactory() );
154 },
155
156 'Translate:GroupSynchronizationCache' => static function (
157 MediaWikiServices $services
159 return new GroupSynchronizationCache( $services->get( 'Translate:PersistentCache' ) );
160 },
161
162 'Translate:HookDefinedMessageGroupFactory' => static function (
163 MediaWikiServices $services
165 return new HookDefinedMessageGroupFactory( $services->get( 'Translate:HookRunner' ) );
166 },
167
168 'Translate:HookRunner' => static function (
169 MediaWikiServices $services
170 ): HookRunner {
171 return new HookRunner( $services->getHookContainer() );
172 },
173
174 'Translate:MessageBundleDependencyPurger' => static function (
175 MediaWikiServices $services
177 return new MessageBundleDependencyPurger( $services->get( 'Translate:TranslatableBundleFactory' ) );
178 },
179
180 'Translate:MessageBundleMessageGroupFactory' => static function (
181 MediaWikiServices $services
184 $services->get( 'Translate:MessageGroupMetadata' ),
185 new ServiceOptions(
186 MessageBundleMessageGroupFactory::SERVICE_OPTIONS,
187 $services->getMainConfig()
188 ),
189 );
190 },
191
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' )
199 );
200 },
201
202 'Translate:MessageBundleTranslationLoader' => static function (
203 MediaWikiServices $services
205 return new MessageBundleTranslationLoader( $services->getLanguageFallback() );
206 },
207
208 'Translate:MessageGroupMetadata' => static function ( MediaWikiServices $services ): MessageGroupMetadata {
209 return new MessageGroupMetadata( $services->getConnectionProvider() );
210 },
211
212 'Translate:MessageGroupReviewStore' => static function ( MediaWikiServices $services ): MessageGroupReviewStore {
214 $services->getConnectionProvider(),
215 $services->get( 'Translate:HookRunner' )
216 );
217 },
218
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
228 );
229 },
230
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 ),
239 new ServiceOptions(
240 MessageGroupSubscription::CONSTRUCTOR_OPTIONS,
241 $services->getMainConfig()
242 )
243 );
244 },
245
246 'Translate:MessageGroupSubscriptionHookHandler' => static function (
247 MediaWikiServices $services
249 if ( !$services->getExtensionRegistry()->isLoaded( 'Echo' ) ) {
250 return null;
251 }
253 $services->get( 'Translate:MessageGroupSubscription' ),
254 $services->getUserFactory()
255 );
256 },
257
258 'Translate:MessageGroupSubscriptionStore' => static function (
259 MediaWikiServices $services
261 return new MessageGroupSubscriptionStore( $services->getConnectionProvider() );
262 },
263
264 'Translate:MessageIndex' => static function ( MediaWikiServices $services ): MessageIndex {
265 $params = (array)$services->getMainConfig()->get( 'TranslateMessageIndex' );
266 $class = array_shift( $params );
267
268 $implementationMap = [
269 // Aliases for BC
270 'HashMessageIndex' => HashMessageIndex::class,
271 'CDBMessageIndex' => CDBMessageIndex::class,
272 'DatabaseMessageIndex' => DatabaseMessageIndex::class,
273 // Recommended values
274 'hash' => HashMessageIndex::class,
275 'cdb' => CDBMessageIndex::class,
276 'database' => DatabaseMessageIndex::class,
277 ];
278
280 $messageIndexStoreClass = $implementationMap[$class] ?? $implementationMap['database'];
281 return new MessageIndex(
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() ),
290 );
291 },
292
293 'Translate:MessagePrefixStats' => static function ( MediaWikiServices $services ): MessagePrefixStats {
294 return new MessagePrefixStats( $services->getTitleParser() );
295 },
296
297 'Translate:ParsingPlaceholderFactory' => static function (): ParsingPlaceholderFactory {
299 },
300
301 'Translate:PersistentCache' => static function ( MediaWikiServices $services ): PersistentCache {
303 $services->getConnectionProvider(),
304 $services->getJsonCodec()
305 );
306 },
307
308 'Translate:ProgressStatsTableFactory' => static function ( MediaWikiServices $services ): ProgressStatsTableFactory
309 {
310 return new ProgressStatsTableFactory(
311 $services->getLinkRenderer(),
312 $services->get( 'Translate:ConfigHelper' ),
313 $services->get( 'Translate:MessageGroupMetadata' )
314 );
315 },
316
317 'Translate:RevTagStore' => static function ( MediaWikiServices $services ): RevTagStore {
318 return new RevTagStore( $services->getConnectionProvider() );
319 },
320
321 'Translate:SubpageListBuilder' => static function ( MediaWikiServices $services ): SubpageListBuilder
322 {
323 return new SubpageListBuilder(
324 $services->get( 'Translate:TranslatableBundleFactory' ),
325 $services->getLinkBatchFactory()
326 );
327 },
328
329 'Translate:TranslatableBundleDeleter' => static function ( MediaWikiServices $services ): TranslatableBundleDeleter
330 {
331 return new TranslatableBundleDeleter(
332 $services->getMainObjectStash(),
333 $services->getJobQueueGroup(),
334 $services->get( 'Translate:SubpageListBuilder' ),
335 $services->get( 'Translate:TranslatableBundleFactory' )
336 );
337 },
338
339 'Translate:TranslatableBundleExporter' => static function (
340 MediaWikiServices $services
343 $services->get( 'Translate:SubpageListBuilder' ),
344 $services->getWikiExporterFactory(),
345 $services->getConnectionProvider()
346 );
347 },
348
349 'Translate:TranslatableBundleFactory' => static function ( MediaWikiServices $services ): TranslatableBundleFactory
350 {
351 return new TranslatableBundleFactory(
352 $services->get( 'Translate:TranslatablePageStore' ),
353 $services->get( 'Translate:MessageBundleStore' )
354 );
355 },
356
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()
367 );
368 },
369
370 'Translate:TranslatableBundleMover' => static function ( MediaWikiServices $services ): TranslatableBundleMover
371 {
372 return new 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' )
381 );
382 },
383
384 'Translate:TranslatableBundleStatusStore' =>
385 static function ( MediaWikiServices $services ): TranslatableBundleStatusStore {
387 $services->getConnectionProvider()->getPrimaryDatabase(),
388 $services->getCollationFactory()->makeCollation( 'uca-default-u-kn' ),
389 $services->getDBLoadBalancer()->getMaintenanceConnectionRef( DB_PRIMARY )
390 );
391 },
392
393 'Translate:TranslatablePageMarker' => static function ( MediaWikiServices $services ): TranslatablePageMarker {
395 $services->getConnectionProvider(),
396 $services->getJobQueueGroup(),
397 $services->getLinkRenderer(),
398 MessageGroups::singleton(),
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' ),
412 );
413 },
414
415 'Translate:TranslatablePageMessageGroupFactory' => static function (
416 MediaWikiServices $services
419 new ServiceOptions(
421 $services->getMainConfig()
422 ),
423 );
424 },
425
426 'Translate:TranslatablePageParser' => static function ( MediaWikiServices $services ): TranslatablePageParser
427 {
428 return new TranslatablePageParser(
429 $services->get( 'Translate:ParsingPlaceholderFactory' )
430 );
431 },
432
433 'Translate:TranslatablePageStateStore' => static function (
434 MediaWikiServices $services
437 $services->get( 'Translate:PersistentCache' ),
438 $services->getPageStore()
439 );
440 },
441
442 'Translate:TranslatablePageStore' => static function ( MediaWikiServices $services ): TranslatablePageStore
443 {
444 return new 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' )
452 );
453 },
454
455 'Translate:TranslatablePageView' => static function ( MediaWikiServices $services ): TranslatablePageView {
457 $services->getConnectionProvider(),
458 $services->get( 'Translate:TranslatablePageStateStore' ),
459 new ServiceOptions(
460 TranslatablePageView::SERVICE_OPTIONS,
461 $services->getMainConfig()
462 )
463 );
464 },
465
466 'Translate:TranslateSandbox' => static function ( MediaWikiServices $services ): TranslateSandbox
467 {
468 return new 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' ),
478 new ServiceOptions(
479 TranslateSandbox::CONSTRUCTOR_OPTIONS,
480 $services->getMainConfig()
481 )
482 );
483 },
484
485 'Translate:TranslationStashReader' => static function ( MediaWikiServices $services ): TranslationStashReader
486 {
487 return new TranslationStashStorage( $services->getConnectionProvider()->getPrimaryDatabase() );
488 },
489
490 'Translate:TranslationStatsDataProvider' => static function (
491 MediaWikiServices $services
494 new ServiceOptions(
495 TranslationStatsDataProvider::CONSTRUCTOR_OPTIONS,
496 $services->getMainConfig()
497 ),
498 $services->getObjectFactory(),
499 $services->getConnectionProvider()
500 );
501 },
502
503 'Translate:TranslationUnitStoreFactory' => static function (
504 MediaWikiServices $services
506 return new TranslationUnitStoreFactory( $services->getDBLoadBalancer() );
507 },
508
509 'Translate:TranslatorActivity' => static function ( MediaWikiServices $services ): TranslatorActivity {
510 $query = new TranslatorActivityQuery(
511 $services->getMainConfig(),
512 $services->getDBLoadBalancer()
513 );
514
515 return new TranslatorActivity(
516 $services->getMainObjectStash(),
517 $query,
518 $services->getJobQueueGroup()
519 );
520 },
521
522 'Translate:TtmServerFactory' => static function ( MediaWikiServices $services ): TtmServerFactory {
523 $config = $services->getMainConfig();
524
525 $default = $config->get( 'TranslateTranslationDefaultService' );
526 if ( $default === false ) {
527 $default = null;
528 }
529
530 return new TtmServerFactory( $config->get( 'TranslateTranslationServices' ), $default );
531 },
532
533 'Translate:WorkflowStatesMessageGroupLoader' => static function (
534 MediaWikiServices $services
537 new ServiceOptions(
538 WorkflowStatesMessageGroupLoader::CONSTRUCTOR_OPTIONS,
539 $services->getMainConfig()
540 ),
541 );
542 },
543];
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
A persistent cache implementation using the database.
A factory class used to instantiate instances of pre-provided File formats.
Hook runner for the Translate extension.
Constants for log channel names used in this extension.
Definition LogNames.php:13
Contains logic to manage aggregate groups and their subgroups.
Provides methods to get and change the state of a message group.
Store service for looking up and storing user subscriptions to message group.
Manage user subscriptions to message groups and trigger notifications.
Factory class for accessing message groups individually by id or all of them as a list.
Class to manage revision tags for translatable bundles.
Generates list of subpages for the translatable bundle that can be moved or deleted.
Create instances of various classes based on the type of TranslatableBundle.
Store service for looking up and storing status for translatable bundle status.
Creates a database of keys in all groups, so that namespace and key can be used to get the groups the...
Offers functionality for reading and updating Translate group related metadata.
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.
Generates ParserOutput from text or removes all tags from a text.
Logic and code to generate various aspects related to how translatable pages are displayed.
This class abstracts MessagePrefix statistics calculation and storing.
Service for searching message groups and message keys.
Utility class for the sandbox feature of Translate.
A helper class added to work with configuration values of the Translate Extension.
Create unique placeholders that can be used when parsing (wiki)text.
A simple string comparator, that compares two strings and determines if they are an exact match.
Defines what method should be provided by a class implementing a persistent cache.