Merge "Let findHooks.php find UserCreateForm/UserLoginForm"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 8 Nov 2016 04:07:52 +0000 (04:07 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 8 Nov 2016 04:07:52 +0000 (04:07 +0000)
113 files changed:
RELEASE-NOTES-1.28
autoload.php
docs/hooks.txt
includes/AjaxDispatcher.php
includes/EditPage.php
includes/Feed.php
includes/FormOptions.php
includes/MediaWikiServices.php
includes/OutputPage.php
includes/PHPVersionCheck.php
includes/Preferences.php
includes/Title.php
includes/Xml.php
includes/actions/HistoryAction.php
includes/api/ApiQuerySiteinfo.php
includes/api/i18n/es.json
includes/api/i18n/gl.json
includes/api/i18n/pt.json
includes/api/i18n/zh-hans.json
includes/cache/UserCache.php
includes/cache/localisation/LocalisationCache.php
includes/collation/IcuCollation.php
includes/deferred/SearchUpdate.php
includes/diff/WordLevelDiff.php
includes/exception/MWExceptionHandler.php
includes/filerepo/LocalRepo.php
includes/filerepo/file/OldLocalFile.php
includes/htmlform/fields/HTMLSelectAndOtherField.php
includes/htmlform/fields/HTMLSelectNamespace.php
includes/htmlform/fields/HTMLSelectOrOtherField.php
includes/http/MWHttpRequest.php
includes/installer/DatabaseInstaller.php
includes/installer/i18n/bn.json
includes/installer/i18n/lb.json
includes/installer/i18n/pl.json
includes/installer/i18n/pt.json
includes/interwiki/InterwikiLookupAdapter.php
includes/libs/CSSMin.php
includes/libs/filebackend/SwiftFileBackend.php
includes/libs/mime/XmlTypeCheck.php
includes/libs/virtualrest/ParsoidVirtualRESTService.php
includes/libs/virtualrest/RestbaseVirtualRESTService.php
includes/media/FormatMetadata.php
includes/page/ImagePage.php
includes/parser/LinkHolderArray.php
includes/parser/ParserOptions.php
includes/resourceloader/ResourceLoader.php
includes/search/SearchPostgres.php
includes/skins/BaseTemplate.php
includes/skins/SkinTemplate.php
includes/specialpage/LoginSignupSpecialPage.php
includes/specials/SpecialSearch.php
includes/user/User.php
languages/classes/LanguageSr.php
languages/classes/LanguageZh.php
languages/i18n/ang.json
languages/i18n/arn.json
languages/i18n/ast.json
languages/i18n/bgn.json
languages/i18n/bn.json
languages/i18n/de.json
languages/i18n/en.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/gl.json
languages/i18n/he.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/lb.json
languages/i18n/lt.json
languages/i18n/mk.json
languages/i18n/mt.json
languages/i18n/nan.json
languages/i18n/ne.json
languages/i18n/nn.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ru.json
languages/i18n/sgs.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sv.json
languages/i18n/szl.json
languages/i18n/ur.json
languages/i18n/wo.json
languages/i18n/zh-hans.json
maintenance/Maintenance.php
maintenance/checkComposerLockUpToDate.php
maintenance/createCommonPasswordCdb.php
resources/src/mediawiki.less/mediawiki.ui/variables.less
tests/parser/TestFileReader.php
tests/phpunit/includes/GitInfoTest.php
tests/phpunit/includes/HtmlTest.php
tests/phpunit/includes/LinkFilterTest.php
tests/phpunit/includes/PagePropsTest.php
tests/phpunit/includes/TemplateCategoriesTest.php
tests/phpunit/includes/api/ApiContinuationManagerTest.php
tests/phpunit/includes/api/ApiResultTest.php
tests/phpunit/includes/api/ApiRevisionDeleteTest.php
tests/phpunit/includes/auth/AuthManagerTest.php
tests/phpunit/includes/auth/EmailNotificationSecondaryAuthenticationProviderTest.php
tests/phpunit/includes/auth/LocalPasswordPrimaryAuthenticationProviderTest.php
tests/phpunit/includes/auth/TemporaryPasswordPrimaryAuthenticationProviderTest.php
tests/phpunit/includes/auth/UserDataAuthenticationRequestTest.php
tests/phpunit/includes/exception/MWExceptionTest.php
tests/phpunit/includes/linker/LinkRendererTest.php
tests/phpunit/includes/media/ExifBitmapTest.php
tests/phpunit/includes/session/SessionProviderTest.php
tests/phpunit/includes/session/SessionTest.php
tests/phpunit/includes/user/UserTest.php
tests/phpunit/structure/ResourcesTest.php

index e04bb17..b5dc3f9 100644 (file)
@@ -40,6 +40,8 @@ production.
   away from. If you depend upon magic link functionality, it is requested that you comment
   on <https://www.mediawiki.org/wiki/Requests_for_comment/Future_of_magic_links> and
   explain your use case(s).
+* New config variable $wgCSPFalsePositiveUrls to control what URLs to ignore
+  in upcoming Content-Security-Policy feature's reporting.
 
 === New features in 1.28 ===
 * User::isBot() method for checking if an account is a bot role account.
index bbf4bd0..30ef985 100644 (file)
@@ -1010,6 +1010,7 @@ $wgAutoloadLocalClasses = [
        'OrphanStats' => __DIR__ . '/maintenance/storage/orphanStats.php',
        'Orphans' => __DIR__ . '/maintenance/orphans.php',
        'OutputPage' => __DIR__ . '/includes/OutputPage.php',
+       'PHPVersionCheck' => __DIR__ . '/includes/PHPVersionCheck.php',
        'PNGHandler' => __DIR__ . '/includes/media/PNG.php',
        'PNGMetadataExtractor' => __DIR__ . '/includes/media/PNGMetadataExtractor.php',
        'PPCustomFrame_DOM' => __DIR__ . '/includes/parser/Preprocessor_DOM.php',
index ea662cc..e541f34 100644 (file)
@@ -1926,8 +1926,8 @@ $code: language of the preferred translations
 in various places to allow extensions to define the effective language
 links for a page.
 $title: The page's Title.
-&$links: Associative array mapping language codes to prefixed links of the
-  form "language:title".
+&$links: Array with elements of the form "language:title" in the order
+  that they will be output.
 &$linkFlags: Associative array mapping prefixed links to arrays of flags.
   Currently unused, but planned to provide support for marking individual
   language links in the UI, e.g. for featured articles.
@@ -2487,12 +2487,24 @@ cache or return false to not use it.
 &$parser: Parser object
 &$varCache: variable cache (array)
 
-'ParserLimitReport': DEPRECATED! Use ParserLimitReportPrepare instead.
+'ParserLimitReport': DEPRECATED! Use ParserLimitReportPrepare and
+ParserLimitReportFormat instead.
 Called at the end of Parser:parse() when the parser will
 include comments about size of the text parsed.
 $parser: Parser object
 &$limitReport: text that will be included (without comment tags)
 
+'ParserLimitReportFormat': Called for each row in the parser limit report that
+needs formatting. If nothing handles this hook, the default is to use "$key" to
+get the label, and "$key-value" or "$key-value-text"/"$key-value-html" to
+format the value.
+$key: Key for the limit report item (string)
+&$value: Value of the limit report item
+&$report: String onto which to append the data
+$isHTML: If true, $report is an HTML table with two columns; if false, it's
+  text intended for display in a monospaced font.
+$localize: If false, $report should be output in English.
+
 'ParserLimitReportPrepare': Called at the end of Parser:parse() when the parser
 will include comments about size of the text parsed. Hooks should use
 $output->setLimitReportData() to populate data. Functions for this hook should
@@ -2521,10 +2533,6 @@ $showEditLinks: boolean describing whether this section has an edit link
 &$globals: Array with all the globals which should be set for parser tests.
   The arrays keys serve as the globals names, its values are the globals values.
 
-'ParserTestParser': Called when creating a new instance of Parser in
-tests/parser/parserTest.inc.
-&$parser: Parser object created
-
 'ParserTestTables': Alter the list of tables to duplicate when parser tests are
 run. Use when page save hooks require the presence of custom tables to ensure
 that tests continue to run properly.
index 9142238..d444a27 100644 (file)
@@ -90,7 +90,6 @@ class AjaxDispatcher {
                                # Or we could throw an exception:
                                # throw new MWException( __METHOD__ . ' called without any data (mode empty).' );
                }
-
        }
 
        /**
@@ -156,6 +155,5 @@ class AjaxDispatcher {
                                }
                        }
                }
-
        }
 }
index 0f27e78..9c5c91a 100644 (file)
@@ -1044,7 +1044,6 @@ class EditPage {
 
                // Allow extensions to modify form data
                Hooks::run( 'EditPage::importFormData', [ $this, $request ] );
-
        }
 
        /**
@@ -2237,7 +2236,6 @@ class EditPage {
         * @return bool
         */
        private function mergeChangesIntoContent( &$editContent ) {
-
                $db = wfGetDB( DB_MASTER );
 
                // This is the revision the editor started from
@@ -2813,7 +2811,6 @@ class EditPage {
                if ( !$wgUser->getOption( 'previewontop' ) ) {
                        $this->displayPreviewArea( $previewOutput, false );
                }
-
        }
 
        /**
@@ -2839,7 +2836,6 @@ class EditPage {
                return Html::rawElement( 'div', [ 'class' => 'templatesUsed' ],
                        $templateListFormatter->format( $templates, $type )
                );
-
        }
 
        /**
@@ -4401,6 +4397,9 @@ HTML
                return strtr( $result, [ "&#x0" => "&#x" ] );
        }
 
+       /**
+        * @since 1.29
+        */
        protected function addEditNotices() {
                global $wgOut;
 
@@ -4419,6 +4418,9 @@ HTML
                }
        }
 
+       /**
+        * @since 1.29
+        */
        protected function addTalkPageText() {
                global $wgOut;
 
index 8bfe1c7..189fd9f 100644 (file)
@@ -236,7 +236,6 @@ abstract class ChannelFeed extends FeedItem {
                        $wgOut->addVaryHeader( 'X-Forwarded-Proto' );
                }
                $wgOut->sendCacheControl();
-
        }
 
        /**
index 826f3bb..e558944 100644 (file)
@@ -53,7 +53,7 @@ class FormOptions implements ArrayAccess {
         */
        const INTNULL = 3;
        /** Array type, maps guessType() to WebRequest::getArray()
-        * @since 1.28 */
+        * @since 1.29 */
        const ARR = 5;
        /* @} */
 
index f882d74..a0c00c6 100644 (file)
@@ -192,7 +192,6 @@ class MediaWikiServices extends ServiceContainer {
                } else {
                        $oldInstance->destroy();
                }
-
        }
 
        /**
@@ -567,7 +566,7 @@ class MediaWikiServices extends ServiceContainer {
        }
 
        /**
-        * @since 1.28
+        * @since 1.29
         * @return Parser
         */
        public function getParser() {
index bf59c9a..12df3a5 100644 (file)
@@ -1214,8 +1214,8 @@ class OutputPage extends ContextSource {
        /**
         * Add new language links
         *
-        * @param array $newLinkArray Associative array mapping language code to the page
-        *                      name
+        * @param string[] $newLinkArray Array of interwiki-prefixed (non DB key) titles
+        *                               (e.g. 'fr:Test page')
         */
        public function addLanguageLinks( array $newLinkArray ) {
                $this->mLanguageLinks += $newLinkArray;
@@ -1224,8 +1224,8 @@ class OutputPage extends ContextSource {
        /**
         * Reset the language links and add new language links
         *
-        * @param array $newLinkArray Associative array mapping language code to the page
-        *                      name
+        * @param string[] $newLinkArray Array of interwiki-prefixed (non DB key) titles
+        *                               (e.g. 'fr:Test page')
         */
        public function setLanguageLinks( array $newLinkArray ) {
                $this->mLanguageLinks = $newLinkArray;
@@ -1234,7 +1234,7 @@ class OutputPage extends ContextSource {
        /**
         * Get the list of language links
         *
-        * @return array Array of Interwiki Prefixed (non DB key) Titles (e.g. 'fr:Test page')
+        * @return string[] Array of interwiki-prefixed (non DB key) titles (e.g. 'fr:Test page')
         */
        public function getLanguageLinks() {
                return $this->mLanguageLinks;
@@ -1713,7 +1713,6 @@ class OutputPage extends ContextSource {
                $popts->setTidy( $oldTidy );
 
                $this->addParserOutput( $parserOutput );
-
        }
 
        /**
index 656ba43..e6e96c7 100644 (file)
@@ -1,4 +1,7 @@
 <?php
+// @codingStandardsIgnoreFile Generic.Arrays.DisallowLongArraySyntax
+// @codingStandardsIgnoreFile Generic.Files.LineLength
+// @codingStandardsIgnoreFile MediaWiki.Usage.DirUsage.FunctionFound
 /**
  * Check PHP Version, as well as for composer dependencies in entry points,
  * and display something vaguely comprehensible in the event of a totally
  *
  * @file
  */
-
-/**
- * Check php version and that external dependencies are installed, and
- * display an informative error if either condition is not satisfied.
- *
- * @note Since we can't rely on anything, the minimum PHP versions and MW current
- * version are hardcoded here
- */
-function wfEntryPointCheck( $entryPoint ) {
-       $mwVersion = '1.29';
-       $minimumVersionPHP = '5.5.9';
-       $phpVersion = PHP_VERSION;
-
-       if ( !function_exists( 'version_compare' )
-               || version_compare( $phpVersion, $minimumVersionPHP ) < 0
-       ) {
-               wfPHPVersionError( $entryPoint, $mwVersion, $minimumVersionPHP, $phpVersion );
-       }
-
-       // @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
-       if ( !file_exists( dirname( __FILE__ ) . '/../vendor/autoload.php' ) ) {
-               // @codingStandardsIgnoreEnd
-               wfMissingVendorError( $entryPoint, $mwVersion );
-       }
-
-       // List of functions and their associated PHP extension to check for
-       // @codingStandardsIgnoreStart Generic.Arrays.DisallowLongArraySyntax
-       $extensions = array(
+class PHPVersionCheck {
+       /* @var string The number of the MediaWiki version used */
+       var $mwVersion = '1.29';
+       /* @var string The minimum php version for MediaWiki to run */
+       var $minimumVersionPHP = '5.5.9';
+       var $functionsExtensionsMapping = array(
                'mb_substr'   => 'mbstring',
                'utf8_encode' => 'xml',
                'ctype_digit' => 'ctype',
                'json_decode' => 'json',
                'iconv'       => 'iconv',
        );
-       // List of extensions we're missing
-       $missingExtensions = array();
-       // @codingStandardsIgnoreEnd
 
-       foreach ( $extensions as $function => $extension ) {
-               if ( !function_exists( $function ) ) {
-                       $missingExtensions[] = $extension;
+       /**
+        * @var string Which entry point we are protecting. One of:
+        *   - index.php
+        *   - load.php
+        *   - api.php
+        *   - mw-config/index.php
+        *   - cli
+        */
+       var $entryPoint = null;
+
+       /**
+        * @param string $entryPoint Which entry point we are protecting. One of:
+        *   - index.php
+        *   - load.php
+        *   - api.php
+        *   - mw-config/index.php
+        *   - cli
+        * @return $this
+        */
+       function setEntryPoint( $entryPoint ) {
+               $this->entryPoint = $entryPoint;
+       }
+
+       /**
+        * Returns the version of the installed php implementation.
+        *
+        * @return string
+        */
+       function getPHPImplVersion() {
+               return PHP_VERSION;
+       }
+
+       /**
+        * Displays an error, if the installed php version does not meet the minimum requirement.
+        *
+        * @return $this
+        */
+       function checkRequiredPHPVersion() {
+               if ( !function_exists( 'version_compare' )
+                    || version_compare( $this->getPHPImplVersion(), $this->minimumVersionPHP ) < 0
+               ) {
+                       $shortText = "MediaWiki $this->mwVersion requires at least PHP version"
+                                    . " $this->minimumVersionPHP, you are using PHP {$this->getPHPImplVersion()}.";
+
+                       $longText = "Error: You might be using on older PHP version. \n"
+                                   . "MediaWiki $this->mwVersion needs PHP $this->minimumVersionPHP or higher.\n\n"
+                                   . "Check if you have a newer php executable with a different name, "
+                                   . "such as php5.\n\n";
+
+                       $longHtml = <<<HTML
+                       Please consider <a href="http://www.php.net/downloads.php">upgrading your copy of PHP</a>.
+                       PHP versions less than 5.5.0 are no longer supported by the PHP Group and will not receive
+                       security or bugfix updates.
+               </p>
+               <p>
+                       If for some reason you are unable to upgrade your PHP version, you will need to
+                       <a href="https://www.mediawiki.org/wiki/Download">download</a> an older version
+                       of MediaWiki from our website.  See our
+                       <a href="https://www.mediawiki.org/wiki/Compatibility#PHP">compatibility page</a>
+                       for details of which versions are compatible with prior versions of PHP.
+HTML;
+                       $this->triggerError( 'Supported PHP versions', $shortText, $longText, $longHtml );
                }
        }
 
-       if ( $missingExtensions ) {
-               wfMissingExtensions( $entryPoint, $mwVersion, $missingExtensions );
+       /**
+        * Displays an error, if the vendor/autoload.php file could not be found.
+        *
+        * @return $this
+        */
+       function checkVendorExistence() {
+               if ( !file_exists( dirname( __FILE__ ) . '/../vendor/autoload.php' ) ) {
+                       $shortText = "Installing some external dependencies (e.g. via composer) is required.";
+
+                       $longText = "Error: You are missing some external dependencies. \n"
+                                   . "MediaWiki now also has some external dependencies that need to be installed\n"
+                                   . "via composer or from a separate git repo. Please see\n"
+                                   . "https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries\n"
+                                   . "for help on installing the required components.";
+
+                       $longHtml = <<<HTML
+               MediaWiki now also has some external dependencies that need to be installed via
+               composer or from a separate git repo. Please see
+               <a href="https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries">mediawiki.org</a>
+               for help on installing the required components.
+HTML;
+
+                       $this->triggerError( 'External dependencies', $shortText, $longText, $longHtml );
+               }
        }
-}
 
-/**
- * Display something vaguely comprehensible in the event of a totally unrecoverable error.
- * Does not assume access to *anything*; no globals, no autoloader, no database, no localisation.
- * Safe for PHP4 (and putting this here means that WebStart.php and GlobalSettings.php
- * no longer need to be).
- *
- * Calling this function kills execution immediately.
- *
- * @param string $type Which entry point we are protecting. One of:
- *   - index.php
- *   - load.php
- *   - api.php
- *   - mw-config/index.php
- *   - cli
- * @param string $mwVersion The number of the MediaWiki version used
- * @param string $title HTML code to be put within an <h2> tag
- * @param string $shortText
- * @param string $longText
- * @param string $longHtml
- */
-function wfGenericError( $type, $mwVersion, $title, $shortText, $longText, $longHtml ) {
-       $protocol = isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
+       /**
+        * Displays an error, if a PHP extension does not exist.
+        *
+        * @return $this
+        */
+       function checkExtensionExistence() {
+               $missingExtensions = array();
+               foreach ( $this->functionsExtensionsMapping as $function => $extension ) {
+                       if ( !function_exists( $function ) ) {
+                               $missingExtensions[] = $extension;
+                       }
+               }
+
+               if ( $missingExtensions ) {
+                       $shortText = "Installing some PHP extensions is required.";
+
+                       $missingExtText = '';
+                       $missingExtHtml = '';
+                       $baseUrl = 'https://secure.php.net';
+                       foreach ( $missingExtensions as $ext ) {
+                               $missingExtText .= " * $ext <$baseUrl/$ext>\n";
+                               $missingExtHtml .= "<li><b>$ext</b> "
+                                                  . "(<a href=\"$baseUrl/$ext\">more information</a>)</li>";
+                       }
+
+                       $cliText = "Error: Missing one or more required components of PHP.\n"
+                                  . "You are missing a required extension to PHP that MediaWiki needs.\n"
+                                  . "Please install:\n" . $missingExtText;
+
+                       $longHtml = <<<HTML
+               You are missing a required extension to PHP that MediaWiki
+               requires to run. Please install:
+               <ul>
+               $missingExtHtml
+               </ul>
+HTML;
+
+                       $this->triggerError( 'Required components', $shortText, $cliText, $longHtml );
+               }
+       }
+
+       /**
+        * Output headers that prevents error pages to be cached.
+        */
+       function outputHTMLHeader() {
+               $protocol = isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
 
-       if ( $type == 'cli' ) {
-               $finalOutput = $longText;
-       } else {
                header( "$protocol 500 MediaWiki configuration Error" );
                // Don't cache error pages!  They cause no end of trouble...
                header( 'Cache-control: none' );
                header( 'Pragma: no-cache' );
+       }
 
-               if ( $type == 'index.php' || $type == 'mw-config/index.php' ) {
-                       $pathinfo = pathinfo( $_SERVER['SCRIPT_NAME'] );
-                       if ( $type == 'mw-config/index.php' ) {
-                               $dirname = dirname( $pathinfo['dirname'] );
-                       } else {
-                               $dirname = $pathinfo['dirname'];
-                       }
-                       $encLogo = htmlspecialchars(
-                               str_replace( '//', '/', $dirname . '/' ) .
-                               'resources/assets/mediawiki.png'
-                       );
-                       $shortHtml = htmlspecialchars( $shortText );
+       /**
+        * Returns an error page, which is suitable for output to the end user via a web browser.
+        *
+        * @param $title
+        * @param $longHtml
+        * @param $shortText
+        * @return string
+        */
+       function getIndexErrorOutput( $title, $longHtml, $shortText ) {
+               $pathinfo = pathinfo( $_SERVER['SCRIPT_NAME'] );
+               if ( $this->entryPoint == 'mw-config/index.php' ) {
+                       $dirname = dirname( $pathinfo['dirname'] );
+               } else {
+                       $dirname = $pathinfo['dirname'];
+               }
+               $encLogo =
+                       htmlspecialchars( str_replace( '//', '/', $dirname . '/' ) .
+                                         'resources/assets/mediawiki.png' );
+               $shortHtml = htmlspecialchars( $shortText );
 
-                       header( 'Content-type: text/html; charset=UTF-8' );
+               header( 'Content-type: text/html; charset=UTF-8' );
 
-                       $finalOutput = <<<HTML
+               $finalOutput = <<<HTML
 <!DOCTYPE html>
 <html lang="en" dir="ltr">
        <head>
                <meta charset="UTF-8" />
-               <title>MediaWiki {$mwVersion}</title>
+               <title>MediaWiki {$this->mwVersion}</title>
                <style media='screen'>
                        body {
                                color: #000;
@@ -144,7 +231,7 @@ function wfGenericError( $type, $mwVersion, $title, $shortText, $longText, $long
        </head>
        <body>
                <img src="{$encLogo}" alt='The MediaWiki logo' />
-               <h1>MediaWiki {$mwVersion} internal error</h1>
+               <h1>MediaWiki {$this->mwVersion} internal error</h1>
                <div class='error'>
                <p>
                        {$shortHtml}
@@ -157,105 +244,59 @@ function wfGenericError( $type, $mwVersion, $title, $shortText, $longText, $long
        </body>
 </html>
 HTML;
-               // Handle everything that's not index.php
-               } else {
-                       // So nothing thinks this is JS or CSS
-                       $finalOutput = ( $type == 'load.php' ) ? "/* $shortText */" : $shortText;
-               }
-       }
-       echo "$finalOutput\n";
-       die( 1 );
-}
-
-/**
- * Display an error for the minimum PHP version requirement not being satisfied.
- *
- * @param string $type See wfGenericError
- * @param string $mwVersion See wfGenericError
- * @param string $minimumVersionPHP The minimum PHP version supported by MediaWiki
- * @param string $phpVersion The current PHP version
- */
-function wfPHPVersionError( $type, $mwVersion, $minimumVersionPHP, $phpVersion ) {
-       $shortText = "MediaWiki $mwVersion requires at least "
-               . "PHP version $minimumVersionPHP, you are using PHP $phpVersion.";
-
-       $longText = "Error: You might be using on older PHP version. \n"
-               . "MediaWiki $mwVersion needs PHP $minimumVersionPHP or higher.\n\n"
-               . "Check if you have a newer php executable with a different name, such as php5.\n\n";
-
-       $longHtml = <<<HTML
-                       Please consider <a href="http://www.php.net/downloads.php">upgrading your copy of PHP</a>.
-                       PHP versions less than 5.5.0 are no longer supported by the PHP Group and will not receive
-                       security or bugfix updates.
-               </p>
-               <p>
-                       If for some reason you are unable to upgrade your PHP version, you will need to
-                       <a href="https://www.mediawiki.org/wiki/Download">download</a> an older version
-                       of MediaWiki from our website.  See our
-                       <a href="https://www.mediawiki.org/wiki/Compatibility#PHP">compatibility page</a>
-                       for details of which versions are compatible with prior versions of PHP.
-HTML;
-       wfGenericError( $type, $mwVersion, 'Supported PHP versions', $shortText, $longText, $longHtml );
-}
-
-/**
- * Display an error for the vendor/autoload.php file not being found.
- *
- * @param string $type See wfGenericError
- * @param string $mwVersion See wfGenericError
- */
-function wfMissingVendorError( $type, $mwVersion ) {
-       $shortText = "Installing some external dependencies (e.g. via composer) is required.";
 
-       $longText = "Error: You are missing some external dependencies. \n"
-               . "MediaWiki now also has some external dependencies that need to be installed\n"
-               . "via composer or from a separate git repo. Please see\n"
-               . "https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries\n"
-               . "for help on installing the required components.";
+               return $finalOutput;
+       }
 
-       // @codingStandardsIgnoreStart Generic.Files.LineLength
-       $longHtml = <<<HTML
-               MediaWiki now also has some external dependencies that need to be installed via
-               composer or from a separate git repo. Please see
-               <a href="https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries">mediawiki.org</a>
-               for help on installing the required components.
-HTML;
-       // @codingStandardsIgnoreEnd
+       /**
+        * Display something vaguely comprehensible in the event of a totally unrecoverable error.
+        * Does not assume access to *anything*; no globals, no autoloader, no database, no localisation.
+        * Safe for PHP4 (and putting this here means that WebStart.php and GlobalSettings.php
+        * no longer need to be).
+        *
+        * Calling this function kills execution immediately.
+        *
+        * @param string $title HTML code to be put within an <h2> tag
+        * @param string $shortText
+        * @param string $longText
+        * @param string $longHtml
+        */
+       function triggerError( $title, $shortText, $longText, $longHtml ) {
+               switch ( $this->entryPoint ) {
+                       case 'cli':
+                               $finalOutput = $longText;
+                               break;
+                       case 'index.php':
+                       case 'mw-config/index.php':
+                               $this->outputHTMLHeader();
+                               $finalOutput = $this->getIndexErrorOutput( $title, $longHtml, $shortText );
+                               break;
+                       case 'load.php':
+                               $this->outputHTMLHeader();
+                               $finalOutput = "/* $shortText */";
+                               break;
+                       default:
+                               $this->outputHTMLHeader();
+                               // Handle everything that's not index.php
+                               $finalOutput = $shortText;
+               }
 
-       wfGenericError( $type, $mwVersion, 'External dependencies', $shortText, $longText, $longHtml );
+               echo "$finalOutput\n";
+               die( 1 );
+       }
 }
 
 /**
- * Display an error for a PHP extension not existing.
+ * Check php version and that external dependencies are installed, and
+ * display an informative error if either condition is not satisfied.
  *
- * @param string $type See wfGenericError
- * @param string $mwVersion See wfGenericError
- * @param array $missingExts The extensions we're missing
+ * @note Since we can't rely on anything, the minimum PHP versions and MW current
+ * version are hardcoded here
  */
-function wfMissingExtensions( $type, $mwVersion, $missingExts ) {
-       $shortText = "Installing some PHP extensions is required.";
-
-       $missingExtText = '';
-       $missingExtHtml = '';
-       $baseUrl = 'https://secure.php.net';
-       foreach ( $missingExts as $ext ) {
-               $missingExtText .= " * $ext <$baseUrl/$ext>\n";
-               $missingExtHtml .= "<li><b>$ext</b> "
-                       . "(<a href=\"$baseUrl/$ext\">more information</a>)</li>";
-       }
-
-       $cliText = "Error: Missing one or more required components of PHP.\n"
-               . "You are missing a required extension to PHP that MediaWiki needs.\n"
-               . "Please install:\n" . $missingExtText;
-
-       $longHtml = <<<HTML
-               You are missing a required extension to PHP that MediaWiki
-               requires to run. Please install:
-               <ul>
-               $missingExtHtml
-               </ul>
-HTML;
-
-       wfGenericError( $type, $mwVersion, 'Required components', $shortText,
-               $cliText, $longHtml );
+function wfEntryPointCheck( $entryPoint ) {
+       $phpVersionCheck = new PHPVersionCheck();
+       $phpVersionCheck->setEntryPoint( $entryPoint );
+       $phpVersionCheck->checkRequiredPHPVersion();
+       $phpVersionCheck->checkVendorExistence();
+       $phpVersionCheck->checkExtensionExistence();
 }
index 9f8c06b..d86b19a 100644 (file)
@@ -861,7 +861,6 @@ class Preferences {
                        'section' => 'editing/preview',
                        'label-message' => 'tog-uselivepreview',
                ];
-
        }
 
        /**
@@ -1614,7 +1613,6 @@ class PreferencesForm extends HTMLForm {
         * @return string
         */
        function getButtons() {
-
                $attrs = [ 'id' => 'mw-prefs-restoreprefs' ];
 
                if ( !$this->getModifiedUser()->isAllowedAny( 'editmyprivateinfo', 'editmyoptions' ) ) {
index 213572b..3c51bae 100644 (file)
@@ -1412,7 +1412,6 @@ class Title implements LinkTarget {
                        $fragment,
                        $this->getInterwiki()
                );
-
        }
 
        /**
@@ -2926,7 +2925,6 @@ class Title implements LinkTarget {
 
                        # Cycle through all the restrictions.
                        foreach ( $rows as $row ) {
-
                                // Don't take care of restrictions types that aren't allowed
                                if ( !in_array( $row->pr_type, $restrictionTypes ) ) {
                                        continue;
@@ -4600,7 +4598,6 @@ class Title implements LinkTarget {
                        : $wgExemptFromUserRobotsControl;
 
                return !in_array( $this->mNamespace, $bannedNamespaces );
-
        }
 
        /**
index b1bd098..4c6b071 100644 (file)
@@ -238,7 +238,6 @@ class Xml {
                        Xml::label( $msg->text(), $attrs['id'] ),
                        Xml::tags( 'select', $attrs, $options )
                ];
-
        }
 
        /**
index 1e1bb39..c1763fa 100644 (file)
@@ -218,7 +218,6 @@ class HistoryAction extends FormlessAction {
                        $pager->getNavigationBar()
                );
                $out->preventClickjacking( $pager->getPreventClickjacking() );
-
        }
 
        /**
index 99f722d..0bb7ff8 100644 (file)
@@ -576,7 +576,6 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                ApiResult::setIndexedTagName( $data, 'library' );
 
                return $this->getResult()->addValue( 'query', $property, $data );
-
        }
 
        protected function appendExtensions( $property ) {
index 2351733..7442fd7 100644 (file)
@@ -23,7 +23,8 @@
                        "2axterix2",
                        "Dgstranz",
                        "Copper12",
-                       "Irus"
+                       "Irus",
+                       "Hamilton Abreu"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentación]]\n* [[mw:API:FAQ|Preguntas frecuentes]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de correo]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anuncios de la API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Errores y peticiones]\n</div>\n<strong>Estado:</strong> Todas las características que se muestran en esta página deberían funcionar, pero la API aún se encuentra en desarrollo activo y puede cambiar en cualquier momento. Suscríbete a [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la lista de correo de mediawiki-api-announce] para estar al día de las actualizaciones.\n\n<strong>Solicitudes erróneas:</strong> Cuando se envían solicitudes erróneas a la API, se envía una cabecera HTTP con la clave \"MediaWiki-API-Error\". El valor de la cabecera y el código de error devuelto tomarán el mismo valor. Para más información, véase [[mw:API:Errors_and_warnings|API: Errores y advertencias]].\n\n<strong>Pruebas:</strong> para facilitar las pruebas de solicitudes a la API, consulta [[Special:ApiSandbox]].",
index 6d90fb5..ac025e4 100644 (file)
@@ -10,7 +10,8 @@
                        "Toliño",
                        "Umherirrender",
                        "Amire80",
-                       "Macofe"
+                       "Macofe",
+                       "Hamilton Abreu"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentación]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de discusión]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anuncios da API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Erros e solicitudes]\n</div>\n<strong>Estado:</strong> Tódalas funcionalidades mostradas nesta páxina deberían estar funcionanado, pero a API aínda está desenrolo, e pode ser modificada en calquera momento. Apúntese na [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ lista de discusión mediawiki-api-announce] para estar informado acerca das actualizacións.\n\n<strong>Solicitudes incorrectas:</strong> Cando se envían solicitudes incorrectas á API, envíase unha cabeceira HTTP coa chave \"MediaWiki-API-Error\" e, a seguir, tanto o valor da cabeceira como o código de erro retornado serán definidos co mesmo valor. Para máis información, consulte [[mw:API:Errors_and_warnings|API: Erros e avisos]].\n\n<strong>Test:</strong> Para facilitar as probas das peticións da API, consulte [[Special:ApiSandbox]].",
        "apihelp-query+allfileusages-param-dir": "Dirección na cal listar.",
        "apihelp-query+allfileusages-example-B": "Lista títulos de ficheiro, incluíndo os   eliminados, cos IDs de páxina dos que proveñen, comezando en <kbd>B</kbd>.",
        "apihelp-query+allfileusages-example-unique": "Listar títulos únicos de ficheiros.",
-       "apihelp-query+allfileusages-example-unique-generator": "Obter todos os títulos de ficheiro, marcando os eliminados.",
+       "apihelp-query+allfileusages-example-unique-generator": "Obter todos os títulos de ficheiro, marcando os que faltan.",
        "apihelp-query+allfileusages-example-generator": "Obtén as páxinas que conteñen os ficheiros.",
        "apihelp-query+allimages-description": "Enumerar tódalas imaxes secuencialmente.",
        "apihelp-query+allimages-param-sort": "Propiedade pola que ordenar.",
index 2f0c5ae..96d6566 100644 (file)
        "apihelp-edit-description": "Criar e editar páginas.",
        "apihelp-edit-param-title": "Título da página a ser editada. Não pode ser usado em conjunto com <var>$1pageid</var>.",
        "apihelp-edit-param-pageid": "Identificador da página a ser editada. Não pode ser usado em conjunto com <var>$1title</var>.",
+       "apihelp-edit-param-section": "Número da secção. <kbd>0</kbd> para a secção de topo, <kbd>new</kbd> para uma secção nova.",
        "apihelp-edit-param-sectiontitle": "Título para uma nova secção.",
        "apihelp-edit-param-text": "Conteúdo da página.",
+       "apihelp-edit-param-summary": "Resumo da edição. Também é o título da secção quando $1section=new e $1sectiontitle não está definido.",
+       "apihelp-edit-param-tags": "Etiquetas de modificação a aplicar à revisão.",
        "apihelp-edit-param-minor": "Edição menor.",
-       "apihelp-edit-param-bot": "Marcar esta edição como robô.",
+       "apihelp-edit-param-notminor": "Edição não menor.",
+       "apihelp-edit-param-bot": "Marcar esta edição como edição de robô.",
+       "apihelp-edit-param-basetimestamp": "Data e hora da revisão de base, usada para detetar conflitos de edição. Pode ser obtida usando [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-starttimestamp": "Data e hora de início do processo de edição, usada para detetar conflitos de edição. Pode-se obter um valor apropriado usando <var>[[Special:ApiHelp/main|curtimestamp]]</var> ao iniciar o processo de edição (por exemplo, ao carregar o conteúdo da página para edição).",
+       "apihelp-edit-param-recreate": "Ignorar todos os erros acerca da página ter sido eliminada entretanto.",
        "apihelp-edit-param-createonly": "Não editar a página se ela já existe.",
        "apihelp-edit-param-nocreate": "Gerar um erro se a página não existe.",
        "apihelp-edit-param-watch": "Adicionar a página às páginas vigiadas do utilizador atual.",
        "apihelp-expandtemplates-example-simple": "Expandir o texto em notação wiki <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
        "apihelp-feedcontributions-description": "Devolve um ''feed'' das contribuições do utilizador.",
        "apihelp-feedcontributions-param-feedformat": "O formato do ''feed''.",
+       "apihelp-feedcontributions-param-user": "Os utilizadores dos quais serão obtidas as contribuições.",
        "apihelp-feedcontributions-param-namespace": "O espaço nominal pelo qual as contribuições serão filtradas.",
-       "apihelp-feedcontributions-param-deletedonly": "Mostrar apenas contribuições eliminadas.",
+       "apihelp-feedcontributions-param-year": "Desde o ano.",
+       "apihelp-feedcontributions-param-month": "Desde o mês.",
+       "apihelp-feedcontributions-param-tagfilter": "Filtrar as contribuições que têm estas etiquetas.",
+       "apihelp-feedcontributions-param-deletedonly": "Mostrar apenas as contribuições eliminadas.",
        "apihelp-feedcontributions-param-toponly": "Mostrar apenas as edições mais recentes.",
+       "apihelp-feedcontributions-param-newonly": "Mostrar apenas as edições que são criações de páginas.",
        "apihelp-feedcontributions-param-hideminor": "Ocultar edições menores.",
        "apihelp-feedcontributions-param-showsizediff": "Mostrar diferença de tamanho entre edições.",
+       "apihelp-feedcontributions-example-simple": "Devolver as contribuições do utilizador <kbd>Example</kbd>.",
        "apihelp-feedrecentchanges-description": "Devolve um ''feed'' das mudanças recentes.",
        "apihelp-feedrecentchanges-param-feedformat": "O formato do ''feed''.",
-       "apihelp-feedrecentchanges-param-limit": "Número máximo de resultados a apresentar.",
+       "apihelp-feedrecentchanges-param-namespace": "O espaço nominal ao qual os resultados serão limitados.",
+       "apihelp-feedrecentchanges-param-invert": "Todos os espaços nominais exceto o selecionado.",
+       "apihelp-feedrecentchanges-param-associated": "Incluir o espaço nominal associado (de discussão ou principal).",
+       "apihelp-feedrecentchanges-param-days": "Dias aos quais limitar os resultados.",
+       "apihelp-feedrecentchanges-param-limit": "O número máximo de resultados a serem devolvidos.",
        "apihelp-feedrecentchanges-param-from": "Mostrar alterações desde então.",
        "apihelp-feedrecentchanges-param-hideminor": "Ocultar edições menores.",
-       "apihelp-feedrecentchanges-param-hidebots": "Ocultar alterações feitas por robôs.",
-       "apihelp-feedrecentchanges-param-hideanons": "Ocultar alterações feitas por utilizadores anónimos.",
-       "apihelp-feedrecentchanges-param-hideliu": "Ocultar alterações feitas por utilizadores registados.",
-       "apihelp-feedrecentchanges-param-hidepatrolled": "Ocultar alterações patrulhadas.",
-       "apihelp-feedrecentchanges-param-hidemyself": "Ocultar alterações feitas pelo utilizador atual.",
-       "apihelp-feedrecentchanges-param-hidecategorization": "Ocultar alterações da pertença a categorias.",
+       "apihelp-feedrecentchanges-param-hidebots": "Ocultar mudanças feitas por robôs.",
+       "apihelp-feedrecentchanges-param-hideanons": "Ocultar mudanças feitas por utilizadores anónimos.",
+       "apihelp-feedrecentchanges-param-hideliu": "Ocultar mudanças feitas por utilizadores registados.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Ocultar mudanças patrulhadas.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Ocultar mudanças feitas pelo utilizador atual.",
+       "apihelp-feedrecentchanges-param-hidecategorization": "Ocultar mudanças de pertença a categorias.",
        "apihelp-feedrecentchanges-param-tagfilter": "Filtrar por etiqueta.",
        "apihelp-feedrecentchanges-param-target": "Mostrar apenas mudanças em páginas afluentes a esta.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Mostrar mudanças em páginas com ligações para a página selecionada.",
        "apihelp-imagerotate-param-rotation": "Graus de rotação da imagem no sentido horário.",
        "apihelp-imagerotate-example-simple": "Rodar <kbd>File:Example.png</kbd> <kbd>90</kbd> graus.",
        "apihelp-imagerotate-example-generator": "Rodar todas as imagens na categoria <kbd>Category:Flip</kbd> em <kbd>180</kbd> graus.",
+       "apihelp-import-description": "Importar uma página de outra wiki ou de um ficheiro XML.\n\nNote que o POST do HTTP tem de ser feito como um carregamento de ficheiro (isto é, com multipart/form-data como Content-Type) ao enviar um ficheiro para o parâmetro <var>xml</var>.",
+       "apihelp-import-param-summary": "Resumo da importação para a entrada do registo.",
+       "apihelp-import-param-xml": "Ficheiro XML carregado.",
+       "apihelp-import-param-interwikisource": "Para importações interwikis: a wiki de onde importar.",
+       "apihelp-import-param-interwikipage": "Para importações interwikis: a página a importar.",
+       "apihelp-import-param-fullhistory": "Para importações interwikis: importar o historial completo, não apenas a versão atual.",
+       "apihelp-import-param-templates": "Para importações interwikis: importar também todas as predefinições incluídas.",
+       "apihelp-import-param-namespace": "Importar para este espaço nominal. Não pode ser usado em conjunto com <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "Importar como subpágina desta página. Não pode ser usado em conjunto com <var>$1namespace</var>.",
+       "apihelp-import-example-import": "Importar [[meta:Help:ParserFunctions]] para o espaço nominal 100 com o historial completo.",
+       "apihelp-linkaccount-description": "Ligar uma conta de um fornecedor terceiro ao utilizador atual.",
+       "apihelp-linkaccount-example-link": "Iniciar o processo de ligação a uma conta do fornecedor <kbd>Example</kbd>.",
        "apihelp-login-description": "Entrar e obter <i>cookies</i> de autenticação.\n\nEsta operação só deve ser usada em combinação com [[Special:BotPasswords]]; a sua utilização para entrar com a conta principal é obsoleta e poderá falhar sem aviso. Para entrar com a conta principal de forma segura, use <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
-       "apihelp-login-param-name": "Nome de utilizador(a).",
+       "apihelp-login-description-nobotpasswords": "Entrar e obter <i>cookies</i> de autenticação.\n\nEsta operação é obsoleta e poderá falhar sem aviso. Para entrar de forma segura, use <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
+       "apihelp-login-param-name": "Nome de utilizador.",
        "apihelp-login-param-password": "Palavra-passe.",
        "apihelp-login-param-domain": "Domínio (opcional).",
        "apihelp-login-param-token": "Chave de início de sessão obtida no primeiro pedido.",
        "apihelp-login-example-gettoken": "Obter uma chave de início de sessão.",
-       "apihelp-login-example-login": "Entrar",
-       "apihelp-logout-description": "Terminar e limpar dados de sessão.",
-       "apihelp-managetags-description": "Executar tarefas de gestão relacionadas com alteração de etiquetas.",
+       "apihelp-login-example-login": "Entrar.",
+       "apihelp-logout-description": "Terminar a sessão e limpar os dados da sessão.",
+       "apihelp-logout-example-logout": "Terminar a sessão do utilizador atual.",
+       "apihelp-managetags-description": "Executar tarefas de gestão relacionadas com a alteração de etiquetas.",
        "apihelp-managetags-param-operation": "A operação que será realizada:\n;create:Criar uma nova etiqueta de modificação para uso manual.\n;delete:Remover da base de dados uma etiqueta de modificação, incluindo remover a etiqueta de todas as revisões, entradas nas mudanças recentes e entradas do registo onde ela é utilizada.\n;activate:Ativar uma etiqueta de modificação, permitindo que os utilizadores a apliquem manualmente.\n;deactivate:Desativar uma etiqueta de modificação, impedindo que os utilizadores a apliquem manualmente.",
+       "apihelp-managetags-param-tag": "Etiqueta a ser criada, eliminada, ativada ou desativada. Para criar uma etiqueta ela não pode existir. Para eliminar uma etiqueta, ela tem de existir. Para ativar uma etiqueta, ela tem de existir e não estar a ser utilizada por nenhuma extensão. Para desativar uma etiqueta, ela tem de estar ativa e definida manualmente.",
        "apihelp-managetags-param-reason": "Um motivo, opcional, para a criação, eliminação, ativação ou desativação da etiqueta.",
        "apihelp-managetags-param-ignorewarnings": "Indica se devem ser ignorados todos os avisos gerados durante a operação.",
+       "apihelp-managetags-example-create": "Criar uma etiqueta com o nome <kbd>spam</kbd> e o motivo <kbd>For use in edit patrolling</kbd>",
+       "apihelp-managetags-example-delete": "Eliminar a etiqueta <kbd>vandlaism</kbd> com o motivo <kbd>Misspelt</kbd>",
+       "apihelp-managetags-example-activate": "Ativar uma etiqueta com o nome <kbd>spam</kbd> e o motivo <kbd>For use in edit patrolling</kbd>",
+       "apihelp-managetags-example-deactivate": "Desativar uma etiqueta com o nome <kbd>spam</kbd> e o motivo <kbd>No longer required</kbd>",
+       "apihelp-mergehistory-description": "Fundir o historial de páginas.",
+       "apihelp-mergehistory-param-from": "Título da página cujo historial será fundido. Não pode ser usado em conjunto com <var>$1fromid</var>.",
+       "apihelp-mergehistory-param-fromid": "Identificador da página cujo historial será fundido. Não pode ser usado em conjunto com <var>$1from</var>.",
+       "apihelp-mergehistory-param-to": "Título da página à qual o historial será fundido. Não pode ser usado em conjunto com <var>$1toid</var>.",
+       "apihelp-mergehistory-param-toid": "Identificador da página à qual o historial será fundido. Não pode ser usado em conjunto com <var>$1to</var>.",
+       "apihelp-mergehistory-param-timestamp": "Data e hora até a qual as revisões serão movidas do historial da página de origem para o historial das páginas de destino. Se omitido, todo o historial da página de origem será fundido com a página de destino.",
+       "apihelp-mergehistory-param-reason": "Motivo para fundir o historial.",
+       "apihelp-mergehistory-example-merge": "Fundir todo o historial da página <kbd>Oldpage</kbd> com o da página <kbd>Newpage</kbd>.",
+       "apihelp-mergehistory-example-merge-timestamp": "Fundir as revisões de <kbd>Oldpage</kbd> até à data e hora <kbd>2015-12-31T04:37:41Z</kbd> com <kbd>Newpage</kbd>.",
        "apihelp-move-description": "Mover uma página.",
+       "apihelp-move-param-from": "Título da página cujo nome será alterado. Não pode ser usado em conjunto com <var>$1fromid</var>.",
+       "apihelp-move-param-fromid": "Identificador da página cujo nome será alterado. Não pode ser usado em conjunto com <var>$1from</var>.",
+       "apihelp-move-param-to": "Novo título da página.",
+       "apihelp-move-param-reason": "Motivo para a alteração do nome.",
+       "apihelp-move-param-movetalk": "Alterar o nome da página de discussão, se esta existir.",
+       "apihelp-move-param-movesubpages": "Alterar o nome das subpáginas, se estas existirem.",
        "apihelp-move-param-noredirect": "Não criar um redirecionamento.",
        "apihelp-move-param-watch": "Adicionar a página e o redirecionamento às páginas vigiadas do utilizador atual.",
+       "apihelp-move-param-unwatch": "Remover a página e o redirecionamento das páginas vigiadas do utilizador atual.",
        "apihelp-move-param-watchlist": "Adicionar ou remover incondicionalmente a página da lista de páginas vigiadas do utilizador atual, usar as preferências ou não alterar o estado de vigilância.",
        "apihelp-move-param-ignorewarnings": "Ignorar quaisquer avisos.",
-       "apihelp-opensearch-param-limit": "Número máximo de resultados a apresentar.",
+       "apihelp-move-example-move": "Mover <kbd>Badtitle</kbd> para <kbd>Goodtitle</kbd> sem deixar um redirecionamento.",
+       "apihelp-opensearch-description": "Pesquisar a wiki usando o protocolo OpenSearch.",
+       "apihelp-opensearch-param-search": "Texto a pesquisar.",
+       "apihelp-opensearch-param-limit": "O número máximo de resultados a serem devolvidos.",
+       "apihelp-opensearch-param-namespace": "Espaços nominais a pesquisar.",
+       "apihelp-opensearch-param-suggest": "Não fazer nada se <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> for falso.",
+       "apihelp-opensearch-param-redirects": "Como tratar redirecionamentos:\n;return:Devolver o próprio redirecionamento.\n;resolve:Devolver a página de destino. Pode devolver menos de $1limit resultados.\nPor razões históricas, o valor por omissão é \"return\" para o formato $1format=json e \"resolve\" para outros formatos.",
        "apihelp-opensearch-param-format": "O formato do resultado.",
-       "apihelp-options-param-reset": "Reiniciar preferências para os padrões do sítio.",
-       "apihelp-options-example-reset": "Reiniciar todas as preferências",
+       "apihelp-opensearch-param-warningsaserror": "Se forem gerados avisos com <kbd>format=json</kbd>, devolver um erro da API em vez de ignorá-los.",
+       "apihelp-opensearch-example-te": "Encontrar as páginas que começam por <kbd>Te</kbd>.",
+       "apihelp-options-description": "Alterar as preferências do utilizador atual.\n\nSó podem ser definidas as opções que estão registadas no núcleo do MediaWiki ou numa das extensões instaladas, ou opções cuja chave tem o prefixo <code>userjs-</code> (que são supostas ser usadas por ''scripts'' de utilizador).",
+       "apihelp-options-param-reset": "Reiniciar preferências para os valores por omissão do site.",
+       "apihelp-options-param-resetkinds": "Lista dos tipos de opções a reiniciar quando a opção <var>$1reset</var> está definida.",
+       "apihelp-options-param-change": "Listas das alterações, na forma nome=valor (isto é, skin=vector). Se não for fornecido nenhum valor (nem sequer um sinal de igualdade), por exemplo, nomedaopção|outraopção|..., a opção será reiniciada para o seu valor por omissão. Se qualquer dos valores passados contém uma barra vertical (<kbd>|</kbd>), use um [[Special:ApiHelp/main#main/datatypes|separador alternativo para valores múltiplos]] de forma a obter o comportamento correto.",
+       "apihelp-options-param-optionname": "O nome da opção que deve ser configurada com o valor dado por <var>$1optionvalue</var>.",
+       "apihelp-options-param-optionvalue": "O valor para a opção especificada por <var>$1optionname</var>.",
+       "apihelp-options-example-reset": "Reiniciar todas as preferências.",
+       "apihelp-options-example-change": "Alterar as preferências <kbd>skin</kbd> e <kbd>hideminor</kbd>.",
+       "apihelp-options-example-complex": "Reiniciar todas as preferências e depois definir <kbd>skin</kbd> e <kbd>nickname</kbd>.",
+       "apihelp-paraminfo-description": "Obter informação sobre os módulos da API.",
+       "apihelp-paraminfo-param-modules": "Lista dos nomes dos módulos (valores dos parâmetros <var>action</var> e <var>format</var>, ou <kbd>main</kbd>). Podem ser especificados submódulos com <kbd>+</kbd>, ou todos os submódulos com <kbd>+*</kbd>, ou todos os submódulos de forma recursiva com <kbd>+**</kbd>.",
+       "apihelp-paraminfo-param-helpformat": "Formato dos textos de ajuda.",
+       "apihelp-paraminfo-param-querymodules": "Lista de nomes dos módulos a consultar (valores dos parâmetros <var>prop</var>, <var>meta</var> ou <var>list</var>). Usar <kbd>$1modules=query+foo</kbd> em vez de <kbd>$1querymodules=foo</kbd>.",
+       "apihelp-paraminfo-param-mainmodule": "Obter também informação sobre o módulo principal (do nível de topo). Em vez de usá-lo, usar <kbd>$1modules=main</kbd>.",
+       "apihelp-paraminfo-param-pagesetmodule": "Obter também informação sobre o módulo pageset (fornecendo titles= e restantes).",
+       "apihelp-paraminfo-param-formatmodules": "Lista de nomes de módulos de formato (valor do parâmetro <var>format</var>). Em vez de usá-lo, use <var>$1modules</var>.",
+       "apihelp-paraminfo-example-1": "Mostrar informação para <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd> e <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
+       "apihelp-paraminfo-example-2": "Mostrar informação de todos os módulos de <kbd>[[Special:ApiHelp/query|action=query]]</kbd>.",
+       "apihelp-parse-description": "Faz a análise sintática do conteúdo e devolve o resultado da análise.\n\nConsulte os vários módulos disponíveis no parâmetro prop de <kbd>[[Special:ApiHelp/query|action=query]]</kbd> para obter informação da versão atual de uma página.\n\nHá várias formas de especificar o texto a analisar:\n# Especificar uma página ou revisão, usando <var>$1page</var>, <var>$1pageid</var> ou <var>$1oldid</var>.\n# Especificar o conteúdo de forma explícita, usando <var>$1text</var>, <var>$1title</var> e <var>$1contentmodel</var>.\n# Especificar só um resumo a analisar. <var>$1prop</var> deve receber o valor vazio.",
+       "apihelp-parse-param-title": "Título da página à qual o texto pertence. Se omitido, é preciso especificar <var>$1contentmodel</var> e deve usar [[API]] como título.",
+       "apihelp-parse-param-text": "Texto a analisar. Usar <var>$1title</var> ou <var>$1contentmodel</var> para controlar o modelo de conteúdo.",
+       "apihelp-parse-param-summary": "Resumo a analisar.",
+       "apihelp-parse-param-page": "Analisar o conteúdo desta página. Não pode ser usado em conjunto com <var>$1text</var> e <var>$1title</var>.",
+       "apihelp-parse-param-pageid": "Analisar o conteúdo desta página. Substitui <var>$1page</var>.",
+       "apihelp-parse-param-redirects": "Se <var>$1page</var> ou <var>$1pageid</var> estiverem definidos para um redirecionamento, resolvê-lo.",
+       "apihelp-parse-param-oldid": "Analisar o conteúdo desta revisão. Substitui <var>$1page</var> e <var>$1pageid</var>.",
        "apihelp-parse-param-prop": "As informações que devem ser obtidas:",
+       "apihelp-parse-paramvalue-prop-text": "Fornece o texto analisado, de um texto com notação wiki.",
+       "apihelp-parse-paramvalue-prop-langlinks": "Fornece os links interlínguas do texto analisado.",
+       "apihelp-parse-paramvalue-prop-categories": "Fornece as categorias do texto analisado.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Fornece a versão HTML das categorias.",
+       "apihelp-parse-paramvalue-prop-links": "Fornece os links internos do texto analisado.",
+       "apihelp-parse-paramvalue-prop-templates": "Fornece as predefinições do texto analisado.",
+       "apihelp-parse-paramvalue-prop-images": "Fornece as imagens do texto analisado.",
+       "apihelp-parse-paramvalue-prop-externallinks": "Fornece os links externos do texto analisado.",
+       "apihelp-parse-paramvalue-prop-sections": "Fornece as secções do texto analisado.",
        "apihelp-parse-paramvalue-prop-revid": "Adiciona o identificador de revisão da página analisada.",
-       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Devolve as variáveis de configuração JavaScript específicas da página, no formato de uma ''string'' JSON.",
-       "apihelp-parse-param-section": "Apenas analisar o conteúdo desta secção.\n\nQuando <kbd>nova</kbd>, analise <var>$1text</var> e <var>$1sectiontitle</var> como se fosse adicionar uma nova secção da página.\n\n<kbd>novo</kbd> só é permitido quando especifica <var>text</var>.",
-       "apihelp-patrol-description": "Patrulhar uma página ou edição.",
-       "apihelp-patrol-example-rcid": "Patrulhar uma mudança recente",
-       "apihelp-patrol-example-revid": "Patrulhar uma edição",
+       "apihelp-parse-paramvalue-prop-displaytitle": "Adiciona o título do texto analisado.",
+       "apihelp-parse-paramvalue-prop-headitems": "<span class=\"apihelp-deprecated\">Obsoleto.</span> Fornece os elementos a colocar no <code>&lt;head&gt;</code> da página.",
+       "apihelp-parse-paramvalue-prop-headhtml": "Fornece o <code>&lt;head&gt;</code> analisado da página.",
+       "apihelp-parse-paramvalue-prop-modules": "Fornece os módulos ResourceLoader usados na página. Para carregá-los, usar <code>mw.loader.using()</code>. Uma das variáveis <kbd>jsconfigvars</kbd> ou <kbd>encodedjsconfigvars</kbd> tem de ser pedida em conjunto com <kbd>modules</kbd>.",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "Fornece as variáveis de configuração JavaScript específicas da página. Para aplicá-las, usar <code>mw.config.set()</code>.",
+       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Fornece as variáveis de configuração JavaScript específicas da página, no formato de uma ''string'' JSON.",
+       "apihelp-parse-paramvalue-prop-indicators": "Fornece o HTML dos indicadores de estado de página que são usados na página.",
+       "apihelp-parse-paramvalue-prop-iwlinks": "Fornece os links interwikis do texto analisado.",
+       "apihelp-parse-paramvalue-prop-wikitext": "Fornece o texto original com notação wiki que foi analisado.",
+       "apihelp-parse-paramvalue-prop-properties": "Fornece várias propriedades definidas no texto analisado.",
+       "apihelp-parse-paramvalue-prop-limitreportdata": "Fornece o relatório de limites de forma estruturada. Não fornece dados quando <var>$1disablelimitreport</var> está definido.",
+       "apihelp-parse-paramvalue-prop-limitreporthtml": "Fornece a versão HTML do relatório de limites. Não fornece dados quando <var>$1disablelimitreport</var> está definido.",
+       "apihelp-parse-paramvalue-prop-parsetree": "A árvore de análise XML do conteúdo da revisão (requer o modelo de conteúdo <code>$1</code>)",
+       "apihelp-parse-param-pst": "Fazer uma transformação anterior à gravação, do texto de entrada, antes de analisá-lo. Só é válido quando usado com texto.",
+       "apihelp-parse-param-onlypst": "Fazer uma transformação anterior à gravação (PST, ''pre-save transform'') do texto de entrada, mas não o analisar. Devolve o mesmo texto após aplicação da PST. Só é válido quando usado com <var>$1text</var>.",
+       "apihelp-parse-param-effectivelanglinks": "Inclui links interlínguas fornecidos por extensões (para ser usado com <kbd>$1prop=langlinks</kbd>).",
+       "apihelp-parse-param-section": "Analisar apenas o conteúdo desta secção.\n\nQuando tiver o valor <kbd>new</kbd>, analisar <var>$1text</var> e <var>$1sectiontitle</var> como se fosse adicionar uma nova secção à página.\n\n<kbd>new</kbd> só é permitido quando se especifica <var>text</var>.",
+       "apihelp-parse-param-sectiontitle": "O novo título da secção quando <var>section</var> tem o valor <kbd>new</kbd>.\n\nAo contrário da edição de páginas, este não toma o valor de <var>summary</var> se for omitido ou estiver vazio.",
+       "apihelp-parse-param-disablelimitreport": "Omitir o relatório de limites (\"NewPP limit report\") do resultado de saída do analisador sintático.",
+       "apihelp-parse-param-disablepp": "Em vez deste, usar <var>$1disablelimitreport</var>.",
+       "apihelp-parse-param-disableeditsection": "Omitir links para edição da secção no resultado da análise sintática.",
+       "apihelp-parse-param-disabletidy": "Não fazer a limpeza do HTML (isto é, o ''tidy'') no resultado da análise sintática.",
+       "apihelp-parse-param-generatexml": "Gerar a árvore de análise XML (requer o modelo de conteúdo <code>$1</code>; substituído por <kbd>$2prop=parsetree</kbd>).",
+       "apihelp-parse-param-preview": "Executar a análise em modo de antevisão.",
+       "apihelp-parse-param-sectionpreview": "Executar a análise em modo de antevisão (também ativa o modo de antevisão).",
+       "apihelp-parse-param-disabletoc": "Omitir a tabela de conteúdo no resultado.",
+       "apihelp-parse-param-contentformat": "O formato da seriação de conteúdo, usado para o texto de entrada. Só é válido quando usado com $1text.",
+       "apihelp-parse-param-contentmodel": "Modelo de conteúdo do texto de entrada. Se omitido, $1title tem de ser especificado e o valor por omissão será o modelo do título especificado. Só é válido quando usado com $1text.",
+       "apihelp-parse-example-page": "Fazer a análise sintática de uma página.",
+       "apihelp-parse-example-text": "Fazer a análise sintática do texto com notação wiki.",
+       "apihelp-parse-example-texttitle": "Fazer a análise sintática do texto com notação wiki, especificando o título da página.",
+       "apihelp-parse-example-summary": "Fazer a análise sintática de um resumo.",
+       "apihelp-patrol-description": "Patrulhar uma página ou revisão.",
+       "apihelp-patrol-param-rcid": "Identificador da mudança recente a patrulhar.",
+       "apihelp-patrol-param-revid": "Identificador da revisão a patrulhar.",
+       "apihelp-patrol-param-tags": "Etiquetas de modificação a aplicar à entrada do registo de patrulha.",
+       "apihelp-patrol-example-rcid": "Patrulhar uma mudança recente.",
+       "apihelp-patrol-example-revid": "Patrulhar uma revisão.",
+       "apihelp-protect-description": "Alterar o nível de proteção de uma página.",
+       "apihelp-protect-param-title": "Título da página a proteger ou desproteger. Não pode ser usado em conjunto com $1pageid.",
+       "apihelp-protect-param-pageid": "Identificador da página a proteger ou desproteger. Não pode ser usado em conjunto com $1title.",
+       "apihelp-protect-param-protections": "Lista de níveis de proteção, na forma <kbd>action=level</kbd> (por exemplo, <kbd>edit=sysop</kbd>). O nível <kbd>all</kbd> significada que todos podem executar a operação, isto é, sem restrição.\n\n<strong>Nota:</strong> Serão removidas as restrições de quaisquer operações não listadas.",
        "apihelp-protect-param-expiry": "Datas e horas de expiração. Se só uma data e hora for definida, será usada para todas as proteções. Use <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd> ou <kbd>never</kbd>, para proteção sem expiração.",
+       "apihelp-protect-param-reason": "Motivo da proteção ou desproteção.",
+       "apihelp-protect-param-tags": "Etiquetas de modificação a aplicar à entrada no registo de proteções.",
+       "apihelp-protect-param-cascade": "Ativar a proteção em cascata (isto é, proteger as predefinições transcluídas e as imagens usadas nesta página). Ignorado se nenhum dos níveis de proteção dados suportam a proteção em cascata.",
        "apihelp-protect-param-watch": "Se definido, adicionar a página que está a ser protegida ou desprotegida às páginas vigiadas do utilizador atual.",
        "apihelp-protect-param-watchlist": "Adicionar ou remover incondicionalmente a página da lista de páginas vigiadas do utilizador atual, usar as preferências ou não alterar o estado de vigilância.",
-       "apihelp-protect-example-protect": "Proteger uma página",
+       "apihelp-protect-example-protect": "Proteger uma página.",
+       "apihelp-protect-example-unprotect": "Desproteger uma página definindo a restrição <kbd>all</kbd> (isto é, todos podem executar a operação).",
+       "apihelp-protect-example-unprotect2": "Desproteger uma página definindo que não há restrições.",
        "apihelp-purge-description": "Limpar a <i>cache</i> para os títulos especificados.\n\nRequer um pedido POST se o utilizador não tiver iniciado uma sessão.",
+       "apihelp-purge-param-forcelinkupdate": "Atualizar as tabelas de ligações.",
+       "apihelp-purge-param-forcerecursivelinkupdate": "Atualizar a tabela de ligações, e atualizar as tabelas de ligações de qualquer página que usa esta página como modelo.",
+       "apihelp-purge-example-simple": "Purgar as páginas <kbd>Main Page</kbd> e <kbd>API</kbd>.",
+       "apihelp-purge-example-generator": "Purgar as primeiras 10 páginas no espaço nominal principal.",
        "apihelp-query-description": "Obter dados do MediaWiki e acerca dele.\n\nTodas as modificações de dados têm primeiro de usar um pedido para adquirir uma chave, de forma a impedir ações abusivas de <i>sites</i> maliciosos.",
        "apihelp-query-param-prop": "As propriedades a serem obtidas para as páginas consultadas.",
+       "apihelp-query-param-list": "As listas a serem obtidas.",
        "apihelp-query-param-meta": "Os metadados a serem obtidos.",
+       "apihelp-query-param-indexpageids": "Incluir uma secção adicional de identificadores de página que lista todos os identificadores de página devolvidos.",
+       "apihelp-query-param-export": "Exportar as revisões atuais de todas as páginas fornecidas ou geradas.",
+       "apihelp-query-param-exportnowrap": "Devolver o XML de exportação sem o envolver num resultado XML (o mesmo formato que [[Special:Export]]). Só pode ser usado com $1export.",
        "apihelp-query-param-iwurl": "Indica se deve ser obtido o URL completo quando o título é um <i>link</i> interwikis.",
+       "apihelp-query-param-rawcontinue": "Devolver os dados em bruto de <samp>query-continue</samp> para continuar.",
+       "apihelp-query-example-revisions": "Obter [[Special:ApiHelp/query+siteinfo|informação do ''site'']] e as [[Special:ApiHelp/query+revisions|revisões]] da página <kbd>Main Page</kbd>.",
+       "apihelp-query-example-allpages": "Obter as revisões das páginas que começam por <kbd>API/</kbd>.",
        "apihelp-query+allcategories-description": "Enumerar todas as categorias.",
        "apihelp-query+allcategories-param-from": "A categoria a partir da qual será começada a enumeração.",
+       "apihelp-query+allcategories-param-to": "A categoria na qual será terminada a enumeração.",
+       "apihelp-query+allcategories-param-prefix": "Procurar todos os títulos de categorias que começam por este valor.",
+       "apihelp-query+allcategories-param-dir": "Direção da ordenação.",
+       "apihelp-query+allcategories-param-min": "Só devolver as categorias que tenham no mínimo este número de membros.",
+       "apihelp-query+allcategories-param-max": "Só devolver as categorias que tenham no máximo este número de membros.",
+       "apihelp-query+allcategories-param-limit": "O número de categorias a serem devolvidas.",
        "apihelp-query+allcategories-param-prop": "As propriedades a serem obtidas:",
        "apihelp-query+allcategories-paramvalue-prop-size": "Adiciona o número de páginas na categoria.",
-       "apihelp-query+alldeletedrevisions-param-start": "A data e hora a partir da qual será começada a enumeração.",
+       "apihelp-query+allcategories-paramvalue-prop-hidden": "Etiqueta as categorias ocultadas com <code>_&#95;HIDDENCAT_&#95;</code>.",
+       "apihelp-query+allcategories-example-size": "Lista as categorias com informação sobre o número de páginas em cada uma delas.",
+       "apihelp-query+allcategories-example-generator": "Obter informação sobre a própria página de categoria, para as categorias que começam por <kbd>List</kbd>.",
+       "apihelp-query+alldeletedrevisions-description": "Listar todas as revisões eliminadas por um utilizador ou de um espaço nominal.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Só pode ser usado com <var>$3user</var>.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Não pode ser usado com <var>$3user</var>.",
+       "apihelp-query+alldeletedrevisions-param-start": "A data e hora da revisão a partir da qual será começada a enumeração.",
+       "apihelp-query+alldeletedrevisions-param-end": "A data e hora na qual será terminada a enumeração.",
+       "apihelp-query+alldeletedrevisions-param-from": "Começar a listagem neste título.",
+       "apihelp-query+alldeletedrevisions-param-to": "Terminar a listagem neste título.",
+       "apihelp-query+alldeletedrevisions-param-prefix": "Procurar todos os títulos de página que começam por este valor.",
        "apihelp-query+alldeletedrevisions-param-tag": "Listar só as revisões marcadas com esta etiqueta.",
+       "apihelp-query+alldeletedrevisions-param-user": "Listar só as revisões feitas por este utilizador.",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "Não listar as revisões feitas por este utilizador.",
        "apihelp-query+alldeletedrevisions-param-namespace": "Listar só as páginas neste espaço nominal.",
-       "apihelp-query+alldeletedrevisions-example-user": "Lista das últimas 50 contribuições eliminadas pelo utilizador <kbd>Example</kbd>.",
+       "apihelp-query+alldeletedrevisions-param-miser-user-namespace": "<strong>Nota:</strong> Devido ao [[mw:Manual:$wgMiserMode|modo avarento]], o uso de <var>$1user</var> e <var>$1namespace</var> em conjunto pode resultar na devolução de menos de <var>$1limit</var> resultados antes de continuar; em casos extremos pode não ser devolvido qualquer resultado.",
+       "apihelp-query+alldeletedrevisions-param-generatetitles": "Ao ser usado como gerador, gerar títulos em vez de identificadores de revisões.",
+       "apihelp-query+alldeletedrevisions-example-user": "Listar as últimas 50 contribuições eliminadas do utilizador <kbd>Example</kbd>.",
+       "apihelp-query+alldeletedrevisions-example-ns-main": "Listar as primeiras 50 revisões eliminadas no espaço nominal principal.",
+       "apihelp-query+allfileusages-description": "Listar todas as utilizações de ficheiros, incluindo ficheiros que não existam.",
        "apihelp-query+allfileusages-param-from": "O título do ficheiro a partir do qual será começada a enumeração.",
+       "apihelp-query+allfileusages-param-to": "O título do ficheiro no qual será terminada a enumeração.",
+       "apihelp-query+allfileusages-param-prefix": "Procurar todos os títulos de ficheiro que começam por este valor.",
+       "apihelp-query+allfileusages-param-unique": "Mostrar só nomes de ficheiros distintos. Não pode ser usado com <kbd>$1prop=ids</kbd>.\nQuando usado como gerador, produz páginas de destino em vez de páginas de origem.",
        "apihelp-query+allfileusages-param-prop": "As informações que devem ser incluídas:",
-       "apihelp-query+allfileusages-paramvalue-prop-ids": "Adiciona os identificadores das páginas que o utilizam (não pode ser usado com $1unique).",
+       "apihelp-query+allfileusages-paramvalue-prop-ids": "Adiciona os identificadores das páginas que utilizam (não pode ser usado com <var>$1unique</var>).",
+       "apihelp-query+allfileusages-paramvalue-prop-title": "Adiciona o título do ficheiro.",
+       "apihelp-query+allfileusages-param-limit": "O número total de elementos a serem devolvidos.",
        "apihelp-query+allfileusages-param-dir": "A direção de listagem.",
+       "apihelp-query+allfileusages-example-B": "Listar os títulos de ficheiros, incluindo aqueles em falta, com os identificadores das páginas de onde provêm, começando no <kbd>B</kbd>.",
+       "apihelp-query+allfileusages-example-unique": "Listar os títulos de ficheiros distintos.",
+       "apihelp-query+allfileusages-example-unique-generator": "Obter todos os títulos de ficheiros, marcando aqueles em falta.",
+       "apihelp-query+allfileusages-example-generator": "Obter as páginas que contêm os ficheiros.",
        "apihelp-query+allimages-description": "Enumerar todas as imagens sequencialmente.",
+       "apihelp-query+allimages-param-sort": "Propriedade pela qual fazer a ordenação.",
        "apihelp-query+allimages-param-dir": "A direção de listagem.",
        "apihelp-query+allimages-param-from": "O título da imagem a partir do qual será começada a enumeração. Só pode ser usado com $1sort=name.",
-       "apihelp-query+allimages-param-start": "A data e hora a partir da qual será começada a enumeração. Só pode ser usado com $1sort=timestamp.",
+       "apihelp-query+allimages-param-to": "O título da imagem no qual será terminada a enumeração. Só pode ser usado com $1sort=name.",
+       "apihelp-query+allimages-param-start": "A data e hora da imagem a partir da qual será começada a enumeração. Só pode ser usado com $1sort=timestamp.",
+       "apihelp-query+allimages-param-end": "A data e hora da imagem na qual será terminada a enumeração. Só pode ser usado com $1sort=timestamp.",
+       "apihelp-query+allimages-param-prefix": "Procurar todos os títulos de imagem que começam por este valor. Só pode ser usado com $1sort=name.",
+       "apihelp-query+allimages-param-minsize": "Limitar só às imagens com este número mínimo de bytes.",
+       "apihelp-query+allimages-param-maxsize": "Limitar só às imagens com este número máximo de bytes.",
+       "apihelp-query+allimages-param-sha1": "Resumo criptográfico SHA1 da imagem. Substitui $1sha1base36.",
+       "apihelp-query+allimages-param-sha1base36": "Resumo criptográfico SHA1 da imagem em base 36 (usado no MediaWiki).",
+       "apihelp-query+allimages-param-user": "Devolver só os ficheiros carregados por este utilizador. Só pode ser usado com $1sort=timestamp. Não pode ser usado em conjunto com $1filterbots.",
+       "apihelp-query+allimages-param-filterbots": "Como filtrar os ficheiros carregados por robôs. Só pode ser usado com $1sort=timestamp. Não pode ser usado em conjunto com $1user.",
+       "apihelp-query+allimages-param-mime": "Tipos MIME a procurar; por exemplo, <kbd>image/jpeg</kbd>.",
+       "apihelp-query+allimages-param-limit": "O número total de imagens a serem devolvidas.",
+       "apihelp-query+allimages-example-B": "Mostrar uma lista dos ficheiros que começam com a letra <kbd>B</kbd>.",
+       "apihelp-query+allimages-example-recent": "Mostrar uma lista dos ficheiros carregados recentemente, semelhante a [[Special:NewFiles]].",
+       "apihelp-query+allimages-example-mimetypes": "Mostrar uma lista dos ficheiros com os tipos MIME <kbd>image/png</kbd> ou <kbd>image/gif</kbd>.",
+       "apihelp-query+allimages-example-generator": "Mostrar informação sobre 4 ficheiros, começando pela letra <kbd>T</kbd>.",
        "apihelp-query+alllinks-description": "Enumerar todos os ''links'' que apontam para um determinado espaço nominal.",
        "apihelp-query+alllinks-param-from": "O título do ''link'' a partir do qual será começada a enumeração.",
+       "apihelp-query+alllinks-param-to": "O título do ''link'' no qual será terminada a enumeração.",
+       "apihelp-query+alllinks-param-prefix": "Procurar todos os títulos ligados que começam por este valor.",
+       "apihelp-query+alllinks-param-unique": "Mostrar só títulos ligados distintos. Não pode ser usado com <kbd>$1prop=ids</kbd>.\nQuando usado como gerador, produz páginas de destino em vez de páginas de origem.",
        "apihelp-query+alllinks-param-prop": "As informações que devem ser incluídas:",
+       "apihelp-query+alllinks-paramvalue-prop-ids": "Adiciona o identificador da página que contém a ligação (não pode ser usado com <var>$1unique</var>).",
+       "apihelp-query+alllinks-paramvalue-prop-title": "Adiciona o título do ''link''.",
        "apihelp-query+alllinks-param-namespace": "O espaço nominal a ser enumerado.",
+       "apihelp-query+alllinks-param-limit": "O número total de entradas a serem devolvidas.",
        "apihelp-query+alllinks-param-dir": "A direção de listagem.",
+       "apihelp-query+alllinks-example-B": "Listar os títulos para os quais existem ligações, incluindo títulos em falta, com os identificadores das páginas que contêm as respetivas ligações, começando pela letra <kbd>B</kbd>.",
+       "apihelp-query+alllinks-example-unique": "Listar os títulos distintos para os quais existem ligações.",
+       "apihelp-query+alllinks-example-unique-generator": "Obter todos os títulos para os quais existem ligações, marcando aqueles em falta.",
+       "apihelp-query+alllinks-example-generator": "Obter as páginas que contêm as ligações.",
+       "apihelp-query+allmessages-description": "Devolver as mensagens deste ''site''.",
        "apihelp-query+allmessages-param-messages": "Mensagens a serem produzidas no resultado. <kbd>*</kbd> (o valor por omissão) significa todas as mensagens.",
        "apihelp-query+allmessages-param-prop": "As propriedades a serem obtidas:",
+       "apihelp-query+allmessages-param-enableparser": "Definir, para ativar o analisador sintático e pré-processar o texto da mensagem com notação wiki (substituir palavras mágicas, processar predefinições, etc.).",
+       "apihelp-query+allmessages-param-nocontent": "Se definido, não incluir o conteúdo das mensagens no resultado de saída.",
+       "apihelp-query+allmessages-param-includelocal": "Incluir também as mensagens locais, isto é, mensagens que não existem no software mas existem como uma página no espaço nominal MediaWiki:.\nIsto lista todas as páginas do espaço nominal MediaWiki:, portanto, também irá listar aquelas que não são verdadeiramente mensagens, como [[MediaWiki:Common.js|Common.js]].",
+       "apihelp-query+allmessages-param-args": "Os argumentos a serem substituídos na mensagem.",
+       "apihelp-query+allmessages-param-filter": "Devolver só as mensagens cujos nomes contêm este texto.",
+       "apihelp-query+allmessages-param-customised": "Devolver só as mensagens neste estado de personalização.",
+       "apihelp-query+allmessages-param-lang": "Devolver as mensagens nesta língua.",
+       "apihelp-query+allmessages-param-from": "Devolver as mensagens, a partir desta mensagem.",
+       "apihelp-query+allmessages-param-to": "Devolver as mensagens, até esta mensagem.",
+       "apihelp-query+allmessages-param-title": "Nome da página a utilizar como contexto ao fazer a análise sintática da mensagem (para a opção $1enableparser).",
+       "apihelp-query+allmessages-param-prefix": "Devolver as mensagens com este prefixo.",
        "apihelp-query+allmessages-example-ipb": "Mostrar mensagens que começam por <kbd>ipb-</kbd>.",
-       "apihelp-query+allpages-description": "Enumerar todas as páginas sequencialmente dentro de um espaço nominal.",
+       "apihelp-query+allmessages-example-de": "Mostrar as mensagens <kbd>august</kbd> e <kbd>mainpage</kbd> em Alemão.",
+       "apihelp-query+allpages-description": "Enumerar sequencialmente todas as páginas de um determinado espaço nominal.",
        "apihelp-query+allpages-param-from": "O título de página a partir do qual será começada a enumeração.",
-       "apihelp-query+allpages-param-prefix": "Pesquisa para todos os títulos de páginas que comecem com este valor.",
+       "apihelp-query+allpages-param-to": "O título de página no qual será terminada a enumeração.",
+       "apihelp-query+allpages-param-prefix": "Procurar todos os títulos de páginas que comecem com este valor.",
        "apihelp-query+allpages-param-namespace": "O espaço nominal a ser enumerado.",
        "apihelp-query+allpages-param-filterredir": "As páginas a serem listadas.",
+       "apihelp-query+allpages-param-minsize": "Limitar só às páginas com este número mínimo de bytes.",
+       "apihelp-query+allpages-param-maxsize": "Limitar só às páginas com este número máximo de bytes.",
+       "apihelp-query+allpages-param-prtype": "Limitar só às páginas protegidas.",
+       "apihelp-query+allpages-param-prlevel": "Filtrar as proteções com base no nível de proteção (tem de ser usado com o parâmetro $1prtype=).",
+       "apihelp-query+allpages-param-prfiltercascade": "Filtrar as proteções com base na proteção em cascata (ignorado se $1prtype não estiver presente).",
+       "apihelp-query+allpages-param-limit": "O número total de páginas a serem devolvidas.",
        "apihelp-query+allpages-param-dir": "A direção de listagem.",
+       "apihelp-query+allpages-param-filterlanglinks": "Filtrar dependo de uma página ter ''links'' interlínguas. Note que isto pode não tomar em consideração ''links'' interlínguas adicionados por extensões.",
        "apihelp-query+allpages-param-prexpiry": "O tipo de expiração pelo qual as páginas serão filtradas:\n;indefinite:Obter só páginas com um período de expiração indefinido.\n;definite:Obter só páginas com um período de expiração definido (específico).\n;all:Obter páginas com qualquer período de expiração.",
-       "apihelp-query+allpages-example-generator": "Mostrar informação sobre 4 páginas que comecem com a letra <kbd>T</kbd>.",
+       "apihelp-query+allpages-example-B": "Mostrar uma lista de páginas, começando na letra <kbd>B</kbd>.",
+       "apihelp-query+allpages-example-generator": "Mostrar informação sobre 4 páginas, começando na letra <kbd>T</kbd>.",
+       "apihelp-query+allpages-example-generator-revisions": "Mostrar o conteúdo das primeiras 2 páginas que não sejam redirecionamentos, começando na página <kbd>Re</kbd>.",
        "apihelp-query+allredirects-param-from": "O título do redirecionamento a partir do qual será começada a enumeração.",
+       "apihelp-query+allredirects-param-to": "O título do redirecionamento no qual será terminada a enumeração.",
+       "apihelp-query+allredirects-param-prefix": "Procurar todas as páginas de destino que começam por este valor.",
+       "apihelp-query+allredirects-param-unique": "Mostrar só páginas de destino distintas. Não pode ser usado com <kbd>$1prop=ids|fragment|interwiki</kbd>.\nQuando usado como gerador, produz páginas de destino em vez de páginas de origem.",
        "apihelp-query+allredirects-param-prop": "As informações que devem ser incluídas:",
+       "apihelp-query+allredirects-paramvalue-prop-ids": "Adiciona o identificador da página que contém o redirecionamento (não pode ser usado com <var>$1unique</var>).",
+       "apihelp-query+allredirects-paramvalue-prop-title": "Adiciona o título do redirecionamento.",
+       "apihelp-query+allredirects-paramvalue-prop-fragment": "Adiciona o fragmento do redirecionamento, se existir (não pode ser usado com <var>$1unique</var>).",
        "apihelp-query+allredirects-param-namespace": "O espaço nominal a ser enumerado.",
+       "apihelp-query+allredirects-param-limit": "O número total de elementos a serem devolvidos.",
        "apihelp-query+allredirects-param-dir": "A direção de listagem.",
+       "apihelp-query+allrevisions-description": "Listar todas as revisões.",
        "apihelp-query+allrevisions-param-start": "A data e hora a partir da qual será começada a enumeração.",
+       "apihelp-query+allrevisions-param-end": "A data e hora na qual será terminada a enumeração.",
        "apihelp-query+allrevisions-param-user": "Listar só as revisões deste utilizador.",
+       "apihelp-query+allrevisions-param-excludeuser": "Não listar as revisões deste utilizador.",
        "apihelp-query+allrevisions-param-namespace": "Listar só as páginas neste espaço nominal.",
+       "apihelp-query+allrevisions-example-user": "Listar as últimas 50 contribuições do utilizador <kbd>Example</kbd>.",
        "apihelp-query+mystashedfiles-param-prop": "As propriedades a serem obtidas para os ficheiros.",
+       "apihelp-query+mystashedfiles-param-limit": "Quantos ficheiros a serem obtidos.",
        "apihelp-query+alltransclusions-param-from": "O título da transclusão a partir do qual será começada a enumeração.",
+       "apihelp-query+alltransclusions-param-to": "O título da transclusão no qual será terminada a enumeração.",
+       "apihelp-query+alltransclusions-param-prefix": "Procurar todos os títulos transcluídos que começam por este valor.",
+       "apihelp-query+alltransclusions-param-unique": "Mostrar só títulos transcluídos distintas. Não pode ser usado com <kbd>$1prop=ids</kbd>.\nQuando usado como gerador, produz páginas de destino em vez de páginas de origem.",
        "apihelp-query+alltransclusions-param-prop": "As informações que devem ser incluídas:",
+       "apihelp-query+alltransclusions-paramvalue-prop-ids": "Adiciona o identificador da página onde é feita a transclusão (não pode ser usado com <var>$1unique</var>).",
        "apihelp-query+alltransclusions-param-namespace": "O espaço nominal a enumerar.",
+       "apihelp-query+alltransclusions-param-limit": "O número total de elementos a serem devolvidos.",
        "apihelp-query+alltransclusions-param-dir": "A direção de listagem.",
        "apihelp-query+allusers-description": "Enumerar todos os utilizadores registados.",
        "apihelp-query+allusers-param-from": "O nome de utilizador a partir do qual será começada a enumeração.",
+       "apihelp-query+allusers-param-to": "O nome de utilizador no qual será terminada a enumeração.",
+       "apihelp-query+allusers-param-prefix": "Procurar todos os nomes de utilizador que começam por este valor.",
        "apihelp-query+allusers-param-prop": "As informações que devem ser incluídas:",
+       "apihelp-query+allusers-paramvalue-prop-blockinfo": "Adiciona a informação sobre um bloqueio atual do utilizador.",
+       "apihelp-query+allusers-paramvalue-prop-editcount": "Adiciona a contagem de edições do utilizador.",
+       "apihelp-query+allusers-paramvalue-prop-centralids": "Adiciona os identificadores centrais e o estado de ligação central (''attachment'') do utilizador.",
+       "apihelp-query+allusers-param-limit": "O número total de nomes de utilizador a serem devolvidos.",
        "apihelp-query+allusers-param-witheditsonly": "Listar só os utilizadores que realizaram edições.",
        "apihelp-query+allusers-example-Y": "Lista de utilizadores que comecem com <kbd>Y</kbd>.",
        "apihelp-query+authmanagerinfo-description": "Obter informação sobre o atual estado de autenticação.",
        "apihelp-query+authmanagerinfo-example-securitysensitiveoperation": "Testar se a autenticação é suficiente para a operação <kbd>foo</kbd>.",
        "apihelp-query+backlinks-param-namespace": "O espaço nominal a ser enumerado.",
        "apihelp-query+backlinks-param-dir": "A direção de listagem.",
-       "apihelp-query+backlinks-param-limit": "O número de páginas totais a serem devolvidas. Se <var>$1redirect</var> estiver ativado, o nível aplica-se a cada nível em separado (o que significa que até 2 * <var>$1limit</var> resultados podem ser devolvidos).",
+       "apihelp-query+backlinks-param-limit": "O número total de páginas a serem devolvidas. Se <var>$1redirect</var> estiver ativado, o nível aplica-se a cada nível em separado (o que significa que até 2 * <var>$1limit</var> resultados podem ser devolvidos).",
        "apihelp-query+backlinks-example-simple": "Mostrar ligações para <kbd>Main page</kbd>.",
        "apihelp-query+backlinks-example-generator": "Obter informações sobre as páginas com ligação para <kbd>Main page</kbd>.",
        "apihelp-query+blocks-description": "Listar todos os utilizadores e endereços IP bloqueados.",
        "apihelp-query+blocks-param-start": "A data e hora a partir da qual será começada a enumeração.",
+       "apihelp-query+blocks-param-end": "A data e hora na qual será terminada a enumeração.",
+       "apihelp-query+blocks-param-users": "Lista dos utilizadores a serem procurados (opcional).",
        "apihelp-query+blocks-param-ip": "Obter todos os bloqueios aplicáveis a este endereço IP ou intervalo CIDR, incluindo bloqueios de intervalos. Não pode ser usado em conjunto com <var>$3users</var>. Não são aceites intervalos CIDR maiores que IPv4/$1 ou IPv6/$2.",
        "apihelp-query+blocks-param-limit": "O número máximo de bloqueios a listar.",
        "apihelp-query+blocks-param-prop": "As propriedades a serem obtidas:",
+       "apihelp-query+blocks-paramvalue-prop-id": "Adiciona o identificador do bloqueio.",
+       "apihelp-query+blocks-paramvalue-prop-userid": "Adiciona o identificador do utilizador bloqueado.",
+       "apihelp-query+blocks-paramvalue-prop-byid": "Adiciona o identificador do utilizador que fez o bloqueio.",
+       "apihelp-query+blocks-paramvalue-prop-expiry": "Adiciona a data e hora de expiração do bloqueio.",
        "apihelp-query+blocks-paramvalue-prop-range": "Adiciona o intervalo de endereços IP afetado pelo bloqueio.",
        "apihelp-query+blocks-param-show": "Mostrar só os bloqueios que preenchem estes critérios.\nPor exemplo, para ver só bloqueios indefinidos de endereços IP, defina <kbd>$1show=ip|!temp</kbd>.",
        "apihelp-query+categories-param-prop": "As propriedades adicionais que devem ser obtidas para cada categoria:",
+       "apihelp-query+categories-paramvalue-prop-sortkey": "Adiciona a chave de ordenação (''string'' hexadecimal) e o prefixo da chave de ordenação (parte legível) da categoria.",
        "apihelp-query+categories-param-show": "Os tipos de categorias que serão mostrados.",
+       "apihelp-query+categories-param-limit": "O número de categorias a serem devolvidas.",
        "apihelp-query+categories-param-categories": "Listar só estas categorias. Útil para verificar se uma determinada página está numa determinada categoria.",
        "apihelp-query+categories-param-dir": "A direção de listagem.",
        "apihelp-query+categorymembers-description": "Lista de todas as páginas numa categoria específica.",
        "apihelp-query+categorymembers-param-title": "A categoria que será enumerada (obrigatório). Tem de incluir o prefixo <kbd>{{ns:category}}:</kbd>. Não pode ser usado em conjunto com <var>$1pageid</var>.",
        "apihelp-query+categorymembers-param-pageid": "Identificador da categoria a ser enumerada. Não pode ser usado em conjunto com <var>$1title</var>.",
        "apihelp-query+categorymembers-param-prop": "As informações que devem ser incluídas:",
+       "apihelp-query+categorymembers-paramvalue-prop-ids": "Adiciona o identificador da página.",
+       "apihelp-query+categorymembers-paramvalue-prop-sortkey": "Adiciona a chave usada para a ordenação da categoria (''string'' hexadecimal).",
+       "apihelp-query+categorymembers-paramvalue-prop-type": "Adiciona o tipo com que a página foi categorizada (<samp>page</samp>, <samp>subcat</samp> ou <samp>file</samp>).",
        "apihelp-query+categorymembers-param-type": "O tipo de membros de categoria que devem ser incluídos. Ignorado se <kbd>$1sort=timestamp</kbd> estiver definido.",
+       "apihelp-query+categorymembers-param-limit": "O número máximo de páginas a serem devolvidas.",
+       "apihelp-query+categorymembers-param-sort": "Propriedade pela qual fazer a ordenação.",
        "apihelp-query+categorymembers-param-dir": "A direção de ordenação.",
+       "apihelp-query+categorymembers-param-start": "A data e hora da página a partir da qual será começada a listagem. Só pode ser usado em conjunto com <kbd>$1sort=timestamp</kbd>.",
+       "apihelp-query+categorymembers-param-end": "A data e hora da página na qual será terminada a listagem. Só pode ser usado em conjunto com <kbd>$1sort=timestamp</kbd>.",
+       "apihelp-query+contributors-param-limit": "O número de contribuidores a serem devolvidos.",
        "apihelp-query+deletedrevisions-param-start": "A data e hora a partir da qual será começada a enumeração. Ignorado ao processar uma lista de identificadores de revisão.",
+       "apihelp-query+deletedrevisions-param-end": "A data e hora na qual será terminada a enumeração. Ignorado ao processar uma lista de identificadores de revisão.",
        "apihelp-query+deletedrevisions-param-tag": "Listar só as revisões marcadas com esta etiqueta.",
+       "apihelp-query+deletedrevisions-param-user": "Listar só as revisões deste utilizador.",
+       "apihelp-query+deletedrevisions-param-excludeuser": "Não listar as revisões deste utilizador.",
+       "apihelp-query+deletedrevisions-example-titles": "Listar as revisões eliminadas das páginas <kbd>Main Page</kbd> e <kbd>Talk:Main Page</kbd>, com o conteúdo.",
+       "apihelp-query+deletedrevisions-example-revids": "Listar a informação da revisão eliminada <kbd>123456</kbd>.",
+       "apihelp-query+deletedrevs-description": "Listar as revisões eliminadas.\n\nOpera em três modos:\n# Listar as revisões eliminadas dos títulos indicados, ordenadas por data e hora.\n# Listar as contribuições eliminadas do utilizador indicado, ordenadas por data e hora (sem especificar títulos).\n# Listar todas as revisões eliminadas no espaço nominal indicado, ordenadas por título e por data e hora (sem especificar títulos, sem definir $1user).\n\nAlguns parâmetros só se aplicam a alguns modos e são ignorados noutros.",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Modo|Modos}}: $2",
        "apihelp-query+deletedrevs-param-start": "A data e hora a partir da qual será começada a enumeração.",
+       "apihelp-query+deletedrevs-param-end": "A data e hora na qual será terminada a enumeração.",
+       "apihelp-query+deletedrevs-param-from": "Começar a listagem neste título.",
+       "apihelp-query+deletedrevs-param-to": "Terminar a listagem neste título.",
+       "apihelp-query+deletedrevs-param-prefix": "Procurar todos os títulos de página que começam por este valor.",
+       "apihelp-query+deletedrevs-param-unique": "Listar só uma revisão para cada página.",
        "apihelp-query+deletedrevs-param-tag": "Listar só as revisões marcadas com esta etiqueta.",
+       "apihelp-query+deletedrevs-param-user": "Listar só as revisões deste utilizador.",
        "apihelp-query+deletedrevs-param-excludeuser": "Não listar edições deste utilizador.",
        "apihelp-query+deletedrevs-param-namespace": "Listar apenas as páginas neste domínio.",
-       "apihelp-query+deletedrevs-param-prop": "As propriedades a serem obtidas:\n;revid:Adiciona o identificador de revisão da revisão eliminada.\n;parentid:Adiciona o identificador de revisão da revisão anterior da página.\n;user:Adiciona o utilizador que fez a revisão.\n;userid:Adiciona o identificador do utilizador que fez a revisão.\n;comment:Adiciona o comentário da revisão.\n;parsedcomment:Adiciona o comentário da revisão após passagem pelo analisador sintático.\n;minor:Etiqueta a revisão como uma revisão menor.\n;len:Adiciona o comprimento (em bytes) da revisão.\n;sha1:Adiciona o SHA-1 (base 16) da revisão.\n;content:Adiciona o conteúdo da revisão.\n;token:<span class=\"apihelp-deprecated\">Obsoleto.</span> Fornece a chave da edição.\n;tags:Etiquetas da revisão.",
+       "apihelp-query+deletedrevs-param-limit": "O número máximo de revisões a serem listadas.",
+       "apihelp-query+deletedrevs-param-prop": "As propriedades a serem obtidas:\n;revid:Adiciona o identificador da revisão eliminada.\n;parentid:Adiciona o identificador da revisão anterior da página.\n;user:Adiciona o utilizador que fez a revisão.\n;userid:Adiciona o identificador do utilizador que fez a revisão.\n;comment:Adiciona o comentário da revisão.\n;parsedcomment:Adiciona o comentário da revisão após passagem pelo analisador sintático.\n;minor:Etiqueta a revisão como uma revisão menor.\n;len:Adiciona o comprimento (em bytes) da revisão.\n;sha1:Adiciona o SHA-1 (base 16) da revisão.\n;content:Adiciona o conteúdo da revisão.\n;token:<span class=\"apihelp-deprecated\">Obsoleto.</span> Fornece a chave da edição.\n;tags:Etiquetas da revisão.",
+       "apihelp-query+deletedrevs-example-mode2": "Listar as últimas 50 contribuições eliminadas do utilizador <kbd>Bob</kbd> (modo 2).",
+       "apihelp-query+deletedrevs-example-mode3-main": "Listar as primeiras 50 páginas eliminadas no espaço nominal principal (modo 3).",
+       "apihelp-query+deletedrevs-example-mode3-talk": "Listar as primeiras 50 páginas eliminadas no espaço nominal {{ns:talk}} (modo 3).",
+       "apihelp-query+duplicatefiles-param-limit": "O número de ficheiros duplicados a serem devolvidos.",
        "apihelp-query+duplicatefiles-param-dir": "A direção de listagem.",
        "apihelp-query+embeddedin-param-namespace": "O espaço nominal a ser enumerado.",
        "apihelp-query+embeddedin-param-dir": "A direção de listagem.",
+       "apihelp-query+embeddedin-param-limit": "O número total de páginas a serem devolvidas.",
        "apihelp-query+extlinks-description": "Devolve todos os URL externos (que não sejam interwikis) das páginas especificadas.",
+       "apihelp-query+extlinks-param-limit": "O número de ''links'' a serem devolvidos.",
        "apihelp-query+extlinks-param-protocol": "Protocolo do URL. Se vazio e <var>$1query</var> está definido, o protocolo é <kbd>http</kbd>. Deixe isto e  <var>$1query</var> vazios para listar todos os <i>links</i> externos.",
        "apihelp-query+extlinks-param-query": "Texto de pesquisa sem protocolo. Útil para verificar se uma determinada página contém um determinado URL externo.",
        "apihelp-query+extlinks-example-simple": "Obtenha uma lista de ligações externas na <kbd>Main Page</kbd>.",
        "apihelp-query+exturlusage-description": "Enumerar as páginas que contêm um determinado URL.",
        "apihelp-query+exturlusage-param-prop": "As informações que devem ser incluídas:",
+       "apihelp-query+exturlusage-paramvalue-prop-ids": "Adiciona o identificador da página.",
        "apihelp-query+exturlusage-paramvalue-prop-url": "Adiciona o URL usado na página.",
        "apihelp-query+exturlusage-param-protocol": "Protocolo do URL. Se vazio e <var>$1query</var> está definido, o protocolo é <kbd>http</kbd>. Deixe isto e  <var>$1query</var> vazios para listar todos os <i>links</i> externos.",
        "apihelp-query+exturlusage-param-namespace": "Os espaços nominais a serem enumerados.",
+       "apihelp-query+exturlusage-param-limit": "O número de páginas a serem devolvidas.",
        "apihelp-query+exturlusage-param-expandurl": "Expandir URL relativos a protocolos com o protocolo canónico.",
        "apihelp-query+filearchive-description": "Enumerar todos os ficheiros eliminados sequencialmente.",
        "apihelp-query+filearchive-param-from": "O título da imagem a partir do qual será começada a enumeração.",
+       "apihelp-query+filearchive-param-to": "O título da imagem no qual será terminada a enumeração.",
+       "apihelp-query+filearchive-param-prefix": "Procurar todos os títulos de imagem que começam por este valor.",
        "apihelp-query+filearchive-param-dir": "A direção de listagem.",
        "apihelp-query+filearchive-param-prop": "As informações da imagem que devem ser obtidas:",
-       "apihelp-query+filearchive-example-simple": "Mostrar lista de todos os ficheiros eliminados",
+       "apihelp-query+filearchive-paramvalue-prop-sha1": "Adiciona o resumo criptográfico SHA-1 da imagem.",
+       "apihelp-query+filearchive-paramvalue-prop-user": "Adiciona o utilizador que carregou a versão da imagem.",
+       "apihelp-query+filearchive-paramvalue-prop-description": "Adiciona a descrição da versão da imagem.",
+       "apihelp-query+filearchive-paramvalue-prop-mime": "Adiciona o tipo MIME da imagem.",
+       "apihelp-query+filearchive-paramvalue-prop-bitdepth": "Adiciona a profundidade em ''bits'' da versão.",
+       "apihelp-query+filearchive-example-simple": "Mostrar uma lista de todos os ficheiros eliminados.",
        "apihelp-query+filerepoinfo-param-prop": "As propriedades do repositório que devem ser obtidas (em algumas wikis poderão haver mais disponíveis):\n;apiurl:URL para a API do repositório - útil para obter informação de imagens do servidor.\n;name:A chave para o repositório - usada, por exemplo, em <var>[[mw:Manual:$wgForeignFileRepos|$wgForeignFileRepos]]</var> e nos valores de retorno de [[Special:ApiHelp/query+imageinfo|imageinfo]].\n;displayname:O nome legível da wiki repositório.\n;rooturl:URL de raiz para endereços de imagens.\n;local:Se o repositório é o local ou não.",
        "apihelp-query+fileusage-param-prop": "As propriedades a serem obtidas:",
        "apihelp-query+fileusage-paramvalue-prop-redirect": "Indicar se a página é um redirecionamento.",
+       "apihelp-query+fileusage-param-limit": "O número de elementos a serem devolvidos.",
        "apihelp-query+imageinfo-param-prop": "As informações do ficheiro que devem ser obtidas:",
+       "apihelp-query+imageinfo-paramvalue-prop-timestamp": "Adiciona a data e hora da versão carregada.",
+       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "Adiciona o título canónico do ficheiro.",
        "apihelp-query+imageinfo-paramvalue-prop-url": "Devolve URL para o ficheiro e página de descrição.",
+       "apihelp-query+imageinfo-paramvalue-prop-size": "Adiciona o tamanho do ficheiro em ''bytes'' e a altura, largura e contagem de páginas (se aplicável).",
+       "apihelp-query+imageinfo-paramvalue-prop-sha1": "Adiciona o resumo criptográfico SHA-1 do ficheiro.",
        "apihelp-query+imageinfo-paramvalue-prop-thumbmime": "Adiciona o tipo MIME da miniatura (requer URL e o parâmetro $1urlwidth).",
+       "apihelp-query+imageinfo-paramvalue-prop-archivename": "Adiciona o nome de ficheiro da versão arquivada das versões anteriores à última.",
+       "apihelp-query+imageinfo-paramvalue-prop-bitdepth": "Adiciona a profundidade em ''bits'' da versão.",
+       "apihelp-query+imageinfo-param-start": "Data e hora a partir da qual será começada a listagem.",
+       "apihelp-query+imageinfo-param-end": "Data e hora na qual será terminada a listagem.",
        "apihelp-query+imageinfo-param-urlwidth": "Se $2prop=url está definido, será devolvido um URL para uma imagem redimensionada com este comprimento.\nPor razões de desempenho, se esta opção for usada não serão devolvidas mais de $1 imagens redimensionadas.",
        "apihelp-query+imageinfo-param-extmetadatalanguage": "Em que língua obter extmetadata. Isto afeta tanto a tradução que será obtida, caso existam várias, como a formatação de números e vários outros valores.",
+       "apihelp-query+images-param-limit": "O número de ficheiros a serem devolvidos.",
        "apihelp-query+images-param-images": "Listar só estes ficheiros. Útil para verificar se uma determinada página tem um determinado ficheiro.",
        "apihelp-query+images-param-dir": "A direção de listagem.",
        "apihelp-query+imageusage-param-namespace": "O espaço nominal a ser enumerado.",
        "apihelp-query+imageusage-param-dir": "A direção de listagem.",
+       "apihelp-query+imageusage-param-limit": "O número total de páginas a serem devolvidas. Se <var>$1redirect</var> estiver ativado, o nível aplica-se a cada nível em separado (o que significa que até 2 * <var>$1limit</var> resultados podem ser devolvidos).",
        "apihelp-query+info-description": "Obter informação básica da página.",
        "apihelp-query+info-param-prop": "As propriedades adicionais que devem ser obtidas:",
        "apihelp-query+info-paramvalue-prop-notificationtimestamp": "A data e hora das notificações de alterações de cada página vigiada.",
        "apihelp-query+info-paramvalue-prop-readable": "Indica se o utilizador pode ler esta página.",
        "apihelp-query+info-param-testactions": "Testar se o utilizador pode realizar certas operações na página.",
        "apihelp-query+info-param-token": "Em substituição, usar [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
+       "apihelp-query+iwbacklinks-param-title": "Link interwikis a ser procurado. Tem de ser usado em conjunto com <var>$1blprefix</var>.",
+       "apihelp-query+iwbacklinks-param-limit": "O número total de páginas a serem devolvidas.",
        "apihelp-query+iwbacklinks-param-prop": "As propriedades a serem obtidas:",
+       "apihelp-query+iwbacklinks-paramvalue-prop-iwprefix": "Adiciona o prefixo da ligação interwikis.",
        "apihelp-query+iwbacklinks-param-dir": "A direção de listagem.",
        "apihelp-query+iwlinks-param-url": "Indica se deve ser obtido o URL completo (não pode ser usado com $1prop).",
        "apihelp-query+iwlinks-param-prop": "As propriedades adicionais que devem ser obtidas para cada ''link'' interlínguas:",
        "apihelp-query+iwlinks-paramvalue-prop-url": "Adiciona o URL completo.",
+       "apihelp-query+iwlinks-param-limit": "O número de ''links'' interwikis a serem devolvidos.",
+       "apihelp-query+iwlinks-param-title": "Link interwikis a ser procurado. Tem de ser usado em conjunto com <var>$1prefix</var>.",
        "apihelp-query+iwlinks-param-dir": "A direção de listagem.",
+       "apihelp-query+langbacklinks-param-title": "Link interlínguas a ser procurado. Tem de ser usado com $1lang.",
+       "apihelp-query+langbacklinks-param-limit": "O número total de páginas a serem devolvidas.",
        "apihelp-query+langbacklinks-param-prop": "As propriedades a serem obtidas:",
+       "apihelp-query+langbacklinks-paramvalue-prop-lllang": "Adiciona o código de língua da ligação interlínguas.",
        "apihelp-query+langbacklinks-param-dir": "A direção de listagem.",
+       "apihelp-query+langlinks-param-limit": "O número de ''links'' interlínguas a serem devolvidos.",
        "apihelp-query+langlinks-param-url": "Indica se deve ser obtido o URL completo (não pode ser usado com $1prop).",
        "apihelp-query+langlinks-param-prop": "As propriedades adicionais que devem ser obtidas para cada ''link'' interlínguas:",
        "apihelp-query+langlinks-paramvalue-prop-url": "Adiciona o URL completo.",
+       "apihelp-query+langlinks-paramvalue-prop-autonym": "Adiciona o nome nativo da língua.",
+       "apihelp-query+langlinks-param-title": "Link a ser procurado. Tem de ser usado com <var>$1lang</var>.",
        "apihelp-query+langlinks-param-dir": "A direção de listagem.",
+       "apihelp-query+links-param-limit": "O número de ''links'' a serem devolvidos.",
        "apihelp-query+links-param-titles": "Listar só as ligações para estes títulos. Útil para verificar se uma determinada página contém ligações para um determinado título.",
        "apihelp-query+links-param-dir": "A direção de listagem.",
        "apihelp-query+linkshere-param-prop": "As propriedades a serem obtidas:",
        "apihelp-query+linkshere-paramvalue-prop-redirect": "Indicar se a página é um redirecionamento.",
+       "apihelp-query+linkshere-param-limit": "O número de elementos a serem devolvidos.",
        "apihelp-query+logevents-param-prop": "As propriedades a serem obtidas:",
+       "apihelp-query+logevents-paramvalue-prop-ids": "Adiciona o identificador do evento no registo.",
+       "apihelp-query+logevents-paramvalue-prop-type": "Adiciona o tipo do evento no registo.",
+       "apihelp-query+logevents-paramvalue-prop-userid": "Adiciona o identificador do utilizador responsável pelo evento no registo.",
+       "apihelp-query+logevents-paramvalue-prop-comment": "Adiciona o comentário do evento no registo.",
        "apihelp-query+logevents-param-start": "A data e hora a partir da qual será começada a enumeração.",
+       "apihelp-query+logevents-param-end": "A data e hora na qual será terminada a enumeração.",
        "apihelp-query+logevents-param-tag": "Listar só as entradas de eventos marcadas com esta etiqueta.",
+       "apihelp-query+logevents-param-limit": "O número total de entradas de eventos a serem devolvidas.",
+       "apihelp-query+pagepropnames-param-limit": "O número máximo de nomes a serem devolvidos.",
        "apihelp-query+pageprops-param-prop": "Listar só estas propriedades de página (<kbd>[[Special:ApiHelp/query+pagepropnames|action=query&list=pagepropnames]]</kbd> devolve os nomes das propriedades de página em uso). Útil para verificar se as páginas usam uma determinada propriedade de página.",
        "apihelp-query+pageswithprop-param-propname": "A propriedade de página a partir da qual as páginas serão enumeradas (<kbd>[[Special:ApiHelp/query+pagepropnames|action=query&list=pagepropnames]]</kbd> devolve os nomes das propriedades de página que estão a ser usadas).",
        "apihelp-query+pageswithprop-param-prop": "As informações que devem ser incluídas:",
+       "apihelp-query+pageswithprop-paramvalue-prop-ids": "Adiciona o identificador da página.",
+       "apihelp-query+pageswithprop-paramvalue-prop-value": "Adiciona o valor da propriedade da página.",
+       "apihelp-query+pageswithprop-param-limit": "O número máximo de páginas a serem devolvidas.",
        "apihelp-query+pageswithprop-param-dir": "A direção de ordenação.",
+       "apihelp-query+prefixsearch-description": "Realizar uma procura de prefixo nos títulos de página.\n\nApesar da semelhança de nomes, este módulo não pretende ser equivalente a [[Special:PrefixIndex]]; para este, consulte <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd> com o parâmetro <kbd>apprefix</kbd>. O propósito deste módulo é semelhante a <kbd>[[Special:ApiHelp/opensearch|action=opensearch]]</kbd>: receber dados introduzidos pelo utilizador e devolver os títulos com melhor correspondência. Dependendo do motor de busca do servidor, isto pode incluir correções de erros ortográficos, evitar redirecionamentos, e outras heurísticas.",
+       "apihelp-query+prefixsearch-param-limit": "O número máximo de resultados a serem devolvidos.",
+       "apihelp-query+prefixsearch-example-simple": "Procurar os títulos de página que começam por <kbd>meaning</kbd>.",
        "apihelp-query+protectedtitles-param-namespace": "Listar só os títulos neste espaço nominal.",
+       "apihelp-query+protectedtitles-param-limit": "O número total de páginas a serem devolvidas.",
        "apihelp-query+protectedtitles-param-prop": "As propriedades a serem obtidas:",
+       "apihelp-query+protectedtitles-paramvalue-prop-timestamp": "Adiciona a data e hora a que a proteção foi adicionada.",
+       "apihelp-query+protectedtitles-paramvalue-prop-userid": "Adiciona o identificador do utilizador que fez a proteção.",
+       "apihelp-query+protectedtitles-paramvalue-prop-parsedcomment": "Adiciona o comentário da proteção após a análise sintática.",
+       "apihelp-query+protectedtitles-paramvalue-prop-expiry": "Adiciona a data e hora a que a proteção foi removida.",
+       "apihelp-query+protectedtitles-paramvalue-prop-level": "Adiciona o nível de proteção.",
+       "apihelp-query+querypage-param-limit": "O número de resultados a serem devolvidos.",
        "apihelp-query+recentchanges-description": "Enumerar as mudanças recentes.",
        "apihelp-query+recentchanges-param-start": "A data e hora a partir da qual será começada a enumeração.",
+       "apihelp-query+recentchanges-param-end": "A data e hora na qual será terminada a enumeração.",
        "apihelp-query+recentchanges-param-user": "Listar só as alterações deste utilizador.",
        "apihelp-query+recentchanges-param-tag": "Listar só as alterações marcadas com esta etiqueta.",
+       "apihelp-query+recentchanges-param-prop": "Incluir informações adicionais:",
        "apihelp-query+recentchanges-paramvalue-prop-user": "Adiciona o utilizador responsável pela edição e marca se o utilizador é um endereço IP.",
-       "apihelp-query+recentchanges-paramvalue-prop-flags": "Adiciona indicações para a edição.",
+       "apihelp-query+recentchanges-paramvalue-prop-userid": "Adiciona o identificador do utilizador responsável pela edição.",
+       "apihelp-query+recentchanges-paramvalue-prop-comment": "Adiciona o comentário da edição.",
+       "apihelp-query+recentchanges-paramvalue-prop-parsedcomment": "Adiciona o comentário da edição, após análise sintática.",
+       "apihelp-query+recentchanges-paramvalue-prop-flags": "Adiciona as etiquetas da edição.",
+       "apihelp-query+recentchanges-paramvalue-prop-timestamp": "Adiciona a data e hora da edição.",
+       "apihelp-query+recentchanges-paramvalue-prop-title": "Adiciona o título de página da edição.",
+       "apihelp-query+recentchanges-paramvalue-prop-ids": "Adiciona o identificadores da página, das mudanças recentes, e das revisões nova e antiga.",
+       "apihelp-query+recentchanges-paramvalue-prop-sizes": "Adiciona os tamanhos antigo e novo da página em ''bytes''.",
+       "apihelp-query+recentchanges-paramvalue-prop-redirect": "Etiqueta a página se esta for um redirecionamento.",
+       "apihelp-query+recentchanges-paramvalue-prop-patrolled": "Etiqueta as edições que podem ser patrulhadas, marcando-as como patrulhadas ou não patrulhadas.",
+       "apihelp-query+recentchanges-paramvalue-prop-loginfo": "Adiciona informação de registo (identificador do registo, tipo de entrada, etc.) às entradas do registo.",
+       "apihelp-query+recentchanges-paramvalue-prop-tags": "Lista as etiquetas da entrada.",
+       "apihelp-query+recentchanges-paramvalue-prop-sha1": "Adiciona a soma de controlo do conteúdo para as entradas associadas com uma revisão.",
        "apihelp-query+recentchanges-param-token": "Em substituição, usar <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
+       "apihelp-query+recentchanges-param-show": "Mostrar só as entradas que correspondem a estes critérios. Por exemplo, para ver só as edições menores feitas por utilizadores autenticados, defina $1show=minor|!anon.",
+       "apihelp-query+recentchanges-param-limit": "O número total de mudanças a serem devolvidas.",
+       "apihelp-query+recentchanges-param-type": "Os tipos de mudanças a serem mostradas.",
        "apihelp-query+recentchanges-param-toponly": "Listar só as alterações que são a revisão mais recente.",
-       "apihelp-query+recentchanges-example-simple": "Lista de mudanças recentes",
+       "apihelp-query+recentchanges-param-generaterevisions": "Quando usado como gerador, gerar identificadores de revisões em vez de títulos. As entradas das mudanças recentes que não tenham identificadores de revisão associados (por exemplo, a maioria das entradas do registo) não geram nada.",
+       "apihelp-query+recentchanges-example-simple": "Listar as mudanças recentes.",
+       "apihelp-query+recentchanges-example-generator": "Obter informação de página acerca das mudanças recentes não patrulhadas.",
+       "apihelp-query+redirects-description": "Devolve todos os redirecionamentos para as páginas indicadas.",
        "apihelp-query+redirects-param-prop": "As propriedades a serem obtidas:",
+       "apihelp-query+redirects-paramvalue-prop-pageid": "O identificador de página de cada redirecionamento.",
+       "apihelp-query+redirects-paramvalue-prop-title": "O título de cada redirecionamento.",
+       "apihelp-query+redirects-paramvalue-prop-fragment": "O fragmento de cada redirecionamento, se existir.",
+       "apihelp-query+redirects-param-namespace": "Incluir só as páginas destes espaços nominais.",
+       "apihelp-query+redirects-param-limit": "O número de redirecionamentos a serem devolvidos.",
+       "apihelp-query+redirects-param-show": "Mostrar só as páginas que correspondem a estes critérios:\n;fragment:Mostrar só os redirecionamentos com um fragmento.\n;!fragment:Mostrar só os redirecionamentos sem um fragmento.",
+       "apihelp-query+redirects-example-simple": "Obter uma lista dos redirecionamentos para a página [[Main Page]].",
+       "apihelp-query+redirects-example-generator": "Obter informação sobre todos os redirecionamentos para a página [[Main Page]].",
+       "apihelp-query+revisions-description": "Obter informação da revisão.\n\nPode ser usado de várias maneiras:\n# Obter dados sobre um conjunto de páginas (última revisão), definindo títulos ou identificadores de páginas.\n# Obter as revisões de uma página indicada, usando títulos ou identificadores de páginas, com início, fim ou limite.\n# Obter dados sobre um conjunto de revisões definindo identificadores de revisões.",
+       "apihelp-query+revisions-paraminfo-singlepageonly": "Só pode ser usado com uma única página (modo #2)",
        "apihelp-query+revisions-param-startid": "O identificador de revisão a partir do qual será começada a enumeração.",
+       "apihelp-query+revisions-param-endid": "Terminar a enumeração de revisões neste identificador de revisão.",
        "apihelp-query+revisions-param-start": "A data e hora da revisão a partir da qual será começada a enumeração.",
+       "apihelp-query+revisions-param-end": "A data e hora da revisão na qual será terminada a enumeração.",
+       "apihelp-query+revisions-param-user": "Incluir só as revisões deste utilizador.",
+       "apihelp-query+revisions-param-excludeuser": "Excluir as revisões deste utilizador.",
        "apihelp-query+revisions-param-tag": "Listar só as revisões marcadas com esta etiqueta.",
        "apihelp-query+revisions-param-token": "Que chaves obter para cada revisão.",
        "apihelp-query+revisions+base-param-prop": "As propriedades a serem obtidas para cada revisão:",
        "apihelp-query+revisions+base-paramvalue-prop-flags": "Indicações de revisão (menor).",
+       "apihelp-query+revisions+base-paramvalue-prop-timestamp": "A data e hora da revisão.",
+       "apihelp-query+search-param-search": "Procurar os títulos de página ou o conteúdo que corresponda a este valor. Pode usar o texto da pesquisa para invocar funcionalidades de pesquisa especiais, dependendo dos meios de pesquisa do servidor da wiki.",
        "apihelp-query+search-param-what": "O tipo de pesquisa a executar.",
+       "apihelp-query+search-param-info": "Quais os metadados a serem devolvidos.",
        "apihelp-query+search-param-prop": "As propriedades a serem devolvidas:",
+       "apihelp-query+search-paramvalue-prop-size": "Adiciona o tamanho da página em ''bytes''.",
+       "apihelp-query+search-paramvalue-prop-wordcount": "Adiciona o número de palavras da página.",
+       "apihelp-query+search-paramvalue-prop-timestamp": "Adiciona a data e hora a que a página foi editada pela última vez.",
+       "apihelp-query+search-paramvalue-prop-snippet": "Adiciona um fragmento de código com a página, após análise sintática.",
+       "apihelp-query+search-paramvalue-prop-titlesnippet": "Adiciona um fragmento de código com o título da página, após análise sintática.",
+       "apihelp-query+search-paramvalue-prop-redirectsnippet": "Adiciona um fragmento de código com o título redirecionado, após análise sintática.",
+       "apihelp-query+search-paramvalue-prop-redirecttitle": "Adiciona o título do redirecionamento correspondente.",
+       "apihelp-query+search-paramvalue-prop-sectionsnippet": "Adiciona um fragmento de código com o título da secção correspondente, após análise sintática.",
+       "apihelp-query+search-paramvalue-prop-sectiontitle": "Adiciona o título da secção correspondente.",
+       "apihelp-query+search-paramvalue-prop-categorysnippet": "Adiciona um fragmento de código com a categoria correspondente, após análise sintática.",
+       "apihelp-query+search-paramvalue-prop-isfilematch": "Adiciona um valor booleano que indica se a pesquisa encontrou correspondência no conteúdo de ficheiros.",
+       "apihelp-query+search-paramvalue-prop-score": "<span class=\"apihelp-deprecated\">Obsoleto e ignorado.</span>",
+       "apihelp-query+search-paramvalue-prop-hasrelated": "<span class=\"apihelp-deprecated\">Obsoleto e ignorado.</span>",
+       "apihelp-query+search-param-limit": "O número total de páginas a serem devolvidas.",
+       "apihelp-query+search-param-interwiki": "Incluir resultados interwikis na pesquisa, se disponíveis.",
        "apihelp-query+search-param-backend": "O servidor de pesquisas a ser usado, se diferente do servidor padrão.",
        "apihelp-query+search-param-enablerewrites": "Ativar reescrita da consulta interna. Alguns motores de busca podem reescrever a consulta, substituindo-a por outra que consideram que dará melhores resultados, como acontece na correção de erros de ortografia.",
+       "apihelp-query+search-example-simple": "Procurar <kbd>meaning</kbd>.",
+       "apihelp-query+search-example-generator": "Obter informação sobre as páginas devolvidas por uma pesquisa do termo <kbd>meaning</kbd>.",
+       "apihelp-query+siteinfo-description": "Devolver informação geral sobre o ''site''.",
        "apihelp-query+siteinfo-param-prop": "A informação a ser obtida:",
+       "apihelp-query+siteinfo-paramvalue-prop-general": "Informação global do sistema.",
+       "apihelp-query+siteinfo-paramvalue-prop-namespaces": "Uma lista dos espaços nominais registados e dos seus nomes canónicos.",
+       "apihelp-query+siteinfo-paramvalue-prop-namespacealiases": "Uma lista dos nomes alternativos dos espaços nominais registados.",
+       "apihelp-query+siteinfo-paramvalue-prop-specialpagealiases": "Uma lista dos nomes alternativos das páginas especiais.",
+       "apihelp-query+siteinfo-paramvalue-prop-magicwords": "Uma lista das palavras mágicas e dos seus nomes alternativos.",
+       "apihelp-query+siteinfo-paramvalue-prop-statistics": "Devolve as estatísticas do ''site''.",
+       "apihelp-query+siteinfo-paramvalue-prop-interwikimap": "Devolve o mapa de interwikis (opcionalmente filtrado, opcionalmente localizado usando <var>$1inlanguagecode</var>).",
        "apihelp-query+siteinfo-paramvalue-prop-dbrepllag": "Devolve o servidor da base de dados com o maior atraso de replicação.",
+       "apihelp-query+siteinfo-paramvalue-prop-usergroups": "Devolve os grupos de utilizadores e as permissões associadas.",
+       "apihelp-query+siteinfo-paramvalue-prop-libraries": "Devolve as bibliotecas instaladas na wiki.",
+       "apihelp-query+siteinfo-paramvalue-prop-extensions": "Devolve as extensões instaladas na wiki.",
+       "apihelp-query+siteinfo-paramvalue-prop-fileextensions": "Devolve uma lista das extensões (tipos) dos ficheiros que podem ser carregados.",
+       "apihelp-query+siteinfo-paramvalue-prop-rightsinfo": "Devolve informação sobre os direitos (a licença) da wiki, se disponível.",
+       "apihelp-query+siteinfo-paramvalue-prop-restrictions": "Devolve informação sobre os tipos de restrição (proteção) disponíveis.",
+       "apihelp-query+siteinfo-paramvalue-prop-languages": "Devolve uma lista das línguas que o MediaWiki suporta (opcionalmente localizada, usando <var>$1inlanguagecode</var>).",
+       "apihelp-query+siteinfo-paramvalue-prop-skins": "Devolve uma lista de todos os temas ativados (opcionalmente localizada, usando <var>$1inlanguagecode</var>, ou então na língua do conteúdo).",
+       "apihelp-query+siteinfo-paramvalue-prop-extensiontags": "Devolve uma lista dos elementos de extensões do analisador sintático.",
+       "apihelp-query+siteinfo-paramvalue-prop-functionhooks": "Devolve uma lista dos ''hooks'' de funções do analisador sintático.",
+       "apihelp-query+siteinfo-paramvalue-prop-showhooks": "Devolve uma lista de todos os ''hooks'' subscritos (conteúdo de <var>[[mw:Manual:$wgHooks|$wgHooks]]</var>).",
+       "apihelp-query+siteinfo-paramvalue-prop-variables": "Devolve uma lista de identificadores de variáveis.",
+       "apihelp-query+siteinfo-paramvalue-prop-protocols": "Devolve uma lista dos protocolos permitidos nos ''links'' externos.",
+       "apihelp-query+siteinfo-paramvalue-prop-defaultoptions": "Devolve os valores padrão para as preferências dos utilizadores.",
+       "apihelp-query+siteinfo-paramvalue-prop-uploaddialog": "Devolve a configuração do diálogo de carregamento.",
+       "apihelp-query+siteinfo-param-filteriw": "Devolver só as entradas locais, ou só as não locais, do mapa de interwikis.",
        "apihelp-query+siteinfo-param-showalldb": "Listar todos os servidores da base de dados, não só aquele que tem maior atraso.",
+       "apihelp-query+siteinfo-param-numberingroup": "Lista o número de utilizadores nos grupos de utilizadores.",
+       "apihelp-query+siteinfo-param-inlanguagecode": "Código de língua dos nomes localizados (o melhor possível) das línguas e temas.",
+       "apihelp-query+siteinfo-example-simple": "Obter informação do ''site''.",
+       "apihelp-query+siteinfo-example-interwiki": "Obter uma lista dos prefixos interwikis locais.",
        "apihelp-query+siteinfo-example-replag": "Verificar o atraso de replicação atual.",
+       "apihelp-query+stashimageinfo-description": "Devolve informações dos ficheiros escondidos.",
+       "apihelp-query+stashimageinfo-param-filekey": "Chave que identifica um carregamento anterior que foi escondido temporariamente.",
+       "apihelp-query+stashimageinfo-param-sessionkey": "Nome alternativo de $1filekey, para compatibilidade com versões anteriores.",
+       "apihelp-query+stashimageinfo-example-simple": "Devolve informação sobre um ficheiro escondido.",
+       "apihelp-query+stashimageinfo-example-params": "Devolve as miniaturas de dois ficheiros escondidos.",
+       "apihelp-query+tags-description": "Listar as etiquetas de modificação.",
+       "apihelp-query+tags-param-limit": "O número máximo de etiquetas a serem listadas.",
        "apihelp-query+tags-param-prop": "As propriedades a serem obtidas:",
+       "apihelp-query+tags-paramvalue-prop-name": "Adiciona o nome da etiqueta.",
+       "apihelp-query+tags-paramvalue-prop-displayname": "Adiciona a mensagem de sistema para a etiqueta.",
+       "apihelp-query+tags-paramvalue-prop-description": "Adiciona a descrição da etiqueta.",
+       "apihelp-query+tags-paramvalue-prop-hitcount": "Adiciona o número de revisões e de entradas no registo que têm esta etiqueta.",
+       "apihelp-query+tags-paramvalue-prop-defined": "Indicar se a etiqueta está definida.",
+       "apihelp-query+tags-paramvalue-prop-source": "Obter as fontes da etiqueta, que podem incluir <samp>extension</samp> para etiquetas definidas por extensões e <samp>manual</samp> para etiquetas que podem ser manualmente aplicadas pelos utilizadores.",
+       "apihelp-query+tags-paramvalue-prop-active": "Indica se a etiqueta ainda está a ser aplicada.",
+       "apihelp-query+tags-example-simple": "Listar as etiquetas disponíveis.",
+       "apihelp-query+templates-description": "Devolve todas as páginas que são transcluídas nas páginas indicadas.",
+       "apihelp-query+templates-param-namespace": "Mostrar só as predefinições nestes espaços nominais.",
+       "apihelp-query+templates-param-limit": "O número de predefinições a serem devolvidas.",
        "apihelp-query+templates-param-templates": "Listar só estas predefinições. Útil para verificar se uma determinada página contém uma determinada predefinição.",
        "apihelp-query+templates-param-dir": "A direção de listagem.",
+       "apihelp-query+templates-example-simple": "Obter as predefinições usadas na página <kbd>Main Page</kbd>.",
+       "apihelp-query+templates-example-generator": "Obter informação sobre as páginas das predefinições usadas na página <kbd>Main Page</kbd>.",
+       "apihelp-query+templates-example-namespaces": "Obter as páginas dos espaços nominais {{ns:user}} e {{ns:template}} que são transcluídas na página <kbd>Main Page</kbd>.",
        "apihelp-query+tokens-description": "Obtém chaves para operações de modificação de dados.",
        "apihelp-query+tokens-param-type": "Tipos de chave a pedir.",
        "apihelp-query+tokens-example-simple": "Obter uma chave csfr (padrão).",
        "apihelp-query+tokens-example-types": "Obter uma chave de vigilância e uma chave de patrulha.",
+       "apihelp-query+transcludedin-description": "Obter todas as páginas que transcluem as páginas indicadas.",
        "apihelp-query+transcludedin-param-prop": "As propriedades a serem obtidas:",
+       "apihelp-query+transcludedin-paramvalue-prop-pageid": "O identificador de cada página.",
+       "apihelp-query+transcludedin-paramvalue-prop-title": "O título de cada página.",
        "apihelp-query+transcludedin-paramvalue-prop-redirect": "Indicar se a página é um redirecionamento.",
+       "apihelp-query+transcludedin-param-namespace": "Incluir só as páginas nestes espaços nominais.",
+       "apihelp-query+transcludedin-param-limit": "O número de entradas a serem devolvidas.",
+       "apihelp-query+transcludedin-param-show": "Mostrar só as entradas que correspondem a estes critérios:\n;redirect:Mostrar só os redirecionamentos.\n;!redirect:Mostrar só as que não são redirecionamentos.",
+       "apihelp-query+transcludedin-example-simple": "Obter uma lista das páginas que transcluem <kbd>Main Page</kbd>.",
+       "apihelp-query+transcludedin-example-generator": "Obter informação sobre as páginas que transcluem <kbd>Main Page</kbd>.",
+       "apihelp-query+usercontribs-description": "Obter todas as edições de um utilizador.",
+       "apihelp-query+usercontribs-param-limit": "O número máximo de contribuições a serem devolvidas.",
+       "apihelp-query+usercontribs-param-start": "A data e hora da contribuição pela qual será começada a devolução de resultados.",
+       "apihelp-query+usercontribs-param-end": "A data e hora da contribuição na qual será terminada a devolução de resultados.",
        "apihelp-query+usercontribs-param-namespace": "Listar só as contribuições nestes espaços nominais.",
+       "apihelp-query+usercontribs-paramvalue-prop-ids": "Adiciona os identificadores da página e da revisão.",
+       "apihelp-query+usercontribs-paramvalue-prop-timestamp": "Adiciona a data e hora da edição.",
+       "apihelp-query+usercontribs-paramvalue-prop-parsedcomment": "Adiciona o comentário da edição, após análise sintática.",
+       "apihelp-query+usercontribs-paramvalue-prop-sizediff": "Adiciona a diferença de tamanho entre a edição e a sua progenitora.",
        "apihelp-query+usercontribs-paramvalue-prop-flags": "Adiciona indicações da edição.",
        "apihelp-query+usercontribs-param-tag": "Listar só as revisões marcadas com esta etiqueta.",
        "apihelp-query+usercontribs-param-toponly": "Listar só as alterações que são a revisão mais recente.",
        "apihelp-query+usercontribs-example-ipprefix": "Mostrar as contribuições de todos os endereços IP com o prefixo <kbd>192.0.2.</kbd>.",
        "apihelp-query+userinfo-param-prop": "As informações que devem ser incluídas:",
+       "apihelp-query+userinfo-paramvalue-prop-hasmsg": "Adiciona uma etiqueta <samp>messages</samp> se o utilizador atual tem mensagens pendentes.",
        "apihelp-query+userinfo-paramvalue-prop-preferencestoken": "<span class=\"apihelp-deprecated\">Obsoleto.</span> Obter uma chave para alterar as preferências do utilizador atual.",
+       "apihelp-query+userinfo-paramvalue-prop-editcount": "Adiciona a contagem de edições do utilizador atual.",
+       "apihelp-query+userinfo-paramvalue-prop-realname": "Adiciona o nome real do utilizador.",
        "apihelp-query+userinfo-paramvalue-prop-email": "Adicionar o correio eletrónico do utilizador e a data de autenticação do correio eletrónico.",
+       "apihelp-query+userinfo-paramvalue-prop-registrationdate": "Adiciona a data de registo do utilizador.",
        "apihelp-query+userinfo-paramvalue-prop-unreadcount": "Adiciona a contagem de páginas não lidas da lista de páginas vigiadas do utilizador (máximo $1; devolve <samp>$2</samp> se forem mais).",
+       "apihelp-query+userinfo-paramvalue-prop-centralids": "Adiciona os identificadores centrais e o estado de ligação central (''attachment'') do utilizador.",
        "apihelp-query+users-param-prop": "As informações que devem ser incluídas:",
+       "apihelp-query+users-paramvalue-prop-editcount": "Adiciona a contagem de edições do utilizador.",
+       "apihelp-query+users-paramvalue-prop-registration": "Adiciona a data e hora de registo do utilizador.",
+       "apihelp-query+users-paramvalue-prop-centralids": "Adiciona os identificadores centrais e o estado de ligação central (''attachment'') do utilizador.",
        "apihelp-query+users-param-token": "Em substituição, usar <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
        "apihelp-query+watchlist-description": "Obter mudanças recentes das páginas vigiadas do utilizador atual.",
-       "apihelp-query+watchlist-param-start": "A data e hora a partir da qual será começada a enumeração.",
+       "apihelp-query+watchlist-param-start": "A data e hora da mudança recente a partir da qual será começada a enumeração.",
+       "apihelp-query+watchlist-param-end": "A data e hora da mudança recente na qual será terminada a enumeração.",
        "apihelp-query+watchlist-param-user": "Listar só as alterações deste utilizador.",
+       "apihelp-query+watchlist-param-limit": "O número total de resultados a serem devolvidos por pedido.",
        "apihelp-query+watchlist-param-prop": "As propriedades adicionais que devem ser obtidas:",
-       "apihelp-query+watchlist-paramvalue-prop-flags": "Adiciona indicações para a edição.",
+       "apihelp-query+watchlist-paramvalue-prop-ids": "Adiciona identificadores de revisões e de páginas.",
+       "apihelp-query+watchlist-paramvalue-prop-flags": "Adiciona etiquetas para a edição.",
+       "apihelp-query+watchlist-paramvalue-prop-userid": "Adiciona o identificador do utilizador que realizou a edição.",
+       "apihelp-query+watchlist-paramvalue-prop-parsedcomment": "Adiciona o comentário da edição, após análise sintática.",
+       "apihelp-query+watchlist-paramvalue-prop-timestamp": "Adiciona a data e hora da edição.",
+       "apihelp-query+watchlist-paramvalue-prop-sizes": "Adiciona os tamanhos novo e antigo da página.",
+       "apihelp-query+watchlist-paramvalue-prop-notificationtimestamp": "Adiciona a data e hora da última vez em que o utilizador foi notificado da edição.",
+       "apihelp-query+watchlist-paramvalue-prop-loginfo": "Adiciona informação do registo quando apropriado.",
        "apihelp-query+watchlist-param-type": "Os tipos de alterações a serem mostradas:",
        "apihelp-query+watchlist-param-owner": "Usado com $1token para aceder à lista de páginas vigiadas de outro utilizador.",
        "apihelp-query+watchlist-param-token": "Uma chave de segurança (disponível nas [[Special:Preferences#mw-prefsection-watchlist|preferências]] do utilizador) para permitir acesso à lista de páginas vigiadas de outro utilizador.",
        "apihelp-query+watchlist-example-generator": "Obter informações das páginas na lista de páginas vigiadas do utilizador atual que tenham sido recentemente alteradas.",
        "apihelp-query+watchlist-example-wlowner": "Listar a revisão mais recente das páginas na lista de páginas vigiadas do utilizador <kbd>Example</kbd> que tenham sido recentemente alteradas.",
        "apihelp-query+watchlistraw-param-namespace": "Listar só as páginas nos espaços nominais indicados.",
+       "apihelp-query+watchlistraw-param-limit": "O número total de resultados a serem devolvidos por pedido.",
        "apihelp-query+watchlistraw-param-prop": "As propriedades adicionais que devem ser obtidas:",
+       "apihelp-query+watchlistraw-paramvalue-prop-changed": "Adiciona a data e hora da última vez em que o utilizador foi notificado da edição.",
        "apihelp-query+watchlistraw-param-show": "Listar só os elementos que preenchem estes critérios.",
        "apihelp-query+watchlistraw-param-owner": "Usado em conjunto com o parâmetro $1token para aceder à lista de páginas vigiadas de outro utilizador.",
        "apihelp-query+watchlistraw-param-token": "Uma chave de segurança (disponível nas [[Special:Preferences#mw-prefsection-watchlist|preferências]] do utilizador) para permitir acesso à lista de páginas vigiadas de outro utilizador.",
        "apihelp-query+watchlistraw-param-dir": "A direção de listagem.",
        "apihelp-query+watchlistraw-param-fromtitle": "O título (com o prefixo do espaço nominal) a partir do qual será começada a enumeração.",
+       "apihelp-query+watchlistraw-param-totitle": "O título (com o prefixo do espaço nominal) no qual será terminada a enumeração.",
        "apihelp-query+watchlistraw-example-simple": "Listar as páginas na lista de páginas vigiadas do utilizador atual.",
        "apihelp-query+watchlistraw-example-generator": "Obter informações das páginas na lista de páginas vigiadas do utilizador atual.",
        "apihelp-removeauthenticationdata-description": "Remover os dados de autenticação do utilizador atual.",
        "apihelp-rollback-param-watchlist": "Adicionar ou remover incondicionalmente a página da lista de páginas vigiadas do utilizador atual, usar as preferências ou não alterar o estado de vigilância.",
        "apihelp-rollback-example-summary": "Reverter as últimas edições da página <kbd>Main Page</kbd> pelo utilizador IP <kbd>192.0.2.5</kbd> com o resumo <kbd>Reverting vandalism</kbd>, e marcar essas edições e a reversão como edições de robôs.",
        "apihelp-setnotificationtimestamp-description": "Atualizar a data e hora de notificação de alterações às páginas vigiadas.\n\nIsto afeta o realce das páginas alteradas, na lista de páginas vigiadas e no histórico, e o envio de mensagens de correio quando a preferência \"{{int:tog-enotifwatchlistpages}}\" está ativada.",
+       "apihelp-setnotificationtimestamp-param-timestamp": "A data e hora a definir como data e hora da notificação.",
+       "apihelp-setnotificationtimestamp-param-torevid": "A revisão para a qual definir a data e hora de notificação (só uma página).",
+       "apihelp-setnotificationtimestamp-param-newerthanrevid": "A revisão da qual definir que a data e hora de notificação é mais recente (só uma página).",
        "apihelp-setnotificationtimestamp-example-all": "Reiniciar o estado de notificação de todas as páginas vigiadas.",
+       "apihelp-setnotificationtimestamp-example-pagetimestamp": "Definir a data e hora de notificação para a página <kbd>Main page</kbd> de forma a que todas as edições desde 1 de janeiro de 2012 passem a ser consideradas não vistas",
+       "apihelp-setnotificationtimestamp-example-allpages": "Reiniciar o estado de notificação das páginas no espaço nominal <kbd>{{ns:user}}</kbd>.",
        "apihelp-stashedit-description": "Preparar uma edição na <i>cache</i> partilhada.\n\nIsto destina-se a ser usado via AJAX a partir do formulário de edição, para melhorar o desempenho da gravação da página.",
+       "apihelp-stashedit-param-title": "Título da página que está a ser editada.",
        "apihelp-tokens-description": "Obter chaves para operações de modificação de dados.\n\nEste módulo é obsoleto e foi substituído por [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-tokens-param-type": "Tipos de chave a pedir.",
        "apihelp-tokens-example-edit": "Obter uma chave de edição (padrão).",
        "apihelp-tokens-example-emailmove": "Obter uma chave de correio eletrónico e uma chave de movimentação.",
        "apihelp-unblock-description": "Desbloquear um utilizador.",
+       "apihelp-unblock-param-id": "Identificador do bloqueio a desfazer (obtido com <kbd>list=blocks</kbd>). Não pode ser usado em conjunto com <var>$1user</var>.",
        "apihelp-unblock-param-user": "Nome de utilizador, endereço IP ou gama de endereços IP a desbloquear. Não pode ser usado em conjunto com <var>$1id</var>.",
        "apihelp-unblock-param-reason": "Motivo para o desbloqueio.",
+       "apihelp-unblock-example-id": "Desfazer o bloqueio com o identificador #<kbd>105</kbd>.",
+       "apihelp-unblock-example-user": "Desbloquear o utilizador <kbd>Bob</kbd> com o motivo <kbd>Sorry Bob</kbd>.",
        "apihelp-undelete-param-title": "Título da página a restaurar.",
        "apihelp-undelete-param-watchlist": "Adicionar ou remover incondicionalmente a página da lista de páginas vigiadas do utilizador atual, usar as preferências ou não alterar o estado de vigilância.",
        "apihelp-upload-param-watch": "Vigiar página.",
        "apihelp-userrights-param-remove": "Remover este utilizador destes grupos.",
        "apihelp-watch-description": "Adicionar ou remover páginas da lista de páginas vigiadas do utilizador atual.",
        "apihelp-watch-example-unwatch": "Deixar de vigiar a página <kbd>Página Principal</kbd>.",
-       "apihelp-json-description": "Dados de saída em formato JSON.",
+       "apihelp-json-description": "Produzir dados de saída no formato JSON.",
+       "apihelp-xml-param-xslt": "Se especificado, adiciona a página nomeada como uma folha de estilo XSL. O valor tem de ser um título no espaço nominal {{ns:mediawiki}} e acabar em <code>.xsl</code>.",
        "api-help-title": "Ajuda da API do MediaWiki",
        "api-help-lead": "Esta é uma página de documentação da API do MediaWiki gerada automaticamente.\n\nDocumentação e exemplos: https://www.mediawiki.org/wiki/API",
        "api-help-main-header": "Módulo principal",
-       "api-help-flag-deprecated": "Este módulo está obsoleto.",
+       "api-help-flag-deprecated": "Este módulo é obsoleto.",
        "api-help-flag-internal": "<strong>Este módulo é interno ou instável.</strong> O seu funcionamento pode ser alterado sem aviso prévio.",
        "api-help-flag-readrights": "Este módulo requer direitos de leitura.",
        "api-help-flag-writerights": "Este módulo requer direitos de escrita.",
        "api-help-param-deprecated": "Obsoleto.",
        "api-help-param-required": "Este parâmetro é obrigatório.",
        "api-help-datatypes-header": "Tipo de dados",
-       "api-help-datatypes": "O <i>input</i> para o MediaWiki de ser UTF-8 normalizado de acordo com a norma NFC. O MediaWiki pode converter outros tipos de entrada, mas isto pode causar que algumas operações (tais como [[Special:ApiHelp/edit|edições]] com verificações MD5) falhem.\n\nAlguns tipos de parâmetros nos pedidos à API necessitam de mais explicações:\n;boolean\n:Os parâmetros booleanos funcionam como as caixas de seleção HTML: se o parâmetro for especificado, independentemente do valor, é considerado verdadeiro. Para um valor falso, omitir o parâmetro completo.\n;timestamp\n:As datas e horas podem ser especificados em vários formatos. O formato de data e hora ISO 8601 é recomendado. Todas as horas estão em UTC, qualquer inclusão de fuso horário é ignorada.\n:* Data e hora ISO 8601, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (pontuação e <kbd>Z</kbd> são opcionais)\n:* Data e hora ISO 8601 com segundos fracionários (ignorado), <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (traços, dois pontos e <kbd>Z</kbd> são opcionais)\n:* Formato do MediaWiki, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Formato numérico genérico, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (fuso horário opcional de <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, ou <kbd>-<var>##</var></kbd> são ignorados)\n:* Formato EXIF, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:*Formato RFC 2822 (o fuso horário pode ser omitido), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formato RFC 850 (o fuso horário pode ser omitido), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formato C ctime, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Segundos desde 1970-01-01T00:00:00Z como um inteiro de 1 a 13 dígitos (excluindo <kbd>0</kbd>)\n:* O texto <kbd>now</kbd>\n;separador alternativo de valores múltiplos\n:Os parâmetros que aceitam vários valores são normalmente fornecidos com os valores separados por uma barra vertical (<i>pipe</i>), por exemplo <kbd>parâmetro=valor1|valor2</kbd> ou <kbd>parâmetro=valor1%7Cvalor2</kbd>. Se um valor contém a barra vertical, use U+001F (Separador de Unidades) como separador ''e'' prefixe o valor com U+001F, isto é, <kbd>parâmetro=%1Fvalor1%1Fvalor2</kbd>.",
+       "api-help-datatypes": "O formato de entrada para o MediaWiki deve ser UTF-8 normalizado de acordo com a norma NFC. O MediaWiki pode converter outros tipos de entrada, mas isto pode causar a falha de algumas operações (tais como [[Special:ApiHelp/edit|edições]] com verificações MD5).\n\nAlguns tipos de parâmetros nos pedidos à API necessitam de mais explicações:\n;boolean\n:Os parâmetros booleanos funcionam como as caixas de seleção HTML: se o parâmetro for especificado, independentemente do valor, é considerado verdadeiro. Para um valor falso, omitir o parâmetro completo.\n;timestamp\n:As datas e horas podem ser especificados em vários formatos. O formato de data e hora ISO 8601 é recomendado. Todas as horas estão em UTC, qualquer inclusão de fuso horário é ignorada.\n:* Data e hora ISO 8601, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (pontuação e <kbd>Z</kbd> são opcionais)\n:* Data e hora ISO 8601 com segundos fracionários (ignorado), <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (traços, dois pontos e <kbd>Z</kbd> são opcionais)\n:* Formato do MediaWiki, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Formato numérico genérico, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (fuso horário opcional de <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, ou <kbd>-<var>##</var></kbd> são ignorados)\n:* Formato EXIF, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:*Formato RFC 2822 (o fuso horário pode ser omitido), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formato RFC 850 (o fuso horário pode ser omitido), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formato C ctime, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Segundos desde 1970-01-01T00:00:00Z como um inteiro de 1 a 13 dígitos (excluindo <kbd>0</kbd>)\n:* O texto <kbd>now</kbd>\n;separador alternativo de valores múltiplos\n:Os parâmetros que aceitam vários valores são normalmente fornecidos com os valores separados por uma barra vertical (<i>pipe</i>), por exemplo <kbd>parâmetro=valor1|valor2</kbd> ou <kbd>parâmetro=valor1%7Cvalor2</kbd>. Se um valor contém a barra vertical, use U+001F (Separador de Unidades) como separador ''e'' prefixe o valor com U+001F, isto é, <kbd>parâmetro=%1Fvalor1%1Fvalor2</kbd>.",
        "api-help-param-type-limit": "Tipo: inteiro ou <kbd>max</kbd>",
        "api-help-param-type-integer": "Tipo: {{PLURAL:$1|1=inteiro|2=lista de números inteiros}}",
        "api-help-param-type-boolean": "Tipo: booleano ([[Special:ApiHelp/main#main/datatypes|detalhes]])",
        "api-help-param-token": "Uma chave \"$1\" obtida de [[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
        "api-help-param-token-webui": "Para efeitos de compatibilidade, a chave usada na interface <i>web</i> também é aceite.",
        "api-help-param-disabled-in-miser-mode": "Desativado devido ao [[mw:Manual:$wgMiserMode|modo avarento]] (<i>miser mode</i>).",
-       "api-help-param-limited-in-miser-mode": "<strong>Nota:</strong> devido ao [[mw:Manual:$wgMiserMode|modo avarento]]  (<i>miser mode</i>), usar isto pode causar que menos de <var>$1limit</var> resultados sejam devolvidos antes de continuar; em casos extremos, pode não ser devolvido qualquer resultado.",
+       "api-help-param-limited-in-miser-mode": "<strong>Nota:</strong> devido ao [[mw:Manual:$wgMiserMode|modo avarento]]  (<i>miser mode</i>), usar isto pode resultar na devolução de menos de <var>$1limit</var> resultados antes de continuar; em casos extremos pode não ser devolvido qualquer resultado.",
        "api-help-param-direction": "Em que direção enumerar:\n;newer:Listar o mais antigo primeiro. Nota: $1start tem de estar antes de $1end.\n;older:Listar o mais recente primeiro (padrão). Nota: $1start tem de estar depois de $1end.",
        "api-help-param-continue": "Quando houver mais resultados disponíveis, usar isto para continuar",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(sem descrição)</span>",
index fc82255..956a0df 100644 (file)
        "apihelp-edit-param-token": "令牌应总是发送为最后参数,或至少在$1text参数之后。",
        "apihelp-edit-example-edit": "编辑一个页面。",
        "apihelp-edit-example-prepend": "页面中预置<kbd>_&#95;NOTOC_&#95;</kbd>。",
-       "apihelp-edit-example-undo": "通过13585撤销修订版本13579并自动填写编辑摘要。",
+       "apihelp-edit-example-undo": "撤销修订版本13579至13585并自动填写编辑摘要。",
        "apihelp-emailuser-description": "电子邮件联系一位用户。",
        "apihelp-emailuser-param-target": "电子邮件的目标用户。",
        "apihelp-emailuser-param-subject": "主题页眉。",
        "apihelp-expandtemplates-param-text": "要转换的wiki文本。",
        "apihelp-expandtemplates-param-revid": "修订版本ID,用于<nowiki>{{REVISIONID}}</nowiki>和类似变体。",
        "apihelp-expandtemplates-param-prop": "要获取的那条信息。\n\n注意如果没有选定值,结果将包含wiki文本,但将以弃用的格式显示。",
-       "apihelp-expandtemplates-paramvalue-prop-wikitext": "扩充的wiki文本。",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "展开后的wiki文本。",
        "apihelp-expandtemplates-paramvalue-prop-categories": "任何在输出中提供的,未在wiki文本输出中表现的分类。",
        "apihelp-expandtemplates-paramvalue-prop-properties": "由wiki文本中扩充的魔术字定义的页面属性。",
-       "apihelp-expandtemplates-paramvalue-prop-volatile": "无论输出是否常常变动,均不应被在页面中其他任何位置重用。",
+       "apihelp-expandtemplates-paramvalue-prop-volatile": "输出是否常常变动,是否不应被在页面中其他任何位置重用。",
        "apihelp-expandtemplates-paramvalue-prop-ttl": "结果缓存应无效化后的最长时间。",
-       "apihelp-expandtemplates-paramvalue-prop-modules": "任何解析器函数请求添加至输出的ResourceLoader模块。无论<kbd>jsconfigvars</kbd>还是<kbd>encodedjsconfigvars</kbd>都必须与<kbd>modules</kbd>共同被请求。",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "任何解析器函数请求添加至输出的ResourceLoader模块。<kbd>jsconfigvars</kbd>和<kbd>encodedjsconfigvars</kbd>之一必须与<kbd>modules</kbd>共同被请求。",
        "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "针对页面提供JavaScript配置变量。",
        "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "针对页面提供JavaScript配置变量为一个JSON字符串。",
        "apihelp-expandtemplates-paramvalue-prop-parsetree": "输入的XML分析树。",
-       "apihelp-expandtemplates-param-includecomments": "è¾\93å\87ºæ\97¶æ\98¯å\90¦å\8c\85å\90«HTMLæ\91\98è¦\81。",
+       "apihelp-expandtemplates-param-includecomments": "è¾\93å\87ºæ\97¶æ\98¯å\90¦å\8c\85å\90«HTML注é\87\8a。",
        "apihelp-expandtemplates-param-generatexml": "生成XML解析树(取代自$1prop=parsetree)。",
        "apihelp-expandtemplates-example-simple": "展开wiki文本<kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>。",
        "apihelp-feedcontributions-description": "返回用户贡献纲要。",
        "apihelp-query+userinfo-paramvalue-prop-options": "列举当前用户设置的所有参数设置。",
        "apihelp-query+userinfo-paramvalue-prop-preferencestoken": "<span class=\"apihelp-deprecated\">已弃用。</span>获取令牌以更改当前用户的参数设置。",
        "apihelp-query+userinfo-paramvalue-prop-editcount": "添加当前用户的编辑计数。",
-       "apihelp-query+userinfo-paramvalue-prop-ratelimits": "Lists all rate limits applying to the current user.",
+       "apihelp-query+userinfo-paramvalue-prop-ratelimits": "列举所有应用到当前用户的速率限制。",
        "apihelp-query+userinfo-paramvalue-prop-realname": "添加用户的真实姓名。",
        "apihelp-query+userinfo-paramvalue-prop-email": "添加用户的电子邮件地址及电子邮件验证日期。",
        "apihelp-query+userinfo-paramvalue-prop-acceptlang": "重复由客户端以结构化格式发送的<code>Accept-Language</code>标头。",
        "apihelp-json-param-callback": "如果指定,将输出内容包裹在一个指定的函数调用中。出于安全考虑,所有用户相关的数据将被限制。",
        "apihelp-json-param-utf8": "如果指定,使用十六进制转义序列将大多数(但不是全部)非ASCII的字符编码为UTF-8,而不是替换它们。默认当<var>formatversion</var>不是<kbd>1</kbd>时。",
        "apihelp-json-param-ascii": "如果指定,使用十六进制转义序列将所有非ASCII编码。默认当<var>formatversion</var>为<kbd>1</kbd>时。",
-       "apihelp-json-param-formatversion": "输出格式:\n;1:向后兼容格式(XML样式布尔值、用于内容节点的<samp>*</samp>键等)。\n;2:实验现代格式。细节可以更改!\n;latest:使用最新格式(当前为<kbd>2</kbd>),可以在没有警告的情况下更改。",
+       "apihelp-json-param-formatversion": "输出格式:\n;1:向后兼容格式(XML样式布尔值、用于内容节点的<samp>*</samp>键等)。\n;2:实验现代格式。细节可能更改!\n;latest:使用最新格式(当前为<kbd>2</kbd>),格式可能在没有警告的情况下更改。",
        "apihelp-jsonfm-description": "输出数据为JSON格式(HTML优质打印效果)。",
        "apihelp-none-description": "不输出任何东西。",
        "apihelp-php-description": "输出数据为序列化PHP格式。",
-       "apihelp-php-param-formatversion": "输出格式:\n;1:向后兼容格式(XML样式布尔值、用于内容节点的<samp>*</samp>键等)。\n;2:实验现代格式。细节可以更改!\n;latest:使用最新格式(当前为<kbd>2</kbd>),可以在没有警告的情况下更改。",
+       "apihelp-php-param-formatversion": "输出格式:\n;1:向后兼容格式(XML样式布尔值、用于内容节点的<samp>*</samp>键等)。\n;2:实验现代格式。细节可能更改!\n;latest:使用最新格式(当前为<kbd>2</kbd>),格式可能在没有警告的情况下更改。",
        "apihelp-phpfm-description": "输出数据为序列化PHP格式(HTML优质打印效果)。",
        "apihelp-rawfm-description": "输出数据为JSON格式,包含调试元素(HTML优质打印效果)。",
        "apihelp-xml-description": "输出数据为XML格式。",
index 016306a..5c75292 100644 (file)
@@ -80,7 +80,6 @@ class UserCache {
         * @param string $caller The calling method
         */
        public function doQuery( array $userIds, $options = [], $caller = '' ) {
-
                $usersToCheck = [];
                $usersToQuery = [];
 
@@ -132,7 +131,6 @@ class UserCache {
                        }
                }
                $lb->execute();
-
        }
 
        /**
index 4970a2b..4b6362f 100644 (file)
@@ -549,7 +549,6 @@ class LocalisationCache {
         * @return array Array with a 'messages' key, or empty array if the file doesn't exist
         */
        public function readJSONFile( $fileName ) {
-
                if ( !is_readable( $fileName ) ) {
                        return [];
                }
@@ -561,7 +560,6 @@ class LocalisationCache {
 
                $data = FormatJson::decode( $json, true );
                if ( $data === null ) {
-
                        throw new MWException( __METHOD__ . ": Invalid JSON file: $fileName" );
                }
 
@@ -1036,7 +1034,6 @@ class LocalisationCache {
                        $blobStore = new MessageBlobStore();
                        $blobStore->clear();
                }
-
        }
 
        /**
index 4110472..e6b773c 100644 (file)
@@ -91,72 +91,47 @@ class IcuCollation extends Collation {
         * available and that there are, in fact, no additional letters to consider.
         */
        private static $tailoringFirstLetters = [
-               // Verified by native speakers
-               'be' => [ "Ё" ],
-               'be-tarask' => [ "Ё" ],
-               'bs' => [ "Č", "Ć", "Dž", "Đ", "Lj", "Nj", "Š", "Ž" ],
-               'cs' => [ "Č", "Ch", "Ř", "Š", "Ž" ],
-               'cy' => [ "Ch", "Dd", "Ff", "Ng", "Ll", "Ph", "Rh", "Th" ],
-               'en' => [],
-               'fa' => [
-                       // RTL, let's put each letter on a new line
-                       "آ",
-                       "ء",
-                       "ه",
-                       "ا",
-                       "و"
-               ],
-               'fi' => [ "Å", "Ä", "Ö" ],
-               'fr' => [],
-               'hr' => [ "Č", "Ć", "Dž", "Đ", "Lj", "Nj", "Š", "Ž" ],
-               'hsb' => [ "Č", "Dź", "Ě", "Ch", "Ł", "Ń", "Ř", "Š", "Ć", "Ž" ],
-               'hu' => [ "Cs", "Dz", "Dzs", "Gy", "Ly", "Ny", "Ö", "Sz", "Ty", "Ü", "Zs" ],
-               'is' => [ "Á", "Ð", "É", "Í", "Ó", "Ú", "Ý", "Þ", "Æ", "Ö", "Å" ],
-               'it' => [],
-               'lt' => [ "Č", "Š", "Ž" ],
-               'lv' => [ "Č", "Ģ", "Ķ", "Ļ", "Ņ", "Š", "Ž" ],
-               'mk' => [ "Ѓ", "Ќ" ],
-               'nl' => [],
-               'pl' => [ "Ą", "Ć", "Ę", "Ł", "Ń", "Ó", "Ś", "Ź", "Ż" ],
-               'pt' => [],
-               'ru' => [],
-               'sk' => [ "Ä", "Č", "Ch", "Ô", "Š", "Ž" ],
-               'sr' => [],
-               'sv' => [ "Å", "Ä", "Ö" ],
-               'sv@collation=standard' => [ "Å", "Ä", "Ö" ],
-               'ta' => [
-                       "\xE0\xAE\x82", "ஃ", "க்ஷ", "க்", "ங்", "ச்", "ஞ்", "ட்", "ண்", "த்", "ந்",
-                       "ப்", "ம்", "ய்", "ர்", "ல்", "வ்", "ழ்", "ள்", "ற்", "ன்", "ஜ்", "ஶ்", "ஷ்",
-                       "ஸ்", "ஹ்", "க்ஷ்"
-               ],
-               'uk' => [ "Ґ", "Ь" ],
-               'vi' => [ "Ă", "Â", "Đ", "Ê", "Ô", "Ơ", "Ư" ],
-               // Not verified, but likely correct
                'af' => [],
                'am' => [],
                'ar' => [],
                'as' => [ "\xe0\xa6\x82", "\xe0\xa6\x81", "\xe0\xa6\x83", "\xe0\xa7\x8e", "ক্ষ " ],
-               'ast' => [ "Ch", "Ll", "Ñ" ], // Not in libicu?
+               'ast' => [ "Ch", "Ll", "Ñ" ], // not in libicu
                'az' => [ "Ç", "Ə", "Ğ", "İ", "Ö", "Ş", "Ü" ],
+               'be' => [ "Ё" ],
+               'be-tarask' => [ "Ё" ],
                'bg' => [],
                'bo' => [],
                'br' => [ "Ch", "C'h" ],
+               'bs' => [ "Č", "Ć", "Dž", "Đ", "Lj", "Nj", "Š", "Ž" ],
                'bs-Cyrl' => [],
                'ca' => [],
                'chr' => [],
-               'co' => [], // Not in libicu?
+               'co' => [], // not in libicu
+               'cs' => [ "Č", "Ch", "Ř", "Š", "Ž" ],
+               'cy' => [ "Ch", "Dd", "Ff", "Ng", "Ll", "Ph", "Rh", "Th" ],
                'da' => [ "Æ", "Ø", "Å" ],
                'de' => [],
                'de-AT@collation=phonebook' => [ 'ä', 'ö', 'ü', 'ß' ],
                'dsb' => [ "Č", "Ć", "Dź", "Ě", "Ch", "Ł", "Ń", "Ŕ", "Š", "Ś", "Ž", "Ź" ],
                'ee' => [ "Dz", "Ɖ", "Ɛ", "Ƒ", "Gb", "Ɣ", "Kp", "Ny", "Ŋ", "Ɔ", "Ts", "Ʋ" ],
                'el' => [],
+               'en' => [],
                'eo' => [ "Ĉ", "Ĝ", "Ĥ", "Ĵ", "Ŝ", "Ŭ" ],
                'es' => [ "Ñ" ],
                'et' => [ "Š", "Ž", "Õ", "Ä", "Ö", "Ü", "W" ], // added W for CollationEt (xx-uca-et)
-               'eu' => [ "Ñ" ], // Not in libicu?
+               'eu' => [ "Ñ" ], // not in libicu
+               'fa' => [
+                       // RTL, let's put each letter on a new line
+                       "آ",
+                       "ء",
+                       "ه",
+                       "ا",
+                       "و"
+               ],
+               'fi' => [ "Å", "Ä", "Ö" ],
                'fil' => [ "Ñ", "Ng" ],
                'fo' => [ "Á", "Ð", "Í", "Ó", "Ú", "Ý", "Æ", "Ø", "Å" ],
+               'fr' => [],
                'fr-CA' => [], // fr-CA sorts accents slightly different from fr.
                'fur' => [ "À", "Á", "Â", "È", "Ì", "Ò", "Ù" ], // not in libicu
                'fy' => [], // not in libicu
@@ -168,10 +143,17 @@ class IcuCollation extends Collation {
                'haw' => [ 'ʻ' ],
                'he' => [],
                'hi' => [ "\xe0\xa4\x82", "\xe0\xa4\x83" ],
+               'hr' => [ "Č", "Ć", "Dž", "Đ", "Lj", "Nj", "Š", "Ž" ],
+               'hsb' => [ "Č", "Dź", "Ě", "Ch", "Ł", "Ń", "Ř", "Š", "Ć", "Ž" ],
+               'hu' => [ "Cs", "Dz", "Dzs", "Gy", "Ly", "Ny", "Ö", "Sz", "Ty", "Ü", "Zs" ],
                'hy' => [ "և" ],
                'id' => [],
                'ig' => [ "Ch", "Gb", "Gh", "Gw", "Ị", "Kp", "Kw", "Ṅ", "Nw", "Ny", "Ọ", "Sh", "Ụ" ],
+               'is' => [ "Á", "Ð", "É", "Í", "Ó", "Ú", "Ý", "Þ", "Æ", "Ö", "Å" ],
+               'it' => [],
                'ka' => [],
+               'kk' => [ "Ү", "І" ],
+               'kl' => [ "Æ", "Ø", "Å" ],
                'km' => [
                        "រ", "ឫ", "ឬ", "ល", "ឭ", "ឮ", "\xe1\x9e\xbb\xe1\x9f\x86",
                        "\xe1\x9f\x86", "\xe1\x9e\xb6\xe1\x9f\x86", "\xe1\x9f\x87",
@@ -180,32 +162,36 @@ class IcuCollation extends Collation {
                ],
                'kn' => [ "\xe0\xb2\x81", "\xe0\xb2\x83", "\xe0\xb3\xb1", "\xe0\xb3\xb2" ],
                'kok' => [ "\xe0\xa4\x82", "\xe0\xa4\x83", "ळ", "क्ष" ],
-               'kk' => [ "Ү", "І" ],
-               'kl' => [ "Æ", "Ø", "Å" ],
-               'ku' => [ "Ç", "Ê", "Î", "Ş", "Û" ], // ku is not in libicu
+               'ku' => [ "Ç", "Ê", "Î", "Ş", "Û" ], // not in libicu
                'ky' => [ "Ё" ],
-               'la' => [], // la is not in libicu
+               'la' => [], // not in libicu
                'lb' => [],
                'lkt' => [ 'Č', 'Ǧ', 'Ȟ', 'Š', 'Ž' ],
                'ln' => [ 'Ɛ' ],
                'lo' => [],
+               'lt' => [ "Č", "Š", "Ž" ],
+               'lv' => [ "Č", "Ģ", "Ķ", "Ļ", "Ņ", "Š", "Ž" ],
+               'mk' => [ "Ѓ", "Ќ" ],
                'ml' => [],
                'mn' => [],
+               'mo' => [ "Ă", "Â", "Î", "Ş", "Ţ" ], // not in libicu
                'mr' => [ "\xe0\xa4\x82", "\xe0\xa4\x83", "ळ", "क्ष", "ज्ञ" ],
-               'mo' => [ "Ă", "Â", "Î", "Ş", "Ţ" ], // no mo in libicu
                'ms' => [],
                'mt' => [ "Ċ", "Ġ", "Għ", "Ħ", "Ż" ],
                'nb' => [ "Æ", "Ø", "Å" ],
                'ne' => [],
+               'nl' => [],
                'nn' => [ "Æ", "Ø", "Å" ],
-               // no is not in the libicu list. You should probably use nb or nn instead.
-               'no' => [ "Æ", "Ø", "Å" ],
+               'no' => [ "Æ", "Ø", "Å" ], // not in libicu. You should probably use nb or nn instead.
                'oc' => [], // not in libicu
                'om' => [ 'Ch', 'Dh', 'Kh', 'Ny', 'Ph', 'Sh' ],
                'or' => [ "\xe0\xac\x81", "\xe0\xac\x82", "\xe0\xac\x83", "କ୍ଷ" ],
                'pa' => [ "\xe0\xa9\x8d" ],
+               'pl' => [ "Ą", "Ć", "Ę", "Ł", "Ń", "Ó", "Ś", "Ź", "Ż" ],
+               'pt' => [],
                'rm' => [], // not in libicu
                'ro' => [ "Ă", "Â", "Î", "Ş", "Ţ" ],
+               'ru' => [],
                'rup' => [ "Ă", "Â", "Î", "Ľ", "Ń", "Ş", "Ţ" ], // not in libicu
                'sco' => [],
                'se' => [
@@ -213,11 +199,20 @@ class IcuCollation extends Collation {
                        'Š', 'Ŧ', 'Ž', 'Ø', 'Æ', 'Ȧ', 'Ä', 'Ö'
                ],
                'si' => [ "\xe0\xb6\x82", "\xe0\xb6\x83", "\xe0\xb6\xa4" ],
+               'sk' => [ "Ä", "Č", "Ch", "Ô", "Š", "Ž" ],
                'sl' => [ "Č", "Š", "Ž" ],
                'smn' => [ "Á", "Č", "Đ", "Ŋ", "Š", "Ŧ", "Ž", "Æ", "Ø", "Å", "Ä", "Ö" ],
                'sq' => [ "Ç", "Dh", "Ë", "Gj", "Ll", "Nj", "Rr", "Sh", "Th", "Xh", "Zh" ],
+               'sr' => [],
                'sr-Latn' => [ "Č", "Ć", "Dž", "Đ", "Lj", "Nj", "Š", "Ž" ],
+               'sv' => [ "Å", "Ä", "Ö" ],
+               'sv@collation=standard' => [ "Å", "Ä", "Ö" ],
                'sw' => [],
+               'ta' => [
+                       "\xE0\xAE\x82", "ஃ", "க்ஷ", "க்", "ங்", "ச்", "ஞ்", "ட்", "ண்", "த்", "ந்",
+                       "ப்", "ம்", "ய்", "ர்", "ல்", "வ்", "ழ்", "ள்", "ற்", "ன்", "ஜ்", "ஶ்", "ஷ்",
+                       "ஸ்", "ஹ்", "க்ஷ்"
+               ],
                'te' => [ "\xe0\xb0\x81", "\xe0\xb0\x82", "\xe0\xb0\x83" ],
                'th' => [ "ฯ", "\xe0\xb9\x86", "\xe0\xb9\x8d", "\xe0\xb8\xba" ],
                'tk' => [ "Ç", "Ä", "Ž", "Ň", "Ö", "Ş", "Ü", "Ý" ],
@@ -225,7 +220,9 @@ class IcuCollation extends Collation {
                'to' => [ "Ng", "ʻ" ],
                'tr' => [ "Ç", "Ğ", "İ", "Ö", "Ş", "Ü" ],
                'tt' => [ "Ә", "Ө", "Ү", "Җ", "Ң", "Һ" ], // not in libicu
+               'uk' => [ "Ґ", "Ь" ],
                'uz' => [ "Ch", "G'", "Ng", "O'", "Sh" ], // not in libicu
+               'vi' => [ "Ă", "Â", "Đ", "Ê", "Ô", "Ơ", "Ư" ],
                'vo' => [ "Ä", "Ö", "Ü" ],
                'yi' => [
                        "\xd7\x91\xd6\xbf", "\xd7\x9b\xd6\xbc", "\xd7\xa4\xd6\xbc",
index 62c8b00..b9a259b 100644 (file)
@@ -108,7 +108,6 @@ class SearchUpdate implements DeferrableUpdate {
                        # Perform the actual update
                        $search->update( $this->id, $normalTitle, $search->normalizeText( $text ) );
                }
-
        }
 
        /**
index 296e3b7..9c9b1c9 100644 (file)
@@ -42,7 +42,6 @@ class WordLevelDiff extends \Diff {
         * @param string[] $linesAfter
         */
        public function __construct( $linesBefore, $linesAfter ) {
-
                list( $wordsBefore, $wordsBeforeStripped ) = $this->split( $linesBefore );
                list( $wordsAfter, $wordsAfterStripped ) = $this->split( $linesAfter );
 
@@ -68,7 +67,6 @@ class WordLevelDiff extends \Diff {
                                $yi += count( $closing );
                        }
                }
-
        }
 
        /**
@@ -77,7 +75,6 @@ class WordLevelDiff extends \Diff {
         * @return array[]
         */
        private function split( $lines ) {
-
                $words = [];
                $stripped = [];
                $first = true;
index 736cb06..3d8ddb8 100644 (file)
@@ -284,7 +284,7 @@ TXT;
                $trace = $trace ?: debug_backtrace();
                $logger = LoggerFactory::getInstance( 'fatal' );
                $logger->error( $msg, [
-                       'exception' => [
+                       'fatal_exception' => [
                                'class' => 'ErrorException',
                                'message' => "PHP Fatal Error: {$message}",
                                'code' => $level,
index c195241..c4730d7 100644 (file)
@@ -195,12 +195,12 @@ class LocalRepo extends FileRepo {
                        $expiry = 86400; // has invalidation, 1 day
                }
 
-               $that = $this;
+               $method = __METHOD__;
                $redirDbKey = ObjectCache::getMainWANInstance()->getWithSetCallback(
                        $memcKey,
                        $expiry,
-                       function ( $oldValue, &$ttl, array &$setOpts ) use ( $that, $title ) {
-                               $dbr = $that->getSlaveDB(); // possibly remote DB
+                       function ( $oldValue, &$ttl, array &$setOpts ) use ( $method, $title ) {
+                               $dbr = $this->getSlaveDB(); // possibly remote DB
 
                                $setOpts += Database::getCacheSetOptions( $dbr );
 
@@ -213,7 +213,7 @@ class LocalRepo extends FileRepo {
                                                        'page_title' => $title->getDBkey(),
                                                        'rd_from = page_id'
                                                ],
-                                               __METHOD__
+                                               $method
                                        );
                                } else {
                                        $row = false;
index a17ca6e..06fef4f 100644 (file)
@@ -194,14 +194,12 @@ class OldLocalFile extends LocalFile {
                } else {
                        $this->fileExists = false;
                }
-
        }
 
        /**
         * Load lazy file metadata from the DB
         */
        protected function loadExtraFromDB() {
-
                $this->extraDataLoaded = true;
                $dbr = $this->repo->getSlaveDB();
                $conds = [ 'oi_name' => $this->getName() ];
@@ -227,7 +225,6 @@ class OldLocalFile extends LocalFile {
                } else {
                        throw new MWException( "Could not find data for image '{$this->archive_name}'." );
                }
-
        }
 
        /**
index 363769d..86e8e75 100644 (file)
@@ -31,7 +31,6 @@ class HTMLSelectAndOtherField extends HTMLSelectField {
                        $this->mOptions = [ $params['other'] => 'other' ] + $this->mOptions;
                }
                $this->mFlatOptions = self::flattenOptions( $this->getOptions() );
-
        }
 
        public function getInputHTML( $value ) {
index 2e07af6..f13aa17 100644 (file)
@@ -9,7 +9,6 @@ class HTMLSelectNamespace extends HTMLFormField {
                $this->mAllValue = array_key_exists( 'all', $params )
                        ? $params['all']
                        : 'all';
-
        }
 
        public function getInputHTML( $value ) {
index 1afb0a9..bb41079 100644 (file)
@@ -18,7 +18,6 @@ class HTMLSelectOrOtherField extends HTMLTextField {
                        // Have 'other' always as first element
                        $this->mOptions = [ $msg => 'other' ] + $this->mOptions;
                }
-
        }
 
        public function getInputHTML( $value ) {
index 458854a..08883ae 100644 (file)
@@ -362,7 +362,6 @@ class MWHttpRequest implements LoggerAwareInterface {
         * @return Status
         */
        public function execute() {
-
                $this->content = "";
 
                if ( strtoupper( $this->method ) == "HEAD" ) {
@@ -378,7 +377,6 @@ class MWHttpRequest implements LoggerAwareInterface {
                if ( !isset( $this->reqHeaders['User-Agent'] ) ) {
                        $this->setUserAgent( Http::userAgent() );
                }
-
        }
 
        /**
@@ -387,7 +385,6 @@ class MWHttpRequest implements LoggerAwareInterface {
         * found in an array in the member variable headerList.
         */
        protected function parseHeader() {
-
                $lastname = "";
 
                foreach ( $this->headerList as $header ) {
@@ -404,7 +401,6 @@ class MWHttpRequest implements LoggerAwareInterface {
                }
 
                $this->parseCookies();
-
        }
 
        /**
@@ -538,7 +534,6 @@ class MWHttpRequest implements LoggerAwareInterface {
         * Parse the cookies in the response headers and store them in the cookie jar.
         */
        protected function parseCookies() {
-
                if ( !$this->cookieJar ) {
                        $this->cookieJar = new CookieJar;
                }
@@ -549,7 +544,6 @@ class MWHttpRequest implements LoggerAwareInterface {
                                $this->cookieJar->parseCookieResponseHeader( $cookie, $url['host'] );
                        }
                }
-
        }
 
        /**
index 331d1a1..50d73de 100644 (file)
@@ -336,7 +336,6 @@ abstract class DatabaseInstaller {
                $services->redefineService( 'DBLoadBalancerFactory', function() use ( $connection ) {
                        return LBFactorySingle::newFromConnection( $connection );
                } );
-
        }
 
        /**
index d52f8f1..f28e2c5 100644 (file)
        "config-help": "সাহায্য",
        "config-help-tooltip": "প্রসারিত করতে ক্লিক করুন",
        "mainpagetext": "<strong>মিডিয়াউইকি ইনস্টল করা হয়েছে।</strong>",
-       "mainpagedocfooter": "কীভাবে উইকি সফটওয়্যারটি ব্যবহারকার করবেন, তা জানতে [https://meta.wikimedia.org/wiki/Help:Contents ব্যবহারকারী সহায়িকা] দেখুন।\n\n== কোথা থেকে শুরু করবেন ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings কনফিগারেশন সেটিংস তালিকা]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ প্রশ্নোত্তরে মিডিয়াউইকি]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়াউইকি মুক্তির মেইলিং লিস্ট]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources আপনার ভাষার জন্য মিডিয়াউইকি স্থানীয়করণ করুন]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam আপনার উইকিতে স্প্যামের সাথে লড়াই করার উপায় সম্পর্কে জানুন]"
+       "mainpagedocfooter": "কীভাবে উইকি সফটওয়্যারটি ব্যবহারকার করবেন, তা জানতে [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents ব্যবহারকারী সহায়িকা] দেখুন।\n\n== কোথা থেকে শুরু করবেন ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings কনফিগারেশন সেটিংস তালিকা]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ প্রশ্নোত্তরে মিডিয়াউইকি]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়াউইকি মুক্তির মেইলিং লিস্ট]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources আপনার ভাষার জন্য মিডিয়াউইকি স্থানীয়করণ করুন]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam আপনার উইকিতে স্প্যামের সাথে লড়াই করার উপায় সম্পর্কে জানুন]"
 }
index b23288c..d1b1a9b 100644 (file)
        "config-help-tooltip": "klickt fir opzeklappen",
        "config-nofile": "De Fichier \"$1\" gouf net fonnt. Gouf e geläscht?",
        "mainpagetext": "<strong>MediaWiki gouf installéiert.</strong>",
-       "mainpagedocfooter": "Kuckt w.e.g. [https://meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir Informatiounen iwwer de Gebruach vun der Wiki Software.\n\n== Fir  unzefänken ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Hëllef bei der Konfiguratioun]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokaliséiert MediaWiki fir Är Sprooch]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Léiert wéi Spam op Ärer Wiki reduzéiert gi kann]"
+       "mainpagedocfooter": "Kuckt w.e.g. [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents d'Benotzerhandbuch] fir Informatiounen iwwer de Gebruach vun der Wiki Software.\n\n== Fir  unzefänken ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Hëllef bei der Konfiguratioun]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokaliséiert MediaWiki fir Är Sprooch]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Léiert wéi Spam op Ärer Wiki reduzéiert gi kann]"
 }
index 52b4ca5..f224b5d 100644 (file)
        "config-nofile": "Nie udało się odnaleźć pliku \"$1\". Czy nie został usunięty?",
        "config-extension-link": "Czy wiesz, że twoja wiki obsługuje [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions rozszerzenia]?\n\nMożesz przejrzeć [https://www.mediawiki.org/wiki/Category:Extensions_by_category rozszerzenia według kategorii] lub [https://www.mediawiki.org/wiki/Extension_Matrix Extension Matrix], aby zobaczyć pełną listę rozszerzeń.",
        "mainpagetext": "<strong>Instalacja MediaWiki powiodła się.</strong>",
-       "mainpagedocfooter": "Zobacz [https://meta.wikimedia.org/wiki/Help:Contents/pl przewodnik użytkownika], aby uzyskać informacje o działaniu oprogramowania wiki.\n\n== Na początek ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista ustawień konfiguracyjnych]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komunikaty o nowych wersjach MediaWiki (lista dyskusyjna)]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Przetłumacz MediaWiki na swój język]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Dowiedz się, jak walczyć ze spamem na swojej wiki]"
+       "mainpagedocfooter": "Zapoznaj się z [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents informacjami o działaniu oprogramowania wiki].\n\n== Na początek ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista ustawień konfiguracyjnych]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komunikaty o nowych wersjach MediaWiki (lista dyskusyjna)]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Przetłumacz MediaWiki na swój język]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Dowiedz się, jak walczyć ze spamem na swojej wiki]"
 }
index f6480dc..0fca08d 100644 (file)
        "config-nofile": "Não foi possível encontrar o ficheiro \"$1\". Terá sido apagado?",
        "config-extension-link": "Sabia que a sua wiki suporta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensões]?\n\nPode procurar [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensões por categoria].",
        "mainpagetext": "<strong>MediaWiki instalado.</strong>",
-       "mainpagedocfooter": "Consulte o [https://meta.wikimedia.org/wiki/Help:Contents Guia de Utilizadores] para informações sobre o uso do software wiki.\n\n== Onde começar ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de opções de configuração]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Perguntas e respostas frequentes sobre o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Regionalize o MediaWiki para a sua língua]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprenda a combater <i>spam</i> na sua wiki]"
+       "mainpagedocfooter": "Consulte a [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Ajuda do MediaWiki] para informações sobre o uso do software wiki.\n\n== Onde começar ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de opções de configuração]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Perguntas e respostas frequentes sobre o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Regionalize o MediaWiki para a sua língua]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprenda a combater <i>spam</i> na sua wiki]"
 }
index a17bdd9..60d6f43 100644 (file)
@@ -21,7 +21,7 @@ namespace MediaWiki\Interwiki;
  *
  * @file
  *
- * @since 1.28
+ * @since 1.29
  * @ingroup InterwikiLookup
  *
  * @license GNU GPL v2+
@@ -30,7 +30,7 @@ namespace MediaWiki\Interwiki;
 use Interwiki;
 use Site;
 use SiteLookup;
-use MediawikiSite;
+use MediaWikiSite;
 
 class InterwikiLookupAdapter implements InterwikiLookup {
 
@@ -155,7 +155,7 @@ class InterwikiLookupAdapter implements InterwikiLookup {
                $interwikis = [];
                foreach ( $site->getInterwikiIds() as $interwiki ) {
                        $url = $site->getPageUrl();
-                       if ( $site instanceof MediawikiSite ) {
+                       if ( $site instanceof MediaWikiSite ) {
                                $path = $site->getFileUrl( 'api.php' );
                        } else {
                                $path = '';
index 797a438..bc99672 100644 (file)
@@ -357,7 +357,6 @@ class CSSMin {
                }, $source );
 
                return $source;
-
        }
 
        /**
index 4bc0ce6..1593457 100644 (file)
@@ -176,7 +176,6 @@ class SwiftFileBackend extends FileBackendStore {
                return isset( $params['headers'] )
                        ? $this->getCustomHeaders( $params['headers'] )
                        : [];
-
        }
 
        /**
index f057140..3958f8c 100644 (file)
@@ -175,7 +175,6 @@ class XmlTypeCheck {
        }
 
        private function validate( $reader ) {
-
                // First, move through anything that isn't an element, and
                // handle any processing instructions with the callback
                do {
@@ -240,7 +239,6 @@ class XmlTypeCheck {
                                        // NOTATION, or XML_DECLARATION
                                        // xml_parse didn't send these to the filter, so we won't.
                        }
-
                } while ( $this->readNext( $reader ) );
 
                if ( $this->stackDepth !== 0 ) {
@@ -248,7 +246,6 @@ class XmlTypeCheck {
                } elseif ( $this->wellFormed === null ) {
                        $this->wellFormed = true;
                }
-
        }
 
        /**
index da47d35..a148a39 100644 (file)
@@ -103,7 +103,6 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
                                continue;
                        }
                        if ( $targetWiki !== 'local' ) {
-
                                throw new Exception( "Only 'local' target wiki is currently supported" );
                        }
                        if ( $reqType !== 'page' && $reqType !== 'transform' ) {
@@ -150,7 +149,6 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
         * API.  We now translate these to the "real" Parsoid v3 API.
         */
        public function onParsoid1Request( array $req, Closure $idGeneratorFunc ) {
-
                $parts = explode( '/', $req['url'] );
                list(
                        $targetWiki, // 'local'
@@ -221,7 +219,6 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
                }
 
                return $req;
-
        }
 
 }
index 3afbaa3..35c45de 100644 (file)
@@ -78,7 +78,6 @@ class RestbaseVirtualRESTService extends VirtualRESTService {
        }
 
        public function onRequests( array $reqs, Closure $idGenFunc ) {
-
                if ( $this->params['parsoidCompat'] ) {
                        return $this->onParsoidRequests( $reqs, $idGenFunc );
                }
@@ -117,7 +116,6 @@ class RestbaseVirtualRESTService extends VirtualRESTService {
         * Remaps Parsoid v1/v3 requests to RESTBase v1 requests.
         */
        public function onParsoidRequests( array $reqs, Closure $idGeneratorFunc ) {
-
                $result = [];
                foreach ( $reqs as $key => $req ) {
                        $version = explode( '/', $req['url'] )[1];
@@ -131,7 +129,6 @@ class RestbaseVirtualRESTService extends VirtualRESTService {
                }
 
                return $result;
-
        }
 
        /**
@@ -223,7 +220,6 @@ class RestbaseVirtualRESTService extends VirtualRESTService {
                }
 
                return $req;
-
        }
 
        /**
@@ -241,7 +237,6 @@ class RestbaseVirtualRESTService extends VirtualRESTService {
         *   * $revision is optional
         */
        public function onParsoid3Request( array $req, Closure $idGeneratorFunc ) {
-
                $parts = explode( '/', $req['url'] );
                list(
                        $targetWiki, // 'local'
@@ -272,7 +267,6 @@ class RestbaseVirtualRESTService extends VirtualRESTService {
                }
 
                return $req;
-
        }
 
 }
index fffc262..51a0135 100644 (file)
@@ -102,7 +102,6 @@ class FormatMetadata extends ContextSource {
                unset( $tags['ResolutionUnit'] );
 
                foreach ( $tags as $tag => &$vals ) {
-
                        // This seems ugly to wrap non-array's in an array just to unwrap again,
                        // especially when most of the time it is not an array
                        if ( !is_array( $tags[$tag] ) ) {
@@ -165,7 +164,6 @@ class FormatMetadata extends ContextSource {
                        }
 
                        foreach ( $vals as &$val ) {
-
                                switch ( $tag ) {
                                        case 'Compression':
                                                switch ( $val ) {
@@ -1683,7 +1681,6 @@ class FormatMetadata extends ContextSource {
        protected function getExtendedMetadataFromHook( File $file, array $extendedMetadata,
                &$maxCacheTime
        ) {
-
                Hooks::run( 'GetExtendedMetadata', [
                        &$extendedMetadata,
                        $file,
@@ -1807,7 +1804,6 @@ class FormatMetadata extends ContextSource {
                                $field['value'] = $this->resolveMultivalueValue( $field['value'] );
                        }
                }
-
        }
 
        /**
index af77868..db3ec14 100644 (file)
@@ -215,7 +215,6 @@ class ImagePage extends Article {
                        'filepage', // always show the local local Filepage.css, bug 29277
                        'mediawiki.action.view.filepage', // Add MediaWiki styles for a file page
                ] );
-
        }
 
        /**
index b32f43b..e7712f2 100644 (file)
@@ -267,10 +267,8 @@ class LinkHolderArray {
         * @param string $text
         */
        public function replace( &$text ) {
-
                $this->replaceInternal( $text );
                $this->replaceInterwiki( $text );
-
        }
 
        /**
@@ -414,7 +412,6 @@ class LinkHolderArray {
                        $replacer->cb(),
                        $text
                );
-
        }
 
        /**
@@ -614,7 +611,6 @@ class LinkHolderArray {
         * @return string
         */
        public function replaceText( $text ) {
-
                $text = preg_replace_callback(
                        '/<!--(LINK|IWLINK) (.*?)-->/',
                        [ &$this, 'replaceTextCallback' ],
index 9a10878..2900f41 100644 (file)
@@ -733,7 +733,6 @@ class ParserOptions {
                $this->mThumbSize = $user->getOption( 'thumbsize' );
                $this->mStubThreshold = $user->getStubThreshold();
                $this->mUserLang = $lang;
-
        }
 
        /**
index 143f5cc..b05b51b 100644 (file)
@@ -388,7 +388,6 @@ class ResourceLoader implements LoggerAwareInterface {
                                }
                        }
                }
-
        }
 
        /**
@@ -428,7 +427,6 @@ class ResourceLoader implements LoggerAwareInterface {
                        // Keep track of their names so that they can be loaded together
                        $this->testModuleNames[$id] = array_keys( $testModules[$id] );
                }
-
        }
 
        /**
@@ -779,7 +777,6 @@ class ResourceLoader implements LoggerAwareInterface {
 
                $this->errors = [];
                echo $response;
-
        }
 
        /**
@@ -1142,7 +1139,6 @@ MESSAGE;
        protected static function makeLoaderImplementScript(
                $name, $scripts, $styles, $messages, $templates
        ) {
-
                if ( $scripts instanceof XmlJsCode ) {
                        $scripts = new XmlJsCode( "function ( $, jQuery, require, module ) {\n{$scripts->value}\n}" );
                } elseif ( !is_string( $scripts ) && !is_array( $scripts ) ) {
index 8ba49b6..5a50b17 100644 (file)
@@ -62,7 +62,6 @@ class SearchPostgres extends SearchDatabase {
         * @return string
         */
        function parseQuery( $term ) {
-
                wfDebug( "parseQuery received: $term \n" );
 
                # # No backslashes allowed
@@ -115,7 +114,6 @@ class SearchPostgres extends SearchDatabase {
                wfDebug( "parseQuery returned: $searchstring \n" );
 
                return $searchstring;
-
        }
 
        /**
index 6ea8b89..65eb9b7 100644 (file)
@@ -289,7 +289,6 @@ abstract class BaseTemplate extends QuickTemplate {
                if ( $content !== '' ) {
                        echo "<div class='after-portlet after-portlet-$name'>$content</div>";
                }
-
        }
 
        /**
index 3efbd3b..9c5600d 100644 (file)
@@ -196,7 +196,6 @@ class SkinTemplate extends Skin {
        }
 
        protected function setupTemplateForOutput() {
-
                $request = $this->getRequest();
                $user = $this->getUser();
                $title = $this->getTitle();
@@ -257,7 +256,6 @@ class SkinTemplate extends Skin {
                if ( $oldContext ) {
                        $this->setContext( $oldContext );
                }
-
        }
 
        /**
@@ -1171,7 +1169,6 @@ class SkinTemplate extends Skin {
         * @return array
         */
        private function buildContentActionUrls( $content_navigation ) {
-
                // content_actions has been replaced with content_navigation for backwards
                // compatibility and also for skins that just want simple tabs content_actions
                // is now built by flattening the content_navigation arrays into one
index c4e1f17..1e03774 100644 (file)
@@ -156,7 +156,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                        [
                                'returnto' => $this->mReturnTo,
                                'returntoquery' => $this->mReturnToQuery,
-                               'uselang' => $this->mLanguage,
+                               'uselang' => $this->mLanguage ?: null,
                                'fromhttp' => $wgSecureLogin && $this->mFromHTTP ? '1' : null,
                        ]
                );
@@ -619,7 +619,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                $form = HTMLForm::factory( 'vform', $formDescriptor, $context );
 
                $form->addHiddenField( 'authAction', $this->authAction );
-               if ( $wgLoginLanguageSelector ) {
+               if ( $wgLoginLanguageSelector && $this->mLanguage ) {
                        $form->addHiddenField( 'uselang', $this->mLanguage );
                }
                $form->addHiddenField( 'force', $this->securityLevel );
@@ -778,7 +778,6 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                }
 
                return $template;
-
        }
 
        public function onAuthChangeFormFields(
index 6daf19f..252ac31 100644 (file)
@@ -455,7 +455,6 @@ class SpecialSearch extends SpecialPage {
                $out->addHTML( "</div>" );
 
                Hooks::run( 'SpecialSearchResultsAppend', [ $this, $out, $term ] );
-
        }
 
        /**
@@ -752,7 +751,6 @@ class SpecialSearch extends SpecialPage {
         * @return string
         */
        protected function showHit( SearchResult $result, $terms, $position ) {
-
                if ( $result->isBrokenTitle() ) {
                        return '';
                }
@@ -972,7 +970,6 @@ class SpecialSearch extends SpecialPage {
         * @return string
         */
        protected function showInterwikiHit( $result, $lastInterwiki, $query ) {
-
                if ( $result->isBrokenTitle() ) {
                        return '';
                }
@@ -1342,7 +1339,6 @@ class SpecialSearch extends SpecialPage {
         * @return bool
         */
        protected function startsWithAll( $term ) {
-
                $allkeyword = $this->msg( 'searchall' )->inContentLanguage()->text();
 
                $parts = explode( ':', $term );
index 92a65f0..2a59d5d 100644 (file)
@@ -1658,7 +1658,6 @@ class User implements IDBAccessObject {
 
                // Extensions
                Hooks::run( 'GetBlockedStatus', [ &$this ] );
-
        }
 
        /**
@@ -1690,7 +1689,6 @@ class User implements IDBAccessObject {
         * @return bool True if blacklisted.
         */
        public function inDnsBlacklist( $ip, $bases ) {
-
                $found = false;
                // @todo FIXME: IPv6 ???  (http://bugs.php.net/bug.php?id=33170)
                if ( IP::isIPv4( $ip ) ) {
index fc91443..886ee94 100644 (file)
@@ -186,7 +186,6 @@ class SrConverter extends LanguageConverter {
                } else {
                        return false;
                }
-
        }
 
 }
index d9111a6..e1099f8 100644 (file)
@@ -174,7 +174,6 @@ class LanguageZh extends LanguageZh_hans {
         * @return string
         */
        function normalizeForSearch( $string, $autoVariant = 'zh-hans' ) {
-
                // always convert to zh-hans before indexing. it should be
                // better to use zh-hans for search, since conversion from
                // Traditional to Simplified is less ambiguous than the
@@ -183,7 +182,6 @@ class LanguageZh extends LanguageZh_hans {
                // LanguageZh_hans::normalizeForSearch
                $s = parent::normalizeForSearch( $s );
                return $s;
-
        }
 
        /**
index afdee08..e7415f5 100644 (file)
        "wrongpasswordempty": "Þū ne write nǣnig þafungword. \nSēc þū eft lā.",
        "passwordtooshort": "Þafungword sculon habban læst {{PLURAL:$1|1 stafan|$1 stafena}}.",
        "passwordtoolong": "Þafungword ne cunnon wesan lengran þonne {{PLURAL:$1|1 stafa|$1 stafena}}.",
+       "passwordtoopopular": "Swiðe gewunelice gelēafnesword ne mæg man brūcan. Cies anliepe gelēafnesword.",
        "password-name-match": "Þīn þafungword sceal wesan ungelīc þīnum brūcendes naman.",
        "password-login-forbidden": "Sēo nytt þisses brūcendes naman and þafungwordes nis gelīfed.",
        "mailmypassword": "Settan þafungword eft",
        "passwordremindertitle": "Nīwe hwīlendlic þafungword for {{SITENAME}}",
        "noemail": "Þær nis nǣnig spearcǣrenda nama gewriten for \"$1\" brūcende.",
        "noemailcreate": "Þū þearft wrītan gengne spearcǣrenda naman.",
+       "passwordsent": "Niw gelēafnesword habbaþ we gesended þæm ærendgewrites hamsteall in ūr nambrede for \"$1\".",
        "blocked-mailpassword": "Þīn IP nama is fortȳned and ne mæg adihtan. To þam þæt man ne mæg miswendan, man ne mōt brūcan gelēafneswordforfang fram þissum IP stede.",
        "acct_creation_throttle_hit": "Nēosiende tō þissum wici, þe þīnne IP-Stōwe brȳcþ, hæfþ gesett {{PLURAL:$1|1 hordcleofan|$1 hordcleofan}} in þǣm læsten dæge. Þu ne canst settan ǣnige māran. Þǣrfram ne cunnon Nēosiende, þe þisne IP-Stōwe brȳcþ, settan ǣnige hordcleofan māran on þisse handhwīle.",
        "accountcreated": "Scōp reccinge",
index 6893166..dd96161 100644 (file)
        "articlepage": "Adkintun trokiñdungu wülngiñ",
        "talk": "Nütramkawün",
        "views": "Adngelün",
-       "toolbox": "Küdzawpeyüm",
+       "toolbox": "Küdawpeyüm",
        "userpage": "Adkintun kellufe ñi wülngiñ",
        "projectpage": "Adkintun zeumanzugu wülngiñ",
        "imagepage": "Adkintun ad wülngiñ",
        "yourname": "Tami üy",
        "yourpassword": "Tami kondungu",
        "yourpasswordagain": "Rüf feypinge nülawe:",
-       "remembermypassword": "Amulen tañi nülküwküleael tüfa mew (alürumechi $1 {{PLURAL:$1 antü}})",
        "login": "Konkülen",
        "nav-login-createaccount": "konkülen/dewman konün",
        "userlogin": "Konkülen/dewman konün",
index 78e4779..1ccee8e 100644 (file)
        "grant-basic": "Permisos básicos",
        "grant-viewdeleted": "Ver los ficheros y páxines desaniciaos",
        "grant-viewmywatchlist": "Ver la to llista de siguimientu",
+       "grant-viewrestrictedlogs": "Ver entraes acutaes del rexistru",
        "newuserlogpage": "Rexistru de creación d'usuarios",
        "newuserlogpagetext": "Esti ye un rexistru de creación d'usuarios.",
        "rightslog": "Rexistru de permisos d'usuariu",
        "booksources-search": "Buscar",
        "booksources-text": "Esta ye una llista d'enllaces a otros sitios que vienden llibros nuevos y usaos, y que puen tener más información sobre los llibros que ta buscando:",
        "booksources-invalid-isbn": "El códigu ISBN que puxisti nun paez que valga; mira que te vien copiáu de la fonte orixinal.",
+       "magiclink-tracking-rfc": "Páxines que usen enllaces máxicos RFC",
+       "magiclink-tracking-rfc-desc": "Esta páxina utiliza enllaces máxicos RFC. Consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] pa saber como facer la migración.",
+       "magiclink-tracking-pmid": "Páxines qu'usen enllaces máxicos PMID",
+       "magiclink-tracking-pmid-desc": "Esta páxina utiliza enllaces máxicos PMID. Consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] pa saber como facer la migración.",
+       "magiclink-tracking-isbn": "Páxines que usen enllaces máxicos ISBN",
+       "magiclink-tracking-isbn-desc": "Esta páxina utiliza enllaces máxicos ISBN. Consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] pa saber como facer la migración.",
        "specialloguserlabel": "Fecho por:",
        "speciallogtitlelabel": "Oxetivu (títulu o {{ns:user}}:nome d'usuariu):",
        "log": "Rexistros",
        "activeusers-intro": "Esta ye una llista d'usuarios que tuvieron alguna mena d'actividá hai menos de $1 {{PLURAL:$1|día|díes}}.",
        "activeusers-count": "$1 {{PLURAL:$1|edición|ediciones}} {{PLURAL:$3|nel caberu día|nos caberos $3 díes}}",
        "activeusers-from": "Amosar usuarios principiando dende:",
-       "activeusers-hidebots": "Anubrir bots",
-       "activeusers-hidesysops": "Anubrir alministradores",
+       "activeusers-groups": "Amosar los usuarios que pertenecen a los grupos:",
        "activeusers-noresult": "Nun s'alcontraron usuarios.",
        "activeusers-submit": "Amosar los usuarios activos",
        "listgrouprights": "Drechos de los grupos d'usuariu",
        "modifiedarticleprotection": "camudó’l nivel de proteición de «[[$1]]»",
        "unprotectedarticle": "quitó-y la protección a \"[[$1]]\"",
        "movedarticleprotection": "treslladó los parámetros de proteición dende «[[$2]]» a «[[$1]]»",
+       "protectedarticle-comment": "{{GENDER:$2|Protexó}} «[[$1]]»",
+       "modifiedarticleprotection-comment": "{{GENDER:$2|Cambió'l nivel de protección}} pa «[[$1]]»",
+       "unprotectedarticle-comment": "{{GENDER:$2|Quitó la protección}} de «[[$1]]»",
        "protect-title": "Protexendo \"$1\"",
        "protect-title-notallowed": "Ver el nivel de proteición de «$1»",
        "prot_1movedto2": "[[$1]] treslladáu a [[$2]]",
index 278addf..45c7060 100644 (file)
        "actionfailed": "کار نه بوت",
        "deletedtext": "«$1» پاک بوت.\nپه آخیرین پاک بوتینین سابقه ئا بئ $2 ئی تا مراجعه بکنیت.",
        "dellogpage": "پاک بوته‌ئانی کورم",
-       "dellogpagetext": "جهلگین لڑلیست شه آخیرین پاک بوته ئین ئانی لڑا اینت.\nموچین ئانی نشان داته بته ئین وخت خادم وخت (گرینویچ ئی وخت) انت.",
+       "dellogpagetext": "جهلگین لڑلیستا که گیندیت په آخیرئین پاک بوته‌ئین فابلاني خاتیرا اینت.\nموچین نشان داته بوته‌ئین وخت گو (گرینویچ‌ئی وختا) مطابق انت.",
        "deletionlog": "پاک بوته‌ئانی کورم",
        "reverted": "بی دیمتیرین نخسه ئا بیئرگردینته بوت",
        "deletecomment": "دلیل:",
index 851d0c3..31ecf59 100644 (file)
        "booksources-search": "অনুসন্ধান",
        "booksources-text": "নতুন ও পুরাতন ব্যবহৃত বই বিক্রি করে, এমন কতগুলি সাইটের সংযোগের তালিকা নিচে দেওয়া হল, যে সাইটগুলিতে আপনার অনুসন্ধানকৃত বইগুলির উপর আরও তথ্য থাকতে পারে:",
        "booksources-invalid-isbn": "উল্লেখিত ISBN সঠিক নয়; অনুগ্রহ করে মূল উৎস থেকে আবার পরীক্ষা করুন।",
+       "magiclink-tracking-rfc": "আরএফসি জাদু সংযোগ ব্যবহার করা পাতা",
+       "magiclink-tracking-pmid": "পিএমআইডি জাদু সংযোগ ব্যবহার করা পাতা",
+       "magiclink-tracking-isbn": "আইএসবিএন জাদু সংযোগ ব্যবহার করা পাতা",
        "specialloguserlabel": "সম্পাদক:",
        "speciallogtitlelabel": "লক্ষ্য (শিরোনাম বা {{ns:user}}:ব্যবহারকারীর জন্য ব্যবহারকারী নাম):",
        "log": "লগগুলি",
        "modifiedarticleprotection": "\"[[$1]]\"-এর জন্য সুরক্ষার স্তর পরিবর্তন করা হয়েছে",
        "unprotectedarticle": "\"[[$1]]\"-এর সুরক্ষা সরিয়ে নেওয়া হয়েছে",
        "movedarticleprotection": "সুরক্ষা সেটিংস \"[[$2]]\" থেকে \"[[$1]]\"-এ স্থানান্তরিত হয়েছে",
+       "protectedarticle-comment": "\"[[$1]]\" {{GENDER:$2|সুরক্ষিত করা হয়েছে}}",
+       "modifiedarticleprotection-comment": "\"[[$1]]\"-এর {{GENDER:$2|সুরক্ষার স্তর পরিবর্তন করা হয়েছে}}",
+       "unprotectedarticle-comment": "\"[[$1]]\" থেকে {{GENDER:$2|সুরক্ষা সরানো হয়েছে}}",
        "protect-title": "\"$1\" সুরক্ষিত করা হচ্ছে",
        "protect-title-notallowed": "\"$1\" এর সুরক্ষা মাত্রা দেখুন",
        "prot_1movedto2": "[[$1]]-কে [[$2]]-এ সরিয়ে নেওয়া হয়েছে",
index 30c4ac0..54142a6 100644 (file)
        "botpasswords-label-delete": "Löschen",
        "botpasswords-label-resetpassword": "Passwort zurücksetzen",
        "botpasswords-label-grants": "Anwendbare Berechtigungen:",
-       "botpasswords-help-grants": "Jede Berechtigung gibt Zugriff auf gelistete Benutzerrechte, die ein Benutzerkonto bereits hat. Siehe die [[Special:ListGrants|Tabelle]] für weitere Informationen.",
+       "botpasswords-help-grants": "Berechtigungen erlauben den Zugriff auf Rechte, die bereits dein Benutzerkonto besitzt. Das Aktivieren einer Berechtigung hier bietet keinen Zugriff auf Rechte, die dein Benutzerkonto ansonsten nicht hat. Siehe die [[Special:ListGrants|Berechtigungstabelle]] für weitere Informationen.",
        "botpasswords-label-grants-column": "Gewährt",
        "botpasswords-bad-appid": "Der Botname „$1“ ist nicht gültig.",
        "botpasswords-insert-failed": "Der Botname „$1“ konnte nicht hinzugefügt werden. Wurde er bereits hinzugefügt?",
index 8ac4089..dfa9b21 100644 (file)
        "botpasswords-label-delete": "Delete",
        "botpasswords-label-resetpassword": "Reset the password",
        "botpasswords-label-grants": "Applicable grants:",
-       "botpasswords-help-grants": "Each grant gives access to listed user rights that a user account already has. See the [[Special:ListGrants|table of grants]] for more information.",
+       "botpasswords-help-grants": "Grants allow access to rights already held by your user account. Enabling a grant here does not provide access to any rights that your user account would not otherwise have. See the [[Special:ListGrants|table of grants]] for more information.",
        "botpasswords-label-grants-column": "Granted",
        "botpasswords-bad-appid": "The bot name \"$1\" is not valid.",
        "botpasswords-insert-failed": "Failed to add bot name \"$1\". Was it already added?",
        "authmanager-authn-autocreate-failed": "Auto-creation of a local account failed: $1",
        "authmanager-change-not-supported": "The supplied credentials cannot be changed, as nothing would use them.",
        "authmanager-create-disabled": "Account creation is disabled.",
-       "authmanager-create-from-login": "To create your account, please fill in the fields below.",
+       "authmanager-create-from-login": "To create your account, please fill in the fields.",
        "authmanager-create-not-in-progress": "Account creation is not in progress or session data has been lost. Please start again from the beginning.",
        "authmanager-create-no-primary": "The supplied credentials could not be used for account creation.",
        "authmanager-link-no-primary": "The supplied credentials could not be used for account linking.",
index 523cd59..76610b4 100644 (file)
@@ -52,7 +52,8 @@
                        "01miki10",
                        "Matma Rex",
                        "BiscuitMan",
-                       "Alluk."
+                       "Alluk.",
+                       "Tumm1"
                ]
        },
        "tog-underline": "Linkkien alleviivaus:",
@@ -60,7 +61,7 @@
        "tog-hidepatrolled": "Piilota tarkastetut muutokset tuoreet muutokset -listasta",
        "tog-newpageshidepatrolled": "Piilota tarkastetut sivut uusien sivujen listalta",
        "tog-hidecategorization": "Piilota sivujen luokittelu",
-       "tog-extendwatchlist": "Laajenna tarkkailulista näyttämään kaikki tehdyt muutokset eikä vain viimeisimmät",
+       "tog-extendwatchlist": "Laajenna tarkkailulista näyttämään kaikki tehdyt muutokset, eikä vain viimeisimmät",
        "tog-usenewrc": "Ryhmittele muutokset sivun mukaan tuoreiden muutosten listalla ja tarkkailulistalla",
        "tog-numberheadings": "Numeroi otsikot automaattisesti",
        "tog-showtoolbar": "Näytä työkalupalkki",
index 6d95f95..48729da 100644 (file)
        "botpasswords-label-delete": "Supprimer",
        "botpasswords-label-resetpassword": "Réinitialiser le mot de passe",
        "botpasswords-label-grants": "Droits applicables :",
-       "botpasswords-help-grants": "Chaque droit accordé donne accès à la liste des droits utilisateurs dont l’utilisateur dispose déjà. Voyez le [[Special:ListGrants|tableau des droits]] pour plus d’informations.",
+       "botpasswords-help-grants": "Les autorisations permettent d’accéder aux droits déjà accordés à votre compte utilisateur. Activer une autorisation ici ne fournit l’accès à aucun droit que votre compte utilisateur n’aurait pas par ailleurs. Voyez le [[Special:ListGrants|tableau des autorisations]] pour plus d’information.",
        "botpasswords-label-grants-column": "Accordé",
        "botpasswords-bad-appid": "Le nom de robot « $1 » n’est pas valide.",
        "botpasswords-insert-failed": "Échec de l’ajout du nom de robot « $1 ». A-t-il déjà été ajouté ?",
        "scarytranscludefailed": "[La récupération de modèle a échoué pour $1]",
        "scarytranscludefailed-httpstatus": "[Échec de la récupération du modèle pour  $1 : HTTP  $2 ]",
        "scarytranscludetoolong": "[L'URL est trop longue]",
-       "deletedwhileediting": "<strong>Attention</strong> : cette page a été supprimée après que vous avez commencé à la modifier !",
+       "deletedwhileediting": "<strong>Attention</strong> : cette page a été supprimée après que vous ayez commencé à la modifier !",
        "confirmrecreate": "L’utilisat{{GENDER:$1|eur|rice}} [[User:$1|$1]] ([[User talk:$1|Discussion]]) a supprimé cette page, alors que vous aviez commencé à la modifier, pour le motif suivant :\n: <em>$2</em>\nVeuillez confirmer que vous désirez réellement recréer cette page.",
        "confirmrecreate-noreason": "L’utilisat{{GENDER:$1|eur|rice}} [[User:$1|$1]] ([[User talk:$1|Discussion]]) a supprimé cette page, alors que vous aviez commencé à la modifier. Veuillez confirmer que vous désirez réellement recréer cette page.",
        "recreate": "Recréer",
index ad5ebb4..93c2f61 100644 (file)
        "booksources-search": "Procurar",
        "booksources-text": "A continuación aparece unha lista de ligazóns cara a outros sitios web que venden libros novos e usados, neles tamén pode obter máis información sobre as obras que está a buscar:",
        "booksources-invalid-isbn": "O ISBN inserido parece non ser válido; comprobe que non haxa erros ao copialo da fonte orixinal.",
+       "magiclink-tracking-rfc": "Páxinas que usan ligazóns máxicas RFC",
+       "magiclink-tracking-rfc-desc": "Esta páxina utiliza ligazóns máxicas RFC. Consulte [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] para descubrir como facer a migración.",
+       "magiclink-tracking-pmid": "Páxinas que usan ligazóns máxicas PMID",
+       "magiclink-tracking-pmid-desc": "Esta páxina utiliza ligazóns máxicas PMID. Consulte [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] para descubrir como facer a migración.",
+       "magiclink-tracking-isbn": "Páxinas que usan ligazóns máxicas ISBN",
+       "magiclink-tracking-isbn-desc": "Esta páxina utiliza ligazóns máxicas ISBN. Consulte [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] para descubrir como facer a migración.",
        "specialloguserlabel": "Executante:",
        "speciallogtitlelabel": "Obxectivo (título ou {{ns:user}}:nome de usuario):",
        "log": "Rexistros",
index 8e6da31..d4c72f1 100644 (file)
        "botpasswords-label-delete": "מחיקה",
        "botpasswords-label-resetpassword": "איפוס ססמה",
        "botpasswords-label-grants": "זיכיונות מתאימים",
-       "botpasswords-help-grants": "×\9b×\9c ×\96×\99×\9b×\99×\95×\9f × ×\95ת×\9f ×\92×\99ש×\94 ×\9c×\94רש×\90×\95ת ×\9eשת×\9eש ×¨×©×\95×\9e×\95ת ×©×\99ש ×\9c×\97ש×\91×\95×\9f ×\94×\9eשת×\9eש. ×¢×\99×\99× ×\95 ×\91[[Special:ListGrants|×\98×\91×\9cת ×\94×\96×\99×\9b×\99×\95× ×\95ת]] ×\9c×\9e×\99×\93×¢ × ×\95סף.",
+       "botpasswords-help-grants": "×\96×\99×\9b×\99×\95× ×\95ת × ×\95תנ×\99×\9d ×\92×\99ש×\94 ×\9c×\94רש×\90×\95ת ×©×\9b×\91ר ×\9e×\95×\97×\96ק×\95ת ×\91×\99×\93×\99 ×\97ש×\91×\95×\9f ×\94×\9eשת×\9eש ×©×\9c×\9a. ×\94פע×\9cת ×\96×\99×\9b×\99×\95×\9f ×\91×\93×£ ×\96×\94 ×\90×\99× ×\94 × ×\95תנת ×\92×\99ש×\94 ×\9c×\94רש×\90×\95ת ×\90×\97ר×\95ת ×©×\90×\99× ×\9f ×\9e×\95×\97×\96ק×\95ת ×\91×\99×\93×\99 ×\97ש×\91×\95×\9f ×\94×\9eשת×\9eש ×©×\9c×\9a. ×\9e×\99×\93×¢ × ×\95סף ×\9e×\95פ×\99×¢ ×\91[[Special:ListGrants|×\98×\91×\9cת ×\94×\96×\99×\9b×\99×\95× ×\95ת]].",
        "botpasswords-label-grants-column": "ניתן זיכיון",
        "botpasswords-bad-appid": "שם הבוט \"$1\" אינו תקין.",
        "botpasswords-insert-failed": "הוספת שם הבוט \"$1\" נכשלה. האם הוא כבר נוסף?",
        "authmanager-authn-autocreate-failed": "יצירה אוטומטית של חשבון מקומי נכשלה: $1",
        "authmanager-change-not-supported": "לא ניתן לשנות את נתוני ההאמנה שניתנו, כי שום דבר לא ישתמש בהם.",
        "authmanager-create-disabled": "אפשרות יצירת החשבונות מבוטלת.",
-       "authmanager-create-from-login": "×\9b×\93×\99 ×\9c×\99צ×\95ר ×\90ת ×\94×\97ש×\91×\95×\9f, × ×\90 ×\9c×\9e×\9c×\90 ×\90ת ×\94ש×\93×\95ת ×©×\9c×\94×\9c×\9f.",
+       "authmanager-create-from-login": "×\9b×\93×\99 ×\9c×\99צ×\95ר ×\90ת ×\94×\97ש×\91×\95×\9f, ×\99ש ×\9c×\9e×\9c×\90 ×\90ת ×\94ש×\93×\95ת.",
        "authmanager-create-not-in-progress": "יצירת החשבון נכשלה או שנתוני הפעולה נאבדו. נא להתחיל את התהליך מחדש.",
        "authmanager-create-no-primary": "האישורים שסופקו לא יכולים להיות בשימוש ביצירת חשבון.",
        "authmanager-link-no-primary": "האישורים שסופקו לא יכולים להיות בשימוש בקישור חשבונות.",
index f2a0574..8827f36 100644 (file)
        "botpasswords-label-delete": "Cancella",
        "botpasswords-label-resetpassword": "Reimposta la password",
        "botpasswords-label-grants": "Assegnazioni applicabili:",
-       "botpasswords-help-grants": "Ogni assegnazione dà accesso ai diritti utente elencati che un'utenza ha già. Vedi la [[Special:ListGrants|tabella delle assegnazioni]] per ulteriori informazioni.",
+       "botpasswords-help-grants": "Le assegnazioni consentono l'accesso a diritti che la tua utenza possiede già. Attivare un'assegnazione qui non fornisce l'accesso ad alcun diritto che la tua utenza altrimenti non avrebbe. Vedi la [[Special:ListGrants|tabella delle assegnazioni]] per ulteriori informazioni.",
        "botpasswords-label-grants-column": "Assegnazioni",
        "botpasswords-bad-appid": "Il nome bot \"$1\" non è valido.",
        "botpasswords-insert-failed": "Impossibile aggiungere il nome bot \"$1\". È stato già aggiunto?",
        "grant-basic": "Diritti di base",
        "grant-viewdeleted": "Vede i file e le pagine cancellati",
        "grant-viewmywatchlist": "Vede i tuoi osservati speciali",
+       "grant-viewrestrictedlogs": "Vedi valori privati del registro",
        "newuserlogpage": "Nuovi utenti",
        "newuserlogpagetext": "Di seguito sono elencate le utenze di nuova creazione.",
        "rightslog": "Diritti degli utenti",
index f82f9c3..27fe191 100644 (file)
        "confirmdeletetext": "ページをすべての履歴とともに削除しようとしています。\n本当にこの操作を行いたいか、操作の結果を理解しているか、およびこの操作が[[{{MediaWiki:Policy-url}}|方針]]に従っているかどうか、確認してください。",
        "actioncomplete": "操作を完了しました",
        "actionfailed": "操作に失敗しました",
-       "deletedtext": "ã\80\8c$1ã\80\8dã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\81¾ã\81\97ã\81\9fã\80\82\næ\9c\80è¿\91ã\81®å\89\8aé\99¤ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81$2ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84。",
+       "deletedtext": "ã\80\8c$1ã\80\8dã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\81¾ã\81\97ã\81\9fã\80\82\næ\9c\80è¿\91ã\81®å\89\8aé\99¤ã\81¯$2ã\81§å\8f\82ç\85§ã\81§ã\81\8dã\81¾ã\81\99。",
        "dellogpage": "削除記録",
        "dellogpagetext": "以下は最近の削除と復元の一覧です。",
        "deletionlog": "削除記録",
        "undeletedrevisions-files": "{{PLURAL:$1|$1版}}と{{PLURAL:$2|$2ファイル}}を復元しました",
        "undeletedfiles": "{{PLURAL:$1|$1ファイル}}を復元しました",
        "cannotundelete": "復元に一部またはすべて失敗しました:\n$1",
-       "undeletedpage": "<strong>$1を復元しました。</strong>\n\n最近の削除と復元の記録については[[Special:Log/delete|削除記録]]を参照してください。",
+       "undeletedpage": "<strong>$1 を復元しました。</strong>\n\n最近の削除と復元は[[Special:Log/delete|削除記録]]で参照できます。",
        "undelete-header": "最近削除されたページは[[Special:Log/delete|削除記録]]で確認できます。",
        "undelete-search-title": "削除されたページの検索",
        "undelete-search-box": "削除されたページの検索",
        "revertmove": "差し戻し",
        "delete_and_move_text": "移動先「[[:$1]]」は既に存在します。\n移動のためにこのページを削除しますか?",
        "delete_and_move_confirm": "はい、ページを削除します",
-       "delete_and_move_reason": "ã\80\8c[[$1]]ã\80\8dã\81\8bã\82\89ã\81®ç§»å\8b\95ã\81®ã\81\9fã\82\81ã\81«削除",
+       "delete_and_move_reason": "ã\80\8c[[$1]]ã\80\8dã\81\8bã\82\89ã\81®ç§»å\8b\95ã\81«ä¼´ã\81\86削除",
        "selfmove": "移動元と移動先のページ名が同じです。\n自分自身には移動できません。",
        "immobile-source-namespace": "「$1」名前空間のページは移動できません",
        "immobile-target-namespace": "「$1」名前空間にはページを移動できません",
index 3a7cb80..8857967 100644 (file)
        "booksources-search": "Sichen",
        "booksources-text": "Hei ass eng Lëscht mat Linken op Internetsäiten, déi nei a gebraucht Bicher verkafen. Do kann et sinn datt Dir méi Informatiounen iwwer déi Bicher fannt déi Dir sicht.",
        "booksources-invalid-isbn": "D'ISBN-Nummer déi Dir uginn hutt schéngt net gëlteg ze sinn. Kuckt w.e.g. no ob beim Kopéiere kee Feeler geschitt ass.",
+       "magiclink-tracking-rfc": "Säiten, déi magesch RFC-Linke benotzen.",
+       "magiclink-tracking-rfc-desc": "Dës Säit benotzt magesch RFC-Linken. Kuckt [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] fir d'Migratioun.",
+       "magiclink-tracking-pmid": "Säiten, déi magesch PMID-Linke benotzen.",
+       "magiclink-tracking-pmid-desc": "Dës Säit benotzt magesch PMID-Linken. Kuckt [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] fir d'Migratioun.",
+       "magiclink-tracking-isbn": "Säiten, déi magesch ISBN-Linke benotzen.",
+       "magiclink-tracking-isbn-desc": "Dës Säit benotzt magesch ISBN-Linken. Kuckt [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] fir d'Migratioun.",
        "specialloguserlabel": "Aktive Benotzer:",
        "speciallogtitlelabel": "Zil (Titel oder {{ns:user}}:Benotzernumm fir e Benotzer):",
        "log": "Logbicher",
        "activeusers-intro": "Dëst ass eng Lëscht vun de Benotzer déi op iergend eng Manéier an de leschten $1 {{PLURAL:$1|Dag|Deeg}} aktiv waren.",
        "activeusers-count": "$1 {{PLURAL:$1|Aktioun|Aktiounen}} {{PLURAL:$3|gëschter|an de leschten $3 Deeg}}",
        "activeusers-from": "Benotzer weisen, ugefaange bei:",
+       "activeusers-groups": "Benotzer weisen déi zu de Gruppe gehéieren:",
        "activeusers-noresult": "Keng Benotzer fonnt.",
        "activeusers-submit": "Aktiv Benotzer weisen",
        "listgrouprights": "Rechter vun de Benotzergruppen",
        "modifiedarticleprotection": "huet d'Protektioun vun \"[[$1]]\" geännert",
        "unprotectedarticle": "huet d'Spär vu(n) \"[[$1]]\" opgehuewen",
        "movedarticleprotection": "huet de Säiteschutz vun \"[[$2]]\" op \"[[$1]]\" geännert",
+       "protectedarticle-comment": "huet \"[[$1]]\" {{GENDER:$2|gespaart}}",
        "protect-title": "Ännerung vun der Protektioun vu(n) „$1“",
        "protect-title-notallowed": "Den Niveau vun der Protektioun vu(n) \"$1\" weisen",
        "prot_1movedto2": "[[$1]] gouf op [[$2]] geréckelt",
index b9166ac..d35d3a2 100644 (file)
        "booksources-search": "Ieškoti",
        "booksources-text": "Žemiau yra nuorodų sąrašas į kitas svetaines, kurios parduoda naujas ar naudotas knygas, bei galbūt turinčias daugiau informacijos apie knygas, kurių ieškote:",
        "booksources-invalid-isbn": "Duotas ISBN atrodo neteisingas; patikrinkite, ar nepadarėte kopijavimo klaidų.",
+       "magiclink-tracking-rfc": "Puslapiai, naudojantys RFC magiškas nuorodas",
+       "magiclink-tracking-rfc-desc": "Šis puslapis naudoja RFC magiškas nuorodas. Informacija apie perkėlimą [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org].",
+       "magiclink-tracking-pmid": "Puslapiai, naudojantys PMID magiškas nuorodas",
+       "magiclink-tracking-pmid-desc": "Šis puslapis naudoja PMID magiškas nuorodas. Informacija apie perkėlimą [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org].",
+       "magiclink-tracking-isbn": "Puslapiai, naudojantys ISBN magiškas nuorodas",
+       "magiclink-tracking-isbn-desc": "Šis puslapis naudoja ISBN magiškas nuorodas. Informacija apie perkėlimą [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org].",
        "specialloguserlabel": "Naudotojas:",
        "speciallogtitlelabel": "Tikslas (pavadinimas arba {{ns:user}}:naudotojo vardas naudotojui):",
        "log": "Specialiųjų veiksmų sąrašas",
        "activeusers-intro": "Tai naudotojų sąrašas, kurie ką nors padarė per $1 {{PLURAL:$1|paskutinę dieną|paskutines dienas|paskutinių dienų}}.",
        "activeusers-count": "$1 {{PLURAL:$1|keitimas|keitimai|keitimų}} per {{PLURAL:$3|paskutinę dieną|$3 paskutines dienas|$3 paskutinių dienų}}",
        "activeusers-from": "Rodyti naudotojus, pradedant:",
+       "activeusers-groups": "Rodyti vartotojus, priklausančius grupėms:",
        "activeusers-noresult": "Nerasta jokių naudotojų.",
        "activeusers-submit": "Rodyti aktyvius vartotojus",
        "listgrouprights": "Naudotojų grupių teisės",
        "modifiedarticleprotection": "pakeistas „[[$1]]“ apsaugos lygis",
        "unprotectedarticle": "atrakino „[[$1]]“",
        "movedarticleprotection": "perkelti apsaugos nustatymai iš „[[$2]]“ į „[[$1]]“",
+       "protectedarticle-comment": "{{GENDER:$2|Apsaugojo}} „[[$1]]“",
+       "modifiedarticleprotection-comment": "{{GENDER:$2|Pakeitė „[[$1]]“ apsaugos lygį}}",
+       "unprotectedarticle-comment": "{{GENDER:$2|Pašalino apsaugą}} iš „[[$1]]“",
        "protect-title": "Nustatomas apsaugos lygis puslapiui „$1“",
        "protect-title-notallowed": "Peržiūrėti \"$1\" apsaugos lygį",
        "prot_1movedto2": "[[$1]] pervadintas į [[$2]]",
index 427f771..2121915 100644 (file)
        "booksources-search": "Пребарај",
        "booksources-text": "Ова е список на врски кон други мрежни места кои продаваат нови и користени книги, и тие може\nда имаат повеќе информации за книгите што ги баравте:",
        "booksources-invalid-isbn": "Наведениот ISBN се чини неправилен. Проверете да не настанала некоја грешка при копирањето од изворот.",
+       "magiclink-tracking-rfc": "Страници со волшебни врски за барања за коментирање",
+       "magiclink-tracking-rfc-desc": "Страницава користи волшебни врски за барања за коментирање (RFC). Погл. [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] за да дознаете како да ги преселите.",
+       "magiclink-tracking-pmid": "Страници со со волшебни врски за PMID",
+       "magiclink-tracking-pmid-desc": "Страницава користи волшебни врски за PMID. Погл. [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] за да дознаете како да ги преселите.",
+       "magiclink-tracking-isbn": "Страници со волшебни врски за ISBN",
+       "magiclink-tracking-isbn-desc": "Страницава користи волшебни врски за ISBN. Погл. [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] за да дознаете како да ги преселите.",
        "specialloguserlabel": "Изведувач:",
        "speciallogtitlelabel": "Цел (наслов или {{ns:user}}:корисничко име на корисникот):",
        "log": "Дневници",
        "modifiedarticleprotection": "изменет степен на заштита за „[[$1]]“",
        "unprotectedarticle": "отстранета заштитата на „[[$1]]“",
        "movedarticleprotection": "преместени нагодувања за заштита од „[[$2]]“ во „[[$1]]“",
+       "protectedarticle-comment": "{{GENDER:$2|Заштитена}} „[[$1]]“",
+       "modifiedarticleprotection-comment": "{{GENDER:$2|Изменет степенот на заштита}} на „[[$1]]“",
+       "unprotectedarticle-comment": "{{GENDER:$2|Отстранета заштитата}} на „[[$1]]“",
        "protect-title": "Измена на степенот на заштита на „$1“",
        "protect-title-notallowed": "Преглед на степенот на заштита на „$1“",
        "prot_1movedto2": "[[$1]] преместена како [[$2]]",
index 9df4ea2..db52b06 100644 (file)
@@ -12,7 +12,8 @@
                        "Leli Forte",
                        "Macofe",
                        "Matma Rex",
-                       "MTSap"
+                       "MTSap",
+                       "Nemo bis"
                ]
        },
        "tog-underline": "Ħoloq sottolinjati:",
        "yourpasswordagain": "Erġa' ikteb il-password:",
        "createacct-yourpasswordagain": "Ikkonferma l-password",
        "createacct-yourpasswordagain-ph": "Erġa' daħħal il-password",
-       "remembermypassword": "Ftakar il-login tiegħi fuq dan il-kompjuter (għal massimu ta' {{PLURAL:$1|ġurnata|$1 ġurnata}})",
        "userlogin-remembermypassword": "Żommni fil-kont",
        "userlogin-signwithsecure": "Uża konnessjoni sigura",
        "yourdomainname": "Id-dominju tiegħek:",
        "passwordreset-emailtext-user": "{{PLURAL:$3|Din il-password temporanja se tiskadi|Dawn il-passwords temporanji se jiskadu}} fi żmien {{PLURAL:$5|ġurnata|$5 jum}}. Inti għadek tidħol fil-kont tiegħek u tagħżel password ġdida issa. Jekk xi ħadd ieħor għamel din ir-rikjesta, jew jekk ftakart il-password oriġinali, u m'għadikx trid tbiddilha, inti tista' tinjora dan il-messaġġ u tibqa' tuża' l-password il-qadima.",
        "passwordreset-emailelement": "Isem tal-utent: \n$1\n\nPassword temporanja: \n$2",
        "passwordreset-emailsentemail": "Intbagħtet ittra-e għall-issettjar mill-ġdid tal-password.",
-       "passwordreset-emailsent-capture": "Intbagħtet ittra-e għall-ssettjar mill-ġdid tal-password u l-kontenut jidher hawn taħt.",
-       "passwordreset-emailerror-capture": "Ġiet ġenerata ittra-e ta' tfakkira, li l-kontenut tagħha jidher hawn taħt. Madanakollu, il-posta ma ntbagħtitx lill-utent: $1",
        "changeemail": "Biddel l-indirizz elettroniku",
        "changeemail-header": "Biddel l-indirizz elettroniku tal-kont",
        "changeemail-no-info": "Trid tkun dħalt fil-kont tiegħek sabiex taċċessa direttament din il-paġna.",
        "continue-editing": "Mur fil-kaxxa tal-editjar",
        "previewconflict": "Din il-previżjoni turi l-kliem li jinsab fiż-żona ta' modifika superjuri u turi kif tidher kieku l-paġna kella tiġi modifikata.",
        "session_fail_preview": "'''Jiddispjaċina imma l-modifika tiegħek ma setgħetx tiġi pproċessata minħabba li ntilfet l-informazzjoni tas-sessjoni.\nJekk jogħġbok, erġa' pprova. Jekk xorta tibqa' ma taħdimx, ipprova [[Special:UserLogout|oħroġ]] u erġa' idħol.'''",
-       "session_fail_preview_html": "'''Jiddispjaċina imma l-modifika tiegħek ma setgħetx tiġi pproċessata minħabba li ntilfet l-informazzjoni tas-sessjoni.'''\n\n''Peress li {{#ifeq: {{SITENAME}} | translatewiki.net | fuq {{SITENAME}} | fil-{{SITENAME}}}} huwa possibbli l-użu tal-HTML mingħajr limitazzjonijiet (''raw HTML''), id-dehra proviżorja tiġi moħbija bħala prekawzjoni kontra l-attakki tal-JavaScript.''\n\n'''Jekk dan huwa attentat leġittmu ta' modifika, jekk jogħġbok erġa' pprova. Jekk tibqa' ma taħdimx, ipprova [[Special:UserLogout|oħroġ]] u erġa' idħol.'''",
+       "session_fail_preview_html": "'''Jiddispjaċina imma l-modifika tiegħek ma setgħetx tiġi pproċessata minħabba li ntilfet l-informazzjoni tas-sessjoni.'''\n\n''Peress li fil-{{SITENAME}} huwa possibbli l-użu tal-HTML mingħajr limitazzjonijiet (''raw HTML''), id-dehra proviżorja tiġi moħbija bħala prekawzjoni kontra l-attakki tal-JavaScript.''\n\n'''Jekk dan huwa attentat leġittmu ta' modifika, jekk jogħġbok erġa' pprova. Jekk tibqa' ma taħdimx, ipprova [[Special:UserLogout|oħroġ]] u erġa' idħol.'''",
        "token_suffix_mismatch": "'''Il-modifika tiegħek ma ġietx aċċettata minħabba li klijent tiegħek tertaq l-karratri tal-ortografija fit-token tal-modifika.\nDin il-modifika ma ġietx aċċettata sabiex ma jkunx hemm żballji fit-test tal-paġna. Dan xi kultant jiġri minħabba li qiegħed tuża servizz difettuż anonimu li huwa bbażat fuq il-web ta' prokura.'''",
        "edit_form_incomplete": "'''Ċerti parti tal-formola tal-modifika ma laħqux is-server; iċċekkja jekk il-modifiki tiegħek humiex intatti u erġa' pprova.'''",
        "editing": "Modifika ta' $1",
        "undo-failure": "Huwa impossibbli li tiġi annullata l-modifika, minħabba kunflitt ta' modifiki intermedji.",
        "undo-norev": "Il-modifika ma tistax tiġi annullata peress li ma teżistix jew inkella għax ġiet diġà imħassra.",
        "undo-summary": "Neħħi r-reviżjoni $1 ta' [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussjoni]])",
-       "cantcreateaccounttitle": "Il-kont ma jistax jinħoloq",
        "cantcreateaccount-text": "Ħolqien tal-kont minn dan l-indirizz IP ('''$1''') ġie imblukkat minn [[User:$3|$3]].\n\nIr-raġuni li ngħatat minħabba l-blokk mingħand $3 kienet ''$2''",
        "viewpagelogs": "Ara r-reġistri ta' din il-paġna",
        "nohistory": "M'hemm l-ebda kronoloġija ta' modifika f'din il-paġna.",
        "activeusers-intro": "Din hija lista ta' utenti li kellhom xi tip ta' attività f'dawn l-aħħar $1 {{PLURAL:$1|ġurnata|ġurnata}}.",
        "activeusers-count": "$1 {{PLURAL:$1|modifika|modifika}} fl-aħħar {{PLURAL:$3|jum|$3 jum}}",
        "activeusers-from": "Uri utenti li jibdew minn:",
-       "activeusers-hidebots": "Aħbi l-bots",
-       "activeusers-hidesysops": "Aħbi amministraturi",
        "activeusers-noresult": "L-ebda utent ma nstab.",
        "listgrouprights": "Drittijiet tal-grupp tal-utenti",
        "listgrouprights-summary": "Hawn taħt hawn elenkati l-gruppi tal-utenti għal din il-wiki, bid-drittijiet ta' aċċess rispettiv.\nJista' jkun hemm [[{{MediaWiki:Listgrouprights-helppage}}|aktar informazzjoni]] fuq id-drittjiet individwali.",
        "htmlform-cloner-create": "Żid aktar",
        "htmlform-cloner-delete": "Neħħi",
        "htmlform-cloner-required": "Minn tal-anqas valur wieħed huwa bżonnjuż.",
-       "sqlite-has-fts": "$1 bil-possibilità ta' tfittxija kompluta fit-test",
-       "sqlite-no-fts": "$1 mingħajr il-possibilità ta' tfittxija kompluta fit-test",
        "logentry-delete-delete": "$1 {{GENDER:$2|ħassar|ħassret}} il-paġna $3",
        "logentry-delete-restore": "$1 reġġa' lura l-paġna $3",
        "logentry-delete-event": "$1 biddel il-viżibilità ta' {{PLURAL:$5|azzjoni tar-reġistru|$5 azzjonijiet tar-reġistru}} ta' $3: $4",
        "feedback-external-bug-report-button": "Irrapporta problema teknika",
        "feedback-dialog-title": "Ibgħat ir-rispons",
        "feedback-dialog-intro": "Tista' tuża din il-formola sabiex tibgħat ir-rispons tiegħek. Il-kumment tiegħek jiġi miżjuda mal-paġna \"$1\", flimkien mal-isem tal-utent.",
-       "feedback-error-title": "Żball",
        "feedback-error1": "Żball: Riżultat mhux rikonoxxut mill-API",
        "feedback-error2": "Żball: Modifika mhux esegwita",
        "feedback-error3": "Żball: L-ebda risposta mill-API",
        "special-characters-group-lao": "Lao",
        "special-characters-group-khmer": "Khmer",
        "mw-widgets-dateinput-placeholder-day": "SSSS-XX-ĠĠ",
-       "mw-widgets-dateinput-placeholder-month": "SSSS-XX",
-       "api-error-blacklisted": "Jekk jogħġbok agħżel titlu differenti u deskrittiv."
+       "mw-widgets-dateinput-placeholder-month": "SSSS-XX"
 }
index 5f4b8b5..2b1bc3e 100644 (file)
        "newarticle": "(Sin)",
        "newarticletext": "Lí tòe 1 ê liân-kiat lâi kàu 1 bīn iáu-bōe chûn-chāi ê ia̍h. Beh khai-sí pian-chi̍p chit ia̍h, chhiáⁿ tī ē-kha ê bûn-jī keh-á lāi-té phah-jī. ([$1 Bo̍k-lio̍k] kà lí án-choáⁿ chìn-hêng.) Ká-sú lí bô-tiuⁿ-tî lâi kàu chia, ē-sai chhi̍h liû-lám-khì ê '''téng-1-ia̍h''' tńg--khì.",
        "anontalkpagetext": "----''Pún thó-lūn-ia̍h bô kò·-tēng ê kháu-chō/hō·-thâu, kan-na ū 1 ê IP chū-chí (chhin-chhiūⁿ 123.456.789.123). In-ūi bô kāng lâng tī bô kāng sî-chūn ū khó-lêng tú-hó kong-ke kāng-ê IP, lâu tī chia ê oē ū khó-lêng hō· bô kāng lâng ê! Beh pī-bián chit khoán būn-tê, ē-sái khì [[Special:UserLogin|khui 1 ê hō·-thâu a̍h-sī teng-ji̍p]].''",
-       "noarticletext": "這頁這馬無內容,你會使佇別頁[[Special:Search/{{PAGENAME}}|揣這頁標題]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 揣相關日誌],\n抑[{{fullurl:{{FULLPAGENAME}}|action=edit}} 這頁]</span>。",
+       "noarticletext": "這頁這馬無內容,你會使佇別頁[[Special:Search/{{PAGENAME}}|揣這頁標題]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 揣相關日誌],\n抑[{{fullurl:{{FULLPAGENAME}}|action=edit}} 創造這頁]</span>。",
        "clearyourcache": "'''Chù-ì:''' Pó-chûn liáu-āu, tio̍h ē-kì leh kā liû-lám-khì ê cache piàⁿ tiāu chiah khoàⁿ-ē-tio̍h kái-piàn: *'''Firefox / Safari:''' chhi̍h tiâu \"Shift\" kâng-sî-chūn tiám-kik ''Reload/têng-sin chài-ji̍p'' a̍h-sī chhi̍h ''Ctrl-F5'' \"Ctrl-R\" kî-tiong chi̍t ê (''Command-R'' tī Mac) \n* '''Google Chrome:''' chhi̍h ''Ctrl-Shift-R'' (''Command-Shift-R'' tī Mac)\n'''Internet Explorer :'''chhi̍h tiâu \"Ctrl\" kâng-sî-chūn tiám-kek ''Refresh/têng-sin chài-ji̍p'' a̍h-sī chhi̍h \"Ctrl-F5\" \n* '''Konqueror:'''  tiám-kek ''Reload/têng-sin chài-ji̍p'' a̍h-sī chhi̍h ''F5''\n* '''Opera:''' piàⁿ-tiāu cache tī ''Tools(ke-si) → Preferences(siat-piān)''",
        "usercssyoucanpreview": "'''Phiat-pō·''': Pó-chûn chìn-chêng ē-sái chhi̍h 'Seng khoàⁿ-māi' kiám-cha sin ê CSS a̍h-sī JavaScript.",
        "userjsyoucanpreview": "'''Phiat-pō·''': Pó-chûn chìn-chêng ē-sái chhi̍h 'Seng khoàⁿ-māi' kiám-cha sin ê CSS a̍h-sī JavaScript.",
        "filemissing": "Bô tóng-àn",
        "import": "Su-ji̍p ia̍h",
        "tooltip-pt-userpage": "{{GENDER:|Lí ê iōng-chiá}} ê ia̍h",
-       "tooltip-pt-mytalk": " ê thó-lūn ia̍h",
+       "tooltip-pt-mytalk": "{{GENDER:Lí}} ê thó-lūn ia̍h",
        "tooltip-pt-preferences": "{{GENDER:|Lí ê}} siat-tēng",
        "tooltip-pt-watchlist": "你監視的頁有改過的清單",
-       "tooltip-pt-mycontris": " ê kòng-hiàn lia̍t-toaⁿ",
+       "tooltip-pt-mycontris": "{{GENDER:|Lí}} ê kòng-hiàn lia̍t-toaⁿ",
        "tooltip-pt-login": "Hi-bāng lí teng-ji̍p; m̄-ko bô kiông-chè",
        "tooltip-pt-logout": "Teng-chhut",
        "tooltip-pt-createaccount": "Kiàn-gī lí seng khui chi̍t-ê kháu-chō (bô-it-tēng ài); chiah koh teng-ji̍p.",
index a3c3b35..488f76e 100644 (file)
        "tooltip-pt-mytalk": "{{GENDER:|तपाईंको}} वार्ता पृष्ठ",
        "tooltip-pt-anontalk": "यो IP ठेगानाबाट गरिएका सम्पादनका बारेमा बार्तालाप",
        "tooltip-pt-preferences": "{{GENDER:|तपाईंका}} अभिरुचिहरू",
-       "tooltip-pt-watchlist": "पà¥\83षà¥\8dठहरà¥\82à¤\95à¥\8b à¤¸à¥\82à¤\9aà¥\80 à¤\9cसà¤\95ा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनहरà¥\82लाà¤\88 à¤¤à¤ªà¤¾à¤\88à¤\81ले निगरानी गरिरहनु भएको छ",
+       "tooltip-pt-watchlist": "पà¥\83षà¥\8dठहरà¥\82à¤\95à¥\8b à¤¸à¥\82à¤\9aà¥\80 à¤\9cसà¤\95ा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनहरà¥\82लाà¤\88 à¤¤à¤ªà¤¾à¤\88à¤\82ले निगरानी गरिरहनु भएको छ",
        "tooltip-pt-mycontris": "{{GENDER:|तपाईंका}} योगदानहरूको सूची",
        "tooltip-pt-login": "तपाईंलाई प्रवेस गर्न सुझाव दिइन्छ ; तर यो जरुरी भने छैन",
        "tooltip-pt-logout": "निर्गमन (लग आउट) गर्नुहोस्",
        "compare-submit": "दँजाउनुहोस्",
        "compare-invalid-title": "तपाईंले खुलाउनु भएको शिर्षक अमान्य छ।",
        "compare-title-not-exists": "तपाईंले खुलाउनु भएको शिर्षक उपलब्ध छैन ।",
-       "compare-revision-not-exists": "तपाà¤\88à¤\81ले खुलाउनु भएको संस्करण उपलब्ध छैन ।",
+       "compare-revision-not-exists": "तपाà¤\88à¤\82ले खुलाउनु भएको संस्करण उपलब्ध छैन ।",
        "dberr-problems": "क्षमा पाउँ! यो साइटमा तकनीकी गड़बड़ी आइपरेकोछ।",
        "dberr-again": "केही समय पर्खिएर पुन: लोड हुन दिनुहोस् ।",
        "dberr-info": "(डेटाबेस सर्भर: $1 सँग सम्पर्क स्थापित गर्न सकिएन)",
index 91c8b73..66b151e 100644 (file)
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "content-json-empty-object": "Tomt objekt",
+       "duplicate-args-warning": "<strong>Åtvaring:</strong> [[:$1]] kallar [[:$2]] med meir enn éin verdi for argumentet «$3». Berre den sist oppgjevne verdien vert nytta.",
        "expensive-parserfunction-warning": "Åtvaring: Denne sida inneheld for mange prosesskrevande parserfunksjonar.\n\nDet burde vere færre enn {{PLURAL:$2|$2|$2}}, men er no {{PLURAL:$1|$1|$1}}.",
        "expensive-parserfunction-category": "Sider med for mange prosesskrevande parserfunksjonar",
        "post-expand-template-inclusion-warning": "Åtvaring: Storleiken på malar som er inkluderte er for stor.\nNokre malar vert ikkje inkluderte.",
index 676e1b3..1652fc2 100644 (file)
        "booksources-search": "Szukaj",
        "booksources-text": "Poniżej znajduje się lista odnośników do innych witryn, które pośredniczą w sprzedaży nowych i używanych książek, a także mogą posiadać dalsze informacje na temat poszukiwanej przez Ciebie książki.",
        "booksources-invalid-isbn": "Podany numer ISBN został rozpoznany jako nieprawidłowy. Sprawdź czy podany numer zgadza się z numerem zaczerpniętym ze źródła.",
+       "magiclink-tracking-rfc": "Strony używające magicznych linków RFC",
+       "magiclink-tracking-pmid": "Strony używające magicznych linków PMID",
+       "magiclink-tracking-isbn": "Strony używające magicznych linków ISBN",
        "specialloguserlabel": "Kto:",
        "speciallogtitlelabel": "Co (tytuł lub {{ns:user}}:nick użytkownika):",
        "log": "Rejestr operacji",
        "modifiedarticleprotection": "zmienił(a) stopień zabezpieczenia „[[$1]]”",
        "unprotectedarticle": "odbezpieczył(a) „[[$1]]”",
        "movedarticleprotection": "przeniósł ustawienia zabezpieczeń z [[$2]] do [[$1]]",
+       "protectedarticle-comment": "{{GENDER:$2|Zabezpieczył|Zabezpieczyła}} „[[$1]]”",
+       "modifiedarticleprotection-comment": "{{GENDER:$2|Zmienił|Zmieniła}} poziom zabezpieczenia „[[$1]]”",
+       "unprotectedarticle-comment": "{{GENDER:$2|Usunął|Usunęła}} zabezpieczenie z „[[$1]]”",
        "protect-title": "Zmiana stopnia zabezpieczenia „$1”",
        "protect-title-notallowed": "Podgląd stopnia zabezpieczenia „$1”",
        "prot_1movedto2": "stronę [[$1]] przeniósł do [[$2]]",
index 31f79c7..90cf9cc 100644 (file)
        "underline-default": "Padrão do navegador/skin",
        "editfont-style": "Estilo da fonte da área de edição:",
        "editfont-default": "Padrão do navegador",
-       "editfont-monospace": "Fonte mono-espaçada",
+       "editfont-monospace": "Fonte monoespaçada",
        "editfont-sansserif": "Fonte sem serifa",
        "editfont-serif": "Fonte serifada",
        "sunday": "domingo",
        "protectedpages-page": "Página",
        "protectedpages-expiry": "Expira",
        "protectedpages-performer": "Usuário que protegeu",
-       "protectedpages-params": "Parâmetros de proteção.",
+       "protectedpages-params": "Parâmetros de proteção",
        "protectedpages-reason": "Motivo",
        "protectedpages-submit": "Exibir páginas",
        "protectedpages-unknown-timestamp": "Desconhecido",
        "delete-toobig": "Esta página possui um longo histórico de edições, com mais de $1 {{PLURAL:$1|edição|edições}}.\nA eliminação de tais páginas foi restrita, a fim de se evitarem problemas acidentais em {{SITENAME}}.",
        "delete-warning-toobig": "Esta página possui um longo histórico de edições, com mais de $1 {{PLURAL:$1|edição|edições}}.\nEliminá-la poderá causar problemas na base de dados de {{SITENAME}};\nprossiga com cuidado.",
        "deleteprotected": "Não é possível eliminar esta página porque foi protegida.",
-       "deleting-backlinks-warning": "'''Cuidado:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Other pages]] ligam ou redirecionam para a página que você está prestes a excluir.",
+       "deleting-backlinks-warning": "'''Cuidado:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|outras páginas]] ligam ou redirecionam para a página que você está prestes a eliminar.",
        "rollback": "Reverter edições",
        "rollbacklink": "reverter",
        "rollbacklinkcount": "reverter $1 {{PLURAL:$1|edição|edições}}",
        "protect-cascadeon": "Esta página está protegida porque é transclusa da seguinte {{PLURAL:$1|página, que possui|páginas, que possuem}} a proteção em cascata ativas.\nAs mudanças no nível de proteção desta página não afetam a proteção em cascata.",
        "protect-default": "Permitir todos os usuários",
        "protect-fallback": "Permitir apenas os usuários com privilégio de \"$1\"",
-       "protect-level-autoconfirmed": "Permitir apenas usuários auto-confirmados",
+       "protect-level-autoconfirmed": "Permitir apenas usuários autoconfirmados",
        "protect-level-sysop": "Permitir apenas administradores",
        "protect-summary-cascade": "em cascata",
        "protect-expiring": "expira em $1 (UTC)",
        "tooltip-t-recentchangeslinked": "Mudanças recentes nas páginas para as quais esta possui links",
        "tooltip-feed-rss": "Feed RSS desta página",
        "tooltip-feed-atom": "Feed Atom desta página",
-       "tooltip-t-contributions": "Ver as contribuições {{GENDER:$1{{BASEPAGENAME}}|deste usuário|desta usuária|deste(a) usuário(a)}}",
+       "tooltip-t-contributions": "Ver as contribuições {{GENDER:$1|deste usuário|desta usuária|deste(a) usuário(a)}}",
        "tooltip-t-emailuser": "Enviar um e-mail a {{GENDER:{{BASEPAGENAME}}|este usuário|esta usuária|este(a) usuário(a)}}",
        "tooltip-t-info": "Mais informações sobre esta página",
        "tooltip-t-upload": "Enviar arquivos",
index e0a7aa5..c12a04d 100644 (file)
        "botpasswords-label-cancel": "Cancelar",
        "botpasswords-label-delete": "Eliminar",
        "botpasswords-label-resetpassword": "Redefinir palavra-passe",
-       "botpasswords-label-grants": "Concessões de privilégios aplicáveis:",
-       "botpasswords-help-grants": "Cada concessão de privilégios dá acesso às permissões listadas que uma conta de utilizador já possua. Consulte a [[Special:ListGrants|tabela de concessões]] para mais informação.",
+       "botpasswords-label-grants": "Concessões de permissões aplicáveis:",
+       "botpasswords-help-grants": "As concessões de permissões permitem acesso a permissões já detidas pela sua conta de utilizador. Fazer uma concessão aqui não fornece acesso a quaisquer permissões que a usa conta de utilizador não possua. Consulte a [[Special:ListGrants|tabela de concessões]] para mais informação.",
        "botpasswords-label-grants-column": "Concedido",
        "botpasswords-bad-appid": "O nome do robô \"$1\" não é válido.",
        "botpasswords-insert-failed": "Falhou ao adicionar o nome do robô \"$1\". Já foi adicionado?",
        "filedelete-edit-reasonlist": "Editar motivos de eliminação",
        "filedelete-maintenance": "Eliminação e restauro de ficheiros foram temporariamente impossibilitadas durante a manutenção.",
        "filedelete-maintenance-title": "Não é possível eliminar o ficheiro",
-       "mimesearch": "Pesquisa MIME",
-       "mimesearch-summary": "Esta página permite a filtragem de ficheiros pelo seu tipo MIME. Entrada: contenttype/subtype ou contenttype/*, ex. <code>image/jpeg</code>.",
+       "mimesearch": "Pesquisa de ficheiros pelo tipo MIME",
+       "mimesearch-summary": "Esta página permite a filtragem de ficheiros pelo seu tipo MIME.\nSintaxe: \"tipo de conteúdo/subtipo\" ou \"tipo de conteúdo/*\". Exemplos, <code>image/jpeg</code>, <code>image/png</code>, <code>application/*</code>.",
        "mimetype": "Tipo MIME:",
        "download": "descarregar",
        "unwatchedpages": "Páginas não vigiadas",
        "statistics-users": "[[Special:ListUsers|Utilizadores]] registados",
        "statistics-users-active": "Utilizadores ativos",
        "statistics-users-active-desc": "Utilizadores que efectuaram uma operação {{PLURAL:$1|no último dia|nos últimos $1 dias}}",
-       "pageswithprop": "Páginas com uma propriedade",
-       "pageswithprop-legend": "Páginas com uma propriedade",
+       "pageswithprop": "Páginas que usam uma propriedade",
+       "pageswithprop-legend": "Páginas que usam uma propriedade",
        "pageswithprop-text": "Esta página lista páginas que usam uma propriedade em particular.",
        "pageswithprop-prop": "Nome da propriedade:",
        "pageswithprop-submit": "Avançar",
        "listgrouprights-namespaceprotection-header": "Restrições de domínios",
        "listgrouprights-namespaceprotection-namespace": "Domínio",
        "listgrouprights-namespaceprotection-restrictedto": "Direito(s) do utilizador para editar",
-       "listgrants": "Concessões de privilégios a aplicações",
-       "listgrants-summary": "Esta é uma lista das possíveis concessões de privilégios e dos respetivos privilégios do utilizador que são atribuídos por cada concessão. Os utilizadores podem autorizar aplicações a utilizar a sua conta, agindo assim em seu nome mas com as permissões limitadas com base nestas concessões de privilégios. Uma aplicação que age em nome de um utilizador não pode utilizar permissões que o utilizador não possui.\nPoderá existir [[{{MediaWiki:Listgrouprights-helppage}}|informação adicional]] sobre as permissões individuais.",
+       "listgrants": "Concessões de permissões a aplicações ligadas",
+       "listgrants-summary": "Esta é uma lista das possíveis concessões de permissões e das respetivas permissões dos utilizadores que são atribuídas por cada concessão. Os utilizadores podem autorizar aplicações a utilizar a sua conta, agindo assim em seu nome mas com as permissões limitadas com base nestas concessões. Uma aplicação que age em nome de um utilizador não pode utilizar permissões que o utilizador não possui.\nPoderá existir [[{{MediaWiki:Listgrouprights-helppage}}|informação adicional]] sobre as permissões individuais.",
        "listgrants-grant": "Concessão de permissões",
        "listgrants-rights": "Permissões",
        "trackingcategories": "Categorias de monitorização",
        "exif-orientation-8": "Rodado 90° no sentido horário",
        "exif-planarconfiguration-1": "formato irregular",
        "exif-planarconfiguration-2": "formato plano",
+       "exif-xyresolution-c": "$1 pt/cm",
        "exif-colorspace-65535": "Cor não calibrada",
        "exif-componentsconfiguration-0": "não existe",
        "exif-exposureprogram-0": "Não definido",
        "version-libraries-license": "Licença",
        "version-libraries-description": "Descrição",
        "version-libraries-authors": "Autores",
-       "redirect": "Redirecionar por ficheiro, utilizador, página, revisão, ou ID de registo",
-       "redirect-summary": "Esta página especial redireciona para um ficheiro (dado o nome do ficheiro), para uma página (dado um ID de revisão ou página), para uma página de utilizador (dado um ID numérico do utilizador) ou para uma entrada do registo (dado o ID do registo). Utilização: [[{{#Special:Redirect}}/file/Example.jpg]], \n[[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], ou [[{{#Special:Redirect}}/logid/186]].",
+       "redirect": "Redirecionar por nome de ficheiro, ou ID de utilizador, página, revisão ou registo",
+       "redirect-summary": "Esta página especial redireciona para um ficheiro (dado o nome do ficheiro), para uma página (dado o identificador numérico da página ou da revisão), para uma página de utilizador (dado o identificador numérico do utilizador) ou para uma entrada do registo (dado o identificador numérico da entrada no registo). Exemplos de utilização: [[{{#Special:Redirect}}/file/Flag_Bandeiras_lusófonas.JPG]], \n[[{{#Special:Redirect}}/page/12071]], [[{{#Special:Redirect}}/revision/700]], [[{{#Special:Redirect}}/user/1]], ou [[{{#Special:Redirect}}/logid/18868382]].",
        "redirect-submit": "Continuar",
        "redirect-lookup": "Pesquisa:",
        "redirect-value": "Valor:",
        "redirect-user": "Identificador do utilizador",
-       "redirect-page": "Identificador (ID) da página",
-       "redirect-revision": "Revisão da página",
+       "redirect-page": "Identificador da página",
+       "redirect-revision": "Identificador de revisão da página",
        "redirect-file": "Nome do ficheiro",
-       "redirect-logid": "ID do registo",
+       "redirect-logid": "Identificador da entrada do registo",
        "redirect-not-exists": "Valor não encontrado",
-       "fileduplicatesearch": "Pesquisar ficheiros duplicados",
-       "fileduplicatesearch-summary": "Procure ficheiros duplicados tendo por base o seu resumo criptográfico.",
-       "fileduplicatesearch-filename": "Ficheiro:",
+       "fileduplicatesearch": "Pesquisa de ficheiros duplicados",
+       "fileduplicatesearch-summary": "Pesquisa de ficheiros duplicados baseada no resumo criptográfico.",
+       "fileduplicatesearch-filename": "Nome do ficheiro:",
        "fileduplicatesearch-submit": "Pesquisar",
        "fileduplicatesearch-info": "$1 × $2 píxeis<br />Tamanho: $3<br />tipo MIME: $4",
-       "fileduplicatesearch-result-1": "O ficheiro \"$1\" não possui cópias idênticas.",
+       "fileduplicatesearch-result-1": "O ficheiro \"$1\" não tem cópias idênticas.",
        "fileduplicatesearch-result-n": "O ficheiro \"$1\" possui {{PLURAL:$2|uma cópia idêntica|$2 cópias idênticas}}.",
        "fileduplicatesearch-noresults": "Não foi encontrado nenhum ficheiro com o nome \"$1\".",
        "specialpages": "Páginas especiais",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Etiqueta|Etiquetas}}]]: $2)",
        "tag-mw-contentmodelchange": "alteração do modelo de conteúdo",
        "tag-mw-contentmodelchange-description": "Edições que [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel alteram o modelo de conteúdo] de uma página",
-       "tags-title": "Etiquetas",
+       "tags-title": "Etiquetas de modificação válidas",
        "tags-intro": "Esta página lista as etiquetas com que o software poderá marcar uma edição, e o seu significado.",
        "tags-tag": "Nome da etiqueta",
        "tags-display-header": "Aparência nas listas de modificações",
        "mediastatistics": "Estatísticas multimédia",
        "mediastatistics-summary": "Estatísticas sobre os tipos de ficheiros carregados. Inclui apenas a versão mais recente do ficheiro. Versões antigas ou eliminadas são excluídas.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
-       "mediastatistics-bytespertype": "Tamanho total de ficheiro para este secção: {{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%).",
-       "mediastatistics-allbytes": "Tamanho total de ficheiro para todos os ficheiros: {{PLURAL:$1|$1 byte|$1 bytes}} ($2).",
+       "mediastatistics-bytespertype": "Tamanho total dos ficheiros para esta secção: {{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%).",
+       "mediastatistics-allbytes": "Tamanho total de todos os ficheiros: {{PLURAL:$1|$1 byte|$1 bytes}} ($2).",
        "mediastatistics-table-mimetype": "Tipo MIME",
        "mediastatistics-table-extensions": "Extensões possíveis",
        "mediastatistics-table-count": "Número de ficheiros",
        "mediastatistics-table-totalbytes": "Tamanho combinado",
        "mediastatistics-header-unknown": "Desconhecido",
-       "mediastatistics-header-bitmap": "Imagens de mapa de bits",
+       "mediastatistics-header-bitmap": "Imagens em mapa de bits",
        "mediastatistics-header-drawing": "Desenhos (imagens vetoriais)",
        "mediastatistics-header-audio": "Áudio",
        "mediastatistics-header-video": "Vídeo",
index 49b4ab8..735d48b 100644 (file)
        "passwordreset-emailsentusername": "Used in [[Special:PasswordReset]].\n\nSee also:\n* {{msg-mw|Passwordreset-emailsent-capture}}\n* {{msg-mw|Passwordreset-emailerror-capture}}",
        "passwordreset-emailsent-capture2": "Used in [[Special:PasswordReset]].\n\nParameters:\n* $1 - number of accounts notified\n\nSee also:\n* {{msg-mw|Passwordreset-emailsentemail}}\n* {{msg-mw|Passwordreset-emailsentusername}}\n* {{msg-mw|Passwordreset-emailerror-capture}}",
        "passwordreset-emailerror-capture2": "Error message displayed in [[Special:PasswordReset]] when sending an email fails. Parameters:\n* $1 - error message\n* $2 - username, used for GENDER\n* $3 - number of accounts notified\n\nSee also:\n* {{msg-mw|Passwordreset-emailsentemail}}\n* {{msg-mw|Passwordreset-emailsentusername}}\n* {{msg-mw|Passwordreset-emailsent-capture}}\n* {{msg-mw|Passwordreset-emailerror-capture}}",
-       "passwordreset-nocaller": "Shown when a password reset was requested but the caller was not provided. This is an internal error.",
+       "passwordreset-nocaller": "Shown when a password reset was requested but the process failed due to an internal error related to missing details about the origin (caller) of the password reset request.",
        "passwordreset-nosuchcaller": "Shown when a password reset was requested but the username of the caller could not be resolved to a user. This is an internal error.\n\nParameters:\n* $1 - username of the caller",
        "passwordreset-ignored": "Shown when password reset was unsuccessful due to configuration problems.",
        "passwordreset-invalideamil": "Returned when the email address is syntatically invalid.",
        "editpage-invalidcontentmodel-text": "Error message shown when using an unrecognized content model on EditPage. $1 is the user's invalid input",
        "editpage-notsupportedcontentformat-title": "Title of error page shown when using an incompatible format on EditPage.\n\nUsed as title for the following error message:\n* {{msg-mw|Editpage-notsupportedcontentformat-text}}.",
        "editpage-notsupportedcontentformat-text": "Error message shown when using an incompatible format on EditPage.\n\nThe title for this error is {{msg-mw|Editpage-notsupportedcontentformat-title}}.\n\nParameters:\n* $1 - the format id\n* $2 - the content model name",
-       "content-model-wikitext": "Name for the wikitext content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
+       "content-model-wikitext": "Name for the wikitext content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}\n{{Identical|Wikitext}}",
        "content-model-text": "Name for the plain text content model, used when decribing what type of content a page contains. Plaintext means that the content of the page will be rendered as is like:\n\n<nowiki>This is [[plain text]]. <a href=\"https://www.mediawiki.org/\">Really!</a></nowiki>\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}\n\n{{Identical|Plain text}}",
        "content-model-javascript": "Name for the JavaScript content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
-       "content-model-css": "Name for the CSS content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
+       "content-model-css": "Name for the CSS content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}\n{{Identical|CSS}}",
        "content-model-json": "Name for the JSON content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
        "content-json-empty-object": "Used to represent an object with no properties on a JSON content model page.",
        "content-json-empty-array": "Used to represent an array with no values on a JSON content model page.",
        "filedelete-edit-reasonlist": "Shown beneath the file deletion form on the right side. It is a link to [[MediaWiki:Filedelete-reason-dropdown]].\n\n{{Identical|Edit delete reasons}}",
        "filedelete-maintenance": "Content of the error page when $wgUploadMaintenance is set to true.",
        "filedelete-maintenance-title": "Title of the error page when $wgUploadMaintenance is set to true.",
-       "mimesearch": "Title of [[Special:MIMESearch]]. Also used as legend of the form.\n\nSee also:\n* {{msg-mw|Mimetype|label for input box}}\n* {{msg-mw|Ilsubmit|Submit button text}}",
-       "mimesearch-summary": "Text for [[Special:MIMESearch]]",
-       "mimetype": "Used as label for input box in the MIMESearch form on [[Special:MIMESearch]].\n\nSee also:\n* {{msg-mw|Mimesearch|page title}}\n* {{msg-mw|Ilsubmit|Submit button text}}\n{{Identical|MIME type}}",
+       "mimesearch": "Used as page title for [[Special:MIMESearch]], legend of input form and link text in [[Special:SpecialPages]].\n\nStrings on the page:\n* {{msg-mw|Mimesearch|page title, legend of input form, link in special pages}}\n* {{msg-mw|Mimesearch-summary|page summary}}\n* {{msg-mw|Mimetype|label for input box}}\n* {{msg-mw|Ilsubmit|search button}}\n\nCheck [[mw:Manual:MIME_type_detection]] for MIME types.",
+       "mimesearch-summary": "Page summary for [[Special:MIMESearch]]\n\nStrings on the page:\n* {{msg-mw|Mimesearch|page title, legend of input form, link in special pages}}\n* {{msg-mw|Mimesearch-summary|page summary}}\n* {{msg-mw|Mimetype|label for input box}}\n* {{msg-mw|Ilsubmit|search button}}\n\nCheck [[mw:Manual:MIME_type_detection]] for MIME types.",
+       "mimetype": "Label for input box in [[Special:MIMESearch]].\n\nStrings on the page:\n* {{msg-mw|Mimesearch|page title, legend of input form, link in special pages}}\n* {{msg-mw|Mimesearch-summary|page summary}}\n* {{msg-mw|Mimetype|label for input box}}\n* {{msg-mw|Ilsubmit|search button}}\n\nCheck [[mw:Manual:MIME_type_detection]] for MIME types.\n\n{{Identical|MIME type}}",
        "download": "Direct download link in each line returned by [[Special:MIMESearch]]. Points to the actual file, rather than the image description page.\n{{Identical|Download}}",
        "unwatchedpages": "{{doc-special|UnwatchedPages}}",
        "unwatchedpages-summary": "{{doc-specialpagesummary|unwatchedpages}}",
        "newimages-hidepatrolled": "Used as label for a checkbox. When checked, [[Special:NewImages]] will not display patrolled uploads.\n\nCf. {{msg-mw|tog-hidepatrolled}} and {{msg-mw|apihelp-feedrecentchanges-param-hidepatrolled}}.",
        "noimages": "This is shown on the special page [[Special:NewImages]], when there aren't any recently uploaded files.",
        "gallery-slideshow-toggle": "Tooltip for the icon that toggles thumbnails on a slideshow  gallery.",
-       "ilsubmit": "Used as label for input box in the MIMESearch form on [[Special:MIMESearch]].\n\nSee also:\n* {{msg-mw|Mimesearch|page title}}\n* {{msg-mw|Mimetype|label for input box}}\n{{Identical|Search}}",
+       "ilsubmit": "Search button in [[Special:MIMESearch]].\n\nStrings on the page:\n* {{msg-mw|Mimesearch|page title, legend of input form, link in special pages}}\n* {{msg-mw|Mimesearch-summary|page summary}}\n* {{msg-mw|Mimetype|label for input box}}\n* {{msg-mw|Ilsubmit|search button}}\n\nCheck [[mw:Manual:MIME_type_detection]] for MIME types.\n\n{{Identical|Search}}",
        "bydate": "{{Identical|Date}}",
        "sp-newimages-showfrom": "This is a link on [[Special:NewImages]] which takes you to a gallery of the newest files.\n* $1 is a date (example: ''19 March 2008'')\n* $2 is a time (example: ''12:15'')",
        "video-dims": "{{optional}}\nParameters:\n* $1 - ...\n* $2 - width\n* $3 - height",
index 4acb8b6..7b201c9 100644 (file)
        "botpasswords-label-delete": "Удалить",
        "botpasswords-label-resetpassword": "Сбросить пароль",
        "botpasswords-label-grants": "Применимые разрешения:",
-       "botpasswords-help-grants": "Ð\9aаждое Ñ\80азÑ\80еÑ\88ение Ð´Ð°Ñ\91Ñ\82 Ð´Ð¾Ñ\81Ñ\82Ñ\83п Ðº Ð¿ÐµÑ\80еÑ\87иÑ\81леннÑ\8bм Ð¿Ñ\80авам Ñ\83Ñ\87аÑ\81Ñ\82ника, ÐºÐ¾Ñ\82оÑ\80Ñ\8bе Ñ\83же ÐµÑ\81Ñ\82Ñ\8c Ñ\83 Ñ\83Ñ\87Ñ\91Ñ\82ной Ð·Ð°Ð¿Ð¸Ñ\81и Ñ\83Ñ\87аÑ\81Ñ\82ника. Ð¡Ð¼. [[Special:ListGrants|Ñ\82аблиÑ\86Ñ\83 Ñ\80азÑ\80еÑ\88ений]] для получения дополнительной информации.",
+       "botpasswords-help-grants": "Ð\93Ñ\80анÑ\82Ñ\8b Ñ\80азÑ\80еÑ\88иÑ\82Ñ\8c Ð´Ð¾Ñ\81Ñ\82Ñ\83п Ðº Ð¿Ñ\80авам, ÐºÐ¾Ñ\82оÑ\80Ñ\8bми Ñ\83же Ð²Ð»Ð°Ð´ÐµÐµÑ\82 Ð\92аÑ\88ей Ñ\83Ñ\87еÑ\82ной Ð·Ð°Ð¿Ð¸Ñ\81и Ð¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8f. Ð\92клÑ\8eÑ\87ение Ð\93Ñ\80анÑ\82 Ð·Ð´ÐµÑ\81Ñ\8c Ð½Ðµ Ð¿Ñ\80едоÑ\81Ñ\82авлÑ\8fеÑ\82 Ð´Ð¾Ñ\81Ñ\82Ñ\83п Ðº Ð»Ñ\8eбÑ\8bм Ð¿Ñ\80авам, Ñ\87Ñ\82о Ð²Ð°Ñ\88а Ñ\83Ñ\87еÑ\82наÑ\8f Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c Ð\9fолÑ\8cзоваÑ\82елÑ\8f Ð½Ðµ Ð±Ñ\83деÑ\82 Ð² Ð¿Ñ\80оÑ\82ивном Ñ\81лÑ\83Ñ\87ае. Ð¡Ð¼ [[Special:ListGrants|ТаблиÑ\86а Ð³Ñ\80анÑ\82ов]] для получения дополнительной информации.",
        "botpasswords-label-grants-column": "Разрешено",
        "botpasswords-bad-appid": "Имя бота «$1» является недопустимым.",
        "botpasswords-insert-failed": "Не удалось добавить бота с именем «$1». Возможно, он был уже добавлен?",
index 273c8a6..5bd2832 100644 (file)
@@ -48,7 +48,7 @@
        "tog-showhiddencats": "Ruodītė pakavuotas kateguorėjės",
        "tog-norollbackdiff": "Nekrēptė diemesė i skėrtoma atlėkus atmetėma",
        "tog-useeditwarning": "Monėi dout žėnuot, kāp ėšēno ėš poslapė anon naėšsauguojis",
-       "tog-prefershttps": "Vėsūmet nauduotė saugu rīši kāp būno prėsijongė̄s",
+       "tog-prefershttps": "Vėsūmet nauduotė saugu rīši kap būno prisijongė̄s",
        "underline-always": "Vėsūmet",
        "underline-never": "Nikūmet",
        "underline-default": "Vagol naršīklės nustatīmus",
        "laggedslavemode": "Atėduos: Poslapie gal' nesmatītė vielībiausiu pakeitėmu.",
        "readonly": "Doumenū bazė ožrakėnta",
        "enterlockreason": "Iveskėt ožrakėnėma prižasti, tēpuogi kumet daugmaž bus atrokėnta",
-       "readonlytext": "Doumenū bazė daba īr ožrakėnta naujėm irašam a kėtėm keitėmam,\nmažo doumenū bazės techninē pruofilaktėkā,\npuo tuo vėsks griš i sava viežes.\nOžrakėnusiuojo admėnėstratuoriaus pateikts rakėnima paaiškėnims: $1",
+       "readonlytext": "Doumenū bazė daba īr ožrakinta naujėm irašam a kėtėm keitėmam,\nmažo doumenū bazės techninē pruofilaktėkā,\npu tuo viskos grīš i sava viežės.\nOžrakėnosė admėnėstratuorė douts rakėnėma paaiškėnėms: $1",
        "missing-article": "Doumenū bazė nerada poslapė teksta, katra ana torietu rastė, pavadėnta „$1“ $2.\n\nPaprastā tas būn dielē pasenosės skėrtoma vuo istuorėjės nūruodas i poslapi, katros bova ėštrėnts.\n\nJēgo tas nie šėts varėjants, Tamsta mažo raduot klaida pruogramėnė ironguo.\nPrašuom aple šėtā paskelbtė [[Special:ListUsers/sysop|adminėstratoriō]], nepamėršdamė nuruodītė nūruoda.",
        "missingarticle-rev": "(atmains nr. $1)",
        "missingarticle-diff": "(Skėrt.: $1, $2)",
        "yourpasswordagain": "Pakartuoket slaptažuodė:",
        "createacct-yourpasswordagain": "Čīstā tuokis slaptažuodis?",
        "createacct-yourpasswordagain-ph": "Apent ožrašīkat slaptažuodi",
-       "remembermypassword": "Atmintė prisėjongėma infuormacėjė šėtom kuompioteri (daugiausē $1 {{PLURAL:$1|dėina|dėinė|dėinas}})",
        "userlogin-remembermypassword": "Ka liktō prisėjongis",
        "userlogin-signwithsecure": "Apsauguots rīšīs",
        "cannotloginnow-title": "Nēn prėsijongtė",
        "eauthentsent": "Patvėrtėnėma gruomata bova nusiōsta i paskėrta el. pašta adresa.\nPrīš ėšsiontiant kėta gruomata i Tamstas diežote, Tamsta torėt vīkdītė nuruodīmus gruomatuo, kū patvėrtėntomiet, kū diežotė tėkrā īr Tamstas.",
        "throttled-mailpassword": "Slaptažuodžė priminims jau bova ėšsiōsts, par paskotėnės {{PLURAL:$1|adīna|$1 adīnas}}. Nuorint apsėsauguotė nū pėktnaudēvėma, slaptažuodė priminėms gal būt ėšsiōsts tėk kas {{PLURAL:$1|adīna|$1 adīnas}}.",
        "mailerror": "Bieda siontiont gromata: $1",
-       "acct_creation_throttle_hit": "Ton pruojekta lankītuojē, katrėi nauduo Tamstas IP adresa, padėrba {{PLURAL:$1|$1 paskīra|$1 paskīras|$1 paskīrū}} par paskotėnta dėina, a tas īr dėdliausis leidams skaitlios par ta čiesa.\nTudie šėton čieso lankītuojē, katrėi nauduo ta IP adresa, daugiau paskīrū dėrbt negal.",
+       "acct_creation_throttle_hit": "Ton pruojekta lankītuojē, katrėi nauduo Tamstas IP adresa, padėrba {{PLURAL:$1|$1 paskīra|$1 paskīras|$1 paskīrū}} par paskotėnta dėina, a tas īr dėdliausis leidams skaitlios par ta čiesa.\nTudie šėton čieso lankītuojē, katrėi nauduo tou IP adresa, daugiau paskīrū dėrbtė nagal.",
        "emailauthenticated": "Tamstas el. pašta adresos bova ožtvirtėnts $2 d. $3.",
        "emailnotauthenticated": "Tamstas el. pašta adresos da nier patvėrtėnts. Anėjuokės gruomatas\nnebus siontamas ni vėinam žemiau ėšvardėntam puoslaugiō.",
        "noemailprefs": "Nuruodėkīt el. pašta adresa, kū vėiktu šėtos funkcėjės.",
        "userpage-userdoesnotexist-view": "Nie nauduotuojė vardo „$1“",
        "blocked-notice-logextract": "Nauduotuos ožgints īr.\nApatiuo paruodīta kas ė kāpː",
        "clearyourcache": "'''Diemesė:''' ėšsauguojus Tamstā gal prireiktė ėšvalītė Tamstas naršīklės rėnktovė, kū paveizėtomėt pakeitėmus. '''Mozilla / Safari / Konqueror:''' laikīdami ''Shift'' pasėrinkėt ''Atsiōstė ėš nauja'', a paspauskėt ''Ctrl-Shift-R'' (sėstemuo Apple Mac ''Cmd-Shift-R''); '''IE:''' laikīdamė ''Ctrl'' paspauskėt ''Atnaujėntė'', o paspauskėt ''Ctrl-F5''; '''Konqueror:''' paprastiausē paspauskėt ''Perkrautė'' mīgtoka, o paspauskėt ''F5''; '''Opera''' nauduotuojam gal prireiktė pėlnā ėšvalītė anū rėnktovė ''Rakondā→Nustatīmā''.",
-       "usercssyoucanpreview": "'''Patarėms:''' Nauduokit „Ruodītė parvaiza“ mīgtoka, kū ėšmiegintomiet sava naujaji CSS priš ėšsaugont.",
-       "userjsyoucanpreview": "'''Patarėms:''' Nauduokit „Ruodītė parvaiza“ mīgtoka, kū ėšmiegintomiet sava naujaji JS priš ėšsaugont.",
+       "usercssyoucanpreview": "'''Patarėms:''' Nauduokat „{{int:showpreview}}“ mīgtoka, kū ėšmiegintomiet sava naujaji CSS prīš anou ėšsaugont.",
+       "userjsyoucanpreview": "'''Patarėms:''' Nauduokat „{{int:showpreview}}“ mīgtoka, kū ėšmiegintomiet sava naujaji JS prīš anou ėšsaugont.",
        "usercsspreview": "'''Napamirškėt, kū Tamsta tėk parveizėt sava nauduotoja CSS, ans da nabova ėšsauguots!'''",
        "userjspreview": "'''Nepamirškėt, kū Tamsta tėk testoujat/parvaizėt sava nauduotoja ''JavaScript'', ans da nabova ėšsauguots!'''",
        "userinvalidcssjstitle": "'''Diemesė:''' Nė juokės ėšruodos „$1“. Napamirškėt, kū sava .css ėr .js poslapē nauduo pavadėnėma mažuosiomės raidiemis, pvz., Nauduotuos:Foo/vector.css, o ne Nauduotuos:Foo/Vector.css.",
        "updated": "(Atnaujėnta)",
        "note": "'''Žėniuo:'''",
-       "previewnote": "'''Nepamėrškėt, kū tas tėktās pervaiza, pakeitėmā da nier ėšsauguotė!'''",
-       "continue-editing": "Dėrbtė tuoliau",
+       "previewnote": "'''Napamirškat, kū tas tėktās tier parvaiza, pakeitėmā da nier ėšsauguoti!'''",
+       "continue-editing": "Dėrbtė tūliaus",
        "previewconflict": "Šėta parvaiza paruod teksta ėš vėršotinėjė teksta redagavėma lauka tēp, kāp ans bus ruodoms, jei pasirinksėt anū ėšsauguotė.",
-       "session_fail_preview": "'''Atsiprašuom! Mes nagalėm vīkdītė Tamstas keitėma diel sesėjės doumenū praradima.\nPrašuom pamiegintė vielēk. Jei šėtā napaded, pamieginkėt atsėjongtė ėr prėsėjongtė atgal.'''",
-       "session_fail_preview_html": "'''Atsėprašuom! Mes nagalėm apdoroutė Tamstas keitėma diel sesėjės doumenū praradėma.'''\n''Kadaogi šėtom pruojekte grīnasės HTML īr ijongts, parveiza īr pasliepta kāp atsargoma prėimonė priš JavaScript atakas.''\n'''Jei tā teisiets keitėma bandīms, prašuom pamiegint viel. Jei šėtā napaded, pamieginkėt atsėjongtė ėr prėsėjongtė atgal.'''",
+       "session_fail_preview": "'''Atsiprašuom! Mes nagalam ožrašītė Tamstas keitėma diel sesėjės doumenū praradima.\nPrašuom pamiegintė vielek. Jeb tas namacīj, pamieginkat atsijongtė ė prisijongtė apent.'''",
+       "session_fail_preview_html": "'''Atsiprašuom! Mes nagalam apdirbtė Tamstas keitėma diel sesėjės doumenū praradėma.'''\n''Ka tamė pruojektė grīnasis HTML īr ijongts, parveiza īr pakavuota kap atsargoms prīš JavaScript poulėmus.''\n'''Je tā teisiets keitėma miegėnėms, prašuom pamiegintė apent. Je tas namacīj, pamieginkėt atsijongtė ė prisijongtė apent.'''",
        "editing": "Taisuoms straipsnis - $1",
        "creating": "Dėrbama $1",
        "editingsection": "Keitams $1 (skėrsnelis)",
        "editingold": "'''Atėdės: Tamsta keitat ne vielībiausi poslapė atmaina.\nJēgo ėšsauguosat sava pakeitėmus, īkondin darītė pakeitėmā prapols.'''",
        "yourdiff": "Skėrtomā",
        "copyrightwarning": "Žėnuokat, ka vėsks, kas patenk i {{SITENAME}}, īr laikuoma pavėišėnto vagol $2 (platiau - $1). Jēgo nenuorat, ka Tamstas duovis būtom ba gailesė keitams ė skleidams, nerašīkat čė.<br />\nTamsta tēpuogi pasėžadat, ka tas īr Tamstas patėis rašīts torėnīs aba parrašīts nug vėišū aba panašiū liousū vėitu.\n'''NEDIEKAT AUTUORĖNIEM TEISIEM APSERGIETU DARBŪ BA LEIDĖMA!'''",
-       "copyrightwarning2": "Žėnuokat, ka vėsks, kas patenk i {{SITENAME}}, gal būtė keitama ė trėnama. Jēgo nenuorat, ka Tamstas duovis būtom ba gailesė keitams ė skleidams, nerašīkat čė.<br />\nTamsta tēpuogi pasėžadat, ka tas īr Tamstas patėis rašīts torėnīs aba parrašīts nug vėišū aba panašiū liousū vėitu.\n'''NEDIEKAT AUTUORĖNIEM TEISIEM APSERGIETU DARBŪ BA LEIDĖMA!'''",
+       "copyrightwarning2": "Žėnuokat, ka vėskos, kas pakliūn i {{SITENAME}}, gal būtė keitama ė trėnama. Jēgo nenuorat, ka Tamstas duovis būtom ba gailesė keitams ė skleidams, nerašīkat čė.<br />\nTamsta tepuogė pasižadat, ka tas īr Tamstas patėis rašīts torėnīs aba parrašīts nug vėišū aba panašiū liousū vėitu.\n'''NEDIEKAT AUTUORĖNIEM TEISIEM APSERGIETU DARBŪ BA LEIDĖMA!'''",
        "readonlywarning": "'''DIEMESĖ: Doumenū bazė bova ožrakėnta teknėnē pruofilaktėkā,\ntudie negaliesėt ėšsauguotė sava pakeitėmu daba. Tamsta galėt nosėkopėjoutė teksta i tekstėni faila\nė paskum ikeltė ana čė.'''",
        "protectedpagewarning": "'''DIEMESĖ: Šėts poslapis īr ožrakints ėr anū redagoutė gal tėk admėnėstratuorė teises torėntīs prietelē.'''",
        "semiprotectedpagewarning": "'''Pastebiejėms:''' Šėts poslapis bova ožrakėnts ėr anuo gal redagoutė tėk regėstroutė nauduotojā.",
        "listusers-noresult": "Nerast anėjuokiū nauduotuoju.",
        "listusers-blocked": "(ožgints)",
        "activeusers": "Vēkōs nauduotuojē",
-       "activeusers-hidebots": "Kavuotė robuotus",
-       "activeusers-hidesysops": "Kavuotė admėnėstratorius",
        "activeusers-noresult": "Nerast anėjuokiu nauduotuoju.",
        "listgrouprights": "Nauduotuoju gropiu teisės",
        "listgrouprights-group": "Gropė",
index 8d6bfb4..26bd61b 100644 (file)
        "botpasswords-label-delete": "Izbriši",
        "botpasswords-label-resetpassword": "Ponastavi geslo",
        "botpasswords-label-grants": "Veljavne pravice:",
-       "botpasswords-help-grants": "Vsaka pravica dodeli dostop do navedenih uporabniških pravic, ki jih uporabniški račun že ima. Za več informacij si oglejte [[Special:ListGrants|tabelo pravic]].",
+       "botpasswords-help-grants": "Pravice omogočajo dostop do pravic, ki jih vaš uporabniški račun že ima. Tukajšnja omogočitev pravice ne podeli dostopa do katere koli pravice, ki je vaš uporabniški račun drugače še nima. Za več informacij si oglejte [[Special:ListGrants|tabelo pravic]].",
        "botpasswords-label-grants-column": "Odobreno",
        "botpasswords-bad-appid": "Ime bota »$1« ni veljavno.",
        "botpasswords-insert-failed": "Dodajanje imena bota »$1« ni uspelo. Ste ga že dodali?",
index 1453345..fe210a8 100644 (file)
        "modifiedarticleprotection": "промењен степен заштите за „[[$1]]“",
        "unprotectedarticle": "је скинуо заштиту са странице „[[$1]]“",
        "movedarticleprotection": "је преместио подешавања заштите са „[[$2]]“ на „[[$1]]“",
+       "protectedarticle-comment": "{{GENDER:$2|Заштићена}} страница [[$1]]",
+       "modifiedarticleprotection-comment": "{{GENDER:$2|Промењен}} ниво заштите [[$1]]",
+       "unprotectedarticle-comment": "{{GENDER:$2|Скинута}} заштита са [[$1]]",
        "protect-title": "Степен заштите за „$1“",
        "protect-title-notallowed": "Преглед степена заштите за „$1“",
        "prot_1movedto2": "је преместио [[$1]] на [[$2]]",
index 12c3497..333ab9f 100644 (file)
        "booksources-search": "Sök",
        "booksources-text": "Nedan följer en lista över länkar till webbplatser som säljer nya och begagnade böcker, och som kanske har ytterligare information om de böcker du söker.",
        "booksources-invalid-isbn": "Det angivna ISBN-numret verkar inte vara giltigt. Kontrollera källan för eventuella fel.",
+       "magiclink-tracking-rfc": "Sidor som använder magiska RFC-länkar",
+       "magiclink-tracking-rfc-desc": "Denna sida använder magiska RFC-länkar. Se [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] om hur man migrerar.",
+       "magiclink-tracking-pmid": "Sidor som använder magiska PMID-länkar",
+       "magiclink-tracking-pmid-desc": "Denna sida använder magiska PMID-länkar. Se [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] om hur man migrerar.",
+       "magiclink-tracking-isbn": "Sidor som använder magiska ISBN-länkar",
+       "magiclink-tracking-isbn-desc": "Denna sida använder magiska ISBN-länkar. Se [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] om hur man migrerar.",
        "specialloguserlabel": "Utförare:",
        "speciallogtitlelabel": "Mål (titel eller {{ns:user}}:användarnamn för användare):",
        "log": "Loggar",
        "activeusers-intro": "Detta är en lista på användare som har haft någon form av aktivitet inom de senaste $1 {{PLURAL:$1|dygnet|dygnen}}.",
        "activeusers-count": "$1 {{PLURAL:$1|handling|handlingar}} {{PLURAL:$3|det senaste dygnet|de senaste $3 dygnen}}",
        "activeusers-from": "Visa användare från och med:",
+       "activeusers-groups": "Visa användare som tillhör grupper:",
        "activeusers-noresult": "Inga användare funna.",
        "activeusers-submit": "Visa aktiva användare",
        "listgrouprights": "Behörigheter för användargrupper",
        "modifiedarticleprotection": "ändrade skyddsnivån för \"[[$1]]\"",
        "unprotectedarticle": "tog bort skrivskydd från \"[[$1]]\"",
        "movedarticleprotection": "flyttade skrivskyddsinställningar från \"[[$2]]\" till \"[[$1]]\"",
+       "protectedarticle-comment": "{{GENDER:$2|Skyddad}} \"[[$1]]\"",
+       "modifiedarticleprotection-comment": "{{GENDER:$2|Ändrade skyddsnivå}} för \"[[$1]]\"",
+       "unprotectedarticle-comment": "{{GENDER:$2|Tog bort skydd}} från \"[[$1]]\"",
        "protect-title": "Ändra skrivskyddsnivå för \"$1\"",
        "protect-title-notallowed": "Visa skyddsnivån för \"$1\"",
        "prot_1movedto2": "[[$1]] flyttades till [[$2]]",
index 3685734..70344cf 100644 (file)
        "yourpasswordagain": "Naszkryflej ausdruk zaś",
        "createacct-yourpasswordagain": "Potwjyrdź hasło",
        "createacct-yourpasswordagain-ph": "Wszkryflej hasło jeszcze roz",
-       "remembermypassword": "Pamjyntej můj ausdruk na tym kůmputrze (nojdalij bez $1 {{PLURAL:$1|dźyń|dńůw}})",
        "userlogin-remembermypassword": "Ńy wylogůwywuj mje",
        "userlogin-signwithsecure": "Użyj bezpjecznygo połůnczyńa",
        "yourdomainname": "Twoja domyna",
        "listusersfrom": "Pokaž užytkowńikůw začynojůnc uod:",
        "listusers-submit": "Uobejrzij",
        "listusers-noresult": "Ńy znejdźůno žodnygo užytkowńika.",
-       "activeusers-hidebots": "Schrůń boty",
-       "activeusers-hidesysops": "Schrůń adminy",
        "activeusers-noresult": "Niy szło znŏjść żŏdnych używŏczōw",
        "listgrouprights": "Uprawńyńo grup użytkowńikůw",
        "listgrouprights-summary": "Půńiży znojdowo śe spis grup użytkowńikůw zdefińjowanych na tyj wiki, s wyszczygůlńyńym przidźelůnych im prow dostympu.\nSprowdź zajta [[{{MediaWiki:Listgrouprights-helppage}}|s dodatkowymi informacjami]] uo uprowńyńach użytkowńikůw.",
        "logentry-upload-upload": "$1 {{GENDER:$2|posłoł|posłała}} $3",
        "rightsnone": "podstawowo",
        "revdelete-summary": "uopis pomjyńań",
-       "searchsuggest-search": "Sznupej",
+       "searchsuggest-search": "Sznupej we {{SITENAME}}",
        "expand_templates_ok": "OK"
 }
index 64accfa..1fcff99 100644 (file)
        "talk": "تبادلہٴ خیال",
        "views": "مشاہدات",
        "toolbox": "آلات",
-       "tool-link-userrights": "{{GENDER:$1|صارف}} کے گروہوں میں تبدیلی کریں",
+       "tool-link-userrights": "حلقہ ہائے {{GENDER:$1|صارف}} میں تبدیلی",
        "tool-link-emailuser": "اس {{GENDER:$1|صارف}} کو برقی خط لکھیں",
        "userpage": "صارف کا صفحہ دیکھیے",
        "projectpage": "منصوبہ کا صفحہ دیکھیے",
        "prefswarning-warning": "ترجیحات میں آپ کی جانب سے کی جانے والی تبدیلیاں ابھی محفوظ نہیں ہوئی ہیں۔\nاگر آپ «$1» پر کلک کیے بغیر اس صفحہ کو چھوڑ دیں تو آپ کی تبدیلیاں محفوظ نہیں ہوگی۔",
        "prefs-tabs-navigation-hint": "نکتہ: مختلف خانوں میں جانے کے لیے آپ دائیں اور بائیں کی جہت نما کلیدیں استعمال کر سکتے ہیں۔",
        "userrights": "حقوقِ صارف کی نظامت",
-       "userrights-lookup-user": "گروہائے صارف کا انتظام",
+       "userrights-lookup-user": "حلقہ ہائے صارف کا انتظام",
        "userrights-user-editname": "کوئی اسم‌صارف داخل کیجئے:",
-       "editusergroup": "{{GENDER:$1|صارف}} کے گروہوں میں ترمیم کریں",
+       "editusergroup": "حلقہ ہائے {{GENDER:$1|صارف}} میں ترمیم کریں",
        "editinguser": "{{GENDER:$1|صارف}} <strong>[[User:$1|$1]]</strong> $2 کے اختیارات میں تبدیلی",
-       "userrights-editusergroup": "ترÙ\85Û\8cÙ\85 Ú¯Ø±Ù\88Û\81ائÛ\92 ØµØ§Ø±Ù\81",
-       "saveusergroups": "{{GENDER:$1|صارف}} کے گروہوں کو محفوظ کریں",
+       "userrights-editusergroup": "Ø­Ù\84Ù\82Û\81 Û\81ائÛ\92 ØµØ§Ø±Ù\81 Ù\85Û\8cÚº ØªØ±Ù\85Û\8cÙ\85 Ú©Ø±Û\8cÚº",
+       "saveusergroups": "حلقہ ہائے {{GENDER:$1|صارف}} کو محفوظ کریں",
        "userrights-groupsmember": "رکنِ:",
        "userrights-groupsmember-auto": "اعتباری صارف در",
-       "userrights-groups-help": "آپ ان گروہان میں تبدیلی کرسکتے ہیں جن سے صارف متعلق ہے: \n* نشان زد خانہ کا مطلب یہ ہے کہ صارف کا تعلق اس گروہ سے ہے۔ \n* غیر نشان زد خانہ کا مطلب یہ ہے کہ صارف کا تعلق اس گروہ سے نہیں ہے۔ \n* یہ * علامت اس بات کا اشارہ ہے کہ آپ اس گروہ کو نہیں ہٹا سکتے جسے ایک مرتبہ آپ نے شامل کردیا ہو، یا اس کے بر عکس۔",
+       "userrights-groups-help": "آپ ان حلقوں میں تبدیلی کرسکتے ہیں جن سے صارف متعلق ہے: \n* نشان زد خانہ کا مطلب یہ ہے کہ صارف کا تعلق اس گروہ سے ہے۔ \n* غیر نشان زد خانہ کا مطلب یہ ہے کہ صارف کا تعلق اس گروہ سے نہیں ہے۔ \n* یہ * علامت اس بات کا اشارہ ہے کہ آپ اس گروہ کو نہیں ہٹا سکتے جسے ایک مرتبہ آپ نے شامل کردیا ہو، یا اس کے بر عکس۔",
        "userrights-reason": "وجہ:",
        "userrights-no-interwiki": "دوسرے ویکیوں پر حقوقِ صارف میں ترمیم کی آپ کو اجازت نہیں ہے.",
        "userrights-nodatabase": "ڈیٹابیس $1 موجود نہیں یا مقامی نہیں۔",
        "userrights-unchangeable-col": "مجموعات جو آپ تبدیل نہیں کرسکتے",
        "userrights-conflict": "اختیارات کی تبدیلی میں تنازعہ! براہ کرم نظر ثانی کریں اور اپنی تبدیلیوں کی تصدیق کریں۔",
        "userrights-removed-self": "آپ نے اپنے اختیارات ختم کر لیے ہیں، چنانچہ اب یہ صفحہ آپ کی دسترس سے باہر ہو گیا ہے۔",
-       "group": "گروہ:",
+       "group": "حلقہ:",
        "group-user": "صارفین",
        "group-autoconfirmed": "خود توثیق شدہ صارفین",
        "group-bot": "روبالات",
        "activeusers-intro": "ذیل میں ان صارفین کی فہرست ہے جو گزشتہ $1 {{PLURAL:$1|دن|دنوں}} میں کسی بھی قسم کی سرگرمی میں شریک رہے ہوں۔",
        "activeusers-count": "گزشتہ {{PLURAL:$3|دن|$3 دنوں}} میں $1 {{PLURAL:$1|اقدام|اقدامات}}",
        "activeusers-from": "اس حرف سے شروع ہونے والے صارفین کے نام دکھائیں:",
-       "activeusers-hidebots": "خودکار صارفین کو چھپائیں",
-       "activeusers-hidesysops": "منتظمین کو چھپائیں",
        "activeusers-noresult": "یہ صارف نہیں مل سکا",
        "activeusers-submit": "فعال صارفین دکھائیں",
-       "listgrouprights": "صارÙ\81 Ú¯Ø±Ù\88Û\81Ù\88Úº کے اختیارات",
-       "listgrouprights-summary": "ذیل میں اس ویکی پر موجود صارف گروہوں کی فہرست درج ہے۔ اس میں دائیں جانب گروہ کا نام اور بائیں جانب متعلقہ گروہ کو حاصل شدہ اختیارات کی تفصیل بیان کی گئی ہے۔\nانفرادی اختیارات کے متعلق [[{{MediaWiki:Listgrouprights-helppage}}|اضافی معلومات یہاں]] دیکھی جا سکتی ہیں۔",
+       "listgrouprights": "Ø­Ù\84Ù\82Û\81 ØµØ§Ø±Ù\81Û\8cÙ\86 کے اختیارات",
+       "listgrouprights-summary": "ذیل میں اس ویکی پر موجود صارف حلقوں کی فہرست درج ہے۔ اس میں دائیں جانب حلقے کا نام اور بائیں جانب متعلقہ حلقے کو حاصل شدہ اختیارات کی تفصیل بیان کی گئی ہے۔\nانفرادی اختیارات کے متعلق [[{{MediaWiki:Listgrouprights-helppage}}|اضافی معلومات یہاں]] دیکھی جا سکتی ہیں۔",
        "listgrouprights-key": "عنوان:\n* <span class=\"listgrouprights-granted\">تفویض کردہ اختیارات</span>\n* <span class=\"listgrouprights-revoked\">منسوخ کردہ اختیارات</span>",
-       "listgrouprights-group": "گروہ",
+       "listgrouprights-group": "حلقہ",
        "listgrouprights-rights": "اختیارات",
-       "listgrouprights-helppage": "Help:اختیاراتِ گروہ",
+       "listgrouprights-helppage": "Help:اختیاراتِ حلقہ",
        "listgrouprights-members": "(اراکین کی فہرست)",
-       "listgrouprights-addgroup": "{{PLURAL:$2|اس گروہ|ان گروہوں}} میں شامل کرنے کا اختیار ہے: \n\n$1",
-       "listgrouprights-removegroup": "{{PLURAL:$2|اس گروہ|ان گروہوں}} سے ہٹانے کا اختیار ہے: \n\n$1",
-       "listgrouprights-addgroup-all": "تمام گروہوں کا ا ضافہ کریں",
-       "listgrouprights-removegroup-all": "تمام گروہوں کو ہٹانے کا اختیار ہے",
-       "listgrouprights-addgroup-self": "{{PLURAL:$2|اس گروہ|ان گروہوں}} میں از خود شامل ہونے کا اختیار ہے: \n\n$1",
-       "listgrouprights-removegroup-self": "{{PLURAL:$2|اس گروہ|ان گروہوں}} سے از خود نکلنے کا اختیار ہے: \n\n$1",
-       "listgrouprights-addgroup-self-all": "تمام گروہوں میں از خود شامل ہونے کا اختیار ہے",
-       "listgrouprights-removegroup-self-all": "تمام گروہوں سے از خود نکلنے کا اختیار ہے",
+       "listgrouprights-addgroup": "{{PLURAL:$2|اس حلقہ|ان حلقوں}} میں شامل کرنے کا اختیار ہے: \n\n$1",
+       "listgrouprights-removegroup": "{{PLURAL:$2|اس حلقہ|ان حلقوں}} سے ہٹانے کا اختیار ہے: \n\n$1",
+       "listgrouprights-addgroup-all": "تمام حلقوں کا ا ضافہ کریں",
+       "listgrouprights-removegroup-all": "تمام حلقوں کو ہٹانے کا اختیار ہے",
+       "listgrouprights-addgroup-self": "{{PLURAL:$2|اس حلقہ|ان حلقوں}} میں از خود شامل ہونے کا اختیار ہے: \n\n$1",
+       "listgrouprights-removegroup-self": "{{PLURAL:$2|اس حلقہ|ان حلقوں}} سے از خود نکلنے کا اختیار ہے: \n\n$1",
+       "listgrouprights-addgroup-self-all": "تمام حلقوں میں از خود شامل ہونے کا اختیار ہے",
+       "listgrouprights-removegroup-self-all": "تمام حلقوں سے از خود نکلنے کا اختیار ہے",
        "listgrouprights-namespaceprotection-header": "نام فضا پابندیاں",
        "listgrouprights-namespaceprotection-namespace": "فضائے نام",
        "listgrouprights-namespaceprotection-restrictedto": "ترمیم کی اجازت دینے والے اختیار(ات)",
        "logentry-protect-protect-cascade": "$1 نے $3 کو {{GENDER:$2|محفوظ کیا}} $4 [آبشاری]",
        "logentry-protect-modify": "$1 نے $3 کا درجۂ حفاظت {{GENDER:$2|تبدیل کیا}} $4",
        "logentry-protect-modify-cascade": "$1 نے $3 کا درجہ حفاظت {{GENDER:$2|تبدیل کیا}} $4 [آبشاری]",
-       "logentry-rights-rights": "$1 نے {{GENDER:$6|$3}} کی گروہی رکنیت از $4 تا $5 {{GENDER:$2|تبدیل کی}}",
-       "logentry-rights-rights-legacy": "$1 Ù\86Û\92 $3 Ú©Û\8c Ú¯Ø±Ù\88Û\81Û\8c Ø±Ù\88Ú©Ù\86Û\8cت کو {{GENDER:$2|تبدیل کیا}}",
+       "logentry-rights-rights": "$1 نے {{GENDER:$6|$3}} کا حلقہ صارف از $4 تا $5 {{GENDER:$2|تبدیل کی}}",
+       "logentry-rights-rights-legacy": "$1 Ù\86Û\92 $3 Ú©Û\92 Ø­Ù\84Ù\82Û\81 ØµØ§Ø±Ù\81 کو {{GENDER:$2|تبدیل کیا}}",
        "logentry-rights-autopromote": "$1 کو خودکار طور پر $4 سے $5 پر {{GENDER:$2|ترقی مل گئی}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|اپلوڈ}} $3",
        "logentry-upload-overwrite": "$1 نے $3 کا نیا نسخہ {{GENDER:$2|اپلوڈ کیا}}",
index 575f5a9..dbee858 100644 (file)
        "yourpasswordagain": "Bindaatal sa baatujàll",
        "createacct-yourpasswordagain": "Dëggalal baatujàll bi",
        "createacct-yourpasswordagain-ph": "Duggalaatal baatujàll bi",
-       "remembermypassword": "Denc sama yëgley dukkukaay ci bii joowukaay (lu ëpp nag $1 {{PLURAL:$1|day|days}})",
        "userlogin-remembermypassword": "Wéyal dima jàppe gu dugg",
        "yourdomainname": "Sa barab",
        "externaldberror": "Njuumte judd na ci dàttub njoxe bi, walla day ni rekk amuloo sañ-sañu yeesal sa sàqum biti.",
        "undo-failure": "Neenalug coppite gi defuwul: man naa jur ab jàppante ci coppite yi ci diggante bi",
        "undo-norev": "Coppite gi manoo koo neenal ndaxte nekkul walla dañu koo far",
        "undo-summary": "Neenalug coppite $1 yu [[Special:Contributions/$2|$2]] ([[User talk:$2|waxtaan]])",
-       "cantcreateaccounttitle": "sag mbindu Manu la nekk .",
        "cantcreateaccount-text": "Sosum sàq mu bàyyikoo ci bii màkkaanu IP ('''$1''') dañ kaa téye [[User:$3|$3]].\n\nNgirtey téye gi $3 joxe, mooy ne: ''$2''.",
        "viewpagelogs": "Xool yéenekaayu xët wii",
        "nohistory": "Xët wii amulub jaar-jaar.",
        "searchprofile-everything-tooltip": "Seet fépp (ba ci xëti waxtaanuwaay yi)",
        "searchprofile-advanced-tooltip": "Seet ci barabi tur yi",
        "search-result-size": "$1 ({{PLURAL:$2|1 baat|$2 baat}})",
-       "search-redirect": "(jubluwaat bu jëm $1)",
+       "search-redirect": "(yoonalaat gu jëm $1)",
        "search-section": "(xaaj $1)",
        "search-suggest": "Xéj-na lii nga doon seet: $1",
        "search-interwiki-caption": "Sémbu niroowaale",
index f5a295a..6ffd416 100644 (file)
        "unlockdbtext": "解锁数据库将会恢复所有用户编辑页面、修改参数、编辑监视列表以及其他需要更改数据库的操作。请确认您的决定。",
        "lockconfirm": "是,我的确想要锁定数据库。",
        "unlockconfirm": "是,我的确想要解锁数据库。",
-       "lockbtn": "数据库锁定",
+       "lockbtn": "锁定数据库",
        "unlockbtn": "解锁数据库",
        "locknoconfirm": "您没有勾选确认框。",
        "lockdbsuccesssub": "数据库锁定成功",
        "lockedbyandtime": "(由 {{GENDER:$1|$1}} 于$2 $3执行)",
        "move-page": "移动$1",
        "move-page-legend": "移动页面",
-       "movepagetext": "您可以使用下面的表单来重命名一个页面,同时将其版本历史移动到新页面。同时老的条目将会被重定向到新条目。您可以自动地将指向老的条目的重定向更新为指向新条目。如果您不选择这样做的话,请检查[[Special:DoubleRedirects|双重]]或[[Special:BrokenRedirects|损坏重定向]]链接。您有责任确保链接会被正确指向他们应该被指向的地方。\n\n注意:如果新条目已经有对应页面,此页面将<strong>不会</strong>被移动,除非新页面是重定向页并且无任何修订历史。这意味着您可在误操作后将页面移回原处,同时,您无法覆盖现有页面。\n\n<strong>注意:</strong>对这样一个经常被访问的页面而言这可能是一个重大且唐突的更改;请在行动前先了解您的修改可能带来的一切后果。",
+       "movepagetext": "您可以使用下面的表单来重命名一个页面,同时将其所有版本历史移动到新页面。旧标题将会被重定向到新标题。您可以自动更新链接至原标题的重定向。如果您不选择这样做的话,请检查[[Special:DoubleRedirects|双重]]或[[Special:BrokenRedirects|损坏重定向]]链接。您有责任确保链接会被正确指向他们应该被指向的地方。\n\n注意:如果已存在使用新标题的页面,此页面将<strong>不会</strong>被移动,除非新页面是重定向,并且没有过去的编辑历史。这意味着您可在误操作后将页面移回原处,同时,您无法覆盖现有页面。\n\n<strong>注意:</strong>对这样一个经常被访问的页面而言这可能是一个重大且唐突的更改;请在行动前先了解您的修改可能带来的一切后果。",
        "movepagetext-noredirectfixer": "用下面的表单来重命名一个页面,并将其版本历史同时移动到新页面。老的页面将成为新页面的重定向页。请检查[[Special:DoubleRedirects|双重重定向]]或[[Special:BrokenRedirects|损坏重定向]]链接。您应当负责确定所有链接依然会链到指定的页面。\n\n注意如果新页面已经有内容的话,页面将<strong>不会</strong>被移动,除非新页面无内容或是重定向页,而且没有版本历史。这意味着您再必要时可以在移动到新页面后再移回老的页面,同时您也无法覆盖现有页面。\n\n<strong>注意:</strong>对一个经常被访问的页面而言这可能是一个重大与唐突的更改;请在行动前先确定您了解其所可能带来的后果。",
        "movepagetalktext": "如果您勾选此框,相关联的讨论页将被自动移动到新的标题,除非这里已经有了一个非空讨论页。\n\n在这种情况下,如有需要,您将不得不手动移动或合并页面。",
        "moveuserpage-warning": "'''警告:'''你将移动一个用户页面。请注意,只有该页面会被移动,该用户''不''会被更名。",
index c74cae2..552bec0 100644 (file)
@@ -459,7 +459,6 @@ abstract class Maintenance {
         * Add the default parameters to the scripts
         */
        protected function addDefaultParams() {
-
                # Generic (non script dependant) options:
 
                $this->addOption( 'help', 'Display this help message', false, false, 'h' );
@@ -546,7 +545,6 @@ abstract class Maintenance {
                                . "for this script to run: $joined. Please enable them and then try again.";
                        $this->error( $msg, 1 );
                }
-
        }
 
        /**
index 3f0a83d..b504bde 100644 (file)
@@ -60,7 +60,6 @@ class CheckComposerLockUpToDate extends Maintenance {
                        // We couldn't find any out-of-date dependencies, so assume everything is ok!
                        $this->output( "Your composer.lock file is up to date with current dependencies!\n" );
                }
-
        }
 }
 
index f13dd93..388ad8a 100644 (file)
@@ -109,7 +109,6 @@ class GenerateCommonPassword extends Maintenance {
                } catch ( \Cdb\Exception $e ) {
                        $this->error( "Error writing cdb file: " . $e->getMessage(), 2 );
                }
-
        }
 }
 
index 28ad10a..676ecca 100644 (file)
@@ -50,7 +50,7 @@
 @colorWarningText: #705000;
 
 // UI colors
-@colorFieldBorder: #9aa0a7;
+@colorFieldBorder: #a2a9b1;
 @colorShadow: @colorGray14;
 @colorPlaceholder: @colorGray10;
 @colorNeutral: @colorGray7;
index 59f88c9..b6e811b 100644 (file)
@@ -264,7 +264,6 @@ class TestFileReader {
                $this->sectionLineNum = [];
                $this->sectionData = [];
                $this->section = null;
-
        }
 
        /**
index 9f4a01c..89416f2 100644 (file)
@@ -18,7 +18,6 @@ class GitInfoTest extends MediaWikiTestCase {
                $this->assertEquals( 'master', $gitInfo->getCurrentBranch() );
                $this->assertContains( '0123456789abcdef0123456789abcdef01234567',
                        $gitInfo->getHeadViewUrl() );
-
        }
 
        public function testValidJsonData() {
index bc50966..95c7a61 100644 (file)
@@ -92,7 +92,6 @@ class HtmlTest extends MediaWikiTestCase {
         * @covers Html::expandAttributes
         */
        public function testExpandAttributesSkipsNullAndFalse() {
-
                # ## EMPTY ########
                $this->assertEmpty(
                        Html::expandAttributes( [ 'foo' => null ] ),
@@ -190,7 +189,6 @@ class HtmlTest extends MediaWikiTestCase {
                        Html::expandAttributes( [ 'zero' => 0 ] ),
                        'Number 0 value needs no quotes'
                );
-
        }
 
        /**
index 61b165a..428b012 100644 (file)
@@ -6,7 +6,6 @@
 class LinkFilterTest extends MediaWikiLangTestCase {
 
        protected function setUp() {
-
                parent::setUp();
 
                $this->setMwGlobals( 'wgUrlProtocols', [
@@ -26,7 +25,6 @@ class LinkFilterTest extends MediaWikiLangTestCase {
                        'mms://',
                        '//',
                ] );
-
        }
 
        /**
@@ -38,11 +36,9 @@ class LinkFilterTest extends MediaWikiLangTestCase {
         * @return string Regex
         */
        function createRegexFromLIKE( $like ) {
-
                $regex = '!^';
 
                foreach ( $like as $item ) {
-
                        if ( $item instanceof LikeMatch ) {
                                if ( $item->toString() == '%' ) {
                                        $regex .= '.*';
@@ -58,7 +54,6 @@ class LinkFilterTest extends MediaWikiLangTestCase {
                $regex .= '$!';
 
                return $regex;
-
        }
 
        /**
@@ -67,7 +62,6 @@ class LinkFilterTest extends MediaWikiLangTestCase {
         * @return array
         */
        public static function provideValidPatterns() {
-
                return [
                        // Protocol, Search pattern, URL which matches the pattern
                        [ 'http://', '*.test.com', 'http://www.test.com' ],
@@ -164,7 +158,6 @@ class LinkFilterTest extends MediaWikiLangTestCase {
                        // [ '', 'https://*.wikimedia.org/r/#/q/status:open,n,z',
                        //      'https://gerrit.wikimedia.org/XXX/r/#/q/status:open,n,z', false ],
                ];
-
        }
 
        /**
@@ -181,7 +174,6 @@ class LinkFilterTest extends MediaWikiLangTestCase {
         * @param bool $shouldBeFound Should the URL be found? (defaults true)
         */
        function testMakeLikeArrayWithValidPatterns( $protocol, $pattern, $url, $shouldBeFound = true ) {
-
                $indexes = wfMakeUrlIndexes( $url );
                $likeArray = LinkFilter::makeLikeArray( $pattern, $protocol );
 
@@ -211,7 +203,6 @@ class LinkFilterTest extends MediaWikiLangTestCase {
                                "Search pattern '$protocol$pattern' should not find url '$url' \n$debugmsg"
                        );
                }
-
        }
 
        /**
@@ -220,7 +211,6 @@ class LinkFilterTest extends MediaWikiLangTestCase {
         * @return array
         */
        public static function provideInvalidPatterns() {
-
                return [
                        [ '' ],
                        [ '*' ],
@@ -240,7 +230,6 @@ class LinkFilterTest extends MediaWikiLangTestCase {
                        [ 'test.com/*/index' ],
                        [ 'test.com/dir/index?arg=*' ],
                ];
-
        }
 
        /**
@@ -253,12 +242,10 @@ class LinkFilterTest extends MediaWikiLangTestCase {
         * @param string $pattern Invalid search pattern
         */
        function testMakeLikeArrayWithInvalidPatterns( $pattern ) {
-
                $this->assertFalse(
                        LinkFilter::makeLikeArray( $pattern ),
                        "'$pattern' is not a valid pattern and should be rejected"
                );
-
        }
 
 }
index cc1708a..29c9e22 100644 (file)
@@ -266,11 +266,9 @@ class TestPageProps extends MediaWikiLangTestCase {
        }
 
        protected function setProperties( $pageID, $properties ) {
-
                $rows = [];
 
                foreach ( $properties as $propertyName => $propertyValue ) {
-
                        $row = [
                                'pp_page' => $pageID,
                                'pp_propname' => $propertyName,
@@ -295,11 +293,9 @@ class TestPageProps extends MediaWikiLangTestCase {
        }
 
        protected function setProperty( $pageID, $propertyName, $propertyValue ) {
-
                $properties = [];
                $properties[$propertyName] = $propertyValue;
 
                $this->setProperties( $pageID, $properties );
-
        }
 }
index 9359568..152602a 100644 (file)
@@ -91,6 +91,5 @@ class TemplateCategoriesTest extends MediaWikiLangTestCase {
                        $title->getParentCategories(),
                        'Verify that the page is no longer in the category after template deletion'
                );
-
        }
 }
index 6da16a0..3ad16d1 100644 (file)
@@ -195,7 +195,6 @@ class ApiContinuationManagerTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
-
        }
 
 }
index 48472cf..98e24fb 100644 (file)
@@ -1230,7 +1230,6 @@ class ApiResultTest extends MediaWikiTestCase {
                                ],
                        ],
                ];
-
        }
 
        /**
@@ -1380,7 +1379,6 @@ class ApiResultTest extends MediaWikiTestCase {
                        'two' => 2,
                ], $arr['foo'] );
        }
-
 }
 
 class ApiResultTestStringifiableObject {
index 6359983..d8282be 100644 (file)
@@ -25,7 +25,6 @@ class ApiRevisionDeleteTest extends ApiTestCase {
                        $this->revs[] = Title::newFromText( self::$page )
                                ->getLatestRevID( Title::GAID_FOR_UPDATE );
                }
-
        }
 
        public function testHidingRevisions() {
index 13486e2..f57db11 100644 (file)
@@ -695,7 +695,6 @@ class AuthManagerTest extends \MediaWikiTestCase {
                                $ex->getMessage()
                        );
                }
-
        }
 
        public function testBeginAuthentication() {
@@ -3265,7 +3264,6 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $this->manager->removeAuthenticationSessionData( null );
                $this->assertNull( $this->manager->getAuthenticationSessionData( 'foo' ) );
                $this->assertNull( $this->manager->getAuthenticationSessionData( 'bar' ) );
-
        }
 
        public function testCanLinkAccounts() {
index c52c3e9..ec4bea1 100644 (file)
@@ -104,6 +104,5 @@ class EmailNotificationSecondaryAuthenticationProviderTest extends \PHPUnit_Fram
                $authManager->setAuthenticationSessionData( 'no-email', true );
                $provider->setManager( $authManager );
                $provider->beginSecondaryAccountCreation( $userNotExpectsConfirmation, $creator, [] );
-
        }
 }
index 088dd00..caf1680 100644 (file)
@@ -328,7 +328,6 @@ class LocalPasswordPrimaryAuthenticationProviderTest extends \MediaWikiTestCase
                        AuthenticationResponse::newPass( $userName ),
                        $provider->beginPrimaryAuthentication( $reqs )
                );
-
        }
 
        /**
@@ -645,7 +644,6 @@ class LocalPasswordPrimaryAuthenticationProviderTest extends \MediaWikiTestCase
                $this->assertNull( $provider->finishAccountCreation( $user, $user, $res2 ) );
                $ret = $provider->beginPrimaryAuthentication( $reqs );
                $this->assertEquals( AuthenticationResponse::PASS, $ret->status, 'new password is set' );
-
        }
 
 }
index bc78c08..d4ebe34 100644 (file)
@@ -347,7 +347,6 @@ class TemporaryPasswordPrimaryAuthenticationProviderTest extends \MediaWikiTestC
                        'wrongpassword',
                        $ret->message->getKey()
                );
-
        }
 
        /**
index 7fe3351..7dea123 100644 (file)
@@ -36,7 +36,6 @@ class UserDataAuthenticationRequestTest extends AuthenticationRequestTestCase {
                        $this->assertSame( $email ?: 'default@example.com', $user->getEmail() );
                        $this->assertSame( $realname ?: 'Fake Name', $user->getRealName() );
                }
-
        }
 
        public static function providePopulateUser() {
index 0e87ffa..7c36f7d 100644 (file)
@@ -173,7 +173,6 @@ class MWExceptionTest extends MediaWikiTestCase {
         * @dataProvider provideJsonSerializedKeys
         */
        public function testJsonserializeexceptionKeys( $expectedKeyType, $exClass, $key ) {
-
                # Make sure we log a backtrace:
                $this->setMwGlobals( [ 'wgLogExceptionBacktrace' => true ] );
 
@@ -235,7 +234,6 @@ class MWExceptionTest extends MediaWikiTestCase {
                        MWExceptionHandler::jsonSerializeException( new Exception() )
                );
                $this->assertObjectNotHasAttribute( 'backtrace', $json );
-
        }
 
 }
index 70c0ece..6d096c2 100644 (file)
@@ -24,7 +24,6 @@ class LinkRendererTest extends MediaWikiLangTestCase {
                        'wgScript' => '/w/index.php',
                ] );
                $this->factory = MediaWikiServices::getInstance()->getLinkRendererFactory();
-
        }
 
        public function testMergeAttribs() {
index f70b42d..47ed67b 100644 (file)
@@ -17,7 +17,6 @@ class ExifBitmapTest extends MediaWikiMediaTestCase {
                $this->setMwGlobals( 'wgShowEXIF', true );
 
                $this->handler = new ExifBitmapHandler;
-
        }
 
        /**
index 4cbeeb9..8284d05 100644 (file)
@@ -138,7 +138,6 @@ class SessionProviderTest extends MediaWikiTestCase {
                                $ex->getMessage()
                        );
                }
-
        }
 
        public function testHashToSessionId() {
index 3815416..e6a6ad3 100644 (file)
@@ -299,7 +299,6 @@ class SessionTest extends MediaWikiTestCase {
 
                $session->resetAllTokens();
                $this->assertArrayNotHasKey( 'wsTokenSecrets', $backend->data );
-
        }
 
        /**
index 34548c0..199fc8f 100644 (file)
@@ -269,7 +269,6 @@ class UserTest extends MediaWikiTestCase {
                // let the user have a few (3) edits
                $page = WikiPage::factory( Title::newFromText( 'Help:UserTest_EditCount' ) );
                for ( $i = 0; $i < 3; $i++ ) {
-
                        $page->doEditContent(
                                ContentHandler::makeContent( (string)$i, $page->getTitle() ),
                                'test',
@@ -505,7 +504,6 @@ class UserTest extends MediaWikiTestCase {
        public function testGetId() {
                $user = static::getTestUser()->getUser();
                $this->assertTrue( $user->getId() > 0 );
-
        }
 
        /**
index 86ce53f..2e6bf37 100644 (file)
@@ -91,7 +91,6 @@ class ResourcesTest extends MediaWikiTestCase {
         */
        public function testMissingMessages() {
                $data = self::getAllModules();
-               $validDeps = array_keys( $data['modules'] );
                $lang = Language::factory( 'en' );
 
                /** @var ResourceLoaderModule $module */
@@ -114,7 +113,6 @@ class ResourcesTest extends MediaWikiTestCase {
         */
        public function testUnsatisfiableDependencies() {
                $data = self::getAllModules();
-               $validDeps = array_keys( $data['modules'] );
 
                /** @var ResourceLoaderModule $module */
                foreach ( $data['modules'] as $moduleName => $module ) {