Translate extension for MediaWiki
 
Loading...
Searching...
No Matches
ServiceWiring.php
Go to the documentation of this file.
1<?php
10use MediaWiki\Config\ServiceOptions;
67use MediaWiki\Logger\LoggerFactory;
68use MediaWiki\MediaWikiServices;
69
71return [
72 'Translate:AggregateGroupManager' => static function (
73 MediaWikiServices $services
75 return new AggregateGroupManager( $services->getTitleFactory() );
76 },
77
78 'Translate:AggregateGroupMessageGroupFactory' => static function (
79 MediaWikiServices $services
82 $services->get( 'Translate:MessageGroupMetadata' )
83 );
84 },
85
86 'Translate:ConfigHelper' => static function (): ConfigHelper {
87 return new ConfigHelper();
88 },
89
90 'Translate:CsvTranslationImporter' => static function ( MediaWikiServices $services ): CsvTranslationImporter {
91 return new CsvTranslationImporter( $services->getWikiPageFactory() );
92 },
93
94 'Translate:EntitySearch' => static function ( MediaWikiServices $services ): EntitySearch {
96 $services->getMainWANObjectCache(),
97 $services->getCollationFactory()->makeCollation( 'uca-default-u-kn' ),
98 MessageGroups::singleton(),
99 $services->getNamespaceInfo(),
100 $services->get( 'Translate:MessageIndex' ),
101 $services->getTitleParser(),
102 $services->getTitleFormatter()
103 );
104 },
105
106 'Translate:ExternalMessageSourceStateComparator' => static function (
107 MediaWikiServices $services
111 $services->getRevisionLookup(),
112 $services->getPageStore()
113 );
114 },
115
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(),
125 new ServiceOptions(
126 ExternalMessageSourceStateImporter::CONSTRUCTOR_OPTIONS,
127 $services->getMainConfig()
128 )
129 );
130 },
131
132 'Translate:FileBasedMessageGroupFactory' => static function (
133 MediaWikiServices $services
137 new ServiceOptions(
138 FileBasedMessageGroupFactory::SERVICE_OPTIONS,
139 $services->getMainConfig()
140 ),
141 );
142 },
143
144 'Translate:FileFormatFactory' => static function ( MediaWikiServices $services ): FileFormatFactory {
145 return new FileFormatFactory( $services->getObjectFactory() );
146 },
147
148 'Translate:GroupSynchronizationCache' => static function (
149 MediaWikiServices $services
151 return new GroupSynchronizationCache( $services->get( 'Translate:PersistentCache' ) );
152 },
153
154 'Translate:HookDefinedMessageGroupFactory' => static function (
155 MediaWikiServices $services
157 return new HookDefinedMessageGroupFactory( $services->get( 'Translate:HookRunner' ) );
158 },
159
160 'Translate:HookRunner' => static function (
161 MediaWikiServices $services
162 ): HookRunner {
163 return new HookRunner( $services->getHookContainer() );
164 },
165
166 'Translate:MessageBundleMessageGroupFactory' => static function (
167 MediaWikiServices $services
170 $services->get( 'Translate:MessageGroupMetadata' ),
171 new ServiceOptions(
172 MessageBundleMessageGroupFactory::SERVICE_OPTIONS,
173 $services->getMainConfig()
174 ),
175 );
176 },
177
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' )
185 );
186 },
187
188 'Translate:MessageBundleTranslationLoader' => static function (
189 MediaWikiServices $services
191 return new MessageBundleTranslationLoader( $services->getLanguageFallback() );
192 },
193
194 'Translate:MessageGroupMetadata' => static function ( MediaWikiServices $services ): MessageGroupMetadata {
195 return new MessageGroupMetadata( $services->getDBLoadBalancer() );
196 },
197
198 'Translate:MessageGroupReviewStore' => static function ( MediaWikiServices $services ): MessageGroupReviewStore {
200 $services->getDBLoadBalancer(),
201 $services->get( 'Translate:HookRunner' )
202 );
203 },
204
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
215 );
216 },
217
218 'Translate:MessageGroupSubscription' => static function (
219 MediaWikiServices $services
222 $services->get( 'Translate:MessageGroupSubscriptionStore' ),
223 $services->getJobQueueGroup(),
224 $services->getUserIdentityLookup(),
225 LoggerFactory::getInstance( 'Translate.MessageGroupSubscription' ),
226 new ServiceOptions(
227 MessageGroupSubscription::CONSTRUCTOR_OPTIONS,
228 $services->getMainConfig()
229 )
230 );
231 },
232
233 'Translate:MessageGroupSubscriptionHookHandler' => static function (
234 MediaWikiServices $services
237 $services->get( 'Translate:MessageGroupSubscription' ),
238 $services->getUserFactory()
239 );
240 },
241
242 'Translate:MessageGroupSubscriptionStore' => static function (
243 MediaWikiServices $services
245 return new MessageGroupSubscriptionStore( $services->getDBLoadBalancerFactory() );
246 },
247
248 'Translate:MessageIndex' => static function ( MediaWikiServices $services ): MessageIndex {
249 $params = (array)$services->getMainConfig()->get( 'TranslateMessageIndex' );
250 $class = array_shift( $params );
251
252 $implementationMap = [
253 // Aliases for BC
254 'HashMessageIndex' => HashMessageIndex::class,
255 'CDBMessageIndex' => CDBMessageIndex::class,
256 'DatabaseMessageIndex' => DatabaseMessageIndex::class,
257 // Recommended values
258 'hash' => HashMessageIndex::class,
259 'cdb' => CDBMessageIndex::class,
260 'database' => DatabaseMessageIndex::class,
261 ];
262
264 $messageIndexStoreClass = $implementationMap[$class] ?? $implementationMap['database'];
265 return new MessageIndex(
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() ),
275 );
276 },
277
278 'Translate:MessagePrefixStats' => static function ( MediaWikiServices $services ): MessagePrefixStats {
279 return new MessagePrefixStats( $services->getTitleParser() );
280 },
281
282 'Translate:ParsingPlaceholderFactory' => static function (): ParsingPlaceholderFactory {
284 },
285
286 'Translate:PersistentCache' => static function ( MediaWikiServices $services ): PersistentCache {
288 $services->getDBLoadBalancer(),
289 $services->getJsonCodec()
290 );
291 },
292
293 'Translate:ProgressStatsTableFactory' => static function ( MediaWikiServices $services ): ProgressStatsTableFactory
294 {
295 return new ProgressStatsTableFactory(
296 $services->getLinkRenderer(),
297 $services->get( 'Translate:ConfigHelper' ),
298 $services->get( 'Translate:MessageGroupMetadata' )
299 );
300 },
301
302 'Translate:RevTagStore' => static function ( MediaWikiServices $services ): RevTagStore {
303 return new RevTagStore( $services->getDBLoadBalancer() );
304 },
305
306 'Translate:SubpageListBuilder' => static function ( MediaWikiServices $services ): SubpageListBuilder
307 {
308 return new SubpageListBuilder(
309 $services->get( 'Translate:TranslatableBundleFactory' ),
310 $services->getLinkBatchFactory()
311 );
312 },
313
314 'Translate:TranslatableBundleDeleter' => static function ( MediaWikiServices $services ): TranslatableBundleDeleter
315 {
316 return new TranslatableBundleDeleter(
317 $services->getMainObjectStash(),
318 $services->getJobQueueGroup(),
319 $services->get( 'Translate:SubpageListBuilder' ),
320 $services->get( 'Translate:TranslatableBundleFactory' )
321 );
322 },
323
324 'Translate:TranslatableBundleExporter' => static function (
325 MediaWikiServices $services
328 $services->get( 'Translate:SubpageListBuilder' ),
329 $services->getWikiExporterFactory(),
330 $services->getDBLoadBalancer()
331 );
332 },
333
334 'Translate:TranslatableBundleFactory' => static function ( MediaWikiServices $services ): TranslatableBundleFactory
335 {
336 return new TranslatableBundleFactory(
337 $services->get( 'Translate:TranslatablePageStore' ),
338 $services->get( 'Translate:MessageBundleStore' )
339 );
340 },
341
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()
351 );
352 },
353
354 'Translate:TranslatableBundleMover' => static function ( MediaWikiServices $services ): TranslatableBundleMover
355 {
356 return new 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' )
364 );
365 },
366
367 'Translate:TranslatableBundleStatusStore' =>
368 static function ( MediaWikiServices $services ): TranslatableBundleStatusStore {
370 $services->getDBLoadBalancer()->getConnection( DB_PRIMARY ),
371 $services->getCollationFactory()->makeCollation( 'uca-default-u-kn' ),
372 $services->getDBLoadBalancer()->getMaintenanceConnectionRef( DB_PRIMARY )
373 );
374 },
375
376 'Translate:TranslatablePageMarker' => static function ( MediaWikiServices $services ): TranslatablePageMarker {
378 $services->getDBLoadBalancer(),
379 $services->getJobQueueGroup(),
380 $services->getLinkRenderer(),
381 MessageGroups::singleton(),
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' )
392 );
393 },
394
395 'Translate:TranslatablePageMessageGroupFactory' => static function (
396 MediaWikiServices $services
399 new ServiceOptions(
401 $services->getMainConfig()
402 ),
403 );
404 },
405
406 'Translate:TranslatablePageParser' => static function ( MediaWikiServices $services ): TranslatablePageParser
407 {
408 return new TranslatablePageParser(
409 $services->get( 'Translate:ParsingPlaceholderFactory' )
410 );
411 },
412
413 'Translate:TranslatablePageStateStore' => static function (
414 MediaWikiServices $services
417 $services->get( 'Translate:PersistentCache' ),
418 $services->getPageStore()
419 );
420 },
421
422 'Translate:TranslatablePageStore' => static function ( MediaWikiServices $services ): TranslatablePageStore
423 {
424 return new 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' )
432 );
433 },
434
435 'Translate:TranslatablePageView' => static function ( MediaWikiServices $services ): TranslatablePageView {
437 $services->getDBLoadBalancerFactory(),
438 $services->get( 'Translate:TranslatablePageStateStore' ),
439 new ServiceOptions(
440 TranslatablePageView::SERVICE_OPTIONS,
441 $services->getMainConfig()
442 )
443 );
444 },
445
446 'Translate:TranslateSandbox' => static function ( MediaWikiServices $services ): TranslateSandbox
447 {
448 return new 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' ),
458 new ServiceOptions(
459 TranslateSandbox::CONSTRUCTOR_OPTIONS,
460 $services->getMainConfig()
461 )
462 );
463 },
464
465 'Translate:TranslationStashReader' => static function ( MediaWikiServices $services ): TranslationStashReader
466 {
467 $db = $services->getDBLoadBalancer()->getConnection( DB_REPLICA );
468 return new TranslationStashStorage( $db );
469 },
470
471 'Translate:TranslationStatsDataProvider' => static function (
472 MediaWikiServices $services
475 new ServiceOptions(
476 TranslationStatsDataProvider::CONSTRUCTOR_OPTIONS,
477 $services->getMainConfig()
478 ),
479 $services->getObjectFactory(),
480 $services->getDBLoadBalancer()
481 );
482 },
483
484 'Translate:TranslationUnitStoreFactory' => static function (
485 MediaWikiServices $services
487 return new TranslationUnitStoreFactory( $services->getDBLoadBalancer() );
488 },
489
490 'Translate:TranslatorActivity' => static function ( MediaWikiServices $services ): TranslatorActivity {
491 $query = new TranslatorActivityQuery(
492 $services->getMainConfig(),
493 $services->getDBLoadBalancer()
494 );
495
496 return new TranslatorActivity(
497 $services->getMainObjectStash(),
498 $query,
499 $services->getJobQueueGroup()
500 );
501 },
502
503 'Translate:TtmServerFactory' => static function ( MediaWikiServices $services ): TtmServerFactory {
504 $config = $services->getMainConfig();
505
506 $default = $config->get( 'TranslateTranslationDefaultService' );
507 if ( $default === false ) {
508 $default = null;
509 }
510
511 return new TtmServerFactory( $config->get( 'TranslateTranslationServices' ), $default );
512 }
513];
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
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.
Contains logic to store, validate, fetch aggregate groups created via Special:AggregateGroups.
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.