diff options
Diffstat (limited to 'MLEB/Translate/src/ServiceWiring.php')
-rw-r--r-- | MLEB/Translate/src/ServiceWiring.php | 66 |
1 files changed, 55 insertions, 11 deletions
diff --git a/MLEB/Translate/src/ServiceWiring.php b/MLEB/Translate/src/ServiceWiring.php index a38ed81c..44bbb4f0 100644 --- a/MLEB/Translate/src/ServiceWiring.php +++ b/MLEB/Translate/src/ServiceWiring.php @@ -12,34 +12,70 @@ use MediaWiki\Extension\Translate\Cache\PersistentCache; use MediaWiki\Extension\Translate\Cache\PersistentDatabaseCache; use MediaWiki\Extension\Translate\PageTranslation\TranslatablePageMover; use MediaWiki\Extension\Translate\PageTranslation\TranslatablePageParser; +use MediaWiki\Extension\Translate\PageTranslation\TranslationUnitStoreFactory; use MediaWiki\Extension\Translate\Statistics\TranslationStatsDataProvider; use MediaWiki\Extension\Translate\Statistics\TranslatorActivity; use MediaWiki\Extension\Translate\Statistics\TranslatorActivityQuery; +use MediaWiki\Extension\Translate\Synchronization\ExternalMessageSourceStateImporter; use MediaWiki\Extension\Translate\Synchronization\GroupSynchronizationCache; +use MediaWiki\Extension\Translate\TranslatorInterface\EntitySearch; use MediaWiki\Extension\Translate\TranslatorSandbox\TranslationStashReader; use MediaWiki\Extension\Translate\TranslatorSandbox\TranslationStashStorage; use MediaWiki\Extension\Translate\TtmServer\TtmServerFactory; +use MediaWiki\Extension\Translate\Utilities\ConfigHelper; use MediaWiki\Extension\Translate\Utilities\Json\JsonCodec; use MediaWiki\Extension\Translate\Utilities\ParsingPlaceholderFactory; +use MediaWiki\Logger\LoggerFactory; use MediaWiki\MediaWikiServices; /** @phpcs-require-sorted-array */ return [ - 'Translate:GroupSynchronizationCache' => function ( + 'Translate:ConfigHelper' => static function (): ConfigHelper { + return new ConfigHelper(); + }, + + 'Translate:EntitySearch' => static function ( MediaWikiServices $services ): EntitySearch { + // BC for MW <= 1.36 + if ( method_exists( $services, 'getCollationFactory' ) ) { + $collation = $services->getCollationFactory()->makeCollation( 'uca-default-u-kn' ); + } else { + $collation = Collation::factory( 'uca-default-u-kn' ); + } + + return new EntitySearch( + $services->getMainWANObjectCache(), + $collation, + MessageGroups::singleton() + ); + }, + + 'Translate:ExternalMessageSourceStateImporter' => static function ( + MediaWikiServices $services + ): ExternalMessageSourceStateImporter { + return new ExternalMessageSourceStateImporter( + $services->getMainConfig(), + $services->get( 'Translate:GroupSynchronizationCache' ), + JobQueueGroup::singleton(), + LoggerFactory::getInstance( 'Translate.GroupSynchronization' ), + MessageIndex::singleton() + ); + }, + + 'Translate:GroupSynchronizationCache' => static function ( MediaWikiServices $services ): GroupSynchronizationCache { return new GroupSynchronizationCache( $services->get( 'Translate:PersistentCache' ) ); }, - 'Translate:JsonCodec' => function (): JsonCodec { + 'Translate:JsonCodec' => static function (): JsonCodec { return new JsonCodec(); }, - 'Translate:ParsingPlaceholderFactory' => function (): ParsingPlaceholderFactory { + 'Translate:ParsingPlaceholderFactory' => static function (): ParsingPlaceholderFactory { return new ParsingPlaceholderFactory(); }, - 'Translate:PersistentCache' => function ( MediaWikiServices $services ): PersistentCache { + 'Translate:PersistentCache' => static function ( MediaWikiServices $services ): PersistentCache { return new PersistentDatabaseCache( $services->getDBLoadBalancer(), // TODO: Since we have a similar interface, see if we can load the JsonCodec @@ -48,30 +84,32 @@ return [ ); }, - 'Translate:TranslatablePageMover' => function ( MediaWikiServices $services ): TranslatablePageMover + 'Translate:TranslatablePageMover' => static function ( MediaWikiServices $services ): TranslatablePageMover { return new TranslatablePageMover( $services->getMovePageFactory(), JobQueueGroup::singleton(), + $services->getLinkBatchFactory(), $services->getMainConfig()->get( 'TranslatePageMoveLimit' ) ); }, - 'Translate:TranslatablePageParser' => function ( MediaWikiServices $services ): TranslatablePageParser + 'Translate:TranslatablePageParser' => static function ( MediaWikiServices $services ): TranslatablePageParser { return new TranslatablePageParser( $services->get( 'Translate:ParsingPlaceholderFactory' ) ); }, - 'Translate:TranslationStashReader' => function ( MediaWikiServices $services ): TranslationStashReader + 'Translate:TranslationStashReader' => static function ( MediaWikiServices $services ): TranslationStashReader { $db = $services->getDBLoadBalancer()->getConnectionRef( DB_REPLICA ); return new TranslationStashStorage( $db ); }, - 'Translate:TranslationStatsDataProvider' => function ( MediaWikiServices $services ): TranslationStatsDataProvider - { + 'Translate:TranslationStatsDataProvider' => static function ( + MediaWikiServices $services + ): TranslationStatsDataProvider { return new TranslationStatsDataProvider( new ServiceOptions( TranslationStatsDataProvider::CONSTRUCTOR_OPTIONS, @@ -81,7 +119,13 @@ return [ ); }, - 'Translate:TranslatorActivity' => function ( MediaWikiServices $services ): TranslatorActivity { + '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() @@ -95,7 +139,7 @@ return [ ); }, - 'Translate:TtmServerFactory' => function ( MediaWikiServices $services ): TtmServerFactory { + 'Translate:TtmServerFactory' => static function ( MediaWikiServices $services ): TtmServerFactory { $config = $services->getMainConfig(); $default = $config->get( 'TranslateTranslationDefaultService' ); |