1<?php
2/**
3 * This is the default English localisation file containing language specific
4 * information excluding interface strings, which are stored in JSON files.
5 *
6 * Please see https://www.mediawiki.org/wiki/Localisation for more information.
7 * To improve a translation please visit https://translatewiki.net
8 */
9
10/**
11 * Fallback language, used for all unspecified messages and behavior. This
12 * is English by default, for all files other than this one.
13 *
14 * Do NOT set this to false in any other message file! Leave the line out to
15 * accept the default fallback to "en".
16 */
17$fallback = false;
18
19/**
20 * Is the language written right-to-left?
21 */
22$rtl = false;
23
24/**
25 * Should all nouns (not just proper ones) be capitalized?
26 * Enabling this property will add the capitalize-all-nouns class to the <body> tag
27 */
28$capitalizeAllNouns = false;
29
30/**
31 * Optional array mapping ASCII digits 0-9 to local digits.
32 */
33$digitTransformTable = null;
34
35/**
36 * Transform table for decimal point '.' and thousands separator ','
37 */
38$separatorTransformTable = null;
39
40/**
41 * URLs do not specify their encoding. UTF-8 is used by default, but if the
42 * URL is not a valid UTF-8 sequence, we have to try to guess what the real
43 * encoding is. The encoding used in this case is defined below, and must be
44 * supported by iconv().
45 */
46$fallback8bitEncoding = 'windows-1252';
47
48/**
49 * To allow "foo[[bar]]" to extend the link over the whole word "foobar"
50 */
51$linkPrefixExtension = false;
52
53/**
54 * Namespace names. NS_PROJECT is always set to $wgMetaNamespace after the
55 * settings are loaded, it will be ignored even if you specify it here.
56 *
57 * NS_PROJECT_TALK will be set to $wgMetaNamespaceTalk if that variable is
58 * set, otherwise the string specified here will be used. The string may
59 * contain "$1", which will be replaced by the name of NS_PROJECT. It may
60 * also contain a grammatical transformation, e.g.
61 *
62 *     NS_PROJECT_TALK => 'Keskustelu_{{grammar:elative|$1}}'
63 *
64 * Only one grammatical transform may be specified in the string. For
65 * performance reasons, this transformation is done locally by the language
66 * module rather than by the full wikitext parser. As a result, no other
67 * parser features are available.
68 */
69$namespaceNames = [
70	NS_MEDIA            => 'Media',
71	NS_SPECIAL          => 'Special',
72	NS_MAIN             => '',
73	NS_TALK             => 'Talk',
74	NS_USER             => 'User',
75	NS_USER_TALK        => 'User_talk',
76	# NS_PROJECT set by $wgMetaNamespace
77	NS_PROJECT_TALK     => '$1_talk',
78	NS_FILE             => 'File',
79	NS_FILE_TALK        => 'File_talk',
80	NS_MEDIAWIKI        => 'MediaWiki',
81	NS_MEDIAWIKI_TALK   => 'MediaWiki_talk',
82	NS_TEMPLATE         => 'Template',
83	NS_TEMPLATE_TALK    => 'Template_talk',
84	NS_HELP             => 'Help',
85	NS_HELP_TALK        => 'Help_talk',
86	NS_CATEGORY         => 'Category',
87	NS_CATEGORY_TALK    => 'Category_talk',
88];
89
90/**
91 * Array of namespace aliases, mapping from name to NS_xxx index.
92 *
93 * Note that 'namespaceAliases' is a mergable language attribute,
94 * which means it is combined with other languages in the fallback chain.
95 */
96$namespaceAliases = [
97	// The canonical names of namespaces 6 and 7 are, as of MediaWik 1.14,
98	// "File" and "File_talk".  The old names "Image" and "Image_talk" are
99	// retained as aliases for backwards compatibility.
100	// This must apply regardless of site language (and does, given 'en' is at
101	// the end of all fallback chains.)
102	'Image' => NS_FILE,
103	'Image_talk' => NS_FILE_TALK,
104];
105
106/**
107 * Array of gender specific. namespace aliases.
108 * Mapping NS_xxx to array of GENDERKEY to alias.
109 * Example:
110 * @code
111 * $namespaceGenderAliases = [
112 *   NS_USER => [ 'male' => 'Male_user', 'female' => 'Female_user' ],
113 * ];
114 * @endcode
115 */
116$namespaceGenderAliases = [];
117
118/**
119 * A list of date format preference keys, which can be selected in user
120 * preferences. New preference keys can be added, provided they are supported
121 * by the language class's timeanddate(). Only the 5 keys listed below are
122 * supported by the wikitext converter (parser/DateFormatter.php).
123 *
124 * The special key "default" is an alias for either dmy or mdy depending on
125 * $wgAmericanDates
126 */
127$datePreferences = [
128	'default',
129	'mdy',
130	'dmy',
131	'ymd',
132	'ISO 8601',
133];
134
135/**
136 * The date format to use for generated dates in the user interface.
137 * This may be one of the above date preferences, or the special value
138 * "dmy or mdy", which uses mdy if $wgAmericanDates is true, and dmy
139 * if $wgAmericanDates is false.
140 */
141$defaultDateFormat = 'dmy or mdy';
142
143/**
144 * Associative array mapping old numeric date formats, which may still be
145 * stored in user preferences, to the new string formats.
146 */
147$datePreferenceMigrationMap = [
148	'default',
149	'mdy',
150	'dmy',
151	'ymd'
152];
153
154/**
155 * These are formats for dates generated by MediaWiki (as opposed to the wikitext
156 * DateFormatter). Documentation for the format string can be found in
157 * Language.php, search for sprintfDate.
158 *
159 * This array is automatically inherited by all subclasses. Individual keys can be
160 * overridden.
161 */
162$dateFormats = [
163	'mdy time' => 'H:i',
164	'mdy date' => 'F j, Y',
165	'mdy monthonly' => 'F Y',
166	'mdy both' => 'H:i, F j, Y',
167	'mdy pretty' => 'F j',
168
169	'dmy time' => 'H:i',
170	'dmy date' => 'j F Y',
171	'dmy monthonly' => 'F Y',
172	'dmy both' => 'H:i, j F Y',
173	'dmy pretty' => 'j F',
174
175	'ymd time' => 'H:i',
176	'ymd date' => 'Y F j',
177	'ymd monthonly' => 'Y F',
178	'ymd both' => 'H:i, Y F j',
179	'ymd pretty' => 'F j',
180
181	'ISO 8601 time' => 'xnH:xni:xns',
182	'ISO 8601 date' => 'xnY-xnm-xnd',
183	'ISO 8601 monthonly' => 'xnY-xnm',
184	'ISO 8601 both' => 'xnY-xnm-xnd"T"xnH:xni:xns',
185	'ISO 8601 pretty' => 'xnm-xnd'
186];
187
188/**
189 * Default list of book sources
190 */
191$bookstoreList = [
192	'BWB' => 'https://www.betterworldbooks.com/product/detail/-$1',
193	'OpenLibrary' => 'https://openlibrary.org/isbn/$1',
194	'Worldcat' => 'https://www.worldcat.org/search?q=isbn:$1',
195];
196
197/**
198 * Magic words
199 * Customizable syntax for wikitext and elsewhere.
200 *
201 * IDs must be valid identifiers, they cannot contain hyphens.
202 * CASE is 0 to match all case variants, 1 for case-sensitive
203 *
204 * Note to localisers:
205 *   - Include the English magic words as synonyms. This allows people from
206 *     other wikis that do not speak the language to contribute more easily.
207 *   - The first alias listed MUST be the preferred alias in that language.
208 *     Tools (like Visual Editor) are expected to use the first listed alias
209 *     when editing or creating new content.
210 *   - Order the other aliases so that common aliases occur before more rarely
211 *     used aliases. The aliases SHOULD be sorted by the following convention:
212 *     1. Local first, English last, then
213 *     2. Most common first, least common last.
214 * @phpcs-require-sorted-array
215 */
216$magicWords = [
217#   ID                               CASE  SYNONYMS
218	'!'                       => [ 1, '!' ],
219	'anchorencode'            => [ 0, 'ANCHORENCODE' ],
220	'articlepath'             => [ 0, 'ARTICLEPATH' ],
221	'basepagename'            => [ 1, 'BASEPAGENAME' ],
222	'basepagenamee'           => [ 1, 'BASEPAGENAMEE' ],
223	'bidi'                    => [ 0, 'BIDI:' ],
224	'canonicalurl'            => [ 0, 'CANONICALURL:' ],
225	'canonicalurle'           => [ 0, 'CANONICALURLE:' ],
226	'cascadingsources'        => [ 1, 'CASCADINGSOURCES' ],
227	'contentlanguage'         => [ 1, 'CONTENTLANGUAGE', 'CONTENTLANG' ],
228	'currentday'              => [ 1, 'CURRENTDAY' ],
229	'currentday2'             => [ 1, 'CURRENTDAY2' ],
230	'currentdayname'          => [ 1, 'CURRENTDAYNAME' ],
231	'currentdow'              => [ 1, 'CURRENTDOW' ],
232	'currenthour'             => [ 1, 'CURRENTHOUR' ],
233	'currentmonth'            => [ 1, 'CURRENTMONTH', 'CURRENTMONTH2' ],
234	'currentmonth1'           => [ 1, 'CURRENTMONTH1' ],
235	'currentmonthabbrev'      => [ 1, 'CURRENTMONTHABBREV' ],
236	'currentmonthname'        => [ 1, 'CURRENTMONTHNAME' ],
237	'currentmonthnamegen'     => [ 1, 'CURRENTMONTHNAMEGEN' ],
238	'currenttime'             => [ 1, 'CURRENTTIME' ],
239	'currenttimestamp'        => [ 1, 'CURRENTTIMESTAMP' ],
240	'currentversion'          => [ 1, 'CURRENTVERSION' ],
241	'currentweek'             => [ 1, 'CURRENTWEEK' ],
242	'currentyear'             => [ 1, 'CURRENTYEAR' ],
243	'defaultsort'             => [ 1, 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ],
244	'defaultsort_noerror'     => [ 0, 'noerror' ],
245	'defaultsort_noreplace'   => [ 0, 'noreplace' ],
246	'directionmark'           => [ 1, 'DIRECTIONMARK', 'DIRMARK' ],
247	'displaytitle'            => [ 1, 'DISPLAYTITLE' ],
248	'displaytitle_noerror'    => [ 0, 'noerror' ],
249	'displaytitle_noreplace'  => [ 0, 'noreplace' ],
250	'expectunusedcategory'    => [ 1, '__EXPECTUNUSEDCATEGORY__', ],
251	'filepath'                => [ 0, 'FILEPATH:' ],
252	'forcetoc'                => [ 0, '__FORCETOC__' ],
253	'formatdate'              => [ 0, 'formatdate', 'dateformat' ],
254	'formatnum'               => [ 0, 'FORMATNUM' ],
255	'fullpagename'            => [ 1, 'FULLPAGENAME' ],
256	'fullpagenamee'           => [ 1, 'FULLPAGENAMEE' ],
257	'fullurl'                 => [ 0, 'FULLURL:' ],
258	'fullurle'                => [ 0, 'FULLURLE:' ],
259	'gender'                  => [ 0, 'GENDER:' ],
260	'grammar'                 => [ 0, 'GRAMMAR:' ],
261	'hiddencat'               => [ 1, '__HIDDENCAT__' ],
262	'img_alt'                 => [ 1, 'alt=$1' ],
263	'img_baseline'            => [ 1, 'baseline' ],
264	'img_border'              => [ 1, 'border' ],
265	'img_bottom'              => [ 1, 'bottom' ],
266	'img_center'              => [ 1, 'center', 'centre' ],
267	'img_class'               => [ 1, 'class=$1' ],
268	'img_framed'              => [ 1, 'frame', 'framed', 'enframed' ],
269	'img_frameless'           => [ 1, 'frameless' ],
270	'img_lang'                => [ 1, 'lang=$1' ],
271	'img_left'                => [ 1, 'left' ],
272	'img_link'                => [ 1, 'link=$1' ],
273	'img_manualthumb'         => [ 1, 'thumbnail=$1', 'thumb=$1' ],
274	'img_middle'              => [ 1, 'middle' ],
275	'img_none'                => [ 1, 'none' ],
276	'img_page'                => [ 1, 'page=$1', 'page $1' ],
277	'img_right'               => [ 1, 'right' ],
278	'img_sub'                 => [ 1, 'sub' ],
279	'img_super'               => [ 1, 'super', 'sup' ],
280	'img_text_bottom'         => [ 1, 'text-bottom' ],
281	'img_text_top'            => [ 1, 'text-top' ],
282	'img_thumbnail'           => [ 1, 'thumb', 'thumbnail' ],
283	'img_top'                 => [ 1, 'top' ],
284	'img_upright'             => [ 1, 'upright', 'upright=$1', 'upright $1' ],
285	'img_width'               => [ 1, '$1px' ],
286	'index'                   => [ 1, '__INDEX__' ],
287	'int'                     => [ 0, 'INT:' ],
288	'language'                => [ 0, '#LANGUAGE:' ],
289	'lc'                      => [ 0, 'LC:' ],
290	'lcfirst'                 => [ 0, 'LCFIRST:' ],
291	'localday'                => [ 1, 'LOCALDAY' ],
292	'localday2'               => [ 1, 'LOCALDAY2' ],
293	'localdayname'            => [ 1, 'LOCALDAYNAME' ],
294	'localdow'                => [ 1, 'LOCALDOW' ],
295	'localhour'               => [ 1, 'LOCALHOUR' ],
296	'localmonth'              => [ 1, 'LOCALMONTH', 'LOCALMONTH2' ],
297	'localmonth1'             => [ 1, 'LOCALMONTH1' ],
298	'localmonthabbrev'        => [ 1, 'LOCALMONTHABBREV' ],
299	'localmonthname'          => [ 1, 'LOCALMONTHNAME' ],
300	'localmonthnamegen'       => [ 1, 'LOCALMONTHNAMEGEN' ],
301	'localtime'               => [ 1, 'LOCALTIME' ],
302	'localtimestamp'          => [ 1, 'LOCALTIMESTAMP' ],
303	'localurl'                => [ 0, 'LOCALURL:' ],
304	'localurle'               => [ 0, 'LOCALURLE:' ],
305	'localweek'               => [ 1, 'LOCALWEEK' ],
306	'localyear'               => [ 1, 'LOCALYEAR' ],
307	'msg'                     => [ 0, 'MSG:' ],
308	'msgnw'                   => [ 0, 'MSGNW:' ],
309	'namespace'               => [ 1, 'NAMESPACE' ],
310	'namespacee'              => [ 1, 'NAMESPACEE' ],
311	'namespacenumber'         => [ 1, 'NAMESPACENUMBER' ],
312	'newsectionlink'          => [ 1, '__NEWSECTIONLINK__' ],
313	'nocommafysuffix'         => [ 0, 'NOSEP' ],
314	'nocontentconvert'        => [ 0, '__NOCONTENTCONVERT__', '__NOCC__' ],
315	'noeditsection'           => [ 0, '__NOEDITSECTION__' ],
316	'nogallery'               => [ 0, '__NOGALLERY__' ],
317	'noindex'                 => [ 1, '__NOINDEX__' ],
318	'nonewsectionlink'        => [ 1, '__NONEWSECTIONLINK__' ],
319	'notitleconvert'          => [ 0, '__NOTITLECONVERT__', '__NOTC__' ],
320	'notoc'                   => [ 0, '__NOTOC__' ],
321	'ns'                      => [ 0, 'NS:' ],
322	'nse'                     => [ 0, 'NSE:' ],
323	'numberingroup'           => [ 1, 'NUMBERINGROUP', 'NUMINGROUP' ],
324	'numberofactiveusers'     => [ 1, 'NUMBEROFACTIVEUSERS' ],
325	'numberofadmins'          => [ 1, 'NUMBEROFADMINS' ],
326	'numberofarticles'        => [ 1, 'NUMBEROFARTICLES' ],
327	'numberofedits'           => [ 1, 'NUMBEROFEDITS' ],
328	'numberoffiles'           => [ 1, 'NUMBEROFFILES' ],
329	'numberofpages'           => [ 1, 'NUMBEROFPAGES' ],
330	'numberofusers'           => [ 1, 'NUMBEROFUSERS' ],
331	'padleft'                 => [ 0, 'PADLEFT' ],
332	'padright'                => [ 0, 'PADRIGHT' ],
333	'pageid'                  => [ 0, 'PAGEID' ],
334	'pagelanguage'            => [ 1, 'PAGELANGUAGE' ],
335	'pagename'                => [ 1, 'PAGENAME' ],
336	'pagenamee'               => [ 1, 'PAGENAMEE' ],
337	'pagesincategory'         => [ 1, 'PAGESINCATEGORY', 'PAGESINCAT' ],
338	'pagesincategory_all'     => [ 0, 'all' ],
339	'pagesincategory_files'   => [ 0, 'files' ],
340	'pagesincategory_pages'   => [ 0, 'pages' ],
341	'pagesincategory_subcats' => [ 0, 'subcats' ],
342	'pagesinnamespace'        => [ 1, 'PAGESINNAMESPACE:', 'PAGESINNS:' ],
343	'pagesize'                => [ 1, 'PAGESIZE' ],
344	'plural'                  => [ 0, 'PLURAL:' ],
345	'protectionexpiry'        => [ 1, 'PROTECTIONEXPIRY' ],
346	'protectionlevel'         => [ 1, 'PROTECTIONLEVEL' ],
347	'raw'                     => [ 0, 'RAW:' ],
348	'rawsuffix'               => [ 1, 'R' ],
349	'redirect'                => [ 0, '#REDIRECT' ],
350	'revisionday'             => [ 1, 'REVISIONDAY' ],
351	'revisionday2'            => [ 1, 'REVISIONDAY2' ],
352	'revisionid'              => [ 1, 'REVISIONID' ],
353	'revisionmonth'           => [ 1, 'REVISIONMONTH' ],
354	'revisionmonth1'          => [ 1, 'REVISIONMONTH1' ],
355	'revisionsize'            => [ 1, 'REVISIONSIZE' ],
356	'revisiontimestamp'       => [ 1, 'REVISIONTIMESTAMP' ],
357	'revisionuser'            => [ 1, 'REVISIONUSER' ],
358	'revisionyear'            => [ 1, 'REVISIONYEAR' ],
359	'rootpagename'            => [ 1, 'ROOTPAGENAME' ],
360	'rootpagenamee'           => [ 1, 'ROOTPAGENAMEE' ],
361	'safesubst'               => [ 0, 'SAFESUBST:' ],
362	'scriptpath'              => [ 0, 'SCRIPTPATH' ],
363	'server'                  => [ 0, 'SERVER' ],
364	'servername'              => [ 0, 'SERVERNAME' ],
365	'sitename'                => [ 1, 'SITENAME' ],
366	'special'                 => [ 0, 'special' ],
367	'speciale'                => [ 0, 'speciale' ],
368	'staticredirect'          => [ 1, '__STATICREDIRECT__' ],
369	'stylepath'               => [ 0, 'STYLEPATH' ],
370	'subjectpagename'         => [ 1, 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ],
371	'subjectpagenamee'        => [ 1, 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ],
372	'subjectspace'            => [ 1, 'SUBJECTSPACE', 'ARTICLESPACE' ],
373	'subjectspacee'           => [ 1, 'SUBJECTSPACEE', 'ARTICLESPACEE' ],
374	'subpagename'             => [ 1, 'SUBPAGENAME' ],
375	'subpagenamee'            => [ 1, 'SUBPAGENAMEE' ],
376	'subst'                   => [ 0, 'SUBST:' ],
377	'tag'                     => [ 0, 'tag' ],
378	'talkpagename'            => [ 1, 'TALKPAGENAME' ],
379	'talkpagenamee'           => [ 1, 'TALKPAGENAMEE' ],
380	'talkspace'               => [ 1, 'TALKSPACE' ],
381	'talkspacee'              => [ 1, 'TALKSPACEE' ],
382	'toc'                     => [ 0, '__TOC__' ],
383	'uc'                      => [ 0, 'UC:' ],
384	'ucfirst'                 => [ 0, 'UCFIRST:' ],
385	'urlencode'               => [ 0, 'URLENCODE:' ],
386	'url_path'                => [ 0, 'PATH' ],
387	'url_query'               => [ 0, 'QUERY' ],
388	'url_wiki'                => [ 0, 'WIKI' ],
389];
390
391/**
392 * Alternate names of special pages. All names are case-insensitive. The first
393 * listed alias will be used as the default. Aliases from the fallback
394 * localisation (usually English) will be included by default.
395 * @phpcs-require-sorted-array
396 */
397$specialPageAliases = [
398	'Activeusers'               => [ 'ActiveUsers' ],
399	'Allmessages'               => [ 'AllMessages' ],
400	'AllMyUploads'              => [ 'AllMyUploads', 'AllMyFiles' ],
401	'Allpages'                  => [ 'AllPages' ],
402	'Ancientpages'              => [ 'AncientPages' ],
403	'ApiHelp'                   => [ 'ApiHelp' ],
404	'ApiSandbox'                => [ 'ApiSandbox' ],
405	'AutoblockList'             => [ 'AutoblockList', 'ListAutoblocks' ],
406	'Badtitle'                  => [ 'Badtitle' ],
407	'Blankpage'                 => [ 'BlankPage' ],
408	'Block'                     => [ 'Block', 'BlockIP', 'BlockUser' ],
409	'BlockList'                 => [ 'BlockList', 'ListBlocks', 'IPBlockList' ],
410	'Booksources'               => [ 'BookSources' ],
411	'BotPasswords'              => [ 'BotPasswords' ],
412	'BrokenRedirects'           => [ 'BrokenRedirects' ],
413	'Categories'                => [ 'Categories' ],
414	'ChangeContentModel'        => [ 'ChangeContentModel' ],
415	'ChangeCredentials'         => [ 'ChangeCredentials' ],
416	'ChangeEmail'               => [ 'ChangeEmail' ],
417	'ChangePassword'            => [ 'ChangePassword', 'ResetPass', 'ResetPassword' ],
418	'ComparePages'              => [ 'ComparePages' ],
419	'Confirmemail'              => [ 'ConfirmEmail' ],
420	'Contributions'             => [ 'Contributions', 'Contribs' ],
421	'CreateAccount'             => [ 'CreateAccount' ],
422	'Deadendpages'              => [ 'DeadendPages' ],
423	'DeletedContributions'      => [ 'DeletedContributions' ],
424	'Diff'                      => [ 'Diff' ],
425	'DoubleRedirects'           => [ 'DoubleRedirects' ],
426	'EditPage'                  => [ 'EditPage', 'Edit' ],
427	'EditTags'                  => [ 'EditTags' ],
428	'EditWatchlist'             => [ 'EditWatchlist' ],
429	'Emailuser'                 => [ 'EmailUser', 'Email' ],
430	'ExpandTemplates'           => [ 'ExpandTemplates' ],
431	'Export'                    => [ 'Export' ],
432	'Fewestrevisions'           => [ 'FewestRevisions' ],
433	'FileDuplicateSearch'       => [ 'FileDuplicateSearch' ],
434	'Filepath'                  => [ 'FilePath' ],
435	'GoToInterwiki'             => [ 'GoToInterwiki' ],
436	'Import'                    => [ 'Import' ],
437	'Invalidateemail'           => [ 'InvalidateEmail' ],
438	'JavaScriptTest'            => [ 'JavaScriptTest' ],
439	'LinkAccounts'              => [ 'LinkAccounts' ],
440	'LinkSearch'                => [ 'LinkSearch' ],
441	'Listadmins'                => [ 'ListAdmins' ],
442	'Listbots'                  => [ 'ListBots' ],
443	'ListDuplicatedFiles'       => [ 'ListDuplicatedFiles', 'ListFileDuplicates' ],
444	'Listfiles'                 => [ 'ListFiles', 'FileList', 'ImageList' ],
445	'Listgrants'                => [ 'ListGrants' ],
446	'Listgrouprights'           => [ 'ListGroupRights', 'UserGroupRights' ],
447	'Listredirects'             => [ 'ListRedirects' ],
448	'Listusers'                 => [ 'ListUsers', 'UserList', 'Users' ],
449	'Lockdb'                    => [ 'LockDB' ],
450	'Log'                       => [ 'Log', 'Logs' ],
451	'Lonelypages'               => [ 'LonelyPages', 'OrphanedPages' ],
452	'Longpages'                 => [ 'LongPages' ],
453	'MediaStatistics'           => [ 'MediaStatistics' ],
454	'MergeHistory'              => [ 'MergeHistory' ],
455	'MIMEsearch'                => [ 'MIMESearch' ],
456	'Mostcategories'            => [ 'MostCategories' ],
457	'Mostimages'                => [ 'MostLinkedFiles', 'MostFiles', 'MostImages' ],
458	'Mostinterwikis'            => [ 'MostInterwikis' ],
459	'Mostlinked'                => [ 'MostLinkedPages', 'MostLinked' ],
460	'Mostlinkedcategories'      => [ 'MostLinkedCategories', 'MostUsedCategories' ],
461	'Mostlinkedtemplates'       => [ 'MostTranscludedPages', 'MostLinkedTemplates', 'MostUsedTemplates' ],
462	'Mostrevisions'             => [ 'MostRevisions' ],
463	'Movepage'                  => [ 'MovePage' ],
464	'Mute'                      => [ 'Mute' ],
465	'Mycontributions'           => [ 'MyContributions' ],
466	'MyLanguage'                => [ 'MyLanguage' ],
467	'Mypage'                    => [ 'MyPage' ],
468	'Mytalk'                    => [ 'MyTalk' ],
469	'Myuploads'                 => [ 'MyUploads', 'MyFiles' ],
470	'Newimages'                 => [ 'NewFiles', 'NewImages' ],
471	'Newpages'                  => [ 'NewPages' ],
472	'NewSection'                => [ 'NewSection', 'Newsection' ],
473	'PageData'                  => [ 'PageData' ],
474	'PageHistory'               => [ 'PageHistory', 'History' ],
475	'PageInfo'                  => [ 'PageInfo', 'Info' ],
476	'PageLanguage'              => [ 'PageLanguage' ],
477	'PagesWithProp'             => [ 'PagesWithProp', 'Pageswithprop', 'PagesByProp', 'Pagesbyprop' ],
478	'PasswordPolicies'          => [ 'PasswordPolicies' ],
479	'PasswordReset'             => [ 'PasswordReset' ],
480	'PermanentLink'             => [ 'PermanentLink', 'PermaLink' ],
481	'Preferences'               => [ 'Preferences' ],
482	'Prefixindex'               => [ 'PrefixIndex' ],
483	'Protectedpages'            => [ 'ProtectedPages' ],
484	'Protectedtitles'           => [ 'ProtectedTitles' ],
485	'Purge'                     => [ 'Purge' ],
486	'RandomInCategory'          => [ 'RandomInCategory' ],
487	'Randompage'                => [ 'Random', 'RandomPage' ],
488	'Randomredirect'            => [ 'RandomRedirect' ],
489	'Randomrootpage'            => [ 'RandomRootpage' ],
490	'Recentchanges'             => [ 'RecentChanges' ],
491	'Recentchangeslinked'       => [ 'RecentChangesLinked', 'RelatedChanges' ],
492	'Redirect'                  => [ 'Redirect' ],
493	'RemoveCredentials'         => [ 'RemoveCredentials' ],
494	'ResetTokens'               => [ 'ResetTokens' ],
495	'Revisiondelete'            => [ 'RevisionDelete' ],
496	'RunJobs'                   => [ 'RunJobs' ],
497	'Search'                    => [ 'Search' ],
498	'Shortpages'                => [ 'ShortPages' ],
499	'Specialpages'              => [ 'SpecialPages' ],
500	'Statistics'                => [ 'Statistics', 'Stats' ],
501	'Tags'                      => [ 'Tags' ],
502	'TrackingCategories'        => [ 'TrackingCategories' ],
503	'Unblock'                   => [ 'Unblock' ],
504	'Uncategorizedcategories'   => [ 'UncategorizedCategories' ],
505	'Uncategorizedimages'       => [ 'UncategorizedFiles', 'UncategorizedImages' ],
506	'Uncategorizedpages'        => [ 'UncategorizedPages' ],
507	'Uncategorizedtemplates'    => [ 'UncategorizedTemplates' ],
508	'Undelete'                  => [ 'Undelete' ],
509	'UnlinkAccounts'            => [ 'UnlinkAccounts' ],
510	'Unlockdb'                  => [ 'UnlockDB' ],
511	'Unusedcategories'          => [ 'UnusedCategories' ],
512	'Unusedimages'              => [ 'UnusedFiles', 'UnusedImages' ],
513	'Unusedtemplates'           => [ 'UnusedTemplates' ],
514	'Unwatchedpages'            => [ 'UnwatchedPages' ],
515	'Upload'                    => [ 'Upload' ],
516	'UploadStash'               => [ 'UploadStash' ],
517	'Userlogin'                 => [ 'UserLogin', 'Login' ],
518	'Userlogout'                => [ 'UserLogout', 'Logout' ],
519	'Userrights'                => [ 'UserRights', 'MakeSysop', 'MakeBot' ],
520	'Version'                   => [ 'Version' ],
521	'Wantedcategories'          => [ 'WantedCategories' ],
522	'Wantedfiles'               => [ 'WantedFiles' ],
523	'Wantedpages'               => [ 'WantedPages', 'BrokenLinks' ],
524	'Wantedtemplates'           => [ 'WantedTemplates' ],
525	'Watchlist'                 => [ 'Watchlist' ],
526	'Whatlinkshere'             => [ 'WhatLinksHere' ],
527	'Withoutinterwiki'          => [ 'WithoutInterwiki' ],
528];
529
530/**
531 * Regular expression matching the "link trail", e.g. "ed" in [[Toast]]ed, as
532 * the first group, and the remainder of the string as the second group.
533 */
534$linkTrail = '/^([a-z]+)(.*)$/sD';
535
536/**
537 * Regular expression charset matching the "link prefix", e.g. "foo" in
538 * foo[[bar]]. UTF-8 characters may be used.
539 */
540$linkPrefixCharset = 'a-zA-Z\\x{80}-\\x{10ffff}';
541
542/**
543 * A list of messages to preload for each request.
544 * Here we add messages that are needed for a typical anonymous parser cache hit.
545 */
546$preloadedMessages = [
547	'aboutpage',
548	'aboutsite',
549	'accesskey-ca-edit',
550	'accesskey-ca-history',
551	'accesskey-ca-nstab-main',
552	'accesskey-ca-talk',
553	'accesskey-ca-viewsource',
554	'accesskey-n-currentevents',
555	'accesskey-n-help',
556	'accesskey-n-mainpage-description',
557	'accesskey-n-portal',
558	'accesskey-n-randompage',
559	'accesskey-n-recentchanges',
560	'accesskey-p-logo',
561	'accesskey-pt-login',
562	'accesskey-pt-createaccount',
563	'accesskey-search',
564	'accesskey-search-fulltext',
565	'accesskey-search-go',
566	'accesskey-t-info',
567	'accesskey-t-permalink',
568	'accesskey-t-print',
569	'accesskey-t-recentchangeslinked',
570	'accesskey-t-specialpages',
571	'accesskey-t-whatlinkshere',
572	'actions',
573	'anonnotice',
574	'brackets',
575	'comma-separator',
576	'currentevents',
577	'currentevents-url',
578	'disclaimerpage',
579	'disclaimers',
580	'edit',
581	'editsection',
582	'editsectionhint',
583	'help',
584	'helppage',
585	'interlanguage-link-title',
586	'jumpto',
587	'jumptonavigation',
588	'jumptosearch',
589	'lastmodifiedat',
590	'mainpage',
591	'mainpage-description',
592	'mainpage-nstab',
593	'namespaces',
594	'navigation',
595	'nav-login-createaccount',
596	'nstab-main',
597	'opensearch-desc',
598	'pagecategories',
599	'pagecategorieslink',
600	'pagetitle',
601	'pagetitle-view-mainpage',
602	'permalink',
603	'personaltools',
604	'portal',
605	'portal-url',
606	'printableversion',
607	'privacy',
608	'privacypage',
609	'randompage',
610	'randompage-url',
611	'recentchanges',
612	'recentchangeslinked-toolbox',
613	'recentchanges-url',
614	'retrievedfrom',
615	'search',
616	'searcharticle',
617	'searchbutton',
618	'searchsuggest-search',
619	'sidebar',
620	'navigation-heading',
621	'site-atom-feed',
622	'sitenotice',
623	'specialpages',
624	'tagline',
625	'talk',
626	'toolbox',
627	'tooltip-ca-edit',
628	'tooltip-ca-history',
629	'tooltip-ca-nstab-main',
630	'tooltip-ca-talk',
631	'tooltip-ca-viewsource',
632	'tooltip-n-currentevents',
633	'tooltip-n-help',
634	'tooltip-n-mainpage-description',
635	'tooltip-n-portal',
636	'tooltip-n-randompage',
637	'tooltip-n-recentchanges',
638	'tooltip-p-logo',
639	'tooltip-pt-login',
640	'tooltip-pt-createaccount',
641	'tooltip-search',
642	'tooltip-search-fulltext',
643	'tooltip-search-go',
644	'tooltip-t-info',
645	'tooltip-t-permalink',
646	'tooltip-t-print',
647	'tooltip-t-recentchangeslinked',
648	'tooltip-t-specialpages',
649	'tooltip-t-whatlinkshere',
650	'variants',
651	'vector-view-edit',
652	'vector-view-history',
653	'vector-view-view',
654	'viewcount',
655	'views',
656	'whatlinkshere',
657	'word-separator',
658];
659
660$digitGroupingPattern = "#,##0.###";
661