Automatically add operators to description messages

This solves two issues described in bug T360909:
* Usage of unsafe characters that have to be
  manually reviewed in translations.
* Incorect display of some functions and
  operators in RTL UI languages.

It also reduces the translators' need to copy
those operators and functions, which are always
identical to English.

Finally, this patch adds those consistently to all
the messages. Some messages didn't mention them
for an unspecified reason, and now they are mentioned
everywhere.

Bug: T360909
Change-Id: I3283c91b6b1d5fe9b48b1477cd454d9def3a7ded
This commit is contained in:
Amir E. Aharoni 2024-05-03 19:27:58 +03:00 committed by Amire80
parent a464cb7453
commit 1904cf8d1b
3 changed files with 278 additions and 263 deletions

View file

@ -296,140 +296,140 @@
"abusefilter-edit-invalid-group": "The specified filter group ('$1') is not valid.",
"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-op-arithmetic-addition": "Addition ($1)",
"abusefilter-edit-builder-op-arithmetic-subtraction": "Subtraction ($1)",
"abusefilter-edit-builder-op-arithmetic-multiplication": "Multiplication ($1)",
"abusefilter-edit-builder-op-arithmetic-divide": "Division ($1)",
"abusefilter-edit-builder-op-arithmetic-modulo": "Modulo ($1)",
"abusefilter-edit-builder-op-arithmetic-pow": "Power ($1)",
"abusefilter-edit-builder-group-op-comparison": "Comparison operators",
"abusefilter-edit-builder-op-comparison-equal": "Value equal to (==)",
"abusefilter-edit-builder-op-comparison-equal-strict": "Value and type equal to (===)",
"abusefilter-edit-builder-op-comparison-notequal": "Value not equal to (!=)",
"abusefilter-edit-builder-op-comparison-notequal-strict": "Value and type 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-op-comparison-equal": "Value equal to ($1)",
"abusefilter-edit-builder-op-comparison-equal-strict": "Value and type equal to ($1)",
"abusefilter-edit-builder-op-comparison-notequal": "Value not equal to ($1)",
"abusefilter-edit-builder-op-comparison-notequal-strict": "Value and type not equal to ($1)",
"abusefilter-edit-builder-op-comparison-lt": "Less than ($1)",
"abusefilter-edit-builder-op-comparison-gt": "Greater than ($1)",
"abusefilter-edit-builder-op-comparison-lte": "Less than or equal to ($1)",
"abusefilter-edit-builder-op-comparison-gte": "Greater than or equal to ($1)",
"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-op-bool-not": "Not ($1)",
"abusefilter-edit-builder-op-bool-and": "And ($1)",
"abusefilter-edit-builder-op-bool-or": "Or ($1)",
"abusefilter-edit-builder-op-bool-xor": "XOR ($1)",
"abusefilter-edit-builder-group-misc": "Miscellaneous",
"abusefilter-edit-builder-misc-in": "contained in string (in)",
"abusefilter-edit-builder-misc-contains": "Left string contains right string (contains)",
"abusefilter-edit-builder-misc-like": "Matches pattern (like)",
"abusefilter-edit-builder-misc-stringlit": "String literal (\"\")",
"abusefilter-edit-builder-misc-rlike": "Matches regex (rlike)",
"abusefilter-edit-builder-misc-irlike": "Matches regex, case-insensitive (irlike)",
"abusefilter-edit-builder-misc-tern": "Ternary operator (X ? Y : Z)",
"abusefilter-edit-builder-misc-cond": "Conditional (if X then Y else Z end)",
"abusefilter-edit-builder-misc-cond-short": "Short conditional (if X then Y end)",
"abusefilter-edit-builder-misc-in": "contained in string ($1)",
"abusefilter-edit-builder-misc-contains": "Left string contains right string ($1)",
"abusefilter-edit-builder-misc-like": "Matches pattern ($1)",
"abusefilter-edit-builder-misc-stringlit": "String literal ($1)",
"abusefilter-edit-builder-misc-rlike": "Matches regex ($1)",
"abusefilter-edit-builder-misc-irlike": "Matches regex, case-insensitive ($1)",
"abusefilter-edit-builder-misc-tern": "Ternary operator ($1)",
"abusefilter-edit-builder-misc-cond": "Conditional ($1)",
"abusefilter-edit-builder-misc-cond-short": "Short conditional ($1)",
"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-ccnorm-contains-any": "Normalize and search a string for multiple substrings in OR mode (ccnorm_contains_any)",
"abusefilter-edit-builder-funcs-ccnorm-contains-all": "Normalize and search a string for multiple substrings in AND mode (ccnorm_contains_all)",
"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-get_matches": "Array of regex matches within a text for each capturing group (get_matches)",
"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-ip_in_ranges": "Is IP in any of the ranges? (ip_in_ranges)",
"abusefilter-edit-builder-funcs-contains-any": "Search string for multiple substrings in OR mode. (contains_any)",
"abusefilter-edit-builder-funcs-contains-all": "Search string for multiple substrings in AND mode. (contains_all)",
"abusefilter-edit-builder-funcs-equals-to-any": "Check if a given argument is equal (===) to any of the following arguments (equals_to_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-str_replace_regexp": "Regular expression search and replace (str_replace_regexp)",
"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-funcs-sanitize": "Normalize HTML entities into unicode characters (sanitize)",
"abusefilter-edit-builder-funcs-length": "String length ($1)",
"abusefilter-edit-builder-funcs-lcase": "To lower case ($1)",
"abusefilter-edit-builder-funcs-ucase": "To upper case ($1)",
"abusefilter-edit-builder-funcs-ccnorm": "Normalize confusable characters ($1)",
"abusefilter-edit-builder-funcs-ccnorm-contains-any": "Normalize and search a string for multiple substrings in OR mode ($1)",
"abusefilter-edit-builder-funcs-ccnorm-contains-all": "Normalize and search a string for multiple substrings in AND mode ($1)",
"abusefilter-edit-builder-funcs-rmdoubles": "Remove double-characters ($1)",
"abusefilter-edit-builder-funcs-specialratio": "Special characters / total characters ($1)",
"abusefilter-edit-builder-funcs-norm": "Normalize ($1)",
"abusefilter-edit-builder-funcs-count": "Number of times string X appears in string Y ($1)",
"abusefilter-edit-builder-funcs-rcount": "Number of times regex X appears in string Y ($1)",
"abusefilter-edit-builder-funcs-get_matches": "Array of regex matches within a text for each capturing group ($1)",
"abusefilter-edit-builder-funcs-rmwhitespace": "Remove whitespace ($1)",
"abusefilter-edit-builder-funcs-rmspecials": "Remove special characters ($1)",
"abusefilter-edit-builder-funcs-ip_in_range": "Is IP in range? ($1)",
"abusefilter-edit-builder-funcs-ip_in_ranges": "Is IP in any of the ranges? ($1)",
"abusefilter-edit-builder-funcs-contains-any": "Search string for multiple substrings in OR mode. ($1)",
"abusefilter-edit-builder-funcs-contains-all": "Search string for multiple substrings in AND mode. ($1)",
"abusefilter-edit-builder-funcs-equals-to-any": "Check if a given argument is equal (===) to any of the following arguments ($1)",
"abusefilter-edit-builder-funcs-substr": "Substring ($1)",
"abusefilter-edit-builder-funcs-strpos": "Position of substring in string ($1)",
"abusefilter-edit-builder-funcs-str_replace": "Replace substring with string ($1)",
"abusefilter-edit-builder-funcs-str_replace_regexp": "Regular expression search and replace ($1)",
"abusefilter-edit-builder-funcs-rescape": "Escape string as literal in regex ($1)",
"abusefilter-edit-builder-funcs-set_var": "Set variable ($1)",
"abusefilter-edit-builder-funcs-sanitize": "Normalize HTML entities into unicode characters ($1)",
"abusefilter-edit-builder-group-vars": "Variables",
"abusefilter-edit-builder-vars-timestamp": "Unix timestamp of change",
"abusefilter-edit-builder-vars-accountname": "Account name (on account creation)",
"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-new-content-model": "New content model",
"abusefilter-edit-builder-vars-old-content-model": "Old content model",
"abusefilter-edit-builder-vars-removedlines": "Lines removed in edit",
"abusefilter-edit-builder-vars-summary": "Edit summary/reason",
"abusefilter-edit-builder-vars-page-id": "Page ID",
"abusefilter-edit-builder-vars-page-ns": "Page namespace",
"abusefilter-edit-builder-vars-page-title": "Page title (without namespace)",
"abusefilter-edit-builder-vars-page-prefixedtitle": "Full page title",
"abusefilter-edit-builder-vars-page-age": "Page age (in seconds)",
"abusefilter-edit-builder-vars-page-last-edit-age": "Time since last page edit (in seconds)",
"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-title": "Title of move source page",
"abusefilter-edit-builder-vars-movedfrom-prefixedtitle": "Full title of move source page",
"abusefilter-edit-builder-vars-movedfrom-age": "Move source page age (in seconds)",
"abusefilter-edit-builder-vars-movedfrom-last-edit-age": "Time since last move source page edit (in seconds)",
"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-title": "Title of move destination page",
"abusefilter-edit-builder-vars-movedto-prefixedtitle": "Full title of move destination page",
"abusefilter-edit-builder-vars-movedto-age": "Move destination page age (in seconds)",
"abusefilter-edit-builder-vars-movedto-last-edit-age": "Time since last move destination page edit (in seconds)",
"abusefilter-edit-builder-vars-user-editcount": "Edit count of the user",
"abusefilter-edit-builder-vars-user-age": "Age of the user account",
"abusefilter-edit-builder-vars-user-name": "Name of the user account",
"abusefilter-edit-builder-vars-user-type": "Type of the user account",
"abusefilter-edit-builder-vars-user-groups": "Groups (including implicit) the user is in",
"abusefilter-edit-builder-vars-user-rights": "Rights that the user has",
"abusefilter-edit-builder-vars-user-blocked": "Whether the user is blocked",
"abusefilter-edit-builder-vars-user-emailconfirm": "Time email address was confirmed",
"abusefilter-edit-builder-vars-old-wikitext": "Old page wikitext, before the edit",
"abusefilter-edit-builder-vars-new-wikitext": "New page wikitext, after the edit",
"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-all-links": "All external links in the new text",
"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": "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-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-movedfrom-restrictions-edit": "Edit protection level of move source page",
"abusefilter-edit-builder-vars-movedfrom-restrictions-move": "Move protection level of move source page",
"abusefilter-edit-builder-vars-movedfrom-restrictions-create": "Create protection of move source page",
"abusefilter-edit-builder-vars-movedfrom-restrictions-upload": "Upload protection of move source file",
"abusefilter-edit-builder-vars-movedfrom-recent-contributors": "Last ten users to contribute to move source page",
"abusefilter-edit-builder-vars-movedfrom-first-contributor": "First user to contribute to move source page",
"abusefilter-edit-builder-vars-movedto-restrictions-edit": "Edit protection level of move destination page",
"abusefilter-edit-builder-vars-movedto-restrictions-move": "Move protection level of move destination page",
"abusefilter-edit-builder-vars-movedto-restrictions-create": "Create protection of move destination page",
"abusefilter-edit-builder-vars-movedto-restrictions-upload": "Upload protection of move destination file",
"abusefilter-edit-builder-vars-movedto-recent-contributors": "Last ten users to contribute to move destination page",
"abusefilter-edit-builder-vars-movedto-first-contributor": "First user to contribute to move destination page",
"abusefilter-edit-builder-vars-old-links": "Links in the page, before the edit",
"abusefilter-edit-builder-vars-file-sha1": "SHA1 hash of file contents",
"abusefilter-edit-builder-vars-file-size": "Size of the file in bytes",
"abusefilter-edit-builder-vars-file-mime": "MIME type of the file",
"abusefilter-edit-builder-vars-file-mediatype": "Media type of the file",
"abusefilter-edit-builder-vars-file-width": "Width of the file in pixels",
"abusefilter-edit-builder-vars-file-height": "Height of the file in pixels",
"abusefilter-edit-builder-vars-file-bits-per-channel": "Bits per color channel of the file",
"abusefilter-edit-builder-vars-wiki-name": "Database name of the wiki",
"abusefilter-edit-builder-vars-wiki-language": "Language code of the wiki",
"abusefilter-edit-builder-vars-timestamp": "Unix timestamp of change ($1)",
"abusefilter-edit-builder-vars-accountname": "Account name on account creation ($1)",
"abusefilter-edit-builder-vars-action": "Action ($1)",
"abusefilter-edit-builder-vars-addedlines": "Lines added in edit ($1)",
"abusefilter-edit-builder-vars-delta": "Size change in edit ($1)",
"abusefilter-edit-builder-vars-diff": "Unified diff of changes made by edit ($1)",
"abusefilter-edit-builder-vars-newsize": "New page size ($1)",
"abusefilter-edit-builder-vars-oldsize": "Old page size ($1)",
"abusefilter-edit-builder-vars-new-content-model": "New content model ($1)",
"abusefilter-edit-builder-vars-old-content-model": "Old content model ($1)",
"abusefilter-edit-builder-vars-removedlines": "Lines removed in edit ($1)",
"abusefilter-edit-builder-vars-summary": "Edit summary/reason ($1)",
"abusefilter-edit-builder-vars-page-id": "Page ID ($1)",
"abusefilter-edit-builder-vars-page-ns": "Page namespace ($1)",
"abusefilter-edit-builder-vars-page-title": "Page title without namespace ($1)",
"abusefilter-edit-builder-vars-page-prefixedtitle": "Full page title ($1)",
"abusefilter-edit-builder-vars-page-age": "Page age in seconds ($1)",
"abusefilter-edit-builder-vars-page-last-edit-age": "Time since last page edit in seconds ($1)",
"abusefilter-edit-builder-vars-movedfrom-id": "Page ID of move source page ($1)",
"abusefilter-edit-builder-vars-movedfrom-ns": "Namespace of move source page ($1)",
"abusefilter-edit-builder-vars-movedfrom-title": "Title of move source page ($1)",
"abusefilter-edit-builder-vars-movedfrom-prefixedtitle": "Full title of move source page ($1)",
"abusefilter-edit-builder-vars-movedfrom-age": "Move source page age in seconds ($1)",
"abusefilter-edit-builder-vars-movedfrom-last-edit-age": "Time since last move source page edit in seconds ($1)",
"abusefilter-edit-builder-vars-movedto-id": "Page ID of move destination page ($1)",
"abusefilter-edit-builder-vars-movedto-ns": "Namespace of move destination page ($1)",
"abusefilter-edit-builder-vars-movedto-title": "Title of move destination page ($1)",
"abusefilter-edit-builder-vars-movedto-prefixedtitle": "Full title of move destination page ($1)",
"abusefilter-edit-builder-vars-movedto-age": "Move destination page age in seconds ($1)",
"abusefilter-edit-builder-vars-movedto-last-edit-age": "Time since last move destination page edit in seconds ($1)",
"abusefilter-edit-builder-vars-user-editcount": "Edit count of the user ($1)",
"abusefilter-edit-builder-vars-user-age": "Age of the user account ($1)",
"abusefilter-edit-builder-vars-user-name": "Name of the user account ($1)",
"abusefilter-edit-builder-vars-user-type": "Type of the user account ($1)",
"abusefilter-edit-builder-vars-user-groups": "Groups (including implicit) the user is in ($1)",
"abusefilter-edit-builder-vars-user-rights": "Rights that the user has ($1)",
"abusefilter-edit-builder-vars-user-blocked": "Whether the user is blocked ($1)",
"abusefilter-edit-builder-vars-user-emailconfirm": "Time email address was confirmed ($1)",
"abusefilter-edit-builder-vars-old-wikitext": "Old page wikitext, before the edit ($1)",
"abusefilter-edit-builder-vars-new-wikitext": "New page wikitext, after the edit ($1)",
"abusefilter-edit-builder-vars-added-links": "All external links added in the edit ($1)",
"abusefilter-edit-builder-vars-removed-links": "All external links removed in the edit ($1)",
"abusefilter-edit-builder-vars-all-links": "All external links in the new text ($1)",
"abusefilter-edit-builder-vars-new-pst": "New page wikitext, pre-save transformed ($1)",
"abusefilter-edit-builder-vars-diff-pst": "Unified diff of changes made by edit, pre-save transformed ($1)",
"abusefilter-edit-builder-vars-addedlines-pst": "Lines added in edit, pre-save transformed ($1)",
"abusefilter-edit-builder-vars-new-text": "New page text, stripped of any markup ($1)",
"abusefilter-edit-builder-vars-new-html": "Parsed HTML source of the new revision ($1)",
"abusefilter-edit-builder-vars-restrictions-edit": "Edit protection level of the page ($1)",
"abusefilter-edit-builder-vars-restrictions-move": "Move protection level of the page ($1)",
"abusefilter-edit-builder-vars-restrictions-create": "Create protection of the page ($1)",
"abusefilter-edit-builder-vars-restrictions-upload": "Upload protection of the file ($1)",
"abusefilter-edit-builder-vars-recent-contributors": "Last ten users to contribute to the page ($1)",
"abusefilter-edit-builder-vars-first-contributor": "First user to contribute to the page ($1)",
"abusefilter-edit-builder-vars-movedfrom-restrictions-edit": "Edit protection level of move source page ($1)",
"abusefilter-edit-builder-vars-movedfrom-restrictions-move": "Move protection level of move source page ($1)",
"abusefilter-edit-builder-vars-movedfrom-restrictions-create": "Create protection of move source page ($1)",
"abusefilter-edit-builder-vars-movedfrom-restrictions-upload": "Upload protection of move source file ($1)",
"abusefilter-edit-builder-vars-movedfrom-recent-contributors": "Last ten users to contribute to move source page ($1)",
"abusefilter-edit-builder-vars-movedfrom-first-contributor": "First user to contribute to move source page ($1)",
"abusefilter-edit-builder-vars-movedto-restrictions-edit": "Edit protection level of move destination page ($1)",
"abusefilter-edit-builder-vars-movedto-restrictions-move": "Move protection level of move destination page ($1)",
"abusefilter-edit-builder-vars-movedto-restrictions-create": "Create protection of move destination page ($1)",
"abusefilter-edit-builder-vars-movedto-restrictions-upload": "Upload protection of move destination file ($1)",
"abusefilter-edit-builder-vars-movedto-recent-contributors": "Last ten users to contribute to move destination page ($1)",
"abusefilter-edit-builder-vars-movedto-first-contributor": "First user to contribute to move destination page ($1)",
"abusefilter-edit-builder-vars-old-links": "Links in the page, before the edit ($1)",
"abusefilter-edit-builder-vars-file-sha1": "SHA1 hash of file contents ($1)",
"abusefilter-edit-builder-vars-file-size": "Size of the file in bytes ($1)",
"abusefilter-edit-builder-vars-file-mime": "MIME type of the file ($1)",
"abusefilter-edit-builder-vars-file-mediatype": "Media type of the file ($1)",
"abusefilter-edit-builder-vars-file-width": "Width of the file in pixels ($1)",
"abusefilter-edit-builder-vars-file-height": "Height of the file in pixels ($1)",
"abusefilter-edit-builder-vars-file-bits-per-channel": "Bits per color channel of the file ($1)",
"abusefilter-edit-builder-vars-wiki-name": "Database name of the wiki ($1)",
"abusefilter-edit-builder-vars-wiki-language": "Language code of the wiki ($1)",
"abusefilter-edit-builder-vars-old-text": "Old page text, stripped of any markup (no longer in use)",
"abusefilter-edit-builder-vars-old-html": "Old page wikitext, parsed into HTML (no longer in use)",
"abusefilter-edit-builder-vars-minor-edit": "Whether or not the edit is marked as minor (no longer in use)",

View file

@ -340,140 +340,140 @@
"abusefilter-edit-invalid-group": "Error message when trying to save a filter with an invalid group. Parameters:\n* $1 - the group\n\nSee also {{msg-mw|Abusefilter-edit-group}}.",
"abusefilter-edit-builder-select": "Default value for dropdown menu that allows inserting abuse filter syntax in the filter definition field.",
"abusefilter-edit-builder-group-op-arithmetic": "Group entry in dropdown menu.",
"abusefilter-edit-builder-op-arithmetic-addition": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}.",
"abusefilter-edit-builder-op-arithmetic-subtraction": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}.",
"abusefilter-edit-builder-op-arithmetic-multiplication": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}.",
"abusefilter-edit-builder-op-arithmetic-divide": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}.",
"abusefilter-edit-builder-op-arithmetic-modulo": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}.",
"abusefilter-edit-builder-op-arithmetic-pow": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}.",
"abusefilter-edit-builder-op-arithmetic-addition": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-arithmetic-subtraction": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-arithmetic-multiplication": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-arithmetic-divide": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-arithmetic-modulo": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-arithmetic-pow": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-arithmetic}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-group-op-comparison": "Group entry in dropdown menu.",
"abusefilter-edit-builder-op-comparison-equal": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.",
"abusefilter-edit-builder-op-comparison-equal-strict": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.",
"abusefilter-edit-builder-op-comparison-notequal": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.",
"abusefilter-edit-builder-op-comparison-notequal-strict": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.",
"abusefilter-edit-builder-op-comparison-lt": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.\n{{Identical|Less than}}",
"abusefilter-edit-builder-op-comparison-gt": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.\n{{Identical|Greater than}}",
"abusefilter-edit-builder-op-comparison-lte": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.",
"abusefilter-edit-builder-op-comparison-gte": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.",
"abusefilter-edit-builder-op-comparison-equal": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-comparison-equal-strict": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-comparison-notequal": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-comparison-notequal-strict": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-comparison-lt": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.\n{{Identical|Less than}} ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-comparison-gt": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}.\n{{Identical|Greater than}} ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-comparison-lte": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-comparison-gte": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-comparison}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-group-op-bool": "Group entry in dropdown menu.",
"abusefilter-edit-builder-op-bool-not": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-bool}}.",
"abusefilter-edit-builder-op-bool-and": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-bool}}.",
"abusefilter-edit-builder-op-bool-or": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-bool}}.",
"abusefilter-edit-builder-op-bool-xor": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-bool}}. {{optional}}",
"abusefilter-edit-builder-op-bool-not": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-bool}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-bool-and": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-bool}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-bool-or": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-bool}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-op-bool-xor": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-op-bool}}. {{optional}} ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-group-misc": "Group entry in dropdown menu.\n{{Identical|Miscellaneous}}",
"abusefilter-edit-builder-misc-in": "{{doc-important|Do not translate \"in\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.",
"abusefilter-edit-builder-misc-contains": "{{doc-important|Do not translate \"contains\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.",
"abusefilter-edit-builder-misc-like": "{{doc-important|Do not translate \"like\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.",
"abusefilter-edit-builder-misc-stringlit": "{{doc-important|Do not \"translate\" quotation marks in brackets to any other styles (<code><nowiki>“”, , 「」, 『』, «», „“...</nowiki></code>).}}\nAbuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.",
"abusefilter-edit-builder-misc-rlike": "{{doc-important|Do not translate \"rlike\".}}\nAbuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.\n\n\"regex\" stands for \"regular expression\".",
"abusefilter-edit-builder-misc-irlike": "{{doc-important|Do not translate \"irlike\".}}\nAbuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.\n\n\"regex\" stands for \"regular expression\".",
"abusefilter-edit-builder-misc-tern": "{{doc-important|Do not change \"X ? Y : Z\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.",
"abusefilter-edit-builder-misc-cond": "{{doc-important|Do not change \"if X then Y else Z end\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.",
"abusefilter-edit-builder-misc-cond-short": "{{doc-important|Do not change \"if X then Y end\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.",
"abusefilter-edit-builder-misc-in": "Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-misc-contains": "Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-misc-like": "Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-misc-stringlit": "{{doc-important|Do not \"translate\" quotation marks in brackets to any other styles (<code><nowiki>“”, , 「」, 『』, «», „“...</nowiki></code>).}}\nAbuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-misc-rlike": "Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.\n\n\"regex\" stands for \"regular expression\". ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-misc-irlike": "Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}.\n\n\"regex\" stands for \"regular expression\". ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-misc-tern": "{{doc-important|Do not change \"X ? Y : Z\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-misc-cond": "{{doc-important|Do not change \"if X then Y else Z end\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-misc-cond-short": "{{doc-important|Do not change \"if X then Y end\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-misc}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-group-funcs": "Group entry in dropdown menu.\n{{Identical|Function}}",
"abusefilter-edit-builder-funcs-length": "{{doc-important|Do not translate \"'''length'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-lcase": "{{doc-important|Do not translate \"'''lcase'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-ucase": "{{doc-important|Do not translate \"'''ucase'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-ccnorm": "{{doc-important|Do not translate \"'''ccnorm'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-ccnorm-contains-any": "{{doc-important|Do not translate \"'''ccnorm_contains_any'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-ccnorm-contains-all": "{{doc-important|Do not translate \"'''ccnorm_contains_all'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-rmdoubles": "{{doc-important|Do not translate \"'''rmdoubles'''\".}}\nAbuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.\n\nFunctional explanation: rmdoubles removes repeated characters in the argument, and returns the result. For example: \"foobybboo\" will return \"fobybo\".",
"abusefilter-edit-builder-funcs-specialratio": "{{doc-important|Do not translate \"'''specialratio'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-norm": "{{doc-important|Do not translate \"'''norm'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-count": "{{doc-important|Do not translate \"'''count'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-rcount": "{{doc-important|Do not translate \"rcount\".}}\nAbuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.\n\n\"regex\" stands for \"regular expression\".",
"abusefilter-edit-builder-funcs-get_matches": "{{doc-important|Do not translate \"get_matches\"}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-rmwhitespace": "{{doc-important|Do not translate \"rmwhitespace\"}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-rmspecials": "{{doc-important|Do not translate \"'''rmspecials'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-ip_in_range": "{{doc-important|Do not translate \"'''ip_in_range'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-ip_in_ranges": "{{doc-important|Do not translate \"'''ip_in_ranges'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-contains-any": "{{doc-important|Do not translate \"'''contains_any'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-contains-all": "{{doc-important|Do not translate \"'''contains_all'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-equals-to-any": "{{doc-important|Do not translate <code><nowiki>===</nowiki></code> and <code><nowiki>equals_to_any</nowiki></code> (but feel free to change brackets to reflect bracket rules of your language).}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-substr": "{{doc-important|Do not translate \"'''substr'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-strpos": "{{doc-important|Do not translate \"'''strpos'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-str_replace": "{{doc-important|Do not translate \"'''str_replace'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-str_replace_regexp": "{{doc-important|Do not translate \"'''str_replace_regexp'''\".}} Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.\n\n\"regexp\" stands for \"regular expression\".",
"abusefilter-edit-builder-funcs-rescape": "{{doc-important|Do not translate \"'''rescape'''\".}}\nAbuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.\n\n\"regex\" stands for \"regular expression\".",
"abusefilter-edit-builder-funcs-set_var": "{{doc-important|Do not translate \"'''set_var'''\".}}\nAbuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-sanitize": "{{doc-important|Do not translate \"'''sanitize'''\".}}\nAbuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.",
"abusefilter-edit-builder-funcs-length": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-lcase": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-ucase": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-ccnorm": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-ccnorm-contains-any": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-ccnorm-contains-all": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-rmdoubles": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.\n\nFunctional explanation: rmdoubles removes repeated characters in the argument, and returns the result. For example: \"foobybboo\" will return \"fobybo\". ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-specialratio": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-norm": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-count": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-rcount": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.\n\n\"regex\" stands for \"regular expression\". ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-get_matches": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-rmwhitespace": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-rmspecials": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-ip_in_range": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-ip_in_ranges": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-contains-any": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-contains-all": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-equals-to-any": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-substr": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-strpos": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-str_replace": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-str_replace_regexp": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.\n\n\"regexp\" stands for \"regular expression\". ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-rescape": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}.\n\n\"regex\" stands for \"regular expression\". ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-set_var": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-funcs-sanitize": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-funcs}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-group-vars": "Group entry in dropdown menu.\n{{Identical|Variable}}",
"abusefilter-edit-builder-vars-timestamp": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-accountname": "This variable is used only during account creation and contains the username of the newly created account. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-action": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n{{Identical|Action}}",
"abusefilter-edit-builder-vars-addedlines": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-delta": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-diff": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-newsize": "New size of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-oldsize": "Old size of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-new-content-model": "New content model of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-old-content-model": "Old content model of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-removedlines": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-summary": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-page-id": "Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-vars}}.\n{{Identical|Page ID}}",
"abusefilter-edit-builder-vars-page-ns": "The namespace that the page for the trigger is supposed to be in. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-page-title": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-page-prefixedtitle": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-page-age": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-page-last-edit-age": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedfrom-id": "Paraphrase: The page ID of the page to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedfrom-ns": "Paraphrase: Namespace of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedfrom-title": "Paraphrase: Name of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedfrom-prefixedtitle": "Paraphrase: Full name of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedfrom-age": "Paraphrase: The number of seconds since the first revision was made on the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedfrom-last-edit-age": "Paraphrase: The number of seconds since the last revision was made on the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedto-id": "Paraphrased: Page ID of the destination of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedto-ns": "Paraphrased: Namespace of the destination of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedto-title": "Paraphrased: Name of the destination of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedto-prefixedtitle": "Paraphrased: Full name of the destination of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedto-age": "Paraphrase: The number of seconds since the first revision was made on the destination of the page that is to be moved. Returns zero when page is non-existent. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedto-last-edit-age": "Paraphrase: The number of seconds since the last revision was made on the destination of the page that is to be moved. Returns zero when page is non-existent. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-user-editcount": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-user-age": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-user-name": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-user-type": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-user-groups": "See also:\n* {{msg-mw|Abusefilter-edit-builder-vars-global-user-groups}}",
"abusefilter-edit-builder-vars-user-rights": "Paraphrased: List of rights that the user has. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-user-blocked": "Paraphrased: Boolean value on whether the user is blocked. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-user-emailconfirm": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-old-wikitext": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-new-wikitext": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-added-links": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-removed-links": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-all-links": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-new-pst": "Paraphrased: The output wikitext after pre-save transform is applied to new_wikitext. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-diff-pst": "Paraphrased: Edit diff of new_pst against old_wikitext. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-addedlines-pst": "Paraphrased: Added lines in edit_diff_pst. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-new-text": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-new-html": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-restrictions-edit": "This variable contains the level of protection required to edit the page. (\"Edit\" here is not a verb, but an adjective, like \"Edit-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-upload}}.",
"abusefilter-edit-builder-vars-restrictions-move": "This variable contains the level of protection required to move the page. (\"Move\" here is not a verb, but an adjective, like \"Move-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-upload}}.",
"abusefilter-edit-builder-vars-restrictions-create": "This variable contains the level of protection required to create the page. (\"Create\" here is not a verb, but an adjective, like \"Create-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-upload}}.",
"abusefilter-edit-builder-vars-restrictions-upload": "This variable contains the level of protection required to upload a file. (\"Upload\" here is not a verb, but an adjective, like \"Upload-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-create}}.",
"abusefilter-edit-builder-vars-recent-contributors": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-first-contributor": "Paraphrased: The user who created the earliest revision of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedfrom-restrictions-edit": "This variable contains the level of protection required to edit the page that is to be moved. (\"Edit\" here is not a verb, but an adjective, like \"Edit-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-upload}}.",
"abusefilter-edit-builder-vars-movedfrom-restrictions-move": "This variable contains the level of protection required to move the page that is to be moved. (\"Move\" here is not a verb, but an adjective, like \"Move-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-upload}}.",
"abusefilter-edit-builder-vars-movedfrom-restrictions-create": "This variable contains the level of protection required to create the page that is to be moved. (\"Create\" here is not a verb, but an adjective, like \"Create-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-upload}}.",
"abusefilter-edit-builder-vars-movedfrom-restrictions-upload": "This variable contains the level of protection required to upload the file that is to be moved. (\"Upload\" here is not a verb, but an adjective, like \"Upload-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-create}}.",
"abusefilter-edit-builder-vars-movedfrom-recent-contributors": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedfrom-first-contributor": "Paraphrased: The user who created the earliest revision of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedto-restrictions-edit": "This variable contains the level of protection required to edit the page that is to be moved. (\"Edit\" here is not a verb, but an adjective, like \"Edit-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-upload}}.",
"abusefilter-edit-builder-vars-movedto-restrictions-move": "This variable contains the level of protection required to move the page that is to be moved. (\"Move\" here is not a verb, but an adjective, like \"Move-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-upload}}.",
"abusefilter-edit-builder-vars-movedto-restrictions-create": "This variable contains the level of protection required to create the page that is to be moved. (\"Create\" here is not a verb, but an adjective, like \"Create-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-upload}}.",
"abusefilter-edit-builder-vars-movedto-restrictions-upload": "This variable contains the level of protection required to upload the file that is to be moved. (\"Upload\" here is not a verb, but an adjective, like \"Upload-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-create}}.",
"abusefilter-edit-builder-vars-movedto-recent-contributors": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-movedto-first-contributor": "Paraphrased: The user who created the earliest revision of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-old-links": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-file-sha1": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-file-size": "This variable contains the size of the uploaded file.",
"abusefilter-edit-builder-vars-file-mime": "This variable contains the MIME type of the file",
"abusefilter-edit-builder-vars-file-mediatype": "This variable contains the media type of the file",
"abusefilter-edit-builder-vars-file-width": "This variable contains the width of the file in pixels",
"abusefilter-edit-builder-vars-file-height": "This variable contains the height of the file in pixels",
"abusefilter-edit-builder-vars-file-bits-per-channel": "This variable contains the number of bits per color channel of the file",
"abusefilter-edit-builder-vars-wiki-name": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-wiki-language": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-timestamp": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-accountname": "This variable is used only during account creation and contains the username of the newly created account. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-action": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n{{Identical|Action}} ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-addedlines": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-delta": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-diff": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-newsize": "New size of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-oldsize": "Old size of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-new-content-model": "New content model of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-old-content-model": "Old content model of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-removedlines": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-summary": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-page-id": "Abuse filter syntax option in a dropdown from the group {{msg-mw|Abusefilter-edit-builder-group-vars}}.\n{{Identical|Page ID}} ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-page-ns": "The namespace that the page for the trigger is supposed to be in. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-page-title": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-page-prefixedtitle": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-page-age": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-page-last-edit-age": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-id": "Paraphrase: The page ID of the page to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-ns": "Paraphrase: Namespace of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-title": "Paraphrase: Name of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-prefixedtitle": "Paraphrase: Full name of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-age": "Paraphrase: The number of seconds since the first revision was made on the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-last-edit-age": "Paraphrase: The number of seconds since the last revision was made on the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-id": "Paraphrased: Page ID of the destination of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-ns": "Paraphrased: Namespace of the destination of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-title": "Paraphrased: Name of the destination of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-prefixedtitle": "Paraphrased: Full name of the destination of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-age": "Paraphrase: The number of seconds since the first revision was made on the destination of the page that is to be moved. Returns zero when page is non-existent. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-last-edit-age": "Paraphrase: The number of seconds since the last revision was made on the destination of the page that is to be moved. Returns zero when page is non-existent. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-user-editcount": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-user-age": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-user-name": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-user-type": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-user-groups": "See also:\n* {{msg-mw|Abusefilter-edit-builder-vars-global-user-groups}} ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-user-rights": "Paraphrased: List of rights that the user has. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-user-blocked": "Paraphrased: Boolean value on whether the user is blocked. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-user-emailconfirm": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-old-wikitext": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-new-wikitext": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-added-links": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-removed-links": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-all-links": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-new-pst": "Paraphrased: The output wikitext after pre-save transform is applied to new_wikitext. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-diff-pst": "Paraphrased: Edit diff of new_pst against old_wikitext. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-addedlines-pst": "Paraphrased: Added lines in edit_diff_pst. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-new-text": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-new-html": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-restrictions-edit": "This variable contains the level of protection required to edit the page. (\"Edit\" here is not a verb, but an adjective, like \"Edit-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-upload}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-restrictions-move": "This variable contains the level of protection required to move the page. (\"Move\" here is not a verb, but an adjective, like \"Move-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-upload}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-restrictions-create": "This variable contains the level of protection required to create the page. (\"Create\" here is not a verb, but an adjective, like \"Create-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-upload}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-restrictions-upload": "This variable contains the level of protection required to upload a file. (\"Upload\" here is not a verb, but an adjective, like \"Upload-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-restrictions-create}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-recent-contributors": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-first-contributor": "Paraphrased: The user who created the earliest revision of the page. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-restrictions-edit": "This variable contains the level of protection required to edit the page that is to be moved. (\"Edit\" here is not a verb, but an adjective, like \"Edit-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-upload}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-restrictions-move": "This variable contains the level of protection required to move the page that is to be moved. (\"Move\" here is not a verb, but an adjective, like \"Move-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-upload}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-restrictions-create": "This variable contains the level of protection required to create the page that is to be moved. (\"Create\" here is not a verb, but an adjective, like \"Create-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-upload}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-restrictions-upload": "This variable contains the level of protection required to upload the file that is to be moved. (\"Upload\" here is not a verb, but an adjective, like \"Upload-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedfrom-restrictions-create}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-recent-contributors": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedfrom-first-contributor": "Paraphrased: The user who created the earliest revision of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-restrictions-edit": "This variable contains the level of protection required to edit the page that is to be moved. (\"Edit\" here is not a verb, but an adjective, like \"Edit-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-upload}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-restrictions-move": "This variable contains the level of protection required to move the page that is to be moved. (\"Move\" here is not a verb, but an adjective, like \"Move-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-create}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-upload}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-restrictions-create": "This variable contains the level of protection required to create the page that is to be moved. (\"Create\" here is not a verb, but an adjective, like \"Create-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-upload}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-restrictions-upload": "This variable contains the level of protection required to upload the file that is to be moved. (\"Upload\" here is not a verb, but an adjective, like \"Upload-related protection level\"). Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.\n\nSee also {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-edit}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-move}}, {{msg-mw|Abusefilter-edit-builder-vars-movedto-restrictions-create}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-recent-contributors": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-movedto-first-contributor": "Paraphrased: The user who created the earliest revision of the page that is to be moved. Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-old-links": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-file-sha1": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-file-size": "This variable contains the size of the uploaded file. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-file-mime": "This variable contains the MIME type of the file ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-file-mediatype": "This variable contains the media type of the file ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-file-width": "This variable contains the width of the file in pixels ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-file-height": "This variable contains the height of the file in pixels ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-file-bits-per-channel": "This variable contains the number of bits per color channel of the file ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-wiki-name": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-wiki-language": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}. ($1 is the text that will be inserted into the filter code editor.)",
"abusefilter-edit-builder-vars-old-text": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-old-html": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",
"abusefilter-edit-builder-vars-minor-edit": "Abuse filter syntax option in a dropdown from the group {{msg-mw|abusefilter-edit-builder-group-vars}}.",

View file

@ -120,14 +120,29 @@ abstract class EditBoxBuilder {
$dropdownOptions = [ $this->localizer->msg( 'abusefilter-edit-builder-select' )->text() => 'other' ];
foreach ( $rawDropdown as $group => $values ) {
// Give grep a chance to find the usages:
// abusefilter-edit-builder-group-op-arithmetic, abusefilter-edit-builder-group-op-comparison,
// abusefilter-edit-builder-group-op-bool, abusefilter-edit-builder-group-misc,
// abusefilter-edit-builder-group-funcs, abusefilter-edit-builder-group-vars
// abusefilter-edit-builder-group-op-arithmetic
// abusefilter-edit-builder-group-op-comparison
// abusefilter-edit-builder-group-op-bool
// abusefilter-edit-builder-group-misc
// abusefilter-edit-builder-group-funcs
// abusefilter-edit-builder-group-vars
$localisedGroup = $this->localizer->msg( "abusefilter-edit-builder-group-$group" )->text();
$dropdownOptions[ $localisedGroup ] = array_flip( $values );
$newKeys = array_map(
function ( $key ) use ( $group ) {
return $this->localizer->msg( "abusefilter-edit-builder-$group-$key" )->text();
function ( $key ) use ( $group, $dropdownOptions, $localisedGroup ) {
// Force all operators and functions to be always shown as left to right text
// with the help of control characters:
// * 202A is LEFT-TO-RIGHT EMBEDDING (LRE)
// * 202C is POP DIRECTIONAL FORMATTING (PDF)
// This has to be done with control characters because
// markup cannot be used within <option> elements.
$operatorExample = "\u{202A}" .
$dropdownOptions[ $localisedGroup ][ $key ] .
"\u{202C}";
return $this->localizer->msg(
"abusefilter-edit-builder-$group-$key",
$operatorExample
)->text();
},
array_keys( $dropdownOptions[ $localisedGroup ] )
);