MediaWiki  1.27.2
Resources.php
Go to the documentation of this file.
1 <?php
23 if ( !defined( 'MEDIAWIKI' ) ) {
24  die( 'Not an entry point.' );
25 }
26 
27 return [
28 
32  'startup' => [ 'class' => 'ResourceLoaderStartUpModule' ],
33 
34  // Scripts managed by the local wiki (stored in the MediaWiki namespace)
35  'site' => [ 'class' => 'ResourceLoaderSiteModule' ],
36  'noscript' => [
37  'class' => 'ResourceLoaderWikiModule',
38  'styles' => [ 'MediaWiki:Noscript.css' ],
39  'group' => 'noscript',
40  ],
41  'filepage' => [
42  'position' => 'top',
43  'class' => 'ResourceLoaderWikiModule',
44  'styles' => [ 'MediaWiki:Filepage.css' ],
45  ],
46  'user.groups' => [ 'class' => 'ResourceLoaderUserGroupsModule' ],
47 
48  // Scripts managed by the current user (stored in their user space)
49  'user' => [ 'class' => 'ResourceLoaderUserModule' ],
50 
51  // Scripts generated based on the current user's preferences
52  'user.cssprefs' => [ 'class' => 'ResourceLoaderUserCSSPrefsModule' ],
53 
54  // Populate mediawiki.user placeholders with information about the current user
55  'user.defaults' => [ 'class' => 'ResourceLoaderUserDefaultsModule' ],
56  'user.options' => [ 'class' => 'ResourceLoaderUserOptionsModule' ],
57  'user.tokens' => [ 'class' => 'ResourceLoaderUserTokensModule' ],
58 
59  // Scripts for the dynamic language specific data, like grammar forms.
60  'mediawiki.language.data' => [ 'class' => 'ResourceLoaderLanguageDataModule' ],
61 
62  /* MediaWiki base skinning modules */
63 
93  'mediawiki.skinning.elements' => [
94  'position' => 'top',
95  'styles' => [
96  'resources/src/mediawiki.skinning/elements.css' => [ 'media' => 'screen' ],
97  ],
98  ],
99  'mediawiki.skinning.content' => [
100  'position' => 'top',
101  'styles' => [
102  'resources/src/mediawiki.skinning/elements.css' => [ 'media' => 'screen' ],
103  'resources/src/mediawiki.skinning/content.css' => [ 'media' => 'screen' ],
104  ],
105  ],
106  // Used in the web installer. Test it after modifying this definition!
107  'mediawiki.skinning.interface' => [
108  'position' => 'top',
109  'class' => 'ResourceLoaderSkinModule',
110  'styles' => [
111  'resources/src/mediawiki.skinning/elements.css' => [ 'media' => 'screen' ],
112  'resources/src/mediawiki.skinning/content.css' => [ 'media' => 'screen' ],
113  'resources/src/mediawiki.skinning/interface.css' => [ 'media' => 'screen' ],
114  ],
115  ],
116 
117  'mediawiki.skinning.content.parsoid' => [
118  'position' => 'top',
119  // Style Parsoid HTML+RDFa output consistent with wikitext from PHP parser
120  // with the interface.css styles; skinStyles should be used if your
121  // skin over-rides common content styling.
122  'skinStyles' => [
123  'default' => 'resources/src/mediawiki.skinning/content.parsoid.less',
124  ],
125  'targets' => [ 'desktop', 'mobile' ],
126  ],
127 
128  'mediawiki.skinning.content.externallinks' => [
129  'position' => 'bottom',
130  'styles' => [
131  'resources/src/mediawiki.skinning/content.externallinks.css' => [ 'media' => 'screen' ],
132  ],
133  ],
134 
135  /* jQuery */
136 
137  'jquery' => [
138  'scripts' => [
139  'resources/lib/jquery/jquery.js',
140  ],
141  'raw' => true,
142  'targets' => [ 'desktop', 'mobile' ],
143  ],
144 
145  /* jQuery Plugins */
146 
147  'jquery.accessKeyLabel' => [
148  'scripts' => 'resources/src/jquery/jquery.accessKeyLabel.js',
149  'dependencies' => [
150  'jquery.client',
151  'mediawiki.RegExp',
152  ],
153  'messages' => [ 'brackets', 'word-separator' ],
154  'targets' => [ 'mobile', 'desktop' ],
155  ],
156  'jquery.appear' => [
157  'scripts' => 'resources/lib/jquery/jquery.appear.js',
158  ],
159  'jquery.arrowSteps' => [
160  'scripts' => 'resources/src/jquery/jquery.arrowSteps.js',
161  'styles' => 'resources/src/jquery/jquery.arrowSteps.css',
162  ],
163  'jquery.async' => [
164  'scripts' => 'resources/lib/jquery/jquery.async.js',
165  ],
166  'jquery.autoEllipsis' => [
167  'scripts' => 'resources/src/jquery/jquery.autoEllipsis.js',
168  'dependencies' => 'jquery.highlightText',
169  'targets' => [ 'desktop', 'mobile' ],
170  ],
171  'jquery.badge' => [
172  'scripts' => 'resources/src/jquery/jquery.badge.js',
173  'styles' => 'resources/src/jquery/jquery.badge.css',
174  'dependencies' => 'mediawiki.language',
175  ],
176  'jquery.byteLength' => [
177  'scripts' => 'resources/src/jquery/jquery.byteLength.js',
178  'targets' => [ 'desktop', 'mobile' ],
179  ],
180  'jquery.byteLimit' => [
181  'scripts' => 'resources/src/jquery/jquery.byteLimit.js',
182  'dependencies' => 'jquery.byteLength',
183  'targets' => [ 'desktop', 'mobile' ],
184  ],
185  'jquery.checkboxShiftClick' => [
186  'scripts' => 'resources/src/jquery/jquery.checkboxShiftClick.js',
187  'targets' => [ 'desktop', 'mobile' ],
188  ],
189  'jquery.chosen' => [
190  'scripts' => 'resources/lib/jquery.chosen/chosen.jquery.js',
191  'styles' => 'resources/lib/jquery.chosen/chosen.css',
192  ],
193  'jquery.client' => [
194  'scripts' => 'resources/lib/jquery.client/jquery.client.js',
195  'targets' => [ 'desktop', 'mobile' ],
196  ],
197  'jquery.color' => [
198  'scripts' => 'resources/src/jquery/jquery.color.js',
199  'dependencies' => 'jquery.colorUtil',
200  ],
201  'jquery.colorUtil' => [
202  'scripts' => 'resources/src/jquery/jquery.colorUtil.js',
203  ],
204  'jquery.confirmable' => [
205  'scripts' => [
206  'resources/src/jquery/jquery.confirmable.js',
207  'resources/src/jquery/jquery.confirmable.mediawiki.js',
208  ],
209  'messages' => [
210  'confirmable-confirm',
211  'confirmable-yes',
212  'confirmable-no',
213  'word-separator',
214  ],
215  'styles' => 'resources/src/jquery/jquery.confirmable.css',
216  'dependencies' => 'mediawiki.jqueryMsg',
217  ],
218  'jquery.cookie' => [
219  'scripts' => 'resources/lib/jquery/jquery.cookie.js',
220  'targets' => [ 'desktop', 'mobile' ],
221  ],
222  'jquery.expandableField' => [
223  'scripts' => 'resources/src/jquery/jquery.expandableField.js',
224  ],
225  'jquery.farbtastic' => [
226  'scripts' => 'resources/src/jquery/jquery.farbtastic.js',
227  'styles' => 'resources/src/jquery/jquery.farbtastic.css',
228  'dependencies' => 'jquery.colorUtil',
229  ],
230  'jquery.footHovzer' => [
231  'scripts' => 'resources/src/jquery/jquery.footHovzer.js',
232  'styles' => 'resources/src/jquery/jquery.footHovzer.css',
233  ],
234  'jquery.form' => [
235  'scripts' => 'resources/lib/jquery/jquery.form.js',
236  ],
237  'jquery.fullscreen' => [
238  'scripts' => 'resources/lib/jquery/jquery.fullscreen.js',
239  ],
240  'jquery.getAttrs' => [
241  'scripts' => 'resources/src/jquery/jquery.getAttrs.js',
242  'targets' => [ 'desktop', 'mobile' ],
243  ],
244  'jquery.hidpi' => [
245  'scripts' => 'resources/src/jquery/jquery.hidpi.js',
246  'targets' => [ 'desktop', 'mobile' ],
247  ],
248  'jquery.highlightText' => [
249  'scripts' => 'resources/src/jquery/jquery.highlightText.js',
250  'dependencies' => [
251  'mediawiki.RegExp',
252  'dom-level2-shim',
253  ],
254  'targets' => [ 'desktop', 'mobile' ],
255  ],
256  'jquery.hoverIntent' => [
257  'scripts' => 'resources/lib/jquery/jquery.hoverIntent.js',
258  ],
259  'jquery.i18n' => [
260  'scripts' => [
261  'resources/lib/jquery.i18n/src/jquery.i18n.js',
262  'resources/lib/jquery.i18n/src/jquery.i18n.messagestore.js',
263  'resources/lib/jquery.i18n/src/jquery.i18n.parser.js',
264  'resources/lib/jquery.i18n/src/jquery.i18n.emitter.js',
265  'resources/lib/jquery.i18n/src/jquery.i18n.emitter.bidi.js',
266  'resources/lib/jquery.i18n/src/jquery.i18n.language.js',
267  'resources/lib/jquery.i18n/src/jquery.i18n.fallbacks.js',
268  ],
269  'dependencies' => 'mediawiki.libs.pluralruleparser',
270  'languageScripts' => [
271  'bs' => 'resources/lib/jquery.i18n/src/languages/bs.js',
272  'dsb' => 'resources/lib/jquery.i18n/src/languages/dsb.js',
273  'fi' => 'resources/lib/jquery.i18n/src/languages/fi.js',
274  'ga' => 'resources/lib/jquery.i18n/src/languages/ga.js',
275  'he' => 'resources/lib/jquery.i18n/src/languages/he.js',
276  'hsb' => 'resources/lib/jquery.i18n/src/languages/hsb.js',
277  'hu' => 'resources/lib/jquery.i18n/src/languages/hu.js',
278  'hy' => 'resources/lib/jquery.i18n/src/languages/hy.js',
279  'la' => 'resources/lib/jquery.i18n/src/languages/la.js',
280  'ml' => 'resources/lib/jquery.i18n/src/languages/ml.js',
281  'os' => 'resources/lib/jquery.i18n/src/languages/os.js',
282  'ru' => 'resources/lib/jquery.i18n/src/languages/ru.js',
283  'sl' => 'resources/lib/jquery.i18n/src/languages/sl.js',
284  'uk' => 'resources/lib/jquery.i18n/src/languages/uk.js',
285  ],
286  'targets' => [ 'desktop', 'mobile' ],
287  ],
288  'jquery.localize' => [
289  'scripts' => 'resources/src/jquery/jquery.localize.js',
290  ],
291  'jquery.makeCollapsible' => [
292  'scripts' => 'resources/src/jquery/jquery.makeCollapsible.js',
293  'styles' => 'resources/src/jquery/jquery.makeCollapsible.css',
294  'messages' => [ 'collapsible-expand', 'collapsible-collapse' ],
295  'targets' => [ 'desktop', 'mobile' ],
296  ],
297  'jquery.mockjax' => [
298  'scripts' => 'resources/lib/jquery/jquery.mockjax.js',
299  ],
300  'jquery.mw-jump' => [
301  'scripts' => 'resources/src/jquery/jquery.mw-jump.js',
302  'targets' => [ 'desktop', 'mobile' ],
303  ],
304  'jquery.mwExtension' => [
305  'scripts' => 'resources/src/jquery/jquery.mwExtension.js',
306  'targets' => [ 'desktop', 'mobile' ],
307  ],
308  'jquery.placeholder' => [
309  'scripts' => 'resources/src/jquery/jquery.placeholder.js',
310  'targets' => [ 'desktop', 'mobile' ],
311  ],
312  'jquery.qunit' => [
313  'scripts' => 'resources/lib/qunitjs/qunit.js',
314  'styles' => 'resources/lib/qunitjs/qunit.css',
315  'position' => 'top',
316  'targets' => [ 'desktop', 'mobile' ],
317  ],
318  'jquery.qunit.completenessTest' => [
319  'scripts' => 'resources/src/jquery/jquery.qunit.completenessTest.js',
320  'dependencies' => 'jquery.qunit',
321  'targets' => [ 'desktop', 'mobile' ],
322  ],
323  'jquery.spinner' => [
324  'scripts' => 'resources/src/jquery/jquery.spinner.js',
325  'styles' => 'resources/src/jquery/jquery.spinner.css',
326  ],
327  'jquery.jStorage' => [
328  'scripts' => 'resources/lib/jquery/jquery.jStorage.js',
329  'dependencies' => 'json',
330  ],
331  'jquery.suggestions' => [
332  'scripts' => 'resources/src/jquery/jquery.suggestions.js',
333  'styles' => 'resources/src/jquery/jquery.suggestions.css',
334  'dependencies' => 'jquery.highlightText',
335  ],
336  'jquery.tabIndex' => [
337  'scripts' => 'resources/src/jquery/jquery.tabIndex.js',
338  ],
339  'jquery.tablesorter' => [
340  'scripts' => 'resources/src/jquery/jquery.tablesorter.js',
341  'styles' => 'resources/src/jquery/jquery.tablesorter.less',
342  'messages' => [ 'sort-descending', 'sort-ascending' ],
343  'dependencies' => [
344  'dom-level2-shim',
345  'mediawiki.RegExp',
346  'mediawiki.language.months',
347  ],
348  ],
349  'jquery.textSelection' => [
350  'scripts' => 'resources/src/jquery/jquery.textSelection.js',
351  'dependencies' => 'jquery.client',
352  'targets' => [ 'mobile', 'desktop' ],
353  ],
354  'jquery.throttle-debounce' => [
355  'scripts' => 'resources/lib/jquery/jquery.ba-throttle-debounce.js',
356  'targets' => [ 'desktop', 'mobile' ],
357  ],
358  'jquery.xmldom' => [
359  'scripts' => 'resources/lib/jquery/jquery.xmldom.js',
360  ],
361 
362  /* jQuery Tipsy */
363 
364  'jquery.tipsy' => [
365  'scripts' => 'resources/src/jquery.tipsy/jquery.tipsy.js',
366  'styles' => 'resources/src/jquery.tipsy/jquery.tipsy.css',
367  ],
368 
369  /* jQuery UI */
370 
371  'jquery.ui.core' => [
372  'scripts' => 'resources/lib/jquery.ui/jquery.ui.core.js',
373  'dependencies' => [
374  'jquery.ui.core.styles',
375  ],
376  'group' => 'jquery.ui',
377  ],
378  'jquery.ui.core.styles' => [
379  'position' => 'top',
380  'skinStyles' => [
381  'default' => [
382  'resources/lib/jquery.ui/themes/smoothness/jquery.ui.core.css',
383  'resources/lib/jquery.ui/themes/smoothness/jquery.ui.theme.css',
384  ],
385  ],
386  'group' => 'jquery.ui',
387  ],
388  'jquery.ui.accordion' => [
389  'scripts' => 'resources/lib/jquery.ui/jquery.ui.accordion.js',
390  'dependencies' => [
391  'jquery.ui.core',
392  'jquery.ui.widget',
393  ],
394  'skinStyles' => [
395  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.accordion.css',
396  ],
397  'group' => 'jquery.ui',
398  ],
399  'jquery.ui.autocomplete' => [
400  'scripts' => 'resources/lib/jquery.ui/jquery.ui.autocomplete.js',
401  'dependencies' => [
402  'jquery.ui.core',
403  'jquery.ui.widget',
404  'jquery.ui.position',
405  'jquery.ui.menu',
406  ],
407  'skinStyles' => [
408  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.autocomplete.css',
409  ],
410  'group' => 'jquery.ui',
411  ],
412  'jquery.ui.button' => [
413  'scripts' => 'resources/lib/jquery.ui/jquery.ui.button.js',
414  'dependencies' => [
415  'jquery.ui.core',
416  'jquery.ui.widget',
417  ],
418  'skinStyles' => [
419  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.button.css',
420  ],
421  'group' => 'jquery.ui',
422  ],
423  'jquery.ui.datepicker' => [
424  'scripts' => 'resources/lib/jquery.ui/jquery.ui.datepicker.js',
425  'dependencies' => 'jquery.ui.core',
426  'skinStyles' => [
427  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.datepicker.css',
428  ],
429  'languageScripts' => [
430  'af' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-af.js',
431  'ar' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ar.js',
432  'ar-dz' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ar-DZ.js',
433  'az' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-az.js',
434  'bg' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-bg.js',
435  'bs' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-bs.js',
436  'ca' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ca.js',
437  'cs' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-cs.js',
438  'da' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-da.js',
439  'de-at' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-de-AT.js',
440  'de-ch' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-de-CH.js',
441  'de' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-de.js',
442  'el' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-el.js',
443  'en-au' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-en-AU.js',
444  'en-gb' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-en-GB.js',
445  'en-nz' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-en-NZ.js',
446  'eo' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-eo.js',
447  'es' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-es.js',
448  'et' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-et.js',
449  'eu' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-eu.js',
450  'fa' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fa.js',
451  'fi' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fi.js',
452  'fo' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fo.js',
453  'fr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fr.js',
454  'fr-ch' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fr-CH.js',
455  'gl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-gl.js',
456  'he' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-he.js',
457  'hi' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hi.js',
458  'hr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hr.js',
459  'hu' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hu.js',
460  'hy' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hy.js',
461  'id' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-id.js',
462  'is' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-is.js',
463  'it' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-it.js',
464  'ja' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ja.js',
465  'ka' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ka.js',
466  'kk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-kk.js',
467  'km' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-km.js',
468  'ko' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ko.js',
469  'lb' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-lb.js',
470  'lt' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-lt.js',
471  'lv' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-lv.js',
472  'mk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-mk.js',
473  'ml' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ml.js',
474  'ms' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ms.js',
475  'nl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-nl.js',
476  'nl-be' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-nl-BE.js',
477  'no' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-no.js',
478  'pl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-pl.js',
479  'pt' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-pt.js',
480  'pt-br' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-pt-BR.js',
481  'rm' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-rm.js',
482  'ro' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ro.js',
483  'ru' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ru.js',
484  'sk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sk.js',
485  'sl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sl.js',
486  'sq' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sq.js',
487  'sr-ec' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sr.js',
488  'sr-el' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sr-SR.js',
489  'sv' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sv.js',
490  'ta' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ta.js',
491  'th' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-th.js',
492  'tj' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-tj.js',
493  'tr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-tr.js',
494  'uk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-uk.js',
495  'vi' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-vi.js',
496  'zh-cn' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-zh-CN.js',
497  'zh-hk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-zh-HK.js',
498  'zh-tw' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-zh-TW.js',
499  ],
500  'group' => 'jquery.ui',
501  ],
502  'jquery.ui.dialog' => [
503  'scripts' => 'resources/lib/jquery.ui/jquery.ui.dialog.js',
504  'dependencies' => [
505  'jquery.ui.core',
506  'jquery.ui.widget',
507  'jquery.ui.button',
508  'jquery.ui.draggable',
509  'jquery.ui.mouse',
510  'jquery.ui.position',
511  'jquery.ui.resizable',
512  ],
513  'skinStyles' => [
514  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.dialog.css',
515  ],
516  'group' => 'jquery.ui',
517  ],
518  'jquery.ui.draggable' => [
519  'scripts' => 'resources/lib/jquery.ui/jquery.ui.draggable.js',
520  'dependencies' => [
521  'jquery.ui.core',
522  'jquery.ui.mouse',
523  'jquery.ui.widget',
524  ],
525  'group' => 'jquery.ui',
526  ],
527  'jquery.ui.droppable' => [
528  'scripts' => 'resources/lib/jquery.ui/jquery.ui.droppable.js',
529  'dependencies' => [
530  'jquery.ui.core',
531  'jquery.ui.mouse',
532  'jquery.ui.widget',
533  'jquery.ui.draggable',
534  ],
535  'group' => 'jquery.ui',
536  ],
537  'jquery.ui.menu' => [
538  'scripts' => 'resources/lib/jquery.ui/jquery.ui.menu.js',
539  'dependencies' => [
540  'jquery.ui.core',
541  'jquery.ui.widget',
542  'jquery.ui.position',
543  ],
544  'skinStyles' => [
545  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.menu.css',
546  ],
547  'group' => 'jquery.ui',
548  ],
549  'jquery.ui.mouse' => [
550  'scripts' => 'resources/lib/jquery.ui/jquery.ui.mouse.js',
551  'dependencies' => 'jquery.ui.widget',
552  'group' => 'jquery.ui',
553  ],
554  'jquery.ui.position' => [
555  'scripts' => 'resources/lib/jquery.ui/jquery.ui.position.js',
556  'group' => 'jquery.ui',
557  ],
558  'jquery.ui.progressbar' => [
559  'scripts' => 'resources/lib/jquery.ui/jquery.ui.progressbar.js',
560  'dependencies' => [
561  'jquery.ui.core',
562  'jquery.ui.widget',
563  ],
564  'skinStyles' => [
565  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.progressbar.css',
566  ],
567  'group' => 'jquery.ui',
568  ],
569  'jquery.ui.resizable' => [
570  'scripts' => 'resources/lib/jquery.ui/jquery.ui.resizable.js',
571  'dependencies' => [
572  'jquery.ui.core',
573  'jquery.ui.widget',
574  'jquery.ui.mouse',
575  ],
576  'skinStyles' => [
577  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.resizable.css',
578  ],
579  'group' => 'jquery.ui',
580  ],
581  'jquery.ui.selectable' => [
582  'scripts' => 'resources/lib/jquery.ui/jquery.ui.selectable.js',
583  'dependencies' => [
584  'jquery.ui.core',
585  'jquery.ui.widget',
586  'jquery.ui.mouse',
587  ],
588  'skinStyles' => [
589  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.selectable.css',
590  ],
591  'group' => 'jquery.ui',
592  ],
593  'jquery.ui.slider' => [
594  'scripts' => 'resources/lib/jquery.ui/jquery.ui.slider.js',
595  'dependencies' => [
596  'jquery.ui.core',
597  'jquery.ui.widget',
598  'jquery.ui.mouse',
599  ],
600  'skinStyles' => [
601  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.slider.css',
602  ],
603  'group' => 'jquery.ui',
604  ],
605  'jquery.ui.sortable' => [
606  'scripts' => 'resources/lib/jquery.ui/jquery.ui.sortable.js',
607  'dependencies' => [
608  'jquery.ui.core',
609  'jquery.ui.mouse',
610  'jquery.ui.widget',
611  ],
612  'group' => 'jquery.ui',
613  ],
614  'jquery.ui.spinner' => [
615  'scripts' => 'resources/lib/jquery.ui/jquery.ui.spinner.js',
616  'dependencies' => [
617  'jquery.ui.core',
618  'jquery.ui.widget',
619  'jquery.ui.button',
620  ],
621  'skinStyles' => [
622  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.spinner.css',
623  ],
624  'group' => 'jquery.ui',
625  ],
626  'jquery.ui.tabs' => [
627  'scripts' => 'resources/lib/jquery.ui/jquery.ui.tabs.js',
628  'dependencies' => [
629  'jquery.ui.core',
630  'jquery.ui.widget',
631  ],
632  'skinStyles' => [
633  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.tabs.css',
634  ],
635  'group' => 'jquery.ui',
636  ],
637  'jquery.ui.tooltip' => [
638  'scripts' => 'resources/lib/jquery.ui/jquery.ui.tooltip.js',
639  'dependencies' => [
640  'jquery.ui.core',
641  'jquery.ui.widget',
642  'jquery.ui.position',
643  ],
644  'skinStyles' => [
645  'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.tooltip.css',
646  ],
647  'group' => 'jquery.ui',
648  ],
649  'jquery.ui.widget' => [
650  'scripts' => 'resources/lib/jquery.ui/jquery.ui.widget.js',
651  'group' => 'jquery.ui',
652  ],
653  // Effects
654  'jquery.effects.core' => [
655  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect.js',
656  'group' => 'jquery.ui',
657  ],
658  'jquery.effects.blind' => [
659  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-blind.js',
660  'dependencies' => 'jquery.effects.core',
661  'group' => 'jquery.ui',
662  ],
663  'jquery.effects.bounce' => [
664  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-bounce.js',
665  'dependencies' => 'jquery.effects.core',
666  'group' => 'jquery.ui',
667  ],
668  'jquery.effects.clip' => [
669  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-clip.js',
670  'dependencies' => 'jquery.effects.core',
671  'group' => 'jquery.ui',
672  ],
673  'jquery.effects.drop' => [
674  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-drop.js',
675  'dependencies' => 'jquery.effects.core',
676  'group' => 'jquery.ui',
677  ],
678  'jquery.effects.explode' => [
679  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-explode.js',
680  'dependencies' => 'jquery.effects.core',
681  'group' => 'jquery.ui',
682  ],
683  'jquery.effects.fade' => [
684  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-fade.js',
685  'dependencies' => 'jquery.effects.core',
686  'group' => 'jquery.ui',
687  ],
688  'jquery.effects.fold' => [
689  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-fold.js',
690  'dependencies' => 'jquery.effects.core',
691  'group' => 'jquery.ui',
692  ],
693  'jquery.effects.highlight' => [
694  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-highlight.js',
695  'dependencies' => 'jquery.effects.core',
696  'group' => 'jquery.ui',
697  ],
698  'jquery.effects.pulsate' => [
699  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-pulsate.js',
700  'dependencies' => 'jquery.effects.core',
701  'group' => 'jquery.ui',
702  ],
703  'jquery.effects.scale' => [
704  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-scale.js',
705  'dependencies' => 'jquery.effects.core',
706  'group' => 'jquery.ui',
707  ],
708  'jquery.effects.shake' => [
709  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-shake.js',
710  'dependencies' => 'jquery.effects.core',
711  'group' => 'jquery.ui',
712  ],
713  'jquery.effects.slide' => [
714  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-slide.js',
715  'dependencies' => 'jquery.effects.core',
716  'group' => 'jquery.ui',
717  ],
718  'jquery.effects.transfer' => [
719  'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-transfer.js',
720  'dependencies' => 'jquery.effects.core',
721  'group' => 'jquery.ui',
722  ],
723 
724  /* json2 */
725 
726  'json' => [
727  'scripts' => 'resources/lib/json2/json2.js',
728  'targets' => [ 'desktop', 'mobile' ],
729  'skipFunction' => 'resources/src/json-skip.js',
730  ],
731 
732  /* Moment.js */
733 
734  'moment' => [
735  'scripts' => [
736  'resources/lib/moment/moment.js',
737  'resources/src/moment-global.js',
738  'resources/src/moment-local-dmy.js',
739  ],
740  'languageScripts' => [
741  'af' => 'resources/lib/moment/locale/af.js',
742  'ar' => 'resources/lib/moment/locale/ar.js',
743  'ar-ma' => 'resources/lib/moment/locale/ar-ma.js',
744  'ar-sa' => 'resources/lib/moment/locale/ar-sa.js',
745  'az' => 'resources/lib/moment/locale/az.js',
746  'be' => 'resources/lib/moment/locale/be.js',
747  'bg' => 'resources/lib/moment/locale/bg.js',
748  'bn' => 'resources/lib/moment/locale/bn.js',
749  'bo' => 'resources/lib/moment/locale/bo.js',
750  'br' => 'resources/lib/moment/locale/br.js',
751  'bs' => 'resources/lib/moment/locale/bs.js',
752  'ca' => 'resources/lib/moment/locale/ca.js',
753  'cs' => 'resources/lib/moment/locale/cs.js',
754  'cv' => 'resources/lib/moment/locale/cv.js',
755  'cy' => 'resources/lib/moment/locale/cy.js',
756  'da' => 'resources/lib/moment/locale/da.js',
757  'de' => 'resources/lib/moment/locale/de.js',
758  'de-at' => 'resources/lib/moment/locale/de-at.js',
759  'el' => 'resources/lib/moment/locale/el.js',
760  'en-au' => 'resources/lib/moment/locale/en-au.js',
761  'en-ca' => 'resources/lib/moment/locale/en-ca.js',
762  'en-gb' => 'resources/lib/moment/locale/en-gb.js',
763  'eo' => 'resources/lib/moment/locale/eo.js',
764  'es' => 'resources/lib/moment/locale/es.js',
765  'et' => 'resources/lib/moment/locale/et.js',
766  'eu' => 'resources/lib/moment/locale/eu.js',
767  'fa' => 'resources/lib/moment/locale/fa.js',
768  'fi' => 'resources/lib/moment/locale/fi.js',
769  'fo' => 'resources/lib/moment/locale/fo.js',
770  'fr-ca' => 'resources/lib/moment/locale/fr-ca.js',
771  'fr' => 'resources/lib/moment/locale/fr.js',
772  'gl' => 'resources/lib/moment/locale/gl.js',
773  'he' => 'resources/lib/moment/locale/he.js',
774  'hi' => 'resources/lib/moment/locale/hi.js',
775  'hr' => 'resources/lib/moment/locale/hr.js',
776  'hu' => 'resources/lib/moment/locale/hu.js',
777  'hy-am' => 'resources/lib/moment/locale/hy-am.js',
778  'id' => 'resources/lib/moment/locale/id.js',
779  'is' => 'resources/lib/moment/locale/is.js',
780  'it' => 'resources/lib/moment/locale/it.js',
781  'ja' => 'resources/lib/moment/locale/ja.js',
782  'ka' => 'resources/lib/moment/locale/ka.js',
783  'ko' => 'resources/lib/moment/locale/ko.js',
784  'lt' => 'resources/lib/moment/locale/lt.js',
785  'lv' => 'resources/lib/moment/locale/lv.js',
786  'mk' => 'resources/lib/moment/locale/mk.js',
787  'ml' => 'resources/lib/moment/locale/ml.js',
788  'mr' => 'resources/lib/moment/locale/mr.js',
789  'ms-my' => 'resources/lib/moment/locale/ms-my.js',
790  'my' => 'resources/lib/moment/locale/my.js',
791  'nb' => 'resources/lib/moment/locale/nb.js',
792  'ne' => 'resources/lib/moment/locale/ne.js',
793  'nl' => 'resources/lib/moment/locale/nl.js',
794  'nn' => 'resources/lib/moment/locale/nn.js',
795  'pl' => 'resources/lib/moment/locale/pl.js',
796  'pt-br' => 'resources/lib/moment/locale/pt-br.js',
797  'pt' => 'resources/lib/moment/locale/pt.js',
798  'ro' => 'resources/lib/moment/locale/ro.js',
799  'ru' => 'resources/lib/moment/locale/ru.js',
800  'sk' => 'resources/lib/moment/locale/sk.js',
801  'sl' => 'resources/lib/moment/locale/sl.js',
802  'sq' => 'resources/lib/moment/locale/sq.js',
803  'sr-ec' => 'resources/lib/moment/locale/sr-cyrl.js',
804  'sr-el' => 'resources/lib/moment/locale/sr.js',
805  'sv' => 'resources/lib/moment/locale/sv.js',
806  'ta' => 'resources/lib/moment/locale/ta.js',
807  'th' => 'resources/lib/moment/locale/th.js',
808  'tl-ph' => 'resources/lib/moment/locale/tl-ph.js',
809  'tr' => 'resources/lib/moment/locale/tr.js',
810  'tzm' => 'resources/lib/moment/locale/tzm.js',
811  'tzm-latn' => 'resources/lib/moment/locale/tzm-latn.js',
812  'uk' => 'resources/lib/moment/locale/uk.js',
813  'uz' => 'resources/lib/moment/locale/uz.js',
814  'vi' => 'resources/lib/moment/locale/vi.js',
815  'zh-cn' => 'resources/lib/moment/locale/zh-cn.js',
816  'zh-tw' => 'resources/lib/moment/locale/zh-tw.js',
817  'zh-hans' => 'resources/lib/moment/locale/zh-cn.js',
818  'zh-hant' => 'resources/lib/moment/locale/zh-tw.js',
819  ],
820  'targets' => [ 'desktop', 'mobile' ],
821  ],
822 
823  /* MediaWiki */
824 
825  'mediawiki' => [
826  'class' => 'ResourceLoaderRawFileModule',
827  // Keep in sync with maintenance/jsduck/eg-iframe.html
828  'scripts' => [
829  'resources/lib/phpjs-sha1/sha1.js',
830  'resources/src/mediawiki/mediawiki.js',
831  'resources/src/mediawiki/mediawiki.requestIdleCallback.js',
832  'resources/src/mediawiki/mediawiki.errorLogger.js',
833  ],
834  'debugScripts' => 'resources/src/mediawiki/mediawiki.log.js',
835  'targets' => [ 'desktop', 'mobile' ],
836  ],
837  'mediawiki.apihelp' => [
838  'styles' => 'resources/src/mediawiki/mediawiki.apihelp.css',
839  'targets' => [ 'desktop' ],
840  'position' => 'top',
841  ],
842  'mediawiki.template' => [
843  'scripts' => 'resources/src/mediawiki/mediawiki.template.js',
844  'targets' => [ 'desktop', 'mobile' ],
845  ],
846  'mediawiki.template.mustache' => [
847  'scripts' => [
848  'resources/lib/mustache/mustache.js',
849  'resources/src/mediawiki/mediawiki.template.mustache.js',
850  ],
851  'targets' => [ 'desktop', 'mobile' ],
852  'dependencies' => 'mediawiki.template',
853  ],
854  'mediawiki.template.regexp' => [
855  'scripts' => 'resources/src/mediawiki/mediawiki.template.regexp.js',
856  'targets' => [ 'desktop', 'mobile' ],
857  'dependencies' => 'mediawiki.template',
858  ],
859  'mediawiki.apipretty' => [
860  'styles' => 'resources/src/mediawiki/mediawiki.apipretty.css',
861  'targets' => [ 'desktop', 'mobile' ],
862  'position' => 'top',
863  ],
864  'mediawiki.api' => [
865  'scripts' => 'resources/src/mediawiki/api.js',
866  'dependencies' => [
867  'mediawiki.util',
868  'user.tokens',
869  ],
870  'targets' => [ 'desktop', 'mobile' ],
871  ],
872  'mediawiki.api.category' => [
873  'scripts' => 'resources/src/mediawiki/api/category.js',
874  'dependencies' => [
875  'mediawiki.api',
876  'mediawiki.Title',
877  ],
878  ],
879  'mediawiki.api.edit' => [
880  'scripts' => 'resources/src/mediawiki/api/edit.js',
881  'dependencies' => [
882  'mediawiki.api',
883  'mediawiki.Title',
884  ],
885  'targets' => [ 'desktop', 'mobile' ],
886  ],
887  'mediawiki.api.login' => [
888  'scripts' => 'resources/src/mediawiki/api/login.js',
889  'dependencies' => 'mediawiki.api',
890  ],
891  'mediawiki.api.options' => [
892  'scripts' => 'resources/src/mediawiki/api/options.js',
893  'dependencies' => 'mediawiki.api',
894  'targets' => [ 'desktop', 'mobile' ],
895  ],
896  'mediawiki.api.parse' => [
897  'scripts' => 'resources/src/mediawiki/api/parse.js',
898  'dependencies' => 'mediawiki.api',
899  'targets' => [ 'desktop', 'mobile' ],
900  ],
901  'mediawiki.api.upload' => [
902  'scripts' => 'resources/src/mediawiki/api/upload.js',
903  'dependencies' => [
904  'dom-level2-shim',
905  'mediawiki.api',
906  'mediawiki.api.edit',
907  'json',
908  ],
909  ],
910  'mediawiki.api.user' => [
911  'scripts' => 'resources/src/mediawiki/api/user.js',
912  'dependencies' => [
913  'mediawiki.api',
914  ],
915  'targets' => [ 'desktop', 'mobile' ],
916  ],
917  'mediawiki.api.watch' => [
918  'scripts' => 'resources/src/mediawiki/api/watch.js',
919  'dependencies' => [
920  'mediawiki.api',
921  ],
922  ],
923  'mediawiki.api.messages' => [
924  'scripts' => 'resources/src/mediawiki/api/messages.js',
925  'dependencies' => [
926  'mediawiki.api',
927  ],
928  ],
929  'mediawiki.content.json' => [
930  'position' => 'top',
931  'styles' => 'resources/src/mediawiki/mediawiki.content.json.css',
932  ],
933  'mediawiki.confirmCloseWindow' => [
934  'scripts' => [
935  'resources/src/mediawiki/mediawiki.confirmCloseWindow.js',
936  ],
937  'targets' => [ 'desktop', 'mobile' ],
938  ],
939  'mediawiki.debug' => [
940  'scripts' => [
941  'resources/src/mediawiki/mediawiki.debug.js',
942  ],
943  'styles' => [
944  'resources/src/mediawiki/mediawiki.debug.less',
945  ],
946  'dependencies' => [
947  'jquery.footHovzer',
948  'jquery.tipsy',
949  ],
950  'position' => 'bottom',
951  ],
952  'mediawiki.debug.init' => [
953  'scripts' => 'resources/src/mediawiki/mediawiki.debug.init.js',
954  'dependencies' => 'mediawiki.debug',
955  // Uses a custom mw.config variable that is set in debughtml,
956  // must be loaded on the bottom
957  'position' => 'bottom',
958  ],
959  'mediawiki.feedback' => [
960  'scripts' => 'resources/src/mediawiki/mediawiki.feedback.js',
961  'styles' => 'resources/src/mediawiki/mediawiki.feedback.css',
962  'dependencies' => [
963  'mediawiki.messagePoster',
964  'mediawiki.Title',
965  'oojs-ui-core',
966  'oojs-ui-windows',
967  ],
968  'messages' => [
969  'feedback-adding',
970  'feedback-back',
971  'feedback-bugcheck',
972  'feedback-dialog-intro',
973  'feedback-external-bug-report-button',
974  'feedback-bugnew',
975  'feedback-bugornote',
976  'feedback-cancel',
977  'feedback-close',
978  'feedback-dialog-title',
979  'feedback-error-title',
980  'feedback-error1',
981  'feedback-error2',
982  'feedback-error3',
983  'feedback-error4',
984  'feedback-message',
985  'feedback-subject',
986  'feedback-submit',
987  'feedback-terms',
988  'feedback-termsofuse',
989  'feedback-thanks',
990  'feedback-thanks-title',
991  'feedback-useragent'
992  ],
993  ],
994  'mediawiki.feedlink' => [
995  'position' => 'top',
996  'styles' => 'resources/src/mediawiki/mediawiki.feedlink.css',
997  ],
998  'mediawiki.filewarning' => [
999  'scripts' => 'resources/src/mediawiki/mediawiki.filewarning.js',
1000  'styles' => 'resources/src/mediawiki/mediawiki.filewarning.less',
1001  'dependencies' => [
1002  'oojs-ui-core',
1003  ],
1004  ],
1005  'mediawiki.ForeignApi' => [
1006  'targets' => [ 'desktop', 'mobile' ],
1007  'class' => 'ResourceLoaderForeignApiModule',
1008  // Additional dependencies generated dynamically
1009  'dependencies' => 'mediawiki.ForeignApi.core',
1010  ],
1011  'mediawiki.ForeignApi.core' => [
1012  'scripts' => 'resources/src/mediawiki/ForeignApi.js',
1013  'dependencies' => [
1014  'mediawiki.api',
1015  'oojs',
1016  ],
1017  'targets' => [ 'desktop', 'mobile' ],
1018  ],
1019  'mediawiki.helplink' => [
1020  'position' => 'top',
1021  'styles' => [
1022  'resources/src/mediawiki/mediawiki.helplink.less',
1023  ],
1024  'targets' => [ 'desktop', 'mobile' ],
1025  ],
1026  'mediawiki.hidpi' => [
1027  'scripts' => 'resources/src/mediawiki/mediawiki.hidpi.js',
1028  'dependencies' => 'jquery.hidpi',
1029  'skipFunction' => 'resources/src/mediawiki.hidpi-skip.js',
1030  'targets' => [ 'desktop', 'mobile' ],
1031  ],
1032  'mediawiki.hlist' => [
1033  'styles' => 'resources/src/mediawiki/mediawiki.hlist.css',
1034  ],
1035  'mediawiki.htmlform' => [
1036  'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.js',
1037  'dependencies' => [
1038  'mediawiki.RegExp',
1039  'jquery.byteLimit',
1040  ],
1041  'messages' => [
1042  'htmlform-chosen-placeholder',
1043  // @todo Load this message in content language
1044  'colon-separator',
1045  ],
1046  ],
1047  'mediawiki.htmlform.styles' => [
1048  'styles' => 'resources/src/mediawiki/mediawiki.htmlform.css',
1049  'position' => 'top',
1050  ],
1051  'mediawiki.htmlform.ooui.styles' => [
1052  'styles' => 'resources/src/mediawiki/mediawiki.htmlform.ooui.css',
1053  'position' => 'top',
1054  ],
1055  'mediawiki.icon' => [
1056  'styles' => 'resources/src/mediawiki/mediawiki.icon.less',
1057  ],
1058  'mediawiki.inspect' => [
1059  'scripts' => 'resources/src/mediawiki/mediawiki.inspect.js',
1060  'dependencies' => [
1061  'jquery.byteLength',
1062  'mediawiki.RegExp',
1063  'json',
1064  ],
1065  'targets' => [ 'desktop', 'mobile' ],
1066  ],
1067  'mediawiki.messagePoster' => [
1068  'scripts' => [
1069  'resources/src/mediawiki.messagePoster/mediawiki.messagePoster.factory.js',
1070  'resources/src/mediawiki.messagePoster/mediawiki.messagePoster.MessagePoster.js',
1071  ],
1072  'dependencies' => [
1073  'oojs',
1074  'mediawiki.api',
1075  'mediawiki.ForeignApi',
1076  ],
1077  'targets' => [ 'desktop', 'mobile' ],
1078  ],
1079  'mediawiki.messagePoster.wikitext' => [
1080  'scripts' => [
1081  'resources/src/mediawiki.messagePoster/mediawiki.messagePoster.WikitextMessagePoster.js',
1082  ],
1083  'dependencies' => [
1084  'mediawiki.api.edit',
1085  'mediawiki.messagePoster',
1086  ],
1087  'targets' => [ 'desktop', 'mobile' ],
1088  ],
1089  'mediawiki.notification' => [
1090  'styles' => [
1091  'resources/src/mediawiki/mediawiki.notification.common.css',
1092  'resources/src/mediawiki/mediawiki.notification.hideForPrint.css'
1093  => [ 'media' => 'print' ],
1094  ],
1095  'skinStyles' => [
1096  'default' => 'resources/src/mediawiki/mediawiki.notification.css',
1097  ],
1098  'scripts' => 'resources/src/mediawiki/mediawiki.notification.js',
1099  'dependencies' => 'mediawiki.page.startup',
1100  'targets' => [ 'desktop', 'mobile' ],
1101  ],
1102  'mediawiki.notify' => [
1103  'scripts' => 'resources/src/mediawiki/mediawiki.notify.js',
1104  'targets' => [ 'desktop', 'mobile' ],
1105  ],
1106  'mediawiki.RegExp' => [
1107  'scripts' => 'resources/src/mediawiki/mediawiki.RegExp.js',
1108  'targets' => [ 'desktop', 'mobile' ],
1109  ],
1110  'mediawiki.pager.tablePager' => [
1111  'styles' => 'resources/src/mediawiki/mediawiki.pager.tablePager.less',
1112  'position' => 'top',
1113  ],
1114  'mediawiki.searchSuggest' => [
1115  'scripts' => 'resources/src/mediawiki/mediawiki.searchSuggest.js',
1116  'styles' => 'resources/src/mediawiki/mediawiki.searchSuggest.css',
1117  'messages' => [
1118  'searchsuggest-search',
1119  'searchsuggest-containing',
1120  ],
1121  'dependencies' => [
1122  'jquery.client',
1123  'jquery.placeholder',
1124  'jquery.suggestions',
1125  'jquery.getAttrs',
1126  'mediawiki.api',
1127  ],
1128  ],
1129  'mediawiki.sectionAnchor' => [
1130  'position' => 'top',
1131  // Back-compat to hide it on cached pages (T18691; Ie9e334e973; 2015-03-17)
1132  'styles' => 'resources/src/mediawiki/mediawiki.sectionAnchor.css',
1133  'targets' => [ 'desktop', 'mobile' ],
1134  ],
1135  'mediawiki.storage' => [
1136  'scripts' => 'resources/src/mediawiki/mediawiki.storage.js',
1137  'targets' => [ 'desktop', 'mobile' ],
1138  ],
1139  'mediawiki.Title' => [
1140  'scripts' => 'resources/src/mediawiki/mediawiki.Title.js',
1141  'dependencies' => [
1142  'jquery.byteLength',
1143  'mediawiki.util',
1144  ],
1145  'targets' => [ 'desktop', 'mobile' ],
1146  ],
1147  'mediawiki.Upload' => [
1148  'scripts' => 'resources/src/mediawiki/mediawiki.Upload.js',
1149  'dependencies' => [
1150  'dom-level2-shim',
1151  'mediawiki.api.upload',
1152  ],
1153  ],
1154  'mediawiki.ForeignUpload' => [
1155  'scripts' => 'resources/src/mediawiki/mediawiki.ForeignUpload.js',
1156  'dependencies' => [
1157  'mediawiki.ForeignApi',
1158  'mediawiki.Upload',
1159  'oojs',
1160  ],
1161  'messages' => [
1162  'uploaddisabledtext',
1163  'upload-foreign-cant-upload',
1164  ]
1165  ],
1166  'mediawiki.ForeignStructuredUpload.config' => [
1167  'class' => 'ResourceLoaderUploadDialogModule',
1168  ],
1169  'mediawiki.ForeignStructuredUpload' => [
1170  'scripts' => 'resources/src/mediawiki/mediawiki.ForeignStructuredUpload.js',
1171  'dependencies' => [
1172  'mediawiki.ForeignUpload',
1173  'mediawiki.ForeignStructuredUpload.config',
1174  ],
1175  ],
1176  'mediawiki.Upload.Dialog' => [
1177  'scripts' => [
1178  'resources/src/mediawiki/mediawiki.Upload.Dialog.js',
1179  ],
1180  'dependencies' => [
1181  'mediawiki.Upload.BookletLayout',
1182  ],
1183  'messages' => [
1184  'upload-dialog-title',
1185  'upload-dialog-button-cancel',
1186  'upload-dialog-button-done',
1187  'upload-dialog-button-save',
1188  'upload-dialog-button-upload',
1189  ],
1190  ],
1191  'mediawiki.Upload.BookletLayout' => [
1192  'scripts' => [
1193  'resources/src/mediawiki/mediawiki.Upload.BookletLayout.js',
1194  ],
1195  'styles' => [
1196  'resources/src/mediawiki/mediawiki.Upload.BookletLayout.css',
1197  ],
1198  'dependencies' => [
1199  'oojs-ui-core',
1200  'oojs-ui-windows',
1201  'oojs-ui.styles.icons-content',
1202  'oojs-ui.styles.icons-editing-advanced',
1203  'moment',
1204  'mediawiki.Title',
1205  'mediawiki.user',
1206  'mediawiki.Upload',
1207  'mediawiki.jqueryMsg',
1208  'mediawiki.widgets.StashedFileWidget'
1209  ],
1210  'messages' => [
1211  'upload-form-label-infoform-title',
1212  'upload-form-label-infoform-name',
1213  'upload-form-label-infoform-name-tooltip',
1214  'upload-form-label-infoform-description',
1215  'upload-form-label-infoform-description-tooltip',
1216  'upload-form-label-usage-title',
1217  'upload-form-label-usage-filename',
1218  'api-error-unknownerror',
1219  'api-error-unknown-warning',
1220  'api-error-autoblocked',
1221  'api-error-blocked',
1222  'api-error-badaccess-groups',
1223  'api-error-badtoken',
1224  'api-error-copyuploaddisabled',
1225  'api-error-duplicate',
1226  'api-error-duplicate-archive',
1227  'api-error-empty-file',
1228  'api-error-emptypage',
1229  'api-error-fetchfileerror',
1230  'api-error-fileexists-forbidden',
1231  'api-error-fileexists-shared-forbidden',
1232  'api-error-file-too-large',
1233  'api-error-filename-tooshort',
1234  'api-error-filetype-banned',
1235  'api-error-filetype-banned-type',
1236  'api-error-filetype-missing',
1237  'api-error-hookaborted',
1238  'api-error-http',
1239  'api-error-illegal-filename',
1240  'api-error-internal-error',
1241  'api-error-invalid-file-key',
1242  'api-error-missingparam',
1243  'api-error-missingresult',
1244  'api-error-mustbeloggedin',
1245  'api-error-mustbeposted',
1246  'api-error-noimageinfo',
1247  'api-error-nomodule',
1248  'api-error-ok-but-empty',
1249  'api-error-overwrite',
1250  'api-error-stashfailed',
1251  'api-error-publishfailed',
1252  'api-error-stasherror',
1253  'api-error-stashedfilenotfound',
1254  'api-error-stashpathinvalid',
1255  'api-error-stashfilestorage',
1256  'api-error-stashzerolength',
1257  'api-error-stashnotloggedin',
1258  'api-error-stashwrongowner',
1259  'api-error-stashnosuchfilekey',
1260  'api-error-timeout',
1261  'api-error-unclassified',
1262  'api-error-unknown-code',
1263  'api-error-unknown-error',
1264  'api-error-uploaddisabled',
1265  'api-error-verification-error',
1266  'api-error-was-deleted',
1267  'fileexists',
1268  'filepageexists',
1269  'filename-bad-prefix',
1270  'filename-thumb-name',
1271  'badfilename',
1272  'protectedpagetext',
1273  'api-error-blacklisted', // HACK
1274  ],
1275  ],
1276  'mediawiki.ForeignStructuredUpload.BookletLayout' => [
1277  'scripts' => 'resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js',
1278  'styles' => 'resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.less',
1279  'dependencies' => [
1280  'mediawiki.ForeignStructuredUpload',
1281  'mediawiki.Upload.BookletLayout',
1282  'mediawiki.widgets.CategorySelector',
1283  'mediawiki.widgets.DateInputWidget',
1284  'mediawiki.jqueryMsg',
1285  'mediawiki.api.messages',
1286  'moment',
1287  'mediawiki.libs.jpegmeta',
1288  ],
1289  'messages' => [
1290  'upload-form-label-own-work',
1291  'upload-form-label-infoform-categories',
1292  'upload-form-label-infoform-date',
1293  'upload-form-label-own-work-message-generic-local',
1294  'upload-form-label-not-own-work-message-generic-local',
1295  'upload-form-label-not-own-work-local-generic-local',
1296  'upload-form-label-own-work-message-generic-foreign',
1297  'upload-form-label-not-own-work-message-generic-foreign',
1298  'upload-form-label-not-own-work-local-generic-foreign',
1299  ],
1300  ],
1301  'mediawiki.toc' => [
1302  'scripts' => 'resources/src/mediawiki/mediawiki.toc.js',
1303  'styles' => [
1304  'resources/src/mediawiki/mediawiki.toc.css'
1305  => [ 'media' => 'screen' ],
1306  'resources/src/mediawiki/mediawiki.toc.print.css'
1307  => [ 'media' => 'print' ],
1308  ],
1309  'dependencies' => 'mediawiki.cookie',
1310  'messages' => [ 'showtoc', 'hidetoc' ],
1311  'targets' => [ 'desktop', 'mobile' ],
1312  ],
1313  'mediawiki.Uri' => [
1314  'scripts' => 'resources/src/mediawiki/mediawiki.Uri.js',
1315  'templates' => [
1316  'strict.regexp' => 'resources/src/mediawiki/mediawiki.Uri.strict.regexp',
1317  'loose.regexp' => 'resources/src/mediawiki/mediawiki.Uri.loose.regexp',
1318  ],
1319  'dependencies' => 'mediawiki.util',
1320  'targets' => [ 'desktop', 'mobile' ],
1321  ],
1322  'mediawiki.user' => [
1323  'scripts' => 'resources/src/mediawiki/mediawiki.user.js',
1324  'dependencies' => [
1325  'mediawiki.cookie',
1326  'mediawiki.api',
1327  'mediawiki.api.user',
1328  'user.options',
1329  'user.tokens',
1330  ],
1331  'targets' => [ 'desktop', 'mobile' ],
1332  ],
1333  'mediawiki.userSuggest' => [
1334  'scripts' => 'resources/src/mediawiki/mediawiki.userSuggest.js',
1335  'dependencies' => [
1336  'jquery.suggestions',
1337  'mediawiki.api'
1338  ]
1339  ],
1340  'mediawiki.util' => [
1341  'scripts' => 'resources/src/mediawiki/mediawiki.util.js',
1342  'dependencies' => [
1343  'jquery.accessKeyLabel',
1344  'mediawiki.RegExp',
1345  'mediawiki.notify',
1346  ],
1347  'targets' => [ 'desktop', 'mobile' ],
1348  ],
1349  'mediawiki.viewport' => [
1350  'scripts' => 'resources/src/mediawiki/mediawiki.viewport.js',
1351  'position' => 'top',
1352  'targets' => [ 'desktop', 'mobile' ],
1353  ],
1354  'mediawiki.checkboxtoggle' => [
1355  'scripts' => 'resources/src/mediawiki/mediawiki.checkboxtoggle.js',
1356  ],
1357  'mediawiki.checkboxtoggle.styles' => [
1358  'styles' => 'resources/src/mediawiki/mediawiki.checkboxtoggle.css',
1359  ],
1360  'mediawiki.cookie' => [
1361  'scripts' => 'resources/src/mediawiki/mediawiki.cookie.js',
1362  'dependencies' => 'jquery.cookie',
1363  'targets' => [ 'desktop', 'mobile' ],
1364  ],
1365  'mediawiki.toolbar' => [
1366  'class' => 'ResourceLoaderEditToolbarModule',
1367  'scripts' => 'resources/src/mediawiki.toolbar/toolbar.js',
1368  'styles' => 'resources/src/mediawiki.toolbar/toolbar.less',
1369  'position' => 'top',
1370  ],
1371  'mediawiki.experiments' => [
1372  'scripts' => 'resources/src/mediawiki/mediawiki.experiments.js',
1373  'targets' => [ 'desktop', 'mobile' ],
1374  ],
1375  'mediawiki.raggett' => [
1376  'styles' => 'resources/src/mediawiki/mediawiki.raggett.css',
1377  'targets' => [ 'desktop', 'mobile' ],
1378  ],
1379 
1380  /* MediaWiki Action */
1381 
1382  'mediawiki.action.edit' => [
1383  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.js',
1384  'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.css',
1385  'dependencies' => [
1386  'mediawiki.action.edit.styles',
1387  'jquery.textSelection',
1388  'jquery.byteLimit',
1389  ],
1390  'position' => 'top',
1391  ],
1392  'mediawiki.action.edit.styles' => [
1393  'position' => 'top',
1394  'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.styles.css',
1395  ],
1396  'mediawiki.action.edit.collapsibleFooter' => [
1397  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js',
1398  'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.css',
1399  'dependencies' => [
1400  'jquery.makeCollapsible',
1401  'mediawiki.cookie',
1402  'mediawiki.icon',
1403  ],
1404  ],
1405  'mediawiki.action.edit.preview' => [
1406  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.preview.js',
1407  'dependencies' => [
1408  'jquery.form',
1409  'jquery.spinner',
1410  'jquery.textSelection',
1411  'mediawiki.api',
1412  'mediawiki.action.history.diff',
1413  'mediawiki.util',
1414  'mediawiki.jqueryMsg',
1415  ],
1416  'messages' => [
1417  // Keep the uses message keys in sync with EditPage#setHeaders
1418  'creating',
1419  'editconflict',
1420  'editing',
1421  'editingcomment',
1422  'editingsection',
1423  'pagetitle',
1424  'otherlanguages',
1425  'summary-preview',
1426  'subject-preview',
1427  'parentheses',
1428  'previewerrortext',
1429  ],
1430  ],
1431  'mediawiki.action.edit.stash' => [
1432  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.stash.js',
1433  'dependencies' => [
1434  'jquery.getAttrs',
1435  'mediawiki.api',
1436  ],
1437  ],
1438  'mediawiki.action.history' => [
1439  'position' => 'top',
1440  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.history.js',
1441  'styles' => 'resources/src/mediawiki.action/mediawiki.action.history.css',
1442  ],
1443  'mediawiki.action.history.diff' => [
1444  'position' => 'top',
1445  'styles' => [
1446  'resources/src/mediawiki.action/mediawiki.action.history.diff.css',
1447  'resources/src/mediawiki.action/mediawiki.action.history.diff.print.css' => [
1448  'media' => 'print'
1449  ],
1450  ],
1451  'targets' => [ 'desktop', 'mobile' ],
1452  ],
1453  'mediawiki.action.view.dblClickEdit' => [
1454  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.dblClickEdit.js',
1455  'dependencies' => [
1456  'mediawiki.util',
1457  'mediawiki.page.startup',
1458  'user.options',
1459  ],
1460  ],
1461  'mediawiki.action.view.metadata' => [
1462  'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.metadata.css',
1463  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.metadata.js',
1464  'messages' => [
1465  'metadata-expand',
1466  'metadata-collapse',
1467  ],
1468  ],
1469  'mediawiki.action.view.categoryPage.styles' => [
1470  'position' => 'top',
1471  'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less',
1472  'targets' => [ 'desktop', 'mobile' ]
1473  ],
1474  'mediawiki.action.view.postEdit' => [
1475  'templates' => [
1476  'postEdit.html' => 'resources/src/mediawiki.action/templates/postEdit.html',
1477  ],
1478  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.js',
1479  'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.css',
1480  'dependencies' => [
1481  'mediawiki.cookie',
1482  'mediawiki.jqueryMsg'
1483  ],
1484  'messages' => [
1485  'postedit-confirmation-created',
1486  'postedit-confirmation-restored',
1487  'postedit-confirmation-saved',
1488  ],
1489  ],
1490  'mediawiki.action.view.redirect' => [
1491  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.redirect.js',
1492  'dependencies' => 'jquery.client',
1493  'position' => 'top',
1494  'targets' => [ 'desktop', 'mobile' ],
1495  ],
1496  'mediawiki.action.view.redirectPage' => [
1497  'position' => 'top',
1498  'targets' => [ 'desktop', 'mobile' ],
1499  'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.redirectPage.css',
1500  ],
1501  'mediawiki.action.view.rightClickEdit' => [
1502  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.rightClickEdit.js',
1503  ],
1504  'mediawiki.action.edit.editWarning' => [
1505  'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.editWarning.js',
1506  'dependencies' => [
1507  'jquery.textSelection',
1508  'mediawiki.jqueryMsg',
1509  'mediawiki.confirmCloseWindow',
1510  'user.options',
1511  ],
1512  'messages' => [
1513  'editwarning-warning',
1514  // editwarning-warning uses {{int:prefs-editing}}
1515  'prefs-editing'
1516  ],
1517  ],
1518  'mediawiki.action.view.filepage' => [
1519  'styles' => [
1520  'resources/src/mediawiki.action/mediawiki.action.view.filepage.print.css' =>
1521  [ 'media' => 'print' ],
1522  'resources/src/mediawiki.action/mediawiki.action.view.filepage.css',
1523  ],
1524  'position' => 'top',
1525  ],
1526 
1527  /* MediaWiki Language */
1528 
1529  'mediawiki.language' => [
1530  'scripts' => [
1531  'resources/src/mediawiki.language/mediawiki.language.js',
1532  'resources/src/mediawiki.language/mediawiki.language.numbers.js',
1533  'resources/src/mediawiki.language/mediawiki.language.fallback.js',
1534  ],
1535  'languageScripts' => [
1536  'bs' => 'resources/src/mediawiki.language/languages/bs.js',
1537  'dsb' => 'resources/src/mediawiki.language/languages/dsb.js',
1538  'fi' => 'resources/src/mediawiki.language/languages/fi.js',
1539  'ga' => 'resources/src/mediawiki.language/languages/ga.js',
1540  'he' => 'resources/src/mediawiki.language/languages/he.js',
1541  'hsb' => 'resources/src/mediawiki.language/languages/hsb.js',
1542  'hu' => 'resources/src/mediawiki.language/languages/hu.js',
1543  'hy' => 'resources/src/mediawiki.language/languages/hy.js',
1544  'la' => 'resources/src/mediawiki.language/languages/la.js',
1545  'os' => 'resources/src/mediawiki.language/languages/os.js',
1546  'ru' => 'resources/src/mediawiki.language/languages/ru.js',
1547  'sl' => 'resources/src/mediawiki.language/languages/sl.js',
1548  'uk' => 'resources/src/mediawiki.language/languages/uk.js',
1549  ],
1550  'dependencies' => [
1551  'mediawiki.language.data',
1552  'mediawiki.cldr',
1553  ],
1554  'targets' => [ 'desktop', 'mobile' ],
1555  'messages' => [
1556  'and',
1557  'comma-separator',
1558  'word-separator'
1559  ],
1560  ],
1561 
1562  'mediawiki.cldr' => [
1563  'scripts' => 'resources/src/mediawiki.language/mediawiki.cldr.js',
1564  'dependencies' => [
1565  'mediawiki.libs.pluralruleparser',
1566  ],
1567  'targets' => [ 'desktop', 'mobile' ],
1568  ],
1569 
1570  'mediawiki.libs.pluralruleparser' => [
1571  'scripts' => 'resources/src/mediawiki.libs/CLDRPluralRuleParser.js',
1572  'targets' => [ 'desktop', 'mobile' ],
1573  ],
1574 
1575  'mediawiki.language.init' => [
1576  'scripts' => 'resources/src/mediawiki.language/mediawiki.language.init.js',
1577  'targets' => [ 'desktop', 'mobile' ],
1578  ],
1579 
1580  'mediawiki.jqueryMsg' => [
1581  // Add data for mediawiki.jqueryMsg, such as allowed tags
1582  'class' => 'ResourceLoaderJqueryMsgModule',
1583  'scripts' => 'resources/src/mediawiki/mediawiki.jqueryMsg.js',
1584  'dependencies' => [
1585  'mediawiki.util',
1586  'mediawiki.language',
1587  'user.options',
1588  'dom-level2-shim',
1589  ],
1590  'targets' => [ 'desktop', 'mobile' ],
1591  ],
1592 
1593  'mediawiki.language.months' => [
1594  'scripts' => 'resources/src/mediawiki.language/mediawiki.language.months.js',
1595  'dependencies' => 'mediawiki.language',
1596  'messages' => array_merge(
1600  )
1601  ],
1602 
1603  'mediawiki.language.names' => [ 'class' => 'ResourceLoaderLanguageNamesModule' ],
1604 
1605  'mediawiki.language.specialCharacters' => [
1606  'class' => 'ResourceLoaderSpecialCharacterDataModule'
1607  ],
1608 
1609  /* MediaWiki Libs */
1610 
1611  'mediawiki.libs.jpegmeta' => [
1612  'scripts' => 'resources/src/mediawiki.libs/mediawiki.libs.jpegmeta.js',
1613  ],
1614 
1615  /* MediaWiki Page */
1616 
1617  'mediawiki.page.gallery' => [
1618  'scripts' => 'resources/src/mediawiki/page/gallery.js',
1619  'dependencies' => [
1620  'mediawiki.page.gallery.styles',
1621  'jquery.throttle-debounce',
1622  ]
1623  ],
1624  'mediawiki.page.gallery.styles' => [
1625  'styles' => [
1626  'resources/src/mediawiki/page/gallery-print.css' => [ 'media' => 'print' ],
1627  'resources/src/mediawiki/page/gallery.css',
1628  ],
1629  'position' => 'top',
1630  'targets' => [ 'desktop', 'mobile' ],
1631  ],
1632  'mediawiki.page.ready' => [
1633  'scripts' => 'resources/src/mediawiki/page/ready.js',
1634  'dependencies' => [
1635  'jquery.accessKeyLabel',
1636  'jquery.checkboxShiftClick',
1637  'jquery.makeCollapsible',
1638  'jquery.placeholder',
1639  'jquery.mw-jump',
1640  ],
1641  'targets' => [ 'desktop', 'mobile' ],
1642  ],
1643  'mediawiki.page.startup' => [
1644  'scripts' => 'resources/src/mediawiki/page/startup.js',
1645  'dependencies' => 'mediawiki.util',
1646  'position' => 'top',
1647  'targets' => [ 'desktop', 'mobile' ],
1648  ],
1649  'mediawiki.page.patrol.ajax' => [
1650  'scripts' => 'resources/src/mediawiki/page/patrol.ajax.js',
1651  'dependencies' => [
1652  'mediawiki.page.startup',
1653  'mediawiki.api',
1654  'mediawiki.util',
1655  'mediawiki.Title',
1656  'mediawiki.notify',
1657  'jquery.spinner',
1658  'user.tokens'
1659  ],
1660  'messages' => [
1661  'markedaspatrollednotify',
1662  'markedaspatrollederrornotify',
1663  'markedaspatrollederror-noautopatrol'
1664  ],
1665  ],
1666  'mediawiki.page.watch.ajax' => [
1667  'scripts' => 'resources/src/mediawiki/page/watch.js',
1668  'dependencies' => [
1669  'mediawiki.page.startup',
1670  'mediawiki.api.watch',
1671  'mediawiki.notify',
1672  'mediawiki.util',
1673  'jquery.accessKeyLabel',
1674  'mediawiki.RegExp',
1675  ],
1676  'messages' => [
1677  'watch',
1678  'unwatch',
1679  'watching',
1680  'unwatching',
1681  'tooltip-ca-watch',
1682  'tooltip-ca-unwatch',
1683  'watcherrortext',
1684  ],
1685  ],
1686  'mediawiki.page.image.pagination' => [
1687  'scripts' => 'resources/src/mediawiki/page/image-pagination.js',
1688  'dependencies' => [
1689  'mediawiki.util',
1690  'jquery.spinner',
1691  ],
1692  ],
1693 
1694  /* MediaWiki Special pages */
1695 
1696  'mediawiki.special' => [
1697  'position' => 'top',
1698  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.js',
1699  'styles' => 'resources/src/mediawiki.special/mediawiki.special.css',
1700  'targets' => [ 'desktop', 'mobile' ],
1701  ],
1702  'mediawiki.special.apisandbox.styles' => [
1703  'styles' => 'resources/src/mediawiki.special/mediawiki.special.apisandbox.top.css',
1704  ],
1705  'mediawiki.special.apisandbox' => [
1706  'styles' => 'resources/src/mediawiki.special/mediawiki.special.apisandbox.css',
1707  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.apisandbox.js',
1708  'dependencies' => [
1709  'mediawiki.special',
1710  'mediawiki.api',
1711  'mediawiki.jqueryMsg',
1712  'oojs-ui',
1713  'mediawiki.widgets.datetime',
1714  ],
1715  'messages' => [
1716  'apisandbox-intro',
1717  'apisandbox-submit',
1718  'apisandbox-reset',
1719  'apisandbox-fullscreen',
1720  'apisandbox-fullscreen-tooltip',
1721  'apisandbox-unfullscreen',
1722  'apisandbox-unfullscreen-tooltip',
1723  'apisandbox-retry',
1724  'apisandbox-loading',
1725  'apisandbox-load-error',
1726  'apisandbox-fetch-token',
1727  'apisandbox-helpurls',
1728  'apisandbox-examples',
1729  'apisandbox-dynamic-parameters',
1730  'apisandbox-dynamic-parameters-add-label',
1731  'apisandbox-dynamic-parameters-add-placeholder',
1732  'apisandbox-dynamic-error-exists',
1733  'apisandbox-deprecated-parameters',
1734  'apisandbox-no-parameters',
1735  'api-help-param-limit',
1736  'api-help-param-limit2',
1737  'api-help-param-integer-min',
1738  'api-help-param-integer-max',
1739  'api-help-param-integer-minmax',
1740  'api-help-param-multi-separate',
1741  'api-help-param-multi-max',
1742  'apisandbox-submit-invalid-fields-title',
1743  'apisandbox-submit-invalid-fields-message',
1744  'apisandbox-results',
1745  'apisandbox-sending-request',
1746  'apisandbox-loading-results',
1747  'apisandbox-results-error',
1748  'apisandbox-request-url-label',
1749  'apisandbox-request-time',
1750  'apisandbox-results-fixtoken',
1751  'apisandbox-results-fixtoken-fail',
1752  'apisandbox-alert-page',
1753  'apisandbox-alert-field',
1754  'blanknamespace',
1755  ],
1756  ],
1757  'mediawiki.special.block' => [
1758  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.block.js',
1759  'styles' => 'resources/src/mediawiki.special/mediawiki.special.block.css',
1760  'dependencies' => 'mediawiki.util',
1761  ],
1762  'mediawiki.special.blocklist' => [
1763  'styles' => 'resources/src/mediawiki.special/mediawiki.special.blocklist.css',
1764  'position' => 'top',
1765  ],
1766  'mediawiki.special.changeslist' => [
1767  'position' => 'top',
1768  'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.css',
1769  ],
1770  'mediawiki.special.changeslist.legend' => [
1771  'position' => 'top',
1772  'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css',
1773  ],
1774  'mediawiki.special.changeslist.legend.js' => [
1775  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js',
1776  'dependencies' => [
1777  'jquery.makeCollapsible',
1778  'mediawiki.cookie',
1779  ],
1780  ],
1781  'mediawiki.special.changeslist.enhanced' => [
1782  'position' => 'top',
1783  'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css',
1784  ],
1785  'mediawiki.special.changeslist.visitedstatus' => [
1786  'position' => 'top',
1787  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.visitedstatus.js',
1788  ],
1789  'mediawiki.special.comparepages.styles' => [
1790  'position' => 'top',
1791  'styles' => 'resources/src/mediawiki.special/mediawiki.special.comparepages.styles.less',
1792  ],
1793  'mediawiki.special.edittags' => [
1794  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.edittags.js',
1795  'dependencies' => [
1796  'jquery.chosen',
1797  ],
1798  'messages' => [
1799  'tags-edit-chosen-placeholder',
1800  'tags-edit-chosen-no-results',
1801  ],
1802  ],
1803  'mediawiki.special.edittags.styles' => [
1804  'styles' => 'resources/src/mediawiki.special/mediawiki.special.edittags.css',
1805  'position' => 'top',
1806  ],
1807  'mediawiki.special.import' => [
1808  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.import.js',
1809  ],
1810  'mediawiki.special.movePage' => [
1811  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.movePage.js',
1812  'dependencies' => [
1813  'jquery.byteLimit',
1814  'mediawiki.widgets',
1815  ],
1816  ],
1817  'mediawiki.special.movePage.styles' => [
1818  'styles' => 'resources/src/mediawiki.special/mediawiki.special.movePage.css',
1819  'position' => 'top',
1820  ],
1821  'mediawiki.special.pageLanguage' => [
1822  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.pageLanguage.js',
1823  'dependencies' => [
1824  'oojs-ui-core',
1825  ],
1826  ],
1827  'mediawiki.special.pagesWithProp' => [
1828  'position' => 'top',
1829  'styles' => 'resources/src/mediawiki.special/mediawiki.special.pagesWithProp.css',
1830  ],
1831  'mediawiki.special.preferences' => [
1832  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.preferences.js',
1833  'position' => 'top',
1834  'messages' => [
1835  'prefs-tabs-navigation-hint',
1836  'prefswarning-warning',
1837  'saveprefs',
1838  'savedprefs',
1839  ],
1840  'dependencies' => [
1841  'mediawiki.language',
1842  'mediawiki.confirmCloseWindow',
1843  'mediawiki.notification',
1844  ],
1845  ],
1846  'mediawiki.special.preferences.styles' => [
1847  'styles' => 'resources/src/mediawiki.special/mediawiki.special.preferences.styles.css',
1848  'position' => 'top',
1849  ],
1850  'mediawiki.special.recentchanges' => [
1851  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.recentchanges.js',
1852  'dependencies' => 'mediawiki.special',
1853  'position' => 'top',
1854  ],
1855  'mediawiki.special.search' => [
1856  'position' => 'top',
1857  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.js',
1858  'styles' => 'resources/src/mediawiki.special/mediawiki.special.search.css',
1859  'dependencies' => 'mediawiki.widgets.SearchInputWidget',
1860  'messages' => [
1861  'powersearch-togglelabel',
1862  'powersearch-toggleall',
1863  'powersearch-togglenone',
1864  ],
1865  ],
1866  'mediawiki.special.undelete' => [
1867  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.undelete.js',
1868  ],
1869  'mediawiki.special.upload' => [
1870  'templates' => [
1871  'thumbnail.html' => 'resources/src/mediawiki.special/templates/thumbnail.html',
1872  ],
1873  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.upload.js',
1874  'styles' => 'resources/src/mediawiki.special/mediawiki.special.upload.css',
1875  'messages' => [
1876  'widthheight',
1877  'size-bytes',
1878  'size-kilobytes',
1879  'size-megabytes',
1880  'size-gigabytes',
1881  'largefileserver',
1882  'editwarning-warning',
1883  // editwarning-warning uses {{int:prefs-editing}}
1884  'prefs-editing',
1885  ],
1886  'dependencies' => [
1887  'jquery.spinner',
1888  'mediawiki.jqueryMsg',
1889  'mediawiki.api',
1890  'mediawiki.libs.jpegmeta',
1891  'mediawiki.Title',
1892  'mediawiki.util',
1893  'mediawiki.confirmCloseWindow',
1894  'user.options',
1895  ],
1896  ],
1897  'mediawiki.special.userlogin.common.styles' => [
1898  'styles' => [
1899  'resources/src/mediawiki.special/mediawiki.special.userlogin.common.css',
1900  ],
1901  'position' => 'top',
1902  ],
1903  'mediawiki.special.userlogin.signup.styles' => [
1904  'position' => 'top',
1905  'styles' => [
1906  'resources/src/mediawiki.special/mediawiki.special.userlogin.signup.css',
1907  ],
1908  ],
1909  'mediawiki.special.userlogin.login.styles' => [
1910  'position' => 'top',
1911  'styles' => [
1912  'resources/src/mediawiki.special/mediawiki.special.userlogin.login.css',
1913  ],
1914  ],
1915  'mediawiki.special.userlogin.signup.js' => [
1916  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js',
1917  'messages' => [
1918  'createacct-error',
1919  'createacct-emailrequired',
1920  'noname',
1921  'userexists',
1922  ],
1923  'dependencies' => [
1924  'mediawiki.api',
1925  'mediawiki.jqueryMsg',
1926  'jquery.throttle-debounce',
1927  ],
1928  ],
1929  'mediawiki.special.unwatchedPages' => [
1930  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.unwatchedPages.js',
1931  'styles' => 'resources/src/mediawiki.special/mediawiki.special.unwatchedPages.css',
1932  'messages' => [
1933  'addedwatchtext-short',
1934  'removedwatchtext-short',
1935  'unwatch',
1936  'unwatching',
1937  'watch',
1938  'watcherrortext',
1939  'watching',
1940  ],
1941  'dependencies' => [
1942  'mediawiki.api',
1943  'mediawiki.api.watch',
1944  'mediawiki.notify',
1945  'mediawiki.Title',
1946  'mediawiki.util',
1947  ],
1948  ],
1949  'mediawiki.special.watchlist' => [
1950  'scripts' => 'resources/src/mediawiki.special/mediawiki.special.watchlist.js',
1951  ],
1952  'mediawiki.special.version' => [
1953  'styles' => 'resources/src/mediawiki.special/mediawiki.special.version.css',
1954  ],
1955 
1956  /* MediaWiki Installer */
1957 
1958  // Used in the web installer. Test it after modifying this definition!
1959  'mediawiki.legacy.config' => [
1960  // These files are not actually loaded via ResourceLoader, so dependencies etc. won't work.
1961  'scripts' => 'mw-config/config.js',
1962  'styles' => 'mw-config/config.css',
1963  ],
1964 
1965  /* MediaWiki Legacy */
1966 
1967  'mediawiki.legacy.commonPrint' => [
1968  'position' => 'top',
1969  'styles' => [
1970  'resources/src/mediawiki.legacy/commonPrint.css' => [ 'media' => 'print' ]
1971  ],
1972  ],
1973  'mediawiki.legacy.protect' => [
1974  'scripts' => 'resources/src/mediawiki.legacy/protect.js',
1975  'dependencies' => 'jquery.byteLimit',
1976  'messages' => [ 'protect-unchain-permissions' ]
1977  ],
1978  // Used in the web installer. Test it after modifying this definition!
1979  'mediawiki.legacy.shared' => [
1980  'position' => 'top',
1981  'styles' => [
1982  'resources/src/mediawiki.legacy/shared.css' => [ 'media' => 'screen' ]
1983  ],
1984  ],
1985  'mediawiki.legacy.oldshared' => [
1986  'position' => 'top',
1987  'styles' => [
1988  'resources/src/mediawiki.legacy/oldshared.css' => [ 'media' => 'screen' ]
1989  ],
1990  ],
1991  'mediawiki.legacy.wikibits' => [
1992  'scripts' => 'resources/src/mediawiki.legacy/wikibits.js',
1993  'dependencies' => 'mediawiki.util',
1994  'position' => 'top',
1995  'targets' => [ 'desktop', 'mobile' ],
1996  ],
1997 
1998  /* MediaWiki UI */
1999 
2000  'mediawiki.ui' => [
2001  'position' => 'top',
2002  'skinStyles' => [
2003  'default' => [
2004  'resources/src/mediawiki.ui/default.less',
2005  ],
2006  ],
2007  'targets' => [ 'desktop', 'mobile' ],
2008  ],
2009  'mediawiki.ui.checkbox' => [
2010  'position' => 'top',
2011  'skinStyles' => [
2012  'default' => [
2013  'resources/src/mediawiki.ui/components/checkbox.less',
2014  ],
2015  ],
2016  'targets' => [ 'desktop', 'mobile' ],
2017  ],
2018  'mediawiki.ui.radio' => [
2019  'position' => 'top',
2020  'skinStyles' => [
2021  'default' => [
2022  'resources/src/mediawiki.ui/components/radio.less',
2023  ],
2024  ],
2025  'targets' => [ 'desktop', 'mobile' ],
2026  ],
2027  // Lightweight module for anchor styles
2028  'mediawiki.ui.anchor' => [
2029  'position' => 'top',
2030  'skinStyles' => [
2031  'default' => [
2032  'resources/src/mediawiki.ui/components/anchors.less',
2033  ],
2034  ],
2035  'targets' => [ 'desktop', 'mobile' ],
2036  ],
2037  // Lightweight module for button styles
2038  'mediawiki.ui.button' => [
2039  'position' => 'top',
2040  'skinStyles' => [
2041  'default' => [
2042  'resources/src/mediawiki.ui/components/buttons.less',
2043  ],
2044  ],
2045  'targets' => [ 'desktop', 'mobile' ],
2046  ],
2047  'mediawiki.ui.input' => [
2048  'position' => 'top',
2049  'skinStyles' => [
2050  'default' => [
2051  'resources/src/mediawiki.ui/components/inputs.less',
2052  ],
2053  ],
2054  'targets' => [ 'desktop', 'mobile' ],
2055  ],
2056  'mediawiki.ui.icon' => [
2057  'position' => 'top',
2058  'skinStyles' => [
2059  'default' => [
2060  'resources/src/mediawiki.ui/components/icons.less',
2061  ],
2062  ],
2063  'targets' => [ 'desktop', 'mobile' ],
2064  ],
2065  // Lightweight module for text styles
2066  'mediawiki.ui.text' => [
2067  'position' => 'top',
2068  'skinStyles' => [
2069  'default' => [
2070  'resources/src/mediawiki.ui/components/text.less',
2071  ],
2072  ],
2073  'targets' => [ 'desktop', 'mobile' ],
2074  ],
2075 
2076  'mediawiki.widgets' => [
2077  'scripts' => [
2078  'resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js',
2079  'resources/src/mediawiki.widgets/mw.widgets.ComplexNamespaceInputWidget.js',
2080  'resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js',
2081  'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js',
2082  'resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js',
2083  'resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js',
2084  'resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js',
2085  ],
2086  'skinStyles' => [
2087  'default' => [
2088  'resources/src/mediawiki.widgets/mw.widgets.TitleWidget.less',
2089  ],
2090  ],
2091  'dependencies' => [
2092  'oojs-ui-widgets',
2093  'mediawiki.widgets.styles',
2094  // TitleInputWidget
2095  'mediawiki.Title',
2096  'mediawiki.api',
2097  'jquery.byteLimit',
2098  // TitleOptionWidget
2099  'jquery.autoEllipsis',
2100  ],
2101  'messages' => [
2102  // NamespaceInputWidget
2103  'blanknamespace',
2104  'namespacesall',
2105  // TitleInputWidget
2106  'mw-widgets-titleinput-description-new-page',
2107  'mw-widgets-titleinput-description-redirect',
2108  ],
2109  'targets' => [ 'desktop', 'mobile' ],
2110  ],
2111  'mediawiki.widgets.styles' => [
2112  'skinStyles' => [
2113  'default' => [
2114  'resources/src/mediawiki.widgets/mw.widgets.ComplexNamespaceInputWidget.base.css',
2115  'resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.base.css',
2116  ],
2117  ],
2118  'position' => 'top',
2119  'targets' => [ 'desktop', 'mobile' ],
2120  ],
2121  'mediawiki.widgets.DateInputWidget' => [
2122  'scripts' => [
2123  'resources/src/mediawiki.widgets/mw.widgets.CalendarWidget.js',
2124  'resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.js',
2125  ],
2126  'skinStyles' => [
2127  'default' => [
2128  'resources/src/mediawiki.widgets/mw.widgets.CalendarWidget.less',
2129  'resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.less',
2130  ],
2131  ],
2132  'messages' => [
2133  'mw-widgets-dateinput-no-date',
2134  'mw-widgets-dateinput-placeholder-day',
2135  'mw-widgets-dateinput-placeholder-month',
2136  ],
2137  'dependencies' => [
2138  'oojs-ui-widgets',
2139  'moment',
2140  ],
2141  'targets' => [ 'desktop', 'mobile' ],
2142  ],
2143  'mediawiki.widgets.datetime' => [
2144  'scripts' => [
2145  'resources/src/mediawiki.widgets.datetime/mediawiki.widgets.datetime.js',
2146  'resources/src/mediawiki.widgets.datetime/CalendarWidget.js',
2147  'resources/src/mediawiki.widgets.datetime/DateTimeFormatter.js',
2148  'resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js',
2149  'resources/src/mediawiki.widgets.datetime/ProlepticGregorianDateTimeFormatter.js',
2150  ],
2151  'skinStyles' => [
2152  'default' => [
2153  'resources/src/mediawiki.widgets.datetime/CalendarWidget.less',
2154  'resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.less',
2155  ],
2156  ],
2157  'messages' => [
2158  'timezone-utc',
2159  'timezone-local',
2160  'january',
2161  'february',
2162  'march',
2163  'april',
2164  'may_long',
2165  'june',
2166  'july',
2167  'august',
2168  'september',
2169  'october',
2170  'november',
2171  'december',
2172  'jan',
2173  'feb',
2174  'mar',
2175  'apr',
2176  'may',
2177  'jun',
2178  'jul',
2179  'aug',
2180  'sep',
2181  'oct',
2182  'nov',
2183  'dec',
2184  'sunday',
2185  'monday',
2186  'tuesday',
2187  'wednesday',
2188  'thursday',
2189  'friday',
2190  'saturday',
2191  'sun',
2192  'mon',
2193  'tue',
2194  'wed',
2195  'thu',
2196  'fri',
2197  'sat',
2198  'period-am',
2199  'period-pm',
2200  ],
2201  'dependencies' => [
2202  'oojs-ui-core',
2203  ],
2204  'targets' => [ 'desktop', 'mobile' ],
2205  ],
2206  'mediawiki.widgets.CategorySelector' => [
2207  'scripts' => [
2208  'resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js',
2209  'resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js',
2210  ],
2211  'dependencies' => [
2212  'oojs-ui-widgets',
2213  'mediawiki.api',
2214  'mediawiki.ForeignApi',
2215  'mediawiki.Title',
2216  ],
2217  'messages' => [
2218  'red-link-title',
2219  ],
2220  'targets' => [ 'desktop', 'mobile' ],
2221  ],
2222  'mediawiki.widgets.UserInputWidget' => [
2223  'scripts' => [
2224  'resources/src/mediawiki.widgets/mw.widgets.UserInputWidget.js',
2225  ],
2226  'dependencies' => [
2227  'oojs-ui-widgets',
2228  ],
2229  'targets' => [ 'desktop', 'mobile' ],
2230  ],
2231  'mediawiki.widgets.SearchInputWidget' => [
2232  'scripts' => [
2233  'resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js',
2234  ],
2235  'dependencies' => [
2236  'mediawiki.searchSuggest',
2237  // FIXME: Needs TitleInputWidget only
2238  'mediawiki.widgets',
2239  ],
2240  ],
2241  'mediawiki.widgets.SearchInputWidget.styles' => [
2242  'skinStyles' => [
2243  'default' => [
2244  'resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.css',
2245  ],
2246  ],
2247  'position' => 'top',
2248  'targets' => [ 'desktop', 'mobile' ],
2249  ],
2250  'mediawiki.widgets.StashedFileWidget' => [
2251  'scripts' => [
2252  'resources/src/mediawiki.widgets/mw.widgets.StashedFileWidget.js',
2253  ],
2254  'skinStyles' => [
2255  'default' => [
2256  'resources/src/mediawiki.widgets/mw.widgets.StashedFileWidget.less',
2257  ],
2258  ],
2259  'dependencies' => [
2260  'oojs-ui-core',
2261  ],
2262  ],
2263  /* es5-shim */
2264  'es5-shim' => [
2265  'scripts' => [
2266  'resources/lib/es5-shim/es5-shim.js',
2267  'resources/src/polyfill-object-create.js',
2268  ],
2269  'targets' => [ 'desktop', 'mobile' ],
2270  'skipFunction' => 'resources/src/es5-skip.js',
2271  ],
2272 
2273  /* dom-level2-shim */
2274  // IE 8
2275  'dom-level2-shim' => [
2276  'scripts' => 'resources/src/polyfill-nodeTypes.js',
2277  'targets' => [ 'desktop', 'mobile' ],
2278  'skipFunction' => 'resources/src/dom-level2-skip.js',
2279  ],
2280 
2281  /* OOjs */
2282  'oojs' => [
2283  'scripts' => [
2284  'resources/lib/oojs/oojs.jquery.js',
2285  'resources/src/oojs-global.js',
2286  ],
2287  'targets' => [ 'desktop', 'mobile' ],
2288  'dependencies' => [
2289  'es5-shim',
2290  'json',
2291  ],
2292  ],
2293 
2294  /* OOjs UI */
2295  // WARNING: OOjs-UI is NOT TESTED with older browsers and is likely to break
2296  // if loaded in browsers that don't support ES5
2297  // @see ResourcesOOUI.php
2298 ];
static $mMonthAbbrevMsgs
Definition: Language.php:85
static $mMonthMsgs
Definition: Language.php:75
injection txt This is an overview of how MediaWiki makes use of dependency injection The design described here grew from the discussion of RFC T384 The term dependency this means that anything an object needs to operate should be injected from the the object itself should only know narrow no concrete implementation of the logic it relies on The requirement to inject everything typically results in an architecture that based on two main types of and essentially stateless service objects that use other service objects to operate on the value objects As of the beginning MediaWiki is only starting to use the DI approach Much of the code still relies on global state or direct resulting in a highly cyclical dependency which acts as the top level factory for services in MediaWiki which can be used to gain access to default instances of various services MediaWikiServices however also allows new services to be defined and default services to be redefined Services are defined or redefined by providing a callback the instantiator that will return a new instance of the service When it will create an instance of MediaWikiServices and populate it with the services defined in the files listed by thereby bootstrapping the DI framework Per $wgServiceWiringFiles lists includes ServiceWiring php
Definition: injection.txt:35
static $mMonthGenMsgs
Definition: Language.php:80