jenkins-bot has submitted this change and it was merged.
Change subject: Add i18n for API module help
......................................................................
Add i18n for API module help
MediaWiki core change I04b1a384 added support for i18n of API module
help. This takes advantage of that while still maintaining backwards
compatibility with earlier versions of MediaWiki.
Once support for MediaWiki before 1.25 is dropped, the methods marked
deprecated in this patch may be removed.
Change-Id: I67395aff48185f3e09da31b51a08aa2541fe6a17
---
M api/ApiAbuseFilterCheckMatch.php
M api/ApiAbuseFilterCheckSyntax.php
M api/ApiAbuseFilterEvalExpression.php
M api/ApiAbuseFilterUnblockAutopromote.php
M api/ApiQueryAbuseFilters.php
M api/ApiQueryAbuseLog.php
M i18n/en.json
M i18n/qqq.json
8 files changed, 576 insertions(+), 411 deletions(-)
Approvals:
Legoktm: Looks good to me, approved
Jforrester: Looks good to me, but someone else must approve
jenkins-bot: Verified
diff --git a/api/ApiAbuseFilterCheckMatch.php b/api/ApiAbuseFilterCheckMatch.php
index 49b2ee0..9129b97 100644
--- a/api/ApiAbuseFilterCheckMatch.php
+++ b/api/ApiAbuseFilterCheckMatch.php
@@ -77,6 +77,9 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getParamDescription() {
return array(
'filter' => 'The full filter text to check for a match',
@@ -86,6 +89,9 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getDescription() {
return array(
'Check to see if an AbuseFilter matches a set of
variables, edit'
@@ -100,7 +106,13 @@
);
}
- public function getVersion() {
- return __CLASS__ . ': $Id$';
+ /**
+ * @see ApiBase::getExamplesMessages()
+ */
+ protected function getExamplesMessages() {
+ return array(
+
'action=abusefiltercheckmatch&filter=!("autoconfirmed"%20in%20user_groups)&rcid=15'
+ => 'apihelp-abusefiltercheckmatch-example-1',
+ );
}
}
diff --git a/api/ApiAbuseFilterCheckSyntax.php
b/api/ApiAbuseFilterCheckSyntax.php
index 23c744a..17e16d3 100644
--- a/api/ApiAbuseFilterCheckSyntax.php
+++ b/api/ApiAbuseFilterCheckSyntax.php
@@ -34,18 +34,27 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getParamDescription() {
return array(
'filter' => 'The full filter text to check syntax on',
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getDescription() {
return array(
'Check syntax of an AbuseFilter filter'
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getExamples() {
return array(
'api.php?action=abusefilterchecksyntax&filter="foo"',
@@ -53,7 +62,15 @@
);
}
- public function getVersion() {
- return __CLASS__ . ': $Id$';
+ /**
+ * @see ApiBase::getExamplesMessages()
+ */
+ protected function getExamplesMessages() {
+ return array(
+ 'action=abusefilterchecksyntax&filter="foo"'
+ => 'apihelp-abusefilterchecksyntax-example-1',
+
'action=abusefilterchecksyntax&filter="bar"%20bad_variable'
+ => 'apihelp-abusefilterchecksyntax-example-2',
+ );
}
}
diff --git a/api/ApiAbuseFilterEvalExpression.php
b/api/ApiAbuseFilterEvalExpression.php
index 74c66fe..a664df1 100644
--- a/api/ApiAbuseFilterEvalExpression.php
+++ b/api/ApiAbuseFilterEvalExpression.php
@@ -17,25 +17,40 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getParamDescription() {
return array(
'expression' => 'The expression to evaluate',
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getDescription() {
return array(
'Evaluates an AbuseFilter expression'
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getExamples() {
return array(
'api.php?action=abusefilterevalexpression&expression=lcase("FOO")'
);
}
- public function getVersion() {
- return __CLASS__ . ': $Id$';
+ /**
+ * @see ApiBase::getExamplesMessages()
+ */
+ protected function getExamplesMessages() {
+ return array(
+
'action=abusefilterevalexpression&expression=lcase("FOO")'
+ =>
'apihelp-abusefilterevalexpression-example-1',
+ );
}
}
diff --git a/api/ApiAbuseFilterUnblockAutopromote.php
b/api/ApiAbuseFilterUnblockAutopromote.php
index 08a7ff0..73d1558 100644
--- a/api/ApiAbuseFilterUnblockAutopromote.php
+++ b/api/ApiAbuseFilterUnblockAutopromote.php
@@ -47,6 +47,9 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getParamDescription() {
return array(
'user' => 'Username of the user you want to unblock',
@@ -54,6 +57,9 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getDescription() {
return 'Unblocks a user from receiving autopromotions due to an
abusefilter consequence';
}
@@ -66,13 +72,22 @@
return '';
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getExamples() {
return array(
"api.php?action=abusefilterunblockautopromote&user=Bob&token=%2B\\"
);
}
- public function getVersion() {
- return __CLASS__ . ': $Id$';
+ /**
+ * @see ApiBase::getExamplesMessages()
+ */
+ protected function getExamplesMessages() {
+ return array(
+
'action=abusefilterunblockautopromote&user=Example&token=123ABC'
+ =>
'apihelp-abusefilterunblockautopromote-example-1',
+ );
}
}
diff --git a/api/ApiQueryAbuseFilters.php b/api/ApiQueryAbuseFilters.php
index 286db71..dbc0d3a 100644
--- a/api/ApiQueryAbuseFilters.php
+++ b/api/ApiQueryAbuseFilters.php
@@ -164,7 +164,9 @@
'older',
'newer'
),
- ApiBase::PARAM_DFLT => 'newer'
+ ApiBase::PARAM_DFLT => 'newer',
+ /** @todo Once support for MediaWiki < 1.25 is
dropped, just use ApiBase::PARAM_HELP_MSG directly */
+ constant( 'ApiBase::PARAM_HELP_MSG' ) ?: '' =>
'api-help-param-direction',
),
'show' => array(
ApiBase::PARAM_ISMULTI => true,
@@ -203,6 +205,9 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getParamDescription() {
return array(
'startid' => 'The filter id to start enumerating from',
@@ -214,10 +219,16 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getDescription() {
return 'Show details of the abuse filters.';
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getExamples() {
return array(
'api.php?action=query&list=abusefilters&abfshow=enabled|!private',
@@ -225,7 +236,15 @@
);
}
- public function getVersion() {
- return __CLASS__ . ': $Id$';
+ /**
+ * @see ApiBase::getExamplesMessages()
+ */
+ protected function getExamplesMessages() {
+ return array(
+
'action=query&list=abusefilters&abfshow=enabled|!private'
+ => 'apihelp-query+abusefilters-example-1',
+
'action=query&list=abusefilters&abfprop=id|description|pattern'
+ => 'apihelp-query+abusefilters-example-2',
+ );
}
}
diff --git a/api/ApiQueryAbuseLog.php b/api/ApiQueryAbuseLog.php
index ae2ad91..397ee03 100644
--- a/api/ApiQueryAbuseLog.php
+++ b/api/ApiQueryAbuseLog.php
@@ -238,7 +238,9 @@
'newer',
'older'
),
- ApiBase::PARAM_DFLT => 'older'
+ ApiBase::PARAM_DFLT => 'older',
+ /** @todo Once support for MediaWiki < 1.25 is
dropped, just use ApiBase::PARAM_HELP_MSG directly */
+ constant( 'ApiBase::PARAM_HELP_MSG' ) ?: '' =>
'api-help-param-direction',
),
'user' => null,
'title' => null,
@@ -272,6 +274,9 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getParamDescription() {
return array(
'start' => 'The timestamp to start enumerating from',
@@ -285,10 +290,16 @@
);
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getDescription() {
return 'Show events that were caught by one of the abuse
filters.';
}
+ /**
+ * @deprecated since MediaWiki core 1.25
+ */
public function getExamples() {
return array(
'api.php?action=query&list=abuselog',
@@ -296,7 +307,15 @@
);
}
- public function getVersion() {
- return __CLASS__ . ': $Id$';
+ /**
+ * @see ApiBase::getExamplesMessages()
+ */
+ protected function getExamplesMessages() {
+ return array(
+ 'action=query&list=abuselog'
+ => 'apihelp-query+abuselog-example-1',
+ 'action=query&list=abuselog&afltitle=API'
+ => 'apihelp-query+abuselog-example-2',
+ );
}
}
diff --git a/i18n/en.json b/i18n/en.json
index b7935d1..1ed8fcf 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -1,398 +1,432 @@
{
- "@metadata": {
- "authors": [
- "Andrew Garrett",
- "Kunal Mehta"
- ]
- },
- "abusefilter-desc": "Applies automatic heuristics to edits",
- "abusefilter": "Abuse filter configuration",
- "abuselog": "Abuse log",
- "abusefilter-intro": "Welcome to the Abuse Filter management
interface.\nThe Abuse Filter is an automated software mechanism of applying
automatic heuristics to all actions.\nThis interface shows a list of defined
filters, and allows them to be modified.",
- "abusefilter-mustbeeditor": "For security reasons, only users with the
right to modify abuse filters may use this interface.",
- "abusefilter-warning": "'''Warning:''' This action has been automatically
identified as harmful.\nUnconstructive edits will be quickly reverted,\nand
egregious or repeated unconstructive editing will result in your account or IP
address being blocked.\nIf you believe this action to be constructive, you may
submit it again to confirm it.\nA brief description of the abuse rule which
your action matched is: $1",
- "abusefilter-disallowed": "This action has been automatically identified
as harmful, and therefore disallowed.\nIf you believe your action was
constructive, please inform an administrator of what you were trying to do.\nA
brief description of the abuse rule which your action matched is: $1",
- "abusefilter-blocked-display": "This action has been automatically
identified as harmful,\nand you have been prevented from executing it.\nIn
addition, to protect {{SITENAME}}, your user account and all associated IP
addresses have been blocked from editing.\nIf this has occurred in error,
please contact an administrator.\nA brief description of the abuse rule which
your action matched is: $1",
- "abusefilter-degrouped": "This action has been automatically identified as
harmful.\nConsequently, it has been disallowed, and, since your account is
suspected of being compromised, all rights have been revoked.\nIf you believe
this to have been in error, please contact a bureaucrat with an explanation of
this action, and your rights may be restored.\nA brief description of the abuse
rule which your action matched is: $1",
- "abusefilter-autopromote-blocked": "This action has been automatically
identified as harmful, and it has been disallowed.\nIn addition, as a security
measure, some privileges routinely granted to established accounts have been
temporarily revoked from your account.\nA brief description of the abuse rule
which your action matched is: $1",
- "abusefilter-blocker": "Abuse filter",
- "abusefilter-blockreason": "Automatically blocked by abuse
filter.\nDescription of matched rule: $1",
- "abusefilter-degroupreason": "Rights automatically stripped by abuse
filter.\nRule description: $1",
- "abusefilter-accountreserved": "This account name is reserved for use by
the abuse filter.",
- "right-abusefilter-modify": "Modify abuse filters",
- "right-abusefilter-view": "View abuse filters",
- "right-abusefilter-log": "View the abuse log",
- "right-abusefilter-log-detail": "View detailed abuse log entries",
- "right-abusefilter-private": "View private data in the abuse log",
- "right-abusefilter-modify-restricted": "Modify abuse filters with
restricted actions",
- "right-abusefilter-revert": "Revert all changes by a given abuse filter",
- "right-abusefilter-view-private": "View abuse filters marked as private",
- "right-abusefilter-log-private": "View log entries of abuse filters marked
as private",
- "right-abusefilter-hide-log": "Hide entries in the abuse log",
- "right-abusefilter-hidden-log": "View hidden abuse log entries",
- "right-abusefilter-modify-global": "Create or modify global abuse filters",
- "action-abusefilter-modify": "modify abuse filters",
- "action-abusefilter-view": "view abuse filters",
- "action-abusefilter-log": "view the abuse log",
- "action-abusefilter-log-detail": "view detailed abuse log entries",
- "action-abusefilter-private": "view private data in the abuse log",
- "action-abusefilter-modify-restricted": "modify abuse filters with
restricted actions",
- "action-abusefilter-revert": "revert all changes by a given abuse filter",
- "action-abusefilter-view-private": "view abuse filters marked as private",
- "abusefilter-log": "Abuse filter log",
- "abusefilter-log-summary": "This log shows a list of all actions caught by
the filters.",
- "abusefilter-log-search": "Search the abuse log",
- "abusefilter-log-search-user": "User:",
- "abusefilter-log-search-filter": "Filter IDs (separate with pipes):",
- "abusefilter-log-search-title": "Title:",
- "abusefilter-log-search-wiki": "Wiki:",
- "abusefilter-log-search-submit": "Search",
- "abusefilter-log-entry": "$1: $2 triggered an abuse filter, performing the
action \"$3\" on $4.\nActions taken: $5;\nFilter description: $6",
- "abusefilter-log-entry-withdiff": "$1: $2 triggered an abuse filter,
performing the action \"$3\" on $4.\nActions taken: $5;\nFilter description: $6
($7)",
- "abusefilter-log-detailedentry-meta": "$1: $2 triggered $3, performing the
action \"$4\" on $5.\nActions taken: $6;\nFilter description: $7 ($8)",
- "abusefilter-log-detailedentry-global": "global filter $1",
- "abusefilter-log-detailedentry-local": "filter $1",
- "abusefilter-log-detailslink": "details",
- "abusefilter-log-diff": "diff",
- "abusefilter-log-hidelink": "adjust visibility",
- "abusefilter-log-details-legend": "Details for log entry $1",
- "abusefilter-log-details-var": "Variable",
- "abusefilter-log-details-val": "Value",
- "abusefilter-log-details-vars": "Action parameters",
- "abusefilter-log-details-private": "Private data",
- "abusefilter-log-details-ip": "Originating IP address",
- "abusefilter-log-noactions": "none",
- "abusefilter-log-details-diff": "Changes made in edit",
- "abusefilter-log-linkoncontribs": "abuse log",
- "abusefilter-log-linkoncontribs-text": "Abuse log for this user",
- "abusefilter-log-hidden": "(entry hidden)",
- "abusefilter-log-hidden-implicit": "(hidden because revision has been
deleted)",
- "abusefilter-log-cannot-see-details": "You do not have permission to see
details of this entry.",
- "abusefilter-log-details-hidden": "You cannot view the details for this
entry because it is hidden from public view.",
- "abusefilter-log-private-not-included": "One or more of the filter IDs you
specified are private. Because you are not allowed to view details of private
filters, these filters have not been searched for.",
- "abusefilter-log-hide-legend": "Hide log entry",
- "abusefilter-log-hide-id": "Log entry ID:",
- "abusefilter-log-hide-hidden": "Hide this entry from public view",
- "abusefilter-log-hide-reason": "Reason:",
- "abusefilter-log-hide-forbidden": "You do not have permission to hide
abuse log entries.",
- "abusefilter-logentry-suppress": "hid \"[[$1]]\"",
- "abusefilter-logentry-unsuppress": "unhid \"[[$1]]\"",
- "logentry-abusefilter-hit": "$1 triggered $4, performing the action \"$5\"
on $3. Actions taken: $6 ($7)",
- "abusefilter-management": "Abuse filter management",
- "abusefilter-list": "All filters",
- "abusefilter-list-id": "Filter ID",
- "abusefilter-list-status": "Status",
- "abusefilter-list-public": "Public description",
- "abusefilter-list-consequences": "Consequences",
- "abusefilter-list-visibility": "Visibility",
- "abusefilter-list-hitcount": "Hit count",
- "abusefilter-list-edit": "Edit",
- "abusefilter-list-details": "Details",
- "abusefilter-list-limit": "Number per page:",
- "abusefilter-list-lastmodified": "Last modified",
- "abusefilter-list-group": "Filter group",
- "abusefilter-hidden": "Private",
- "abusefilter-unhidden": "Public",
- "abusefilter-enabled": "Enabled",
- "abusefilter-deleted": "Deleted",
- "abusefilter-disabled": "Disabled",
- "abusefilter-hitcount": "$1 {{PLURAL:$1|hit|hits}}",
- "abusefilter-new": "Create a new filter",
- "abusefilter-return": "Return to filter management",
- "abusefilter-status-global": "Global",
- "abusefilter-list-options": "Options",
- "abusefilter-list-options-deleted": "Deleted filters:",
- "abusefilter-list-options-deleted-only": "Show only deleted filters",
- "abusefilter-list-options-deleted-hide": "Hide deleted filters",
- "abusefilter-list-options-deleted-show": "Include deleted filters",
- "abusefilter-list-options-scope": "Show filters from:",
- "abusefilter-list-options-scope-local": "Local wiki",
- "abusefilter-list-options-scope-global": "Global rules",
- "abusefilter-list-options-disabled": "Disabled filters:",
- "abusefilter-list-options-hidedisabled": "Hide disabled filters",
- "abusefilter-list-options-submit": "Update",
- "abusefilter-tools-text": "Here are some tools which may be useful in
formulating and debugging abuse filters.",
- "abusefilter-tools-expr": "Expression tester",
- "abusefilter-tools-submitexpr": "Evaluate",
- "abusefilter-tools-reautoconfirm": "Restore autoconfirmed status",
- "abusefilter-tools-reautoconfirm-user": "User:",
- "abusefilter-tools-reautoconfirm-submit": "Re-autoconfirm",
- "abusefilter-reautoconfirm-none": "That user has not had
{{GENDER:$1|his|her|their}} autoconfirmed status suspended.",
- "abusefilter-reautoconfirm-notallowed": "You are not allowed to restore
autoconfirmed status.",
- "abusefilter-reautoconfirm-done": "Account's autoconfirmed status has been
restored",
- "abusefilter-status": "Of the last $1 {{PLURAL:$1|action|actions}}, $2
($3%) {{PLURAL:$2|has|have}} reached the condition limit of $4, and $5 ($6%)
{{PLURAL:$5|has|have}} matched one of the filters currently enabled.",
- "abusefilter-edit": "Editing abuse filter",
- "abusefilter-edit-subtitle": "Editing filter $1",
- "abusefilter-edit-subtitle-new": "Creating filter",
- "abusefilter-edit-oldwarning": "<strong>You are editing an old version of
this filter.\nThe statistics quoted are for the most recent version of the
filter.\nIf you save your changes, you will overwrite all changes since the
revision you are editing.</strong>
•\n[[Special:AbuseFilter/history/$2|Return to this filter's history]].",
- "abusefilter-edit-status-label": "Statistics:",
- "abusefilter-edit-status": "Of the last $1 {{PLURAL:$1|action|actions}},
this filter has matched $2 ($3%).\nOn average, its run time is $4 ms, and it
consumes $5 {{PLURAL:$5|condition|conditions}} of the condition limit.",
- "abusefilter-edit-throttled": "'''Warning:''' This filter was
automatically disabled as a safety measure.\nIt reached the limit of matching
more than $1% of actions.",
- "abusefilter-edit-new": "New filter",
- "abusefilter-edit-save": "Save filter",
- "abusefilter-edit-id": "Filter ID:",
- "abusefilter-edit-description": "Description:\n:''(publicly viewable)''",
- "abusefilter-edit-group": "Filter group:",
- "abusefilter-edit-flags": "Flags:",
- "abusefilter-edit-enabled": "Enable this filter",
- "abusefilter-edit-deleted": "Mark as deleted",
- "abusefilter-edit-hidden": "Hide details of this filter from public view",
- "abusefilter-edit-global": "Global filter",
- "abusefilter-edit-rules": "Conditions:",
- "abusefilter-edit-notes": "Notes:",
- "abusefilter-edit-lastmod": "Filter last modified:",
- "abusefilter-edit-lastmod-text": "$1 by $2",
- "abusefilter-edit-hitcount": "Filter hits:",
- "abusefilter-edit-consequences": "Actions taken when matched",
- "abusefilter-edit-action-warn": "Trigger these actions after giving the
user a warning",
- "abusefilter-edit-action-disallow": "Prevent the user from performing the
action in question",
- "abusefilter-edit-action-flag": "Flag the edit in the abuse log",
- "abusefilter-edit-action-blockautopromote": "Revoke the user's
autoconfirmed status",
- "abusefilter-edit-action-degroup": "Remove the user from all privileged
groups",
- "abusefilter-edit-action-block": "Block the user and/or IP address from
editing",
- "abusefilter-edit-action-throttle": "Trigger actions only if the user
trips a rate limit",
- "abusefilter-edit-action-rangeblock": "Block the /16 range from which the
user originates",
- "abusefilter-edit-action-tag": "Tag the edit for further review",
- "abusefilter-edit-throttle-count": "Number of actions to allow:",
- "abusefilter-edit-throttle-period": "Period of time:",
- "abusefilter-edit-throttle-seconds": "$1 {{PLURAL:$1|second|seconds}}",
- "abusefilter-edit-throttle-groups": "Group throttle by:\n:''(one per line,
combine with commas)''",
- "abusefilter-edit-warn-message": "System message to use for warning:",
- "abusefilter-edit-warn-other": "Other message",
- "abusefilter-edit-warn-other-label": "Page name of other
message:\n:''(without MediaWiki prefix)''",
- "abusefilter-edit-warn-actions": "Actions:",
- "abusefilter-edit-warn-preview": "Preview selected message",
- "abusefilter-edit-warn-edit": "Create/Edit selected message",
- "abusefilter-edit-tag-tag": "Tags to apply (one per line):",
- "abusefilter-edit-denied": "You may not view details of this filter,
because it is hidden from public view.",
- "abusefilter-edit-main": "Filter parameters",
- "abusefilter-edit-done-subtitle": "Filter edited",
- "abusefilter-edit-done":
"[[Special:AbuseFilter/history/$1/diff/prev/$2|Your changes]] to
[[Special:AbuseFilter/$1|filter $3]] have been saved.",
- "abusefilter-edit-badsyntax": "There is a syntax error in the filter you
specified.\nThe output from the parser was: <pre>$1</pre>",
- "abusefilter-edit-restricted": "You cannot edit this filter, because it
contains one or more restricted actions.\nPlease ask a user with permission to
add restricted actions to make the change for you.",
- "abusefilter-edit-viewhistory": "View this filter's history",
- "abusefilter-edit-history": "History:",
- "abusefilter-edit-check": "Check syntax",
- "abusefilter-edit-badfilter": "The filter you specified does not exist",
- "abusefilter-edit-revert": "Revert actions taken by this filter",
- "abusefilter-edit-tools": "Tools:",
- "abusefilter-edit-test-link": "Test this filter against recent edits",
- "abusefilter-edit-export": "Export this filter to another wiki",
- "abusefilter-edit-syntaxok": "No syntax errors detected.",
- "abusefilter-edit-syntaxerr": "Syntax error detected: $1",
- "abusefilter-edit-bad-tags": "One or more of the tags you specified is not
valid.\nTags should be short, and they should not contain special characters.",
- "abusefilter-edit-notallowed": "You are not permitted to create or edit
abuse filters",
- "abusefilter-edit-notallowed-global": "You are not permitted to create or
edit global abuse filters",
- "abusefilter-edit-notallowed-global-custom-msg": "Custom warning messages
are not supported for global filters",
- "abusefilter-edit-builder-select": "Select an option to add it at the
cursor",
- "abusefilter-edit-builder-group-op-arithmetic": "Arithmetic operators",
- "abusefilter-edit-builder-op-arithmetic-addition": "Addition (+)",
- "abusefilter-edit-builder-op-arithmetic-subtraction": "Subtraction (-)",
- "abusefilter-edit-builder-op-arithmetic-multiplication": "Multiplication
(*)",
- "abusefilter-edit-builder-op-arithmetic-divide": "Division (/)",
- "abusefilter-edit-builder-op-arithmetic-modulo": "Modulo (%)",
- "abusefilter-edit-builder-op-arithmetic-pow": "Power (**)",
- "abusefilter-edit-builder-group-op-comparison": "Comparison operators",
- "abusefilter-edit-builder-op-comparison-equal": "Equal to (==)",
- "abusefilter-edit-builder-op-comparison-notequal": "Not equal to (!=)",
- "abusefilter-edit-builder-op-comparison-lt": "Less than (<)",
- "abusefilter-edit-builder-op-comparison-gt": "Greater than (>)",
- "abusefilter-edit-builder-op-comparison-lte": "Less than or equal to (<=)",
- "abusefilter-edit-builder-op-comparison-gte": "Greater than or equal to
(>=)",
- "abusefilter-edit-builder-group-op-bool": "Boolean operators",
- "abusefilter-edit-builder-op-bool-not": "Not (!)",
- "abusefilter-edit-builder-op-bool-and": "And (&)",
- "abusefilter-edit-builder-op-bool-or": "Or (|)",
- "abusefilter-edit-builder-op-bool-xor": "XOR (^)",
- "abusefilter-edit-builder-group-misc": "Miscellaneous",
- "abusefilter-edit-builder-misc-in": "contained in string (in)",
- "abusefilter-edit-builder-misc-like": "Matches pattern (like)",
- "abusefilter-edit-builder-misc-rlike": "Matches regex (rlike)",
- "abusefilter-edit-builder-misc-irlike": "Matches regex, case insensitive
(irlike)",
- "abusefilter-edit-builder-misc-contains": "Left string contains right
string (contains)",
- "abusefilter-edit-builder-misc-stringlit": "String literal (\"\")",
- "abusefilter-edit-builder-misc-tern": "Ternary operator (X ? Y : Z)",
- "abusefilter-edit-builder-misc-cond": "Conditional (if X then Y else Z)",
- "abusefilter-edit-builder-group-funcs": "Functions",
- "abusefilter-edit-builder-funcs-length": "String length (length)",
- "abusefilter-edit-builder-funcs-lcase": "To lower case (lcase)",
- "abusefilter-edit-builder-funcs-ucase": "To upper case (ucase)",
- "abusefilter-edit-builder-funcs-ccnorm": "Normalize confusable characters
(ccnorm)",
- "abusefilter-edit-builder-funcs-rmdoubles": "Remove double-characters
(rmdoubles)",
- "abusefilter-edit-builder-funcs-specialratio": "Special characters / total
characters (specialratio)",
- "abusefilter-edit-builder-funcs-norm": "Normalize (norm)",
- "abusefilter-edit-builder-funcs-count": "Number of times string X appears
in string Y (count)",
- "abusefilter-edit-builder-funcs-rcount": "Number of times regex X appears
in string Y (rcount)",
- "abusefilter-edit-builder-funcs-rmwhitespace": "Remove whitespace
(rmwhitespace)",
- "abusefilter-edit-builder-funcs-rmspecials": "Remove special characters
(rmspecials)",
- "abusefilter-edit-builder-funcs-ip_in_range": "Is IP in range?
(ip_in_range)",
- "abusefilter-edit-builder-funcs-contains-any": "Search string for multiple
substrings (contains_any)",
- "abusefilter-edit-builder-funcs-substr": "Substring (substr)",
- "abusefilter-edit-builder-funcs-strpos": "Position of substring in string
(strpos)",
- "abusefilter-edit-builder-funcs-str_replace": "Replace substring with
string (str_replace)",
- "abusefilter-edit-builder-funcs-rescape": "Escape string as literal in
regex (rescape)",
- "abusefilter-edit-builder-funcs-set_var": "Set variable (set_var)",
- "abusefilter-edit-builder-group-vars": "Variables",
- "abusefilter-edit-builder-vars-accountname": "Account name (on account
creation)",
- "abusefilter-edit-builder-vars-timestamp": "Unix timestamp of change",
- "abusefilter-edit-builder-vars-action": "Action",
- "abusefilter-edit-builder-vars-addedlines": "Lines added in edit",
- "abusefilter-edit-builder-vars-delta": "Size change in edit",
- "abusefilter-edit-builder-vars-diff": "Unified diff of changes made by
edit",
- "abusefilter-edit-builder-vars-newsize": "New page size",
- "abusefilter-edit-builder-vars-oldsize": "Old page size",
- "abusefilter-edit-builder-vars-removedlines": "Lines removed in edit",
- "abusefilter-edit-builder-vars-summary": "Edit summary/reason",
- "abusefilter-edit-builder-vars-article-id": "Page ID",
- "abusefilter-edit-builder-vars-article-ns": "Page namespace",
- "abusefilter-edit-builder-vars-article-text": "Page title (without
namespace)",
- "abusefilter-edit-builder-vars-article-prefixedtext": "Full page title",
- "abusefilter-edit-builder-vars-article-views": "Page views",
- "abusefilter-edit-builder-vars-movedfrom-id": "Page ID of move source
page",
- "abusefilter-edit-builder-vars-movedfrom-ns": "Namespace of move source
page",
- "abusefilter-edit-builder-vars-movedfrom-text": "Title of move source
page",
- "abusefilter-edit-builder-vars-movedfrom-prefixedtext": "Full title of
move source page",
- "abusefilter-edit-builder-vars-movedto-id": "Page ID of move destination
page",
- "abusefilter-edit-builder-vars-movedto-ns": "Namespace of move destination
page",
- "abusefilter-edit-builder-vars-movedto-text": "Title of move destination
page",
- "abusefilter-edit-builder-vars-movedto-prefixedtext": "Full title of move
destination page",
- "abusefilter-edit-builder-vars-user-editcount": "Edit count of user",
- "abusefilter-edit-builder-vars-user-age": "Age of user account",
- "abusefilter-edit-builder-vars-user-name": "Name of user account",
- "abusefilter-edit-builder-vars-user-groups": "Groups (including implicit)
user is in",
- "abusefilter-edit-builder-vars-user-rights": "Rights that a user has",
- "abusefilter-edit-builder-vars-user-blocked": "Whether user is blocked",
- "abusefilter-edit-builder-vars-user-emailconfirm": "Time email address was
confirmed",
- "abusefilter-edit-builder-vars-recent-contributors": "Last ten users to
contribute to the page",
- "abusefilter-edit-builder-vars-first-contributor": "First user to
contribute to the page",
- "abusefilter-edit-builder-vars-all-links": "All external links in the new
text",
- "abusefilter-edit-builder-vars-added-links": "All external links added in
the edit",
- "abusefilter-edit-builder-vars-removed-links": "All external links removed
in the edit",
- "abusefilter-edit-builder-vars-old-text": "Old page wikitext, before the
edit",
- "abusefilter-edit-builder-vars-new-text": "New page wikitext, after the
edit",
- "abusefilter-edit-builder-vars-new-pst": "New page wikitext, pre-save
transformed",
- "abusefilter-edit-builder-vars-diff-pst": "Unified diff of changes made by
edit, pre-save transformed",
- "abusefilter-edit-builder-vars-addedlines-pst": "Lines added in edit,
pre-save transformed",
- "abusefilter-edit-builder-vars-new-text-stripped": "New page text,
stripped of any markup",
- "abusefilter-edit-builder-vars-new-html": "Parsed HTML source of the new
revision",
- "abusefilter-edit-builder-vars-restrictions-edit": "Edit protection level
of the page",
- "abusefilter-edit-builder-vars-restrictions-move": "Move protection level
of the page",
- "abusefilter-edit-builder-vars-restrictions-create": "Create protection of
the page",
- "abusefilter-edit-builder-vars-restrictions-upload": "Upload protection of
the file",
- "abusefilter-edit-builder-vars-old-text-stripped": "Old page text,
stripped of any markup",
- "abusefilter-edit-builder-vars-old-links": "Links in the page, before the
edit",
- "abusefilter-edit-builder-vars-old-html": "Old page wikitext, parsed into
HTML",
- "abusefilter-edit-builder-vars-minor-edit": "Whether or not the edit is
marked as minor",
- "abusefilter-edit-builder-vars-file-sha1": "SHA1 hash of file contents",
- "abusefilter-filter-log": "Recent filter changes",
- "abusefilter-history": "Change history for Abuse Filter #$1",
- "abusefilter-history-foruser": "Changes by $1",
- "abusefilter-history-hidden": "Hidden",
- "abusefilter-history-enabled": "Enabled",
- "abusefilter-history-global": "Global",
- "abusefilter-history-timestamp": "Time",
- "abusefilter-history-user": "User",
- "abusefilter-history-public": "Public filter description",
- "abusefilter-history-flags": "Flags",
- "abusefilter-history-filter": "Filter rule",
- "abusefilter-history-comments": "Comments",
- "abusefilter-history-actions": "Actions",
- "abusefilter-history-backedit": "Back to filter editor",
- "abusefilter-history-deleted": "Deleted",
- "abusefilter-history-filterid": "Filter",
- "abusefilter-history-select-legend": "Refine search",
- "abusefilter-history-select-user": "User:",
- "abusefilter-history-select-submit": "Refine",
- "abusefilter-history-diff": "Changes",
- "abusefilter-history-error-hidden": "The filter you requested is hidden,
and you cannot view its history.",
- "abusefilter-exception-unexpectedatend": "Unexpected \"$2\" at character
$1.",
- "abusefilter-exception-expectednotfound": "Expected a $2 at character $1,
not found (found $3 $4 instead).",
- "abusefilter-exception-unrecognisedkeyword": "Unrecognized keyword $2 at
character $1.",
- "abusefilter-exception-unexpectedtoken": "Unexpected token \"$3\" (of type
$2) at character $1.",
- "abusefilter-exception-unclosedstring": "Unclosed string starting at
character $1.",
- "abusefilter-exception-invalidoperator": "Invalid operator \"$2\" at
character $1.",
- "abusefilter-exception-unrecognisedtoken": "Unrecognized token \"$2\" at
character $1.",
- "abusefilter-exception-noparams": "No parameters given to function \"$2\"
at character $1.",
- "abusefilter-exception-dividebyzero": "Illegal attempt to divide $2 by
zero at character $1.",
- "abusefilter-exception-unrecognisedvar": "Unrecognized variable $2 at
character $1.",
- "abusefilter-exception-notenoughargs": "Not enough arguments to function
$2 called at character $1.\n\tExpected $3 {{PLURAL:$3|argument|arguments}}, got
$4",
- "abusefilter-exception-regexfailure": "Error in regular expression \"$3\"
at character $1: \"$2\"",
- "abusefilter-exception-overridebuiltin": "Illegal overriding of built-in
variable \"$2\" at character $1.",
- "abusefilter-exception-outofbounds": "Requesting non-existent list item $2
(list size = $3) at character $1.",
- "abusefilter-exception-notlist": "Requesting array item of non-array at
character $1.",
- "abusefilter-action-tag": "Tag",
- "abusefilter-action-throttle": "Throttle",
- "abusefilter-action-warn": "Warn",
- "abusefilter-action-blockautopromote": "Block autopromote",
- "abusefilter-action-block": "Block",
- "abusefilter-action-degroup": "Remove from groups",
- "abusefilter-action-rangeblock": "Range-block",
- "abusefilter-action-disallow": "Disallow",
- "abusefilter-revert-title": "Revert all changes by filter $1",
- "abusefilter-revert-intro": "This form allows you to revert all changes
made by the abuse filter due to filter $1.\nPlease exercise care in using this
tool.",
- "abusefilter-revert-preview-item": "$1: $2 made a $3 on $4.\nActions to be
reverted: $5 ($6)",
- "abusefilter-revert-search-legend": "Select abuse filter actions to be
reverted",
- "abusefilter-revert-periodstart": "Period start:",
- "abusefilter-revert-periodend": "Period end:",
- "abusefilter-revert-search": "Select actions",
- "abusefilter-revert-filter": "Filter:",
- "abusefilter-revert-preview-intro": "Below are the actions taken by the
abuse filter that will be reverted by this action.\nPlease check them
carefully, and click \"{{int:abusefilter-revert-confirm}}\" to confirm your
selection.",
- "abusefilter-revert-confirm": "Confirm",
- "abusefilter-revert-success": "You have reverted all actions taken by the
abuse filter due to [[Special:AbuseFilter/$1|filter $2]].",
- "abusefilter-revert-reason": "Automatic revert of all actions taken by the
abuse filter due to filter $1.\nReason given: $2",
- "abusefilter-revert-reasonfield": "Reason:",
- "abusefilter-test": "Test a filter against previous edits",
- "abusefilter-test-intro": "This page allows you to check a filter entered
in the box below against the last $1 {{PLURAL:$1|change|changes}}.\nTo load an
existing filter, type its filter ID into the box below the edit textbox, and
click the \"{{int:abusefilter-test-load}}\" button.",
- "abusefilter-test-legend": "Filter testing",
- "abusefilter-test-load-filter": "Load filter ID:",
- "abusefilter-test-submit": "Test",
- "abusefilter-test-load": "Load",
- "abusefilter-test-user": "Changes by user:",
- "abusefilter-test-period-start": "Changes made after:",
- "abusefilter-test-period-end": "Changes made before:",
- "abusefilter-test-page": "Changes made to page:",
- "abusefilter-test-shownegative": "Show changes that do not match the
filter",
- "abusefilter-test-syntaxerr": "The filter you entered contained a syntax
error.\nYou can receive a full explanation by clicking the
\"{{int:abusefilter-edit-check}}\" button.",
- "abusefilter-test-badtitle": "The page title you entered was invalid. It
may contain one or more characters that cannot be used in titles.",
- "abusefilter-changeslist-examine": "examine",
- "abusefilter-examine": "Examine individual changes",
- "abusefilter-examine-intro": "This page allows you to examine the
variables generated by the Abuse Filter for an individual change, and test it
against filters.",
- "abusefilter-examine-legend": "Select changes",
- "abusefilter-examine-diff": "Diff URL:",
- "abusefilter-examine-user": "User:",
- "abusefilter-examine-title": "Page title:",
- "abusefilter-examine-submit": "Search",
- "abusefilter-examine-vars": "Variables generated for this change",
- "abusefilter-examine-test": "Test this change against a filter",
- "abusefilter-examine-test-button": "Test filter",
- "abusefilter-examine-match": "The filter matched this change.",
- "abusefilter-examine-nomatch": "The filter did not match this change.",
- "abusefilter-examine-syntaxerror": "The filter has invalid syntax",
- "abusefilter-examine-notfound": "The change you requested could not be
found.",
- "abusefilter-examine-incompatible": "The change you requested is not
supported by the Abuse Filter",
- "abusefilter-examine-noresults": "No results were found for the search
parameters you provided.",
- "abusefilter-topnav": "'''Abuse Filter navigation'''",
- "abusefilter-topnav-home": "Home",
- "abusefilter-topnav-test": "Batch testing",
- "abusefilter-topnav-examine": "Examine past edits",
- "abusefilter-topnav-log": "Abuse Log",
- "abusefilter-topnav-tools": "Debugging tools",
- "abusefilter-topnav-import": "Import filter",
- "abusefilter-log-name": "Abuse Filter log",
- "abusefilter-log-header": "This log shows a summary of changes made to
filters.\nFor full details, see [[Special:AbuseFilter/history|the list]] of
recent filter changes.",
- "abusefilter-log-entry-modify": "modified $1 ($2)",
- "abusefilter-log-noresults": "No results",
- "abusefilter-diff-title": "Differences between versions",
- "abusefilter-diff-item": "Item",
- "abusefilter-diff-version": "Version from $1 {{GENDER:$3|by}} $2",
- "abusefilter-diff-info": "Basic information",
- "abusefilter-diff-pattern": "Filter conditions",
- "abusefilter-diff-invalid": "Unable to fetch the requested versions",
- "abusefilter-diff-backhistory": "Back to filter history",
- "abusefilter-diff-prev": "Older change",
- "abusefilter-diff-next": "Newer change",
- "abusefilter-import-intro": "You can use this interface to import filters
from other wikis.\nOn the source wiki, click
\"{{int:abusefilter-edit-export}}\" under \"{{int:abusefilter-edit-tools}}\" on
the editing interface.\nCopy from the textbox that appears, and paste it into
this textbox, then click \"{{int:abusefilter-import-submit}}\".",
- "abusefilter-import-submit": "Import data",
- "abusefilter-group-default": "Default",
- "abusefilter-http-error": "An HTTP error occurred: $1."
+ "@metadata": {
+ "authors": [
+ "Andrew Garrett",
+ "Kunal Mehta"
+ ]
+ },
+ "abusefilter-desc": "Applies automatic heuristics to edits",
+ "abusefilter": "Abuse filter configuration",
+ "abuselog": "Abuse log",
+ "abusefilter-intro": "Welcome to the Abuse Filter management
interface.\nThe Abuse Filter is an automated software mechanism of applying
automatic heuristics to all actions.\nThis interface shows a list of defined
filters, and allows them to be modified.",
+ "abusefilter-mustbeeditor": "For security reasons, only users with the
right to modify abuse filters may use this interface.",
+ "abusefilter-warning": "'''Warning:''' This action has been
automatically identified as harmful.\nUnconstructive edits will be quickly
reverted,\nand egregious or repeated unconstructive editing will result in your
account or IP address being blocked.\nIf you believe this action to be
constructive, you may submit it again to confirm it.\nA brief description of
the abuse rule which your action matched is: $1",
+ "abusefilter-disallowed": "This action has been automatically
identified as harmful, and therefore disallowed.\nIf you believe your action
was constructive, please inform an administrator of what you were trying to
do.\nA brief description of the abuse rule which your action matched is: $1",
+ "abusefilter-blocked-display": "This action has been automatically
identified as harmful,\nand you have been prevented from executing it.\nIn
addition, to protect {{SITENAME}}, your user account and all associated IP
addresses have been blocked from editing.\nIf this has occurred in error,
please contact an administrator.\nA brief description of the abuse rule which
your action matched is: $1",
+ "abusefilter-degrouped": "This action has been automatically identified
as harmful.\nConsequently, it has been disallowed, and, since your account is
suspected of being compromised, all rights have been revoked.\nIf you believe
this to have been in error, please contact a bureaucrat with an explanation of
this action, and your rights may be restored.\nA brief description of the abuse
rule which your action matched is: $1",
+ "abusefilter-autopromote-blocked": "This action has been automatically
identified as harmful, and it has been disallowed.\nIn addition, as a security
measure, some privileges routinely granted to established accounts have been
temporarily revoked from your account.\nA brief description of the abuse rule
which your action matched is: $1",
+ "abusefilter-blocker": "Abuse filter",
+ "abusefilter-blockreason": "Automatically blocked by abuse
filter.\nDescription of matched rule: $1",
+ "abusefilter-degroupreason": "Rights automatically stripped by abuse
filter.\nRule description: $1",
+ "abusefilter-accountreserved": "This account name is reserved for use
by the abuse filter.",
+ "right-abusefilter-modify": "Modify abuse filters",
+ "right-abusefilter-view": "View abuse filters",
+ "right-abusefilter-log": "View the abuse log",
+ "right-abusefilter-log-detail": "View detailed abuse log entries",
+ "right-abusefilter-private": "View private data in the abuse log",
+ "right-abusefilter-modify-restricted": "Modify abuse filters with
restricted actions",
+ "right-abusefilter-revert": "Revert all changes by a given abuse
filter",
+ "right-abusefilter-view-private": "View abuse filters marked as
private",
+ "right-abusefilter-log-private": "View log entries of abuse filters
marked as private",
+ "right-abusefilter-hide-log": "Hide entries in the abuse log",
+ "right-abusefilter-hidden-log": "View hidden abuse log entries",
+ "right-abusefilter-modify-global": "Create or modify global abuse
filters",
+ "action-abusefilter-modify": "modify abuse filters",
+ "action-abusefilter-view": "view abuse filters",
+ "action-abusefilter-log": "view the abuse log",
+ "action-abusefilter-log-detail": "view detailed abuse log entries",
+ "action-abusefilter-private": "view private data in the abuse log",
+ "action-abusefilter-modify-restricted": "modify abuse filters with
restricted actions",
+ "action-abusefilter-revert": "revert all changes by a given abuse
filter",
+ "action-abusefilter-view-private": "view abuse filters marked as
private",
+ "abusefilter-log": "Abuse filter log",
+ "abusefilter-log-summary": "This log shows a list of all actions caught
by the filters.",
+ "abusefilter-log-search": "Search the abuse log",
+ "abusefilter-log-search-user": "User:",
+ "abusefilter-log-search-filter": "Filter IDs (separate with pipes):",
+ "abusefilter-log-search-title": "Title:",
+ "abusefilter-log-search-wiki": "Wiki:",
+ "abusefilter-log-search-submit": "Search",
+ "abusefilter-log-entry": "$1: $2 triggered an abuse filter, performing
the action \"$3\" on $4.\nActions taken: $5;\nFilter description: $6",
+ "abusefilter-log-entry-withdiff": "$1: $2 triggered an abuse filter,
performing the action \"$3\" on $4.\nActions taken: $5;\nFilter description: $6
($7)",
+ "abusefilter-log-detailedentry-meta": "$1: $2 triggered $3, performing
the action \"$4\" on $5.\nActions taken: $6;\nFilter description: $7 ($8)",
+ "abusefilter-log-detailedentry-global": "global filter $1",
+ "abusefilter-log-detailedentry-local": "filter $1",
+ "abusefilter-log-detailslink": "details",
+ "abusefilter-log-diff": "diff",
+ "abusefilter-log-hidelink": "adjust visibility",
+ "abusefilter-log-details-legend": "Details for log entry $1",
+ "abusefilter-log-details-var": "Variable",
+ "abusefilter-log-details-val": "Value",
+ "abusefilter-log-details-vars": "Action parameters",
+ "abusefilter-log-details-private": "Private data",
+ "abusefilter-log-details-ip": "Originating IP address",
+ "abusefilter-log-noactions": "none",
+ "abusefilter-log-details-diff": "Changes made in edit",
+ "abusefilter-log-linkoncontribs": "abuse log",
+ "abusefilter-log-linkoncontribs-text": "Abuse log for this user",
+ "abusefilter-log-hidden": "(entry hidden)",
+ "abusefilter-log-hidden-implicit": "(hidden because revision has been
deleted)",
+ "abusefilter-log-cannot-see-details": "You do not have permission to
see details of this entry.",
+ "abusefilter-log-details-hidden": "You cannot view the details for this
entry because it is hidden from public view.",
+ "abusefilter-log-private-not-included": "One or more of the filter IDs
you specified are private. Because you are not allowed to view details of
private filters, these filters have not been searched for.",
+ "abusefilter-log-hide-legend": "Hide log entry",
+ "abusefilter-log-hide-id": "Log entry ID:",
+ "abusefilter-log-hide-hidden": "Hide this entry from public view",
+ "abusefilter-log-hide-reason": "Reason:",
+ "abusefilter-log-hide-forbidden": "You do not have permission to hide
abuse log entries.",
+ "abusefilter-logentry-suppress": "hid \"[[$1]]\"",
+ "abusefilter-logentry-unsuppress": "unhid \"[[$1]]\"",
+ "logentry-abusefilter-hit": "$1 triggered $4, performing the action
\"$5\" on $3. Actions taken: $6 ($7)",
+ "abusefilter-management": "Abuse filter management",
+ "abusefilter-list": "All filters",
+ "abusefilter-list-id": "Filter ID",
+ "abusefilter-list-status": "Status",
+ "abusefilter-list-public": "Public description",
+ "abusefilter-list-consequences": "Consequences",
+ "abusefilter-list-visibility": "Visibility",
+ "abusefilter-list-hitcount": "Hit count",
+ "abusefilter-list-edit": "Edit",
+ "abusefilter-list-details": "Details",
+ "abusefilter-list-limit": "Number per page:",
+ "abusefilter-list-lastmodified": "Last modified",
+ "abusefilter-list-group": "Filter group",
+ "abusefilter-hidden": "Private",
+ "abusefilter-unhidden": "Public",
+ "abusefilter-enabled": "Enabled",
+ "abusefilter-deleted": "Deleted",
+ "abusefilter-disabled": "Disabled",
+ "abusefilter-hitcount": "$1 {{PLURAL:$1|hit|hits}}",
+ "abusefilter-new": "Create a new filter",
+ "abusefilter-return": "Return to filter management",
+ "abusefilter-status-global": "Global",
+ "abusefilter-list-options": "Options",
+ "abusefilter-list-options-deleted": "Deleted filters:",
+ "abusefilter-list-options-deleted-only": "Show only deleted filters",
+ "abusefilter-list-options-deleted-hide": "Hide deleted filters",
+ "abusefilter-list-options-deleted-show": "Include deleted filters",
+ "abusefilter-list-options-scope": "Show filters from:",
+ "abusefilter-list-options-scope-local": "Local wiki",
+ "abusefilter-list-options-scope-global": "Global rules",
+ "abusefilter-list-options-disabled": "Disabled filters:",
+ "abusefilter-list-options-hidedisabled": "Hide disabled filters",
+ "abusefilter-list-options-submit": "Update",
+ "abusefilter-tools-text": "Here are some tools which may be useful in
formulating and debugging abuse filters.",
+ "abusefilter-tools-expr": "Expression tester",
+ "abusefilter-tools-submitexpr": "Evaluate",
+ "abusefilter-tools-reautoconfirm": "Restore autoconfirmed status",
+ "abusefilter-tools-reautoconfirm-user": "User:",
+ "abusefilter-tools-reautoconfirm-submit": "Re-autoconfirm",
+ "abusefilter-reautoconfirm-none": "That user has not had
{{GENDER:$1|his|her|their}} autoconfirmed status suspended.",
+ "abusefilter-reautoconfirm-notallowed": "You are not allowed to restore
autoconfirmed status.",
+ "abusefilter-reautoconfirm-done": "Account's autoconfirmed status has
been restored",
+ "abusefilter-status": "Of the last $1 {{PLURAL:$1|action|actions}}, $2
($3%) {{PLURAL:$2|has|have}} reached the condition limit of $4, and $5 ($6%)
{{PLURAL:$5|has|have}} matched one of the filters currently enabled.",
+ "abusefilter-edit": "Editing abuse filter",
+ "abusefilter-edit-subtitle": "Editing filter $1",
+ "abusefilter-edit-subtitle-new": "Creating filter",
+ "abusefilter-edit-oldwarning": "<strong>You are editing an old version
of this filter.\nThe statistics quoted are for the most recent version of the
filter.\nIf you save your changes, you will overwrite all changes since the
revision you are editing.</strong>
•\n[[Special:AbuseFilter/history/$2|Return to this filter's history]].",
+ "abusefilter-edit-status-label": "Statistics:",
+ "abusefilter-edit-status": "Of the last $1
{{PLURAL:$1|action|actions}}, this filter has matched $2 ($3%).\nOn average,
its run time is $4 ms, and it consumes $5 {{PLURAL:$5|condition|conditions}} of
the condition limit.",
+ "abusefilter-edit-throttled": "'''Warning:''' This filter was
automatically disabled as a safety measure.\nIt reached the limit of matching
more than $1% of actions.",
+ "abusefilter-edit-new": "New filter",
+ "abusefilter-edit-save": "Save filter",
+ "abusefilter-edit-id": "Filter ID:",
+ "abusefilter-edit-description": "Description:\n:''(publicly
viewable)''",
+ "abusefilter-edit-group": "Filter group:",
+ "abusefilter-edit-flags": "Flags:",
+ "abusefilter-edit-enabled": "Enable this filter",
+ "abusefilter-edit-deleted": "Mark as deleted",
+ "abusefilter-edit-hidden": "Hide details of this filter from public
view",
+ "abusefilter-edit-global": "Global filter",
+ "abusefilter-edit-rules": "Conditions:",
+ "abusefilter-edit-notes": "Notes:",
+ "abusefilter-edit-lastmod": "Filter last modified:",
+ "abusefilter-edit-lastmod-text": "$1 by $2",
+ "abusefilter-edit-hitcount": "Filter hits:",
+ "abusefilter-edit-consequences": "Actions taken when matched",
+ "abusefilter-edit-action-warn": "Trigger these actions after giving the
user a warning",
+ "abusefilter-edit-action-disallow": "Prevent the user from performing
the action in question",
+ "abusefilter-edit-action-flag": "Flag the edit in the abuse log",
+ "abusefilter-edit-action-blockautopromote": "Revoke the user's
autoconfirmed status",
+ "abusefilter-edit-action-degroup": "Remove the user from all privileged
groups",
+ "abusefilter-edit-action-block": "Block the user and/or IP address from
editing",
+ "abusefilter-edit-action-throttle": "Trigger actions only if the user
trips a rate limit",
+ "abusefilter-edit-action-rangeblock": "Block the /16 range from which
the user originates",
+ "abusefilter-edit-action-tag": "Tag the edit for further review",
+ "abusefilter-edit-throttle-count": "Number of actions to allow:",
+ "abusefilter-edit-throttle-period": "Period of time:",
+ "abusefilter-edit-throttle-seconds": "$1 {{PLURAL:$1|second|seconds}}",
+ "abusefilter-edit-throttle-groups": "Group throttle by:\n:''(one per
line, combine with commas)''",
+ "abusefilter-edit-warn-message": "System message to use for warning:",
+ "abusefilter-edit-warn-other": "Other message",
+ "abusefilter-edit-warn-other-label": "Page name of other
message:\n:''(without MediaWiki prefix)''",
+ "abusefilter-edit-warn-actions": "Actions:",
+ "abusefilter-edit-warn-preview": "Preview selected message",
+ "abusefilter-edit-warn-edit": "Create/Edit selected message",
+ "abusefilter-edit-tag-tag": "Tags to apply (one per line):",
+ "abusefilter-edit-denied": "You may not view details of this filter,
because it is hidden from public view.",
+ "abusefilter-edit-main": "Filter parameters",
+ "abusefilter-edit-done-subtitle": "Filter edited",
+ "abusefilter-edit-done":
"[[Special:AbuseFilter/history/$1/diff/prev/$2|Your changes]] to
[[Special:AbuseFilter/$1|filter $3]] have been saved.",
+ "abusefilter-edit-badsyntax": "There is a syntax error in the filter
you specified.\nThe output from the parser was: <pre>$1</pre>",
+ "abusefilter-edit-restricted": "You cannot edit this filter, because it
contains one or more restricted actions.\nPlease ask a user with permission to
add restricted actions to make the change for you.",
+ "abusefilter-edit-viewhistory": "View this filter's history",
+ "abusefilter-edit-history": "History:",
+ "abusefilter-edit-check": "Check syntax",
+ "abusefilter-edit-badfilter": "The filter you specified does not exist",
+ "abusefilter-edit-revert": "Revert actions taken by this filter",
+ "abusefilter-edit-tools": "Tools:",
+ "abusefilter-edit-test-link": "Test this filter against recent edits",
+ "abusefilter-edit-export": "Export this filter to another wiki",
+ "abusefilter-edit-syntaxok": "No syntax errors detected.",
+ "abusefilter-edit-syntaxerr": "Syntax error detected: $1",
+ "abusefilter-edit-bad-tags": "One or more of the tags you specified is
not valid.\nTags should be short, and they should not contain special
characters.",
+ "abusefilter-edit-notallowed": "You are not permitted to create or edit
abuse filters",
+ "abusefilter-edit-notallowed-global": "You are not permitted to create
or edit global abuse filters",
+ "abusefilter-edit-notallowed-global-custom-msg": "Custom warning
messages are not supported for global filters",
+ "abusefilter-edit-builder-select": "Select an option to add it at the
cursor",
+ "abusefilter-edit-builder-group-op-arithmetic": "Arithmetic operators",
+ "abusefilter-edit-builder-op-arithmetic-addition": "Addition (+)",
+ "abusefilter-edit-builder-op-arithmetic-subtraction": "Subtraction (-)",
+ "abusefilter-edit-builder-op-arithmetic-multiplication":
"Multiplication (*)",
+ "abusefilter-edit-builder-op-arithmetic-divide": "Division (/)",
+ "abusefilter-edit-builder-op-arithmetic-modulo": "Modulo (%)",
+ "abusefilter-edit-builder-op-arithmetic-pow": "Power (**)",
+ "abusefilter-edit-builder-group-op-comparison": "Comparison operators",
+ "abusefilter-edit-builder-op-comparison-equal": "Equal to (==)",
+ "abusefilter-edit-builder-op-comparison-notequal": "Not equal to (!=)",
+ "abusefilter-edit-builder-op-comparison-lt": "Less than (<)",
+ "abusefilter-edit-builder-op-comparison-gt": "Greater than (>)",
+ "abusefilter-edit-builder-op-comparison-lte": "Less than or equal to
(<=)",
+ "abusefilter-edit-builder-op-comparison-gte": "Greater than or equal to
(>=)",
+ "abusefilter-edit-builder-group-op-bool": "Boolean operators",
+ "abusefilter-edit-builder-op-bool-not": "Not (!)",
+ "abusefilter-edit-builder-op-bool-and": "And (&)",
+ "abusefilter-edit-builder-op-bool-or": "Or (|)",
+ "abusefilter-edit-builder-op-bool-xor": "XOR (^)",
+ "abusefilter-edit-builder-group-misc": "Miscellaneous",
+ "abusefilter-edit-builder-misc-in": "contained in string (in)",
+ "abusefilter-edit-builder-misc-like": "Matches pattern (like)",
+ "abusefilter-edit-builder-misc-rlike": "Matches regex (rlike)",
+ "abusefilter-edit-builder-misc-irlike": "Matches regex, case
insensitive (irlike)",
+ "abusefilter-edit-builder-misc-contains": "Left string contains right
string (contains)",
+ "abusefilter-edit-builder-misc-stringlit": "String literal (\"\")",
+ "abusefilter-edit-builder-misc-tern": "Ternary operator (X ? Y : Z)",
+ "abusefilter-edit-builder-misc-cond": "Conditional (if X then Y else
Z)",
+ "abusefilter-edit-builder-group-funcs": "Functions",
+ "abusefilter-edit-builder-funcs-length": "String length (length)",
+ "abusefilter-edit-builder-funcs-lcase": "To lower case (lcase)",
+ "abusefilter-edit-builder-funcs-ucase": "To upper case (ucase)",
+ "abusefilter-edit-builder-funcs-ccnorm": "Normalize confusable
characters (ccnorm)",
+ "abusefilter-edit-builder-funcs-rmdoubles": "Remove double-characters
(rmdoubles)",
+ "abusefilter-edit-builder-funcs-specialratio": "Special characters /
total characters (specialratio)",
+ "abusefilter-edit-builder-funcs-norm": "Normalize (norm)",
+ "abusefilter-edit-builder-funcs-count": "Number of times string X
appears in string Y (count)",
+ "abusefilter-edit-builder-funcs-rcount": "Number of times regex X
appears in string Y (rcount)",
+ "abusefilter-edit-builder-funcs-rmwhitespace": "Remove whitespace
(rmwhitespace)",
+ "abusefilter-edit-builder-funcs-rmspecials": "Remove special characters
(rmspecials)",
+ "abusefilter-edit-builder-funcs-ip_in_range": "Is IP in range?
(ip_in_range)",
+ "abusefilter-edit-builder-funcs-contains-any": "Search string for
multiple substrings (contains_any)",
+ "abusefilter-edit-builder-funcs-substr": "Substring (substr)",
+ "abusefilter-edit-builder-funcs-strpos": "Position of substring in
string (strpos)",
+ "abusefilter-edit-builder-funcs-str_replace": "Replace substring with
string (str_replace)",
+ "abusefilter-edit-builder-funcs-rescape": "Escape string as literal in
regex (rescape)",
+ "abusefilter-edit-builder-funcs-set_var": "Set variable (set_var)",
+ "abusefilter-edit-builder-group-vars": "Variables",
+ "abusefilter-edit-builder-vars-accountname": "Account name (on account
creation)",
+ "abusefilter-edit-builder-vars-timestamp": "Unix timestamp of change",
+ "abusefilter-edit-builder-vars-action": "Action",
+ "abusefilter-edit-builder-vars-addedlines": "Lines added in edit",
+ "abusefilter-edit-builder-vars-delta": "Size change in edit",
+ "abusefilter-edit-builder-vars-diff": "Unified diff of changes made by
edit",
+ "abusefilter-edit-builder-vars-newsize": "New page size",
+ "abusefilter-edit-builder-vars-oldsize": "Old page size",
+ "abusefilter-edit-builder-vars-removedlines": "Lines removed in edit",
+ "abusefilter-edit-builder-vars-summary": "Edit summary/reason",
+ "abusefilter-edit-builder-vars-article-id": "Page ID",
+ "abusefilter-edit-builder-vars-article-ns": "Page namespace",
+ "abusefilter-edit-builder-vars-article-text": "Page title (without
namespace)",
+ "abusefilter-edit-builder-vars-article-prefixedtext": "Full page title",
+ "abusefilter-edit-builder-vars-article-views": "Page views",
+ "abusefilter-edit-builder-vars-movedfrom-id": "Page ID of move source
page",
+ "abusefilter-edit-builder-vars-movedfrom-ns": "Namespace of move source
page",
+ "abusefilter-edit-builder-vars-movedfrom-text": "Title of move source
page",
+ "abusefilter-edit-builder-vars-movedfrom-prefixedtext": "Full title of
move source page",
+ "abusefilter-edit-builder-vars-movedto-id": "Page ID of move
destination page",
+ "abusefilter-edit-builder-vars-movedto-ns": "Namespace of move
destination page",
+ "abusefilter-edit-builder-vars-movedto-text": "Title of move
destination page",
+ "abusefilter-edit-builder-vars-movedto-prefixedtext": "Full title of
move destination page",
+ "abusefilter-edit-builder-vars-user-editcount": "Edit count of user",
+ "abusefilter-edit-builder-vars-user-age": "Age of user account",
+ "abusefilter-edit-builder-vars-user-name": "Name of user account",
+ "abusefilter-edit-builder-vars-user-groups": "Groups (including
implicit) user is in",
+ "abusefilter-edit-builder-vars-user-rights": "Rights that a user has",
+ "abusefilter-edit-builder-vars-user-blocked": "Whether user is blocked",
+ "abusefilter-edit-builder-vars-user-emailconfirm": "Time email address
was confirmed",
+ "abusefilter-edit-builder-vars-recent-contributors": "Last ten users to
contribute to the page",
+ "abusefilter-edit-builder-vars-first-contributor": "First user to
contribute to the page",
+ "abusefilter-edit-builder-vars-all-links": "All external links in the
new text",
+ "abusefilter-edit-builder-vars-added-links": "All external links added
in the edit",
+ "abusefilter-edit-builder-vars-removed-links": "All external links
removed in the edit",
+ "abusefilter-edit-builder-vars-old-text": "Old page wikitext, before
the edit",
+ "abusefilter-edit-builder-vars-new-text": "New page wikitext, after the
edit",
+ "abusefilter-edit-builder-vars-new-pst": "New page wikitext, pre-save
transformed",
+ "abusefilter-edit-builder-vars-diff-pst": "Unified diff of changes made
by edit, pre-save transformed",
+ "abusefilter-edit-builder-vars-addedlines-pst": "Lines added in edit,
pre-save transformed",
+ "abusefilter-edit-builder-vars-new-text-stripped": "New page text,
stripped of any markup",
+ "abusefilter-edit-builder-vars-new-html": "Parsed HTML source of the
new revision",
+ "abusefilter-edit-builder-vars-restrictions-edit": "Edit protection
level of the page",
+ "abusefilter-edit-builder-vars-restrictions-move": "Move protection
level of the page",
+ "abusefilter-edit-builder-vars-restrictions-create": "Create protection
of the page",
+ "abusefilter-edit-builder-vars-restrictions-upload": "Upload protection
of the file",
+ "abusefilter-edit-builder-vars-old-text-stripped": "Old page text,
stripped of any markup",
+ "abusefilter-edit-builder-vars-old-links": "Links in the page, before
the edit",
+ "abusefilter-edit-builder-vars-old-html": "Old page wikitext, parsed
into HTML",
+ "abusefilter-edit-builder-vars-minor-edit": "Whether or not the edit is
marked as minor",
+ "abusefilter-edit-builder-vars-file-sha1": "SHA1 hash of file contents",
+ "abusefilter-filter-log": "Recent filter changes",
+ "abusefilter-history": "Change history for Abuse Filter #$1",
+ "abusefilter-history-foruser": "Changes by $1",
+ "abusefilter-history-hidden": "Hidden",
+ "abusefilter-history-enabled": "Enabled",
+ "abusefilter-history-global": "Global",
+ "abusefilter-history-timestamp": "Time",
+ "abusefilter-history-user": "User",
+ "abusefilter-history-public": "Public filter description",
+ "abusefilter-history-flags": "Flags",
+ "abusefilter-history-filter": "Filter rule",
+ "abusefilter-history-comments": "Comments",
+ "abusefilter-history-actions": "Actions",
+ "abusefilter-history-backedit": "Back to filter editor",
+ "abusefilter-history-deleted": "Deleted",
+ "abusefilter-history-filterid": "Filter",
+ "abusefilter-history-select-legend": "Refine search",
+ "abusefilter-history-select-user": "User:",
+ "abusefilter-history-select-submit": "Refine",
+ "abusefilter-history-diff": "Changes",
+ "abusefilter-history-error-hidden": "The filter you requested is
hidden, and you cannot view its history.",
+ "abusefilter-exception-unexpectedatend": "Unexpected \"$2\" at
character $1.",
+ "abusefilter-exception-expectednotfound": "Expected a $2 at character
$1, not found (found $3 $4 instead).",
+ "abusefilter-exception-unrecognisedkeyword": "Unrecognized keyword $2
at character $1.",
+ "abusefilter-exception-unexpectedtoken": "Unexpected token \"$3\" (of
type $2) at character $1.",
+ "abusefilter-exception-unclosedstring": "Unclosed string starting at
character $1.",
+ "abusefilter-exception-invalidoperator": "Invalid operator \"$2\" at
character $1.",
+ "abusefilter-exception-unrecognisedtoken": "Unrecognized token \"$2\"
at character $1.",
+ "abusefilter-exception-noparams": "No parameters given to function
\"$2\" at character $1.",
+ "abusefilter-exception-dividebyzero": "Illegal attempt to divide $2 by
zero at character $1.",
+ "abusefilter-exception-unrecognisedvar": "Unrecognized variable $2 at
character $1.",
+ "abusefilter-exception-notenoughargs": "Not enough arguments to
function $2 called at character $1.\n\tExpected $3
{{PLURAL:$3|argument|arguments}}, got $4",
+ "abusefilter-exception-regexfailure": "Error in regular expression
\"$3\" at character $1: \"$2\"",
+ "abusefilter-exception-overridebuiltin": "Illegal overriding of
built-in variable \"$2\" at character $1.",
+ "abusefilter-exception-outofbounds": "Requesting non-existent list item
$2 (list size = $3) at character $1.",
+ "abusefilter-exception-notlist": "Requesting array item of non-array at
character $1.",
+ "abusefilter-action-tag": "Tag",
+ "abusefilter-action-throttle": "Throttle",
+ "abusefilter-action-warn": "Warn",
+ "abusefilter-action-blockautopromote": "Block autopromote",
+ "abusefilter-action-block": "Block",
+ "abusefilter-action-degroup": "Remove from groups",
+ "abusefilter-action-rangeblock": "Range-block",
+ "abusefilter-action-disallow": "Disallow",
+ "abusefilter-revert-title": "Revert all changes by filter $1",
+ "abusefilter-revert-intro": "This form allows you to revert all changes
made by the abuse filter due to filter $1.\nPlease exercise care in using this
tool.",
+ "abusefilter-revert-preview-item": "$1: $2 made a $3 on $4.\nActions to
be reverted: $5 ($6)",
+ "abusefilter-revert-search-legend": "Select abuse filter actions to be
reverted",
+ "abusefilter-revert-periodstart": "Period start:",
+ "abusefilter-revert-periodend": "Period end:",
+ "abusefilter-revert-search": "Select actions",
+ "abusefilter-revert-filter": "Filter:",
+ "abusefilter-revert-preview-intro": "Below are the actions taken by the
abuse filter that will be reverted by this action.\nPlease check them
carefully, and click \"{{int:abusefilter-revert-confirm}}\" to confirm your
selection.",
+ "abusefilter-revert-confirm": "Confirm",
+ "abusefilter-revert-success": "You have reverted all actions taken by
the abuse filter due to [[Special:AbuseFilter/$1|filter $2]].",
+ "abusefilter-revert-reason": "Automatic revert of all actions taken by
the abuse filter due to filter $1.\nReason given: $2",
+ "abusefilter-revert-reasonfield": "Reason:",
+ "abusefilter-test": "Test a filter against previous edits",
+ "abusefilter-test-intro": "This page allows you to check a filter
entered in the box below against the last $1 {{PLURAL:$1|change|changes}}.\nTo
load an existing filter, type its filter ID into the box below the edit
textbox, and click the \"{{int:abusefilter-test-load}}\" button.",
+ "abusefilter-test-legend": "Filter testing",
+ "abusefilter-test-load-filter": "Load filter ID:",
+ "abusefilter-test-submit": "Test",
+ "abusefilter-test-load": "Load",
+ "abusefilter-test-user": "Changes by user:",
+ "abusefilter-test-period-start": "Changes made after:",
+ "abusefilter-test-period-end": "Changes made before:",
+ "abusefilter-test-page": "Changes made to page:",
+ "abusefilter-test-shownegative": "Show changes that do not match the
filter",
+ "abusefilter-test-syntaxerr": "The filter you entered contained a
syntax error.\nYou can receive a full explanation by clicking the
\"{{int:abusefilter-edit-check}}\" button.",
+ "abusefilter-test-badtitle": "The page title you entered was invalid.
It may contain one or more characters that cannot be used in titles.",
+ "abusefilter-changeslist-examine": "examine",
+ "abusefilter-examine": "Examine individual changes",
+ "abusefilter-examine-intro": "This page allows you to examine the
variables generated by the Abuse Filter for an individual change, and test it
against filters.",
+ "abusefilter-examine-legend": "Select changes",
+ "abusefilter-examine-diff": "Diff URL:",
+ "abusefilter-examine-user": "User:",
+ "abusefilter-examine-title": "Page title:",
+ "abusefilter-examine-submit": "Search",
+ "abusefilter-examine-vars": "Variables generated for this change",
+ "abusefilter-examine-test": "Test this change against a filter",
+ "abusefilter-examine-test-button": "Test filter",
+ "abusefilter-examine-match": "The filter matched this change.",
+ "abusefilter-examine-nomatch": "The filter did not match this change.",
+ "abusefilter-examine-syntaxerror": "The filter has invalid syntax",
+ "abusefilter-examine-notfound": "The change you requested could not be
found.",
+ "abusefilter-examine-incompatible": "The change you requested is not
supported by the Abuse Filter",
+ "abusefilter-examine-noresults": "No results were found for the search
parameters you provided.",
+ "abusefilter-topnav": "'''Abuse Filter navigation'''",
+ "abusefilter-topnav-home": "Home",
+ "abusefilter-topnav-test": "Batch testing",
+ "abusefilter-topnav-examine": "Examine past edits",
+ "abusefilter-topnav-log": "Abuse Log",
+ "abusefilter-topnav-tools": "Debugging tools",
+ "abusefilter-topnav-import": "Import filter",
+ "abusefilter-log-name": "Abuse Filter log",
+ "abusefilter-log-header": "This log shows a summary of changes made to
filters.\nFor full details, see [[Special:AbuseFilter/history|the list]] of
recent filter changes.",
+ "abusefilter-log-entry-modify": "modified $1 ($2)",
+ "abusefilter-log-noresults": "No results",
+ "abusefilter-diff-title": "Differences between versions",
+ "abusefilter-diff-item": "Item",
+ "abusefilter-diff-version": "Version from $1 {{GENDER:$3|by}} $2",
+ "abusefilter-diff-info": "Basic information",
+ "abusefilter-diff-pattern": "Filter conditions",
+ "abusefilter-diff-invalid": "Unable to fetch the requested versions",
+ "abusefilter-diff-backhistory": "Back to filter history",
+ "abusefilter-diff-prev": "Older change",
+ "abusefilter-diff-next": "Newer change",
+ "abusefilter-import-intro": "You can use this interface to import
filters from other wikis.\nOn the source wiki, click
\"{{int:abusefilter-edit-export}}\" under \"{{int:abusefilter-edit-tools}}\" on
the editing interface.\nCopy from the textbox that appears, and paste it into
this textbox, then click \"{{int:abusefilter-import-submit}}\".",
+ "abusefilter-import-submit": "Import data",
+ "abusefilter-group-default": "Default",
+ "abusefilter-http-error": "An HTTP error occurred: $1.",
+ "apihelp-abusefiltercheckmatch-description": "Check to see if an
AbuseFilter matches a set of variables, editor logged AbuseFilter
event.\n\nvars, rcid or logid is required however only one may be used.",
+ "apihelp-abusefiltercheckmatch-param-filter": "The full filter text to
check for a match.",
+ "apihelp-abusefiltercheckmatch-param-vars": "JSON encoded array of
variables to test against.",
+ "apihelp-abusefiltercheckmatch-param-rcid": "Recent change ID to check
against.",
+ "apihelp-abusefiltercheckmatch-param-logid": "Abuse filter log ID to
check against.",
+ "apihelp-abusefiltercheckmatch-example-1": "Test if recent change ID 15
matches a simple filter",
+ "apihelp-abusefilterchecksyntax-description": "Check syntax of an
AbuseFilter filter.",
+ "apihelp-abusefilterchecksyntax-param-filter": "The full filter text to
check syntax on.",
+ "apihelp-abusefilterchecksyntax-example-1": "Check syntax of a valid
filter",
+ "apihelp-abusefilterchecksyntax-example-2": "Check syntax of an invalid
filter",
+ "apihelp-abusefilterevalexpression-description": "Evaluates an
AbuseFilter expression.",
+ "apihelp-abusefilterevalexpression-param-expression": "The expression
to evaluate.",
+ "apihelp-abusefilterevalexpression-example-1": "Evaluate a simple
expression",
+ "apihelp-abusefilterunblockautopromote-description": "Unblocks a user
from receiving autopromotions due to an abusefilter consequence.",
+ "apihelp-abusefilterunblockautopromote-param-user": "Username of the
user you want to unblock.",
+ "apihelp-abusefilterunblockautopromote-example-1": "Remove the block on
[[User:Example]]'s autopromotion",
+ "apihelp-query+abusefilters-description": "Show details of the abuse
filters.",
+ "apihelp-query+abusefilters-param-startid": "The filter ID to start
enumerating from.",
+ "apihelp-query+abusefilters-param-endid": "The filter ID to stop
enumerating at.",
+ "apihelp-query+abusefilters-param-show": "Show only filters which meet
these criteria.",
+ "apihelp-query+abusefilters-param-limit": "The maximum number of
filters to list.",
+ "apihelp-query+abusefilters-param-prop": "Which properties to get.",
+ "apihelp-query+abusefilters-example-1": "List enabled public filters",
+ "apihelp-query+abusefilters-example-2": "Show some details about
filters",
+ "apihelp-query+abuselog-description": "Show events that were caught by
one of the abuse filters.",
+ "apihelp-query+abuselog-param-start": "The timestamp to start
enumerating from.",
+ "apihelp-query+abuselog-param-end": "The timestamp to stop enumerating
at.",
+ "apihelp-query+abuselog-param-user": "Show only entries done by a given
user or IP address.",
+ "apihelp-query+abuselog-param-title": "Show only entries occurring on a
given page.",
+ "apihelp-query+abuselog-param-filter": "Show only entries that were
caught by a given filter ID.",
+ "apihelp-query+abuselog-param-limit": "The maximum amount of entries to
list.",
+ "apihelp-query+abuselog-param-prop": "Which properties to get.",
+ "apihelp-query+abuselog-example-1": "Show recent log entries",
+ "apihelp-query+abuselog-example-2": "Show recent log entries for
[[API]]"
}
diff --git a/i18n/qqq.json b/i18n/qqq.json
index ba17e01..3a2680c 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -368,5 +368,39 @@
"abusefilter-import-intro": "{{doc-important|Do not translate
<code><nowiki>{{int:abusefilter-edit-export}}</nowiki></code>,
<code><nowiki>{{int:abusefilter-tools-subtitle}}</nowiki></code>, and
<code><nowiki>{{int:abusefilter-import-submit}}</nowiki></code> unless you
absolute must substitute any of them.}}\n\nRefers to:\n*
{{msg-mw|Abusefilter-edit-export}}\n* {{msg-mw|Abusefilter-edit-tools}}\n*
{{msg-mw|Abusefilter-import-submit}}",
"abusefilter-import-submit": "Used as label for the Submit
button.\n\nPreceded by the textarea.\n\nUsed in:\n*
{{msg-mw|Abusefilter-import-intro}}.",
"abusefilter-group-default": "The name for the default filter group.
Most filters will be in this group.\n{{Identical|Default}}",
- "abusefilter-http-error": "Error message for HTTP requests.
Parameters:\n* $1 - HTTP response code."
+ "abusefilter-http-error": "Error message for HTTP requests.
Parameters:\n* $1 - HTTP response code.",
+ "apihelp-abusefiltercheckmatch-description":
"{{doc-apihelp-description|abusefiltercheckmatch}}",
+ "apihelp-abusefiltercheckmatch-param-filter":
"{{doc-apihelp-param|abusefiltercheckmatch|filter}}",
+ "apihelp-abusefiltercheckmatch-param-vars":
"{{doc-apihelp-param|abusefiltercheckmatch|vars}}",
+ "apihelp-abusefiltercheckmatch-param-rcid":
"{{doc-apihelp-param|abusefiltercheckmatch|rcid}}",
+ "apihelp-abusefiltercheckmatch-param-logid":
"{{doc-apihelp-param|abusefiltercheckmatch|logid}}",
+ "apihelp-abusefiltercheckmatch-example-1":
"{{doc-apihelp-example|abusefiltercheckmatch}}",
+ "apihelp-abusefilterchecksyntax-description":
"{{doc-apihelp-description|abusefilterchecksyntax}}",
+ "apihelp-abusefilterchecksyntax-param-filter":
"{{doc-apihelp-param|abusefilterchecksyntax|filter}}",
+ "apihelp-abusefilterchecksyntax-example-1":
"{{doc-apihelp-example|abusefilterchecksyntax}}",
+ "apihelp-abusefilterchecksyntax-example-2":
"{{doc-apihelp-example|abusefilterchecksyntax}}",
+ "apihelp-abusefilterevalexpression-description":
"{{doc-apihelp-description|abusefilterevalexpression}}",
+ "apihelp-abusefilterevalexpression-param-expression":
"{{doc-apihelp-param|abusefilterevalexpression|expression}}",
+ "apihelp-abusefilterevalexpression-example-1":
"{{doc-apihelp-example|abusefilterevalexpression}}",
+ "apihelp-abusefilterunblockautopromote-description":
"{{doc-apihelp-description|abusefilterunblockautopromote}}",
+ "apihelp-abusefilterunblockautopromote-param-user":
"{{doc-apihelp-param|abusefilterunblockautopromote|user}}",
+ "apihelp-abusefilterunblockautopromote-example-1":
"{{doc-apihelp-example|abusefilterunblockautopromote}}",
+ "apihelp-query+abusefilters-description":
"{{doc-apihelp-description|query+abusefilters}}",
+ "apihelp-query+abusefilters-param-startid":
"{{doc-apihelp-param|query+abusefilters|startid}}",
+ "apihelp-query+abusefilters-param-endid":
"{{doc-apihelp-param|query+abusefilters|endid}}",
+ "apihelp-query+abusefilters-param-show":
"{{doc-apihelp-param|query+abusefilters|show}}",
+ "apihelp-query+abusefilters-param-limit":
"{{doc-apihelp-param|query+abusefilters|limit}}",
+ "apihelp-query+abusefilters-param-prop":
"{{doc-apihelp-param|query+abusefilters|prop}}",
+ "apihelp-query+abusefilters-example-1":
"{{doc-apihelp-example|query+abusefilters}}",
+ "apihelp-query+abusefilters-example-2":
"{{doc-apihelp-example|query+abusefilters}}",
+ "apihelp-query+abuselog-description":
"{{doc-apihelp-description|query+abuselog}}",
+ "apihelp-query+abuselog-param-start":
"{{doc-apihelp-param|query+abuselog|start}}",
+ "apihelp-query+abuselog-param-end":
"{{doc-apihelp-param|query+abuselog|end}}",
+ "apihelp-query+abuselog-param-user":
"{{doc-apihelp-param|query+abuselog|user}}",
+ "apihelp-query+abuselog-param-title":
"{{doc-apihelp-param|query+abuselog|title}}",
+ "apihelp-query+abuselog-param-filter":
"{{doc-apihelp-param|query+abuselog|filter}}",
+ "apihelp-query+abuselog-param-limit":
"{{doc-apihelp-param|query+abuselog|limit}}",
+ "apihelp-query+abuselog-param-prop":
"{{doc-apihelp-param|query+abuselog|prop}}",
+ "apihelp-query+abuselog-example-1":
"{{doc-apihelp-example|query+abuselog}}",
+ "apihelp-query+abuselog-example-2":
"{{doc-apihelp-example|query+abuselog}}"
}
--
To view, visit https://gerrit.wikimedia.org/r/169801
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I67395aff48185f3e09da31b51a08aa2541fe6a17
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/AbuseFilter
Gerrit-Branch: master
Gerrit-Owner: Anomie <[email protected]>
Gerrit-Reviewer: Anomie <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: Jackmcbarn <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Se4598 <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits