Translate extension for MediaWiki
 
Loading...
Searching...
No Matches
ServiceWiring.php
Go to the documentation of this file.
1<?php
10use MediaWiki\Config\ServiceOptions;
39use MediaWiki\Logger\LoggerFactory;
40use MediaWiki\MediaWikiServices;
41
43return [
44 'Translate:ConfigHelper' => static function (): ConfigHelper {
45 return new ConfigHelper();
46 },
47
48 'Translate:CsvTranslationImporter' => static function ( MediaWikiServices $services ): CsvTranslationImporter {
49 return new CsvTranslationImporter( $services->getWikiPageFactory() );
50 },
51
52 'Translate:EntitySearch' => static function ( MediaWikiServices $services ): EntitySearch {
54 $services->getMainWANObjectCache(),
55 $services->getCollationFactory()->makeCollation( 'uca-default-u-kn' ),
56 MessageGroups::singleton(),
57 $services->getNamespaceInfo(),
58 $services->get( 'Translate:MessageIndex' ),
59 $services->getTitleParser(),
60 $services->getTitleFormatter()
61 );
62 },
63
64 'Translate:ExternalMessageSourceStateImporter' => static function (
65 MediaWikiServices $services
68 $services->getMainConfig(),
69 $services->get( 'Translate:GroupSynchronizationCache' ),
70 $services->getJobQueueGroup(),
71 LoggerFactory::getInstance( 'Translate.GroupSynchronization' ),
72 $services->get( 'Translate:MessageIndex' )
73 );
74 },
75
76 'Translate:GroupSynchronizationCache' => static function (
77 MediaWikiServices $services
79 return new GroupSynchronizationCache( $services->get( 'Translate:PersistentCache' ) );
80 },
81
82 'Translate:MessageBundleStore' => static function ( MediaWikiServices $services ): MessageBundleStore {
84 new RevTagStore(),
85 $services->getJobQueueGroup(),
86 $services->getLanguageNameUtils(),
87 $services->get( 'Translate:MessageIndex' )
88 );
89 },
90
91 'Translate:MessageGroupReview' => static function ( MediaWikiServices $services ): MessageGroupReview {
93 $services->getDBLoadBalancer(),
94 $services->getHookContainer()
95 );
96 },
97
98 'Translate:MessageGroupStatsTableFactory' => static function (
99 MediaWikiServices $services
102 $services->get( 'Translate:ProgressStatsTableFactory' ),
103 $services->getDBLoadBalancer(),
104 $services->getLinkRenderer(),
105 $services->getMainConfig()->get( 'TranslateWorkflowStates' ) !== false
106 );
107 },
108
109 'Translate:MessageIndex' => static function ( MediaWikiServices $services ): MessageIndex {
110 $params = $services->getMainConfig()->get( 'TranslateMessageIndex' );
111 if ( is_string( $params ) ) {
112 $params = (array)$params;
113 }
114
115 $class = array_shift( $params );
116 // @phan-suppress-next-line PhanTypeExpectedObjectOrClassName
117 return new $class( $params );
118 },
119
120 'Translate:MessagePrefixStats' => static function ( MediaWikiServices $services ): MessagePrefixStats {
121 return new MessagePrefixStats( $services->getTitleParser() );
122 },
123
124 'Translate:ParsingPlaceholderFactory' => static function (): ParsingPlaceholderFactory {
126 },
127
128 'Translate:PersistentCache' => static function ( MediaWikiServices $services ): PersistentCache {
130 $services->getDBLoadBalancer(),
131 $services->getJsonCodec()
132 );
133 },
134
135 'Translate:ProgressStatsTableFactory' => static function ( MediaWikiServices $services ): ProgressStatsTableFactory
136 {
137 return new ProgressStatsTableFactory(
138 $services->getLinkRenderer(),
139 $services->get( 'Translate:ConfigHelper' )
140 );
141 },
142
143 'Translate:SubpageListBuilder' => static function ( MediaWikiServices $services ): SubpageListBuilder
144 {
145 return new SubpageListBuilder(
146 $services->get( 'Translate:TranslatableBundleFactory' ),
147 $services->getLinkBatchFactory()
148 );
149 },
150
151 'Translate:TranslatableBundleFactory' => static function ( MediaWikiServices $services ): TranslatableBundleFactory
152 {
153 return new TranslatableBundleFactory(
154 $services->get( 'Translate:TranslatablePageStore' ),
155 $services->get( 'Translate:MessageBundleStore' )
156 );
157 },
158
159 'Translate:TranslatableBundleMover' => static function ( MediaWikiServices $services ): TranslatableBundleMover
160 {
161 return new TranslatableBundleMover(
162 $services->getMovePageFactory(),
163 $services->getJobQueueGroup(),
164 $services->getLinkBatchFactory(),
165 $services->get( 'Translate:TranslatableBundleFactory' ),
166 $services->get( 'Translate:SubpageListBuilder' ),
167 $services->getMainConfig()->get( 'TranslatePageMoveLimit' )
168 );
169 },
170
171 'Translate:TranslatableBundleStatusStore' =>
172 static function ( MediaWikiServices $services ): TranslatableBundleStatusStore {
174 $services->getDBLoadBalancer()->getConnection( DB_PRIMARY ),
175 $services->getCollationFactory()->makeCollation( 'uca-default-u-kn' ),
176 $services->getDBLoadBalancer()->getMaintenanceConnectionRef( DB_PRIMARY )
177 );
178 },
179
180 'Translate:TranslatablePageParser' => static function ( MediaWikiServices $services ): TranslatablePageParser
181 {
182 return new TranslatablePageParser(
183 $services->get( 'Translate:ParsingPlaceholderFactory' )
184 );
185 },
186
187 'Translate:TranslatablePageStore' => static function ( MediaWikiServices $services ): TranslatablePageStore
188 {
189 return new TranslatablePageStore(
190 $services->get( 'Translate:MessageIndex' ),
191 $services->getJobQueueGroup(),
192 new RevTagStore(),
193 $services->getDBLoadBalancer(),
194 $services->get( 'Translate:TranslatableBundleStatusStore' )
195 );
196 },
197
198 'Translate:TranslationStashReader' => static function ( MediaWikiServices $services ): TranslationStashReader
199 {
200 $db = $services->getDBLoadBalancer()->getConnectionRef( DB_REPLICA );
201 return new TranslationStashStorage( $db );
202 },
203
204 'Translate:TranslationStatsDataProvider' => static function (
205 MediaWikiServices $services
208 new ServiceOptions(
209 TranslationStatsDataProvider::CONSTRUCTOR_OPTIONS,
210 $services->getMainConfig()
211 ),
212 $services->getObjectFactory()
213 );
214 },
215
216 'Translate:TranslationUnitStoreFactory' => static function (
217 MediaWikiServices $services
219 return new TranslationUnitStoreFactory( $services->getDBLoadBalancer() );
220 },
221
222 'Translate:TranslatorActivity' => static function ( MediaWikiServices $services ): TranslatorActivity {
223 $query = new TranslatorActivityQuery(
224 $services->getMainConfig(),
225 $services->getDBLoadBalancer()
226 );
227
228 return new TranslatorActivity(
229 $services->getMainObjectStash(),
230 $query,
231 $services->getJobQueueGroup()
232 );
233 },
234
235 'Translate:TtmServerFactory' => static function ( MediaWikiServices $services ): TtmServerFactory {
236 $config = $services->getMainConfig();
237
238 $default = $config->get( 'TranslateTranslationDefaultService' );
239 if ( $default === false ) {
240 $default = null;
241 }
242
243 return new TtmServerFactory( $config->get( 'TranslateTranslationServices' ), $default );
244 }
245];
return[ '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:ExternalMessageSourceStateImporter'=> static function(MediaWikiServices $services):ExternalMessageSourceStateImporter { return new ExternalMessageSourceStateImporter($services->getMainConfig(), $services->get( 'Translate:GroupSynchronizationCache'), $services->getJobQueueGroup(), LoggerFactory::getInstance( 'Translate.GroupSynchronization'), $services->get( 'Translate:MessageIndex'));}, 'Translate:GroupSynchronizationCache'=> static function(MediaWikiServices $services):GroupSynchronizationCache { return new GroupSynchronizationCache( $services->get( 'Translate:PersistentCache'));}, 'Translate:MessageBundleStore'=> static function(MediaWikiServices $services):MessageBundleStore { return new MessageBundleStore(new RevTagStore(), $services->getJobQueueGroup(), $services->getLanguageNameUtils(), $services->get( 'Translate:MessageIndex'));}, 'Translate:MessageGroupReview'=> static function(MediaWikiServices $services):MessageGroupReview { return new MessageGroupReview($services->getDBLoadBalancer(), $services->getHookContainer());}, 'Translate:MessageGroupStatsTableFactory'=> static function(MediaWikiServices $services):MessageGroupStatsTableFactory { return new MessageGroupStatsTableFactory($services->get( 'Translate:ProgressStatsTableFactory'), $services->getDBLoadBalancer(), $services->getLinkRenderer(), $services->getMainConfig() ->get( 'TranslateWorkflowStates') !==false);}, 'Translate:MessageIndex'=> static function(MediaWikiServices $services):MessageIndex { $params=$services->getMainConfig() ->get( 'TranslateMessageIndex');if(is_string( $params)) { $params=(array) $params;} $class=array_shift( $params);return new $class( $params);}, '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'));}, 'Translate:SubpageListBuilder'=> static function(MediaWikiServices $services):SubpageListBuilder { return new SubpageListBuilder($services->get( 'Translate:TranslatableBundleFactory'), $services->getLinkBatchFactory());}, 'Translate:TranslatableBundleFactory'=> static function(MediaWikiServices $services):TranslatableBundleFactory { return new TranslatableBundleFactory($services->get( 'Translate:TranslatablePageStore'), $services->get( 'Translate:MessageBundleStore'));}, '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->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:TranslatablePageParser'=> static function(MediaWikiServices $services):TranslatablePageParser { return new TranslatablePageParser($services->get( 'Translate:ParsingPlaceholderFactory'));}, 'Translate:TranslatablePageStore'=> static function(MediaWikiServices $services):TranslatablePageStore { return new TranslatablePageStore($services->get( 'Translate:MessageIndex'), $services->getJobQueueGroup(), new RevTagStore(), $services->getDBLoadBalancer(), $services->get( 'Translate:TranslatableBundleStatusStore'));}, 'Translate:TranslationStashReader'=> static function(MediaWikiServices $services):TranslationStashReader { $db=$services->getDBLoadBalancer() ->getConnectionRef(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());}, '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.
Provides methods to get and change the state of a message group.
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.
Contains the core logic to validate and move translatable bundles.
Generates ParserOutput from text or removes all tags from a text.
This class abstracts MessagePrefix statistics calculation and storing.
Service for searching message groups and message keys.
A helper class added to work with configuration values of the Translate Extension.
Create unique placeholders that can be used when parsing (wiki)text.
Creates a database of keys in all groups, so that namespace and key can be used to get the groups the...
Defines what method should be provided by a class implementing a persistent cache.