* (bug 32643) action=purge with forcelinkupdate no longer crashes when ratelimit is reached
* The paraminfo module now also contains result properties for most modules
* (bug 32348) Allow descending order for list=alllinks
+* (bug 31777) Upload unknown error ``fileexists-forbidden''
=== Languages updated in 1.20 ===
'specialpage-cantexecute' => array( 'code' => 'specialpage-cantexecute', 'info' => "You don't have permission to view the results of this special page" ),
'invalidoldimage' => array( 'code' => 'invalidoldimage', 'info' => 'The oldimage parameter has invalid format' ),
'nodeleteablefile' => array( 'code' => 'nodeleteablefile', 'info' => 'No such old version of the file' ),
+ 'fileexists-forbidden' => array( 'code' => 'fileexists-forbidden', 'info' => 'A file with name "$1" already exists, and cannot be overwritten.' ),
+ 'fileexists-shared-forbidden' => array( 'code' => 'fileexists-shared-forbidden', 'info' => 'A file with name "$1" already exists in the shared file repository, and cannot be overwritten.' ),
// ApiEditPage messages
'noimageredirect-anon' => array( 'code' => 'noimageredirect-anon', 'info' => "Anonymous users can't create image redirects" ),
array( 'code' => 'stashfailed', 'info' => 'Stashing temporary file failed' ),
array( 'code' => 'internal-error', 'info' => 'An internal error occurred' ),
array( 'code' => 'asynccopyuploaddisabled', 'info' => 'Asynchronous copy uploads disabled' ),
+ array( 'fileexists-forbidden' ),
+ array( 'fileexists-shared-forbidden' ),
)
);
}
'api-error-emptypage' => 'Creating new, empty pages is not allowed.',
'api-error-fetchfileerror' => 'Internal error: Something went wrong while fetching the file.',
'api-error-file-too-large' => 'The file you submitted was too large.',
+'api-error-fileexists-forbidden' => 'A file with name "$1" already exists, and cannot be overwritten.',
+'api-error-fileexists-shared-forbidden' => 'A file with name "$1" already exists in the shared file repository, and cannot be overwritten.',
'api-error-filename-tooshort' => 'The filename is too short.',
'api-error-filetype-banned' => 'This type of file is banned.',
'api-error-filetype-missing' => 'The filename is missing an extension.',
'api-error-emptypage' => 'API error message that can be used for client side localisation of API errors.',
'api-error-fetchfileerror' => 'API error message that can be used for client side localisation of API errors.',
'api-error-file-too-large' => 'API error message that can be used for client side localisation of API errors.',
+'api-error-fileexists-forbidden' => 'API error message that can be used for client side localisation of API errors.',
+'api-error-fileexists-shared-forbidden' => 'API error message that can be used for client side localisation of API errors.',
'api-error-filename-tooshort' => 'API error message that can be used for client side localisation of API errors.',
'api-error-filetype-banned' => 'API error message that can be used for client side localisation of API errors.',
'api-error-filetype-missing' => 'The word "extension" refers to the part behind the last dot in a file name, that by convention gives a hint about the kind of data format which a files contents are in.',
'api-error-empty-file',
'api-error-emptypage',
'api-error-fetchfileerror',
+ 'api-error-fileexists-forbidden',
+ 'api-error-fileexists-shared-forbidden',
'api-error-file-too-large',
'api-error-filename-tooshort',
'api-error-filetype-banned',