Merge "Auto-forward to search suggestion when zero results"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 27 Jul 2015 21:05:07 +0000 (21:05 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 27 Jul 2015 21:05:07 +0000 (21:05 +0000)
1  2 
includes/DefaultSettings.php
languages/i18n/en.json
languages/i18n/qqq.json

@@@ -1021,7 -1021,7 +1021,7 @@@ $wgSVGConverterPath = ''
  /**
   * Don't scale a SVG larger than this
   */
 -$wgSVGMaxSize = 2048;
 +$wgSVGMaxSize = 5120;
  
  /**
   * Don't read SVG metadata beyond this point.
@@@ -1597,8 -1597,7 +1597,8 @@@ $wgEnotifRevealEditorAddress = false
  
  /**
   * Send notification mails on minor edits to watchlist pages. This is enabled
 - * by default. Does not affect user talk notifications.
 + * by default. User talk notifications are affected by this, $wgEnotifUserTalk, and
 + * the nominornewtalk user right.
   */
  $wgEnotifMinorEdits = true;
  
@@@ -1623,6 -1622,15 +1623,6 @@@ $wgEnotifMaxRecips = 500
   */
  $wgEnotifUseJobQ = false;
  
 -/**
 - * Use the job queue for user activity updates like updating "last visited"
 - * fields for email notifications of page changes. This should only be enabled
 - * if the jobs have a dedicated runner to avoid update lag.
 - *
 - * @since 1.26
 - */
 -$wgActivityUpdatesUseJobQueue = false;
 -
  /**
   * Use real name instead of username in e-mail "from" field.
   */
@@@ -2533,16 -2541,13 +2533,16 @@@ $wgInternalServer = false
  /**
   * Cache timeout for the squid, will be sent as s-maxage (without ESI) or
   * Surrogate-Control (with ESI). Without ESI, you should strip out s-maxage in
 - * the Squid config. 18000 seconds = 5 hours, more cache hits with 2678400 = 31
 - * days
 + * the Squid config.
 + *
 +* 18000 seconds = 5 hours, more cache hits with 2678400 = 31 days.
   */
  $wgSquidMaxage = 18000;
  
  /**
   * Default maximum age for raw CSS/JS accesses
 + *
 + * 300 seconds = 5 minutes.
   */
  $wgForcedRawSMaxage = 300;
  
@@@ -4439,7 -4444,7 +4439,7 @@@ $wgPasswordConfig = array
   */
  $wgPasswordResetRoutes = array(
        'username' => true,
 -      'email' => false,
 +      'email' => true,
  );
  
  /**
@@@ -5688,29 -5693,6 +5688,29 @@@ $wgAggregateStatsID = false
   */
  $wgStatsFormatString = "stats/%s - %s 1 1 1 1 %s\n";
  
 +/**
 + * Destination of statsd metrics.
 + *
 + * A host or host:port of a statsd server. Port defaults to 8125.
 + *
 + * If not set, statsd metrics will not be collected.
 + *
 + * @see wfLogProfilingData
 + * @since 1.25
 + */
 +$wgStatsdServer = false;
 +
 +/**
 + * Prefix for metric names sent to wgStatsdServer.
 + *
 + * Defaults to "MediaWiki".
 + *
 + * @see RequestContext::getStats
 + * @see BufferingStatsdDataFactory
 + * @since 1.25
 + */
 +$wgStatsdMetricPrefix = false;
 +
  /**
   * InfoAction retrieves a list of transclusion links (both to and from).
   * This number puts a limit on that query in the case of highly transcluded
@@@ -6043,21 -6025,6 +6043,21 @@@ $wgGitRepositoryViewers = array
   */
  $wgRCMaxAge = 90 * 24 * 3600;
  
 +/**
 + * Page watchers inactive for more than this many seconds are considered inactive.
 + * Used mainly by action=info. Default: 180 days = about six months.
 + * @since 1.26
 + */
 +$wgWatchersMaxAge = 180 * 24 * 3600;
 +
 +/**
 + * If active watchers (per above) are this number or less, do not disclose it.
 + * Left to 1, prevents unprivileged users from knowing for sure that there are 0.
 + * Set to -1 if you want to always complement watchers count with this info.
 + * @since 1.26
 + */
 +$wgUnwatchedPageSecret = 1;
 +
  /**
   * Filter $wgRCLinkDays by $wgRCMaxAge to avoid showing links for numbers
   * higher than what will be stored. Note that this is disabled by default
@@@ -6727,7 -6694,7 +6727,7 @@@ $wgJobSerialCommitThreshold = false
   * These settings should be global to all wikis.
   */
  $wgJobTypeConf = array(
 -      'default' => array( 'class' => 'JobQueueDB', 'order' => 'random' ),
 +      'default' => array( 'class' => 'JobQueueDB', 'order' => 'random', 'claimTTL' => 3600 ),
  );
  
  /**
@@@ -6919,15 -6886,15 +6919,15 @@@ $wgLogNames = array
  $wgLogHeaders = array(
        '' => 'alllogstext',
        'block' => 'blocklogtext',
 -      'protect' => 'protectlogtext',
 -      'rights' => 'rightslogtext',
        'delete' => 'dellogpagetext',
 -      'upload' => 'uploadlogpagetext',
 -      'move' => 'movelogpagetext',
        'import' => 'importlogpagetext',
 -      'patrol' => 'patrol-log-header',
        'merge' => 'mergelogpagetext',
 +      'move' => 'movelogpagetext',
 +      'patrol' => 'patrol-log-header',
 +      'protect' => 'protectlogtext',
 +      'rights' => 'rightslogtext',
        'suppress' => 'suppressionlogtext',
 +      'upload' => 'uploadlogpagetext',
  );
  
  /**
   * Extensions with custom log types may add to this array.
   */
  $wgLogActions = array(
 -      'protect/protect' => 'protectedarticle',
        'protect/modify' => 'modifiedarticleprotection',
 -      'protect/unprotect' => 'unprotectedarticle',
        'protect/move_prot' => 'movedarticleprotection',
 +      'protect/protect' => 'protectedarticle',
 +      'protect/unprotect' => 'unprotectedarticle',
  );
  
  /**
   * @see LogFormatter
   */
  $wgLogActionsHandlers = array(
 -      'move/move' => 'MoveLogFormatter',
 -      'move/move_redir' => 'MoveLogFormatter',
 +      'block/block' => 'BlockLogFormatter',
 +      'block/reblock' => 'BlockLogFormatter',
 +      'block/unblock' => 'BlockLogFormatter',
 +      'contentmodel/change' => 'ContentModelLogFormatter',
        'delete/delete' => 'DeleteLogFormatter',
 +      'delete/event' => 'DeleteLogFormatter',
        'delete/restore' => 'DeleteLogFormatter',
        'delete/revision' => 'DeleteLogFormatter',
 -      'delete/event' => 'DeleteLogFormatter',
 -      'suppress/revision' => 'DeleteLogFormatter',
 -      'suppress/event' => 'DeleteLogFormatter',
 -      'suppress/delete' => 'DeleteLogFormatter',
 -      'patrol/patrol' => 'PatrolLogFormatter',
 -      'rights/rights' => 'RightsLogFormatter',
 -      'rights/autopromote' => 'RightsLogFormatter',
 -      'upload/upload' => 'UploadLogFormatter',
 -      'upload/overwrite' => 'UploadLogFormatter',
 -      'upload/revert' => 'UploadLogFormatter',
 -      'merge/merge' => 'MergeLogFormatter',
 -      'tag/update' => 'TagLogFormatter',
 -      'managetags/create' => 'LogFormatter',
 -      'managetags/delete' => 'LogFormatter',
 +      'import/interwiki' => 'LogFormatter',
 +      'import/upload' => 'LogFormatter',
        'managetags/activate' => 'LogFormatter',
 +      'managetags/create' => 'LogFormatter',
        'managetags/deactivate' => 'LogFormatter',
 -      'block/block' => 'BlockLogFormatter',
 -      'block/unblock' => 'BlockLogFormatter',
 -      'block/reblock' => 'BlockLogFormatter',
 +      'managetags/delete' => 'LogFormatter',
 +      'merge/merge' => 'MergeLogFormatter',
 +      'move/move' => 'MoveLogFormatter',
 +      'move/move_redir' => 'MoveLogFormatter',
 +      'patrol/patrol' => 'PatrolLogFormatter',
 +      'rights/autopromote' => 'RightsLogFormatter',
 +      'rights/rights' => 'RightsLogFormatter',
        'suppress/block' => 'BlockLogFormatter',
 +      'suppress/delete' => 'DeleteLogFormatter',
 +      'suppress/event' => 'DeleteLogFormatter',
        'suppress/reblock' => 'BlockLogFormatter',
 -      'import/upload' => 'LogFormatter',
 -      'import/interwiki' => 'LogFormatter',
 -      'contentmodel/change' => 'ContentModelLogFormatter',
 +      'suppress/revision' => 'DeleteLogFormatter',
 +      'tag/update' => 'TagLogFormatter',
 +      'upload/overwrite' => 'UploadLogFormatter',
 +      'upload/revert' => 'UploadLogFormatter',
 +      'upload/upload' => 'UploadLogFormatter',
  );
  
  /**
@@@ -7712,6 -7679,16 +7712,16 @@@ $wgVirtualRestConfig = array
        )
  );
  
+ /**
+  * Controls the percentage of zero-result search queries with suggestions that
+  * run the suggestion automatically. Must be a number between 0 and 1.  This
+  * can be lowered to reduce query volume at the expense of result quality.
+  *
+  * @var float
+  * @since 1.26
+  */
+ $wgSearchRunSuggestedQueryPercent = 1;
  /**
   * For really cool vim folding this needs to be at the end:
   * vim: foldmarker=@{,@} foldmethod=marker
diff --combined languages/i18n/en.json
        "protectedinterface": "This page provides interface text for the software on this wiki, and is protected to prevent abuse.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
        "editinginterface": "<strong>Warning:</strong> You are editing a page that is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users on this wiki.",
        "translateinterface": "To add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
 -      "cascadeprotected": "This page has been protected from editing because it is included in the following {{PLURAL:$1|page, which is|pages, which are}} protected with the \"cascading\" option turned on:\n$2",
 +      "cascadeprotected": "This page has been protected from editing because it is transcluded in the following {{PLURAL:$1|page, which is|pages, which are}} protected with the \"cascading\" option turned on:\n$2",
        "namespaceprotected": "You do not have permission to edit pages in the <strong>$1</strong> namespace.",
        "customcssprotected": "You do not have permission to edit this CSS page because it contains another user's personal settings.",
        "customjsprotected": "You do not have permission to edit this JavaScript page because it contains another user's personal settings.",
        "readonlywarning": "<strong>Warning: The database has been locked for maintenance, so you will not be able to save your edits right now.</strong>\nYou may wish to copy and paste your text into a text file and save it for later.\n\nThe administrator who locked it offered this explanation: $1",
        "protectedpagewarning": "<strong>Warning: This page has been protected so that only users with administrator privileges can edit it.</strong>\nThe latest log entry is provided below for reference:",
        "semiprotectedpagewarning": "<strong>Note:</strong> This page has been protected so that only registered users can edit it.\nThe latest log entry is provided below for reference:",
 -      "cascadeprotectedwarning": "<strong>Warning:</strong> This page has been protected so that only users with administrator privileges can edit it because it is included in the following cascade-protected {{PLURAL:$1|page|pages}}:",
 +      "cascadeprotectedwarning": "<strong>Warning:</strong> This page has been protected so that only users with administrator privileges can edit it because it is transcluded in the following cascade-protected {{PLURAL:$1|page|pages}}:",
        "titleprotectedwarning": "<strong>Warning: This page has been protected so that [[Special:ListGroupRights|specific rights]] are needed to create it.</strong>\nThe latest log entry is provided below for reference:",
        "templatesused": "{{PLURAL:$1|Template|Templates}} used on this page:",
        "templatesusedpreview": "{{PLURAL:$1|Template|Templates}} used in this preview:",
        "search-category": "(category $1)",
        "search-file-match": "(matches file content)",
        "search-suggest": "Did you mean: $1",
+       "search-rewritten": "Showing results for $1. Search instead for $2.",
        "search-interwiki-caption": "Sister projects",
        "search-interwiki-default": "Results from $1:",
        "search-interwiki-custom": "",
        "randomincategory-nopages": "There are no pages in the [[:Category:$1|$1]] category.",
        "randomincategory-category": "Category:",
        "randomincategory-legend": "Random page in category",
 +      "randomincategory-submit": "Go",
        "randomredirect": "Random redirect",
        "randomredirect-nopages": "There are no redirects in the namespace \"$1\".",
        "statistics": "Statistics",
        "linksearch-pat": "Search pattern:",
        "linksearch-ns": "Namespace:",
        "linksearch-ok": "Search",
 -      "linksearch-text": "Wildcards such as \"*.wikipedia.org\" may be used.\nNeeds at least a top-level domain, for example \"*.org\".<br />\nSupported {{PLURAL:$2|protocol|protocols}}: <code>$1</code> (defaults to http:// if no protocol is specified).",
 +      "linksearch-text": "Wildcards such as \"*.wikipedia.org\" may be used.\nNeeds at least a top-level domain, for example \"*.org\".<br />\nSupported {{PLURAL:$2|protocol|protocols}}: $1 (defaults to http:// if no protocol is specified).",
        "linksearch-line": "$1 is linked from $2",
        "linksearch-error": "Wildcards may appear only at the start of the hostname.",
        "listusersfrom": "Display users starting at:",
        "changecontentmodel-success-title": "The content model was changed",
        "changecontentmodel-success-text": "The content type of [[:$1]] has been changed.",
        "changecontentmodel-cannot-convert": "The content on [[:$1]] cannot be converted to a type of $2.",
 -      "changecontentmodel-title-cantexist": "It is not possible to have a page at $1.",
        "changecontentmodel-nodirectediting": "The $1 content model does not support direct editing",
        "log-name-contentmodel": "Content model change log",
        "log-description-contentmodel": "Events related to the content models of a page",
 -      "logentry-contentmodel-change": "$1 changed the content model of the page $3 from \"$4\" to \"$5\"",
 +      "logentry-contentmodel-change": "$1 {{GENDER:$2|changed}} the content model of the page $3 from \"$4\" to \"$5\"",
        "logentry-contentmodel-change-revertlink": "revert",
        "logentry-contentmodel-change-revert": "revert",
        "protectlogpage": "Protection log",
        "protect-locked-blocked": "You cannot change protection levels while blocked.\nHere are the current settings for the page <strong>$1</strong>:",
        "protect-locked-dblock": "Protection levels cannot be changed due to an active database lock.\nHere are the current settings for the page <strong>$1</strong>:",
        "protect-locked-access": "Your account does not have permission to change page protection levels.\nHere are the current settings for the page <strong>$1</strong>:",
 -      "protect-cascadeon": "This page is currently protected because it is included in the following {{PLURAL:$1|page, which has|pages, which have}} cascading protection turned on.\nChanges to this page's protection level will not affect the cascading protection.",
 +      "protect-cascadeon": "This page is currently protected because it is transcluded in the following {{PLURAL:$1|page, which has|pages, which have}} cascading protection turned on.\nChanges to this page's protection level will not affect the cascading protection.",
        "protect-default": "Allow all users",
        "protect-fallback": "Allow only users with \"$1\" permission",
        "protect-level-autoconfirmed": "Allow only autoconfirmed users",
        "pageinfo-robot-index": "Allowed",
        "pageinfo-robot-noindex": "Disallowed",
        "pageinfo-watchers": "Number of page watchers",
 +      "pageinfo-visiting-watchers": "Number of page watchers who visited recent edits",
        "pageinfo-few-watchers": "Fewer than $1 {{PLURAL:$1|watcher|watchers}}",
 +      "pageinfo-few-visiting-watchers": "There may or may not be a watching user visiting recent edits",
        "pageinfo-redirects-name": "Number of redirects to this page",
        "pageinfo-redirects-value": "$1",
        "pageinfo-subpages-name": "Number of subpages of this page",
        "htmlform-cloner-create": "Add more",
        "htmlform-cloner-delete": "Remove",
        "htmlform-cloner-required": "At least one value is required.",
 +      "htmlform-title-badnamespace": "[[:$1]] is not in the \"{{ns:$2}}\" namespace.",
 +      "htmlform-title-not-creatable": "\"$1\" is not a creatable page title",
 +      "htmlform-title-not-exists": "[[:$1]] does not exist.",
 +      "htmlform-user-not-exists": "<strong>$1</strong> does not exist.",
 +      "htmlform-user-not-valid": "<strong>$1</strong> isn't a valid username.",
        "sqlite-has-fts": "$1 with full-text search support",
        "sqlite-no-fts": "$1 without full-text search support",
        "logentry-delete-delete": "$1 {{GENDER:$2|deleted}} page $3",
diff --combined languages/i18n/qqq.json
                        "Totosunarto",
                        "Macofe",
                        "FRacco",
 -                      "Robin0van0der0vliet"
 +                      "Robin0van0der0vliet",
 +                      "TTO"
                ]
        },
        "sidebar": "{{notranslate}}",
        "creating": "Shown as page title when creating a page. Parameters:\n* $1 - the name of the page that is being created. Example: \"Creating Main Page\".\n{{Related|Editing}}\n{{Identical|Creating}}",
        "editingsection": "This message displays at the top of the page when a user is editing a page section. Parameters:\n* $1 - page name\n{{Related|Editing}}",
        "editingcomment": "This message displays at the top of the page when a user is creating a new section. Parameters:\n* $1 - page name\n{{Related|Editing}}",
 -      "editconflict": "Used as title of error message. Parameters:\n* $1 - page title",
 +      "editconflict": "Alert message when saving a page causes an edit conflict",
        "editnotice-notext": "{{ignored}}\nCustom message on top of the edit page if no edit notices apply to this page.",
        "explainconflict": "Appears at the top of a page when there is an edit conflict.\n\nSee also:\n* {{msg-mw|Savearticle}}",
        "yourtext": "Used in Diff Preview page. The diff is between {{msg-mw|currentrev}} and {{msg-mw|yourtext}}.\n\nAlso used in Edit Conflict page; the diff between {{msg-mw|yourtext}} and {{msg-mw|storedversion}}.",
        "mergehistory-reason": "{{Identical|Reason}}",
        "mergehistory-revisionrow": "{{Optional}}\nA revision row in the merge history page. Parameters:\n* $1 - a radio button to indicate a merge point\n* $2 - a link to the last revision of a page ({{msg-mw|Last}})\n* $3 - a page link\n* $4 - a user link\n* $5 - a revision size\n* $6 - a revision comment",
        "mergelog": "{{doc-logpage}}\n\nThis is the name of a log of merge actions done on [[Special:MergeHistory]]. This special page and this log is not enabled by default.",
 -      "pagemerge-logentry": "{{ignored}}This is ''logentry'' message only used on IRC.\n\nParameters:\n* $1 - the page name of the source of the content to be merged\n* $2 - the page into which the content is merged\n* $3 - a timestamp of limit\n\nThe log and its associated special page 'MergeHistory' is not enabled by default.\n\nPlease note that the parameters in a log entry will appear in the log only in the default language of the wiki. View [[Special:Log]] for examples on translatewiki.net with English default language.",
 +      "pagemerge-logentry": "{{ignored}}This is ''logentry'' message only used on IRC.\n\nParameters:\n* $1 - the page name of the source of the content to be merged\n* $2 - the page into which the content is merged\n* $3 - a timestamp of limit\n\nThe log and its associated special page 'MergeHistory' is not enabled by default.\n\nPlease note that the parameters in a log entry will appear in the log only in the default language of the wiki. View [[Special:Log]] for examples on translatewiki.net with English default language.",
        "revertmerge": "Used as link text",
        "mergelogpagetext": "Description of the [{{canonicalurl:Special:Log|type=merge&user=&page=&year=&month=-1}} merge log], on the log. The associated [[Special:MergeHistory|Merge]] special page is not enabled by default.",
        "history-title": "Displayed as page title when you click on the \"history\" tab. Parameters:\n* $1 - the normal page title",
        "search-category": "This text will be shown on the search result listing after the page title of a result if the search algorithm thinks that the page being in a particular category is relevant.\n\nParameters:\n* $1 - the category's name with any matching portion highlighted\n{{Identical|Category}}",
        "search-file-match": "This text will be shown on the search result listing after the page title of a result if the search engine got search results from the contents of files, rather than the pages.",
        "search-suggest": "Used for \"Did you mean\" suggestions:\n* $1 - suggested link",
+       "search-rewritten": "Used when the user is served the results for a query other than what they provided. Parameters:\n* $1 - a link to search for the current result set.* $2 - a link to perform the original search without rewriting.",
        "search-interwiki-caption": "Used in [[Special:Search]], when showing search results from other wikis.",
        "search-interwiki-default": "Parameters:\n* $1 - the hostname of the remote wiki from where the additional results listed below are returned",
        "search-interwiki-custom": "#REDIRECT [[MediaWiki:Wmf-search-interwiki-custom/qqq]]",
        "uploadwarning": "Used as section header in [[Special:Upload]].",
        "uploadwarning-text": "Used in [[Special:Upload]].",
        "savefile": "When uploading a file",
 -      "uploadedimage": "{{ignored}}This is ''logentry'' message only used on IRC. $1 is the name of the file uploaded.",
 -      "overwroteimage": "{{ignored}}This is ''logentry'' message only used on IRC. $1 is the name of the file uploaded.",
 +      "uploadedimage": "{{ignored}}This is ''logentry'' message only used on IRC. $1 is the name of the file uploaded.",
 +      "overwroteimage": "{{ignored}}This is ''logentry'' message only used on IRC. $1 is the name of the file uploaded.",
        "uploaddisabled": "Title of the [[Special:Upload]] page when upload is disabled.\n\nSee also:\n* {{msg-mw|Copyuploaddisabled}}",
        "copyuploaddisabled": "See also:\n* {{msg-mw|Uploaddisabled}}",
        "uploaddisabledtext": "Parameters:\n* $1 - (Optional) the name of the target file. See r22243 and [[bugzilla:8818|bug 8818]].",
        "randomincategory-nopages": "Message shown from [[Special:RandomInCategory]] if the category is empty.\n\nParameters:\n* $1 - the category name (without the namespace prefix)",
        "randomincategory-category": "Shown on [[Special:RandomInCategory]] as a label for a text box allowing the user to input a category name.\n{{Identical|Category}}",
        "randomincategory-legend": "Used as fieldset label for the form on [[Special:RandomInCategory]].",
 +      "randomincategory-submit": "Used as label for the Submit button on [[Special:RandomInCategory]].\n{{Identical|Go}}",
        "randomredirect": "{{doc-special|RandomRedirect}}",
        "randomredirect-nopages": "Parameters:\n* $1 - list of namespaces\n* $2 - (Unused) number of namespaces\nSee also:\n* {{msg-mw|Randompage-nopages}}",
        "statistics": "{{doc-special|Statistics}}\n{{Identical|Statistics}}",
        "rollback-success": "This message shows up on screen after successful revert (generally visible only to admins). $1 describes user whose changes have been reverted, $2 describes user which produced version, which replaces reverted version.\n{{Identical|Revert}}\n{{Identical|Rollback}}",
        "sessionfailure-title": "Used as title of the error message {{msg-mw|Sessionfailure}}.",
        "sessionfailure": "Used as error message.\n\nThe title for this error message is {{msg-mw|Sessionfailure-title}}.",
 -      "changecontentmodel" : "Title of the change content model special page",
 +      "changecontentmodel": "Title of the change content model special page",
        "changecontentmodel-legend": "Legend of the fieldset on the change content model special page",
 -      "changecontentmodel-title-label": "Label for the input field where the target page title should be entered",
 +      "changecontentmodel-title-label": "Label for the input field where the target page title should be entered\n{{Identical|Page title}}",
        "changecontentmodel-model-label": "Label of the dropdown listing available content model types the user can change a page to",
        "changecontentmodel-reason-label": "{{Identical|Reason}}",
        "changecontentmodel-success-title": "Title of the success page of the change content model special page",
        "changecontentmodel-success-text": "Message telling user that their change has been successfully done.\n* $1 - Target page title",
        "changecontentmodel-cannot-convert": "Error message shown if the content model cannot be changed to the specified type. $1 is the page title, $2 is the localized content model name.",
 -      "changecontentmodel-title-cantexist": "Error message shown if the page the user provided is a special page",
        "changecontentmodel-nodirectediting": "Error message shown if the content model does not allow for direct editing. $1 is the localized name of the content model.",
        "log-name-contentmodel": "{{doc-logpage}}\n\nTitle of [[Special:Log/contentmodel]].",
        "log-description-contentmodel": "Text in [[Special:Log/contentmodel]].",
        "blocklogpage": "{{doc-logpage}}\n\nThe page name of [[Special:Log/block]]. Also appears in the drop down menu of [[Special:Log]] pages and in the action links of Special:Contributions/''Username'' pages (e.g. \"For Somebody (talk | block log | logs)\").\n\n{{Identical|Block log}}",
        "blocklog-showlog": "Parameters:\n* $1 - (Optional) the blocked user. Can be used for GENDER\nSee also:\n* {{msg-mw|Blocklog-showsuppresslog}}\n* {{msg-mw|Globalblocking-showlog}}",
        "blocklog-showsuppresslog": "Parameters:\n* $1 - (Optional) the blocked user. Can be used for GENDER",
 -      "blocklogentry": "This is ''logentry'' message only used on IRC.\n* $1 - the blocked user or IP (with link to contributions and talk)\n* $2 - the duration of the block (hours, days etc.) or the specified expiry date\n* $3 - contains \"(details) (''reason'')\", or empty string\nSee also:\n* {{msg-mw|Unblocklogentry}}\n* {{msg-mw|Reblock-logentry}}",
 -      "reblock-logentry": "This is ''logentry'' message only used on IRC.\n\nParameters:\n* $1 - the user being reblocked\n* $2 - the expiry time of the block\n* $3 - extra parameters like \"account creation blocked\" (they are automatically between brackets)",
 +      "blocklogentry": "This is ''logentry'' message only used on IRC.\n* $1 - the blocked user or IP (with link to contributions and talk)\n* $2 - the duration of the block (hours, days etc.) or the specified expiry date\n* $3 - contains \"(details) (''reason'')\", or empty string\nSee also:\n* {{msg-mw|Unblocklogentry}}\n* {{msg-mw|Reblock-logentry}}",
 +      "reblock-logentry": "This is ''logentry'' message only used on IRC.\n\nParameters:\n* $1 - the user being reblocked\n* $2 - the expiry time of the block\n* $3 - extra parameters like \"account creation blocked\" (they are automatically between brackets)",
        "blocklogtext": "Appears on top of [[Special:Log/block]].",
 -      "unblocklogentry": "This is ''logentry'' message only used on IRC.\n* $1 is the user being unblocked",
 +      "unblocklogentry": "This is ''logentry'' message only used on IRC.\n* $1 is the user being unblocked",
        "block-log-flags-anononly": "Used as a block log flag in [[Special:Log/block]] and in [[Special:Block]].\n\nSee also:\n* {{msg-mw|Anononlyblock}}\n{{Related|Block-log-flags}}",
        "block-log-flags-nocreate": "Used as a block log flag in [[Special:Log/block]] and in [[Special:Block]].\n\nSee also:\n* {{msg-mw|Createaccountblock}}\n{{Related|Block-log-flags}}",
        "block-log-flags-noautoblock": "Used as a block log flag in [[Special:Log/block]] and in [[Special:Block]].\n{{Related|Block-log-flags}}\n{{Identical|Autoblock disabled}}",
        "import-rootpage-nosubpage": "Used on [[Special:Import]], when the import namespace does not support subpages. Parameters:\n* $1 is a namespace name.",
        "importlogpage": "{{doc-logpage}}",
        "importlogpagetext": "This text appears at the top of the [{{canonicalurl:Special:Log|type=import}} import log] special page.",
 -      "import-logentry-upload": "{{ignored}}This is ''logentry'' message only used on IRC.\n* $1 is the name of the imported file",
 +      "import-logentry-upload": "{{ignored}}This is ''logentry'' message only used on IRC.\n* $1 is the name of the imported file",
        "import-logentry-upload-detail": "Used as success message and log entry. Parameters:\n* $1 - number of succeeded revisions\nSee also:\n* {{msg-mw|Import-logentry-interwiki-detail}}",
 -      "import-logentry-interwiki": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - page title",
 +      "import-logentry-interwiki": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - page title",
        "import-logentry-interwiki-detail": "Used as success message and log entry. Parameters:\n* $1 - number of succeeded revisions\n* $2 - interwiki name\nSee also:\n* {{msg-mw|Import-logentry-upload-detail}}",
        "javascripttest": "Title of the special page [[Special:JavaScriptTest]].\n\nSee also:\n* {{msg-mw|Javascripttest|title}}\n* {{msg-mw|Javascripttest-pagetext-noframework|summary}}\n* {{msg-mw|Javascripttest-pagetext-unknownframework|error message}}",
        "javascripttest-backlink": "{{optional}}\nUsed as subtitle in [[Special:JavaScriptTest]]. Parameters:\n* $1 - page title",
        "tooltip-pt-logout": "Tooltip shown when hovering over the {{msg-mw|Logout}} link in your personal toolbox (upper right side).\n\nSee also:\n* {{msg-mw|Logout}}\n* {{msg-mw|Accesskey-pt-logout}}\n* {{msg-mw|Tooltip-pt-logout}}\n{{Identical|Log out}}",
        "tooltip-pt-createaccount": "Tooltip shown when hovering over the link 'Create account' in the upper right corner show on all pages while not logged in.",
        "tooltip-ca-talk": "Tooltip shown when hovering over the {{msg-mw|Talk}} tab.\n\nA 'content page' is a page that forms part of the purpose of the wiki. It includes the main page and pages in the main namespace and any other namespaces that are included when the wiki is customised. For example on Wikimedia Commons 'content pages' include pages in the file and category namespaces. On Wikinews 'content pages' include pages in the Portal namespace. For a technical definition of 'content namespaces' see [[mw:Manual:Using_custom_namespaces#Content_namespaces|MediaWiki]].\n\nPossible alternatives to the word 'content' are 'subject matter' or 'wiki subject' or 'wiki purpose'.\n\nSee also:\n* {{msg-mw|Talk}}\n* {{msg-mw|Accesskey-ca-talk}}\n* {{msg-mw|Tooltip-ca-talk}}\n{{Identical|Content page}}",
 -      "tooltip-ca-edit": "The tooltip when hovering over the {{msg-mw|Edit}} tab.\n\nSee also:\n* {{msg-mw|Edit}}\n* {{msg-mw|Accesskey-ca-edit}}\n* {{msg-mw|Tooltip-ca-edit}}",
 +      "tooltip-ca-edit": "Over-ridden tooltip of the wikitext \"Edit source\" tab.\n{{Identical|Edit this page}}",
        "tooltip-ca-addsection": "Tooltip shown when hovering over the \"addsection\" tab (shown on talk pages).\n\nSee also:\n* {{msg-mw|Addsection}}\n* {{msg-mw|Accesskey-ca-addsection}}\n* {{msg-mw|Tooltip-ca-addsection}}",
        "tooltip-ca-viewsource": "Tooltip displayed when hovering over the {{msg-mw|Viewsource}} tab.\n\nSee also:\n* {{msg-mw|Viewsource}}\n* {{msg-mw|Accesskey-ca-viewsource}}\n* {{msg-mw|Tooltip-ca-viewsource}}",
        "tooltip-ca-history": "Used as tooltip for {{msg-mw|Vector-view-history}}.\n\nSee for example [{{canonicalurl:Main Page|useskin=vector}} Main Page]\n\nSee also:\n* {{msg-mw|Vector-view-history}}\n* {{msg-mw|Accesskey-ca-history}}",
        "pageinfo-robot-index": "An indication that the page is indexable by search engines, that is listed in their search results.\n\nPreceded by the label {{msg-mw|Pageinfo-robot-policy}}.\n{{Identical|Allowed}}",
        "pageinfo-robot-noindex": "An indication that the page is not indexable (that is, is not listed on the results page of a search engine).\n\nPreceded by the label {{msg-mw|Pageinfo-robot-policy}}.",
        "pageinfo-watchers": "Header of the row in the first table of the info action.",
 +      "pageinfo-visiting-watchers": "Header of the row in the first table of the info action. More explicitly, the number counts how many users have last visited the page 26 weeks or less (by default) before the latest edit to the page; in other words, watching users who may see a future edit within about 6 months.",
        "pageinfo-few-watchers": "Message displayed when there are fewer than $wgUnwatchedPageThreshold watchers. $1 is the value of $wgUnwatchedPageThreshold.",
 +      "pageinfo-few-visiting-watchers": "Message displayed when there are fewer than 2 \"active\" watchers.",
        "pageinfo-redirects-name": "Header of the row in the first table of the info action.\n\nFollowed by {{msg-mw|Pageinfo-redirects-value}}.\n\nUsed as link text. The link points to \"{{int:Whatlinkshere-title}}\" page ([[Special:WhatLinksHere]]).\n\nSee example: [{{canonicalurl:Main page|action=info}} Main page?action=info]",
        "pageinfo-redirects-value": "{{Optional}}\nParameters:\n* $1 - the number of redirects to the page",
        "pageinfo-subpages-name": "Header of the row in the first table of the info action.\n\nFollowed by {{msg-mw|Pageinfo-subpages-value}}.\n\nUsed as link text. The link points to the \"{{int:Prefixindex}}\" page ([[Special:PrefixIndex]]).\n\nSee example: [{{canonicalurl:Main page|action=info}} Main page?action=info]",
        "deletedwhileediting": "Used as warning in the EditPage page.",
        "confirmrecreate": "Followed by the checkbox which has the label {{msg-mw|Recreate}}.\n\nParameters:\n* $1 - username\n* $2 - reason\nSee also:\n* {{msg-mw|Confirmrecreate-noreason}}",
        "confirmrecreate-noreason": "Followed by the checkbox which has the label {{msg-mw|Recreate}}.\n\nParameters:\n* $1 - username\n* $2 - (Unused) reason\nSee also:\n* {{msg-mw|Confirmrecreate}}",
 -      "recreate": "Used as link text.\n\nSee also:\n* {{msg-mw|Recreate}}\n* {{msg-mw|Tooltip-recreate}}",
 +      "recreate": "Text shown when the editor fails to save the page due to it having been deleted since they opened VE. $1 is the message {{msg-mw|ooui-dialog-process-continue}}.",
        "unit-pixel": "{{optional}}\npx is the abbreviation for \"pixel\".",
        "confirm_purge_button": "Used as Submit button text.\n{{Identical|OK}}",
        "confirm-purge-top": "Used as confirmation message.",
        "htmlform-cloner-create": "Used as the text for the button that adds a row to a multi-input HTML form element.\n\nSee also:\n* {{msg-mw|htmlform-cloner-delete}}\n* {{msg-mw|htmlform-cloner-required}}",
        "htmlform-cloner-delete": "Used as the text for the button that removes a row from a multi-input HTML form element\n\nSee also:\n* {{msg-mw|htmlform-cloner-create}}\n* {{msg-mw|htmlform-cloner-required}}\n{{Identical|Remove}}",
        "htmlform-cloner-required": "Used as an error message in HTML forms.\n\nSee also:\n* {{msg-mw|htmlform-required}}\n* {{msg-mw|htmlform-cloner-create}}\n* {{msg-mw|htmlform-cloner-delete}}",
 +      "htmlform-title-badnamespace": "Error message shown if the page title provided by the user is not in the required namespace. $1 is the page, $2 is the numerical namespace index.",
 +      "htmlform-title-not-creatable": "Error message shown if the page title provided by the user is not creatable (a special page). $1 is the page title.",
 +      "htmlform-title-not-exists": "Error message shown if the page title provided by the user does not exist. $1 is the page title.",
 +      "htmlform-user-not-exists": "Error message shown if a user with the name provided by the user does not exist. $1 is the username.",
 +      "htmlform-user-not-valid": "Error message shown if the name provided by the user isn't a valid username. $1 is the username.",
        "sqlite-has-fts": "Shown on [[Special:Version]].\nParameters:\n* $1 - version",
        "sqlite-no-fts": "Shown on [[Special:Version]].\nParameters:\n* $1 - version",
        "logentry-delete-delete": "{{Logentry|[[Special:Log/delete]]}}",
        "patrol-log-line": "Text of notes on entries in the [{{FULLURL:Special:Log|type=patrol}} patrol log].\nParameters:\n* $1 - the link whose text is {{msg-mw|patrol-log-diff}}\n* $2 - the name of the page\n* $3 - appears to be {{msg-mw|Patrol-log-auto}} (at least sometimes)\n\nThe message appears after the name of the patroller.",
        "patrol-log-auto": "Automated edit summary when patrolling.\n\n{{Identical|Automatic}}",
        "patrol-log-diff": "The text of the diff link in {{msg-mw|Patrol-log-line}} (inside <code>$1</code> there).\n\nParameters:\n* $1 - revision ID\n{{Identical|Revision}}",
 -      "1movedto2": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - the original page name\n* $2 - the destination page name\nSee also:\n* {{msg-mw|1movedto2 redir}}",
 -      "1movedto2_redir": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - the original page name\n* $2 - the destination page name\nSee also:\n* {{msg-mw|1movedto2}}",
 +      "1movedto2": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - the original page name\n* $2 - the destination page name\nSee also:\n* {{msg-mw|1movedto2 redir}}",
 +      "1movedto2_redir": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - the original page name\n* $2 - the destination page name\nSee also:\n* {{msg-mw|1movedto2}}",
        "move-redirect-suppressed": "{{ignored}}Message unused?",
        "newuserlog-create-entry": "Part of the \"Newuserlog\" extension. It is the summary in the [[Special:RecentChanges|recent changes]] and on [[Special:Log/newusers]].",
        "newuserlog-create2-entry": "Part of the \"Newuserlog\" extension.\n\nIt is the summary in the [[Special:RecentChanges|recent changes]] and on [[Special:Log/newusers]] when creating an account for someone else (\"$1\").\n\nPreceded by the name of the user doing this task.\n\nParameters:\n* $1 - username",