Page MenuHomePhabricator

Extension:Translate Translations Broken Since 1.34 (due to corrupted l10n_cache table)
Closed, InvalidPublic

Description

Wiki is utilizing Extension:Translate. Some translations are broken since 1.34.

Going to e.g. /Lang:Buy/tl gives:

[7827331197868f13a47bd500] /Lang:Buy/tl Wikimedia\Rdbms\DBQueryError from line 1603 of /var/www/wiki/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?
Query: INSERT INTO `l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('tl','messages:apihelp-compare-param-topst','s:45:\"Do a pre-save transform on <var>totext</var>.\";'),('tl','messages:apihelp-compare-param-toslots','s:314:\"Override content of the revision specified by <var>totitle</var>, <var>toid</var> or <var>torev</var>.\n\nThis parameter specifies the slots that are to be modified. Use <var>totext-&#x7B;slot}</var>, <var>tocontentmodel-&#x7B;slot}</var>, and <var>tocontentformat-&#x7B;slot}</var> to specify content for each slot.\";'),('tl','messages:apihelp-compare-param-totext-{slot}','s:78:\"Text of the specified slot. If omitted, the slot is removed from the revision.\";'),('tl','messages:apihelp-compare-param-tosection-{slot}','s:229:\"When <var>totext-&#x7B;slot}</var> is the content of a single section, this is the section number. It will be merged into the revision specified by <var>totitle</var>, <var>toid</var> or <var>torev</var> as if for a section edit.\";'),('tl','messages:apihelp-compare-param-tocontentmodel-{slot}','s:114:\"Content model of <var>totext-&#x7B;slot}</var>. If not supplied, it will be guessed based on the other parameters.\";'),('tl','messages:apihelp-compare-param-tocontentformat-{slot}','s:62:\"Content serialization format of <var>totext-&#x7B;slot}</var>.\";'),('tl','messages:apihelp-compare-param-totext','s:71:\"Specify <kbd>toslots=main</kbd> and use <var>totext-main</var> instead.\";'),('tl','messages:apihelp-compare-param-tocontentmodel','s:79:\"Specify <kbd>toslots=main</kbd> and use <var>tocontentmodel-main</var> instead.\";'),('tl','messages:apihelp-compare-param-tocontentformat','s:80:\"Specify <kbd>toslots=main</kbd> and use <var>tocontentformat-main</var> instead.\";'),('tl','messages:apihelp-compare-param-tosection','s:61:\"Only use the specified section of the specified \'to\' content.\";'),('tl','messages:apihelp-compare-param-prop','s:35:\"Which pieces of information to get.\";'),('tl','messages:apihelp-compare-paramvalue-prop-diff','s:14:\"The diff HTML.\";'),('tl','messages:apihelp-compare-paramvalue-prop-diffsize','s:36:\"The size of the diff HTML, in bytes.\";'),('tl','messages:apihelp-compare-paramvalue-prop-rel','s:75:\"The revision IDs of the revision previous to \'from\' and after \'to\', if any.\";'),('tl','messages:apihelp-compare-paramvalue-prop-ids','s:59:\"The page and revision IDs of the \'from\' and \'to\' revisions.\";'),('tl','messages:apihelp-compare-paramvalue-prop-title','s:49:\"The page titles of the \'from\' and \'to\' revisions.\";'),('tl','messages:apihelp-compare-paramvalue-prop-user','s:54:\"The user name and ID of the \'from\' and \'to\' revisions.\";'),('tl','messages:apihelp-compare-paramvalue-prop-comment','s:45:\"The comment on the \'from\' and \'to\' revisions.\";'),('tl','messages:apihelp-compare-paramvalue-prop-parsedcomment','s:52:\"The parsed comment on the \'from\' and \'to\' revisions.\";'),('tl','messages:apihelp-compare-paramvalue-prop-size','s:42:\"The size of the \'from\' and \'to\' revisions.\";'),('tl','messages:apihelp-compare-param-slots','s:85:\"Return individual diffs for these slots, rather than one combined diff for all slots.\";'),('tl','messages:apihelp-compare-example-1','s:39:\"Create a diff between revision 1 and 2.\";'),('tl','messages:apihelp-createaccount-summary','s:26:\"Create a new user account.\";'),('tl','messages:apihelp-createaccount-param-preservestate','s:349:\"If <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> returned true for <samp>hasprimarypreservedstate</samp>, requests marked as <samp>primary-required</samp> should be omitted. If it returned a non-empty value for <samp>preservedusername</samp>, that username must be used for the <var>username</var> parameter.\";'),('tl','messages:apihelp-createaccount-example-create','s:95:\"Start the process of creating user <kbd>Example</kbd> with password <kbd>ExamplePassword</kbd>.\";'),('tl','messages:apihelp-cspreport-summary','s:166:\"Used by browsers to report violations of the Content Security Policy. This module should never be used, except when used automatically by a CSP compliant web browser.\";'),('tl','messages:apihelp-cspreport-param-reportonly','s:71:\"Mark as being a report from a monitoring policy, not an enforced policy\";'),('tl','messages:apihelp-cspreport-param-source','s:56:\"What generated the CSP header that triggered this report\";'),('tl','messages:apihelp-delete-summary','s:14:\"Delete a page.\";'),('tl','messages:apihelp-delete-param-title','s:78:\"Title of the page to delete. Cannot be used together with <var>$1pageid</var>.\";'),('tl','messages:apihelp-delete-param-pageid','s:79:\"Page ID of the page to delete. Cannot be used together with <var>$1title</var>.\";'),('tl','messages:apihelp-delete-param-reason','s:84:\"Reason for the deletion. If not set, an automatically generated reason will be used.\";'),('tl','messages:apihelp-delete-param-tags','s:54:\"Change tags to apply to the entry in the deletion log.\";'),('tl','messages:apihelp-delete-param-watch','s:45:\"Add the page to the current user\'s watchlist.\";'),('tl','messages:apihelp-delete-param-watchlist','s:113:\"Unconditionally add or remove the page from the current user\'s watchlist, use preferences or do not change watch.\";'),('tl','messages:apihelp-delete-param-unwatch','s:50:\"Remove the page from the current user\'s watchlist.\";'),('tl','messages:apihelp-delete-param-oldimage','s:134:\"The name of the old image to delete as provided by [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].\";'),('tl','messages:apihelp-delete-example-simple','s:28:\"Delete <kbd>Main Page</kbd>.\";'),('tl','messages:apihelp-delete-example-reason','s:74:\"Delete <kbd>Main Page</kbd> with the reason <kbd>Preparing for move</kbd>.\";'),('tl','messages:apihelp-disabled-summary','s:30:\"This module has been disabled.\";'),('tl','messages:apihelp-edit-summary','s:22:\"Create and edit pages.\";'),('tl','messages:apihelp-edit-param-title','s:76:\"Title of the page to edit. Cannot be used together with <var>$1pageid</var>.\";'),('tl','messages:apihelp-edit-param-pageid','s:77:\"Page ID of the page to edit. Cannot be used together with <var>$1title</var>.\";'),('tl','messages:apihelp-edit-param-section','s:83:\"Section number. <kbd>0</kbd> for the top section, <kbd>new</kbd> for a new section.\";'),('tl','messages:apihelp-edit-param-sectiontitle','s:28:\"The title for a new section.\";'),('tl','messages:apihelp-edit-param-text','s:13:\"Page content.\";'),('tl','messages:apihelp-edit-param-summary','s:82:\"Edit summary. Also section title when $1section=new and $1sectiontitle is not set.\";'),('tl','messages:apihelp-edit-param-tags','s:37:\"Change tags to apply to the revision.\";'),('tl','messages:apihelp-edit-param-minor','s:31:\"Mark this edit as a minor edit.\";'),('tl','messages:apihelp-edit-param-notminor','s:100:\"Do not mark this edit as a minor edit even if the \"{{int:tog-minordefault}}\" user preference is set.\";'),('tl','messages:apihelp-edit-param-bot','s:29:\"Mark this edit as a bot edit.\";'),('tl','messages:apihelp-edit-param-basetimestamp','s:168:\"Timestamp of the base revision, used to detect edit conflicts. May be obtained through [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].\";'),('tl','messages:apihelp-edit-param-starttimestamp','s:242:\"Timestamp when the editing process began, used to detect edit conflicts. An appropriate value may be obtained using <var>[[Special:ApiHelp/main|curtimestamp]]</var> when beginning the edit process (e.g. when loading the page content to edit).\";'),('tl','messages:apihelp-edit-param-recreate','s:71:\"Override any errors about the page having been deleted in the meantime.\";'),('tl','messages:apihelp-edit-param-createonly','s:41:\"Don\'t edit the page if it exists already.\";'),('tl','messages:apihelp-edit-param-nocreate','s:41:\"Throw an error if the page doesn\'t exist.\";'),('tl','messages:apihelp-edit-param-watch','s:45:\"Add the page to the current user\'s watchlist.\";'),('tl','messages:apihelp-edit-param-unwatch','s:50:\"Remove the page from the current user\'s watchlist.\";'),('tl','messages:apihelp-edit-param-watchlist','s:113:\"Unconditionally add or remove the page from the current user\'s watchlist, use preferences or do not change watch.\";'),('tl','messages:apihelp-edit-param-md5','s:159:\"The MD5 hash of the $1text parameter, or the $1prependtext and $1appendtext parameters concatenated. If set, the edit won\'t be done unless the hash is correct.\";'),('tl','messages:apihelp-edit-param-prependtext','s:61:\"Add this text to the beginning of the page. Overrides $1text.\";'),('tl','messages:apihelp-edit-param-appendtext','s:127:\"Add this text to the end of the page. Overrides $1text.\n\nUse $1section=new to append a new section, rather than this parameter.\";'),('tl','messages:apihelp-edit-param-undo','s:69:\"Undo this revision. Overrides $1text, $1prependtext and $1appendtext.\";'),('tl','messages:apihelp-edit-param-undoafter','s:79:\"Undo all revisions from $1undo to this one. If not set, just undo one revision.\";'),('tl','messages:apihelp-edit-param-redirect','s:32:\"Automatically resolve redirects.\";'),('tl','messages:apihelp-edit-param-contentformat','s:53:\"Content serialization format used for the input text.\";'),('tl','messages:apihelp-edit-param-contentmodel','s:33:\"Content model of the new content.\";'),('tl','messages:apihelp-edit-param-token','s:94:\"The token should always be sent as the last parameter, or at least after the $1text parameter.\";'),('tl','messages:apihelp-edit-example-edit','s:12:\"Edit a page.\";'),('tl','messages:apihelp-edit-example-prepend','s:47:\"Prepend <kbd>_&#95;NOTOC_&#95;</kbd> to a page.\";'),('tl','messages:apihelp-edit-example-undo','s:52:\"Undo revisions 13579 through 13585 with autosummary.\";'),('tl','messages:apihelp-emailuser-summary','s:13:\"Email a user.\";'),('tl','messages:apihelp-emailuser-param-target','s:22:\"User to send email to.\";'),('tl','messages:apihelp-emailuser-param-subject','s:15:\"Subject header.\";'),('tl','messages:apihelp-emailuser-param-text','s:10:\"Mail body.\";'),('tl','messages:apihelp-emailuser-param-ccme','s:31:\"Send a copy of this mail to me.\";'),('tl','messages:apihelp-emailuser-example-email','s:76:\"Send an email to user <kbd>WikiSysop</kbd> with the text <kbd>Content</kbd>.\";'),('tl','messages:apihelp-expandtemplates-summary','s:38:\"Expands all templates within wikitext.\";'),('tl','messages:apihelp-expandtemplates-param-title','s:14:\"Title of page.\";'),('tl','messages:apihelp-expandtemplates-param-text','s:20:\"Wikitext to convert.\";'),('tl','messages:apihelp-expandtemplates-param-revid','s:84:\"Revision ID, for <code><nowiki>{{REVISIONID}}</nowiki></code> and similar variables.\";'),('tl','messages:apihelp-expandtemplates-param-prop','s:158:\"Which pieces of information to get.\n\nNote that if no values are selected, the result will contain the wikitext, but the output will be in a deprecated format.\";'),('tl','messages:apihelp-expandtemplates-paramvalue-prop-wikitext','s:22:\"The expanded wikitext.\";'),('tl','messages:apihelp-expandtemplates-paramvalue-prop-categories','s:84:\"Any categories present in the input that are not represented in the wikitext output.\";'),('tl','messages:apihelp-expandtemplates-paramvalue-prop-properties','s:64:\"Page properties defined by expanded magic words in the wikitext.\";'),('tl','messages:apihelp-expandtemplates-paramvalue-prop-volatile','s:82:\"Whether the output is volatile and should not be reused elsewhere within the page.\";'),('tl','messages:apihelp-expandtemplates-paramvalue-prop-ttl','s:72:\"The maximum time after which caches of the result should be invalidated.\";'),('tl','messages:apihelp-expandtemplates-paramvalue-prop-modules','s:203:\"Any ResourceLoader modules that parser functions have requested be added to the output. Either <kbd>jsconfigvars</kbd> or <kbd>encodedjsconfigvars</kbd> must be requested jointly with <kbd>modules</kbd>.\";'),('tl','messages:apihelp-expandtemplates-paramvalue-prop-jsconfigvars','s:66:\"Gives the JavaScript configuration variables specific to the page.\";'),('tl','messages:apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars','s:83:\"Gives the JavaScript configuration variables specific to the page as a JSON string.\";'),('tl','messages:apihelp-expandtemplates-paramvalue-prop-parsetree','s:32:\"The XML parse tree of the input.\";'),('tl','messages:apihelp-expandtemplates-param-includecomments','s:47:\"Whether to include HTML comments in the output.\";'),('tl','messages:apihelp-expandtemplates-param-generatexml','s:55:\"Generate XML parse tree (replaced by $1prop=parsetree).\";'),('tl','messages:apihelp-expandtemplates-example-simple','s:68:\"Expand the wikitext <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.\";'),('tl','messages:apihelp-feedcontributions-summary','s:34:\"Returns a user contributions feed.\";'),('tl','messages:apihelp-feedcontributions-param-feedformat','s:23:\"The format of the feed.\";'),('tl','messages:apihelp-feedcontributions-param-user','s:40:\"What users to get the contributions for.\";'),('tl','messages:apihelp-feedcontributions-param-namespace','s:47:\"Which namespace to filter the contributions by.\";'),('tl','messages:apihelp-feedcontributions-param-year','s:24:\"From year (and earlier).\";'),('tl','messages:apihelp-feedcontributions-param-month','s:25:\"From month (and earlier).\";'),('tl','messages:apihelp-feedcontributions-param-tagfilter','s:42:\"Filter contributions that have these tags.\";'),('tl','messages:apihelp-feedcontributions-param-deletedonly','s:32:\"Show only deleted contributions.\";'),('tl','messages:apihelp-feedcontributions-param-toponly','s:46:\"Only show edits that are the latest revisions.\";'),('tl','messages:apihelp-feedcontributions-param-newonly','s:40:\"Only show edits that are page creations.\";'),('tl','messages:apihelp-feedcontributions-param-hideminor','s:17:\"Hide minor edits.\";'),('tl','messages:apihelp-feedcontributions-param-showsizediff','s:43:\"Show the size difference between revisions.\";'),('tl','messages:apihelp-feedcontributions-example-simple','s:49:\"Return contributions for user <kbd>Example</kbd>.\";'),('tl','messages:apihelp-feedrecentchanges-summary','s:30:\"Returns a recent changes feed.\";'),('tl','messages:apihelp-feedrecentchanges-param-feedformat','s:23:\"The format of the feed.\";'),('tl','messages:apihelp-feedrecentchanges-param-namespace','s:34:\"Namespace to limit the results to.\";'),('tl','messages:apihelp-feedrecentchanges-param-invert','s:36:\"All namespaces but the selected one.\";'),('tl','messages:apihelp-feedrecentchanges-param-associated','s:44:\"Include associated (talk or main) namespace.\";'),('tl','messages:apihelp-feedrecentchanges-param-days','s:29:\"Days to limit the results to.\";'),('tl','messages:apihelp-feedrecentchanges-param-limit','s:36:\"Maximum number of results to return.\";'),('tl','messages:apihelp-feedrecentchanges-param-from','s:24:\"Show changes since then.\";'),('tl','messages:apihelp-feedrecentchanges-param-hideminor','s:19:\"Hide minor changes.\";'),('tl','messages:apihelp-feedrecentchanges-param-hidebots','s:26:\"Hide changes made by bots.\";'),('tl','messages:apihelp-feedrecentchanges-param-hideanons','s:37:\"Hide changes made by anonymous users.\";'),('tl','messages:apihelp-feedrecentchanges-param-hideliu','s:38:\"Hide changes made by registered users.\";'),('tl','messages:apihelp-feedrecentchanges-param-hidepatrolled','s:23:\"Hide patrolled changes.\";'),('tl','messages:apihelp-feedrecentchanges-param-hidemyself','s:38:\"Hide changes made by the current user.\";'),('tl','messages:apihelp-feedrecentchanges-param-hidecategorization','s:33:\"Hide category membership changes.\";'),('tl','messages:apihelp-feedrecentchanges-param-tagfilter','s:14:\"Filter by tag.\";'),('tl','messages:apihelp-feedrecentchanges-param-target','s:49:\"Show only changes on pages linked from this page.\";'),('tl','messages:apihelp-feedrecentchanges-param-showlinkedto','s:58:\"Show changes on pages linked to the selected page instead.\";'),('tl','messages:apihelp-feedwatchlist-summary','s:25:\"Returns a watchlist feed.\";'),('tl','messages:apihelp-feedwatchlist-param-feedformat','s:23:\"The format of the feed.\";'),('tl','messages:apihelp-feedwatchlist-param-hours','s:52:\"List pages modified within this many hours from now.\";'),('tl','messages:apihelp-feedwatchlist-param-linktosections','s:46:\"Link directly to changed sections if possible.\";'),('tl','messages:apihelp-feedwatchlist-example-default','s:24:\"Show the watchlist feed.\";'),('tl','messages:apihelp-feedwatchlist-example-all6hrs','s:54:\"Show all changes to watched pages in the past 6 hours.\";'),('tl','messages:apihelp-filerevert-summary','s:32:\"Revert a file to an old version.\";'),('tl','messages:apihelp-filerevert-param-filename','s:42:\"Target filename, without the File: prefix.\";'),('tl','messages:apihelp-filerevert-param-comment','s:15:\"Upload comment.\";'),('tl','messages:apihelp-filerevert-param-archivename','s:42:\"Archive name of the revision to revert to.\";'),('tl','messages:apihelp-filerevert-example-revert','s:77:\"Revert <kbd>Wiki.png</kbd> to the version of <kbd>2011-03-05T15:27:40Z</kbd>.\";'),('tl','messages:apihelp-help-summary','s:39:\"Display help for the specified modules.\";'),('tl','messages:apihelp-help-param-modules','s:159:\"Modules to display help for (values of the <var>action</var> and <var>format</var> parameters, or <kbd>main</kbd>). Can specify submodules with a <kbd>+</kbd>.\";'),('tl','messages:apihelp-help-param-submodules','s:48:\"Include help for submodules of the named module.\";'),('tl','messages:apihelp-help-param-recursivesubmodules','s:40:\"Include help for submodules recursively.\";'),('tl','messages:apihelp-help-param-helpformat','s:26:\"Format of the help output.\";'),('tl','messages:apihelp-help-param-wrap','s:53:\"Wrap the output in a standard API response structure.\";'),('tl','messages:apihelp-help-param-toc','s:47:\"Include a table of contents in the HTML output.\";'),('tl','messages:apihelp-help-example-submodules','s:56:\"Help for <kbd>action=query</kbd> and all its submodules.\";'),('tl','messages:apihelp-help-example-help','s:32:\"Help for the help module itself.\";'),('tl','messages:apihelp-help-example-query','s:30:\"Help for two query submodules.\";'),('tl','messages:apihelp-imagerotate-summary','s:26:\"Rotate one or more images.\";'),('tl','messages:apihelp-imagerotate-param-rotation','s:34:\"Degrees to rotate image clockwise.\";'),('tl','messages:apihelp-imagerotate-param-tags','s:45:\"Tags to apply to the entry in the upload log.\";'),('tl','messages:apihelp-imagerotate-example-simple','s:60:\"Rotate <kbd>File:Example.png</kbd> by <kbd>90</kbd> degrees.\";'),('tl','messages:apihelp-imagerotate-example-generator','s:72:\"Rotate all images in <kbd>Category:Flip</kbd> by <kbd>180</kbd> degrees.\";'),('tl','messages:apihelp-import-summary','s:53:\"Import a page from another wiki, or from an XML file.\";'),('tl','messages:apihelp-import-extended-description','s:140:\"Note that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending a file for the <var>xml</var> parameter.\";'),('tl','messages:apihelp-import-param-summary','s:25:\"Log entry import summary.\";'),('tl','messages:apihelp-import-param-xml','s:18:\"Uploaded XML file.\";'),('tl','messages:apihelp-import-param-interwikiprefix','s:128:\"For uploaded imports: interwiki prefix to apply to unknown user names (and known users if <var>$1assignknownusers</var> is set).\";'),('tl','messages:apihelp-import-param-assignknownusers','s:64:\"Assign edits to local users where the named user exists locally.\";'),('tl','messages:apihelp-import-param-interwikisource','s:43:\"For interwiki imports: wiki to import from.\";'),('tl','messages:apihelp-import-param-interwikipage','s:38:\"For interwiki imports: page to import.\";'),('tl','messages:apihelp-import-param-fullhistory','s:77:\"For interwiki imports: import the full history, not just the current version.\";'),('tl','messages:apihelp-import-param-templates','s:61:\"For interwiki imports: import all included templates as well.\";'),('tl','messages:apihelp-import-param-namespace','s:77:\"Import to this namespace. Cannot be used together with <var>$1rootpage</var>.\";'),('tl','messages:apihelp-import-param-rootpage','s:84:\"Import as subpage of this page. Cannot be used together with <var>$1namespace</var>.\";'),('tl','messages:apihelp-import-param-tags','s:99:\"Change tags to apply to the entry in the import log and to the null revision on the imported pages.\";'),('tl','messages:apihelp-import-example-import','s:72:\"Import [[meta:Help:ParserFunctions]] to namespace 100 with full history.\";'),('tl','messages:apihelp-linkaccount-summary','s:64:\"Link an account from a third-party provider to the current user.\";'),('tl','messages:apihelp-linkaccount-example-link','s:67:\"Start the process of linking to an account from <kbd>Example</kbd>.\";'),('tl','messages:apihelp-login-summary','s:38:\"Log in and get authentication cookies.\";'),('tl','messages:apihelp-login-extended-description','s:253:\"This action should only be used in combination with [[Special:BotPasswords]]; use for main-account login is deprecated and may fail without warning. To safely log in to the main account, use <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.\";'),('tl','messages:apihelp-login-extended-description-nobotpasswords','s:140:\"This action is deprecated and may fail without warning. To safely log in, use <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.\";'),('tl','messages:apihelp-login-param-name','s:10:\"User name.\";'),('tl','messages:apihelp-login-param-password','s:9:\"Password.\";'),('tl','messages:apihelp-login-param-domain','s:18:\"Domain (optional).\";'),('tl','messages:apihelp-login-param-token','s:38:\"Login token obtained in first request.\";'),('tl','messages:apihelp-logout-summary','s:31:\"Log out and clear session data.\";'),('tl','messages:apihelp-logout-example-logout','s:25:\"Log the current user out.\";'),('tl','messages:apihelp-managetags-summary','s:49:\"Perform management tasks relating to change tags.\";'),('tl','messages:apihelp-managetags-param-operation','s:379:\"Which operation to perform:\n;create:Create a new change tag for manual use.\n;delete:Remove a change tag from the database, including removing the tag from all revisions, recent change entries and log entries on which it is used.\n;activate:Activate a change tag, allowing users to apply it manually.\n;deactivate:Deactivate a change tag, preventing users from applying it manually.\";'),('tl','messages:apihelp-managetags-param-tag','s:277:\"Tag to create, delete, activate or deactivate. For tag creation, the tag must not exist. For tag deletion, the tag must exist. For tag activation, the tag must exist and not be in use by an extension. For tag deactivation, the tag must be currently active and manually defined.\";'),('tl','messages:apihelp-managetags-param-reason','s:78:\"An optional reason for creating, deleting, activating or deactivating the tag.\";'),('tl','messages:apihelp-managetags-param-ignorewarnings','s:68:\"Whether to ignore any warnings that are issued during the operation.\";'),('tl','messages:apihelp-managetags-param-tags','s:60:\"Change tags to apply to the entry in the tag management log.\";'),('tl','messages:apihelp-managetags-example-create','s:88:\"Create a tag named <kbd>spam</kbd> with the reason <kbd>For use in edit patrolling</kbd>\";'),('tl','messages:apihelp-managetags-example-delete','s:71:\"Delete the <kbd>vandlaism</kbd> tag with the reason <kbd>Misspelt</kbd>\";'),('tl','messages:apihelp-managetags-example-activate','s:90:\"Activate a tag named <kbd>spam</kbd> with the reason <kbd>For use in edit patrolling</kbd>\";'),('tl','messages:apihelp-managetags-example-deactivate','s:84:\"Deactivate a tag named <kbd>spam</kbd> with the reason <kbd>No longer required</kbd>\";'),('tl','messages:apihelp-mergehistory-summary','s:21:\"Merge page histories.\";'),('tl','messages:apihelp-mergehistory-param-from','s:102:\"Title of the page from which history will be merged. Cannot be used together with <var>$1fromid</var>.\";'),('tl','messages:apihelp-mergehistory-param-fromid','s:102:\"Page ID of the page from which history will be merged. Cannot be used together with <var>$1from</var>.\";'),('tl','messages:apihelp-mergehistory-param-to','s:98:\"Title of the page to which history will be merged. Cannot be used together with <var>$1toid</var>.\";'),('tl','messages:apihelp-mergehistory-param-toid','s:98:\"Page ID of the page to which history will be merged. Cannot be used together with <var>$1to</var>.\";'),('tl','messages:apihelp-mergehistory-param-timestamp','s:208:\"Timestamp up to which revisions will be moved from the source page\'s history to the destination page\'s history. If omitted, the entire page history of the source page will be merged into the destination page.\";'),('tl','messages:apihelp-mergehistory-param-reason','s:29:\"Reason for the history merge.\";'),('tl','messages:apihelp-mergehistory-example-merge','s:71:\"Merge the entire history of <kbd>Oldpage</kbd> into <kbd>Newpage</kbd>.\";'),('tl','messages:apihelp-mergehistory-example-merge-timestamp','s:116:\"Merge the page revisions of <kbd>Oldpage</kbd> dating up to <kbd>2015-12-31T04:37:41Z</kbd> into <kbd>Newpage</kbd>.\";'),('tl','messages:apihelp-move-summary','s:12:\"Move a page.\";'),('tl','messages:apihelp-move-param-from','s:78:\"Title of the page to rename. Cannot be used together with <var>$1fromid</var>.\";'),('tl','messages:apihelp-move-param-fromid','s:78:\"Page ID of the page to rename. Cannot be used together with <var>$1from</var>.\";'),('tl','messages:apihelp-move-param-to','s:28:\"Title to rename the page to.\";'),('tl','messages:apihelp-move-param-reason','s:22:\"Reason for the rename.\";'),('tl','messages:apihelp-move-param-movetalk','s:35:\"Rename the talk page, if it exists.\";'),('tl','messages:apihelp-move-param-movesubpages','s:31:\"Rename subpages, if applicable.\";'),('tl','messages:apihelp-move-param-noredirect','s:24:\"Don\'t create a redirect.\";'),('tl','messages:apihelp-move-param-watch','s:62:\"Add the page and the redirect to the current user\'s watchlist.\";'),('tl','messages:apihelp-move-param-unwatch','s:67:\"Remove the page and the redirect from the current user\'s watchlist.\";'),('tl','messages:apihelp-move-param-watchlist','s:113:\"Unconditionally add or remove the page from the current user\'s watchlist, use preferences or do not change watch.\";'),('tl','messages:apihelp-move-param-ignorewarnings','s:20:\"Ignore any warnings.\";'),('tl','messages:apihelp-move-param-tags','s:99:\"Change tags to apply to the entry in the move log and to the null revision on the destination page.\";'),('tl','messages:apihelp-opensearch-summary','s:46:\"Search the wiki using the OpenSearch protocol.\";'),('tl','messages:apihelp-opensearch-param-search','s:14:\"Search string.\";'),('tl','messages:apihelp-opensearch-param-limit','s:36:\"Maximum number of results to return.\";'),('tl','messages:apihelp-opensearch-param-namespace','s:90:\"Namespaces to search. Ignored if <var>$1search</var> begins with a valid namespace prefix.\";'),('tl','messages:apihelp-opensearch-param-suggest','s:121:\"Do nothing if <var>[[mw:Special:MyLanguage/Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> is false.\";'),('tl','messages:apihelp-opensearch-param-redirects','s:231:\"How to handle redirects:\n;return:Return the redirect itself.\n;resolve:Return the target page. May return fewer than $1limit results.\nFor historical reasons, the default is \"return\" for $1format=json and \"resolve\" for other formats.\";'),('tl','messages:apihelp-opensearch-param-format','s:25:\"The format of the output.\";'),('tl','messages:apihelp-opensearch-param-warningsaserror','s:97:\"If warnings are raised with <kbd>format=json</kbd>, return an API error instead of ignoring them.\";'),('tl','messages:apihelp-opensearch-example-te','s:40:\"Find pages beginning with <kbd>Te</kbd>.\";'),('tl','messages:apihelp-options-summary','s:39:\"Change preferences of the current user.\";'),('tl','messages:apihelp-options-extended-description','s:183:\"Only options which are registered in core or in one of installed extensions, or options with keys prefixed with <code>userjs-</code> (intended to be used by user scripts), can be set.\";'),('tl','messages:apihelp-options-param-reset','s:40:\"Resets preferences to the site defaults.\";'),('tl','messages:apihelp-options-param-resetkinds','s:76:\"List of types of options to reset when the <var>$1reset</var> option is set.\";'),('tl','messages:apihelp-options-param-change','s:358:\"List of changes, formatted name=value (e.g. skin=vector). If no value is given (not even an equals sign), e.g., optionname|otheroption|..., the option will be reset to its default value. If any value passed contains the pipe character (<kbd>|</kbd>), use the [[Special:ApiHelp/main#main/datatypes|alternative multiple-value separator]] for correct operation.\";'),('tl','messages:apihelp-options-param-optionname','s:89:\"The name of the option that should be set to the value given by <var>$1optionvalue</var>.\";'),('tl','messages:apihelp-options-param-optionvalue','s:62:\"The value for the option specified by <var>$1optionname</var>.\";'),('tl','messages:apihelp-options-example-change','s:60:\"Change <kbd>skin</kbd> and <kbd>hideminor</kbd> preferences.\";'),('tl','messages:apihelp-options-example-complex','s:72:\"Reset all preferences, then set <kbd>skin</kbd> and <kbd>nickname</kbd>.\";'),('tl','messages:apihelp-paraminfo-summary','s:37:\"Obtain information about API modules.\";'),('tl','messages:apihelp-paraminfo-param-modules','s:241:\"List of module names (values of the <var>action</var> and <var>format</var> parameters, or <kbd>main</kbd>). Can specify submodules with a <kbd>+</kbd>, or all submodules with <kbd>+*</kbd>, or all submodules recursively with <kbd>+**</kbd>.\";'),('tl','messages:apihelp-paraminfo-param-helpformat','s:23:\"Format of help strings.\";'),('tl','messages:apihelp-paraminfo-param-querymodules','s:177:\"List of query module names (value of <var>prop</var>, <var>meta</var> or <var>list</var> parameter). Use <kbd>$1modules=query+foo</kbd> instead of <kbd>$1querymodules=foo</kbd>.\";'),('tl','messages:apihelp-paraminfo-param-mainmodule','s:97:\"Get information about the main (top-level) module as well. Use <kbd>$1modules=main</kbd> instead.\";'),('tl','messages:apihelp-paraminfo-param-pagesetmodule','s:81:\"Get information about the pageset module (providing titles= and friends) as well.\";'),('tl','messages:apihelp-paraminfo-param-formatmodules','s:101:\"List of format module names (value of <var>format</var> parameter). Use <var>$1modules</var> instead.\";'),('tl','messages:apihelp-paraminfo-example-1','s:269:\"Show info for <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd>, and <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.\";'),('tl','messages:apihelp-paraminfo-example-2','s:82:\"Show info for all submodules of <kbd>[[Special:ApiHelp/query|action=query]]</kbd>.\";'),('tl','messages:apihelp-parse-summary','s:41:\"Parses content and returns parser output.\";'),('tl','messages:apihelp-parse-extended-description','s:500:\"See the various prop-modules of <kbd>[[Special:ApiHelp/query|action=query]]</kbd> to get information from the current version of a page.\n\nThere are several ways to specify the text to parse:\n# Specify a page or revision, using <var>$1page</var>, <var>$1pageid</var>, or <var>$1oldid</var>.\n# Specify content explicitly, using <var>$1text</var>, <var>$1title</var>, <var>$1revid</var>, and <var>$1contentmodel</var>.\n# Specify only a summary to parse. <var>$1prop</var> should be given an empty value.\";'),('tl','messages:apihelp-parse-param-title','s:130:\"Title of page the text belongs to. If omitted, <var>$1contentmodel</var> must be specified, and [[API]] will be used as the title.\";'),('tl','messages:apihelp-parse-param-text','s:96:\"Text to parse. Use <var>$1title</var> or <var>$1contentmodel</var> to control the content model.\";'),('tl','messages:apihelp-parse-param-revid','s:84:\"Revision ID, for <code><nowiki>{{REVISIONID}}</nowiki></code> and similar variables.\";'),('tl','messages:apihelp-parse-param-summary','s:17:\"Summary to parse.\";'),('tl','messages:apihelp-parse-param-page','s:102:\"Parse the content of this page. Cannot be used together with <var>$1text</var> and <var>$1title</var>.\";'),('tl','messages:apihelp-parse-param-pageid','s:60:\"Parse the content of this page. Overrides <var>$1page</var>.\";'),('tl','messages:apihelp-parse-param-redirects','s:77:\"If <var>$1page</var> or <var>$1pageid</var> is set to a redirect, resolve it.\";'),('tl','messages:apihelp-parse-param-oldid','s:88:\"Parse the content of this revision. Overrides <var>$1page</var> and <var>$1pageid</var>.\";'),('tl','messages:apihelp-parse-param-prop','s:35:\"Which pieces of information to get:\";'),('tl','messages:apihelp-parse-paramvalue-prop-text','s:38:\"Gives the parsed text of the wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-langlinks','s:48:\"Gives the language links in the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-categories','s:44:\"Gives the categories in the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-categorieshtml','s:41:\"Gives the HTML version of the categories.\";'),('tl','messages:apihelp-parse-paramvalue-prop-links','s:48:\"Gives the internal links in the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-templates','s:43:\"Gives the templates in the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-images','s:40:\"Gives the images in the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-externallinks','s:48:\"Gives the external links in the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-sections','s:42:\"Gives the sections in the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-revid','s:40:\"Adds the revision ID of the parsed page.\";'),('tl','messages:apihelp-parse-paramvalue-prop-displaytitle','s:38:\"Adds the title of the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-headitems','s:64:\"Gives items to put in the <code>&lt;head&gt;</code> of the page.\";'),('tl','messages:apihelp-parse-paramvalue-prop-headhtml','s:141:\"Gives parsed doctype, opening <code>&lt;html&gt;</code>, <code>&lt;head&gt;</code> element and opening <code>&lt;body&gt;</code> of the page.\";'),('tl','messages:apihelp-parse-paramvalue-prop-modules','s:211:\"Gives the ResourceLoader modules used on the page. To load, use <code>mw.loader.using()</code>. Either <kbd>jsconfigvars</kbd> or <kbd>encodedjsconfigvars</kbd> must be requested jointly with <kbd>modules</kbd>.\";'),('tl','messages:apihelp-parse-paramvalue-prop-jsconfigvars','s:110:\"Gives the JavaScript configuration variables specific to the page. To apply, use <code>mw.config.set()</code>.\";'),('tl','messages:apihelp-parse-paramvalue-prop-encodedjsconfigvars','s:83:\"Gives the JavaScript configuration variables specific to the page as a JSON string.\";'),('tl','messages:apihelp-parse-paramvalue-prop-indicators','s:58:\"Gives the HTML of page status indicators used on the page.\";'),('tl','messages:apihelp-parse-paramvalue-prop-iwlinks','s:45:\"Gives interwiki links in the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-wikitext','s:44:\"Gives the original wikitext that was parsed.\";'),('tl','messages:apihelp-parse-paramvalue-prop-properties','s:56:\"Gives various properties defined in the parsed wikitext.\";'),('tl','messages:apihelp-parse-paramvalue-prop-limitreportdata','s:103:\"Gives the limit report in a structured way. Gives no data, when <var>$1disablelimitreport</var> is set.\";'),('tl','messages:apihelp-parse-paramvalue-prop-limitreporthtml','s:103:\"Gives the HTML version of the limit report. Gives no data, when <var>$1disablelimitreport</var> is set.\";'),('tl','messages:apihelp-parse-paramvalue-prop-parsetree','s:79:\"The XML parse tree of revision content (requires content model <code>$1</code>)\";'),('tl','messages:apihelp-parse-paramvalue-prop-parsewarnings','s:55:\"Gives the warnings that occurred while parsing content.\";'),('tl','messages:apihelp-parse-param-wrapoutputclass','s:43:\"CSS class to use to wrap the parser output.\";'),('tl','messages:apihelp-parse-param-pst','s:87:\"Do a pre-save transform on the input before parsing it. Only valid when used with text.\";'),('tl','messages:apihelp-parse-param-onlypst','s:165:\"Do a pre-save transform (PST) on the input, but don\'t parse it. Returns the same wikitext, after a PST has been applied. Only valid when used with <var>$1text</var>.\";'),('tl','messages:apihelp-parse-param-effectivelanglinks','s:90:\"Includes language links supplied by extensions (for use with <kbd>$1prop=langlinks</kbd>).\";'),('tl','messages:apihelp-parse-param-section','s:227:\"Only parse the content of this section number.\n\nWhen <kbd>new</kbd>, parse <var>$1text</var> and <var>$1sectiontitle</var> as if adding a new section to the page.\n\n<kbd>new</kbd> is allowed only when specifying <var>text</var>.\";'),('tl','messages:apihelp-parse-param-sectiontitle','s:151:\"New section title when <var>section</var> is <kbd>new</kbd>.\n\nUnlike page editing, this does not fall back to <var>summary</var> when omitted or empty.\";'),('tl','messages:apihelp-parse-param-disablelimitreport','s:68:\"Omit the limit report (\"NewPP limit report\") from the parser output.\";'),('tl','messages:apihelp-parse-param-disablepp','s:44:\"Use <var>$1disablelimitreport</var> instead.\";'),('tl','messages:apihelp-parse-param-disableeditsection','s:47:\"Omit edit section links from the parser output.\";'),('tl','messages:apihelp-parse-param-disabletidy','s:57:\"Do not run HTML cleanup (e.g. tidy) on the parser output.\";'),('tl','messages:apihelp-parse-param-disablestylededuplication','s:59:\"Do not deduplicate inline stylesheets in the parser output.\";'),('tl','messages:apihelp-parse-param-generatexml','s:106:\"Generate XML parse tree (requires content model <code>$1</code>; replaced by <kbd>$2prop=parsetree</kbd>).\";'),('tl','messages:apihelp-parse-param-preview','s:22:\"Parse in preview mode.\";'),('tl','messages:apihelp-parse-param-sectionpreview','s:57:\"Parse in section preview mode (enables preview mode too).\";'),('tl','messages:apihelp-parse-param-disabletoc','s:33:\"Omit table of contents in output.\";'),('tl','messages:apihelp-parse-param-useskin','s:194:\"Apply the selected skin to the parser output. May affect the following properties: <kbd>langlinks</kbd>, <kbd>headitems</kbd>, <kbd>modules</kbd>, <kbd>jsconfigvars</kbd>, <kbd>indicators</kbd>.\";'),('tl','messages:apihelp-parse-param-contentformat','s:87:\"Content serialization format used for the input text. Only valid when used with $1text.\";'),('tl','messages:apihelp-parse-param-contentmodel','s:159:\"Content model of the input text. If omitted, $1title must be specified, and default will be the model of the specified title. Only valid when used with $1text.\";'),('tl','messages:apihelp-parse-example-page','s:13:\"Parse a page.\";'),('tl','messages:apihelp-parse-example-text','s:15:\"Parse wikitext.\";'),('tl','messages:apihelp-parse-example-texttitle','s:42:\"Parse wikitext, specifying the page title.\";'),('tl','messages:apihelp-parse-example-summary','s:16:\"Parse a summary.\";'),('tl','messages:apihelp-patrol-summary','s:26:\"Patrol a page or revision.\";'),('tl','messages:apihelp-patrol-param-rcid','s:27:\"Recentchanges ID to patrol.\";'),('tl','messages:apihelp-patrol-param-revid','s:22:\"Revision ID to patrol.\";'),('tl','messages:apihelp-patrol-param-tags','s:52:\"Change tags to apply to the entry in the patrol log.\";'),('tl','messages:apihelp-patrol-example-revid','s:18:\"Patrol a revision.\";'),('tl','messages:apihelp-protect-summary','s:38:\"Change the protection level of a page.\";'),('tl','messages:apihelp-protect-param-title','s:72:\"Title of the page to (un)protect. Cannot be used together with $1pageid.\";'),('tl','messages:apihelp-protect-param-pageid','s:68:\"ID of the page to (un)protect. Cannot be used together with $1title.\";'),('tl','messages:apihelp-protect-param-protections','s:262:\"List of protection levels, formatted <kbd>action=level</kbd> (e.g. <kbd>edit=sysop</kbd>). A level of <kbd>all</kbd> means everyone is allowed to take the action, i.e. no restriction.\n\n<strong>Note:</strong> Any actions not listed will have restrictions removed.\";'),('tl','messages:apihelp-protect-param-expiry','s:206:\"Expiry timestamps. If only one timestamp is set, it\'ll be used for all protections. Use <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd>, or <kbd>never</kbd>, for a never-expiring protection.\";'),('tl','messages:apihelp-protect-param-reason','s:26:\"Reason for (un)protecting.\";'),('tl','messages:apihelp-protect-param-tags','s:56:\"Change tags to apply to the entry in the protection log.\";'),('tl','messages:apihelp-protect-param-cascade','s:160:\"Enable cascading protection (i.e. protect transcluded templates and images used in this page). Ignored if none of the given protection levels support cascading.\";'),('tl','messages:apihelp-protect-param-watch','s:73:\"If set, add the page being (un)protected to the current user\'s watchlist.\";'),('tl','messages:apihelp-protect-param-watchlist','s:113:\"Unconditionally add or remove the page from the current user\'s watchlist, use preferences or do not change watch.\";'),('tl','messages:apihelp-protect-example-protect','s:15:\"Protect a page.\";'),('tl','messages:apihelp-protect-example-unprotect','s:105:\"Unprotect a page by setting restrictions to <kbd>all</kbd> (i.e. everyone is allowed to take the action).\";'),('tl','messages:apihelp-protect-example-unprotect2','s:44:\"Unprotect a page by setting no restrictions.\";'),('tl','messages:apihelp-purge-summary','s:37:\"Purge the cache for the given titles.\";'),('tl','messages:apihelp-purge-param-forcelinkupdate','s:24:\"Update the links tables.\";'),('tl','messages:apihelp-purge-param-forcerecursivelinkupdate','s:99:\"Update the links table, and update the links tables for any page that uses this page as a template.\";'),('tl','messages:apihelp-purge-example-simple','s:59:\"Purge the <kbd>Main Page</kbd> and the <kbd>API</kbd> page.\";'),('tl','messages:apihelp-purge-example-generator','s:47:\"Purge the first 10 pages in the main namespace.\";'),('tl','messages:apihelp-query-summary','s:36:\"Fetch data from and about MediaWiki.\";'),('tl','messages:apihelp-query-extended-description','s:109:\"All data modifications will first have to use query to acquire a token to prevent abuse from malicious sites.\";'),('tl','messages:apihelp-query-param-prop','s:46:\"Which properties to get for the queried pages.\";'),('tl','messages:apihelp-query-param-list','s:19:\"Which lists to get.\";'),('tl','messages:apihelp-query-param-meta','s:22:\"Which metadata to get.\";'),('tl','messages:apihelp-query-param-indexpageids','s:68:\"Include an additional pageids section listing all returned page IDs.\";'),('tl','messages:apihelp-query-param-export','s:61:\"Export the current revisions of all given or generated pages.\";'),('tl','messages:apihelp-query-param-exportnowrap','s:127:\"Return the export XML without wrapping it in an XML result (same format as [[Special:Export]]). Can only be used with $1export.\";'),('tl','messages:apihelp-query-param-exportschema','s:106:\"Target the given version of the XML dump format when exporting. Can only be used with <var>$1export</var>.\";'),('tl','messages:apihelp-query-param-iwurl','s:62:\"Whether to get the full URL if the title is an interwiki link.\";'),('tl','messages:apihelp-query-param-rawcontinue','s:61:\"Return raw <samp>query-continue</samp> data for continuation.\";'),('tl','messages:apihelp-query-example-revisions','s:125:\"Fetch [[Special:ApiHelp/query+siteinfo|site info]] and [[Special:ApiHelp/query+revisions|revisions]] of <kbd>Main Page</kbd>.\";'),('tl','messages:apihelp-query-example-allpages','s:56:\"Fetch revisions of pages beginning with <kbd>API/</kbd>.\";'),('tl','messages:apihelp-query+allcategories-summary','s:25:\"Enumerate all categories.\";'),('tl','messages:apihelp-query+allcategories-param-from','s:39:\"The category to start enumerating from.\";'),('tl','messages:apihelp-query+allcategories-param-to','s:36:\"The category to stop enumerating at.\";'),('tl','messages:apihelp-query+allcategories-param-prefix','s:58:\"Search for all category titles that begin with this value.\";'),('tl','messages:apihelp-query+allcategories-param-dir','s:21:\"Direction to sort in.\";'),('tl','messages:apihelp-query+allcategories-param-min','s:55:\"Only return categories with at least this many members.\";'),('tl','messages:apihelp-query+allcategories-param-max','s:54:\"Only return categories with at most this many members.\";'),('tl','messages:apihelp-query+allcategories-param-limit','s:30:\"How many categories to return.\";'),('tl','messages:apihelp-query+allcategories-param-prop','s:24:\"Which properties to get:\";'),('tl','messages:apihelp-query+allcategories-paramvalue-prop-size','s:37:\"Adds number of pages in the category.\";'),('tl','messages:apihelp-query+allcategories-paramvalue-prop-hidden','s:72:\"Tags categories that are hidden with <code>_&#95;HIDDENCAT_&#95;</code>.\";'),('tl','messages:apihelp-query+allcategories-example-size','s:64:\"List categories with information on the number of pages in each.\";'),('tl','messages:apihelp-query+allcategories-example-generator','s:86:\"Retrieve info about the category page itself for categories beginning <kbd>List</kbd>.\";'),('tl','messages:apihelp-query+alldeletedrevisions-summary','s:55:\"List all deleted revisions by a user or in a namespace.\";'),('tl','messages:apihelp-query+alldeletedrevisions-paraminfo-useronly','s:40:\"May only be used with <var>$3user</var>.\";'),('tl','messages:apihelp-query+alldeletedrevisions-paraminfo-nonuseronly','s:38:\"Cannot be used with <var>$3user</var>.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-start','s:40:\"The timestamp to start enumerating from.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-end','s:37:\"The timestamp to stop enumerating at.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-from','s:28:\"Start listing at this title.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-to','s:27:\"Stop listing at this title.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-prefix','s:54:\"Search for all page titles that begin with this value.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-tag','s:41:\"Only list revisions tagged with this tag.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-user','s:33:\"Only list revisions by this user.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-excludeuser','s:34:\"Don\'t list revisions by this user.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-namespace','s:34:\"Only list pages in this namespace.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-miser-user-namespace','s:275:\"<strong>Note:</strong> Due to [[mw:Special:MyLanguage/Manual:$wgMiserMode|miser mode]], using <var>$1user</var> and <var>$1namespace</var> together may result in fewer than <var>$1limit</var> results returned before continuing; in extreme cases, zero results may be returned.\";'),('tl','messages:apihelp-query+alldeletedrevisions-param-generatetitles','s:73:\"When being used as a generator, generate titles rather than revision IDs.\";'),('tl','messages:apihelp-query+alldeletedrevisions-example-user','s:66:\"List the last 50 deleted contributions by user <kbd>Example</kbd>.\";'),('tl','messages:apihelp-query+alldeletedrevisions-example-ns-main','s:58:\"List the first 50 deleted revisions in the main namespace.\";'),('tl','messages:apihelp-query+allfileusages-summary','s:45:\"List all file usages, including non-existing.\";'),('tl','messages:apihelp-query+allfileusages-param-from','s:48:\"The title of the file to start enumerating from.\";'),('tl','messages:apihelp-query+allfileusages-param-to','s:45:\"The title of the file to stop enumerating at.\";'),('tl','messages:apihelp-query+allfileusages-param-prefix','s:54:\"Search for all file titles that begin with this value.\";'),('tl','messages:apihelp-query+allfileusages-param-unique','s:134:\"Only show distinct file titles. Cannot be used with $1prop=ids.\nWhen used as a generator, yields target pages instead of source pages.\";'),('tl','messages:apihelp-query+allfileusages-param-prop','s:39:\"Which pieces of information to include:\";'),('tl','messages:apihelp-query+allfileusages-paramvalue-prop-ids','s:68:\"Adds the page IDs of the using pages (cannot be used with $1unique).\";'),('tl','messages:apihelp-query+allfileusages-paramvalue-prop-title','s:27:\"Adds the title of the file.\";'),('tl','messages:apihelp-query+allfileusages-param-limit','s:31:\"How many total items to return.\";'),('tl','messages:apihelp-query+allfileusages-param-dir','s:31:\"The direction in which to list.\";'),('tl','messages:apihelp-query+allfileusages-example-b','s:96:\"List file titles, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.\";'),('tl','messages:apihelp-query+allfileusages-example-unique','s:24:\"List unique file titles.\";'),('tl','messages:apihelp-query+allfileusages-example-unique-generator','s:47:\"Gets all file titles, marking the missing ones.\";'),('tl','messages:apihelp-query+allfileusages-example-generator','s:32:\"Gets pages containing the files.\";'),('tl','messages:apihelp-query+allimages-summary','s:34:\"Enumerate all images sequentially.\";'),('tl','messages:apihelp-query+allimages-param-sort','s:20:\"Property to sort by.\";'),('tl','messages:apihelp-query+allimages-param-dir','s:31:\"The direction in which to list.\";'),('tl','messages:apihelp-query+allimages-param-from','s:77:\"The image title to start enumerating from. Can only be used with $1sort=name.\";'),('tl','messages:apihelp-query+allimages-param-to','s:74:\"The image title to stop enumerating at. Can only be used with $1sort=name.\";'),('tl','messages:apihelp-query+allimages-param-start','s:80:\"The timestamp to start enumerating from. Can only be used with $1sort=timestamp.\";'),('tl','messages:apihelp-query+allimages-param-end','s:73:\"The timestamp to end enumerating. Can only be used with $1sort=timestamp.\";'),('tl','messages:apihelp-query+allimages-param-prefix','s:90:\"Search for all image titles that begin with this value. Can only be used with $1sort=name.\";'),('tl','messages:apihelp-query+allimages-param-minsize','s:46:\"Limit to images with at least this many bytes.\";'),('tl','messages:apihelp-query+allimages-param-maxsize','s:45:\"Limit to images with at most this many bytes.\";'),('tl','messages:apihelp-query+allimages-param-sha1','s:43:\"SHA1 hash of image. Overrides $1sha1base36.\";'),('tl','messages:apihelp-query+allimages-param-sha1base36','s:50:\"SHA1 hash of image in base 36 (used in MediaWiki).\";'),('tl','messages:apihelp-query+allimages-param-user','s:123:\"Only return files uploaded by this user. Can only be used with $1sort=timestamp. Cannot be used together with $1filterbots.\";'),('tl','messages:apihelp-query+allimages-param-filterbots','s:114:\"How to filter files uploaded by bots. Can only be used with $1sort=timestamp. Cannot be used together with $1user.\";'),('tl','messages:apihelp-query+allimages-param-mime','s:58:\"What MIME types to search for, e.g. <kbd>image/jpeg</kbd>.\";'),('tl','messages:apihelp-query+allimages-param-limit','s:35:\"How many images in total to return.\";'),('tl','messages:apihelp-query+allimages-example-b','s:57:\"Show a list of files starting at the letter <kbd>B</kbd>.\";'),('tl','messages:apihelp-query+allimages-example-recent','s:72:\"Show a list of recently uploaded files, similar to [[Special:NewFiles]].\";'),('tl','messages:apihelp-query+allimages-example-mimetypes','s:80:\"Show a list of files with MIME type <kbd>image/png</kbd> or <kbd>image/gif</kbd>\";'),('tl','messages:apihelp-query+allimages-example-generator','s:60:\"Show info about 4 files starting at the letter <kbd>T</kbd>.\";'),('tl','messages:apihelp-query+alllinks-summary','s:52:\"Enumerate all links that point to a given namespace.\";'),('tl','messages:apihelp-query+alllinks-param-from','s:48:\"The title of the link to start enumerating from.\";'),('tl','messages:apihelp-query+alllinks-param-to','s:45:\"The title of the link to stop enumerating at.\";'),('tl','messages:apihelp-query+alllinks-param-prefix','s:56:\"Search for all linked titles that begin with this value.\";'),('tl','messages:apihelp-query+alllinks-param-unique','s:147:\"Only show distinct linked titles. Cannot be used with <kbd>$1prop=ids</kbd>.\nWhen used as a generator, yields target pages instead of source pages.\";'),('tl','messages:apihelp-query+alllinks-param-prop','s:39:\"Which pieces of information to include:\";'),('tl','messages:apihelp-query+alllinks-paramvalue-prop-ids','s:79:\"Adds the page ID of the linking page (cannot be used with <var>$1unique</var>).\";'),('tl','messages:apihelp-query+alllinks-paramvalue-prop-title','s:27:\"Adds the title of the link.\";'),('tl','messages:apihelp-query+alllinks-param-namespace','s:27:\"The namespace to enumerate.\";'),('tl','messages:apihelp-query+alllinks-param-limit','s:31:\"How many total items to return.\";'),('tl','messages:apihelp-query+alllinks-param-dir','s:31:\"The direction in which to list.\";'),('tl','messages:apihelp-query+alllinks-example-b','s:98:\"List linked titles, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.\";'),('tl','messages:apihelp-query+alllinks-example-unique','s:26:\"List unique linked titles.\";'),('tl','messages:apihelp-query+alllinks-example-unique-generator','s:49:\"Gets all linked titles, marking the missing ones.\";'),('tl','messages:apihelp-query+allmessages-summary','s:31:\"Return messages from this site.\";'),('tl','messages:apihelp-query+allmessages-param-messages','s:68:\"Which messages to output. <kbd>*</kbd> (default) means all messages.\";'),('tl','messages:apihelp-query+allmessages-param-prop','s:24:\"Which properties to get.\";'),('tl','messages:apihelp-query+allmessages-param-enableparser','s:111:\"Set to enable parser, will preprocess the wikitext of message (substitute magic words, handle templates, etc.).\";'),('tl','messages:apihelp-query+allmessages-param-nocontent','s:65:\"If set, do not include the content of the messages in the output.\";'),('tl','messages:apihelp-query+allmessages-param-includelocal','s:273:\"Also include local messages, i.e. messages that don\'t exist in the software but do exist as in the {{ns:MediaWiki}} namespace.\nThis lists all {{ns:MediaWiki}}-namespace pages, so it will also list those that aren\'t really messages such as [[MediaWiki:Common.js|Common.js]].\";'),('tl','messages:apihelp-query+allmessages-param-args','s:41:\"Arguments to be substituted into message.\";'),('tl','messages:apihelp-query+allmessages-param-filter','s:57:\"Return only messages with names that contain this string.\";'),('tl','messages:apihelp-query+allmessages-param-customised','s:49:\"Return only messages in this customisation state.\";'),('tl','messages:apihelp-query+allmessages-param-lang','s:33:\"Return messages in this language.\";'),('tl','messages:apihelp-query+allmessages-param-from','s:41:\"Return messages starting at this message.\";'),('tl','messages:apihelp-query+allmessages-param-to','s:39:\"Return messages ending at this message.\";'),('tl','messages:apihelp-query+allmessages-param-title','s:77:\"Page name to use as context when parsing message (for $1enableparser option).\";'),('tl','messages:apihelp-query+allmessages-param-prefix','s:33:\"Return messages with this prefix.\";'),('tl','messages:apihelp-query+allmessages-example-ipb','s:44:\"Show messages starting with <kbd>ipb-</kbd>.\";'),('tl','messages:apihelp-query+allmessages-example-de','s:66:\"Show messages <kbd>august</kbd> and <kbd>mainpage</kbd> in German.\";'),('tl','messages:apihelp-query+allpages-summary','s:54:\"Enumerate all pages sequentially in a given namespace.\";'),('tl','messages:apihelp-query+allpages-param-from','s:41:\"The page title to start enumerating from.\";'),('tl','messages:apihelp-query+allpages-param-to','s:38:\"The page title to stop enumerating at.\";'),('tl','messages:apihelp-query+allpages-param-prefix','s:54:\"Search for all page titles that begin with this value.\";'),('tl','messages:apihelp-query+allpages-param-namespace','s:27:\"The namespace to enumerate.\";'),('tl','messages:apihelp-query+allpages-param-filterredir','s:20:\"Which pages to list.\";'),('tl','messages:apihelp-query+allpages-param-minsize','s:45:\"Limit to pages with at least this many bytes.\";'),('tl','messages:apihelp-query+allpages-param-maxsize','s:44:\"Limit to pages with at most this many bytes.\";'),('tl','messages:apihelp-query+allpages-param-prtype','s:30:\"Limit to protected pages only.\";'),('tl','messages:apihelp-query+allpages-param-prlevel','s:85:\"Filter protections based on protection level (must be used with $1prtype= parameter).\";'),('tl','messages:apihelp-query+allpages-param-prfiltercascade','s:76:\"Filter protections based on cascadingness (ignored when $1prtype isn\'t set).\";'),('tl','messages:apihelp-query+allpages-param-limit','s:31:\"How many total pages to return.\";'),('tl','messages:apihelp-query+allpages-param-dir','s:31:\"The direction in which to list.\";'),('tl','messages:apihelp-query+allpages-param-filterlanglinks','s:108:\"Filter based on whether a page has langlinks. Note that this may not consider langlinks added by extensions.\";'),('tl','messages:apihelp-query+allpages-param-prexpiry','s:223:\"Which protection expiry to filter the page on:\n;indefinite:Get only pages with indefinite protection expiry.\n;definite:Get only pages with a definite (specific) protection expiry.\n;all:Get pages with any protections expiry.\";'),('tl','messages:apihelp-query+allpages-example-b','s:57:\"Show a list of pages starting at the letter <kbd>B</kbd>.\";'),('tl','messages:apihelp-query+allpages-example-generator','s:60:\"Show info about 4 pages starting at the letter <kbd>T</kbd>.\";'),('tl','messages:apihelp-query+allpages-example-generator-revisions','s:70:\"Show content of first 2 non-redirect pages beginning at <kbd>Re</kbd>.\";'),('tl','messages:apihelp-query+allredirects-summary','s:34:\"List all redirects to a namespace.\";'),('tl','messages:apihelp-query+allredirects-param-from','s:52:\"The title of the redirect to start enumerating from.\";'),('tl','messages:apihelp-query+allredirects-param-to','s:49:\"The title of the redirect to stop enumerating at.\";'),('tl','messages:apihelp-query+allredirects-param-prefix','s:55:\"Search for all target pages that begin with this value.\";'),('tl','messages:apihelp-query+allredirects-param-unique','s:154:\"Only show distinct target pages. Cannot be used with $1prop=ids|fragment|interwiki.\nWhen used as a generator, yields target pages instead of source pages.\";'),('tl','messages:apihelp-query+allredirects-param-prop','s:39:\"Which pieces of information to include:\";'),('tl','messages:apihelp-query+allredirects-paramvalue-prop-ids','s:83:\"Adds the page ID of the redirecting page (cannot be used with <var>$1unique</var>).\";'),('tl','messages:apihelp-query+allredirects-paramvalue-prop-title','s:31:\"Adds the title of the redirect.\";'),('tl','messages:apihelp-query+allredirects-paramvalue-prop-fragment','s:86:\"Adds the fragment from the redirect, if any (cannot be used with <var>$1unique</var>).\";'),('tl','messages:apihelp-query+allredirects-paramvalue-prop-interwiki','s:94:\"Adds the interwiki prefix from the redirect, if any (cannot be used with <var>$1unique</var>).\";'),('tl','messages:apihelp-query+allredirects-param-namespace','s:27:\"The namespace to enumerate.\";'),('tl','messages:apihelp-query+allredirects-param-limit','s:31:\"How many total items to return.\";'),('tl','messages:apihelp-query+allredirects-param-dir','s:31:\"The direction in which to list.\";'),('tl','messages:apihelp-query+allredirects-example-b','s:97:\"List target pages, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.\";'),('tl','messages:apihelp-query+allredirects-example-unique','s:25:\"List unique target pages.\";'),('tl','messages:apihelp-query+allredirects-example-unique-generator','s:48:\"Gets all target pages, marking the missing ones.\";'),('tl','messages:apihelp-query+allredirects-example-generator','s:36:\"Gets pages containing the redirects.\";'),('tl','messages:apihelp-query+allrevisions-summary','s:19:\"List all revisions.\";'),('tl','messages:apihelp-query+allrevisions-param-start','s:40:\"The timestamp to start enumerating from.\";'),('tl','messages:apihelp-query+allrevisions-param-end','s:37:\"The timestamp to stop enumerating at.\";'),('tl','messages:apihelp-query+allrevisions-param-user','s:33:\"Only list revisions by this user.\";'),('tl','messages:apihelp-query+allrevisions-param-excludeuser','s:34:\"Don\'t list revisions by this user.\";'),('tl','messages:apihelp-query+allrevisions-param-namespace','s:34:\"Only list pages in this namespace.\";'),('tl','messages:apihelp-query+allrevisions-param-generatetitles','s:73:\"When being used as a generator, generate titles rather than revision IDs.\";'),('tl','messages:apihelp-query+allrevisions-example-user','s:58:\"List the last 50 contributions by user <kbd>Example</kbd>.\";'),('tl','messages:apihelp-query+allrevisions-example-ns-main','s:50:\"List the first 50 revisions in the main namespace.\";'),('tl','messages:apihelp-query+mystashedfiles-summary','s:55:\"Get a list of files in the current user\'s upload stash.\";'),('tl','messages:apihelp-query+mystashedfiles-param-prop','s:40:\"Which properties to fetch for the files.\";'),('tl','messages:apihelp-query+mystashedfiles-paramvalue-prop-size','s:41:\"Fetch the file size and image dimensions.\";'),('tl','messages:apihelp-query+mystashedfiles-paramvalue-prop-type','s:42:\"Fetch the file\'s MIME type and media type.\";'),('tl','messages:apihelp-query+mystashedfiles-param-limit','s:22:\"How many files to get.\";'),('tl','messages:apihelp-query+mystashedfiles-example-simple','s:87:\"Get the filekey, file size, and pixel size of files in the current user\'s upload stash.\";'),('tl','messages:apihelp-query+alltransclusions-summary','s:96:\"List all transclusions (pages embedded using &#123;&#123;x&#125;&#125;), including non-existing.\";'),('tl','messages:apihelp-query+alltransclusions-param-from','s:56:\"The title of the transclusion to start enumerating from.\";'),('tl','messages:apihelp-query+alltransclusions-param-to','s:53:\"The title of the transclusion to stop enumerating at.\";'),('tl','messages:apihelp-query+alltransclusions-param-prefix','s:61:\"Search for all transcluded titles that begin with this value.\";'),('tl','messages:apihelp-query+alltransclusions-param-unique','s:141:\"Only show distinct transcluded titles. Cannot be used with $1prop=ids.\nWhen used as a generator, yields target pages instead of source pages.\";'),('tl','messages:apihelp-query+alltransclusions-param-prop','s:39:\"Which pieces of information to include:\";'),('tl','messages:apihelp-query+alltransclusions-paramvalue-prop-ids','s:73:\"Adds the page ID of the transcluding page (cannot be used with $1unique).\";'),('tl','messages:apihelp-query+alltransclusions-paramvalue-prop-title','s:35:\"Adds the title of the transclusion.\";'),('tl','messages:apihelp-query+alltransclusions-param-namespace','s:27:\"The namespace to enumerate.\";'),('tl','messages:apihelp-query+alltransclusions-param-limit','s:31:\"How many total items to return.\";'),('tl','messages:apihelp-query+alltransclusions-param-dir','s:31:\"The direction in which to list.\";'),('tl','messages:apihelp-query+alltransclusions-example-b','s:103:\"List transcluded titles, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.\";'),('tl','messages:apihelp-query+alltransclusions-example-unique','s:31:\"List unique transcluded titles.\";'),('tl','messages:apihelp-query+alltransclusions-example-unique-generator','s:54:\"Gets all transcluded titles, marking the missing ones.\";'),('tl','messages:apihelp-query+allusers-summary','s:31:\"Enumerate all registered users.\";'),('tl','messages:apihelp-query+allusers-param-from','s:40:\"The user name to start enumerating from.\";'),('tl','messages:apihelp-query+allusers-param-to','s:37:\"The user name to stop enumerating at.\";'),('tl','messages:apihelp-query+allusers-param-prefix','s:48:\"Search for all users that begin with this value.\";'),('tl','messages:apihelp-query+allusers-param-dir','s:21:\"Direction to sort in.\";'),('tl','messages:apihelp-query+allusers-param-group','s:39:\"Only include users in the given groups.\";'),('tl','messages:apihelp-query+allusers-param-excludegroup','s:34:\"Exclude users in the given groups.\";'),('tl','messages:apihelp-query+allusers-param-rights','s:141:\"Only include users with the given rights. Does not include rights granted by implicit or auto-promoted groups like *, user, or autoconfirmed.\";'),('tl','messages:apihelp-query+allusers-param-prop','s:39:\"Which pieces of information to include:\";'),('tl','messages:apihelp-query+allusers-paramvalue-prop-blockinfo','s:55:\"Adds the information about a current block on the user.\";'),('tl','messages:apihelp-query+allusers-paramvalue-prop-groups','s:110:\"Lists groups that the user is in. This uses more server resources and may return fewer results than the limit.\";'),('tl','messages:apihelp-query+allusers-paramvalue-prop-implicitgroups','s:50:\"Lists all the groups the user is automatically in.\";'),('tl','messages:apihelp-query+allusers-paramvalue-prop-rights','s:31:\"Lists rights that the user has.\";'),('tl','messages:apihelp-query+allusers-paramvalue-prop-editcount','s:32:\"Adds the edit count of the user.\";'),('tl','messages:apihelp-query+allusers-paramvalue-prop-registration','s:75:\"Adds the timestamp of when the user registered if available (may be blank).\";')
Function: LCStoreDB::finishWrite
Error: 1062 Duplicate entry 'tl-messages:apihelp-query+allimages-example-b' for key 'PRIMARY' (127.0.0.1)
Backtrace:

#0 /var/www/wiki/includes/libs/rdbms/database/Database.php(1574): Wikimedia\Rdbms\Database->getQueryExceptionAndLog(string, integer, string, string)
#1 /var/www/wiki/includes/libs/rdbms/database/Database.php(1152): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#2 /var/www/wiki/includes/libs/rdbms/database/Database.php(2140): Wikimedia\Rdbms\Database->query(string, string)
#3 /var/www/wiki/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->insert(string, array, string)
#4 /var/www/wiki/includes/libs/rdbms/database/DBConnRef.php(371): Wikimedia\Rdbms\DBConnRef->__call(string, array)
#5 /var/www/wiki/includes/cache/localisation/LCStoreDB.php(98): Wikimedia\Rdbms\DBConnRef->insert(string, array, string)
#6 /var/www/wiki/includes/cache/localisation/LocalisationCache.php(1042): LCStoreDB->finishWrite()
#7 /var/www/wiki/includes/cache/localisation/LocalisationCache.php(489): LocalisationCache->recache(string)
#8 /var/www/wiki/includes/cache/localisation/LocalisationCache.php(363): LocalisationCache->initLanguage(string)
#9 /var/www/wiki/includes/cache/localisation/LocalisationCache.php(304): LocalisationCache->loadItem(string, string)
#10 /var/www/wiki/languages/Language.php(4413): LocalisationCache->getItem(string, string)
#11 /var/www/wiki/languages/Language.php(265): Language::getFallbacksFor(string)
#12 /var/www/wiki/languages/Language.php(225): Language::newFromCode(string)
#13 /var/www/wiki/extensions/Translate/tag/PageTranslationHooks.php(115): Language::factory(string)
#14 /var/www/wiki/includes/Hooks.php(174): PageTranslationHooks::onPageContentLanguage(Title, LanguageEn, LanguageEn)
#15 /var/www/wiki/includes/Hooks.php(202): Hooks::callHook(string, array, array, NULL)
#16 /var/www/wiki/includes/content/ContentHandler.php(698): Hooks::run(string, array)
#17 /var/www/wiki/includes/Title.php(4613): ContentHandler->getPageLanguage(Title)
#18 /var/www/wiki/includes/parser/ParserOptions.php(1370): Title->getPageLanguage()
#19 /var/www/wiki/includes/parser/ParserCache.php(227): ParserOptions->optionsHash(array, Title)
#20 /var/www/wiki/includes/poolcounter/PoolWorkArticleView.php(116): ParserCache->getKey(WikiPage, ParserOptions)
#21 /var/www/wiki/includes/page/Article.php(789): PoolWorkArticleView->__construct(WikiPage, ParserOptions, integer, boolean, MediaWiki\Revision\RevisionStoreRecord, integer)
#22 /var/www/wiki/includes/actions/ViewAction.php(63): Article->view()
#23 /var/www/wiki/includes/MediaWiki.php(511): ViewAction->show()
#24 /var/www/wiki/includes/MediaWiki.php(302): MediaWiki->performAction(Article, Title)
#25 /var/www/wiki/includes/MediaWiki.php(900): MediaWiki->performRequest()
#26 /var/www/wiki/includes/MediaWiki.php(527): MediaWiki->main()
#27 /var/www/wiki/index.php(44): MediaWiki->run()
#28 {main}

Also, some pages are blank, even though the translation is 100% complete:
https://i.zz.ee/MFg0n3SkGY.png

Notice: Page Pcback/pt-br exists but has no (visible) revisions! [Called from WikiPage::{closure} in /var/www/wiki/includes/page/WikiPage.php at line 666] in /var/www/wiki/includes/debug/MWDebug.php on line 333

Note: Updating to 1.34.1 didn't fix this.

Event Timeline

Wiki is utilizing Extension:Translate. Some translations are broken since 1.34.

Hi @Lyrixn, which exact version and branch of Extension:Translate is being used?

Hello @Aklapper, I was using the 2019/07 version previously, now I've updated to 2020/01 and the issue persists.

Previously: 2019-07-22 (0e726be)
Now: 2020-01-23 MLEB 2020.01 (2ea22f3)

It's also worth noting that I had to apply the following patch when updating to 1.34 back in December:
git pull "https://gerrit.wikimedia.org/r/mediawiki/extensions/Translate" refs/changes/81/560081/2

As Special:Translate didn't work at all. Could that patch be causing issues now? Even though I've updated to 2020-01-23 MLEB 2020.01 (2ea22f3) since then.

This looks like a support question rather than a bug report. I don't see anything Translate related here.

Possibly something similar to T249904: After upgrade from MediaWiki 1.32 to 1.33 some pages display no text (revision_comment_temp/comment).

Hmm.. I'm not exactly sure what I'm supposed to do here. What would be the recommended steps of troubleshooting this or where would it be appropriate to ask this?

Truncating didn't help. That's a real shame, as we're running a rather large wiki project with years of translations. Tagalog (language) seems to be broken and some more popular languages like Brazilian Portuguese are getting recent revision errors after being edited, i.e. blank pages.

@Lyrixn: Hmm. I'd recommend to also bring this up on https://www.mediawiki.org/wiki/Project:Support_desk and link to this task. Just in case.

I'll also include the debug log for pages where recent revision is broken (replaced some content with "xxx" to anonymize it):

[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: xxx
Start request GET /Lang:Box/es
HTTP HEADERS:
CDN-LOOP: cloudflare
CF-CONNECTING-IP: xxx
CF-REQUEST-ID: xxx
COOKIE: xxx
ACCEPT-LANGUAGE: en-US,en;q=0.9,et;q=0.8,en-GB;q=0.7
SEC-FETCH-DEST: document
SEC-FETCH-USER: ?1
SEC-FETCH-MODE: navigate
SEC-FETCH-SITE: none
ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
USER-AGENT: xxx
UPGRADE-INSECURE-REQUESTS: 1
DNT: 1
CF-VISITOR: {"scheme":"https"}
X-FORWARDED-PROTO: https
CF-RAY: xxx
X-FORWARDED-FOR: xxx
CF-IPCOUNTRY: xxx
ACCEPT-ENCODING: gzip
CONNECTION: Keep-Alive
HOST: xxx
CONTENT-LENGTH:
[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "xxx",
"UserAgent": "xxx",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}
[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at '127.0.0.1'.
User: cache miss for user 51
User: loading options for user 51 from database.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at '127.0.0.1'.
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
Title::getRestrictionTypes: applicable restrictions to [[Lang:Box/es]] are {edit,move}
[error] [ad4fd1a036608fab2e2f6f60] /Lang:Box/es ErrorException from line 333 of /var/www/wiki/includes/debug/MWDebug.php: PHP Notice: Page Lang:Box/es exists but has no (visible) revisions! [Called from WikiPage::{closure} in /var/www/wiki/includes/page/WikiPage.php at line 666]
[ContentHandler] Created handler for wikitext: WikitextContentHandler
[error] [ad4fd1a036608fab2e2f6f60] /Lang:Box/es ErrorException from line 333 of /var/www/wiki/includes/debug/MWDebug.php: PHP Notice: Page Lang:Box/es exists but has no (visible) revisions! [Called from WikiPage::{closure} in /var/www/wiki/includes/page/WikiPage.php at line 666]
User: loading options for user 51 from override cache.
[MessageCache] MessageCache using store SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb3:messages:en.
[ContentHandler] Created handler for css: CssContentHandler
[ContentHandler] Created handler for javascript: JavaScriptContentHandler
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
[caches] parser: SqlBagOStuff
[error] [ad4fd1a036608fab2e2f6f60] /Lang:Box/es ErrorException from line 333 of /var/www/wiki/includes/debug/MWDebug.php: PHP Notice: Page Lang:Box/es exists but has no (visible) revisions! [Called from WikiPage::{closure} in /var/www/wiki/includes/page/WikiPage.php at line 666]
Article::view using parser cache: yes
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
Parser cache options found.
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
ParserOutput cache found.
[error] [ad4fd1a036608fab2e2f6f60] /Lang:Box/es ErrorException from line 333 of /var/www/wiki/includes/debug/MWDebug.php: PHP Notice: Page Lang:Box/es exists but has no (visible) revisions! [Called from WikiPage::{closure} in /var/www/wiki/includes/page/WikiPage.php at line 666]
Article::view: showing parser cache contents
MediaWiki::preOutputCommit: primary transaction round committed
User::getBlockedStatus: checking...
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
[error] [ad4fd1a036608fab2e2f6f60] /Lang:Box/es ErrorException from line 333 of /var/www/wiki/includes/debug/MWDebug.php: PHP Notice: Page Lang:Box/es exists but has no (visible) revisions! [Called from WikiPage::{closure} in /var/www/wiki/includes/page/WikiPage.php at line 666]
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[Preprocessor] Cached preprocessor output (key: wikidb3:preprocess-hash:xxx:1)
[error] [ad4fd1a036608fab2e2f6f60] /Lang:Box/es ErrorException from line 333 of /var/www/wiki/includes/debug/MWDebug.php: PHP Notice: Page Lang:Box/es exists but has no (visible) revisions! [Called from WikiPage::{closure} in /var/www/wiki/includes/page/WikiPage.php at line 666]
Title::getRestrictionTypes: applicable restrictions to [[Lang:Box/es]] are {edit,move}
Title::getRestrictionTypes: applicable restrictions to [[Lang:Box/es]] are {edit,move}
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-Main_Page'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article1'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article2'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article3'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article4'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article5'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article6'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article7'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article8'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article9'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article10'
[MessageCache] MessageCache::getMsgFromNamespace: loading volatile key 'Sb-article11'
[error] [ad4fd1a036608fab2e2f6f60] /Lang:Box/es ErrorException from line 333 of /var/www/wiki/includes/debug/MWDebug.php: PHP Notice: Page Lang:Box/es exists but has no (visible) revisions! [Called from WikiPage::{closure} in /var/www/wiki/includes/page/WikiPage.php at line 666]
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb3:messages:es.
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #193 (handle id #196) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading es... local cache is empty, global cache is expired/volatile, loading from database
Title::getRestrictionTypes: applicable restrictions to [[Lang:Box/es]] are {edit,move}
Babel: cache miss for user 51
User: loading options for user 51 from database.
User: loading options for user 51 from database.
User: loading options for user 51 from database.
[error] [ad4fd1a036608fab2e2f6f60] /Lang:Box/es ErrorException from line 333 of /var/www/wiki/includes/debug/MWDebug.php: PHP Notice: Page Lang:Box/es exists but has no (visible) revisions! [Called from WikiPage::{closure} in /var/www/wiki/includes/page/WikiPage.php at line 666]
[gitinfo] Candidate cacheFile=/var/www/wiki/gitinfo.json for /var/www/wiki
[gitinfo] Cache incomplete for /var/www/wiki

Ok... so the solution was rather simple. I simply had to drop the l10n_cache table completely as it was somehow corrupted (older translations had issues, whilst newer ones didn't) and run the update script, which recreates the table.

Aklapper renamed this task from Extension:Translate Translations Broken Since 1.34 to Extension:Translate Translations Broken Since 1.34 (due to corrupted l10n_cache table).May 17 2020, 10:15 PM
Aklapper closed this task as Invalid.

Glad that you found the reason! As this seems to be due to corrupted data I'm closing this task.