Translate extension for MediaWiki
 
Loading...
Searching...
No Matches
ServiceWiring.php
Go to the documentation of this file.
1<?php
10use MediaWiki\Config\ServiceOptions;
43use MediaWiki\Logger\LoggerFactory;
44use MediaWiki\MediaWikiServices;
45
47return [
48 'Translate:ConfigHelper' => static function (): ConfigHelper {
49 return new ConfigHelper();
50 },
51
52 'Translate:CsvTranslationImporter' => static function ( MediaWikiServices $services ): CsvTranslationImporter {
53 return new CsvTranslationImporter( $services->getWikiPageFactory() );
54 },
55
56 'Translate:EntitySearch' => static function ( MediaWikiServices $services ): EntitySearch {
58 $services->getMainWANObjectCache(),
59 $services->getCollationFactory()->makeCollation( 'uca-default-u-kn' ),
60 MessageGroups::singleton(),
61 $services->getNamespaceInfo(),
62 $services->get( 'Translate:MessageIndex' ),
63 $services->getTitleParser(),
64 $services->getTitleFormatter()
65 );
66 },
67
68 'Translate:ExternalMessageSourceStateImporter' => static function (
69 MediaWikiServices $services
72 $services->getMainConfig(),
73 $services->get( 'Translate:GroupSynchronizationCache' ),
74 $services->getJobQueueGroup(),
75 LoggerFactory::getInstance( 'Translate.GroupSynchronization' ),
76 $services->get( 'Translate:MessageIndex' )
77 );
78 },
79
80 'Translate:FileFormatFactory' => static function ( MediaWikiServices $services ): FileFormatFactory {
81 return new FileFormatFactory( $services->getObjectFactory() );
82 },
83
84 'Translate:GroupSynchronizationCache' => static function (
85 MediaWikiServices $services
87 return new GroupSynchronizationCache( $services->get( 'Translate:PersistentCache' ) );
88 },
89
90 'Translate:HookRunner' => static function (
91 MediaWikiServices $services
92 ): HookRunner {
93 return new HookRunner( $services->getHookContainer() );
94 },
95
96 'Translate:MessageBundleStore' => static function ( MediaWikiServices $services ): MessageBundleStore {
98 $services->get( 'Translate:RevTagStore' ),
99 $services->getJobQueueGroup(),
100 $services->getLanguageNameUtils(),
101 $services->get( 'Translate:MessageIndex' )
102 );
103 },
104
105 'Translate:MessageGroupReviewStore' => static function ( MediaWikiServices $services ): MessageGroupReviewStore {
107 $services->getDBLoadBalancer(),
108 $services->get( 'Translate:HookRunner' )
109 );
110 },
111
112 'Translate:MessageGroupStatsTableFactory' => static function (
113 MediaWikiServices $services
116 $services->get( 'Translate:ProgressStatsTableFactory' ),
117 $services->getDBLoadBalancer(),
118 $services->getLinkRenderer(),
119 $services->get( 'Translate:MessageGroupReviewStore' ),
120 $services->getMainConfig()->get( 'TranslateWorkflowStates' ) !== false
121 );
122 },
123
124 'Translate:MessageIndex' => static function ( MediaWikiServices $services ): MessageIndex {
125 $params = $services->getMainConfig()->get( 'TranslateMessageIndex' );
126 if ( is_string( $params ) ) {
127 $params = (array)$params;
128 }
129
130 $class = array_shift( $params );
131 // @phan-suppress-next-line PhanTypeExpectedObjectOrClassName
132 return new $class( $params );
133 },
134
135 'Translate:MessagePrefixStats' => static function ( MediaWikiServices $services ): MessagePrefixStats {
136 return new MessagePrefixStats( $services->getTitleParser() );
137 },
138
139 'Translate:ParsingPlaceholderFactory' => static function (): ParsingPlaceholderFactory {
141 },
142
143 'Translate:PersistentCache' => static function ( MediaWikiServices $services ): PersistentCache {
145 $services->getDBLoadBalancer(),
146 $services->getJsonCodec()
147 );
148 },
149
150 'Translate:ProgressStatsTableFactory' => static function ( MediaWikiServices $services ): ProgressStatsTableFactory
151 {
152 return new ProgressStatsTableFactory(
153 $services->getLinkRenderer(),
154 $services->get( 'Translate:ConfigHelper' )
155 );
156 },
157
158 'Translate:RevTagStore' => static function ( MediaWikiServices $services ): RevTagStore {
160 $services->getDBLoadBalancerFactory()
161 );
162 },
163
164 'Translate:SubpageListBuilder' => static function ( MediaWikiServices $services ): SubpageListBuilder
165 {
166 return new SubpageListBuilder(
167 $services->get( 'Translate:TranslatableBundleFactory' ),
168 $services->getLinkBatchFactory()
169 );
170 },
171
172 'Translate:TranslatableBundleExporter' => static function (
173 MediaWikiServices $services
176 $services->get( 'Translate:SubpageListBuilder' ),
177 $services->getWikiExporterFactory(),
178 $services->getDBLoadBalancer()
179 );
180 },
181
182 'Translate:TranslatableBundleFactory' => static function ( MediaWikiServices $services ): TranslatableBundleFactory
183 {
184 return new TranslatableBundleFactory(
185 $services->get( 'Translate:TranslatablePageStore' ),
186 $services->get( 'Translate:MessageBundleStore' )
187 );
188 },
189
190 'Translate:TranslatableBundleImporter' => static function (
191 MediaWikiServices $services
194 $services->getWikiImporterFactory(),
195 $services->get( 'Translate:TranslatablePageParser' ),
196 $services->getRevisionLookup()
197 );
198 },
199
200 'Translate:TranslatableBundleMover' => static function ( MediaWikiServices $services ): TranslatableBundleMover
201 {
202 return new TranslatableBundleMover(
203 $services->getMovePageFactory(),
204 $services->getJobQueueGroup(),
205 $services->getLinkBatchFactory(),
206 $services->get( 'Translate:TranslatableBundleFactory' ),
207 $services->get( 'Translate:SubpageListBuilder' ),
208 $services->getMainConfig()->get( 'TranslatePageMoveLimit' )
209 );
210 },
211
212 'Translate:TranslatableBundleStatusStore' =>
213 static function ( MediaWikiServices $services ): TranslatableBundleStatusStore {
215 $services->getDBLoadBalancer()->getConnection( DB_PRIMARY ),
216 $services->getCollationFactory()->makeCollation( 'uca-default-u-kn' ),
217 $services->getDBLoadBalancer()->getMaintenanceConnectionRef( DB_PRIMARY )
218 );
219 },
220
221 'Translate:TranslatablePageParser' => static function ( MediaWikiServices $services ): TranslatablePageParser
222 {
223 return new TranslatablePageParser(
224 $services->get( 'Translate:ParsingPlaceholderFactory' )
225 );
226 },
227
228 'Translate:TranslatablePageStore' => static function ( MediaWikiServices $services ): TranslatablePageStore
229 {
230 return new TranslatablePageStore(
231 $services->get( 'Translate:MessageIndex' ),
232 $services->getJobQueueGroup(),
233 $services->get( 'Translate:RevTagStore' ),
234 $services->getDBLoadBalancer(),
235 $services->get( 'Translate:TranslatableBundleStatusStore' ),
236 $services->get( 'Translate:TranslatablePageParser' ),
237 );
238 },
239
240 'Translate:TranslationStashReader' => static function ( MediaWikiServices $services ): TranslationStashReader
241 {
242 $db = $services->getDBLoadBalancer()->getConnection( DB_REPLICA );
243 return new TranslationStashStorage( $db );
244 },
245
246 'Translate:TranslationStatsDataProvider' => static function (
247 MediaWikiServices $services
250 new ServiceOptions(
251 TranslationStatsDataProvider::CONSTRUCTOR_OPTIONS,
252 $services->getMainConfig()
253 ),
254 $services->getObjectFactory(),
255 $services->getDBLoadBalancer()
256 );
257 },
258
259 'Translate:TranslationUnitStoreFactory' => static function (
260 MediaWikiServices $services
262 return new TranslationUnitStoreFactory( $services->getDBLoadBalancer() );
263 },
264
265 'Translate:TranslatorActivity' => static function ( MediaWikiServices $services ): TranslatorActivity {
266 $query = new TranslatorActivityQuery(
267 $services->getMainConfig(),
268 $services->getDBLoadBalancer()
269 );
270
271 return new TranslatorActivity(
272 $services->getMainObjectStash(),
273 $query,
274 $services->getJobQueueGroup()
275 );
276 },
277
278 'Translate:TtmServerFactory' => static function ( MediaWikiServices $services ): TtmServerFactory {
279 $config = $services->getMainConfig();
280
281 $default = $config->get( 'TranslateTranslationDefaultService' );
282 if ( $default === false ) {
283 $default = null;
284 }
285
286 return new TtmServerFactory( $config->get( 'TranslateTranslationServices' ), $default );
287 }
288];
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: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:HookRunner'=> static function(MediaWikiServices $services):HookRunner { return new HookRunner( $services->getHookContainer());}, 'Translate:MessageBundleStore'=> static function(MediaWikiServices $services):MessageBundleStore { return new MessageBundleStore($services->get( 'Translate:RevTagStore'), $services->getJobQueueGroup(), $services->getLanguageNameUtils(), $services->get( 'Translate:MessageIndex'));}, '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->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:RevTagStore'=> static function(MediaWikiServices $services):RevTagStore { return new RevTagStore($services->getDBLoadBalancerFactory());}, 'Translate:SubpageListBuilder'=> static function(MediaWikiServices $services):SubpageListBuilder { return new SubpageListBuilder($services->get( 'Translate:TranslatableBundleFactory'), $services->getLinkBatchFactory());}, '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());}, '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(), $services->get( 'Translate:RevTagStore'), $services->getDBLoadBalancer(), $services->get( 'Translate:TranslatableBundleStatusStore'), $services->get( 'Translate:TranslatablePageParser'),);}, '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.
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.