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