diff options
Diffstat (limited to 'MLEB/Translate/src/ServiceWiring.php')
-rw-r--r-- | MLEB/Translate/src/ServiceWiring.php | 87 |
1 files changed, 76 insertions, 11 deletions
diff --git a/MLEB/Translate/src/ServiceWiring.php b/MLEB/Translate/src/ServiceWiring.php index 2e0f807b..a38ed81c 100644 --- a/MLEB/Translate/src/ServiceWiring.php +++ b/MLEB/Translate/src/ServiceWiring.php @@ -7,37 +7,102 @@ * @license GPL-2.0-or-later */ -use MediaWiki\Extensions\Translate\Statistics\TranslatorActivity; -use MediaWiki\Extensions\Translate\Statistics\TranslatorActivityQuery; -use MediaWiki\Extensions\Translate\Synchronization\GroupSynchronizationCache; -use MediaWiki\Extensions\Translate\Utilities\ParsingPlaceholderFactory; +use MediaWiki\Config\ServiceOptions; +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\Statistics\TranslationStatsDataProvider; +use MediaWiki\Extension\Translate\Statistics\TranslatorActivity; +use MediaWiki\Extension\Translate\Statistics\TranslatorActivityQuery; +use MediaWiki\Extension\Translate\Synchronization\GroupSynchronizationCache; +use MediaWiki\Extension\Translate\TranslatorSandbox\TranslationStashReader; +use MediaWiki\Extension\Translate\TranslatorSandbox\TranslationStashStorage; +use MediaWiki\Extension\Translate\TtmServer\TtmServerFactory; +use MediaWiki\Extension\Translate\Utilities\Json\JsonCodec; +use MediaWiki\Extension\Translate\Utilities\ParsingPlaceholderFactory; use MediaWiki\MediaWikiServices; +/** @phpcs-require-sorted-array */ return [ - 'Translate:GroupSynchronizationCache' => function (): GroupSynchronizationCache { - return new GroupSynchronizationCache( ObjectCache::getInstance( CACHE_DB ) ); + 'Translate:GroupSynchronizationCache' => function ( + MediaWikiServices $services + ): GroupSynchronizationCache { + return new GroupSynchronizationCache( $services->get( 'Translate:PersistentCache' ) ); + }, + + 'Translate:JsonCodec' => function (): JsonCodec { + return new JsonCodec(); }, 'Translate:ParsingPlaceholderFactory' => function (): ParsingPlaceholderFactory { return new ParsingPlaceholderFactory(); }, + 'Translate:PersistentCache' => function ( MediaWikiServices $services ): PersistentCache { + return new PersistentDatabaseCache( + $services->getDBLoadBalancer(), + // TODO: Since we have a similar interface, see if we can load the JsonCodec + // from the core here if available + $services->get( 'Translate:JsonCodec' ) + ); + }, + + 'Translate:TranslatablePageMover' => function ( MediaWikiServices $services ): TranslatablePageMover + { + return new TranslatablePageMover( + $services->getMovePageFactory(), + JobQueueGroup::singleton(), + $services->getMainConfig()->get( 'TranslatePageMoveLimit' ) + ); + }, + + 'Translate:TranslatablePageParser' => function ( MediaWikiServices $services ): TranslatablePageParser + { + return new TranslatablePageParser( + $services->get( 'Translate:ParsingPlaceholderFactory' ) + ); + }, + + 'Translate:TranslationStashReader' => function ( MediaWikiServices $services ): TranslationStashReader + { + $db = $services->getDBLoadBalancer()->getConnectionRef( DB_REPLICA ); + return new TranslationStashStorage( $db ); + }, + + 'Translate:TranslationStatsDataProvider' => function ( MediaWikiServices $services ): TranslationStatsDataProvider + { + return new TranslationStatsDataProvider( + new ServiceOptions( + TranslationStatsDataProvider::CONSTRUCTOR_OPTIONS, + $services->getMainConfig() + ), + $services->getObjectFactory() + ); + }, + 'Translate:TranslatorActivity' => function ( MediaWikiServices $services ): TranslatorActivity { $query = new TranslatorActivityQuery( $services->getMainConfig(), $services->getDBLoadBalancer() ); - $languageValidator = function ( string $language ): bool { - return Language::isKnownLanguageTag( $language ); - }; - return new TranslatorActivity( $services->getMainObjectStash(), $query, JobQueueGroup::singleton(), - $languageValidator + $services->getLanguageNameUtils() ); }, + 'Translate:TtmServerFactory' => function ( MediaWikiServices $services ): TtmServerFactory { + $config = $services->getMainConfig(); + + $default = $config->get( 'TranslateTranslationDefaultService' ); + if ( $default === false ) { + $default = null; + } + + return new TtmServerFactory( $config->get( 'TranslateTranslationServices' ), $default ); + } ]; |