Merge "Fix autoloading of ExportProgressFilter"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 13 Dec 2017 21:12:15 +0000 (21:12 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 13 Dec 2017 21:12:15 +0000 (21:12 +0000)
118 files changed:
autoload.php
docs/extension.schema.v1.json
docs/extension.schema.v2.json
includes/AutoLoader.php
includes/CategoryFinder.php
includes/DefaultSettings.php
includes/Linker.php
includes/Preferences.php
includes/api/ApiQuerySearch.php
includes/api/i18n/en.json
includes/api/i18n/nl.json
includes/api/i18n/qqq.json
includes/htmlform/fields/HTMLUsersMultiselectField.php
includes/installer/Installer.php
includes/installer/i18n/eu.json
includes/installer/i18n/zh-hant.json
includes/libs/objectcache/WANObjectCache.php
includes/parser/Parser.php
includes/registration/ExtensionRegistry.php
includes/skins/SkinTemplate.php
includes/specials/SpecialEmailuser.php
includes/specials/SpecialListgrouprights.php
includes/specials/SpecialWatchlist.php
includes/user/User.php
includes/utils/AutoloadGenerator.php
languages/data/ZhConversion.php
languages/i18n/atj.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bn.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/csb.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/frr.json
languages/i18n/gl.json
languages/i18n/got.json
languages/i18n/he.json
languages/i18n/hr.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/ka.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/map-bms.json
languages/i18n/mk.json
languages/i18n/mr.json
languages/i18n/mwl.json
languages/i18n/my.json
languages/i18n/nb.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/nys.json
languages/i18n/pl.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ru.json
languages/i18n/sat.json
languages/i18n/sgs.json
languages/i18n/shi.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/th.json
languages/i18n/tl.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/vi.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/generateLocalAutoload.php
maintenance/language/zhtable/toCN.manual
maintenance/language/zhtable/toHK.manual
maintenance/language/zhtable/toTW.manual
maintenance/language/zhtable/tradphrases.manual
maintenance/language/zhtable/tradphrases_exclude.manual
maintenance/storage/checkStorage.php
resources/Resources.php
resources/src/mediawiki.legacy/wikibits.js
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ChangesListViewModel.js
resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js
resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
resources/src/mediawiki.special/mediawiki.special.changeslist.css
resources/src/mediawiki.special/mediawiki.special.preferences.personalEmail.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.js
resources/src/startup.js
tests/parser/parserTests.txt
tests/phpunit/includes/PagePropsTest.php
tests/phpunit/includes/SampleTest.php
tests/phpunit/includes/XmlJsTest.php
tests/phpunit/includes/config/EtcdConfigTest.php
tests/phpunit/includes/htmlform/HTMLAutoCompleteSelectFieldTest.php
tests/phpunit/includes/htmlform/HTMLCheckMatrixTest.php
tests/phpunit/includes/libs/mime/MimeAnalyzerTest.php
tests/phpunit/includes/media/SVGTest.php
tests/phpunit/includes/parser/TagHooksTest.php
tests/phpunit/includes/shell/CommandTest.php
tests/phpunit/includes/shell/ShellTest.php
tests/phpunit/structure/AutoLoaderTest.php
tests/qunit/suites/resources/mediawiki.rcfilters/UriProcessor.test.js

index 3869067..5580bed 100644 (file)
@@ -892,9 +892,6 @@ $wgAutoloadLocalClasses = [
        'MediaWiki\\Languages\\Data\\CrhExceptions' => __DIR__ . '/languages/data/CrhExceptions.php',
        'MediaWiki\\Languages\\Data\\Names' => __DIR__ . '/languages/data/Names.php',
        'MediaWiki\\Languages\\Data\\ZhConversion' => __DIR__ . '/languages/data/ZhConversion.php',
-       'MediaWiki\\Linker\\LinkRenderer' => __DIR__ . '/includes/linker/LinkRenderer.php',
-       'MediaWiki\\Linker\\LinkRendererFactory' => __DIR__ . '/includes/linker/LinkRendererFactory.php',
-       'MediaWiki\\Linker\\LinkTarget' => __DIR__ . '/includes/linker/LinkTarget.php',
        'MediaWiki\\Logger\\ConsoleLogger' => __DIR__ . '/includes/debug/logger/ConsoleLogger.php',
        'MediaWiki\\Logger\\ConsoleSpi' => __DIR__ . '/includes/debug/logger/ConsoleSpi.php',
        'MediaWiki\\Logger\\LegacyLogger' => __DIR__ . '/includes/debug/logger/LegacyLogger.php',
index 7cfebca..ddf82e8 100644 (file)
                        "type": "object",
                        "description": "SpecialPages implemented in this extension (mapping of page name to class name)"
                },
+               "AutoloadNamespaces": {
+                       "type": "object",
+                       "description": "Mapping of PSR-4 compliant namespace to directory for autoloading"
+               },
                "AutoloadClasses": {
                        "type": "object"
                },
index 75a4f2c..0bdf97d 100644 (file)
                        "type": "object",
                        "description": "SpecialPages implemented in this extension (mapping of page name to class name)"
                },
+               "AutoloadNamespaces": {
+                       "type": "object",
+                       "description": "Mapping of PSR-4 compliant namespace to directory for autoloading"
+               },
                "AutoloadClasses": {
                        "type": "object"
                },
index 8dc7d40..675e347 100644 (file)
@@ -30,6 +30,12 @@ require_once __DIR__ . '/../autoload.php';
 class AutoLoader {
        static protected $autoloadLocalClassesLower = null;
 
+       /**
+        * @private Only public for ExtensionRegistry
+        * @var string[] Namespace (ends with \) => Path (ends with /)
+        */
+       static public $psr4Namespaces = [];
+
        /**
         * autoload - take a class name and attempt to load it
         *
@@ -67,6 +73,28 @@ class AutoLoader {
                        }
                }
 
+               if ( !$filename && strpos( $className, '\\' ) !== false ) {
+                       // This class is namespaced, so try looking at the namespace map
+                       $prefix = $className;
+                       while ( false !== $pos = strrpos( $prefix, '\\' ) ) {
+                               // Check to see if this namespace prefix is in the map
+                               $prefix = substr( $className, 0, $pos + 1 );
+                               if ( isset( self::$psr4Namespaces[$prefix] ) ) {
+                                       $relativeClass = substr( $className, $pos + 1 );
+                                       // Build the expected filename, and see if it exists
+                                       $file = self::$psr4Namespaces[$prefix] .
+                                               str_replace( '\\', '/', $relativeClass ) . '.php';
+                                       if ( file_exists( $file ) ) {
+                                               $filename = $file;
+                                               break;
+                                       }
+                               }
+
+                               // Remove trailing separator for next iteration
+                               $prefix = rtrim( $prefix, '\\' );
+                       }
+               }
+
                if ( !$filename ) {
                        // Class not found; let the next autoloader try to find it
                        return;
@@ -88,6 +116,22 @@ class AutoLoader {
        static function resetAutoloadLocalClassesLower() {
                self::$autoloadLocalClassesLower = null;
        }
+
+       /**
+        * Get a mapping of namespace => file path
+        * The namespaces should follow the PSR-4 standard for autoloading
+        *
+        * @see <http://www.php-fig.org/psr/psr-4/>
+        * @private Only public for usage in AutoloadGenerator
+        * @since 1.31
+        * @return string[]
+        */
+       public static function getAutoloadNamespaces() {
+               return [
+                       'MediaWiki\\Linker\\' => __DIR__ .'/linker/'
+               ];
+       }
 }
 
+Autoloader::$psr4Namespaces = AutoLoader::getAutoloadNamespaces();
 spl_autoload_register( [ 'AutoLoader', 'autoload' ] );
index 2a70f5f..3561f7f 100644 (file)
@@ -56,6 +56,9 @@ class CategoryFinder {
        /** @var array Array of article/category IDs */
        protected $next = [];
 
+       /** @var int Max layer depth **/
+       protected $maxdepth = -1;
+
        /** @var array Array of DBKEY category names */
        protected $targets = [];
 
@@ -73,12 +76,17 @@ class CategoryFinder {
         * @param array $articleIds Array of article IDs
         * @param array $categories FIXME
         * @param string $mode FIXME, default 'AND'.
+        * @param int $maxdepth Maximum layer depth. Where:
+        *      -1 means deep recursion (default);
+        *       0 means no-parents;
+        *       1 means one parent layer, etc.
         * @todo FIXME: $categories/$mode
         */
-       public function seed( $articleIds, $categories, $mode = 'AND' ) {
+       public function seed( $articleIds, $categories, $mode = 'AND', $maxdepth = -1 ) {
                $this->articles = $articleIds;
                $this->next = $articleIds;
                $this->mode = $mode;
+               $this->maxdepth = $maxdepth;
 
                # Set the list of target categories; convert them to DBKEY form first
                $this->targets = [];
@@ -98,8 +106,17 @@ class CategoryFinder {
         */
        public function run() {
                $this->dbr = wfGetDB( DB_REPLICA );
-               while ( count( $this->next ) > 0 ) {
+
+               $i = 0;
+               $dig = true;
+               while ( count( $this->next ) && $dig ) {
                        $this->scanNextLayer();
+
+                       // Is there any depth limit?
+                       if ( $this->maxdepth !== -1 ) {
+                               $dig = $i < $this->maxdepth;
+                               $i++;
+                       }
                }
 
                # Now check if this applies to the individual articles
index 6fe74fa..e50b7a7 100644 (file)
@@ -4851,6 +4851,7 @@ $wgDefaultUserOptions = [
        'editfont' => 'monospace',
        'editondblclick' => 0,
        'editsectiononrightclick' => 0,
+       'email-allow-new-users' => 1,
        'enotifminoredits' => 0,
        'enotifrevealaddr' => 0,
        'enotifusertalkpages' => 1,
@@ -5147,6 +5148,7 @@ $wgGroupPermissions['user']['sendemail'] = true;
 $wgGroupPermissions['user']['applychangetags'] = true;
 $wgGroupPermissions['user']['changetags'] = true;
 $wgGroupPermissions['user']['editcontentmodel'] = true;
+$wgGroupPermissions['user']['sendemail-new-users'] = true;
 
 // Implicit group for accounts that pass $wgAutoConfirmAge
 $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true;
index a0332cf..48be3bf 100644 (file)
@@ -1192,12 +1192,12 @@ class Linker {
                                                $section = str_replace( '[[', '', $section );
                                                $section = str_replace( ']]', '', $section );
 
-                                               $section = Sanitizer::normalizeSectionNameWhitespace( $section ); # T24784
+                                               $section = substr( Parser::guessSectionNameFromStrippedText( $section ), 1 );
                                                if ( $local ) {
-                                                       $sectionTitle = Title::newFromText( '#' . $section );
+                                                       $sectionTitle = Title::makeTitleSafe( NS_MAIN, '', $section );
                                                } else {
                                                        $sectionTitle = Title::makeTitleSafe( $title->getNamespace(),
-                                                               $title->getDBkey(), Sanitizer::decodeCharReferences( $section ) );
+                                                               $title->getDBkey(), $section );
                                                }
                                                if ( $sectionTitle ) {
                                                        $link = Linker::makeCommentLink( $sectionTitle, $wgLang->getArrow(), $wikiId, 'noclasses' );
index 878462d..33a975d 100644 (file)
@@ -534,12 +534,22 @@ class Preferences {
 
                        if ( $config->get( 'EnableUserEmail' ) && $user->isAllowed( 'sendemail' ) ) {
                                $defaultPreferences['disablemail'] = [
+                                       'id' => 'wpAllowEmail',
                                        'type' => 'toggle',
                                        'invert' => true,
                                        'section' => 'personal/email',
                                        'label-message' => 'allowemail',
                                        'disabled' => $disableEmailPrefs,
                                ];
+
+                               $defaultPreferences['email-allow-new-users'] = [
+                                       'id' => 'wpAllowEmailFromNewUsers',
+                                       'type' => 'toggle',
+                                       'section' => 'personal/email',
+                                       'label-message' => 'email-allow-new-users-label',
+                                       'disabled' => $disableEmailPrefs,
+                               ];
+
                                $defaultPreferences['ccmeonemails'] = [
                                        'type' => 'toggle',
                                        'section' => 'personal/email',
@@ -547,10 +557,7 @@ class Preferences {
                                        'disabled' => $disableEmailPrefs,
                                ];
 
-                               if ( $config->get( 'EnableUserEmailBlacklist' )
-                                        && !$disableEmailPrefs
-                                        && !(bool)$user->getOption( 'disablemail' )
-                               ) {
+                               if ( $config->get( 'EnableUserEmailBlacklist' ) ) {
                                        $lookup = CentralIdLookup::factory();
                                        $ids = $user->getOption( 'email-blacklist', [] );
                                        $names = $ids ? $lookup->namesFromCentralIds( $ids, $user ) : [];
@@ -560,6 +567,7 @@ class Preferences {
                                                'label-message' => 'email-blacklist-label',
                                                'section' => 'personal/email',
                                                'default' => implode( "\n", $names ),
+                                               'disabled' => $disableEmailPrefs,
                                        ];
                                }
                        }
index f0c4180..2c681f5 100644 (file)
@@ -272,6 +272,16 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                if ( isset( $prop['isfilematch'] ) ) {
                        $vals['isfilematch'] = $result->isFileMatch();
                }
+
+               if ( isset( $prop['extensiondata'] ) ) {
+                       $extra = $result->getExtensionData();
+                       // Add augmented data to the result. The data would be organized as a map:
+                       // augmentorName => data
+                       if ( $extra ) {
+                               $vals['extensiondata'] = ApiResult::addMetadataToResultVars( $extra );
+                       }
+               }
+
                return $vals;
        }
 
@@ -372,6 +382,7 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                        'categorysnippet',
                                        'score', // deprecated
                                        'hasrelated', // deprecated
+                                       'extensiondata',
                                ],
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_HELP_MSG_PER_VALUE => [],
index 91c3e18..e1360c8 100644 (file)
        "apihelp-query+search-paramvalue-prop-sectiontitle": "Adds the title of the matching section.",
        "apihelp-query+search-paramvalue-prop-categorysnippet": "Adds a parsed snippet of the matching category.",
        "apihelp-query+search-paramvalue-prop-isfilematch": "Adds a boolean indicating if the search matched file content.",
+       "apihelp-query+search-paramvalue-prop-extensiondata": "Adds extra data generated by extensions.",
        "apihelp-query+search-paramvalue-prop-score": "Ignored.",
        "apihelp-query+search-paramvalue-prop-hasrelated": "Ignored.",
        "apihelp-query+search-param-limit": "How many total pages to return.",
index 5a14cda..b6ac668 100644 (file)
                        "Mainframe98"
                ]
        },
-       "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Documentatie]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-maillijst]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-aankondigingen]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & verzoeken]\n</div>\n<strong>Status:</strong> Alle functies die op deze pagina worden weergegeven horen te werken. Aan de API wordt actief gewerkt, en deze kan gewijzigd worden. Abonneer u op  de [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-maillijst mediawiki-api-announce] voor meldingen over aanpassingen.\n\n<strong>Foutieve verzoeken:</strong> als de API foutieve verzoeken ontvangt, wordt er geantwoord met een HTTP-header met de sleutel \"MediaWiki-API-Error\" en daarna worden de waarde van de header en de foutcode op dezelfde waarde ingesteld. Zie [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Foutmeldingen en waarschuwingen]] voor meer informatie.\n\n<strong>Testen:</strong> u kunt [[Special:ApiSandbox|eenvoudig API-verzoeken testen]].",
+       "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Documentatie]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-maillijst]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-aankondigingen]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & verzoeken]\n</div>\n<strong>Status:</strong> Alle op deze pagina weergegeven functies horen te werken, maar aan de API wordt actief gewerkt en deze kan dus op elk moment wijzigen. Abonneer u op de [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-maillijst mediawiki-api-announce] voor meldingen over aanpassingen.\n\n<strong>Foutieve verzoeken:</strong> als de API foutieve verzoeken ontvangt, wordt er geantwoord met een HTTP-header met de sleutel \"MediaWiki-API-Error\" en daarna worden de waarde van de header en de foutcode op dezelfde waarde ingesteld. Zie [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Foutmeldingen en waarschuwingen]] voor meer informatie.\n\n<strong>Testen:</strong> u kunt [[Special:ApiSandbox|eenvoudig API-verzoeken testen]].",
        "apihelp-main-param-action": "Welke handeling uit te voeren.",
        "apihelp-main-param-format": "De opmaak van de uitvoer.",
-       "apihelp-main-param-maxlag": "De maximale vertraging kan gebruikt worden als MediaWiki is geïnstalleerd op een databasecluster die gebruik maakt van replicatie. Om te voorkomen dat handelingen nog meer databasereplicatievertraging veroorzaken, kan deze parameter er voor zorgen dat de client wacht totdat de replicatievertraging lager is dan de aangegeven waarde. In het geval van buitensporige vertraging, wordt de foutcode <samp>maxlag</samp> teruggegeven met een bericht als <samp>Waiting for $host: $lag seconds lagged</samp>.<br />Zie [[mw:Special:MyLanguage/Manual:Maxlag_parameter|Handleiding:Maxlag parameter]] voor meer informatie.",
+       "apihelp-main-param-maxlag": "De maximale vertraging kan gebruikt worden als MediaWiki is geïnstalleerd op een databasecluster die gebruik maakt van replicatie. Om te voorkomen dat handelingen nog meer databasereplicatievertraging veroorzaken, kan deze parameter ervoor zorgen dat de client wacht totdat de replicatievertraging lager is dan de aangegeven waarde. In geval van buitensporige vertraging wordt de foutcode <samp>maxlag</samp> teruggegeven met een bericht als <samp>Waiting for $host: $lag seconds lagged</samp>.<br />Zie [[mw:Special:MyLanguage/Manual:Maxlag_parameter|Handleiding:Maxlag parameter]] voor meer informatie.",
        "apihelp-main-param-smaxage": "Stelt de <code>s-maxage</code> HTTP cache controle header in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
        "apihelp-main-param-maxage": "Stelt de <code>max-age</code> HTTP cache controle header in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
-       "apihelp-main-param-assert": "Controleer of de gebruiker is aangemeld als <kbd>user</kbd> is meegegeven, en of de gebruiker het robotgebruikersrecht heeft als <kbd>bot</kbd> is meegegeven.",
-       "apihelp-main-param-assertuser": "Bevestig dat de huidige gebruiker de genoemde gebruiker is.",
+       "apihelp-main-param-assert": "Controleer of de gebruiker is aangemeld indien <kbd>assert=user</kbd>, of het botgebruikersrecht heeft indien <kbd>assert=bot</kbd>.",
+       "apihelp-main-param-assertuser": "Controleer of de huidige gebruiker de genoemde gebruiker is.",
        "apihelp-main-param-requestid": "Elke waarde die hier gegeven wordt, wordt aan het antwoord toegevoegd. Dit kan gebruikt worden om verzoeken te onderscheiden.",
-       "apihelp-main-param-servedby": "Voeg de hostnaam van de server die de aanvraag heeft afgehandeld toe aan het antwoord.",
-       "apihelp-main-param-curtimestamp": "Huidige tijd aan het antwoord toevoegen.",
-       "apihelp-main-param-responselanginfo": "Toon de talen gebruikt voor <var>uselang</var> en <var>errorlang</var> in het resultaat.",
-       "apihelp-main-param-errorlang": "De taal om te gebruiken voor waarschuwingen en fouten. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> met <kbd>siprop=languages</kbd> toont een lijst van taalcodes, of stel <kbd>inhoud</kbd> in om gebruik te maken van de inhoudstaal van deze wiki, of stel <kbd>uselang</kbd> in om gebruik te maken van dezelfde waarde als de <var>uselang</var> parameter.",
-       "apihelp-main-param-errorsuselocal": "Indien ingesteld maken foutmeldingen gebruik van lokaal-aangepaste berichten in de {{ns:MediaWiki}} naamruimte.",
+       "apihelp-main-param-servedby": "De hostnaam van de server die de aanvraag heeft afgehandeld aan de resultaten toevoegen.",
+       "apihelp-main-param-curtimestamp": "Huidige tijd aan de resultaten toevoegen.",
+       "apihelp-main-param-responselanginfo": "De voor <var>uselang</var> en <var>errorlang</var> gebruikte talen aan de resultaten toevoegen.",
+       "apihelp-main-param-errorlang": "De voor waarschuwingen en fouten te gebruiken taal. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> met <kbd>siprop=languages</kbd> geeft een lijst van taalcodes, of stel <kbd>content</kbd> in om de taal van de inhoud van deze wiki te gebruiken, of stel <kbd>uselang</kbd> in om dezelfde waarde als de parameter <var>uselang</var> te gebruiken.",
+       "apihelp-main-param-errorsuselocal": "Indien ingesteld maken foutmeldingen gebruik van lokaal-aangepaste berichten in de {{ns:MediaWiki}}-naamruimte.",
        "apihelp-block-summary": "Gebruiker blokkeren.",
-       "apihelp-block-param-user": "Gebruikersnaam, IP-adres of IP-range om te blokkeren. Kan niet samen worden gebruikt me <var>$1userid</var>",
-       "apihelp-block-param-userid": "Gebruikers-ID om te blokkeren. Kan niet worden gebruikt in combinatie met <var>$1user</var>.",
-       "apihelp-block-param-expiry": "Vervaldatum. Kan relatief zijn (bijv. <kbd>5 months</kbd> of <kbd>2 weeks</kbd>) of absoluut (<kbd>2014-09-18T12:34:56Z</kbd>). Indien ingesteld op <kbd>infinite</kbd>, <kbd>indefinite</kbd>, of <kbd>never</kbd> verloopt de blokkade nooit.",
+       "apihelp-block-param-user": "Te blokkeren gebruikersnaam, IP-adres of IP-range. Kan niet in combinatie met <var>$1userid</var> gebruikt worden.",
+       "apihelp-block-param-userid": "Te blokkeren gebruikers-ID. Kan niet in combinatie met <var>$1user</var> gebruikt worden.",
+       "apihelp-block-param-expiry": "Vervaldatum. Kan relatief zijn (bijv. <kbd>5 months</kbd> of <kbd>2 weeks</kbd>) of absoluut (bijv. <kbd>2014-09-18T12:34:56Z</kbd>). Indien ingesteld op <kbd>infinite</kbd>, <kbd>indefinite</kbd> of <kbd>never</kbd> zal de blokkade nooit verlopen.",
        "apihelp-block-param-reason": "Reden voor blokkade.",
-       "apihelp-block-param-anononly": "Alleen anonieme gebruikers blokkeren (uitschakelen van anonieme bewerkingen via dit IP-adres)",
-       "apihelp-block-param-nocreate": "Voorkom registeren van accounts.",
-       "apihelp-block-param-autoblock": "Blokkeer automatisch het laatst gebruikte IP-adres en ieder volgend IP-adres van waaruit ze proberen aan te melden.",
-       "apihelp-block-param-noemail": "Gebruiker weerhouden van het sturen van e-mail. (Vereist het <code>blockemail</code> recht).",
-       "apihelp-block-param-hidename": "Verberg de gebruikersnaam uit het blokkeerlogboek. (Vereist het <code>hideuser</code> recht).",
-       "apihelp-block-param-allowusertalk": "De gebruiker toestaan om hun eigen overlegpagina te bewerken (afhankelijk van <var>[[mw:Special:MyLanguage/Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
-       "apihelp-block-param-reblock": "De huidige blokkade aanpassen als de gebruiker al geblokkeerd is.",
-       "apihelp-block-param-watchuser": "De gebruikerspagina en overlegpagina van de gebruiker of het IP-adres volgen.",
-       "apihelp-block-param-tags": "Wijzigingslabels om toe te passen op de regel in het blokkeerlogboek.",
-       "apihelp-block-example-ip-simple": "Het IP-adres <kbd>192.0.2.5</kbd> voor drie dagen blokkeren met <kbd>First strike</kbd> als opgegeven reden.",
-       "apihelp-block-example-user-complex": "Blokkeer gebruiker<kbd>Vandal</kbd> voor altijd met reden <kbd>Vandalism</kbd> en voorkom het aanmaken van nieuwe accounts en het versturen van email",
-       "apihelp-changeauthenticationdata-example-password": "Poging tot het wachtwoord van de huidige gebruiker te veranderen naar <kbd>ExamplePassword</kbd>.",
-       "apihelp-checktoken-summary": "Controleer de geldigheid van een token van <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
-       "apihelp-checktoken-param-type": "Tokentype wordt getest.",
-       "apihelp-checktoken-param-token": "Token om te controleren.",
-       "apihelp-checktoken-param-maxtokenage": "Maximum levensduur van de token, in seconden.",
-       "apihelp-checktoken-example-simple": "Test de geldigheid van een <kbd>csrf</kbd> token.",
-       "apihelp-clearhasmsg-summary": "Wist de <code>hasmsg</code> vlag voor de huidige gebruiker.",
-       "apihelp-clearhasmsg-example-1": "Wis de <code>hasmsg</code> vlag voor de huidige gebruiker.",
-       "apihelp-clientlogin-summary": "Log in op de wiki met behulp van de interactieve flow.",
-       "apihelp-clientlogin-example-login": "Start het inlogproces op de wiki als gebruiker <kbd>Example</kbd> met wachtwoord <kbd>ExamplePassword</kbd>.",
-       "apihelp-compare-summary": "Toon het verschil tussen 2 pagina's.",
-       "apihelp-compare-extended-description": "Een versienummer, een paginatitel of een pagina-ID is vereist voor zowel de \"from\" en \"to\" parameter.",
-       "apihelp-compare-param-fromtitle": "Eerste paginanaam om te vergelijken.",
-       "apihelp-compare-param-fromid": "Eerste pagina-ID om te vergelijken.",
-       "apihelp-compare-param-fromrev": "Eerste versie om te vergelijken.",
-       "apihelp-compare-param-totitle": "Tweede paginanaam om te vergelijken.",
-       "apihelp-compare-param-toid": "Tweede pagina-ID om te vergelijken.",
-       "apihelp-compare-param-torev": "Tweede versie om te vergelijken.",
-       "apihelp-createaccount-summary": "Nieuw gebruikersaccount aanmaken.",
-       "apihelp-createaccount-example-create": "Start het proces voor het aanmaken van de gebruiker <kbd>Example</kbd> met het wachtwoord <kbd>ExamplePassword</kbd>.",
+       "apihelp-block-param-anononly": "Alleen anonieme gebruikers blokkeren (d.w.z. anonieme bewerkingen via dit IP-adres uitschakelen).",
+       "apihelp-block-param-nocreate": "Het aanmaken van accounts verhinderen.",
+       "apihelp-block-param-autoblock": "Automatisch het laatst gebruikte IP-adres blokkeren, en tevens ieder volgend IP-adres waarvanaf de gebruiker probeert aan te melden.",
+       "apihelp-block-param-noemail": "Het sturen van e-mail via wiki verhinderen. (Vereist het <code>blockemail</code>-recht.)",
+       "apihelp-block-param-hidename": "De gebruikersnaam in het blokkeerlogboek verbergen. (Vereist het <code>hideuser</code>-recht.)",
+       "apihelp-block-param-allowusertalk": "De gebruiker toestaan om de eigen overlegpagina te bewerken (afhankelijk van <var>[[mw:Special:MyLanguage/Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
+       "apihelp-block-param-reblock": "De huidige blokkade overschrijven indien de gebruiker al geblokkeerd is.",
+       "apihelp-block-param-watchuser": "De gebruikers- en overlegpagina's van de gebruiker of het IP-adres volgen.",
+       "apihelp-block-param-tags": "De labels voor de regel in het blokkeerlogboek wijzigen.",
+       "apihelp-block-example-ip-simple": "IP-adres <kbd>192.0.2.5</kbd> voor drie dagen blokkeren met als reden <kbd>First strike</kbd>.",
+       "apihelp-block-example-user-complex": "Gebruiker <kbd>Vandal</kbd> voor onbepaalde tijd blokkeren met als reden <kbd>Vandalism</kbd>, en verhinder het aanmaken van nieuwe accounts en het versturen van e-mail.",
+       "apihelp-changeauthenticationdata-example-password": "Poging om het wachtwoord van de huidige gebruiker te veranderen in <kbd>ExamplePassword</kbd>.",
+       "apihelp-checktoken-summary": "De geldigheid van een token van <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> controleren.",
+       "apihelp-checktoken-param-type": "Het type token dat getest wordt.",
+       "apihelp-checktoken-param-token": "Te testen token.",
+       "apihelp-checktoken-param-maxtokenage": "Maximale levensduur van de token, in seconden.",
+       "apihelp-checktoken-example-simple": "Test de geldigheid van een <kbd>csrf</kbd>-token.",
+       "apihelp-clearhasmsg-summary": "Wist de <code>hasmsg</code>-vlag voor de huidige gebruiker.",
+       "apihelp-clearhasmsg-example-1": "De <code>hasmsg</code>-vlag voor de huidige gebruiker wissen.",
+       "apihelp-clientlogin-summary": "Bij de wiki aanmelden met behulp van de interactieve flow.",
+       "apihelp-clientlogin-example-login": "Start het aanmeldproces als gebruiker <kbd>Example</kbd> met wachtwoord <kbd>ExamplePassword</kbd>.",
+       "apihelp-compare-summary": "Het verschil tussen twee pagina's ophalen.",
+       "apihelp-compare-extended-description": "Voor zowel \"from\" als \"to\" moet een revisienummer, paginatitel, pagina-ID, tekst of relatieve referentie ingegeven worden.",
+       "apihelp-compare-param-fromtitle": "Eerste te vergelijken paginanaam.",
+       "apihelp-compare-param-fromid": "Eerste te vergelijken pagina-ID.",
+       "apihelp-compare-param-fromrev": "Eerste te vergelijken revisie.",
+       "apihelp-compare-param-totitle": "Tweede te vergelijken paginanaam.",
+       "apihelp-compare-param-toid": "Tweede te vergelijken pagina-ID.",
+       "apihelp-compare-param-torev": "Tweede te vergelijken revisie.",
+       "apihelp-createaccount-summary": "Een nieuw gebruikersaccount aanmaken.",
+       "apihelp-createaccount-example-create": "Start het proces voor het aanmaken van gebruiker <kbd>Example</kbd> met wachtwoord <kbd>ExamplePassword</kbd>.",
        "apihelp-createaccount-param-name": "Gebruikersnaam.",
        "apihelp-createaccount-param-password": "Wachtwoord (genegeerd als <var>$1mailpassword</var> is ingesteld).",
        "apihelp-createaccount-param-domain": "Domein voor externe authentificatie (optioneel).",
        "apihelp-createaccount-param-email": "E-mailadres van de gebruiker (optioneel).",
        "apihelp-createaccount-param-realname": "Echte naam van de gebruiker (optioneel).",
-       "apihelp-createaccount-param-reason": "Optionele reden voor het aanmaken van het account voor in het logboek.",
-       "apihelp-createaccount-param-language": "Taalcode om als standaard in te stellen voor de gebruiker (optioneel, standaard de inhoudstaal).",
-       "apihelp-createaccount-example-pass": "Maak gebruiker <kbd>testuser</kbd> aan met wachtwoord <kbd>test123</kbd>.",
-       "apihelp-createaccount-example-mail": "Maak gebruiker <kbd>testmailuser</kbd> aan en e-mail een willekeurig gegenereerd wachtwoord.",
+       "apihelp-createaccount-param-reason": "Optionele reden voor het aanmaken van het account, om in de logboeken te zetten.",
+       "apihelp-createaccount-param-language": "Taalcode om als standaard voor de gebruiker in te stellen (optioneel, standaard ingesteld op de inhoudstaal).",
+       "apihelp-createaccount-example-pass": "Gebruiker <kbd>testuser</kbd> met wachtwoord <kbd>test123</kbd> aanmaken.",
+       "apihelp-createaccount-example-mail": "Gebruiker <kbd>testmailuser</kbd> aanmaken en een willekeurig gegenereerd wachtwoord e-mailen.",
        "apihelp-delete-summary": "Een pagina verwijderen.",
-       "apihelp-delete-param-title": "Titel van de pagina om te verwijderen. Kan niet samen worden gebruikt met <var>$1pageid</var>.",
-       "apihelp-delete-param-pageid": "ID van de pagina om te verwijderen. Kan niet samen worden gebruikt met <var>$1title</var>.",
-       "apihelp-delete-param-reason": "Reden voor verwijdering. Wanneer dit niet is opgegeven wordt een automatisch gegenereerde reden gebruikt.",
-       "apihelp-delete-param-tags": "Wijzigingslabels om toe te passen op de regel in het verwijderlogboek.",
+       "apihelp-delete-param-title": "Titel van de te verwijderen pagina. Kan niet in combinatie met <var>$1pageid</var> gebruikt worden.",
+       "apihelp-delete-param-pageid": "Pagina-ID van de te verwijderen pagina. Kan niet in combinatie met <var>$1title</var> gebruikt worden.",
+       "apihelp-delete-param-reason": "Reden voor de verwijdering. Indien niet opgegeven, zal er een automatisch gegenereerde reden gebruikt worden.",
+       "apihelp-delete-param-tags": "De labels voor de regel in het verwijderlogboek wijzigen.",
        "apihelp-delete-param-watch": "De pagina aan de volglijst van de huidige gebruiker toevoegen.",
        "apihelp-delete-param-unwatch": "De pagina van de volglijst van de huidige gebruiker verwijderen.",
        "apihelp-delete-example-simple": "Verwijder <kbd>Main Page</kbd>.",
        "apihelp-delete-example-reason": "Verwijder <kbd>Main Page</kbd> met als reden <kbd>Preparing for move</kbd>.",
        "apihelp-disabled-summary": "Deze module is uitgeschakeld.",
-       "apihelp-edit-summary": "Aanmaken en bewerken van pagina's.",
-       "apihelp-edit-param-title": "Naam van de pagina om te bewerken. Kan niet gebruikt worden samen met <var>$1pageid</var>.",
-       "apihelp-edit-param-pageid": "ID van de pagina om te bewerken. Kan niet samen worden gebruikt met <var>$1title</var>.",
-       "apihelp-edit-param-sectiontitle": "De naam van de nieuwe sectie.",
+       "apihelp-edit-summary": "Pagina's aanmaken en bewerken.",
+       "apihelp-edit-param-title": "Naam van de te bewerken pagina. Kan niet in combinatie met <var>$1pageid</var> gebruikt worden.",
+       "apihelp-edit-param-pageid": "Pagina-ID van de te bewerken pagina. Kan niet in combinatie met <var>$1title</var> gebruikt worden.",
+       "apihelp-edit-param-sectiontitle": "De naam van een nieuwe sectie.",
        "apihelp-edit-param-text": "Pagina-inhoud.",
-       "apihelp-edit-param-tags": "Wijzigingslabels om aan de versie toe te voegen.",
+       "apihelp-edit-param-tags": "De labels voor de revisie wijzigen.",
        "apihelp-edit-param-minor": "Kleine bewerking.",
-       "apihelp-edit-param-notminor": "Geen kleine bewerking.",
-       "apihelp-edit-param-bot": "Deze bewerking markeren als gedaan door een robot.",
+       "apihelp-edit-param-notminor": "Niet-kleine bewerking.",
+       "apihelp-edit-param-bot": "Deze bewerking markeren als een botbewerking.",
        "apihelp-edit-param-createonly": "De pagina niet bewerken als die al bestaat.",
        "apihelp-edit-param-nocreate": "Een foutmelding geven als de pagina niet bestaat.",
        "apihelp-edit-param-watch": "Voeg de pagina toe aan de volglijst van de huidige gebruiker.",
        "apihelp-edit-param-unwatch": "Verwijder de pagina van de volglijst van de huidige gebruiker.",
-       "apihelp-edit-param-md5": "De MD5-hash van de $1text parameter, of de $1prependtext en $1appendtext parameters samengevoegd. Indien ingesteld, wordt de bewerking niet gemaakt, tenzij de hash juist is.",
+       "apihelp-edit-param-md5": "De MD5-hash van de $1text parameter, of de $1prependtext en $1appendtext parameters samengevoegd. Indien ingesteld, wordt de bewerking niet gemaakt tenzij de hash juist is.",
        "apihelp-edit-param-prependtext": "Voeg deze tekst toe aan het begin van de pagina. Overschrijft $1text.",
-       "apihelp-edit-param-appendtext": "Voeg deze tekst toe aan het begin van de pagina. Overschrijft $1text.\n\nGebruik $1section=new in plaats van deze parameter om een nieuw kopje toe te voegen.",
-       "apihelp-edit-param-undo": "Maak deze versie ongedaan. Overschrijft $1text, $1prependtext en $1appendtext.",
-       "apihelp-edit-param-undoafter": "Maak alle versies vanaf $1undo to deze ongedaan maken. Indien niet ingesteld wordt slechts één versie ongedaan gemaakt.",
+       "apihelp-edit-param-appendtext": "Voeg deze tekst toe aan het eind van de pagina. Overschrijft $1text.\n\nGebruik $1section=new om een nieuwe sectie toe te voegen, in plaats van deze parameter.",
+       "apihelp-edit-param-undo": "Maak deze revisie ongedaan. Overschrijft $1text, $1prependtext en $1appendtext.",
+       "apihelp-edit-param-undoafter": "Maak alle revisies vanaf $1undo tot deze ongedaan. Indien niet ingesteld wordt slechts één revisie ongedaan gemaakt.",
        "apihelp-edit-param-redirect": "Doorverwijzingen automatisch oplossen.",
        "apihelp-edit-param-contentmodel": "Inhoudsmodel van de nieuwe inhoud.",
-       "apihelp-edit-param-token": "Het token moet altijd worden verzonden als de laatste parameter, of tenminste na de $1text parameter.",
+       "apihelp-edit-param-token": "De token moet altijd als de laatste parameter worden verzonden, of in ieder geval na de $1text parameter.",
        "apihelp-edit-example-edit": "Een pagina bewerken.",
-       "apihelp-edit-example-prepend": "Voeg <kbd>__NOTOC__</kbd> toe aan het begin van een pagina.",
-       "apihelp-edit-example-undo": "Versies 13579 tot 13585 ongedaan maken met automatische beschrijving.",
+       "apihelp-edit-example-prepend": "Voeg <kbd>_&#95;NOTOC_&#95;</kbd> toe aan het begin van een pagina.",
+       "apihelp-edit-example-undo": "Revisies 13579 tot 13585 ongedaan maken met automatische beschrijving.",
        "apihelp-emailuser-summary": "Gebruiker e-mailen.",
        "apihelp-emailuser-param-target": "Gebruiker naar wie de e-mail moet worden gestuurd.",
        "apihelp-emailuser-param-subject": "Onderwerpkoptekst.",
        "apihelp-emailuser-param-text": "E-mailtekst.",
-       "apihelp-emailuser-param-ccme": "Mij een kopie sturen van deze e-mail.",
-       "apihelp-emailuser-example-email": "Stuur een e-mail naar de gebruiker <kbd>WikiSysop</kbd> met de tekst <kbd>Inhoud</kbd>.",
+       "apihelp-emailuser-param-ccme": "Mij een kopie van deze e-mail sturen.",
+       "apihelp-emailuser-example-email": "Stuur een e-mail naar gebruiker <kbd>WikiSysop</kbd> met de tekst <kbd>Content</kbd>.",
        "apihelp-expandtemplates-param-title": "Paginanaam.",
-       "apihelp-expandtemplates-param-text": "Wikitekst om om te zetten.",
-       "apihelp-expandtemplates-paramvalue-prop-wikitext": "De uitgevulde wikitekst.",
+       "apihelp-expandtemplates-param-text": "Om te zetten wikitekst.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "De uitgewerkte wikitekst.",
        "apihelp-expandtemplates-paramvalue-prop-ttl": "De maximale tijdsduur waarna de cache van het resultaat moet worden weggegooid.",
-       "apihelp-feedcontributions-summary": "Haalt de feed van de gebruikersbijdragen op.",
+       "apihelp-feedcontributions-summary": "Retourneert een feed van gebruikersbijdragen.",
        "apihelp-feedcontributions-param-feedformat": "De indeling van de feed.",
-       "apihelp-feedcontributions-param-user": "De gebruiker om de bijdragen voor te verkrijgen.",
+       "apihelp-feedcontributions-param-user": "De gebruikers voor wie de bijdragen verkregen moeten worden.",
        "apihelp-feedcontributions-param-year": "Van jaar (en eerder).",
        "apihelp-feedcontributions-param-month": "Van maand (en eerder).",
        "apihelp-feedcontributions-param-deletedonly": "Alleen verwijderde bijdragen weergeven.",
-       "apihelp-feedcontributions-param-toponly": "Alleen bewerkingen die de nieuwste versies zijn weergeven.",
-       "apihelp-feedcontributions-param-newonly": "Alleen bewerkingen die nieuwe pagina's aanmaken weergeven.",
+       "apihelp-feedcontributions-param-toponly": "Alleen bewerkingen weergeven die de nieuwste revisies zijn.",
+       "apihelp-feedcontributions-param-newonly": "Alleen bewerkingen weergeven die nieuwe pagina's hebben gestart.",
        "apihelp-feedcontributions-param-hideminor": "Verberg kleine bewerkingen.",
-       "apihelp-feedcontributions-param-showsizediff": "Toon het verschil in grootte tussen versies.",
+       "apihelp-feedcontributions-param-showsizediff": "Toon het verschil in grootte tussen revisies.",
        "apihelp-feedcontributions-example-simple": "Toon bijdragen voor gebruiker <kbd>Example</kbd>.",
        "apihelp-feedrecentchanges-param-feedformat": "De indeling van de feed.",
        "apihelp-feedrecentchanges-param-namespace": "Naamruimte om de resultaten tot te beperken.",
        "apihelp-feedrecentchanges-param-invert": "Alle naamruimten behalve de geselecteerde.",
        "apihelp-feedrecentchanges-param-days": "Aantal dagen om de resultaten tot te beperken.",
-       "apihelp-feedrecentchanges-param-limit": "Het maximaal aantal weer te geven resultaten.",
+       "apihelp-feedrecentchanges-param-limit": "Het maximale aantal weer te geven resultaten.",
        "apihelp-feedrecentchanges-param-hideminor": "Kleine wijzigingen verbergen.",
        "apihelp-feedrecentchanges-param-hidebots": "Wijzigingen gedaan door bots verbergen.",
        "apihelp-feedrecentchanges-param-hideanons": "Wijzigingen gedaan door anonieme gebruikers verbergen.",
        "apihelp-feedrecentchanges-param-hidecategorization": "Wijzigingen in categorielidmaatschap verbergen.",
        "apihelp-feedrecentchanges-param-tagfilter": "Filteren op label.",
        "apihelp-feedrecentchanges-example-simple": "Recente wijzigingen weergeven.",
-       "apihelp-feedrecentchanges-example-30days": "Recente wijzigingen van de afgelopen 30 dagen weergeven.",
+       "apihelp-feedrecentchanges-example-30days": "Wijzigingen van de afgelopen 30 dagen weergeven.",
        "apihelp-feedwatchlist-param-feedformat": "De indeling van de feed.",
        "apihelp-filerevert-summary": "Een oude versie van een bestand terugplaatsen.",
-       "apihelp-filerevert-param-filename": "Doel bestandsnaam, zonder het Bestand: voorvoegsel.",
+       "apihelp-filerevert-param-filename": "Bestandsnaam, zonder het Bestand: voorvoegsel.",
        "apihelp-filerevert-param-comment": "Opmerking voor het uploaden.",
        "apihelp-filerevert-example-revert": "Zet <kbd>Wiki.png</kbd> terug naar de versie van <kbd>2011-03-05T15:27:40Z</kbd>.",
-       "apihelp-help-summary": "Toon help voor de opgegeven modules.",
-       "apihelp-help-param-helpformat": "Indeling van de help uitvoer.",
+       "apihelp-help-summary": "Toon hulp voor de opgegeven modules.",
+       "apihelp-help-param-helpformat": "Indeling van de hulpuitvoer.",
        "apihelp-help-example-main": "Hulp voor de hoofdmodule.",
        "apihelp-help-example-submodules": "Hulp voor <kbd>action=query</kbd> en alle submodules.",
-       "apihelp-help-example-recursive": "Alle hulp op een pagina.",
-       "apihelp-help-example-help": "Help voor de help-module zelf.",
+       "apihelp-help-example-recursive": "Alle hulp op één pagina.",
+       "apihelp-help-example-help": "Hulp voor de hulpmodule zelf.",
        "apihelp-imagerotate-summary": "Een of meerdere afbeeldingen draaien.",
        "apihelp-imagerotate-param-rotation": "Aantal graden om de afbeelding met de klok mee te draaien.",
-       "apihelp-imagerotate-param-tags": "Labels om toe te voegen aan de regel in het uploadlogboek.",
+       "apihelp-imagerotate-param-tags": "Labels voor de regel in het uploadlogboek.",
        "apihelp-imagerotate-example-simple": "Roteer <kbd>File:Example.png</kbd> met <kbd>90</kbd> graden.",
        "apihelp-imagerotate-example-generator": "Roteer alle afbeeldingen in <kbd>Category:Flip</kbd> met <kbd>180</kbd> graden.",
-       "apihelp-import-summary": "Importeer een pagina van een andere wiki, of van een XML bestand.",
-       "apihelp-import-extended-description": "Merk op dat de HTTP POST moet worden uitgevoerd als bestandsupload (bijv. door middel van multipart/form-data) wanneer een bestand wordt verstuurd voor de <var>xml</var> parameter.",
-       "apihelp-import-param-summary": "Importsamenvatting voor het logboek.",
+       "apihelp-import-summary": "Importeer een pagina van een andere wiki, of van een XML-bestand.",
+       "apihelp-import-extended-description": "Merk op dat de HTTP POST moet worden uitgevoerd als bestandsupload (d.w.z. door middel van multipart/form-data) wanneer een bestand wordt verstuurd voor de <var>xml</var> parameter.",
+       "apihelp-import-param-summary": "Importeersamenvatting voor het logboek.",
        "apihelp-import-param-xml": "Geüpload XML-bestand.",
-       "apihelp-import-param-interwikisource": "Voor interwiki imports: wiki om van te importeren.",
-       "apihelp-import-param-namespace": "Importeren in deze naamruimte. Can niet samen gebruikt worden met <var>$1rootpage</var>.",
-       "apihelp-import-param-rootpage": "Importeren als subpagina van deze pagina. Kan niet samen met <var>$1namespace</var> gebruikt worden.",
+       "apihelp-import-param-interwikisource": "Voor interwiki-imports: wiki om van te importeren.",
+       "apihelp-import-param-namespace": "Naar deze naamruimte importeren. Kan niet in combinatie met <var>$1rootpage</var> gebruikt worden.",
+       "apihelp-import-param-rootpage": "Als subpagina van deze pagina importeren. Kan niet in combinatie met <var>$1namespace</var> gebruikt worden.",
        "apihelp-import-example-import": "Importeer [[meta:Help:ParserFunctions]] in naamruimte 100 met de volledige geschiedenis.",
        "apihelp-login-param-name": "Gebruikersnaam.",
        "apihelp-login-param-password": "Wachtwoord.",
        "apihelp-login-param-domain": "Domein (optioneel).",
-       "apihelp-login-example-login": "Aanmelden",
+       "apihelp-login-example-login": "Aanmelden.",
        "apihelp-logout-summary": "Afmelden en sessiegegevens wissen.",
-       "apihelp-logout-example-logout": "Meldt de huidige gebruiker af.",
-       "apihelp-managetags-param-tag": "Label om aan te maken, te activeren of te deactiveren. Voor het aanmaken van een label, mag het niet bestaan. Voor het verwijderen van een label, moet het bestaan. Voor het activeren van een label, moet het bestaan en mag het niet gebruikt worden door een uitbreiding. Voor het deactiveren van een label, moet het gebruikt worden en handmatig gedefinieerd zijn.",
+       "apihelp-logout-example-logout": "Meld de huidige gebruiker af.",
+       "apihelp-managetags-param-tag": "Aan te maken, te verwijderen, te activeren of te deactiveren label. Voor het aanmaken mag het label nog niet bestaan. Voor het verwijderen moet het label bestaan. Voor het activeren moet het label bestaan en mag het niet door een uitbreiding gebruikt worden. Voor het deactiveren moet het label gebruikt worden en handmatig gedefinieerd zijn.",
        "apihelp-managetags-example-create": "Maak een label met de naam <kbd>spam</kbd> aan met als reden <kbd>For use in edit patrolling</kbd>",
-       "apihelp-managetags-example-delete": "Verwijder het <kbd>vandlaism</kbd> label met de reden <kbd>Misspelt</kbd>",
-       "apihelp-mergehistory-summary": "Geschiedenis van pagina's samenvoegen.",
-       "apihelp-mergehistory-param-reason": "Reden voor samenvoegen van de geschiedenis.",
-       "apihelp-mergehistory-example-merge": "Voeg de hele geschiedenis van <kbd>Oldpage</kbd> samen met <kbd>Newpage</kbd>.",
+       "apihelp-managetags-example-delete": "Verwijder het label <kbd>vandlaism</kbd> met als reden <kbd>Misspelt</kbd>",
+       "apihelp-mergehistory-summary": "Geschiedenissen van pagina's samenvoegen.",
+       "apihelp-mergehistory-param-reason": "Reden voor de samenvoeging van de geschiedenissen.",
+       "apihelp-mergehistory-example-merge": "Voeg de hele geschiedenis van <kbd>Oldpage</kbd> samen in <kbd>Newpage</kbd>.",
        "apihelp-move-summary": "Pagina hernoemen.",
        "apihelp-move-param-to": "Nieuwe paginanaam.",
        "apihelp-move-param-reason": "Reden voor de naamswijziging.",
        "apihelp-move-param-movetalk": "Hernoem de overlegpagina, indien deze bestaat.",
        "apihelp-move-param-noredirect": "Geen doorverwijzing achterlaten.",
-       "apihelp-move-param-watch": "Pagina en de omleiding toevoegen aan de volglijst van de huidige gebruiker.",
+       "apihelp-move-param-watch": "Voeg de pagina en de doorverwijzing toe aan de volglijst van de huidige gebruiker.",
        "apihelp-move-param-unwatch": "Verwijder de pagina en de doorverwijzing van de volglijst van de huidige gebruiker.",
        "apihelp-move-param-watchlist": "De pagina onvoorwaardelijk toevoegen aan of verwijderen van de volglijst van de huidige gebruiker, gebruik voorkeuren of wijzig het volgen niet.",
        "apihelp-move-param-ignorewarnings": "Eventuele waarschuwingen negeren.",
-       "apihelp-move-example-move": "Hernoem <kbd>Badtitle</kbd> naar <kbd>Goodtitle</kbd> zonder een doorverwijzing te laten staan.",
-       "apihelp-opensearch-summary": "Zoeken in de wiki met het OpenSearchprotocol.",
+       "apihelp-move-example-move": "Hernoem <kbd>Badtitle</kbd> naar <kbd>Goodtitle</kbd> zonder een doorverwijzing achter te laten.",
+       "apihelp-opensearch-summary": "In de wiki zoeken met behulp het OpenSearchprotocol.",
        "apihelp-opensearch-param-search": "Zoektekst.",
-       "apihelp-opensearch-param-limit": "Het maximaal aantal weer te geven resultaten.",
+       "apihelp-opensearch-param-limit": "Het maximale aantal weer te geven resultaten.",
        "apihelp-opensearch-param-namespace": "Te doorzoeken naamruimten.",
        "apihelp-opensearch-param-suggest": "Niets doen als <var>[[mw:Special:MyLanguage/Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> onwaar is.",
-       "apihelp-opensearch-param-redirects": "Hoe om te gaan met doorverwijzingen:\n;return:Geef de doorverwijzing terug.\n;resolve:Geef de doelpagina terug. Kan minder dan de limiet $1 resultaten teruggeven.\nOm historische redenen is de standaardinstelling \"return\" voor <code>$1format=json<code> en \"resolve\" voor andere formaten.",
+       "apihelp-opensearch-param-redirects": "Hoe om te gaan met doorverwijzingen:\n;return:Retourneer de doorverwijzing.\n;resolve:Retourneer de doelpagina. Retourneert mogelijk minder dan $1limit resultaten.\nOm historische redenen is \"return\" de standaardinstelling voor <code>$1format=json</code>, en \"resolve\" voor andere formaten.",
        "apihelp-opensearch-param-format": "Het uitvoerformaat.",
        "apihelp-opensearch-param-warningsaserror": "Als er waarschuwingen zijn met <kbd>format=json</kbd>, geef dan een API-fout terug in plaats van deze te negeren.",
-       "apihelp-opensearch-example-te": "Pagina's vinden die beginnen met <kbd>Te</kbd>.",
+       "apihelp-opensearch-example-te": "Vind pagina's die beginnen met <kbd>Te</kbd>.",
        "apihelp-options-summary": "Voorkeuren van de huidige gebruiker wijzigen.",
-       "apihelp-options-extended-description": "Alleen opties die zijn geregistreerd in core of in een van de geïnstalleerde uitbreidingen, of opties met de toetsen aangeduid met <code>userjs-</code> (bedoeld om te worden gebruikt door gebruikersscripts), kunnen worden ingesteld.",
-       "apihelp-options-param-reset": "Zet de voorkeuren terug naar de standaard van de website.",
-       "apihelp-options-param-resetkinds": "Lijst van de optiestypes die opnieuw ingesteld worden wanneer de optie <var>$1reset</var> is ingesteld.",
-       "apihelp-options-param-change": "Lijst van wijzigingen, opgemaakt als <kbd>naam=waarde</kbd> (bijvoorbeeld <kbd>skin=vector</kbd>). Als er geen waarde wordt opgegeven (zelfs niet een is-gelijk teken), bijvoorbeeld <kbd>optienaam|andereoptie|...</kbd>, dan wordt de optie ingesteld op de standaardwaarde. Als een opgegeven waarde een sluisteken bevat (<kbd>|</kbd>), gebruik dan het [[Special:ApiHelp/main#main/datatypes|alternatieve scheidingsteken tussen meerdere waardes]] voor een juiste werking.",
-       "apihelp-options-param-optionname": "De naam van de optie die moet worden ingesteld op de waarde gegeven door <var>$1optiewaarde</var>.",
+       "apihelp-options-extended-description": "Alleen opties die zijn geregistreerd in core of in een van de geïnstalleerde uitbreidingen, of opties met sleutels die beginnen met <code>userjs-</code> (bedoeld om door gebruikersscripts gebruikt te worden), kunnen worden ingesteld.",
+       "apihelp-options-param-reset": "Reset voorkeuren naar de standaard van de website.",
+       "apihelp-options-param-resetkinds": "Lijst van types van te resetten opties wanneer de optie <var>$1reset</var> is ingesteld.",
+       "apihelp-options-param-change": "Lijst van wijzigingen, opgemaakt als <kbd>naam=waarde</kbd> (bijv. <kbd>skin=vector</kbd>). Als er geen waarde wordt opgegeven (zelfs niet een isgelijkteken), bijvoorbeeld <kbd>optienaam|andereoptie|...</kbd>, dan wordt de optie ingesteld op de standaardwaarde. Als een opgegeven waarde een sluisteken bevat (<kbd>|</kbd>), gebruik dan het [[Special:ApiHelp/main#main/datatypes|alternatieve scheidingsteken tussen meerdere waardes]] voor een juiste werking.",
+       "apihelp-options-param-optionname": "De naam van de optie die moet worden ingesteld op de waarde gegeven door <var>$1optionvalue</var>.",
        "apihelp-options-param-optionvalue": "De waarde voor de optie opgegeven door <var>$1optionname</var>.",
-       "apihelp-options-example-reset": "Alle voorkeuren opnieuw instellen.",
-       "apihelp-options-example-change": "Voorkeuren wijzigen voor <kbd>skin</kbd> en <kbd>hideminor</kbd>.",
+       "apihelp-options-example-reset": "Reset alle voorkeuren.",
+       "apihelp-options-example-change": "Wijzig <kbd>skin</kbd> en <kbd>hideminor</kbd> voorkeuren.",
        "apihelp-paraminfo-summary": "Verkrijg informatie over API-modules.",
-       "apihelp-parse-paramvalue-prop-categorieshtml": "Vraagt een HTML-versie van de categorieën op.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Geeft de HTML-versie van de categorieën.",
        "apihelp-parse-example-page": "Een pagina verwerken.",
-       "apihelp-parse-example-text": "Wikitext verwerken.",
+       "apihelp-parse-example-text": "Wikitekst verwerken.",
+       "apihelp-parse-example-texttitle": "Wikitekst verwerken, waarbij de paginatitel opgeven is.",
        "apihelp-parse-example-summary": "Een samenvatting verwerken.",
-       "apihelp-patrol-summary": "Een pagina of versie markeren als gecontroleerd.",
-       "apihelp-patrol-example-rcid": "Een recente wijziging markeren als gecontroleerd.",
-       "apihelp-patrol-example-revid": "Een versie markeren als gecontroleerd.",
-       "apihelp-protect-param-reason": "Reden voor opheffen van de beveiliging.",
-       "apihelp-protect-example-protect": "Een pagina beveiligen",
+       "apihelp-patrol-summary": "Een pagina of revisie als gecontroleerd markeren.",
+       "apihelp-patrol-example-rcid": "Een recente wijziging als gecontroleerd markeren.",
+       "apihelp-patrol-example-revid": "Een revisie als gecontroleerd markeren.",
+       "apihelp-protect-param-reason": "Reden voor instellen of opheffen van de beveiliging.",
+       "apihelp-protect-example-protect": "Een pagina beveiligen.",
        "apihelp-purge-param-forcelinkupdate": "Werk de koppelingstabellen bij.",
-       "apihelp-purge-param-forcerecursivelinkupdate": "Werk de koppelingentabel bij, en werk de koppelingstabellen bij voor alle pagina's die gebruik maken van deze pagina als sjabloon.",
+       "apihelp-purge-param-forcerecursivelinkupdate": "Werk de koppelingentabel bij, en werk de koppelingstabellen bij voor alle pagina's die deze pagina als sjabloon gebruiken.",
        "apihelp-query+allcategories-param-dir": "Richting om in te sorteren.",
        "apihelp-query+allcategories-param-limit": "Hoeveel categorieën te tonen.",
        "apihelp-query+allcategories-paramvalue-prop-size": "Voegt het aantal pagina's in de categorie toe.",
-       "apihelp-query+allcategories-paramvalue-prop-hidden": "Markeert categorieën die verborgen zijn met <code>_&#95;HIDDENCAT_&#95;</code>",
-       "apihelp-query+alldeletedrevisions-param-tag": "Alleen versies weergeven met dit label.",
-       "apihelp-query+alldeletedrevisions-param-excludeuser": "Toon geen versies door deze gebruiker.",
-       "apihelp-query+alldeletedrevisions-param-namespace": "Toon alleen pagina's in deze naamruimte.",
+       "apihelp-query+allcategories-paramvalue-prop-hidden": "Markeert categorieën die verborgen zijn met <code>_&#95;HIDDENCAT_&#95;</code>.",
+       "apihelp-query+alldeletedrevisions-param-tag": "Alleen versies met dit label weergeven.",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "Geen revisies door deze gebruiker weergeven.",
+       "apihelp-query+alldeletedrevisions-param-namespace": "Alleen pagina's in deze naamruimte weergeven.",
        "apihelp-query+allfileusages-paramvalue-prop-title": "Voegt de titel van het bestand toe.",
        "apihelp-query+allfileusages-param-limit": "Hoeveel items er in totaal moeten worden getoond.",
-       "apihelp-query+allimages-example-recent": "Toon een lijst van recentlijk geüploade bestanden, vergelijkbaar met [[Special:NewFiles]].",
-       "apihelp-query+alllinks-param-namespace": "De naamruimte om door te lopen.",
+       "apihelp-query+allimages-example-recent": "Toon een lijst van recentelijk geüploade bestanden, vergelijkbaar met [[Special:NewFiles]].",
+       "apihelp-query+alllinks-param-namespace": "De door te lopen naamruimte.",
        "apihelp-query+alllinks-param-limit": "Hoeveel items er in totaal moeten worden getoond.",
-       "apihelp-query+allmessages-param-enableparser": "Stel in om de parser in te schakelen, zorgt voor het voorverwerken van de wikitekst van een bericht (vervangen van magische woorden, de afhandeling van sjablonen, enzovoort).",
+       "apihelp-query+allmessages-param-enableparser": "Stel in om de parser in te schakelen, zorgt voor het voorverwerken van de wikitekst van een bericht (vervangen van magische woorden, afhandelen van sjablonen, enz.).",
        "apihelp-query+allmessages-param-lang": "Toon berichten in deze taal.",
        "apihelp-query+allmessages-param-from": "Toon berichten vanaf dit bericht.",
        "apihelp-query+allmessages-param-to": "Toon berichten tot aan dit bericht.",
        "apihelp-query+allredirects-summary": "Toon alle doorverwijzingen naar een naamruimte.",
-       "apihelp-query+allrevisions-example-user": "Toon de laatste 50 bijdragen van de gebruiker <kbd>Example</kbd>.",
+       "apihelp-query+allrevisions-example-user": "Toon de laatste 50 bijdragen van gebruiker <kbd>Example</kbd>.",
        "apihelp-query+mystashedfiles-paramvalue-prop-type": "Vraag het MIME- en mediatype van het bestand op.",
        "apihelp-query+mystashedfiles-param-limit": "Hoeveel bestanden te tonen.",
        "apihelp-query+allusers-param-excludegroup": "Sluit gebruikers in de gegeven groepen uit.",
-       "apihelp-query+allusers-paramvalue-prop-blockinfo": "Voegt informatie over een actuale blokkade van de gebruiker toe.",
-       "apihelp-query+allusers-paramvalue-prop-groups": "Toont de groepen waar de gebruiker in zit. Dit gebruikt meer serverbronnen en kan minder resultaten teruggeven dat de opgegeven limiet.",
-       "apihelp-query+allusers-paramvalue-prop-implicitgroups": "Toon alle groepen de gebruiker automatisch in zit.",
-       "apihelp-query+allusers-paramvalue-prop-rights": "Toon de rechten die de gebruiker heeft.",
+       "apihelp-query+allusers-paramvalue-prop-blockinfo": "Voegt informatie over een actuele blokkade van de gebruiker toe.",
+       "apihelp-query+allusers-paramvalue-prop-groups": "Toont de groepen waar de gebruiker in zit. Dit gebruikt meer serverbronnen en retourneert mogelijk minder resultaten dan de opgegeven limiet.",
+       "apihelp-query+allusers-paramvalue-prop-implicitgroups": "Toont alle groepen waar de gebruiker automatisch in zit.",
+       "apihelp-query+allusers-paramvalue-prop-rights": "Toont de rechten die de gebruiker heeft.",
        "apihelp-query+allusers-paramvalue-prop-editcount": "Voegt het aantal bewerkingen van de gebruiker toe.",
        "apihelp-query+allusers-paramvalue-prop-registration": "Voegt de registratiedatum van de gebruiker toe, indien beschikbaar (kan leeg zijn).",
        "apihelp-query+allusers-param-witheditsonly": "Toon alleen gebruikers die bewerkingen hebben gemaakt.",
-       "apihelp-query+allusers-param-activeusers": "Toon alleen gebruikers die actief zijn geweest in de laatste $1 {{PLURAL:$1|dag|dagen}}.",
+       "apihelp-query+allusers-param-activeusers": "Toon alleen gebruikers die actief zijn geweest in de laatste {{PLURAL:$1|dag|$1 dagen}}.",
        "apihelp-query+allusers-example-Y": "Toon gebruikers vanaf <kbd>Y</kbd>.",
-       "apihelp-query+authmanagerinfo-summary": "Haal informatie op over de huidige authentificatie status.",
+       "apihelp-query+authmanagerinfo-summary": "Haal informatie op over de huidige authentificatiestatus.",
        "apihelp-query+backlinks-summary": "Vind alle pagina's die verwijzen naar de gegeven pagina.",
-       "apihelp-query+backlinks-param-title": "Titel om op te zoeken. Kan niet worden gebruikt in combinatie met<var>$1pageid</var>.",
-       "apihelp-query+backlinks-param-pageid": "Pagina ID om op te zoeken. Kan niet worden gebruikt in combinatie met <var>$1title</var>.",
-       "apihelp-query+backlinks-param-namespace": "De naamruimte om door te lopen.",
-       "apihelp-query+backlinks-example-simple": "Toon verwijzingen naar de <kbd>Hoofdpagina</kbd>.",
+       "apihelp-query+backlinks-param-title": "Te onderzoeken titel. Kan niet in combinatie met <var>$1pageid</var> gebruikt worden.",
+       "apihelp-query+backlinks-param-pageid": "Te onderzoeken pagina-ID. Kan niet in combinatie met <var>$1title</var> gebruikt worden.",
+       "apihelp-query+backlinks-param-namespace": "De door te lopen naamruimte.",
+       "apihelp-query+backlinks-example-simple": "Toon verwijzingen naar <kbd>Main page</kbd>.",
        "apihelp-query+blocks-summary": "Toon alle geblokkeerde gebruikers en IP-adressen.",
-       "apihelp-query+blocks-param-limit": "Het maximum aantal blokkades te tonen.",
-       "apihelp-query+blocks-paramvalue-prop-id": "Voegt de blokkade ID toe.",
+       "apihelp-query+blocks-param-limit": "Het maximale aantal te tonen blokkades.",
+       "apihelp-query+blocks-paramvalue-prop-id": "Voegt de blokkade-ID toe.",
        "apihelp-query+blocks-paramvalue-prop-user": "Voegt de gebruikersnaam van de geblokkeerde gebruiker toe.",
-       "apihelp-query+blocks-paramvalue-prop-userid": "Voegt de gebruiker-ID van de geblokkeerde gebruiker toe.",
+       "apihelp-query+blocks-paramvalue-prop-userid": "Voegt de gebruikers-ID van de geblokkeerde gebruiker toe.",
        "apihelp-query+blocks-paramvalue-prop-flags": "Labelt de blokkade met (automatische blokkade, alleen anoniem, enzovoort).",
        "apihelp-query+blocks-example-simple": "Toon blokkades.",
        "apihelp-query+blocks-example-users": "Toon blokkades van gebruikers <kbd>Alice</kbd> en <kbd>Bob</kbd>.",
-       "apihelp-query+categories-summary": "Toon alle categorieën waar de pagina in zit.",
+       "apihelp-query+categories-summary": "Toon alle categorieën waar de pagina's in zitten.",
        "apihelp-query+categories-paramvalue-prop-hidden": "Markeert categorieën die verborgen zijn met <code>_&#95;HIDDENCAT_&#95;</code>",
        "apihelp-query+categories-param-show": "Welke soort categorieën te tonen.",
        "apihelp-query+categories-param-limit": "Hoeveel categorieën te tonen.",
        "apihelp-query+categorymembers-paramvalue-prop-ids": "Voegt de pagina-ID toe.",
        "apihelp-query+categorymembers-paramvalue-prop-title": "Voegt de titel en de naamruimte-ID van de pagina toe.",
        "apihelp-query+categorymembers-param-dir": "Richting om in te sorteren.",
-       "apihelp-query+deletedrevisions-param-tag": "Alleen versies weergeven met dit label.",
-       "apihelp-query+deletedrevs-param-tag": "Alleen versies weergeven met dit label.",
-       "apihelp-query+embeddedin-param-namespace": "De naamruimte om door te lopen.",
-       "apihelp-query+fileusage-paramvalue-prop-pageid": "Pagina ID van elke pagina.",
+       "apihelp-query+deletedrevisions-param-tag": "Alleen revisies met dit label weergeven.",
+       "apihelp-query+deletedrevs-param-tag": "Alleen revisies met dit label weergeven.",
+       "apihelp-query+embeddedin-param-namespace": "De door te lopen naamruimte.",
+       "apihelp-query+fileusage-paramvalue-prop-pageid": "Pagina-ID van elke pagina.",
        "apihelp-query+fileusage-paramvalue-prop-title": "Titel van elke pagina.",
-       "apihelp-query+imageusage-param-namespace": "De naamruimte om door te lopen.",
-       "apihelp-query+imageusage-example-simple": "Toon pagina's die gebruik maken van [[:File:Albert Einstein Head.jpg]].",
-       "apihelp-query+imageusage-example-generator": "Toon informatie over pagina's die gebruik maken van [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+imageusage-param-namespace": "De door te lopen naamruimte.",
+       "apihelp-query+imageusage-example-simple": "Toon pagina's die [[:File:Albert Einstein Head.jpg]] gebruiken.",
+       "apihelp-query+imageusage-example-generator": "Toon informatie over pagina's die [[:File:Albert Einstein Head.jpg]] gebruiken.",
        "apihelp-query+iwbacklinks-param-prefix": "Voorvoegsel voor de interwiki.",
        "apihelp-query+logevents-param-type": "Logboekregels alleen voor dit type filteren.",
-       "apihelp-query+logevents-param-tag": "Alleen logboekregels weergeven met dit label.",
+       "apihelp-query+logevents-param-tag": "Alleen logboekregels met dit label weergeven.",
        "apihelp-query+logevents-example-simple": "Recente logboekregels weergeven.",
        "apihelp-query+protectedtitles-paramvalue-prop-level": "Voegt het beveiligingsniveau toe.",
        "apihelp-query+protectedtitles-example-simple": "Toon beveiligde titels.",
-       "apihelp-query+querypage-param-limit": "Aantal resultaten om te tonen.",
+       "apihelp-query+querypage-param-limit": "Aantal te tonen resultaten.",
        "apihelp-query+querypage-example-ancientpages": "Toon resultaten van [[Special:Ancientpages]].",
        "apihelp-query+random-param-namespace": "Toon alleen pagina's in deze naamruimten.",
-       "apihelp-query+random-param-limit": "Beperk het aantal aan willekeurige pagina's dat wordt getoond.",
+       "apihelp-query+random-param-limit": "Beperk hoeveel willekeurige pagina's worden getoond.",
        "apihelp-query+random-example-simple": "Toon twee willekeurige pagina's uit de hoofdnaamruimte.",
-       "apihelp-query+random-example-generator": "Toon pagina informatie over twee willekeurige pagina's uit de hoofdnaamruimte.",
+       "apihelp-query+random-example-generator": "Toon pagina-informatie over twee willekeurige pagina's uit de hoofdnaamruimte.",
        "apihelp-query+recentchanges-param-user": "Toon alleen wijzigingen door deze gebruiker.",
-       "apihelp-query+recentchanges-param-excludeuser": "Toon geen wijzigingen door deze gebruiker",
-       "apihelp-query+recentchanges-param-tag": "Alleen versies weergeven met dit label.",
+       "apihelp-query+recentchanges-param-excludeuser": "Toon geen wijzigingen door deze gebruiker.",
+       "apihelp-query+recentchanges-param-tag": "Toon alleen wijzigingen met dit label.",
        "apihelp-query+recentchanges-paramvalue-prop-comment": "Voegt de bewerkingssamenvatting voor de bewerking toe.",
-       "apihelp-query+recentchanges-paramvalue-prop-loginfo": "Voegt logboekgegevens toe aan logboekregels (logboek-ID, logboektype, enzovoort).",
+       "apihelp-query+recentchanges-paramvalue-prop-loginfo": "Voegt logboekgegevens (logboek-ID, logboektype, enz.) aan logboekregels toe.",
        "apihelp-query+recentchanges-example-simple": "Toon recente wijzigingen.",
-       "apihelp-query+redirects-paramvalue-prop-pageid": "Pagina ID van elke doorverwijzing.",
+       "apihelp-query+redirects-paramvalue-prop-pageid": "Pagina-ID van elke doorverwijzing.",
        "apihelp-query+redirects-paramvalue-prop-title": "Titel van elke doorverwijzing.",
        "apihelp-query+redirects-param-namespace": "Toon alleen pagina's in deze naamruimten.",
        "apihelp-query+redirects-param-limit": "Hoeveel doorverwijzingen te tonen.",
-       "apihelp-query+redirects-example-simple": "Toon een lijst van doorverwijzingen naar [[Main Page]].",
-       "apihelp-query+redirects-example-generator": "Toon informatie over alle doorverwijzingen naar [[Main Page]].",
-       "apihelp-query+revisions-param-tag": "Alleen versies weergeven met dit label.",
-       "apihelp-query+revisions+base-paramvalue-prop-content": "Versietekst.",
+       "apihelp-query+redirects-example-simple": "Een lijst van doorverwijzingen naar [[Main Page]] ophalen.",
+       "apihelp-query+redirects-example-generator": "Informatie over alle doorverwijzingen naar [[Main Page]] ophalen.",
+       "apihelp-query+revisions-param-tag": "Alleen revisies met dit label weergeven.",
+       "apihelp-query+revisions+base-paramvalue-prop-content": "Tekst van de revisie.",
        "apihelp-query+revisions+base-paramvalue-prop-tags": "Labels voor de versie.",
-       "apihelp-query+revisions+base-param-difftotextpst": "Gebruik in plaats hiervan [[Special:ApiHelp/compare|action=compare]]. \"pre-save\"-transformatie uitvoeren op de tekst alvorens de verschillen te bepalen. Alleen geldig als dit wordt gebruikt met <var>$1difftotext</var>.",
-       "apihelp-query+search-summary": "Voer een volledige tekst zoekopdracht uit.",
+       "apihelp-query+revisions+base-param-difftotextpst": "Gebruik in plaats hiervan [[Special:ApiHelp/compare|action=compare]]. Een \"pre-save\"-transformatie uitvoeren op de tekst alvorens de verschillen te bepalen. Alleen geldig indien gebruikt met <var>$1difftotext</var>.",
+       "apihelp-query+search-summary": "Voer een zoekopdracht in de volledige tekst uit.",
        "apihelp-query+search-param-limit": "Hoeveel pagina's te tonen.",
-       "apihelp-query+search-example-simple": "Zoeken naar <kbd>betekenis</kbd>.",
-       "apihelp-query+siteinfo-paramvalue-prop-namespacealiases": "Toon geregistreerde naamruimte aliassen.",
-       "apihelp-query+siteinfo-paramvalue-prop-specialpagealiases": "Toon speciale pagina aliassen.",
-       "apihelp-query+siteinfo-paramvalue-prop-magicwords": "Toon magische woorden en hun aliassen.",
-       "apihelp-query+siteinfo-paramvalue-prop-statistics": "Toon site statistieken.",
-       "apihelp-query+siteinfo-paramvalue-prop-libraries": "Toont bibliotheken die op de wiki zijn geïnstalleerd.",
-       "apihelp-query+siteinfo-paramvalue-prop-extensions": "Toont uitbreidingen die op de wiki zijn geïnstalleerd.",
-       "apihelp-query+siteinfo-paramvalue-prop-fileextensions": "Geeft een lijst met bestandsextensies (bestandstypen) die geüpload mogen worden.",
-       "apihelp-query+siteinfo-paramvalue-prop-rightsinfo": "Toont wiki rechten (licentie) informatie als deze beschikbaar is.",
+       "apihelp-query+search-example-simple": "Zoeken naar <kbd>meaning</kbd>.",
+       "apihelp-query+siteinfo-paramvalue-prop-namespacealiases": "Lijst van geregistreerde naamruimte-aliassen.",
+       "apihelp-query+siteinfo-paramvalue-prop-specialpagealiases": "Lijst van aliassen voor speciale pagina's.",
+       "apihelp-query+siteinfo-paramvalue-prop-magicwords": "Lijst van magische woorden en hun aliassen.",
+       "apihelp-query+siteinfo-paramvalue-prop-statistics": "Site-statistieken.",
+       "apihelp-query+siteinfo-paramvalue-prop-libraries": "Bibliotheken die op de wiki zijn geïnstalleerd.",
+       "apihelp-query+siteinfo-paramvalue-prop-extensions": "Uitbreidingen die op de wiki zijn geïnstalleerd.",
+       "apihelp-query+siteinfo-paramvalue-prop-fileextensions": "Lijst van bestandsextensies (bestandstypen) die geüpload mogen worden.",
+       "apihelp-query+siteinfo-paramvalue-prop-rightsinfo": "Informatie over wikirechten (licentie-informatie) indien beschikbaar.",
        "apihelp-query+tags-summary": "Wijzigingslabels weergeven.",
        "apihelp-query+tags-paramvalue-prop-name": "Voegt de naam van het label toe.",
-       "apihelp-query+tags-paramvalue-prop-displayname": "Voegt het systeembericht toe voor het label.",
-       "apihelp-query+tags-paramvalue-prop-description": "Voegt beschrijving van het label toe.",
+       "apihelp-query+tags-paramvalue-prop-displayname": "Voegt het systeembericht voor het label toe.",
+       "apihelp-query+tags-paramvalue-prop-description": "Voegt de beschrijving van het label toe.",
        "apihelp-query+tags-paramvalue-prop-defined": "Geeft aan of het label is gedefinieerd.",
        "apihelp-query+tags-paramvalue-prop-active": "Of het label nog steeds wordt toegepast.",
        "apihelp-query+tags-example-simple": "Toon beschikbare labels.",
-       "apihelp-query+templates-summary": "Toon alle pagina's ingesloten op de gegeven pagina's.",
-       "apihelp-query+templates-param-limit": "Het aantal sjablonen om te tonen.",
-       "apihelp-query+transcludedin-paramvalue-prop-pageid": "Pagina ID van elke pagina.",
+       "apihelp-query+templates-summary": "Retourneert alle pagina's die ingesloten zijn op de gegeven pagina's.",
+       "apihelp-query+templates-param-limit": "Hoeveel sjablonen te retourneren.",
+       "apihelp-query+transcludedin-paramvalue-prop-pageid": "Pagina-ID van elke pagina.",
        "apihelp-query+transcludedin-paramvalue-prop-title": "Titel van elke pagina.",
-       "apihelp-query+usercontribs-summary": "Toon alle bewerkingen door een gebruiker.",
-       "apihelp-query+usercontribs-param-limit": "Het maximum aantal bewerkingen om te tonen.",
-       "apihelp-query+usercontribs-param-namespace": "Toon alleen bijdragen in deze naamruimten.",
-       "apihelp-query+usercontribs-param-tag": "Alleen versies weergeven met dit label.",
-       "apihelp-query+usercontribs-example-ipprefix": "Toon bijdragen van alle IP-adressen met het voorvoegsel <kbd>192.0.2.</kbd>.",
-       "apihelp-query+userinfo-summary": "Toon informatie over de huidige gebruiker.",
-       "apihelp-query+userinfo-paramvalue-prop-realname": "Toon de gebruikers echte naam.",
+       "apihelp-query+usercontribs-summary": "Alle bewerkingen door een gebruiker opvragen.",
+       "apihelp-query+usercontribs-param-limit": "Het maximale aantal te tonen bijdragen.",
+       "apihelp-query+usercontribs-param-namespace": "Alleen bijdragen in deze naamruimten weergeven.",
+       "apihelp-query+usercontribs-param-tag": "Alleen revisies met dit label weergeven.",
+       "apihelp-query+usercontribs-example-ipprefix": "Bijdragen van alle IP-adressen met het voorvoegsel <kbd>192.0.2.</kbd> weergeven.",
+       "apihelp-query+userinfo-summary": "Informatie over de huidige gebruiker opvragen.",
+       "apihelp-query+userinfo-paramvalue-prop-realname": "Voegt de echte naam van de gebruiker toe.",
        "apihelp-query+watchlist-paramvalue-prop-loginfo": "Voegt logboekgegevens toe waar van toepassing.",
        "apihelp-query+watchlist-param-type": "Welke typen wijzigingen weer te geven:",
        "apihelp-query+watchlist-paramvalue-type-edit": "Gewone paginabewerkingen.",
        "apihelp-query+watchlist-paramvalue-type-log": "Logboekregels.",
        "apihelp-query+watchlist-paramvalue-type-categorize": "Wijzigingen in categorielidmaatschap.",
        "apihelp-stashedit-param-text": "Pagina-inhoud.",
-       "apihelp-unblock-param-user": "Gebruikersnaam, IP-adres of IP-range om te deblokkeren. Kan niet samen worden gebruikt met <var>$1id</var> of <var>$1userid</var>.",
-       "apihelp-unblock-param-userid": "Gebruikers-ID om te deblokkeren. Kan niet worden gebruikt in combinatie met <var>$1id</var> of <var>$1user</var>.",
-       "apihelp-json-param-formatversion": "Uitvoeropmaak:\n;1:Achterwaarts compatibele opmaak (XML-stijl booleans, <samp>*</samp>-sleutels voor contentnodes, enzovoort).\n;2:Experimentele moderne opmaak. Details kunnen wijzigen!\n;latest:Gebruik de meest recente opmaak (op het moment <kbd>2</kbd>), kan zonder waarschuwing wijzigen.",
-       "apihelp-php-param-formatversion": "Uitvoeropmaak:\n;1:Achterwaarts compatibele opmaak (XML-stijl booleans, <samp>*</samp>-sleutels voor contentnodes, enzovoort).\n;2:Experimentele moderne opmaak. Details kunnen wijzigen!\n;latest:Gebruik de meest recente opmaak (op het moment <kbd>2</kbd>), kan zonder waarschuwing wijzigen.",
-       "apihelp-rawfm-summary": "Uitvoergegevens, inclusief debugelementen, opgemaakt in JSON (nette opmaak in HTML).",
+       "apihelp-unblock-param-user": "Te deblokkeren gebruikersnaam, IP-adres of IP-range. Kan niet in combinatie met <var>$1id</var> of <var>$1userid</var> gebruikt worden.",
+       "apihelp-unblock-param-userid": "Te deblokkeren gebruikers-ID. Kan niet in combinatie met <var>$1id</var> of <var>$1user</var> gebruikt worden.",
+       "apihelp-json-param-formatversion": "Uitvoeropmaak:\n;1:Achterwaarts-compatibele opmaak (booleans in XML-stijl, <samp>*</samp>-sleutels voor contentnodes, enz.).\n;2:Experimentele moderne opmaak. Details kunnen wijzigen!\n;latest:Gebruik de meest recente opmaak (op het moment <kbd>2</kbd>), kan zonder waarschuwing wijzigen.",
+       "apihelp-php-param-formatversion": "Uitvoeropmaak:\n;1:Achterwaarts-compatibele opmaak (booleans in XML-stijl, <samp>*</samp>-sleutels voor contentnodes, enz.).\n;2:Experimentele moderne opmaak. Details kunnen wijzigen!\n;latest:Gebruik de meest recente opmaak (op het moment <kbd>2</kbd>), kan zonder waarschuwing wijzigen.",
+       "apihelp-rawfm-summary": "Gegevens, inclusief debugelementen, in JSON-formaat (nette opmaak in HTML) uitvoeren.",
        "api-help-flag-readrights": "Voor deze module zijn leesrechten nodig.",
        "api-help-flag-writerights": "Voor deze module zijn schrijfrechten nodig.",
        "api-help-parameters": "{{PLURAL:$1|Parameter|Parameters}}:",
        "api-help-datatypes-header": "Gegevenstypen",
        "api-help-param-default": "Standaard: $1",
        "api-help-examples": "{{PLURAL:$1|Voorbeeld|Voorbeelden}}:",
-       "apierror-autoblocked": "Uw IP-adres is automatisch geblokkeerd, omdat het gebruikt is door een geblokkeerde gebruiker.",
+       "apierror-autoblocked": "Uw IP-adres is automatisch geblokkeerd, omdat het gebruikt werd door een geblokkeerde gebruiker.",
        "apierror-badmodule-nosubmodules": "De module <kbd>$1</kbd> heeft geen submodules.",
-       "apierror-blockedfrommail": "U bent geblokkeerd en kunt geen emails verzenden.",
-       "apierror-blocked": "U bent geblokkeerd en kunt niet bewerken.",
+       "apierror-blockedfrommail": "Het versturen van e-mail is voor u geblokkeerd.",
+       "apierror-blocked": "Het bewerken is voor u geblokkeerd.",
        "apierror-filedoesnotexist": "Bestand bestaat niet.",
        "apierror-integeroutofrange-belowminimum": "<var>$1</var> mag niet minder zijn dan $2 (ingesteld op $3).",
        "apierror-invalidcategory": "De opgegeven categorienaam is niet geldig.",
        "apierror-invaliduser": "Ongeldige gebruikersnaam \"$1\".",
-       "apierror-maxlag-generic": "Wachten op een database server: $1 {{PLURAL:$1|seconde|seconden}} vertraging.",
+       "apierror-maxlag-generic": "Wachten op een databaseserver: $1 {{PLURAL:$1|seconde|seconden}} vertraging.",
        "apierror-maxlag": "Wachten op $2: $1 {{PLURAL:$1|seconde|seconden}} vertraging.",
        "apierror-missingtitle": "De opgegeven pagina bestaat niet.",
        "apierror-missingtitle-byname": "De pagina $1 bestaat niet.",
        "apiwarn-notfile": "\"$1\" is geen bestand.",
        "apiwarn-validationfailed-badpref": "geen geldige voorkeur.",
        "api-feed-error-title": "Fout ($1)",
-       "api-usage-docref": "Zie $1 voor API gebruik.",
+       "api-usage-docref": "Zie $1 voor API-gebruik.",
        "api-credits-header": "Vermeldingen",
-       "api-credits": "API-ontwikkelaars:\n* Roan Kattouw (hoofdontwikkelaar september 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (oorspronkelijke ontwikkelaar, hoofdontwikkelaar september 2006 – september 2007)\n* Brad Jorsch (hoofdontwikkelaar 2013 – heden)\n\nStuur uw opmerkingen, suggesties en vragen naar mediawiki-api@lists.wikimedia.org\nof maak een melding aan op https://phabricator.wikimedia.org/."
+       "api-credits": "API-ontwikkelaars:\n* Yuri Astrakhan (oorspronkelijke ontwikkelaar, hoofdontwikkelaar september 2006 – september 2007)\n* Roan Kattouw (hoofdontwikkelaar september 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Brad Jorsch (hoofdontwikkelaar 2013–heden)\n\nStuur uw opmerkingen, suggesties en vragen naar mediawiki-api@lists.wikimedia.org\nof maak een bugrapport aan op https://phabricator.wikimedia.org/."
 }
index 47afdc1..1724fa9 100644 (file)
        "apihelp-query+search-paramvalue-prop-sectiontitle": "{{doc-apihelp-paramvalue|query+search|prop|sectiontitle}}",
        "apihelp-query+search-paramvalue-prop-categorysnippet": "{{doc-apihelp-paramvalue|query+search|prop|categorysnippet}}",
        "apihelp-query+search-paramvalue-prop-isfilematch": "{{doc-apihelp-paramvalue|query+search|prop|isfilematch}}",
+       "apihelp-query+search-paramvalue-prop-extensiondata": "{{doc-apihelp-paramvalue|query+search|prop|extensiondata}}",
        "apihelp-query+search-paramvalue-prop-score": "{{doc-apihelp-paramvalue|query+search|prop|score}}\n{{Identical|Ignored}}",
        "apihelp-query+search-paramvalue-prop-hasrelated": "{{doc-apihelp-paramvalue|query+search|prop|hasrelated}}\n{{Identical|Ignored}}",
        "apihelp-query+search-param-limit": "{{doc-apihelp-param|query+search|limit}}",
index f094745..46cc6d3 100644 (file)
@@ -56,6 +56,14 @@ class HTMLUsersMultiselectField extends HTMLUserTextField {
        public function getInputOOUI( $value ) {
                $params = [ 'name' => $this->mName ];
 
+               if ( isset( $this->mParams['id'] ) ) {
+                       $params['id'] = $this->mParams['id'];
+               }
+
+               if ( isset( $this->mParams['disabled'] ) ) {
+                       $params['disabled'] = $this->mParams['disabled'];
+               }
+
                if ( isset( $this->mParams['default'] ) ) {
                        $params['default'] = $this->mParams['default'];
                }
index 46978e1..2bb15b8 100644 (file)
@@ -693,10 +693,6 @@ abstract class Installer {
                        ] );
                } catch ( MediaWiki\Services\ServiceDisabledException $e ) {
                        $html = '<!--DB access attempted during parse-->  ' . htmlspecialchars( $text );
-
-                       if ( !empty( $this->debug ) ) {
-                               $html .= "<!--\n" . $e->getTraceAsString() . "\n-->";
-                       }
                }
 
                return $html;
index 030b45e..53abf4b 100644 (file)
@@ -78,7 +78,9 @@
        "config-using-server": "\"<nowiki>$1</nowiki>\" zerbitzari-izena erabiltzen.",
        "config-using-uri": "\"<nowiki>$1$2</nowiki>\" zerbitzariaren URLa erabiltzen.",
        "config-uploads-not-safe": "<strong>Oharra:</strong> Zure igoerak egiteko <code>$1</code> direktorio lehenetsia gidoi arbitrarioen exekuzioek kaltetu dezakete.\nMediaWiki-k segurtasunerako kargatutako fitxategi guztiak egiaztatzen dituen arren, oso gomendagarria da [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security segurtasun-ahultasun hau itxi] erabiltzea gaitu aurretik.",
+       "config-no-cli-uploads-check": "<strong>Oharra:</ strong> Zure kargatutako direktorio (<code>$1</code>) lehenetsia ez da hauteman ahultasunerako\nscript arbitrarioak exekutatzeko CLI instalazioan zehar.",
        "config-brokenlibxml": "Zure sistemak dauka PHP-ko eta libxml2-ko konbinazio akastun bat eta eragin ahal du korrupzioa datarekin MediaWikin eta beste web aplikazioetan.\nAktualizatu libxml2 2.7.3-era edo berrietara ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]).\nInstalazioa geldiarazi egin da.",
+       "config-suhosin-max-value-length": "Suhosin instalatuta dago eta GET parametroaren <code>luzeera</code> $1 byte-ra mugatzen du.\nMediaWiki-ren ResourceLoader osagaia muga honen inguruan lan egingo du, baina horrek errendimendua kaltetu egingo du.\nAhal izanez gero, <code>suhosin.get.max_value_length</code> 1024 edo handiagoa ezarri beharko zenuke <code>php.ini</code>, eta <code>LocalSettings.php</code>-n <code>$wgResourceLoaderMaxQueryLength</code> balio bera ezarri.",
        "config-using-32bit": "<strong>Oharra:</strong> zure sistemak 32 bit-ekin jarduten duela dirudi. Hau da [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:32-bit not advised].",
        "config-db-type": "Datu-base mota:",
        "config-db-host": "Datu-basearen zerbitzaria:",
        "config-ns-other-default": "MyWiki",
        "config-project-namespace-help": "Wikipedia-ren adibidea jarraitzen, wiki askok beren orrien politika mantentzen dute beren edukien orrialdeetatik bereizita, '' 'proiektuaren izen-eremuan' ''.\nOrrialde honetako izenburu guztiek aurrizki jakin batekin hasten dira, hemen zehaztu ahal direnak.\nNormalean, aurrizkia wikiaren izenetik dator, baina ezin du \"#\" edo \":\" puntuazio-karaktereak eduki.",
        "config-ns-invalid": "Zehaztutako \"<nowiki>$1</nowiki>\" izena baliogabea da.\nZehaztu beste proiektu baten izenaren eremua.",
+       "config-ns-conflict": "\"<nowiki>$1</ nowiki>\" zehaztutako izen-eremuak lehenetsitako MediaWiki izen-eremu batekin gatazkan ari da.\nZehaztu beste proiektu izen-eremu bat.",
        "config-admin-box": "Administratzaile kontua",
        "config-admin-name": "Zure erabiltzaile-izena:",
        "config-admin-password": "Pasahitza:",
        "config-admin-password-mismatch": "Sartutako bi pasahitzak ez datoz bat.",
        "config-admin-email": "E-posta helbidea:",
        "config-admin-email-help": "Sartu email bat baimena emateko mezuak jasotzeko, pasahitza aldatzeko and orrien aldaketeei buruz berri edukitzeko.\nHutsik utzi ahal duzu.",
+       "config-admin-error-user": "Barneko errorea \"<nowiki>$1</ nowiki>\" izeneko administratzailea sortzerakoan.",
        "config-admin-error-password": "Barne-arazoa administratzailearen pasahitza sortzerakoan.\"<nowiki>$1</nowiki>\". <pre>$2</pre>",
        "config-admin-error-bademail": "Helbide elektroniko okerra idatzi duzu.",
+       "config-subscribe": "Harpidetu [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce posta zerrenda bidez egindako iragarki ohar] zerrendara.",
+       "config-subscribe-help": "Hau bolumen baxuko oharren iragarkietarako erabiltzen den zerrenda da, segurtasun iragarki garrantzitsuak barne.\nHarpidetu horretara eta zure MediaWiki instalazioa eguneratu bertsio berriak ateratzean.",
+       "config-subscribe-noemail": "Ohar iragarkien posta elektroniko zerrendara harpidetzen saiatu zara, helbide elektroniko bat eman gabe.\nEman ezazu helbide elektronikoa posta zerrendan harpidetzea nahi baduzu.",
        "config-pingback": "Elkarbanatu informazioa instalazio prozesuari buruz MediaWiki-ko sustatzaileekin.",
        "config-almost-done": "Ia amaitu duzu!\nFalta den konfigurazioa saltatu ahal duzu eta zuzenean wikia instalatu.",
        "config-optional-continue": "Galdera gehiago egin.",
index 96f0ef1..2b8b83d 100644 (file)
@@ -38,7 +38,7 @@
        "config-no-session": "您的連線階段資料遺失!\n請檢查 php.ini 設定檔並確認 <code>session.save_path</code> 所設定的目錄是否合適。",
        "config-your-language": "您的語言:",
        "config-your-language-help": "請選擇接下來安裝程序中要使用的語言。",
-       "config-wiki-language": "Wiki 語言:",
+       "config-wiki-language": "wiki 語言:",
        "config-wiki-language-help": "選擇將要安裝的 Wiki 多數情況主要使用的語言。",
        "config-back": "← 返回",
        "config-continue": "繼續 →",
@@ -56,7 +56,7 @@
        "config-page-releasenotes": "發佈說明",
        "config-page-copying": "複製",
        "config-page-upgradedoc": "升級",
-       "config-page-existingwiki": "現有 Wiki",
+       "config-page-existingwiki": "現有的 wiki",
        "config-help-restart": "是否要清除所有已輸入且儲存的資料,並重新開始安裝程序嗎?",
        "config-restart": "是的,重新開始",
        "config-welcome": "=== 環境檢查 ===\n現在會做基本的檢查,檢查環境是否符合 MediaWiki 安裝所需。\n若您要尋求如何完成安裝的協助,請記得提供以下訊息。",
        "config-db-host-help": "如果您的資料庫安裝在其他伺服器上,請在此輸入該主機的名稱或 IP 位址。\n\n如果您使用共用的網頁主機,您的主機提供商應會在說明文件上告訴您正確的主機名稱。\n\n如果您安裝在 Windows 伺服器並且使用 MySQL,伺服器名稱可能無法使用使用 \"localhost\"。若確實無法使用,請改嘗試使用本機的 IP 位址 \"127.0.0.1\"。\n\n如果您使用 PostgreSQL,將此欄位空白以使用 Unix socket 來連線。",
        "config-db-host-oracle": "資料庫的 TNS:",
        "config-db-host-oracle-help": "請輸入有效的 [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm 本地連線名稱],並確認安裝程式可以讀取 tnsnames.ora 檔案。<br />如果您使用的客戶端程式庫為 10g 或者更新的版本,您也可使用 [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm 簡易連線] 的命名方法進行連線。",
-       "config-db-wiki-settings": "此 Wiki 的 ID",
+       "config-db-wiki-settings": "識別此 wiki",
        "config-db-name": "資料庫名稱:",
        "config-db-name-help": "請輸入一個可以辨識您的 Wiki 的名稱,\n請勿包含空格。\n\n如果您使用的是共用的網頁主機,您的主機提供商會給您一個指定的資料庫名稱,或者讓您透過管理介面建立資料庫。",
        "config-db-name-oracle": "資料庫 Schema:",
        "config-mssql-web-auth": "請選擇一般操作中要用來連線資料庫使用的身份驗證類型。\n若您選擇 \"{{int:config-mssql-windowsauth}}\",不論網頁伺服器是使用何種身份執行都會使用這組驗證資料。",
        "config-mssql-sqlauth": "SQL Server 身份驗證",
        "config-mssql-windowsauth": "Windows 身份驗證",
-       "config-site-name": "Wiki 的名稱:",
+       "config-site-name": "wiki 的名稱:",
        "config-site-name-help": "您所填入的內容會出現在瀏覽器的標題列以及各種其他地方。",
        "config-site-name-blank": "請輸入網站名稱。",
        "config-project-namespace": "專案命名空間:",
        "config-ns-generic": "專案",
-       "config-ns-site-name": "同 Wiki 名稱:$1",
+       "config-ns-site-name": "與 wiki 名稱一致:$1",
        "config-ns-other": "其他 (請註明)",
        "config-ns-other-default": "我的 wiki",
        "config-project-namespace-help": "許多 Wiki 以維基百科 (Wikipedia) 做為範例將政策頁面從內容頁面抽離,放置在 \"'''專案命名空間'''\" 中。\n所有在此命名空間裡的頁面都會有特定的字首,您可以在此處設定。\n通常這些字首是由該 Wiki 的名稱所衍伸出來,但無法使用標點符號,如 \"#\" 或 \":\"。",
        "config-optional-continue": "多問我一些問題吧。",
        "config-optional-skip": "我已經不耐煩了,請趕緊安裝 Wiki。",
        "config-profile": "使用者權限基本資料:",
-       "config-profile-wiki": "開放式 Wiki",
+       "config-profile-wiki": "開放式 wiki",
        "config-profile-no-anon": "需要註冊帳號",
        "config-profile-fishbowl": "僅授權的編輯者",
        "config-profile-private": "私人 wiki",
index 8f2c72a..ac28076 100644 (file)
@@ -225,8 +225,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         */
        public static function newEmpty() {
                return new static( [
-                       'cache'   => new EmptyBagOStuff(),
-                       'pool'    => 'empty'
+                       'cache'   => new EmptyBagOStuff()
                ] );
        }
 
index ea58acc..2b03a70 100644 (file)
@@ -4207,7 +4207,7 @@ class Parser {
                        # Decode HTML entities
                        $safeHeadline = Sanitizer::decodeCharReferences( $safeHeadline );
 
-                       $safeHeadline = $this->normalizeSectionName( $safeHeadline );
+                       $safeHeadline = self::normalizeSectionName( $safeHeadline );
 
                        $fallbackHeadline = Sanitizer::escapeIdForAttribute( $safeHeadline, Sanitizer::ID_FALLBACK );
                        $linkAnchor = Sanitizer::escapeIdForLink( $safeHeadline );
@@ -5756,23 +5756,42 @@ class Parser {
                return $this->mDefaultSort;
        }
 
+       private static function getSectionNameFromStrippedText( $text ) {
+               $text = Sanitizer::normalizeSectionNameWhitespace( $text );
+               $text = Sanitizer::decodeCharReferences( $text );
+               $text = self::normalizeSectionName( $text );
+               return $text;
+       }
+
+       private static function makeAnchor( $sectionName ) {
+               return '#' . Sanitizer::escapeIdForLink( $sectionName );
+       }
+
+       private static function makeLegacyAnchor( $sectionName ) {
+               global $wgFragmentMode;
+               if ( isset( $wgFragmentMode[1] ) && $wgFragmentMode[1] === 'legacy' ) {
+                       // ForAttribute() and ForLink() are the same for legacy encoding
+                       $id = Sanitizer::escapeIdForAttribute( $text, Sanitizer::ID_FALLBACK );
+               } else {
+                       $id = Sanitizer::escapeIdForLink( $text );
+               }
+
+               return "#$id";
+       }
+
        /**
         * Try to guess the section anchor name based on a wikitext fragment
         * presumably extracted from a heading, for example "Header" from
         * "== Header ==".
         *
         * @param string $text
-        *
-        * @return string
+        * @return string Anchor (starting with '#')
         */
        public function guessSectionNameFromWikiText( $text ) {
                # Strip out wikitext links(they break the anchor)
                $text = $this->stripSectionName( $text );
-               $text = Sanitizer::normalizeSectionNameWhitespace( $text );
-               $text = Sanitizer::decodeCharReferences( $text );
-               $text = $this->normalizeSectionName( $text );
-
-               return '#' . Sanitizer::escapeIdForLink( $text );
+               $sectionName = self::getSectionNameFromStrippedText( $text );
+               return self::makeAnchor( $sectionName );
        }
 
        /**
@@ -5782,25 +5801,23 @@ class Parser {
         * than UTF-8, resulting in breakage.
         *
         * @param string $text The section name
-        * @return string An anchor
+        * @return string Anchor (starting with '#')
         */
        public function guessLegacySectionNameFromWikiText( $text ) {
-               global $wgFragmentMode;
-
                # Strip out wikitext links(they break the anchor)
                $text = $this->stripSectionName( $text );
-               $text = Sanitizer::normalizeSectionNameWhitespace( $text );
-               $text = Sanitizer::decodeCharReferences( $text );
-               $text = $this->normalizeSectionName( $text );
-
-               if ( isset( $wgFragmentMode[1] ) && $wgFragmentMode[1] === 'legacy' ) {
-                       // ForAttribute() and ForLink() are the same for legacy encoding
-                       $id = Sanitizer::escapeIdForAttribute( $text, Sanitizer::ID_FALLBACK );
-               } else {
-                       $id = Sanitizer::escapeIdForLink( $text );
-               }
+               $sectionName = self::getSectionNameFromStrippedText( $text );
+               return self::makeLegacyAnchor( $sectionName );
+       }
 
-               return "#$id";
+       /**
+        * Like guessSectionNameFromWikiText(), but takes already-stripped text as input.
+        * @param string $text Section name (plain text)
+        * @return string Anchor (starting with '#')
+        */
+       public static function guessSectionNameFromStrippedText( $text ) {
+               $sectionName = self::getSectionNameFromStrippedText( $text );
+               return self::makeAnchor( $sectionName );
        }
 
        /**
@@ -5809,7 +5826,7 @@ class Parser {
         * @param string $text
         * @return string
         */
-       private function normalizeSectionName( $text ) {
+       private static function normalizeSectionName( $text ) {
                # T90902: ensure the same normalization is applied for IDs as to links
                $titleParser = MediaWikiServices::getInstance()->getTitleParser();
                try {
index 740fed4..bc2f8e4 100644 (file)
@@ -196,6 +196,7 @@ class ExtensionRegistry {
        public function readFromQueue( array $queue ) {
                global $wgVersion;
                $autoloadClasses = [];
+               $autoloadNamespaces = [];
                $autoloaderPaths = [];
                $processor = new ExtensionProcessor();
                $versionChecker = new VersionChecker( $wgVersion );
@@ -226,10 +227,15 @@ class ExtensionRegistry {
                                $incompatible[] = "$path: unsupported manifest_version: {$version}";
                        }
 
-                       $autoload = $this->processAutoLoader( dirname( $path ), $info );
-                       // Set up the autoloader now so custom processors will work
-                       $GLOBALS['wgAutoloadClasses'] += $autoload;
-                       $autoloadClasses += $autoload;
+                       $dir = dirname( $path );
+                       if ( isset( $info['AutoloadClasses'] ) ) {
+                               $autoload = $this->processAutoLoader( $dir, $info['AutoloadClasses'] );
+                               $GLOBALS['wgAutoloadClasses'] += $autoload;
+                               $autoloadClasses += $autoload;
+                       }
+                       if ( isset( $info['AutoloadNamespaces'] ) ) {
+                               $autoloadNamespaces += $this->processAutoLoader( $dir, $info['AutoloadNamespaces'] );
+                       }
 
                        // get all requirements/dependencies for this extension
                        $requires = $processor->getRequirements( $info );
@@ -241,7 +247,7 @@ class ExtensionRegistry {
 
                        // Get extra paths for later inclusion
                        $autoloaderPaths = array_merge( $autoloaderPaths,
-                               $processor->getExtraAutoloaderPaths( dirname( $path ), $info ) );
+                               $processor->getExtraAutoloaderPaths( $dir, $info ) );
                        // Compatible, read and extract info
                        $processor->extractInfo( $path, $info, $version );
                }
@@ -268,6 +274,7 @@ class ExtensionRegistry {
                $data['globals']['wgAutoloadClasses'] = [];
                $data['autoload'] = $autoloadClasses;
                $data['autoloaderPaths'] = $autoloaderPaths;
+               $data['autoloaderNS'] = $autoloadNamespaces;
                return $data;
        }
 
@@ -315,6 +322,10 @@ class ExtensionRegistry {
                        }
                }
 
+               if ( isset( $info['autoloaderNS'] ) ) {
+                       Autoloader::$psr4Namespaces += $info['autoloaderNS'];
+               }
+
                foreach ( $info['defines'] as $name => $val ) {
                        define( $name, $val );
                }
@@ -399,20 +410,16 @@ class ExtensionRegistry {
        }
 
        /**
-        * Register classes with the autoloader
+        * Fully expand autoloader paths
         *
         * @param string $dir
         * @param array $info
         * @return array
         */
        protected function processAutoLoader( $dir, array $info ) {
-               if ( isset( $info['AutoloadClasses'] ) ) {
-                       // Make paths absolute, relative to the JSON file
-                       return array_map( function ( $file ) use ( $dir ) {
-                               return "$dir/$file";
-                       }, $info['AutoloadClasses'] );
-               } else {
-                       return [];
-               }
+               // Make paths absolute, relative to the JSON file
+               return array_map( function ( $file ) use ( $dir ) {
+                       return "$dir/$file";
+               }, $info );
        }
 }
index 532ee51..badd7a2 100644 (file)
@@ -524,15 +524,48 @@ class SkinTemplate extends Skin {
         * @return string
         */
        public function getPersonalToolsList() {
+               return $this->makePersonalToolsList();
+       }
+
+       /**
+        * Get the HTML for the personal tools list
+        *
+        * @since 1.31
+        *
+        * @param array $personalTools
+        * @param array $options
+        * @return string
+        */
+       public function makePersonalToolsList( $personalTools = null, $options = [] ) {
                $tpl = $this->setupTemplateForOutput();
                $tpl->set( 'personal_urls', $this->buildPersonalUrls() );
                $html = '';
-               foreach ( $tpl->getPersonalTools() as $key => $item ) {
-                       $html .= $tpl->makeListItem( $key, $item );
+
+               if ( $personalTools === null ) {
+                       $personalTools = $tpl->getPersonalTools();
+               }
+
+               foreach ( $personalTools as $key => $item ) {
+                       $html .= $tpl->makeListItem( $key, $item, $options );
                }
+
                return $html;
        }
 
+       /**
+        * Get personal tools for the user
+        *
+        * @since 1.31
+        *
+        * @return array Array of personal tools
+        */
+       public function getStructuredPersonalTools() {
+               $tpl = $this->setupTemplateForOutput();
+               $tpl->set( 'personal_urls', $this->buildPersonalUrls() );
+
+               return $tpl->getPersonalTools();
+       }
+
        /**
         * Format language name for use in sidebar interlanguage links list.
         * By default it is capitalized.
index 30eb38d..06ca04f 100644 (file)
@@ -224,15 +224,52 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                        wfDebug( "Target is invalid user.\n" );
 
                        return 'notarget';
-               } elseif ( !$target->isEmailConfirmed() ) {
+               }
+
+               if ( !$target->isEmailConfirmed() ) {
                        wfDebug( "User has no valid email.\n" );
 
                        return 'noemail';
-               } elseif ( !$target->canReceiveEmail() ) {
+               }
+
+               if ( !$target->canReceiveEmail() ) {
                        wfDebug( "User does not allow user emails.\n" );
 
                        return 'nowikiemail';
-               } elseif ( $sender !== null ) {
+               }
+
+               if ( $target->getEditCount() === 0 &&
+                       ( $sender === null || !$sender->isAllowed( 'sendemail-new-users' ) )
+               ) {
+                       // Determine if target has any other logged actions.
+                       $dbr = wfGetDB( DB_REPLICA );
+                       $log_id = $dbr->selectField(
+                               'logging',
+                               'log_id',
+                               [
+                                       'log_user' => $target->getId(),
+                                       "NOT (log_type = 'newusers' AND log_action = 'autocreate')",
+                               ],
+                               __METHOD__,
+                               [ 'LIMIT' => 1 ]
+                       );
+
+                       if ( !$log_id ) {
+                               wfDebug( "User has no logged actions on this wiki.\n" );
+
+                               return 'nowikiemail';
+                       }
+               }
+
+               if ( $sender !== null && !$target->getOption( 'email-allow-new-users' ) &&
+                       $sender->isNewbie()
+               ) {
+                               wfDebug( "User does not allow user emails from new users.\n" );
+
+                               return 'nowikiemail';
+               }
+
+               if ( $sender !== null ) {
                        $blacklist = $target->getOption( 'email-blacklist', [] );
                        if ( $blacklist ) {
                                $lookup = CentralIdLookup::factory();
index 2ca4190..cc62d61 100644 (file)
@@ -137,7 +137,7 @@ class SpecialListGroupRights extends SpecialPage {
        }
 
        private function outputNamespaceProtectionInfo() {
-               global $wgParser, $wgContLang;
+               global $wgContLang;
                $out = $this->getOutput();
                $namespaceProtection = $this->getConfig()->get( 'NamespaceProtection' );
 
@@ -145,11 +145,11 @@ class SpecialListGroupRights extends SpecialPage {
                        return;
                }
 
-               $header = $this->msg( 'listgrouprights-namespaceprotection-header' )->parse();
+               $header = $this->msg( 'listgrouprights-namespaceprotection-header' )->text();
                $out->addHTML(
                        Html::rawElement( 'h2', [], Html::element( 'span', [
                                'class' => 'mw-headline',
-                               'id' => $wgParser->guessSectionNameFromWikiText( $header )
+                               'id' => substr( Parser::guessSectionNameFromStrippedText( $header ), 1 )
                        ], $header ) ) .
                        Xml::openElement( 'table', [ 'class' => 'wikitable' ] ) .
                        Html::element(
index e8e828d..2ad70a6 100644 (file)
@@ -117,11 +117,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                );
        }
 
-       public function isStructuredFilterUiEnabledByDefault() {
-               return $this->getConfig()->get( 'StructuredChangeFiltersOnWatchlist' ) &&
-                       $this->getUser()->getDefaultOption( 'rcenhancedfilters' );
-       }
-
        /**
         * Return an array of subpages that this special page will accept.
         *
index 37a80f2..a4dfb2b 100644 (file)
@@ -179,6 +179,7 @@ class User implements IDBAccessObject, UserIdentity {
                'reupload-shared',
                'rollback',
                'sendemail',
+               'sendemail-new-users',
                'siteadmin',
                'suppressionlog',
                'suppressredirect',
index 421a890..1c7c9b0 100644 (file)
@@ -42,6 +42,13 @@ class AutoloadGenerator {
         */
        protected $overrides = [];
 
+       /**
+        * Directories that should be excluded
+        *
+        * @var string[]
+        */
+       protected $excludePaths = [];
+
        /**
         * @param string $basepath Root path of the project being scanned for classes
         * @param array|string $flags
@@ -60,6 +67,32 @@ class AutoloadGenerator {
                }
        }
 
+       /**
+        * Directories that should be excluded
+        *
+        * @since 1.31
+        * @param string[] $paths
+        */
+       public function setExcludePaths( array $paths ) {
+               $this->excludePaths = $paths;
+       }
+
+       /**
+        * Whether the file should be excluded
+        *
+        * @param string $path File path
+        * @return bool
+        */
+       private function shouldExclude( $path ) {
+               foreach ( $this->excludePaths as $dir ) {
+                       if ( strpos( $path, $dir ) === 0 ) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
        /**
         * Force a class to be autoloaded from a specific path, regardless of where
         * or if it was detected.
@@ -94,6 +127,9 @@ class AutoloadGenerator {
                if ( substr( $inputPath, 0, $len ) !== $this->basepath ) {
                        throw new \Exception( "Path is not within basepath: $inputPath" );
                }
+               if ( $this->shouldExclude( $inputPath ) ) {
+                       return;
+               }
                $result = $this->collector->getClasses(
                        file_get_contents( $inputPath )
                );
index 64cce78..41bdba4 100644 (file)
@@ -4663,6 +4663,7 @@ public static $zh2Hant = [
 '大历' => '大曆',
 '大本钟' => '大本鐘',
 '大历史' => '大歷史',
+'大历险' => '大歷險',
 '大病初愈' => '大病初癒',
 '大目干连' => '大目乾連',
 '大笨钟' => '大笨鐘',
@@ -6805,6 +6806,8 @@ public static $zh2Hant = [
 '碧河里' => '碧河里',
 '碰钟' => '碰鐘',
 '确系' => '確係',
+'码码表' => '碼碼表',
+'码表示' => '碼表示',
 '码表' => '碼錶',
 '磁制' => '磁製',
 '磨蝎' => '磨蝎',
@@ -8909,7 +8912,6 @@ public static $zh2Hant = [
 '发型' => '髮型',
 '发夹' => '髮夾',
 '发妻' => '髮妻',
-'发姐' => '髮姐',
 '发屋' => '髮屋',
 '发已霜白' => '髮已霜白',
 '发带' => '髮帶',
@@ -14051,6 +14053,8 @@ public static $zh2TW = [
 '數碼訊號' => '數位訊號',
 '数字电视' => '數位電視',
 '數碼電視' => '數位電視',
+'数字音乐' => '數位音樂',
+'數碼音樂' => '數位音樂',
 '調制解調器' => '數據機',
 '调制解调器' => '數據機',
 '斯堪的納維亞' => '斯堪地那維亞',
@@ -14184,6 +14188,7 @@ public static $zh2TW = [
 '百慕大' => '百慕達',
 '卢旺达' => '盧安達',
 '盧旺達' => '盧安達',
+'真人騷' => '真人秀',
 '睾' => '睪',
 '知识产权局' => '知識產權局',
 '知識產權局' => '知識產權署',
@@ -16416,6 +16421,7 @@ public static $zh2HK = [
 '看著者' => '看著者',
 '看著述' => '看著述',
 '看著錄' => '看著錄',
+'真人秀' => '真人騷',
 '眼眶里' => '眼眶裏',
 '眼睛里' => '眼睛裏',
 '眼里' => '眼裏',
@@ -19273,6 +19279,7 @@ public static $zh2CN = [
 '看著稱' => '看著称',
 '看著者' => '看著者',
 '看著述' => '看著述',
+'真人騷' => '真人秀',
 '著業' => '着业',
 '著絲' => '着丝',
 '著麼' => '着么',
index b915faf..578221c 100644 (file)
        "noarticletext": "Mekwatc nama takon atisokesinihikan nta paskickwemakanik.\nKe ki totaman [[Special:Search/{{PAGENAME}}|nantowapaha ohwe icinikatamowin]] kotakahikw paskickwemakanik, \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|paskickwemakan={{FULLPAGENAMEE}}}} nantowapata ka ici  mikowapihikemikak]\nkekotc [{{fullurl:{{FULLPAGENAME}}|tota=orocowata}} ocita paskickwemakan]</span>.",
        "noarticletext-nopermission": "Mekwatc nama takon atisokesinihikan nta paskickwemakanik.\nKe ki totaman[[Special:Search/{{PAGENAME}}|nantowapaha ohwe icinikatamowin ]] kotakahikw paskickwemakanik,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|paskickwemakan={{FULLPAGENAMEE}}}} nantowapaha kotakihi wapatcikaniwoca ohwe ]</span>,nama aric ki mirikwin ohwe kata ocitain paskickwemakan.",
        "editing": "Meckotcita $1",
-       "creating": "$1 Wir tipirowe ka ki ocitatc",
+       "creating": "\"$1\" mekwatc ka orisinahak",
        "editingsection": "Ka ki meckotcitatc $1 (tipanitakiniwok)",
        "templatesused": "{{PLURAL:$1|tapapitcikan ka apatak |tapapitcikan ka apatak}} nta paskickwemakanik:",
        "template-protected": "(nakataweritcikatew)",
index df09dbe..9caecd4 100644 (file)
        "yourrealname": "Сапраўднае імя:",
        "yourlanguage": "Мова інтэрфэйсу:",
        "yourvariant": "Варыянт мовы зьместу:",
-       "prefs-help-variant": "Ð\92Ñ\8bбÑ\80анÑ\8b Ð\92амÑ\96 Ð°Ð»Ñ\8cÑ\84абÑ\8dÑ\82 Ñ\86Ñ\96 Ð°Ñ\80Ñ\82агÑ\80аÑ\84Ñ\96Ñ\8f Ð´Ð»Ñ\8f Ð¿Ð°ÐºÐ°Ð·Ñ\83 Ñ\81Ñ\82аÑ\80онак Ð·Ñ\8cмеÑ\81Ñ\82Ñ\83 {{GRAMMAR:Ñ\80однÑ\8b|{{SITENAME}}}}.",
+       "prefs-help-variant": "Ð\9fеÑ\80аважнÑ\8b Ð²Ð°Ð¼Ñ\96 Ð²Ð°Ñ\80Ñ\8bÑ\8fнÑ\82 Ñ\86Ñ\96 Ð°Ñ\80Ñ\82агÑ\80аÑ\84Ñ\96Ñ\8f Ð´Ð»Ñ\8f Ð¿Ð°ÐºÐ°Ð·Ñ\83 Ñ\81Ñ\82аÑ\80онак Ð·Ñ\8cмеÑ\81Ñ\82Ñ\83 Ð³Ñ\8dÑ\82ай Ð²Ñ\96кÑ\96.",
        "yournick": "Новы подпіс:",
        "prefs-help-signature": "Камэнтары на старонках абмеркаваньняў павінны быць падпісаныя з дапамогай сымбаляў «<nowiki>~~~~</nowiki>», якія будуць ператвораныя ў ваш подпіс і актуальны час.",
        "badsig": "Няслушны неапрацаваны подпіс.\nПраверце HTML-тэгі.",
        "right-siteadmin": "блякаваньне і разблякаваньне базы зьвестак",
        "right-override-export-depth": "экспартаваньне старонак, уключаючы зьвязаныя старонкі з глыбінёй да 5",
        "right-sendemail": "адпраўка электронных лістоў іншым удзельнікам",
+       "right-sendemail-new-users": "Дасылаць лісты электроннай пошты ўдзельнікам без зафіксаваных дзеяньняў",
        "right-managechangetags": "стварэньне і (дэ)актывацыя [[Special:Tags|метак]]",
        "right-applychangetags": "дадаваць [[Special:Tags|меткі]] пры рэдагаваньні",
        "right-changetags": "дадаваць і выдаляць адвольныя [[Special:Tags|меткі]] да асобных вэрсіяў і запісаў у журнале падзеяў",
        "rcfilters-preference-help": "Адкатвае рэдызайн інтэрфэйсу 2017 году і ўсе інструмэнты, дададзеныя з таго часу.",
        "rcfilters-filter-showlinkedfrom-label": "Паказаць зьмены на старонках, на якія спасылаецца",
        "rcfilters-filter-showlinkedfrom-option-label": "Паказаць зьмены старонак, на якія ёсьць спасылкі <strong>З</strong> старонкі",
+       "rcfilters-filter-showlinkedto-label": "Паказаць зьмены старонак, якія спасылаюцца на",
+       "rcfilters-filter-showlinkedto-option-label": "Паказаць зьмены старонак, якія спасылаюцца <strong>НА</strong> старонку",
+       "rcfilters-target-page-placeholder": "Увядзіце назву старонкі",
        "rcnotefrom": "Ніжэй {{PLURAL:$5|знаходзіцца зьмена|знаходзяцца зьмены}} з <strong>$4 $3</strong> (да <strong>$1</strong> на старонку).",
        "rclistfromreset": "Скінуць выбар даты",
        "rclistfrom": "Паказаць зьмены з $2 $3",
index 7e4665b..6dac67e 100644 (file)
        "createacct-benefit-heading": "{{SITENAME}} зроблены такімі ж людзьмі, як вы.",
        "createacct-benefit-body1": "{{PLURAL:$1|праўка|праўкі|правак}}",
        "createacct-benefit-body2": "{{PLURAL:$1|старонка|старонкі|старонак}}",
-       "createacct-benefit-body3": "{{PLURAL:$1|апошні \nўкладальнік|апошнія \nўкладальнікі|апошніх \nукладальнікаў}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|апошні ўкладальнік|апошнія ўкладальнікі|апошніх укладальнікаў}}",
        "badretype": "Уведзеныя паролі не аднолькавыя.",
        "usernameinprogress": "Стварэнне рахунку для гэтага імені ўдзельніка ўжо ў працэсе.\nКалі ласка, пачакайце.",
        "userexists": "Такое імя ўдзельніка ўжо занятае.\nКалі ласка, выбярыце іншае імя.",
index d17556b..f0bc3ad 100644 (file)
        "recentchanges-noresult": "নির্ধারিত সময়ের মধ্যে কোনো পরিবর্তন পাওয়া যায়নি।",
        "recentchanges-timeout": "এই অনুসন্ধানের সময় শেষ হয়েছে। আপনি ভিন্ন অনুসন্ধানের পরামিতি দিয়ে চেষ্টা করতে পারেন।",
        "recentchanges-network": "কারিগরি ত্রুটির কারনে কোন ফলাফল পাওয়া যায়নি । অনুগ্রহকরে এই পাতাটি রিফ্রেশ করে আমার চেষ্টা করুন ।",
+       "recentchanges-notargetpage": "যে পাতার সম্পর্কিত পরিবর্তনগুলি দেখতে চান সেই পাতার নাম উপরে লিখুন।",
        "recentchanges-feed-description": "এই ফিডে উইকিটির সবচেয়ে সাম্প্রতিক পরিবর্তনগুলি অনুসরণ করুন।",
        "recentchanges-label-newpage": "এই সম্পাদনায় একটি নতুন পাতা তৈরি হয়েছে",
        "recentchanges-label-minor": "এটি একটি অনুল্লেখিত সম্পাদনা",
        "rcfilters-watchlist-showupdated": "পরিবর্তন যখন ঘটেছে তখন থেকে যে পাতাগুলি আপনি এখনো দেখেননি তা মোটা চিহ্নসহ <strong>গাঢ়</strong> করে দেখানো হয়েছে।",
        "rcfilters-preference-label": "সাম্প্রতিক পরিবর্তনের উন্নত সংস্করণটি লুকান",
        "rcfilters-preference-help": "২০১৭-এর পুনঃনকশাকৃত ইন্টারফেস এবং তখন পর্যন্ত ও তখন থেকে যোগ করা সকল সরঞ্জামে ফেরত নিবে।",
+       "rcfilters-target-page-placeholder": "একটি পাতার নাম লিখুন",
        "rcnotefrom": "<strong>$2</strong>টা থেকে সংঘটিত পরিবর্তনগুলি (সর্বোচ্চ <strong>$1টি</strong> দেখানো হয়েছে)।",
        "rclistfromreset": "তারিখ নির্বাচন পুনঃস্থাপন করুন",
        "rclistfrom": "$2, $3 তারিখের পর সংঘটিত নতুন পরিবর্তনগুলো দেখাও",
        "recentchangeslinked-feed": "সম্পর্কিত পরিবর্তন",
        "recentchangeslinked-toolbox": "সম্পর্কিত পরিবর্তন",
        "recentchangeslinked-title": "\"$1\"-এর সাথে সম্পর্কিত পরিবর্তনসমূহ",
-       "recentchangeslinked-summary": "à¦\8fà¦\95à¦\9fি à¦¨à¦¿à¦°à§\8dদিষà§\8dà¦\9f à¦ªà¦¾à¦¤à¦¾ (à¦\85থবা à¦¨à¦¿à¦°à§\8dদিষà§\8dà¦\9f à¦¬à¦¿à¦·à¦¯à¦¼à¦¶à§\8dরà§\87ণà§\80তà§\87) à¦¥à§\87à¦\95à§\87 à¦¸à¦\82যà§\81à¦\95à§\8dত à¦\8f à¦ªà¦¾à¦¤à¦¾à¦° à¦¸à¦¾à¦®à§\8dপà§\8dরতিà¦\95 à¦ªà¦°à¦¿à¦¬à¦°à§\8dতনà§\87র à¦¤à¦¾à¦²à¦¿à¦\95া à¦¦à§\87à¦\93য়া à¦¹à¦¯à¦¼à§\87à¦\9bà§\87। à¦\86পনার [[Special:Watchlist|à¦\86পনার à¦¨à¦\9cরতালিà¦\95ায়]] à¦°à¦¾à¦\96া à¦ªà¦¾à¦¤à¦¾à¦\97à§\81লি '''à¦\97াঢ়''' করে দেখানো হয়েছে।",
+       "recentchangeslinked-summary": "à¦\8fà¦\95à¦\9fি à¦ªà¦¾à¦¤à¦¾à¦¯à¦¼ à¦¬à¦¾ à¦ªà¦¾à¦¤à¦¾ à¦¥à§\87à¦\95à§\87 à¦¸à¦\82যà§\81à¦\95à§\8dত à¦ªà¦¾à¦¤à¦¾à¦\97à§\81লির à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦¦à§\87à¦\96তà§\87 à¦\8fà¦\95à¦\9fি à¦ªà¦¾à¦¤à¦¾à¦° à¦¨à¦¾à¦® à¦²à¦¿à¦\96à§\81ন। (à¦\8fà¦\95à¦\9fি à¦¬à¦¿à¦·à¦¯à¦¼à¦¶à§\8dরà§\87ণà§\80র à¦¸à¦¦à¦¸à§\8dযদà§\87র à¦¦à§\87à¦\96তà§\87, à¦¬à¦¿à¦·à¦¯à¦¼à¦¶à§\8dরà§\87ণà§\80:বিষয়শà§\8dরà§\87ণà§\80র à¦¨à¦¾à¦® à¦²à¦¿à¦\96à§\81ন)। à¦\86পনার [[Special:Watchlist|à¦\86পনার à¦¨à¦\9cরতালিà¦\95ায়]] à¦°à¦¾à¦\96া à¦ªà¦¾à¦¤à¦¾à¦\97à§\81লি <strong>à¦\97াঢ়</strong> করে দেখানো হয়েছে।",
        "recentchangeslinked-page": "পাতার নাম:",
        "recentchangeslinked-to": "প্রদত্ত পাতায় সংযুক্ত আছে এমন পাতাগুলোর পরিবর্তন দেখাও",
        "recentchanges-page-added-to-category": "বিষয়শ্রেণীতে [[:$1]] যোগ করা হয়েছে",
        "autosumm-blank": "পাতা খালি করা হয়েছে",
        "autosumm-replace": "পাতাকে '$1' দিয়ে প্রতিস্থাপিত করা হল",
        "autoredircomment": "[[$1]]-এ পুনর্নির্দেশ করা হল",
+       "autosumm-removed-redirect": "[[$1]]-এ করা পুনর্নির্দেশ সরানো হয়েছে",
+       "autosumm-changed-redirect-target": "পুনর্নির্দেশের লক্ষ্য [[$1]] থেকে [[$2]]-এ পরিবর্তিত হয়েছে",
        "autosumm-new": "\"$1\" দিয়ে পাতা তৈরি",
        "autosumm-newblank": "খালি পাতা তৈরি হয়েছে",
        "size-bytes": "$1 {{PLURAL:$1|বাইট}}",
        "tag-mw-contentmodelchange": "বিষয়বস্তুর রূপ পরিবর্তন",
        "tag-mw-contentmodelchange-description": "সম্পাদনা যা একটি পাতার [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel বিষয়বস্তুর রূপ পরিবর্তন] করে",
        "tag-mw-new-redirect": "নতুন পুনর্নির্দেশনা",
+       "tag-mw-new-redirect-description": "সম্পাদনাগুলি যা একটি নতুন পুনর্নির্দেশ তৈরি করে বা একটি পাতাকে একটি পুনর্নির্দেশে পরিবর্তিত করে",
+       "tag-mw-removed-redirect": "পুনর্নির্দেশ সরানো হয়েছে",
+       "tag-mw-removed-redirect-description": "সম্পাদনাগুলি যা ইতিমধ্যে থাকা পুনর্নির্দেশনাকে অ-পুনর্নির্দেশনায় পরিবর্তিত করে",
+       "tag-mw-changed-redirect-target": "পুনর্নির্দেশের লক্ষ্য পরিবর্তিত হয়েছে",
+       "tag-mw-changed-redirect-target-description": "সম্পাদনাগুলি যা একটি পুনর্নির্দেশের লক্ষ্য পরিবর্তন করে",
        "tag-mw-blank": "খালি করা",
        "tag-mw-blank-description": "সেই সম্পাদনাগুলি যা একটি পাতাকে খালি করেছে",
        "tag-mw-replace": "প্রতিস্থাপিত",
+       "tag-mw-replace-description": "সম্পাদনাগুলি যা একটি পাতার বিষয়বস্তুর ৯০ ভাগের বেশী সরিয়ে ফেলে",
        "tag-mw-rollback": "পুনর্বহাল",
+       "tag-mw-rollback-description": "সম্পাদনাগুলি যা রোলব্যাক সংযোগ ব্যবহার করে পূর্বের সম্পাদনায় ফেরত নেয়",
        "tags-title": "ট্যাগসমূহ",
        "tags-intro": "এই পাতায় সফটওয়্যারটি একটি সম্পাদনা চিহ্নিত করার জন্য যে সকল ট্যাগ ব্যবহার করে তার তালিকা ও বর্ণনা রয়েছে।",
        "tags-tag": "ট্যাগ নাম",
        "compare-revision-not-exists": "আপনার কাঙ্ক্ষিত সংস্করণটি নেই।",
        "diff-form": "পার্থক্য",
        "diff-form-oldid": "পুরানো সংস্করণ আইডি (ঐচ্ছিক)",
+       "diff-form-revid": "পার্থক্যের সংস্করণের আইডি",
        "diff-form-submit": "পার্থক্য দেখান",
        "permanentlink": "স্থায়ী সংযোগ",
        "permanentlink-revid": "সংশোধন আইডি",
index f54a7e2..98ce04f 100644 (file)
        "rcfilters-liveupdates-button-title-off": "Mostra els nous canvis al moment",
        "rcfilters-watchlist-markseen-button": "Marca tots els canvis com a vistos",
        "rcfilters-watchlist-edit-watchlist-button": "Editeu la vostra llista de pàgines seguides",
-       "rcfilters-target-page-placeholder": "Selecciona una pàgina",
+       "rcfilters-target-page-placeholder": "Escriviu el nom d’una pàgina",
        "rcnotefrom": "A sota hi ha {{PLURAL:$5|el canvi|els canvis}} a partir de <strong>$3, $4</strong> (fins a <strong>$1</strong>).",
        "rclistfromreset": "Reinicialitza la selecció de data",
        "rclistfrom": "Mostra els canvis nous des de $3, $2",
index 22b466f..2577a30 100644 (file)
        "rcfilters-activefilters": "Жигара литтарш",
        "rcfilters-advancedfilters": "Шуьйра литтарш",
        "rcfilters-limit-title": "Гойту хийцамаш",
+       "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|хийцам}}, $2",
+       "rcfilters-date-popup-title": "Лахарна хен",
        "rcfilters-days-title": "ТӀеххьара денош",
        "rcfilters-hours-title": "ТӀеххьара сахьташ",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|де}}",
        "feedback-submit": "Дахьийта",
        "feedback-thanks-title": "Баркалла!",
        "feedback-useragent": "Браузер:",
-       "searchsuggest-search": "Лахар",
+       "searchsuggest-search": "Лаха {{grammar:prepositional|{{SITENAME}}}}",
        "searchsuggest-containing": "чуьраниг…",
        "api-error-publishfailed": "Чоьхьара гӀалат: серверна хана йолу файл Ӏалашъян цаелира.",
        "api-error-stashfailed": "Чоьхьара гӀалат: серверна хана йолу файл Ӏалашъян цаелира.",
index f216e06..59e0b37 100644 (file)
        "tags-actions-header": "کردەوەکان",
        "tags-active-yes": "بەڵێ",
        "tags-active-no": "نا",
+       "tags-source-extension": "پێناسی نەرمامێر",
        "tags-edit": "دەستکاری",
        "tags-delete": "سڕینەوە",
        "tags-activate": "کارپێکردن",
index e3240db..744059b 100644 (file)
        "recentchanges-label-plusminus": "Zjinaczonô wiôlgòsc starnë (lëczba bajtów)",
        "recentchanges-legend-heading": "<strong>Légenda:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (òbaczë téż [[Special:NewPages|lëstã nowëch strón]])",
+       "rcfilters-filter-humans-label": "Człowiek (nie bòt)",
        "rcnotefrom": "Niżi {{PLURAL:$5|je zjinaka|są zjinaczi}} {{PLURAL:$5|zrobionô|zrobioné}} pò <strong>$3, $4</strong> (nie wicy jak '''$1''' pozycëji).",
        "rclistfrom": "Pòkażë nowé zmianë òd $3 $2",
        "rcshowhideminor": "$1 môłé zmianë",
        "rollbackfailed": "Nie szło copnąc zmianë",
        "alreadyrolled": "Ni mòże copnąc slédny edicëji starnë [[:$1]], chtërny ùsôdzcą je [[User:$2|$2]] ([[User talk:$2|Diskùsëjô]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nchtos jiny ju zeditowôł starnã abò copnął zmianë.\n\nSlédnym ùsódzcą starnë bëł [[User:$3|$3]] ([[User talk:$3|Diskùsëjô]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "revertpage": "Edicje brëkòwnika [[Special:Contributions/$2|$2]] ([[User talk:$2|diskùsjô]]) òstałë òdrzucóné. Aùtorã przëwrócóny wersji je [[User:$1|$1]].",
-       "rollback-success": "Copniãto edicëje{{GENDER:$3|brëkòwnmika|brëkòwniczczi}} $1;\ndoprowpdzono nazôd slédną wersëjã ùsôdzcë {{GENDER:$4|$2}}.",
+       "rollback-success": "Copniãto edicje {{GENDER:$3|brëkòwnika|brëkòwniczczi}} $1;\ndoprowadzóno nazôd slédną wersëjã ùsôdzcë {{GENDER:$4|$2}}.",
        "rollback-success-notify": "Edicje brëkòwnika $1 òstałë òdrzucóné; \nòsta przëwrócónô òstatnô wersjô, aùtorã chtërny je $2. [$3 Pòkażë zjinaczi]",
        "protectlogpage": "Zazychrowóné",
        "protectedarticle": "zazychrowónô [[$1]]",
index b5a99ac..348672e 100644 (file)
@@ -64,7 +64,8 @@
                        "SimmeD",
                        "BoBrandt",
                        "R12ntech",
-                       "Joedalton"
+                       "Joedalton",
+                       "EeveeSylveon"
                ]
        },
        "tog-underline": "Understreg henvisninger:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
        "tag-mw-new-redirect": "Ny omdirigering",
        "tag-mw-removed-redirect": "Fjernede omdirigering",
+       "tag-mw-blank": "Sidetømning",
+       "tag-mw-replace": "Erstattet",
+       "tag-mw-rollback": "Tilbagerulning",
        "tags-title": "Tags",
        "tags-intro": "Denne side oplister de tags som programmet kan mærke en redigering med, og deres betydning.",
        "tags-tag": "Tagnavn",
index ac062e9..1836c65 100644 (file)
        "timezoneregion-indian": "Indischer Ozean",
        "timezoneregion-pacific": "Pazifischer Ozean",
        "allowemail": "Anderen Benutzern erlauben, E-Mails an mich zu senden.",
+       "email-allow-new-users-label": "E-Mails von sehr neuen Benutzern erlauben",
        "email-blacklist-label": "Diesen Benutzern das Versenden von E-Mails an mich verbieten:",
        "prefs-searchoptions": "Suche",
        "prefs-namespaces": "Namensräume",
        "right-siteadmin": "Datenbank sperren und entsperren",
        "right-override-export-depth": "Exportiere Seiten einschließlich verlinkter Seiten bis zu einer Tiefe von 5",
        "right-sendemail": "E-Mails an andere Benutzer senden",
+       "right-sendemail-new-users": "E-Mails an Benutzer ohne Eintrag im Logbuch senden",
        "right-managechangetags": "[[Special:Tags|Markierungen]] erstellen und (de)aktivieren",
        "right-applychangetags": "[[Special:Tags|Markierungen]] zusammen mit den Änderungen anwenden",
        "right-changetags": "Beliebige [[Special:Tags|Markierungen]] zu einzelnen Versionen und Logbucheinträgen hinzufügen und entfernen",
index 6012a8c..829f5b0 100644 (file)
        "youremail": "Διεύθυνση ηλεκτρονικού ταχυδρομείου:",
        "username": "{{GENDER:$1|Όνομα χρήστη}}:",
        "prefs-memberingroups": "{{GENDER:$2|Μέλος}} της {{PLURAL:$1|ομάδας|ομάδων}}:",
-       "group-membership-link-with-expiry": "$1 (έÏ\89Ï\82 $2)",
+       "group-membership-link-with-expiry": "$1 (μέÏ\87Ï\81ι Ï\84ιÏ\82 $3 Ï\83Ï\84ιÏ\82 $4)",
        "prefs-registration": "Χρόνος εγγραφής:",
        "yourrealname": "Πραγματικό όνομα:",
        "yourlanguage": "Γλώσσα:",
        "userrights-nodatabase": "Η βάση δεδομένων $1 δεν υπάρχει ή δεν είναι τοπική.",
        "userrights-changeable-col": "Ομάδες που μπορείτε να αλλάξετε",
        "userrights-unchangeable-col": "Ομάδες που δεν μπορείτε να αλλάξετε",
-       "userrights-expiry-current": "Λήγει στις $1",
+       "userrights-expiry-current": "Λήγει στις $2 στις $3",
        "userrights-expiry-none": "Δεν λήγει",
        "userrights-expiry": "Λήγει:",
        "userrights-expiry-existing": "Υπάρχουσα ώρα λήξης: $3, $2",
index 4b65fbc..5e7c8cb 100644 (file)
        "timezoneregion-indian": "Indian Ocean",
        "timezoneregion-pacific": "Pacific Ocean",
        "allowemail": "Allow other users to email me",
+       "email-allow-new-users-label": "Allow emails from brand-new users",
        "email-blacklist-label": "Prohibit these users from emailing me:",
        "prefs-searchoptions": "Search",
        "prefs-namespaces": "Namespaces",
        "right-siteadmin": "Lock and unlock the database",
        "right-override-export-depth": "Export pages including linked pages up to a depth of 5",
        "right-sendemail": "Send email to other users",
+       "right-sendemail-new-users": "Send email to users with no logged actions",
        "right-managechangetags": "Create and (de)activate [[Special:Tags|tags]]",
        "right-applychangetags": "Apply [[Special:Tags|tags]] along with one's changes",
        "right-changetags": "Add and remove arbitrary [[Special:Tags|tags]] on individual revisions and log entries",
index 7d5692b..d5bda60 100644 (file)
@@ -81,7 +81,7 @@
        "tog-shownumberswatching": "Montri la nombron da priatentaj uzantoj",
        "tog-oldsig": "Via ekzistanta subskribo:",
        "tog-fancysig": "Trakti subskribon kiel vikitekston (sen aŭtomata ligo)",
-       "tog-uselivepreview": "Uzadi tujan antaŭrigardon",
+       "tog-uselivepreview": "Montri antaŭrigardojn sen reŝarĝi la paĝon",
        "tog-forceeditsummary": "Averti min kiam mi konservas malplenan redaktoresumon",
        "tog-watchlisthideown": "Kaŝi miajn redaktojn de la atentaro",
        "tog-watchlisthidebots": "Kaŝi robotajn redaktojn de la atentaro",
index f991e74..969f08a 100644 (file)
        "right-siteadmin": "Bloquear y desbloquear la base de datos",
        "right-override-export-depth": "Exportar páginas, incluidas aquellas enlazadas hasta una profundidad de 5",
        "right-sendemail": "Enviar mensajes de correo a otros usuarios",
+       "right-sendemail-new-users": "Enviar correo electrónico a usuarios sin acciones en el registro",
        "right-managechangetags": "Crear y (des)activar [[Special:Tags|etiquetas]]",
        "right-applychangetags": "Aplicar [[Special:Tags|etiquetas]] junto con los cambios propios",
        "right-changetags": "Agregar y quitar [[Special:Tags|etiquetas]] arbitrarias a revisiones individuales y entradas del registro",
        "recentchanges-noresult": "No hubo cambios que respondan a esos criterios durante el período seleccionado.",
        "recentchanges-timeout": "Se agotó el tiempo de espera de esta búsqueda. Puede que quieras probar con otros parámetros de búsqueda.",
        "recentchanges-network": "No se cargó ningún resultado debido a un problema técnico. Prueba a volver a cargar la página.",
+       "recentchanges-notargetpage": "Escribe el nombre de una página más arriba para ver cambios relativos a esa página.",
        "recentchanges-feed-description": "Realiza un seguimiento de los cambios más recientes en el wiki con este canal.",
        "recentchanges-label-newpage": "Esta edición creó una página",
        "recentchanges-label-minor": "Esta es una edición menor",
        "rcfilters-advancedfilters": "Filtros avanzados",
        "rcfilters-limit-title": "Resultados que mostrar",
        "rcfilters-limit-and-date-label": "{{PLURAL:$1|cambio|$1 cambios}}, $2",
+       "rcfilters-date-popup-title": "Período de tiempo en que buscar",
        "rcfilters-days-title": "Días recientes",
        "rcfilters-hours-title": "Horas recientes",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|día|días}}",
        "rcfilters-quickfilters-placeholder-description": "Para guardar tus ajustes de filtro y reutilizarlos más tarde, pulsa en el icono del marcador en el área de Filtro activo que se encuentra a continuación.",
        "rcfilters-savedqueries-defaultlabel": "Filtros guardados",
        "rcfilters-savedqueries-rename": "Cambiar nombre",
-       "rcfilters-savedqueries-setdefault": "Activar por defecto",
+       "rcfilters-savedqueries-setdefault": "Predeterminar",
        "rcfilters-savedqueries-unsetdefault": "Desmarcar como predeterminado",
        "rcfilters-savedqueries-remove": "Eliminar",
        "rcfilters-savedqueries-new-name-label": "Nombre",
        "rcfilters-watchlist-showupdated": "Los cambios hechos a páginas que no has visitado desde que se efectuaron aparecen en <strong>negrita</strong>, acompañados de marcadores sólidos.",
        "rcfilters-preference-label": "Ocultar la versión mejorada de Cambios recientes",
        "rcfilters-preference-help": "Revierte el rediseño de interfaz de 2017 y desactiva todas las herramientas añadidas desde entonces.",
-       "rcfilters-target-page-placeholder": "Selecciona una página",
+       "rcfilters-target-page-placeholder": "Escribe el nombre de una página",
        "rcnotefrom": "Debajo {{PLURAL:$5|aparece el cambio|aparecen los cambios}} desde <strong>$3, $4</strong> (se muestran hasta <strong>$1</strong>).",
        "rclistfromreset": "Restablecer selección de fecha",
        "rclistfrom": "Mostrar cambios nuevos desde las $2 del $3",
        "recentchangeslinked-feed": "Cambios relacionados",
        "recentchangeslinked-toolbox": "Cambios relacionados",
        "recentchangeslinked-title": "Cambios relacionados con «$1»",
-       "recentchangeslinked-summary": "Esta página es una lista de los últimos cambios en las páginas enlazadas desde una página dada (o en las pertenecientes a una categoría dada). Las páginas que están en tu [[Special:Watchlist|lista de seguimiento]] aparecen en <strong>negrita</strong>.",
+       "recentchangeslinked-summary": "Escribe el nombre de una página para ver cambios realizados en páginas con enlaces entrantes o salientes a esa página. (Para ver lo que pertenece a una categoría, escribe «Categoría:Nombre de la categoría»). Los cambios en páginas de tu [[Special:Watchlist|lista de seguimiento]] aparecen en <strong>negrita</strong>.",
        "recentchangeslinked-page": "Nombre de la página:",
        "recentchangeslinked-to": "Mostrar los cambios en páginas enlazadas con la página seleccionada",
        "recentchanges-page-added-to-category": "[[:$1]] añadida a la categoría",
index 9ea4e26..66a399b 100644 (file)
@@ -74,7 +74,7 @@
        "tog-ccmeonemails": "Beste erabiltzaileei bidaltzen dizkiedan mezuen kopiak niri ere bidali",
        "tog-diffonly": "''Diff''-ak agertzen direnean, orrialdearen edukiera ezkutatu",
        "tog-showhiddencats": "Ikusi kategoria ezkutuak",
-       "tog-norollbackdiff": "Rollback bat egin ondoren ezberdintasunak ez erakutsi",
+       "tog-norollbackdiff": "Lehengoratze bat egin ondoren ezberdintasunak ez erakutsi",
        "tog-useeditwarning": "Abisa nazazu gorde gabeko aldaketak eginez edizio orrialde bat uzten dudanean",
        "tog-prefershttps": "Erabili beti konexio seguru bat sartzerakoan",
        "underline-always": "Beti",
        "delete_and_move_text": "\"[[:$1]]\" helmuga orria jadanik existitzen da. Mugimenduari lekua egiteko ezabatu nahi duzu?",
        "delete_and_move_confirm": "Bai, orrialdea ezabatu",
        "delete_and_move_reason": "[[$1]] mugitzeko ezabatu da",
-       "selfmove": "Izenburua berdina da; ezin da orri bat bere gainera mugitu.",
+       "selfmove": "Izenburua lehengoaren berdina da; ezin da orri bat bere gainera mugitu.",
        "immobile-source-namespace": "\"$1\" motako orrialdeak ezin dira mugitu",
        "immobile-target-namespace": "Orrialdeak ezin dira \"$1\" motara mugitu",
        "immobile-target-namespace-iw": "Interwiki lotura ez da baliagarria orrialdea mugitu ahal izateko.",
index 97ec173..43b246b 100644 (file)
@@ -62,7 +62,8 @@
                        "Yoosef Pooranvary",
                        "DEXi",
                        "Obzord",
-                       "Alp Er Tunqa"
+                       "Alp Er Tunqa",
+                       "Baloch Khan"
                ]
        },
        "tog-underline": "خط کشیدن زیر پیوندها:",
index 53e8ab9..dbc52f6 100644 (file)
        "autosumm-blank": "Ak: Sivu tyhjennettiin",
        "autosumm-replace": "Ak: Sivun sisältö korvattiin sisällöllä ”$1”",
        "autoredircomment": "Ak: Ohjaus sivulle [[$1]]",
+       "autosumm-removed-redirect": "Ak: Poistettu ohjaus sivulle [[$1]]",
+       "autosumm-changed-redirect-target": "Ak: Muutettu ohjauksen kohdesivua: ennen [[$1]], nyt [[$2]]",
        "autosumm-new": "Ak: Uusi sivu: $1",
        "autosumm-newblank": "Ak: Luotiin tyhjä sivu",
        "size-bytes": "$1 {{PLURAL:$1|tavu|tavua}}",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Merkkaus|Merkkaukset}}]]: $2)",
        "tag-mw-contentmodelchange": "sisältömallin muutos",
        "tag-mw-contentmodelchange-description": "Muokkaukset, jotka [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel muuttavat sivun sisältömallia]",
+       "tag-mw-removed-redirect": "Ohjaus on poistettu",
        "tags-title": "Merkkaukset",
        "tags-intro": "Tämä sivu luetteloi ne merkkaukset (''engl.'' tags), joilla ohjelmisto voi merkitä muokkauksia, ja mitä ne tarkoittavat.",
        "tags-tag": "Merkkauksen nimi",
index fbba0da..7625d13 100644 (file)
        "right-siteadmin": "Verrouiller ou déverrouiller la base de données",
        "right-override-export-depth": "Exporter les pages en incluant les pages liées jusqu'à une profondeur de 5 niveaux",
        "right-sendemail": "Envoyer un courriel aux autres utilisateurs",
+       "right-sendemail-new-users": "Envoyer un courriel aux utilisateurs dont le journal ne comporte pas d'enregistrement de connexion",
        "right-managechangetags": "Créer et (dés)activer des [[Special:Tags|balises]]",
        "right-applychangetags": "Appliquer [[Special:Tags|les balises]] avec ses propres modifications",
        "right-changetags": "Ajouter et supprimer de façon arbitraire [[Special:Tags|des balises]] sur des révisions individuelles et des entrées de journal",
        "tag-mw-removed-redirect-description": "Les editions qui vont changer la redirection courante a une non redirection",
        "tag-mw-changed-redirect-target": "La destination de redirection a ete modifiee",
        "tag-mw-changed-redirect-target-description": "Modifications qui modifient la cible d’une redirection",
-       "tag-mw-blank": "Effacement",
+       "tag-mw-blank": "Blanchiment",
        "tag-mw-blank-description": "Modifications qui suppriment le contenu des pages",
        "tag-mw-replace": "Remplacé",
        "tag-mw-replace-description": "Modifications qui enlèvent plus de 90% du contenu des pages",
        "tag-mw-rollback": "Révocation",
-       "tag-mw-rollback-description": "Les editios qui font retourner les editions precedentes a l'aide du  lien de retour(''rollback'')",
+       "tag-mw-rollback-description": "Modifications qui annulent des modifications existantes en utilisant le lien de révocation (''rollback'')",
        "tags-title": "Balises",
        "tags-intro": "Cette page liste les balises que le logiciel peut utiliser pour marquer une modification et la signification de chacune d’elles.",
        "tags-tag": "Nom de la balise",
index 9b055ab..a02c743 100644 (file)
        "tag-filter": "[[Special:Tags|Kääntiaken]] filter:",
        "tag-filter-submit": "Filter",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Kääntiaken|Kääntiakens}}]]: $2)",
+       "tag-mw-new-redirect": "Nei widjerfeerang",
+       "tag-mw-new-redirect-description": "Feranrangen, diar en nei widjerfeerang iinracht.",
        "tags-title": "Kääntiaken",
        "tags-intro": "Det sidj wiset kääntiaken, diar för't bewerkin brükt wurd, an wat jo men.",
        "tags-tag": "Kääntiaken-nööm",
index c33329e..4782947 100644 (file)
        "right-siteadmin": "Pechar e abrir a base de datos",
        "right-override-export-depth": "Exportar páxinas incluíndo as páxinas ligadas ata unha profundidade de 5",
        "right-sendemail": "Enviar correos electrónicos a outros usuarios",
+       "right-sendemail-new-users": "Enviar correo electrónico a usuarios sen accións rexistradas",
        "right-managechangetags": "Crear e (des)activar [[Special:Tags|etiquetas]]",
        "right-applychangetags": "Aplicar [[Special:Tags|etiquetas]] xunto coas modificacións propias",
        "right-changetags": "Engadir e quitar [[Special:Tags|etiquetas]] arbitrarias a revisións individuais e entradas do rexistro",
        "recentchanges-noresult": "Non se produciron cambios que coincidisen con eses criterios durante o período especificado.",
        "recentchanges-timeout": "Esta procura rematou o temo límite de consulta. Tente usar parámetros de procura diferentes.",
        "recentchanges-network": "Debido a un erro técnico, non foi posible cargar ningún resultado. Por favor, probe refrescando a páxina.",
+       "recentchanges-notargetpage": "Introducir un nome de páxina para ver os cambios relacionados con esa páxina.",
        "recentchanges-feed-description": "Nesta fonte de novas pode seguir as modificacións máis recentes feitas no wiki.",
        "recentchanges-label-newpage": "Esta edición creou unha nova páxina",
        "recentchanges-label-minor": "Esta é unha edición pequena",
        "rcfilters-watchlist-showupdated": "Os cambios feitos en páxinas que non visitou dende que se efectuaron aparecen en <strong>grosas</strong>, acompañados de marcadores sólidos.",
        "rcfilters-preference-label": "Ocultar a versión mellorada de cambios recentes",
        "rcfilters-preference-help": "Reverte o redeseño da interface de 2017 e tódalas ferramentas engadidas dende entón.",
+       "rcfilters-filter-showlinkedfrom-label": "Amosar os cambios en páxinas ligadas desde",
+       "rcfilters-filter-showlinkedfrom-option-label": "Amosar os cambios en páxinas ligadas <strong>DESDE</strong> unha páxina",
+       "rcfilters-filter-showlinkedto-label": "Amosar os cambios en páxinas que ligan con",
+       "rcfilters-filter-showlinkedto-option-label": "Amosar os cambios en páxinas que ligan <strong>CON</strong> unha páxina",
+       "rcfilters-target-page-placeholder": "Insire un nome de páxina",
        "rcnotefrom": "A continuación {{PLURAL:$5|móstrase o cambio feito|móstranse os cambios feitos}} desde o <strong>$3</strong> ás <strong>$4</strong> (móstranse <strong>$1</strong> como máximo).",
        "rclistfromreset": "Reinicializar a selección da data",
        "rclistfrom": "Mostrar os cambios novos desde o $3 ás $2",
        "tag-mw-contentmodelchange": "cambio de modelo de contido",
        "tag-mw-contentmodelchange-description": "Edicións que [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel cambian o modelo de contido] dunha páxina",
        "tag-mw-new-redirect": "Nova redirección",
+       "tag-mw-new-redirect-description": "Edicións que crean unha nova redirección ou converten unha páxina nunha redirección",
        "tag-mw-removed-redirect": "Redirección eliminada",
        "tag-mw-removed-redirect-description": "Edicións que cambian unha redirección existente a unha non redirección",
        "tag-mw-changed-redirect-target": "Destino de redireccionamento cambiado",
index e28581c..88cc946 100644 (file)
@@ -12,7 +12,7 @@
                ]
        },
        "tog-previewontop": "𐌰𐌽𐌳𐌷𐌿𐌻𐌴𐌹 𐍆𐌰𐌿𐍂𐌰𐍃𐌹𐌿𐌽 𐍆𐌰𐌿𐍂𐌰 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌰𐍂𐌺𐌰",
-       "tog-previewonfirst": "ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c²𐌴𐌹 𐍆𐌰𐌿𐍂𐌰𐍃𐌹𐌿𐌽 𐌰𐍄 𐍆𐍂𐌿𐌼𐌹𐍃𐍄𐌰 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽",
+       "tog-previewonfirst": "ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c·ð\90\8c¿ð\90\8c»𐌴𐌹 𐍆𐌰𐌿𐍂𐌰𐍃𐌹𐌿𐌽 𐌰𐍄 𐍆𐍂𐌿𐌼𐌹𐍃𐍄𐌰 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽",
        "tog-enotifusertalkpages": "𐍃𐌰𐌽𐌳𐌴𐌹 𐌼𐌹𐌺 𐌴-𐌱𐍉𐌺𐍉𐍃 𐌾𐌰𐌱𐌰𐌹 𐌼𐌴𐌹𐌽𐍃 𐌻𐌰𐌿𐍆𐍃 𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌹𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌰𐌳𐌰",
        "tog-shownumberswatching": "𐌰𐌽𐌳𐌷𐌿𐌻𐌴𐌹 𐍂𐌰𐌸𐌾𐍉𐌽 𐍅𐌹𐍄𐌰𐌽𐌳𐌰𐌹𐌶𐌴 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌴",
        "tog-oldsig": "𐌸𐌴𐌹𐌽𐌰 𐍅𐌹𐍃𐌰𐌽𐌳𐌴𐌹 𐌿𐍆𐌼𐌴𐌻𐌴𐌹𐌽𐍃",
        "searcharticle": "𐌲𐌰𐌲𐌲",
        "history": "𐌻𐌰𐌿𐌱𐌰𐍃𐍀𐌹𐌻𐌻",
        "history_short": "𐍃𐍀𐌹𐌻𐌻",
+       "history_small": "𐍃𐍀𐌹𐌻𐌻",
        "printableversion": "𐌿𐍃𐌼𐌴𐍂𐌴𐌹𐌽𐍃 𐌳𐌿 𐌿𐍃𐌼𐌴𐌻𐌾𐌰𐌽",
        "permalink": "𐌰𐌹𐍅𐌴𐌹𐌽𐌰 𐌲𐌰𐍅𐌹𐍃𐍃",
        "print": "𐌿𐍃𐌼𐌴𐌻𐌴𐌹",
        "toc": "𐌹𐌽𐌽𐌰𐌽𐌰",
        "showtoc": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹",
        "hidetoc": "𐌰𐍆𐍆𐌹𐌻𐌷",
+       "confirmable-confirm": "𐌹𐍃 {{GENDER:$1:𐌸𐌿}} 𐌰𐍂𐌽𐌹𐌱𐌰?",
        "confirmable-yes": "𐌾𐌰",
        "confirmable-no": "𐌽𐌴",
        "site-rss-feed": "$1 RSS 𐍂𐌹𐌽𐌽𐍉",
        "viewsource": "𐍃𐌰𐌹𐍈 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
        "protectedpagetext": "𐍃𐌰 𐌻𐌰𐌿𐍆𐍃 𐌷𐌰𐌱𐌰𐌹𐌸 𐌼𐌿𐌽𐌳, 𐌴𐌹 𐌽𐌹 𐍅𐌰𐌹𐍂𐌸𐌴𐌹𐌽𐌰 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃 𐌸𐌰𐌿 𐌰𐌽𐌸𐌰𐍂𐍉𐍃 𐍅𐌰𐌹𐌷𐍄𐍃 𐌹𐌽 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰",
        "mycustomjsprotected": "𐌽𐌹 𐌷𐌰𐌱𐌰𐌹𐍃 𐌰𐌽𐌳𐌻𐌴𐍄 𐌳𐌿 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌸𐌰𐌽𐌰 JavaScript 𐌻𐌰𐌿𐍆.",
+       "welcomeuser": "𐍅𐌰𐌹𐌻𐌰 𐌰𐌽𐌳𐌰𐌽𐌴𐌼𐍃, $1!",
        "yourname": "𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽𐌰𐌼𐍉:",
        "userlogin-yourname": "𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽𐌰𐌼𐍉",
        "userlogin-yourname-ph": "𐌼𐌴𐌻𐌴𐌹 𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽𐌰𐌼𐍉 𐌸𐌴𐌹𐌽",
index d453d83..0175d2d 100644 (file)
        "timezoneregion-indian": "האוקיינוס ההודי",
        "timezoneregion-pacific": "האוקיינוס השקט",
        "allowemail": "לאפשר למשתמשים אחרים לשלוח לי דואר אלקטרוני",
+       "email-allow-new-users-label": "לאפשר למשתמשים חדשים מאוד לשלוח לי דואר אלקטרוני",
        "email-blacklist-label": "חסימת המשתמשים הבאים משליחת דואר אלקטרוני אליי:",
        "prefs-searchoptions": "חיפוש",
        "prefs-namespaces": "מרחבי שם",
        "right-siteadmin": "נעילה וביטול נעילה של בסיס הנתונים",
        "right-override-export-depth": "ייצוא דפים כולל הדפים המקושרים (עד עומק של 5 דפים)",
        "right-sendemail": "שליחת דואר אלקטרוני למשתמשים אחרים",
+       "right-sendemail-new-users": "שליחת דואר אלקטרוני למשתמשים שלא ביצעו פעולות מתועדות",
        "right-managechangetags": "יצירה, הפעלה וביטול של [[Special:Tags|תגיות]]",
        "right-applychangetags": "החלת [[Special:Tags|תגיות]] יחד עם שינויים",
        "right-changetags": "הוספה והסרה של [[Special:Tags|תגיות]] לגרסאות ולרשומות יומן",
index e244e01..a5722ad 100644 (file)
        "go": "Kreni",
        "searcharticle": "Kreni",
        "history": "Povijest stranice",
-       "history_short": "Povijest",
+       "history_short": "Stare izmjene",
        "history_small": "povijest",
        "updatedmarker": "obnovljeno od posljednjeg posjeta",
        "printableversion": "Inačica za ispis",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Oznaka|Oznake|Oznaka}}]]: $2)",
        "tag-mw-contentmodelchange": "promjena modela sadržaja",
        "tag-mw-contentmodelchange-description": "Uređivanja koja [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel mijenjanju model sadržaja] stranice",
+       "tag-mw-new-redirect": "novo preusmjeravanje",
+       "tag-mw-removed-redirect": "uklonjeno preusmjeravanje",
+       "tag-mw-changed-redirect-target": "promijenjeno preusmjeravanje",
+       "tag-mw-changed-redirect-target-description": "Uređivanja koja mijenjaju odredište preusmjeravanja",
+       "tag-mw-blank": "bjelidba",
+       "tag-mw-blank-description": "Uređivanje kojim je načinjena bjelidba stranice",
+       "tag-mw-replace": "preko 90 % zamijenjen tekst",
        "tag-mw-rollback": "brzo uklanjanje",
        "tags-title": "Oznake",
        "tags-intro": "Ova stranica sadržava popis oznaka s kojima programska oprema može označivati promjene te njihova značenja.",
index 5d1ad94..485fca4 100644 (file)
        "pageinfo-header-restrictions": "Էջի պաշտպանումներ",
        "pageinfo-header-properties": "Էջի հատկանիշեր",
        "pageinfo-display-title": "Վերնագիր",
-       "pageinfo-default-sort": "Լռելայն տեսակավորման բանալի",
+       "pageinfo-default-sort": "Ô¼Õ¼Õ¥Õ¬ÕµÕ¡ÕµÕ¶ Õ¿Õ¥Õ½Õ¡Õ¯Õ¡Õ¾Õ¸Ö\80Õ´Õ¡Õ¶ Õ¢Õ¡Õ¶Õ¡Õ¬Õ«",
        "pageinfo-length": "Ծավալ (բայթերով)",
        "pageinfo-article-id": "Էջի N",
        "pageinfo-language": "Բովանդակության լեզու",
        "pageinfo-lasttime": "Վերջին խմբագրման ամսաթիվ",
        "pageinfo-edits": "Խմբագրումների քանակ",
        "pageinfo-authors": "Առանձին հեղինակների քանակ",
-       "pageinfo-recent-edits": "Վերջին խմբագրումներ քանակ (վերջին $1)",
+       "pageinfo-recent-edits": "Վերջին խմբագրումների քանակ (վերջին $1)",
        "pageinfo-recent-authors": "Վերջին առանձին հեղինակների քանակ",
        "pageinfo-magic-words": "Մոգական {{PLURAL:$1|բառ|բառեր}} ($1)",
        "pageinfo-hidden-categories": "Թաքնված {{PLURAL:$1|կաղապար|կաղապարներ}} ($1)",
index 8f07597..4697462 100644 (file)
        "right-siteadmin": "Blocar e disblocar le base de datos",
        "right-override-export-depth": "Exportar paginas includente paginas ligate usque a un profunditate de 5",
        "right-sendemail": "Inviar e-mail a altere usatores",
+       "right-sendemail-new-users": "Inviar e-mail a usatores sin actiones in registro",
        "right-managechangetags": "Crear e (de)activar [[Special:Tags|etiquettas]]",
        "right-applychangetags": "Applicar [[Special:Tags|etiquettas]] al proprie modificationes",
        "right-changetags": "Adder e remover qualcunque [[Special:Tags|etiquettas]] sur individual versiones e entratas de registro",
index cb5cee0..ee3352c 100644 (file)
        "rcfilters-watchlist-showupdated": "Perubahan di halaman-halaman yang belum Anda kunjungi sejak perubahan terjadi ditampilkan dalam <strong>huruf terbal</strong>, dan tanda titik tebal di daftar.",
        "rcfilters-preference-label": "Sembunyikan versi terkini dari Perubahan Terbaru",
        "rcfilters-preference-help": "Kembalikan perubahan antarmuka 2017 dan semua peralatan yang ditambahkan sejak saat itu.",
+       "rcfilters-target-page-placeholder": "Masukkan nama halaman",
        "rcnotefrom": "Di bawah ini adalah {{PLURAL:$5|perubahan}} sejak <strong>$3, $4</strong> (ditampilkan sampai <strong>$1</strong> perubahan).",
        "rclistfromreset": "Atur ulang pilihan tanggal",
        "rclistfrom": "Perlihatkan perubahan terbaru sejak $3 $2",
index b34511c..cc616d4 100644 (file)
        "rcfilters-group-results-by-page": "Flokka niðurstöður eftir síðum",
        "rcfilters-activefilters": "Virkar síur",
        "rcfilters-advancedfilters": "Ítarlegar síur",
-       "rcfilters-limit-title": "Breytingar sem á að sýna",
+       "rcfilters-limit-title": "Breytingar sem á að birta",
+       "rcfilters-date-popup-title": "Tímarammi sem á að leita í",
        "rcfilters-days-title": "Síðustu daga",
        "rcfilters-hours-title": "Síðustu klukkutíma",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|dag|daga}}",
index bf7729a..e5ae975 100644 (file)
        "rcfilters-watchlist-showupdated": "Le modifiche alle pagine che non hai ancora visitato da quando le modifiche sono avvenute, vengono evidenziate in <strong>grassetto</strong> e con dei pallini pieni.",
        "rcfilters-preference-label": "Nascondi la versione migliorata delle ultime modifiche",
        "rcfilters-preference-help": "Ripristina la riprogettazione dell'interfaccia 2017 e tutti gli strumenti aggiunti allora e da allora.",
+       "rcfilters-filter-showlinkedfrom-label": "Mostra le modifiche alle pagine collegate da",
+       "rcfilters-filter-showlinkedfrom-option-label": "Mostra le modifiche alle pagine collegate <strong>DA</strong> una pagina",
+       "rcfilters-filter-showlinkedto-label": "Mostra le modifiche alle pagine collegate a",
+       "rcfilters-filter-showlinkedto-option-label": "Mostra le modifiche alle pagine collegate <strong>A</strong> una pagina",
        "rcnotefrom": "Di seguito {{PLURAL:$5|è elencata la modifica apportata|sono elencate le modifiche apportate}} a partire da <strong>$3, $4</strong> (mostrate fino a <strong>$1</strong>).",
        "rclistfromreset": "Reimposta la selezione della data",
        "rclistfrom": "Mostra le nuove modifiche a partire daː $2, $3",
index 5862cf3..e7298a7 100644 (file)
        "timezoneregion-indian": "インド洋",
        "timezoneregion-pacific": "太平洋",
        "allowemail": "他の利用者からのメールを受け取る",
+       "email-blacklist-label": "次のユーザーからのメールを受け取らない:",
        "prefs-searchoptions": "検索",
        "prefs-namespaces": "名前空間",
        "default": "既定",
        "rcfilters-watchlist-edit-watchlist-button": "ウォッチリストを編集",
        "rcfilters-watchlist-showupdated": "最終訪問以降に変更されたページは、塗りつぶされた丸印と一緒に、<strong>太字</strong>で表示されます。",
        "rcfilters-preference-label": "最近の更新の改善版を隠す",
+       "rcfilters-preference-help": "2017年のインターフェース更新、当時追加したや以来の新しいツールの使用を断る。",
        "rcnotefrom": "以下は<strong>$3 $4</strong>以降の{{PLURAL:$5|更新です}} (最大 <strong>$1</strong> 件)。",
        "rclistfromreset": "日時指定をリセット",
        "rclistfrom": "$3の$2以降の更新を表示する",
index 15cc710..1915f47 100644 (file)
        "rcfilters-activefilters": "აქტიური ფილტრები",
        "rcfilters-advancedfilters": "გაფართოებული ფილტრები",
        "rcfilters-limit-title": "ცვლილელების ნახვა",
+       "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|ცვლილება|ცვლილება|ცვლილება}}, $2",
+       "rcfilters-date-popup-title": "საძიებო დროის მონაკვეთი",
        "rcfilters-days-title": "უკანასკნელი დღეები",
        "rcfilters-hours-title": "ბოლო საათები",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|დღე|დღე}}",
index 308fed8..6b76645 100644 (file)
        "sp-contributions-newonly": "새 글인 기여만 보기",
        "sp-contributions-hideminor": "사소한 편집 숨기기",
        "sp-contributions-submit": "검색",
-       "sp-contributions-explain": "",
        "sp-contributions-outofrange": "결과를 표시할 수 없습니다. 요청된 IP 대역은 CIDR /$1 한도보다 더 큽니다.",
        "whatlinkshere": "여기를 가리키는 문서",
        "whatlinkshere-title": "\"$1\" 문서를 가리키는 문서 목록",
index adb240b..1865252 100644 (file)
        "botpasswords-insert-failed": "De Botnumm \"$1\" konnt net dobäigesat ginn. Gouf e schonn derbäigesat?",
        "botpasswords-update-failed": "Den Numm vum Bot \"$1\" konnt net aktualiséiert ginn. Gouf e geläscht?",
        "botpasswords-created-title": "Botpasswuert ugeluecht",
-       "botpasswords-created-body": "D'Botpasswuert fir de Bot-Numm \"$1\" vum Benotzer ''$2'' gouf ugeluecht.",
+       "botpasswords-created-body": "D'Botpasswuert fir de Bot-Numm \"$1\" vum {{GENDER:$2|Benotzer}} ''$2'' gouf ugeluecht.",
        "botpasswords-updated-title": "Botpasswuert aktualiséiert",
-       "botpasswords-updated-body": "D'Botpasswuert fir de Bot-Numm \"$1\" vum Benotzer ''$2'' gouf aktualiséiert.",
+       "botpasswords-updated-body": "D'Botpasswuert fir de Bot-Numm \"$1\" vum {{GENDER:$2|Benotzer}} ''$2'' gouf aktualiséiert.",
        "botpasswords-deleted-title": "Botpasswuert geläscht",
-       "botpasswords-deleted-body": "D'Botpasswuert fir de Bot-Numm \"$1\" vum Benotzer ''$2'' gouf geläscht.",
+       "botpasswords-deleted-body": "D'Botpasswuert fir de Bot-Numm \"$1\" vum {{GENDER:$2|Benotzer}} ''$2'' gouf geläscht.",
        "botpasswords-newpassword": "Dat neit Passwuert fir sech mat <strong>$1</strong> anzeloggen ass <strong>$2</strong>.\n<em>Versuergt dat fir sech spéider dorop ze referéieren.</em><br />(Fir al Botten déi verlaangen datt de Login-Numm d'selwecht ass wéi den spéidere Benotzernumm, kënnt Dir och <strong>$3</strong> als Benotzernumm benotzten a(n) <strong>$4</strong> als Passwuert.)",
        "botpasswords-no-provider": "BotPasswordsSessionProvider ass net disponibel.",
        "botpasswords-not-exist": "De Benotzer \"$1\" huet kee Botpasswuert mam Numm \"$2\".",
        "right-siteadmin": "Datebank spären an d'Spär ophiewen",
        "right-override-export-depth": "Säiten exportéieren inklusiv de verlinkte Säite bis zu enger Déift vu 5",
        "right-sendemail": "Anere Benotzer E-Maile schécken",
+       "right-sendemail-new-users": "E-Mailen u Benotzer ouni geloggt Aktioune schécken",
        "grant-group-page-interaction": "Mat Säiten interagéieren",
        "grant-group-watchlist-interaction": "Mat Ärer Iwwerwaachungslëscht interagéieren",
        "grant-group-email": "E-Mail schécken",
        "rcfilters-watchlist-edit-watchlist-button": "Ännert Är Lëscht vun iwwerwaachte Säiten",
        "rcfilters-watchlist-showupdated": "Ännerungen op Säiten déi Dir net besicht hutt zanter d'Ännerunge gemaach goufen si <strong>fett</strong> geschriwwen.",
        "rcfilters-preference-label": "Déi verbessert Versioun vun de rezenten Ännerunge verstoppen",
+       "rcfilters-target-page-placeholder": "Gitt en Numm vun enger Säit an",
        "rcnotefrom": "Hei drënner {{PLURAL:$5|gëtt d'Ännerung|ginn d'Ännerungen}} zanter <strong>$3, $4</strong> (maximal <strong>$1</strong> Ännerunge gi gewisen).",
        "rclistfromreset": "Eraussiche vum Datum zrécksetzen",
        "rclistfrom": "Nei Ännerunge vum $3 $2 u weisen",
index aa348f5..e07c525 100644 (file)
        "logouttext": "'''Rika uwis metu log sekang sistem.'''\n\nDigatekna ya, cokan ana kaca sing esih terus nidokna nek rika esih mlebu log nganti Rika mbusak singgahan nang panjelajah web-e Rika.",
        "cannotlogoutnow-title": "Ora teyeng metu siki",
        "cannotlogoutnow-text": "Metu ora dadi angger nganggo:$1",
-       "welcomeuser": "Sugeng teka,$1",
+       "welcomeuser": "Sugeng rawuh,$1",
        "welcomecreation-msg": "Akune Rika uwis digawe. \nAja kelalen ngowaih [[Special:Preferences|preferensi {{SITENAME}}]] Rika.",
        "yourname": "Jeneng panganggo:",
        "userlogin-yourname": "Jenengpanganggo",
index 0a384d4..ae28e8d 100644 (file)
        "right-siteadmin": "Заклучување и отклучување на базата на податоци",
        "right-override-export-depth": "Извезување на страници вклучувајќи поврзани страници со продорност до 5",
        "right-sendemail": "Испраќање на е-пошта до други корисници",
+       "right-sendemail-new-users": "Испраќање е-пошта на корисници без заведени дејства",
        "right-managechangetags": "Создавање и (де)активирање на [[Special:Tags|ознаки]]",
        "right-applychangetags": "Задавање на [[Special:Tags|ознаки]] заедно со направените измени",
        "right-changetags": "Додавате и отстранување на произволни [[Special:Tags|ознаки]] во поединечни преработки и дневнички записи",
index 1a28f2f..e944f1b 100644 (file)
        "userrights-user-editname": "सदस्य नाव टाका:",
        "editusergroup": "सदस्याचे गट संपादित करा",
        "editinguser": "या {{GENDER:$1|सदस्या}}चे सदस्य-अधिकारात बदल केला जात आहे<strong>[[User:$1|$1]]</strong> $2",
-       "userrights-editusergroup": "सदस्याचे गट संपादित करा",
+       "userrights-editusergroup": "{{GENDER:$1|सदस्य}} गट संपादित करा",
        "saveusergroups": "सदस्य गट जतन करा",
        "userrights-groupsmember": "याचा सभासद:",
        "userrights-groupsmember-auto": "याचा अव्यक्त सदस्य:",
        "api-error-emptypage": "नवीन आणि मोकळी पाने बनवायला परवानगी नाही",
        "api-error-publishfailed": "अंतर्गत त्रुटी:विदादात्यास, या तात्पुरत्या संचिकेच्या प्रकाशनास अपयश आले.",
        "api-error-stashfailed": "इन्तरिक त्रुटी : विदादाता तात्पुरत्या स्वरूपाच्या संचिका जमा करण्यात अयशस्वी",
-       "api-error-unknown-warning": "अज्ञात इशारा : $1",
+       "api-error-unknown-warning": "अज्ञात इशारा : \"$1\"",
        "api-error-unknownerror": "अज्ञात चूक $1",
        "duration-seconds": "$1 {{PLURAL:$1|सेकंदापूर्वी|सेकंदांपूर्वी}}",
        "duration-minutes": "$1 {{PLURAL:$1|मिनिटापूर्वी|मिनिटांपूर्वी}}",
        "pagelang-submit": "सादर करा",
        "right-pagelang": "पानाची भाषा बदला",
        "action-pagelang": "पानाची असलेली भाषा बदला",
-       "log-name-pagelang": "भाषा à¤¬à¤¦à¤² à¤¨à¥\8bà¤\82दवहà¥\80",
+       "log-name-pagelang": "भाषा बदल नोंदी",
        "log-description-pagelang": "या पानातील भाषाबदलाच्या नोंदी आहेत.",
        "logentry-pagelang-pagelang": "$1 ने $3 करीता पानाची भाषा $4 वरुन $5 ला {{GENDER:$2|बदलली}}",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (सक्षम केला)",
index 3adb9fb..9bed034 100644 (file)
        "searcharticle": "Bota",
        "history": "Stórico de la páigina",
        "history_short": "Stórico",
+       "history_small": "stórico",
        "printableversion": "Berson pa ampremir",
        "permalink": "Lhigaçon pa siempre",
        "print": "Ampremir",
        "createacct-emailoptional": "Andereço de correio eiletrónico (oupcional)",
        "createacct-email-ph": "Poner l sou andereço de correio eiletrónico",
        "createaccountmail": "Outelizar ua palabra-chabe aleatória i temporária i ambiar eilha pa l'andereço de correio eiletrónico specificado",
+       "createacct-reason": "Rezon",
        "createacct-submit": "Crie la sue cuonta",
+       "createacct-another-submit": "Criar cuonta",
        "createacct-benefit-heading": "{{SITENAME}} ye feita por pessonas cumo bós.",
        "createacct-benefit-body1": "{{PLURAL:$1|eidiçon|eidiçones}}",
        "createacct-benefit-body2": "{{PLURAL:$1|páigina|páiginas}}",
        "nosuchuser": "Num eisiste nanhun outelizador cul nome \"$1\".\nLs nomes de outelizador son defrentes an lhetra grande ó pequeinha.\nBei cumo screbiste, ó [[Special:CreateAccount|cria ua nuoba cuonta]].",
        "nosuchusershort": "Nun eisiste nanhun outelizador cul nome \"$1\".\nBei se l screbiste bien.",
        "nouserspecified": "Tenes que dezir un nome de outelizador.",
-       "wrongpassword": "La palabra chabe ye ambálida.\nPor fabor, spurmenta outra beç.",
+       "wrongpassword": "L nome de outelizador ó la palabra chabe son ambálidos.\nPor fabor, spurmenta outra beç.",
        "wrongpasswordempty": "Tenes que poner la palabra chabe.\nPor fabor, spurmenta outra beç.",
        "passwordtooshort": "La tue palabra-chabe debe de tener pul menos $1 {{PLURAL:$1|carátele|caráteles}}.",
        "password-name-match": "La tue palabra-chabe ten que ser defrente de l tou nome de outelizador.",
        "resetpass_header": "Demudar palabra-chabe de la cuonta",
        "retypenew": "Pon outra beç la nuoba palabra chabe:",
        "botpasswords": "Palabras-chabe de robós",
+       "botpasswords-label-delete": "Botar fuora",
        "botpasswords-label-resetpassword": "Redefenir palabra-chabe",
        "resetpass-submit-loggedin": "Demudar palabra-chabe",
+       "resetpass-submit-cancel": "Çfazer",
        "passwordreset": "Redefenir palabra-chabe",
+       "passwordreset-username": "Nome de outelizador(a):",
+       "passwordreset-domain": "Domínio:",
+       "passwordreset-email": "Morada de correio eiletrónico:",
        "changeemail": "Altarar ó zarredar l andereço de correio eiletrónico",
+       "changeemail-none": "(nanhun)",
        "resettokens": "Redefenir chabes",
        "bold_sample": "Testo a negrito",
        "bold_tip": "Testo a negrito",
        "noarticletext-nopermission": "Ne l momiento, nun hai cuntenido nesta páigina.\nPuode [[Special:Search/{{PAGENAME}}|percurar l títalo desta páigina]] noutras páiginas, ó <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} percurar registros relacionados]</span>, mas nun ten permisson pa criar esta páigina.",
        "userpage-userdoesnotexist-view": "La cuonta de outelizador \"$1\" nun stá registrada.",
        "clearyourcache": "<strong>Ousserbaçon:</strong> Açpuis grabar, terá de lhimpar la mimória ''cache'' de l sou nabegador pa ber las altaraçones.\n* <strong>Firefox / Safari:</strong> Pressione <em>Shift</em> anquanto clica an <em>Recargar</em>, ó pressione <em>Ctrl-F5</em> ó <em>Ctrl-R</em> (<em>⌘-R</em> ne l Mac)\n* <strong>Google Chrome:</strong> Pressione <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> ne l Mac)\n* <strong>Internet Explorer:</strong> Pressione <em>Ctrl</em> anquanto clica an <em>Recargar</em>, ó pressione <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Nabegar pa <em>Menu → Cunfiguraçones</em> (<em>Opera → Perfréncias</em> ne l Mac) i, an seguida, <em>Pribacidade i sigurança → Lhimpar dados de nabegaçon → Eimaiges i fexeiros an cache</em>.",
+       "updated": "(Atualizado)",
        "note": "'''Abiso:'''",
        "previewnote": "<strong>Lhembra-te qu'esto ye solo ua amostra.</strong>\nLas altaraçones inda nun fúrun grabadas!",
        "continue-editing": "Nabegar pa la ária d'eidiçon",
        "history-feed-description": "Stórico de eidiçones pa esta páigina nesta wiki",
        "history-feed-item-nocomment": "$1 a $2",
        "rev-delundel": "amostrar/scunder",
+       "revdelete-show-file-submit": "Si",
        "revdel-restore": "Demudar besiblidade",
        "revdelete-edit-reasonlist": "Eiditar rezones de botar fuora",
        "mergehistory": "Fundir ls stóricos de las páiginas",
        "group-bot": "Rubós",
        "group-sysop": "Admenistradores",
        "group-bureaucrat": "Burocratas",
+       "group-all": "(todos)",
+       "group-user-member": "{{GENDER:$1|outelizador|outelizadora}}",
        "group-bot-member": "{{GENDER:$1|rubó}}",
        "group-sysop-member": "{{GENDER:$1|admenistrador|admenistradora|admenistrador(a)}}",
        "group-bureaucrat-member": "{{GENDER:$1|burocrata}}",
        "action-createaccount": "criar esta cunta de outelizador",
        "action-move": "arrastrar esta páigina",
        "action-movefile": "arrastrar este fexeiro",
+       "action-upload": "cargar este fexeiro",
        "action-delete": "apagar esta páigina",
+       "action-deleterevision": "botar fuora rebisones",
        "action-purge": "recargar esta páigina",
        "nchanges": "$1 {{PLURAL:$1|altaraçon|altaraçones}}",
        "enhancedrc-history": "stórico",
        "recentchanges-legend-heading": "<strong>Lhegenda:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ber tamien la [[Special:NewPages|lhista de páiginas nuobas]])",
        "recentchanges-submit": "Amostrar",
+       "rcfilters-savedqueries-rename": "Altarar l nome",
+       "rcfilters-savedqueries-remove": "Botar fuora",
+       "rcfilters-savedqueries-new-name-label": "Nome",
+       "rcfilters-savedqueries-cancel-label": "Çfazer",
        "rcfilters-filtergroup-watchlist": "Páiginas begiadas",
        "rcfilters-watchlist-markseen-button": "Marcar todas las altaraçones cumo yá bistas",
        "rcnotefrom": "Ambaixo {{PLURAL:$5|stá la altaraçon feita|stan las alteraçones feitas}} zde <strong>$2</strong> (amostradas até <strong>$1</strong>).",
index 9775537..6bd8f38 100644 (file)
        "logout": "ထွက်ရန်",
        "userlogout": "ထွက်ရန်",
        "notloggedin": "log in ဝင်မထားပါ",
-       "userlogin-noaccount": "အကောင့် မရှိဘူးလား?",
+       "userlogin-noaccount": "အကောင့် မရှိဘူးလား",
        "userlogin-joinproject": "{{SITENAME}} ကို ချိတ်ဆက်ရန်",
        "createaccount": "အကောင့် ဖန်တီးရန်",
-       "userlogin-resetpassword-link": "စကားဝှက် မေ့နေသလား?",
+       "userlogin-resetpassword-link": "စကားဝှက် မေ့နေသလား",
        "userlogin-helplink2": "log in အကူအညီ",
        "userlogin-loggedin": "သင်သည် {{GENDER:$1|$1}} အနေဖြင့် လော့အင်ဝင်ထားပြီး ဖြစ်သည်။ အခြားအသုံးပြုသူ အနေဖြင့် ဝင်ရောက်ရန် အောက်ပါပုံစံကို အသုံးပြုပါ။",
        "userlogin-createanother": "အခြားအကောင့် ဖန်တီးရန်",
index ac9bf0d..5aa5b97 100644 (file)
        "right-siteadmin": "Låse og låse opp databasen",
        "right-override-export-depth": "Eksporter sider inkludert lenkede sider til en dypde på 5",
        "right-sendemail": "Sende e-post til andre brukere",
+       "right-sendemail-new-users": "Sende epost til brukere som ikke har loggførte handlinger",
        "right-managechangetags": "Opprette og (de)aktivere [[Special:Tags|tagger]]",
        "right-applychangetags": "Legge til [[Special:Tags|tagger]] sammen med ens endringer",
        "right-changetags": "Legge til og fjerne vilkårlige [[Special:Tags|tagger]] på individuelle revisjoner og loggoppføringer",
index 70717dd..268ff30 100644 (file)
        "uploadnewversion-linktext": "यो फाइलको नयाँ संस्करण उर्ध्वभरण गर्नुहोस् ।",
        "shared-repo-from": " $1 बाट",
        "shared-repo": "एल साझा भण्डार",
-       "shared-repo-name-wikimediacommons": "विà¤\95िमà¥\80डिया कमन्स",
+       "shared-repo-name-wikimediacommons": "विà¤\95िमिडिया कमन्स",
        "upload-disallowed-here": "तपाईंले यो फाइल अधिलेखन गर्न सक्नुहुन्न ।",
        "filerevert": "पूर्वस्थिति $1 मा फर्काउने",
        "filerevert-legend": " फाइल पूर्वस्थितीमा फर्काउने",
index 7eea04a..cf9db33 100644 (file)
        "right-siteadmin": "De database blokkeren en weer vrijgeven",
        "right-override-export-depth": "Pagina's exporteren inclusief pagina's waarnaar verwezen wordt tot een diepte van vijf",
        "right-sendemail": "E-mail versturen aan andere gebruikers",
+       "right-sendemail-new-users": "Emails versturen naar gebruikers zonder geregistreerde handelingen",
        "right-managechangetags": "[[Special:Tags|Labels]] aanmaken en (de)activeren",
        "right-applychangetags": "[[Special:Tags|Labels]] aan bewerkingen toewijzen",
        "right-changetags": "Willekeurige [[Special:Tags|labels]] toevoegen aan en verwijderen van versies en logboekregels",
        "uploadstash-file-not-found-no-thumb": "Kon geen miniatuur verkrijgen.",
        "uploadstash-file-not-found-no-object": "Kan geen lokaal bestandsobject voor het miniatuur aanmaken.",
        "uploadstash-file-not-found-no-remote-thumb": "Ophalen van het miniatuur mislukt: $1\nurl = $2",
+       "uploadstash-file-not-found-missing-content-type": "content-type koptekst ontbreekt.",
        "uploadstash-file-not-found-not-exists": "Kan het pad niet vinden, of het bestand is geen platte tekst.",
        "uploadstash-file-too-large": "Kan geen bestand versturen dat groter is dan $1 bytes.",
        "uploadstash-not-logged-in": "Er is geen gebruiker aangemeld, bestanden moeten van een gebruiker zijn.",
index 63c77c9..fd101a9 100644 (file)
        "tag-mw-changed-redirect-target-description": "Endringar som endrar målet til ei omdirigering",
        "tag-mw-blank-description": "Endringar som tømmer ei side",
        "tag-mw-replace-description": "Endringar som fjernar meir enn 90&nbsp;% av innhaldet på ei side",
+       "tag-mw-rollback": "Attenderulling",
        "tags-title": "Merke",
        "tags-intro": "Denne sida listar opp merka som programvara kan merkja ei endring med, og kva desse tyder.",
        "tags-tag": "Merkenamn",
index 448eb52..a575d20 100644 (file)
@@ -4,6 +4,7 @@
                        "Gnangarra"
                ]
        },
+       "underline-never": "Warra",
        "sunday": "Sunday",
        "monday": "Monday",
        "tuesday": "Tuesday",
@@ -54,6 +55,9 @@
        "oct": "Oct",
        "nov": "Nov",
        "dec": "Dec",
+       "january-date": "January $1",
+       "february-date": "February $1",
+       "march-date": "March $1",
        "pagecategories": "{{PLURAL:$1|Warrangan}}",
        "category_header": "Warrangan bibol $1",
        "subcategories": "Warrangang",
@@ -69,6 +73,7 @@
        "about": "Nartj nitja",
        "newwindow": "(yalgaranan yyinang window)",
        "cancel": "nanap",
+       "mypage": "Bibol",
        "mytalk": "Waarnk",
        "navigation": "waardiny biirt",
        "and": "&#32;wer",
index e08558d..dd45a21 100644 (file)
        "botpasswords-insert-failed": "Nie udało się dodać robota o nazwie \"$1\". Czy był już wcześniej dodany?",
        "botpasswords-update-failed": "Nie udało się zmienić robota o nazwie \"$1\". Czy został usunięty?",
        "botpasswords-created-title": "Hasło bota stworzone",
-       "botpasswords-created-body": "Hasło bota \"$1\" użytkownika \"$2\" zostało utworzone.",
+       "botpasswords-created-body": "Hasło bota \"$1\" {{GENDER:$2|użytkownika|użytkowniczki}} \"$2\" zostało utworzone.",
        "botpasswords-updated-title": "Hasło bota zaktualizowane",
-       "botpasswords-updated-body": "Hasło bota \"$1\" użytkownika \"$2\" zostało zaktualizowane.",
+       "botpasswords-updated-body": "Hasło bota \"$1\" {{GENDER:$2|użytkownika|użytkowniczki}} \"$2\" zostało zaktualizowane.",
        "botpasswords-deleted-title": "Hasło bota usunięte",
-       "botpasswords-deleted-body": "Hasło bota \"$1\" użytkownika \"$2\" zostało usunięte.",
+       "botpasswords-deleted-body": "Hasło bota \"$1\" {{GENDER:$2|użytkownika|użytkowniczki}} \"$2\" zostało usunięte.",
        "botpasswords-newpassword": "Nowe hasło do zalogowania się przez <strong>$1</strong> to <strong>$2</strong>. <em>Proszę je zapisać w celu wykorzystania w przyszłości.</em> <br> (Dla starszych botów, które wymagają loginu takiego samego jak ewentualna nazwa użytkownika można użyć <strong>$3</strong> jako nazwę użytkownika i <strong>$4</strong> jako hasło.)",
        "botpasswords-no-provider": "BotPasswordsSessionProvider nie jest dostępne.",
        "botpasswords-restriction-failed": "Logowanie nie powiodło się z powodu ograniczeń na hasło bota.",
        "recentchanges-summary": "Ta strona przedstawia historię ostatnich zmian w tej wiki.",
        "recentchanges-noresult": "Brak zmian w wybranym okresie spełniających twoje kryteria.",
        "recentchanges-network": "Z powodu błędu technicznego nie można załadować żadnych wyników. Spróbuj odświeżyć stronę.",
+       "recentchanges-notargetpage": "Wprowadź powyżej nazwę strony, aby zobaczy zmiany związane z tą stroną.",
        "recentchanges-feed-description": "Obserwuj najświeższe zmiany w tej wiki.",
        "recentchanges-label-newpage": "W tej edycji utworzono nową stronę",
        "recentchanges-label-minor": "To jest drobna zmiana",
        "rcfilters-group-results-by-page": "Grupuj wyniki według stron",
        "rcfilters-activefilters": "Aktywne filtry",
        "rcfilters-advancedfilters": "Zaawansowane filtry",
-       "rcfilters-limit-title": "Zmian do pokazania",
+       "rcfilters-limit-title": "Wyników do pokazania",
        "rcfilters-limit-and-date-label": "{{PLURAL:$1|zmiana|$1 zmiany|$1 zmian}}, $2",
+       "rcfilters-date-popup-title": "Przeszukiwany okres",
        "rcfilters-days-title": "Ostatnich dni",
        "rcfilters-hours-title": "Ostatnich godzin",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|dzień|dni}}",
        "rcfilters-watchlist-showupdated": "<strong>Wytłuszczono</strong> strony, których nie odwiedził{{GENDER:|e|a|e}}ś od czasu zapisania ostatnich zmian.",
        "rcfilters-preference-label": "Wyłącz ulepszenia strony Ostatnie zmiany",
        "rcfilters-preference-help": "Wycofuje wszystkie zmiany interfejsu z 2017 i narzędzia dodane od tamtej pory.",
+       "rcfilters-filter-showlinkedfrom-option-label": "Pokaż zmiany na stronach linkowanych <strong>Z</strong> tej strony",
+       "rcfilters-filter-showlinkedto-option-label": "Pokaż zmiany na stronach linkujących <strong>DO</strong> tej strony",
+       "rcfilters-target-page-placeholder": "Wprowadź nazwę strony",
        "rcnotefrom": "Poniżej {{PLURAL:$5|pokazano zmianę|pokazano zmiany}} {{PLURAL:$5|wykonaną|wykonane}} po <strong>$3, $4</strong> (nie więcej niż '''$1''' pozycji).",
        "rclistfromreset": "Zresetuj wybór daty",
        "rclistfrom": "Pokaż nowe zmiany od $3 $2",
        "recentchangeslinked-feed": "Zmiany w linkowanych",
        "recentchangeslinked-toolbox": "Zmiany w linkowanych",
        "recentchangeslinked-title": "Zmiany w linkowanych z „$1”",
-       "recentchangeslinked-summary": "Poniżej znajduje się lista ostatnich zmian na stronach linkowanych z podanej strony (lub we wszystkich stronach należących do podanej kategorii).\nStrony z [[Special:Watchlist|listy obserwowanych]] są '''wytłuszczone'''.",
+       "recentchangeslinked-summary": "Wprowadź nazwę strony, aby zobaczyć zmiany na stronach linkowanych przez tę stronę lub linkujących do niej. (Aby zobaczyć strony z kategorii wpisz Category:Nazwa). Strony z [[Special:Watchlist|listy obserwowanych]] są '''wytłuszczone'''.",
        "recentchangeslinked-page": "Tytuł strony:",
        "recentchangeslinked-to": "Pokaż zmiany nie na stronach linkowanych, a na stronach linkujących do podanej strony",
        "recentchanges-page-added-to-category": "dodano [[:$1]] do kategorii",
        "import-mapping-namespace": "Importuj do przestrzeni nazw:",
        "import-mapping-subpage": "Importuj jako podstrony strony:",
        "import-upload-filename": "Nazwa pliku:",
+       "import-upload-username-prefix": "Prefiks interwiki:",
+       "import-assign-known-users": "Przypisz edycje lokalnym użytkownikom, jeżeli istnieją użytkownicy o tych nazwach",
        "import-comment": "Komentarz:",
        "importtext": "Korzystając na źródłowej wiki z narzędzia [[Special:Export|eksportu]] wyeksportuj plik.\nZapisz go na swoim dysku, a następnie prześlij go tutaj.",
        "importstart": "Trwa importowanie stron...",
        "imported-log-entries": "Zaimportowano $1 {{PLURAL:$1|wpis|wpisy|wpisów}} rejestru.",
        "importfailed": "Import nie powiódł się: $1",
        "importunknownsource": "Nieznany format importowanych danych",
+       "importnoprefix": "Nie podano prefiksu interwiki",
        "importcantopen": "Nie można otworzyć importowanego pliku",
        "importbadinterwiki": "Błędny link interwiki",
        "importsuccess": "Import zakończony powodzeniem!",
        "autosumm-blank": "UWAGA! Usunięcie treści (strona pozostała pusta)!",
        "autosumm-replace": "UWAGA! Zastąpienie treści hasła bardzo krótkim tekstem: „$1”",
        "autoredircomment": "Przekierowanie do [[$1]]",
+       "autosumm-removed-redirect": "Usunięto przekierowanie do [[$1]]",
+       "autosumm-changed-redirect-target": "Zmiana elementu docelowego przekierowania z [[$1]] na [[$2]]",
        "autosumm-new": "Utworzono nową stronę \"$1\"",
        "autosumm-newblank": "Utworzono pustą stronę",
        "size-bytes": "$1 {{PLURAL:$1|bajt|bajty|bajtów}}",
        "tag-mw-removed-redirect-description": "Edycja, która zmienia dotychczasowe przekierowanie na nie-przekierowanie",
        "tag-mw-changed-redirect-target": "Zmieniony cel przekierowania",
        "tag-mw-changed-redirect-target-description": "Edycja, która zmienia stronę docelową przekierowania",
+       "tag-mw-blank": "Usunięcie całej zawartości strony",
        "tag-mw-blank-description": "Edycja, która blankuje stronę",
        "tag-mw-replace": "Zastąpiono",
        "tag-mw-replace-description": "Edycja, która usuwa ponad 90% zawartości strony",
+       "tag-mw-rollback": "Wycofanie zmian",
        "tag-mw-rollback-description": "Edycja, która przywraca poprzednią wersję przy użyciu funkcji cofania zmian (rollback)",
        "tags-title": "Znaczniki",
        "tags-intro": "Na tej stronie znajduje się lista znaczników, którymi oprogramowanie może oznaczyć edycje, oraz ich opisy.",
index aeaab32..ecc4824 100644 (file)
@@ -93,7 +93,7 @@
        "february-gen": "فبروري",
        "march-gen": "مارچ",
        "april-gen": "اپرېل",
-       "may-gen": "Ù\85Û\8c",
+       "may-gen": "Ù\85Û\90",
        "june-gen": "جون",
        "july-gen": "جولای",
        "august-gen": "اگسټ",
        "changeemail-nochange": "مهرباني وکړئ یو بل نوی برېښناليک پته ولیکئ.",
        "resettokens": "د ټوکنونو بیاکتنه",
        "resettokens-text": "تاسو کولی شئ  ټوکنونه بیا ځای پرځای کړئ کوم چې دلته ستاسو د حساب سره تړلی ځینې مشخصو معلوماتو ته دلا سرسۍ اجازه ورکوي.\n\nتاسو باید دا کار وکړئ که چیرې تاسو په ناڅاپي توګه له چا سره شریک کړي یا ستاسو حساب ورسره موافق وي.",
+       "resettokens-no-tokens": "د بیا جوړولو لپاره هیڅ نښه نشته.",
        "resettokens-tokens": "ټوکنونه:",
        "resettokens-token-label": "$1 (اوسنی ارزښت: $2)",
+       "resettokens-watchlist-token": "د ویب فیډ (د اتوم / آر ایس ایس) لپاره ډک کړئ [[Special:Watchlist| د خپل د کتار لیست په پاڼو کې بدلونونه]]",
        "resettokens-done": "د رایو بیا راګرځول.",
        "resettokens-resetbutton": "د ټاکل شوي ټوکنونو بیا راګرځول",
        "bold_sample": "زغرد متن",
        "blankarticle": "<strong>خبرتیا:</strong> تاسو د یو خالي مخ جوړلو په حال کي ياست.\nکه «$1» دوهم ځلي کښي کاږي، نو مخ به د معلوماتو بغير جوړ سي.",
        "anoneditwarning": "<strong>گواښنه:</strong>  تاسې غونډال کې نه ياست ننوتي. که تاسې کوم سمونونه ترسره کوۍ نو ستاسې IP پته به ټولو ته د دې مخ د سمونونو په پېښليک کې ښکاري. که تاسې په خپل نوم <strong>[$1 کې ننوځئ]</strong> يا <strong>[$2 يو گڼون جوړ کړئ]</strong>، نو ستاسې سمونونه به ستاسې کارن-نوم اړونده ثبت شي چې ډېرې نورې گټې هم لري.",
        "anonpreviewwarning": "''تاسې غونډال ته نه ياست ننوتي. خوندي کولو سره به ستاسې IP پته به د دې مخ د سمونونو په پېښليک کې ثبت شي.''",
+       "missingsummary": "<strong>یادونه:</strong> تاسو د سمون لنډیز ندی چمتو کړی.\nکه تاسو \"$1\" ټک وکړئبیا به ستاسو بدلون پرته له دې چې يو وي خوندي شي.",
+       "selfredirect": "<strong>خبرداری:</strong> تاسو دا پاڼه دپاڼي خپل مخ ته استوي.ښایي تاسو د ګرځولو لپاره ناسم هدف مشخص کړی وي، یا تاسو ممکن په غلطه پاڼه سمونه کوي.\nکه تاسو \"$1\" بيا کلیک کړي، د مخ ورګرځونه به په هر دليل جوړه شي.",
        "missingcommenttext": "لطفاً کمينټ لاندې وليکۍ.",
+       "missingcommentheader": "<strong>یادونه:</strong> تاسو د سمون لنډیز ندی چمتو کړی.\nکه تاسو \"$1\" ټک وکړئبیا به ستاسو بدلون پرته له دې چې يو وي خوندي شي.",
        "summary-preview": "د لنډيز مخليدنه:",
        "subject-preview": "د پروژې بيا ليدنه:",
        "previewerrortext": "د بدلونونو د مخليدنو په وخت کې مو يوه ستونزه رامېنځ ته شوه.",
        "loginreqlink": "ننوتل",
        "loginreqpagetext": "د نورو مخونو د کتلو لپاره تاسو بايد $1 وکړۍ.",
        "accmailtitle": "پټنوم ولېږل شو.",
+       "accmailtext": "په ناڅاپي توګه جوړ شوي پټنوم د [[User talk:$1|$1]] لپاره و $2 ته ولیږل شو. دا کېدی شي په <em>[[Special:ChangePassword|پټنوم بدلون]] کي بدلون ومومي </em> مخ د ننوتلو په وخت کې.",
        "newarticle": "(نوی)",
        "newarticletext": "تاسې د يوې داسې تړنې څارنه کړې چې لا تر اوسه پورې نه شته.\nکه همدا مخ ليکل غواړۍ، نو په لانديني چوکاټ کې خپل متن وټاپئ (د لا نورو مالوماتو لپاره د [$1 لارښود مخ] وگورئ).\nکه چېرته تاسې دلته په تېروتنه راغلي ياست، نو يواځې د خپل د کتنمل '''مخ پر شا''' تڼۍ مو وټوکئ.",
        "anontalkpagetext": "----''دا د يوه ورکنومي کارن چې کارن-نوم نه لري او يا خپل کارن-نوم نه کاروي، د سکالو يوه پاڼه ده. نو د يوه کس د پېژندلو پخاطر موږ د هماغه کارن د انټرنېټ شمېره يا IP پته دلته ثبتوؤ. داسې يوه IP پته د ډېرو کارنانو لخوا هم کارېدلی شي. که تاسې يو ورکنومی کارن ياست او تاسې ته دا څرگندېږي چې تاسې ته نااړونده پېغامونه او تبصرې اشاره شوي، نو د نورو بې نومو کارنانو او ستاسې ترمېنځ د ټکنتوب د مخ نيونې لپاره لطفاً [[Special:CreateAccount|يو گڼون جوړ کړۍ]] او يا هم [[Special:UserLogin|غونډال ته ورننوځۍ]].''",
        "blocked-notice-logextract": "دم مهال په دې کارن بنديز لگېدلی.\nد بنديز يادښت تازه مالومات په لاندې توگه دي:",
        "clearyourcache": "'''يادښت:''' د غوره توبونو د خوندي کولو وروسته، خپل د کتنمل (بروزر) ساتل شوې حافظه تازه کړی.\n* '''فايرفاکس/ سفري:''' په دې کتنمل کې د ''Reload'' د ټکوهلو په وخت د ''Shift'' تڼۍ نيولې وساتی، او يا هم ''Ctrl-F5'' يا ''Ctrl-R''تڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ''⌘-R'' کېښکاږۍ)\n* '''گووگل کروم:''' په دې کتنمل کې د ''Ctrl-Shift-R'' تڼۍ کېښکاږۍ (د مک لپاره ''⌘-Shift-R'')\n* '''انټرنټ اېکسپلورر:''' په دې کتنمل کې د ''Refresh'' د ټکوهلو په وخت کې د ''Ctrl'' تڼۍ کېښکاږلې ونيسۍ، او يا هم د ''Ctrl-F5'' تڼۍ کېښکاږۍ\n* '''اوپرا''': په دې کتنمل کې د خپل براوزر ساتل شوې حافظه پدې توگه سپينولی شی ''Tools→Preferences''",
        "usercssyoucanpreview": "'''نکته:''' د سی‌اس‌اس دوتنې  د خوندي کولو دمخه خپله، د تڼۍ سره '''{{int:showpreview}}''' دا امتحان کړې.",
+       "userjsyoucanpreview": "'''نکته:''' د سی‌اس‌اس دوتنې  د خوندي کولو دمخه خپله، د تڼۍ سره '''{{int:showpreview}}''' دا امتحان کړې.",
        "usercsspreview": "'''هېر مو نشي چې دا يوازې ستاسې د کارن CSS مخليدنه ده.'''\n'''تر اوسه پورې لا ستاسې بدلونونه نه دي خوندي شوي!'''",
        "userjspreview": "'''هېر مو نشي چې دا يوازې ستاسې د کارن د جاوا سکرېپټ آزمېيل/مخليدنه ده.'''\n'''تر اوسه پورې لا ستاسې بدلونونه نه دي خوندي شوي!'''",
        "sitecsspreview": "'''په پام کې دې وي چې دا يوازې ستاسې د CSS مخليدنه ده.'''\n'''تر اوسه پورې لا ستاسې بدلونونه نه دي خوندي شوي!'''",
        "postedit-confirmation-saved": "ستاسې سمون خوندي شو.",
        "edit-already-exists": "په دې نوم يو نوی مخ جوړ نه شو.\nپدې نوم د پخوا نه يو مخ شته.",
        "defaultmessagetext": "تلواليزه پيغام متن",
+       "invalid-content-data": "د ناباوره منځپانګې ډاټا",
+       "content-not-allowed-here": "\"$1\" په پاڼه کې منځپانګې ته اجازه نشته [[$2]]",
        "content-model-wikitext": "ويکي متن",
        "content-model-text": "ساده متن",
        "content-model-javascript": "جاواسکرېپټ",
        "content-model-css": "CSS",
        "content-model-json": "JSON",
        "content-json-empty-object": "تش څيز",
+       "content-json-empty-array": "خالي صف",
        "duplicate-args-category": "هغه مخونه چې دوه اړخیزه استدلالونه د کينډۍ په خبرتيا کي کاروي",
        "duplicate-args-category-desc": "دا هغه مخ دی چې د کينډيو استدعاگانې لري او دوه ځلي آرگومنټونه کاروي، لکه <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> يا <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
+       "expensive-parserfunction-category": "د ډیری ګران ګرد پارسیر فعالیت کاروونکي مخونه",
        "post-expand-template-inclusion-warning": "'''گواښنه:''' دا کينډۍ د خپل ټاکلي بريد نه ډېره لويه ده.\nځينې کينډۍ به په کې گډې نه شي.",
        "post-expand-template-inclusion-category": "هغه مخونه چې په کې د کارېدلو کينډيو شمېر له ټاکلې کچې ډېر دی",
        "post-expand-template-argument-warning": "'''گواښنه:''' دا مخ لږ تر لږه د يوې کينډۍ عاملين لري چې بې حده لوی دی.\nدا عاملين ړنگ شول.",
        "prefs-advancedwatchlist": "پرمختللې خوښنې",
        "prefs-displayrc": "د ښکارېدو خوښنې",
        "prefs-displaywatchlist": "د ښکارېدنې خوښنې",
+       "prefs-tokenwatchlist": "ټوکن",
        "prefs-diffs": "توپيرونه",
-       "userrights": "د Ú©Ø§Ø±Ù\86 Ø±Ú\9aتÙ\88 Ø³Ù\85باÙ\84Ú\9aت",
+       "userrights": "د Ú©Ø§Ø±Ù\86 Ø­Ù\82Ù\88Ù\82",
        "userrights-lookup-user": "کارن ډلې سمبالول",
        "userrights-user-editname": "يو کارن نوم ورکړئ:",
-       "editusergroup": "{{GENDER:$1|کارن}} ډلې سمول",
+       "editusergroup": "د کارن ګروپ لوډ کړي",
        "editinguser": "د <strong>[[User:$1|$1]]</strong> {{GENDER:$1|کارن}} رښتې بدلول $2",
+       "viewinguserrights": "د <strong>[[User:$1|$1]]</strong> {{GENDER:$1|کارن}} رښتې بدلول $2",
        "userrights-editusergroup": "{{GENDER:$1|کارن}} ډلې سمول",
        "userrights-viewusergroup": "د{{GENDER:$1|کارن}} ګروپونه ښکاره کړي",
        "saveusergroups": "{{GENDER:$1|کارن}} ډلې خوندي کول",
        "userrights-changeable-col": "هغه ډلې چې تاسې يې بدلولی شی",
        "userrights-unchangeable-col": "هغه ډلې چې تاسې يې نه شی بدلولی",
        "userrights-irreversible-marker": "$1*",
+       "userrights-expiry-current": "پای نېټه $1",
+       "userrights-expiry-none": "پای ته نه رسیږي",
+       "userrights-expiry": "د پای نېټه:",
+       "userrights-expiry-existing": "د پای نیټه وخت: $3، $2",
+       "userrights-expiry-othertime": "بل وخت:",
+       "userrights-expiry-options": "۱ ورځ:1 day,۱ اوونۍ:1 week,۱ مياشت:1 month,۳ مياشتې:3 months,۶ مياشتې:6 months,۱ کال:1 year",
+       "userrights-invalid-expiry": "د ډلې لپاره د ختمولو \"$1\" ناباوره دی.",
+       "userrights-expiry-in-past": "د ډلې لپاره د ختمولو وخت \"$1\" په تیرو کې دی.",
+       "userrights-cannot-shorten-expiry": "تاسو نشئ کولی چې په ګروپ کې غړیتوب پای ته ورسوي \"$1\". هغه کارنان ددا ګروپ په اضافه کولو او لیږدولو اجازه لري چي پرميشن لري..",
+       "userrights-conflict": "شخړه د کارن د حقونو بدلونونه! مهرباني وکړئ خپل بدلونونه بیاکتنه تایید کړئ.",
        "group": "ډله:",
        "group-user": "کارنان",
        "group-autoconfirmed": "تاييد شوي کارنان",
        "right-createpage": "مخونه جوړول (هغه چې د خبرو اترو مخونه نه دي)",
        "right-createtalk": "د خبرو اترو مخونه جوړول",
        "right-createaccount": "نوي گڼونونه جوړول",
+       "right-autocreateaccount": "د خپل شخصي کارن حساب سره په اتوماتيک ډول ننوتل",
        "right-minoredit": "سمونونه واړه په نخښه کول",
        "right-move": "مخونه لېږدول",
        "right-move-subpages": "مخونه د خپلو څېرمه مخونو سره لېږدول",
+       "right-move-rootuserpages": "وګرځوي روټ کارن مخونه",
        "right-move-categorypages": "د وېشنيزې مخونه لېږدول",
        "right-movefile": "دوتنې لېږدول",
+       "right-suppressredirect": "د مخ ګرځونه بغير له پخوانۍ نوم ځای پر ځای کولو",
        "right-upload": "دوتنې پورته کول",
+       "right-reupload": "د همدې دوتنې دپاسه ليکل",
+       "right-reupload-own": "اوسنۍ دوتنې له ځانه سره پورته کړي",
        "right-upload_by_url": "د يو URL نه دوتنې پورته کول",
        "right-writeapi": "د API کښنې کارېدنه",
        "right-delete": "مخونه ړنگول",
        "right-userrights-interwiki": "په نورو ويکي گانو د نورو کارنانو  کارن-رښتې سمول",
        "right-siteadmin": "توکبنسټ کولپول او پرانيستل",
        "right-sendemail": "نورو کارنانو ته برېښليک لېږل",
+       "grant-generic": "د \"$1\" د حقوقو بنډل",
+       "grant-group-page-interaction": "د پاڼو سره اړیکه",
+       "grant-group-file-interaction": "د ميډيا سره اړیکه",
+       "grant-group-watchlist-interaction": "د خپل کتنلړ سره مرکه وکړئ",
        "grant-group-email": "برېښليک لېږل",
+       "grant-group-high-volume": "د لوړ حجم فعالیت ترسره کړئ",
+       "grant-group-customization": "حساس کول او غوره توبونه",
+       "grant-group-administration": "اداري کړنو ترسره کول",
+       "grant-group-private-information": "ستاسو په اړه شخصي معلوماتو ته لاسرسۍ",
        "grant-group-other": "بېلابېل فعاليتونه",
        "grant-blockusers": "په کارنانو بنديز لگول او بنديز ليرې کول",
        "grant-createaccount": "گڼونونه جوړول",
        "grant-editmywatchlist": "خپل کتنلړ سمول",
        "grant-editpage": "شته مخونه سمول",
        "grant-editprotected": "ژغورلي مخونه سمول",
+       "grant-highvolume": "د لوړ حجم سمون",
+       "grant-oversight": "د کاروونکو پټول او بیا کتنه کول",
+       "grant-patrol": "د مخونو بدلونونه ګزمه کړي",
+       "grant-privateinfo": "شخصي معلوماتو ته لاسرسۍ",
        "grant-sendemail": "نورو کارنانو ته برېښليک لېږل",
        "grant-uploadfile": "نوې دوتنې پورته کول",
        "grant-basic": "بنسټيزې رښتې",
        "rcfilters-savedqueries-add-new-title": "د امستنې اوسنۍ فيلټر خوندي کړي",
        "rcfilters-filterlist-title": "چاڼگران",
        "rcfilters-highlightmenu-title": "يو رنګ وټاکۍ",
+       "rcfilters-filter-editsbyself-label": "بدلونونه ستاسو لخوا",
+       "rcfilters-filter-editsbyself-description": "ستاسو خپل بدلونونه.",
+       "rcfilters-filter-editsbyother-label": "د نورو لخوا بدلونونه",
+       "rcfilters-filter-editsbyother-description": "ټول بدلونونه پرته ستاسو له بدلونونو.",
+       "rcfilters-filtergroup-userExpLevel": "د کارن رجسټريشن او تجربه",
+       "rcfilters-filter-user-experience-level-registered-label": "ثبت شوی",
+       "rcfilters-filter-user-experience-level-registered-description": "ننوتلي په سمونو کي.",
        "rcfilters-filter-user-experience-level-unregistered-label": "ناثبت",
+       "rcfilters-filter-user-experience-level-unregistered-description": "هغه سمونکي چې ننوتلي نه وو.",
        "rcfilters-filter-user-experience-level-newcomer-label": "نوي راغلي",
+       "rcfilters-filter-user-experience-level-newcomer-description": "ثبت شوي سمونکي چې د ١٠ څخه لږ سمونونه یا څلور ورځني فعالیت يي لرلي وي.",
        "rcfilters-filter-user-experience-level-learner-label": "زده کوونکي",
+       "rcfilters-filter-user-experience-level-learner-description": "ثبت شوي سمونکي د کومو تجربې چي په منځ کې راځي \"نوي راتلونکې \" او \"تجربه لرونکي کارنان.\"",
+       "rcfilters-filter-user-experience-level-experienced-label": "تجربه لرونکي کارنان",
+       "rcfilters-filter-user-experience-level-experienced-description": "ثبت شوي سمونکي چي تر ۵۰۰ ډير سمونونه او ٣٠ ورځني فعالیت يي لرلي وي.",
+       "rcfilters-filtergroup-automated": "اتوماتیک سموني",
        "rcfilters-filter-bots-label": "روباټ",
+       "rcfilters-filter-bots-description": "هغه آثار چې د اتوماتیک وسیلو لخوا جوړ شوي.",
+       "rcfilters-filter-humans-label": "انسان (نه بوټ)",
+       "rcfilters-filter-humans-description": "سمونې چي د انساني سمونوالو لخوا جوړې شوي دي.",
+       "rcfilters-filtergroup-reviewstatus": "د بیاکتنې حالت",
        "rcfilters-filter-patrolled-label": "ګزمې شوی",
+       "rcfilters-filter-patrolled-description": "سمونې چي د ګزمې په توګه په نښه شوي دي.",
+       "rcfilters-filter-unpatrolled-label": "بي ګزمې شوي",
+       "rcfilters-filter-unpatrolled-description": "سمونې چي د ګزمې په توګه نه دي په نښه شوي.",
+       "rcfilters-filtergroup-significance": "ارزښت",
+       "rcfilters-filter-minor-label": "وړوکي سمونونه",
+       "rcfilters-filter-watchlist-watched-label": "په کتنلړ کي",
+       "rcfilters-filter-watchlist-notwatched-label": "په کتنلړ کې ندی",
+       "rcfilters-filter-watchlist-notwatched-description": "هرڅه ستاسو په کتنلړ کې پرته ستاسو د بدلونونو مخونه.",
+       "rcfilters-filtergroup-watchlistactivity": "کتنلړ فعالیت",
+       "rcfilters-filter-watchlistactivity-unseen-label": "ناکتل شوي بدلونونه",
+       "rcfilters-filter-watchlistactivity-unseen-description": "په پاڼو کې بدلون چې ستاسو لخوا نه دي لیدل شوي وروسته چې بدلونونه رامنځته شوي.",
+       "rcfilters-filter-watchlistactivity-seen-label": "کتل شوي بدلونونه",
+       "rcfilters-filter-watchlistactivity-seen-description": "په پاڼو کې بدلون چې ستاسو لخوا لیدل شوي وروسته چې بدلونونه رامنځته شوي.",
        "rcfilters-filtergroup-changetype": "د بدلون ډول",
+       "rcfilters-filter-pageedits-label": "د مخ سمونونه",
+       "rcfilters-filter-pageedits-description": "د ويکي منځپانګې سره سمونونه، خبرې اترې، د کتنې تفصيلات ...",
+       "rcfilters-filter-newpages-label": "مخ جوړونې",
+       "rcfilters-filter-newpages-description": "هغه سمونې چي نوي مخونه جوړي.",
+       "rcfilters-filter-categorization-label": "د وېشنيزو بدلونونه",
+       "rcfilters-filter-categorization-description": "د مخونو ریکارډونه چي وېشنيزې ورڅخه اضافه یا لرې شوي وي.",
+       "rcfilters-filter-logactions-label": "ننوتلي کړنې",
+       "rcfilters-filter-logactions-description": "اداري فعالیتونه، د حساب جوړونې، د پاڼې ړنګول، اپلوډونه ...",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "\"کوچني تغیرات\" د بدلون فلټرونو د یو یا څو ډولونو سره فلټرونه فلټر کړي، ځکه چې د بدلون ځینې ډولونه \"معمولی\" نه ګڼل کیدی. د منازعې فلټرونه د پورته فعال فلټر په ساحه کې نښه شوي دي.",
+       "rcfilters-hideminor-conflicts-typeofchange": "د بدلون ځینې ډولونه نشي کولی \"لږ\" په توګه وټاکل شي، نو دا فلټر د لاندې ډول بدلون سره شخړې لري: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "د بدلون ډول فلټر شخړې د \"کوچنیو ترمیم\" فلټر سره. د بدلون ځینې ډولونه \"کوچنی\" په توګه ندی مشخص کیدی.",
+       "rcfilters-filtergroup-lastRevision": "اوسنۍ بڼې",
+       "rcfilters-filter-lastrevision-label": "اوسنۍ بڼه",
+       "rcfilters-filter-lastrevision-description": "یواځی وروستی بدلون په پاڼه کې.",
+       "rcfilters-filter-previousrevision-label": "وروستۍ بڼه نه",
+       "rcfilters-filter-previousrevision-description": "ټول بدلونونه نه \"وروستی بیاکتنې\".",
+       "rcfilters-filter-excluded": "خارج شوی",
+       "rcfilters-tag-prefix-namespace-inverted": "<strong>:نه</strong> $1",
+       "rcfilters-exclude-button-off": "غوره شوي دباندې",
+       "rcfilters-exclude-button-on": "غوره کيدونکي دباندې",
+       "rcfilters-view-tags": "ټيګ شوي سمونونه",
+       "rcfilters-view-namespaces-tooltip": "د تشيال له لارې د فلټر پایلې",
+       "rcfilters-view-tags-tooltip": "د تيګونو په کارولو د فلټر پايلې",
+       "rcfilters-view-return-to-default-tooltip": "د منځنۍ فلټر مینځ ته راوګرځئ",
+       "rcfilters-view-tags-help-icon-tooltip": "د ټيګيډ سمونونو په اړه نور معلومات ترلاسه کړئ",
+       "rcfilters-liveupdates-button": "په ژوندۍ بڼه اوسمهالونې",
+       "rcfilters-liveupdates-button-title-on": "په ژوندۍ بڼه اوسمهالونه بنده کړئ",
+       "rcfilters-liveupdates-button-title-off": "نوی بدلونونه لکه څنګه چې پیښیږي ښکاره کړئ",
+       "rcfilters-watchlist-markseen-button": "ټول بدلونونه لکه ليدل شوي په نښه کړئ",
+       "rcfilters-watchlist-edit-watchlist-button": "خپل د کتنلړ مخونه سم کړي",
+       "rcfilters-watchlist-showupdated": "په هغه پاڼو کې بدلونونه چې تاسو نه دي لیدلي، له دې چې بدلونونه پېل شوي د <strong>روڼ</strong> سوليډ نښانو سره.",
+       "rcfilters-preference-label": "د وروستي بدلونونو اصلاح شوی نسخه پټ کړئ",
+       "rcfilters-preference-help": "د ٢٠١٧ د انټرفیس بیرته راګرځولو رولونه او ټول وسايل وروسته بیا او وروسته.",
+       "rcfilters-filter-showlinkedfrom-label": "له لینک سره په تړلي پاڼې کې بدلونونه وښایئ",
+       "rcfilters-filter-showlinkedfrom-option-label": "مخونه ښکاره کول تړل شویو پاڼو کې <strong>له</strong> يو مخ څخه",
+       "rcfilters-filter-showlinkedto-label": "په تړلو پاڼو کې بدلونونه ښکاره کړئ",
+       "rcfilters-filter-showlinkedto-option-label": "بدلونونو سره تړل شوي مخونو کې ښودل <strong>TO</strong> د يو مخ",
+       "rcfilters-target-page-placeholder": "د مخ نوم ورکړئ",
        "rcnotefrom": "دلته لاندې د <strong>$3, $4</strong> (څخه <strong>$1</strong> {{PLURAL:$5|راپدېخوا پېښ شوي بدلونونه|ښکاري}}).",
+       "rclistfromreset": "د نیټې ټاکنې انتخاب",
        "rclistfrom": "نوي بدلونونه چې له $3، $2 څخه پيلېږي ښکاره کول",
        "rcshowhideminor": "وړې سمونې $1",
        "rcshowhideminor-show": "ښکاره کول",
        "backend-fail-read": "د \"$1\" دوتنه نه شي لوستل کېدای.",
        "backend-fail-create": "د \"$1\" په دوتنه کې نور څه و نه ليکل شول.",
        "zip-wrong-format": "ځانگړې شوې دوتنه يوه ZIP دوتنه نه وه.",
+       "uploadstash": "پورته کول سټش",
        "uploadstash-refresh": "د دوتنو لړليک بياتازه کول",
        "img-auth-accessdenied": "لاسرسی رد شو",
        "img-auth-nofile": "د $1 په نوم کومه دوتنه نشته.",
        "fewestrevisions": "لږ مخليدل شوي مخونه",
        "nbytes": "$1 {{PLURAL:$1|بايټ|بايټونه}}",
        "ncategories": "$1 {{PLURAL:$1|وېشنيزه|وېشنيزې}}",
-       "ninterwikis": "$1 {{PLURAL:$1|انټرویکی|انټرویکی}}",
+       "ninterwikis": "$1 {{PLURAL:$1|interwiki|انټرویکی}}",
        "nlinks": "$1 {{PLURAL:$1|تړنه|تړنې}}",
        "nmembers": "$1 {{PLURAL:$1|غړی|غړي}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|غړی|غړي}}",
        "deletepage": "مخ ړنگول",
        "confirm": "تاييد",
        "excontent": "د مخ مېنځپانگه دا وه: \"$1\"",
-       "excontentauthor": "د مخ مېنځپانگه دا وه: \"$1\" (او يواځينی ونډه وال \"[[Special:Contributions/$2|$2]]\" وه)",
+       "excontentauthor": "د مخ مېنځپانگه دا وه: «$1» او يواځينی ونډه وال «[[Special:Contributions/$2|$2]] ([[User talk:$2|خبرې اترې]])» وه",
        "delete-confirm": "\"$1\" ړنگول",
        "delete-legend": "ړنگول",
        "historywarning": "گواښنه:''' دا مخ چې تاسې يې د ړنگېدو تکل لرئ نژدې $1 {{PLURAL:$1|بڼه|بڼې}} پېښليک لري:",
        "deleting-backlinks-warning": "گواښنه:''' دا مخ چې تاسې يې ړنگوی د [[Special:WhatLinksHere/{{FULLPAGENAME}}|نورو مخونو]] سره تړلی او يا هم په نورو مخونو کې نغاړل شوی دی.",
        "rollbacklink": "په شابېول",
        "rollbacklinkcount": "$1 {{PLURAL:$1|سمون|سمونونه}} پرشابېول",
-       "editcomment": "د سمون لنډيز دا و: \"''$1''\".",
+       "editcomment": "د سمون لنډيز دا وو: \"''$1''\".",
        "changecontentmodel-title-label": "مخ سرليک",
        "changecontentmodel-reason-label": "سبب:",
        "changecontentmodel-submit": "بدلول",
        "sp-contributions-newbies-sub": "د نوو گڼونونو لپاره",
        "sp-contributions-newbies-title": "د نويو گڼونونو لپاره د کارن ونډې",
        "sp-contributions-blocklog": "د بنديز يادښت",
-       "sp-contributions-deleted": "ړنگېدلې کارن ونډې",
+       "sp-contributions-deleted": "د ړنگ شوي {{GENDER:$1|کارن}} ونډې",
        "sp-contributions-uploads": "پورته کېدنې",
        "sp-contributions-logs": "يادښتونه",
        "sp-contributions-talk": "خبرې اترې",
        "importcantopen": "واردونکې دوتنه و نه پرانيستل شوه.",
        "importbadinterwiki": "ناسمه ويکيخپلمنځي تړنه",
        "import-upload": "د XML اومتوک پورته کول",
-       "import-token-mismatch": "د اومتوک غونډېدنه له لاسه وتلې.\nلطفاً بيا يې وآزمايئ.",
+       "import-token-mismatch": "د اومتوک غونډېدنه له لاسه وتلې.\n\nتاسو شاید په نښه شوي وي. لطفا ډاډ ترلاسه کړئ چې ته ننوځئ او بیا بیا هڅه وکړه.\nکه تاسو د سیسټم څخه یو ځل بیا پیغام ترلاسه کړئ چي [[Special:UserLogout|ووځي]]، بيا ننوځي، و از این‌ که او ډاډه کړئ چې ستاسو براؤزر اجازه لري چې د دې سایټ څخه کوکیز ترلاسه کړي.",
        "importlogpage": "د واردولو يادښت",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|بڼه|بڼې}} راولېږدېدې",
        "javascripttest": "د جاوا سکرېپټ آزمېښت",
        "pageinfo-length": "د مخ اوږدوالی (د تورو له مخې)",
        "pageinfo-article-id": "د مخ پېژند",
        "pageinfo-language": "د مخ د مېنځپانگې ژبه",
+       "pageinfo-language-change": "بدلون",
        "pageinfo-content-model": "د مخ مېنځپانگې جوړښت",
        "pageinfo-content-model-change": "بدلول",
        "pageinfo-robot-policy": "ليکلړ اوډنه د روباټونو لخوا",
        "pageinfo-category-pages": "د مخونو شمېر",
        "pageinfo-category-subcats": "د څېرمه وېشنيزو شمېر",
        "pageinfo-category-files": "د دوتنو شمېر",
+       "pageinfo-user-id": "کارن پېژند",
        "markaspatrolleddiff": "دا مخ څارل شوی په نخښه کول",
        "markaspatrolledtext": "دا مخ څارل شوی په نخښه کول",
        "markedaspatrolled": "دا مخ څارل شوی په نخښه کول",
        "show-big-image-preview": "د همدې ليدنې کچه: $1.",
        "show-big-image-other": "{{PLURAL:$2|بل ژورليد|نورې ژورليدنې}}: $1.",
        "show-big-image-size": "$1 × $2 پېکسل",
+       "file-info-gif-looped": "حلقه",
        "file-info-gif-frames": "$1 {{PLURAL:$1|چوکاټ|چوکاټونه}}",
+       "file-info-png-looped": "حلقه",
        "file-info-png-repeat": "$1 {{PLURAL:$1|ځل|ځله}} وغږېده",
        "file-info-png-frames": "$1 {{PLURAL:$1|چوکاټ|چوکاټونه}}",
        "newimages": "د نوو دوتنو انځورتون",
        "hours-abbrev": "$1 گ",
        "seconds": "{{PLURAL:$1|$1 ثانيه|$1 ثانيې}}",
        "minutes": "{{PLURAL:$1|$1 دقيقه|$1 دقيقې}}",
-       "hours": "{{PLURAL:$1|$1 گړۍ|$1 گړۍ}}",
+       "hours": "{{PLURAL:$1|يو ساعت|$1 ساعتونه}}",
        "days": "{{PLURAL:$1|$1 ورځ|$1 ورځې}}",
        "weeks": "{{PLURAL:$1|$1 اونۍ|$1 اونۍ}}",
        "months": "{{PLURAL:$1|$1 مياشت|$1 مياشتې}}",
        "exif-pngfilecomment": "د PNG دوتنې تبصره",
        "exif-disclaimer": "ردادعاليک",
        "exif-giffilecomment": "د GIF دوتنې تبصره",
+       "exif-personinimage": "شخص ښودل شوی",
        "exif-copyrighted-true": "په رښتو سمبال",
        "exif-copyrighted-false": "د خپراوي د رښتو دريځ نه دی ټاکل شوی",
        "exif-photometricinterpretation-1": "تور او سپين (تور 0 دی)",
        "exif-subjectdistance-value": "$1 متره",
        "exif-meteringmode-0": "ناجوت",
        "exif-meteringmode-1": "منځالی",
+       "exif-meteringmode-3": "سپوټ",
        "exif-meteringmode-5": "مخبېلگه",
        "exif-meteringmode-255": "نور",
        "exif-lightsource-0": "ناجوت",
        "log-name-managetags": "د نښلن مهارولو يادښت",
        "log-name-tag": "نښلن يادښت",
        "rightsnone": "(هېڅ)",
+       "rightslogentry-temporary-group": "$1 (لنډمهاله، تر $2)",
+       "feedback-adding": "مخ ته د نظریاتو زیاتوالی...",
        "feedback-back": "پر شا کېدل",
+       "feedback-bugcheck": "ډېر ښه! بس يوازې يي وګورئ چې دا د مخه نه ده [$1 پيژندل شوي بګ] په نامه پېژندل کېږي.",
+       "feedback-bugnew": "ما وکتي. نوی بگ ريپورټ کړئ",
+       "feedback-bugornote": "که تاسو په تفصیل سره د تخنیکي ستونزې تشریح کولو لپاره چمتو یاست هيله ده [$1 بګ ريپورټ کړي].\nکه نه، تاسو کولی شئ لاندې اسانه فورمه وکاروئ. Your comment ستاسو نظر به په پاڼه \"[$3 $2]\" کي ورګډ شي،  ستاسو د کارن نوم سره.",
        "feedback-cancel": "ناگارل",
        "feedback-close": "ترسره شو",
        "feedback-external-bug-report-button": "د يوې تخنيکي دندې دوتنه جوړونه",
+       "feedback-dialog-title": "فييډبيک وسپاري",
+       "feedback-dialog-intro": "تاسو کولی شئ خپل نظرونه جمع کولو لپاره لاندې اسانه فورمه وکارئ. ستاسو نظر به په پاڼه \"$1\" کې اضافه شي، ستاسو د کارن نوم سره.",
+       "feedback-error1": "تېروتنه: ناپیژندل شوی پایله ستاسو د اي پي پتي څخه",
+       "feedback-error2": "تېروتنه: سمون نشو ترسره",
+       "feedback-error3": "تيروتنه: ستاسو د اي پي پتي څخه هيڅ ځواب ترلاسه نشو",
+       "feedback-error4": "تيروتنه: د ورکړل شوې نظریې سرليک د پوستولو توان نلري",
        "feedback-message": "پيغام:",
        "feedback-subject": "سکالو:",
        "feedback-submit": "سپارل",
+       "feedback-terms": "زه پوهیږم چې زما د کاروونکو استازو معلومات زما دقیق برنامه او د عملیاتي سیسټم په اړه معلومات شامل دي او زما د نظرونو سره سره به په عامه توګه شریک شي.",
+       "feedback-termsofuse": "زه موافق یم چې د کارونې شرایطو سره سم فييډبک وړاندیز وکړم.",
+       "feedback-thanks": "مننه! ستاسو نظر په مخ \"[$2 $1]\" کي پوسټ شو .",
        "feedback-thanks-title": "مننه!",
        "feedback-useragent": "کارن پلاوی:",
        "searchsuggest-search": "{{SITENAME}} پلټل",
+       "searchsuggest-containing": "مشتميليږي...",
+       "api-error-badtoken": "داخلي تېروتنه: خرابه نښه.",
        "api-error-emptypage": "د نوي تشو مخونو جوړولو پرېښنه نه شته.",
+       "api-error-publishfailed": "داخلي تېروتنه: پالنګر د لنډمهاله دوتنې په خپرولو کې پاتې راغلي.",
+       "api-error-stashfailed": "داخلي تېروتنه: پالنګر د لنډ مهال دوتنې د ذخیره کولو توان نلري.",
        "api-error-unknown-warning": "ناڅرگنده گواښنه: \"$1\".",
        "api-error-unknownerror": "ناڅرگنده تېروتنه: \"$1\".",
        "duration-seconds": "$1 {{PLURAL:$1|ثانيه|ثانيې}}",
        "duration-minutes": "$1 {{PLURAL:$1|دقيقه|دقيقې}}",
-       "duration-hours": "$1 {{PLURAL:$1|گړۍ|گړۍ}}",
+       "duration-hours": "$1 {{PLURAL:$1|hour|ساعتونه}}",
        "duration-days": "$1 {{PLURAL:$1|ورځ|ورځې}}",
        "duration-weeks": "$1 {{PLURAL:$1|اونۍ|اونۍ}}",
        "duration-years": "$1 {{PLURAL:$1|کال|کالونه}}",
        "duration-centuries": "$1 {{PLURAL:$1|پېړۍ|پېړۍ}}",
        "duration-millennia": "$1 {{PLURAL:$1|زرمه|زرمې}}",
        "rotate-comment": "انځور $1 {{PLURAL:$1|درجه|درجې}} گړۍ لور تاو شوی",
+       "limitreport-title": "د پارسیر پروفیلينګ ډاټا:",
        "limitreport-cputime": "سي پي يو وخت کارېدنه",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|ثانيه|ثانيې}}",
        "limitreport-walltime": "اصلي وخت کارېدنه",
        "pagelang-language": "ژبه",
        "pagelang-use-default": "تلواليزه ژبه کارول",
        "pagelang-select-lang": "ژبه ټاکل",
+       "pagelang-reason": "سبب",
        "pagelang-submit": "سپارل",
+       "pagelang-nonexistent-page": "د $1 په نوم کوم مخ نشته",
        "right-pagelang": "د مخ ژبه بدلول",
        "action-pagelang": "د مخ ژبه بدلول",
        "log-name-pagelang": "د ژب بدلون يادښت",
        "mw-widgets-dateinput-placeholder-month": "کککک-م م",
        "mw-widgets-titleinput-description-new-page": "تر اوسه پورې دا مخ نشته",
        "mw-widgets-titleinput-description-redirect": "$1 ته ورگرځېدنه",
+       "date-range-from": "د نیټې څخه:",
+       "date-range-to": "تر نيټې:",
        "randomrootpage": "د ناټاکلې ريښې مخ",
        "log-action-filter-all": "ټول",
        "log-action-filter-block-block": "بنديز لگول",
+       "log-action-filter-block-unblock": "بنديز لرې کول",
+       "log-action-filter-delete-delete": "مخ ړنګونه",
+       "log-action-filter-delete-delete_redir": "راګرځونه تکرار کړئ",
+       "log-action-filter-delete-restore": "مخ د ړنگېدو څخه راوګرځوي",
+       "log-action-filter-delete-event": "مخ ړنګونه",
+       "log-action-filter-delete-revision": "يواځې ړنگ شوي",
+       "log-action-filter-import-interwiki": "ټرانس ويکي واردول",
+       "log-action-filter-protect-protect": "ساتنه",
+       "log-action-filter-upload-overwrite": "بيا پورته کول",
+       "authmanager-authplugin-setpass-bad-domain": "ناباوره ډومین.",
        "authmanager-email-label": "برېښليک",
        "authmanager-email-help": "برېښليک پته",
        "authmanager-realname-label": "اصلي نوم",
        "authmanager-realname-help": "د کارن اصلي نوم",
        "authprovider-resetpass-skip-label": "تېرېدل",
+       "authform-newtoken": "ورک شوې نښه. $1",
+       "authform-notoken": "نادرکه نښه",
+       "authform-wrongtoken": "ناسمه نښه",
        "specialpage-securitylevel-not-allowed-title": "اجازه نسته",
        "changecredentials-submit": "بدلول",
        "removecredentials-submit": "غورځول",
index a540da0..45b2dd6 100644 (file)
        "timezoneregion-indian": "Oceano Índico",
        "timezoneregion-pacific": "Oceano Pacífico",
        "allowemail": "Permitir que outros usuários enviem-me e-mails",
+       "email-allow-new-users-label": "Permitir e-mails de novos usuários",
        "email-blacklist-label": "Proibir que estes usuários enviem-me e-mails:",
        "prefs-searchoptions": "Busca",
        "prefs-namespaces": "Espaços nominais",
        "right-siteadmin": "Bloquear e desbloquear o banco de dados",
        "right-override-export-depth": "Exportar páginas incluindo páginas ligadas até uma profundidade de 5",
        "right-sendemail": "Enviar email a outros usuários",
+       "right-sendemail-new-users": "Enviar e-mail para usuários sem ações registradas",
        "right-managechangetags": "Criar e (des)ativar [[Special:Tags|tags]]",
        "right-applychangetags": "Aplicar [[Special:Tags|etiquetas]] juntamente com as alterações de alguém",
        "right-changetags": "Adicionar e remover [[Special:Tags|etiquetas]] arbitrárias em revisões e ''logs'' individuais",
        "recentchanges-noresult": "Nenhuma alteração correspondente a esses critérios foi realizada durante o período selecionado.",
        "recentchanges-timeout": "Esta pesquisa expirou. Você pode tentar diferentes parâmetros de pesquisa.",
        "recentchanges-network": "Devido a um erro técnico, nenhum resultado pode ser carregado. Por favor tente atualizar a página.",
+       "recentchanges-notargetpage": "Digite um nome de página acima para ver as alterações relacionadas a essa página.",
        "recentchanges-feed-description": "Acompanhe neste feed as mudanças mais recentes do wiki.",
        "recentchanges-label-newpage": "Esta edição criou uma nova página",
        "recentchanges-label-minor": "Esta é uma edição menor",
        "rcfilters-watchlist-showupdated": "As alterações nas páginas que você não visitou desde as mudanças ocorridas estão em <strong>negrito</strong>, com marcadores sólidos.",
        "rcfilters-preference-label": "Ocultar a versão melhorada das Mudanças Recentes",
        "rcfilters-preference-help": "Reverte o redesenho da interface de 2017 e todas as ferramentas adicionadas na altura e desde então.",
+       "rcfilters-filter-showlinkedfrom-label": "Mostrar alterações nas páginas ligadas de",
+       "rcfilters-filter-showlinkedfrom-option-label": "Mostrar mudanças de páginas <strong>PARA AS QUAIS</strong> uma página contém hiperligações",
+       "rcfilters-filter-showlinkedto-label": "Mostrar mudanças de páginas que contêm hiperligações para a página",
+       "rcfilters-filter-showlinkedto-option-label": "Mostrar mudanças de páginas <strong>QUE CONTÊM</strong> hiperligações para uma página",
+       "rcfilters-target-page-placeholder": "Digite o nome de uma página",
        "rcnotefrom": "Abaixo {{PLURAL:$5|é a mudança|são as mudanças}} desde <strong>$3, $4</strong> (up to <strong>$1</strong> shown).",
        "rclistfromreset": "Redefinir seleção da data",
        "rclistfrom": "Mostrar as novas alterações a partir das $2 de $3",
        "recentchangeslinked-feed": "Mudanças relacionadas",
        "recentchangeslinked-toolbox": "Mudanças relacionadas",
        "recentchangeslinked-title": "Mudanças relacionadas com “$1”",
-       "recentchangeslinked-summary": "Esta página lista alterações feitas recentemente em páginas com links a uma em específico (ou de membros de uma categoria especificada).\nPáginas de sua [[Special:Watchlist|lista de páginas vigiadas]] são exibidas em '''negrito'''.",
+       "recentchangeslinked-summary": "Digite um nome de página para ver as alterações nas páginas vinculadas ou a partir dessa página. (Para ver membros de uma categoria, digite Categoria: Nome da categoria). Mudanças nas páginas em [[Special:Watchlist|lista de páginas vigiadas]] são exibidas em <strong>negrito<strong>",
        "recentchangeslinked-page": "Nome da página:",
        "recentchangeslinked-to": "Inversamente, mostrar mudanças nas páginas que contêm ligações para esta",
        "recentchanges-page-added-to-category": "[[:$1]]adicionada à categoria",
index 1110ea5..6808e60 100644 (file)
        "right-siteadmin": "Bloquear e desbloquear a base de dados",
        "right-override-export-depth": "Exportar páginas incluindo páginas hiperligadas até uma profundidade de 5",
        "right-sendemail": "Enviar correio eletrónico a outros utilizadores",
+       "right-sendemail-new-users": "Enviar correio eletrónico a utilizadores sem ações registadas",
        "right-managechangetags": "Criar e (des)ativar [[Special:Tags|etiquetas]]",
        "right-applychangetags": "Aplicar [[Special:Tags|etiquetas]] juntamente com as alterações",
        "right-changetags": "Adicionar ou remover [[Special:Tags|etiquetas]] arbitrárias em revisões e entradas de registo individuais",
        "recentchanges-noresult": "Não foi realizada nenhuma alteração que corresponda a estes critérios durante o período especificado.",
        "recentchanges-timeout": "O tempo limite para esta pesquisa foi ultrapassado. Tente usar parâmetros de pesquisa diferentes.",
        "recentchanges-network": "Devido a uma falha técnica, não foi possível carregar nenhum resultado. Tente atualizar a página, por favor.",
+       "recentchanges-notargetpage": "Introduza um nome de página acima para ver as alterações relacionadas a essa página.",
        "recentchanges-feed-description": "Acompanhe neste ''feed'' as mudanças mais recentes da wiki.",
        "recentchanges-label-newpage": "Esta edição criou uma nova página",
        "recentchanges-label-minor": "Esta é uma edição menor",
        "rcfilters-watchlist-showupdated": "As mudanças das páginas que ainda não visitou após terem sido alteradas aparecem a <strong>negrito</strong>, com marcadores sólidos.",
        "rcfilters-preference-label": "Ocultar a versão melhorada das mudanças recentes",
        "rcfilters-preference-help": "Reverte o redesenho da interface de 2017 e todas as ferramentas adicionadas na altura e desde então.",
-       "rcfilters-filter-showlinkedfrom-label": "Mostrar mudanças de páginas para as quais esta página contém hiperligações:",
-       "rcfilters-filter-showlinkedfrom-option-label": "Mostrar mudanças de páginas PARA AS QUAIS uma página contém hiperligações",
-       "rcfilters-filter-showlinkedto-label": "Mostrar mudanças de páginas que contêm hiperligações para a página:",
-       "rcfilters-filter-showlinkedto-option-label": "Mostrar mudanças de páginas QUE CONTÊM hiperligações para uma página",
+       "rcfilters-filter-showlinkedfrom-label": "Mostrar mudanças de páginas para as quais esta página contém hiperligações",
+       "rcfilters-filter-showlinkedfrom-option-label": "Mostrar mudanças de páginas <strong>PARA AS QUAIS</strong> uma página contém hiperligações",
+       "rcfilters-filter-showlinkedto-label": "Mostrar mudanças de páginas que contêm hiperligações para a página",
+       "rcfilters-filter-showlinkedto-option-label": "Mostrar mudanças de páginas <strong>QUE CONTÊM</strong> hiperligações para uma página",
        "rcfilters-target-page-placeholder": "Selecionar uma página",
        "rcnotefrom": "Abaixo {{PLURAL:$5|está a mudança|estão as mudanças}} desde <strong>$2</strong> (mostradas até <strong>$1</strong>).",
        "rclistfromreset": "Reiniciar a seleção da data",
index 8952caf..f3f44c8 100644 (file)
        "noarticletext-nopermission": "See also {{msg-mw|Noarticletext}}.",
        "noarticletextanon": "{{notranslate}}\nDefault:\n* {{msg-mw|Noarticletext}}",
        "missing-revision": "Text displayed when the requested revision does not exist using a permalink.\n\nExample: [{{canonicalurl:Project:News|oldid=9999999}} Permalink with invalid revision#]\n\nParameters:\n* $1 - the ID of the missing revision",
-       "userpage-userdoesnotexist": "Error message displayed when trying to edit or create a page or a subpage that belongs to a user who is not registered on the wiki.\n\nParameters:\n* $1 - a username\n{{identical|userdoesnotexist}}",
-       "userpage-userdoesnotexist-view": "Shown in user pages of non-existing users. See for example [{{canonicalurl:User:Foo}} User:Foo].\n\nParameters:\n* $1 - a username\n{{identical|userdoesnotexist}}",
+       "userpage-userdoesnotexist": "Error message displayed when trying to edit or create a page or a subpage that belongs to a user who is not registered on the wiki.\n\nParameters:\n* $1 - a username\n{{Identical|Userdoesnotexist}}",
+       "userpage-userdoesnotexist-view": "Shown in user pages of non-existing users. See for example [{{canonicalurl:User:Foo}} User:Foo].\n\nParameters:\n* $1 - a username\n{{Identical|Userdoesnotexist}}",
        "blocked-notice-logextract": "{{gender}}\nParameters:\n* $1 - (Optional) the name of the blocked user. Can be used for GENDER.",
        "clearyourcache": "Text at the top of .js/.css pages.\n\nWhen translating browser function names, check how they are translated in the localized versions of these web browsers in your language. If a browser is not translated to it, use English or another language in which browsers are most commonly used by the speakers of your language.",
        "usercssyoucanpreview": "Text displayed on every CSS page.\n\nSee also:\n* {{msg-mw|Userjsyoucanpreview}}\n* {{msg-mw|Showpreview}}",
        "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}}\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-model-json": "{{optional}}\nName 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}}\n{{identical|JSON}}",
        "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.",
        "deprecated-self-close-category": "This message is used as a category name for a [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages are placed automatically if they contain invalid self-closed HTML tags, such as <code>&lt;b/></code> or <code>&lt;span/></code>.  The behavior of these will change soon to be consistent with the HTML5 specification, so their use in wikitext is deprecated.",
        "timezoneregion-indian": "Used in \"Time zone\" listbox in [[Special:Preferences#mw-prefsection-datetime|preferences]], \"date and time\" tab.\n{{Related|Timezoneregion}}",
        "timezoneregion-pacific": "Used in \"Time zone\" listbox in [[Special:Preferences#mw-prefsection-datetime|preferences]], \"date and time\" tab.\n{{Related|Timezoneregion}}",
        "allowemail": "Used in [[Special:Preferences]] > {{int:prefs-personal}} > {{int:email}}.",
+       "email-allow-new-users-label": "Used in [[Special:Preferences]] > {{int:prefs-prohibit}} > {{int:email}}.",
        "email-blacklist-label": "Used in [[Special:Preferences]] > {{int:prefs-prohibit}} > {{int:email}}.",
        "prefs-searchoptions": "{{Identical|Search}}",
        "prefs-namespaces": "Shown as legend of the second fieldset of the tab 'Search' in [[Special:Preferences]]\n{{Identical|Namespace}}",
        "right-siteadmin": "{{doc-right|siteadmin}}",
        "right-override-export-depth": "{{doc-right|override-export-depth}}",
        "right-sendemail": "{{doc-right|sendemail}}",
+       "right-sendemail-new-users": "{{doc-right|sendemail-new-users}}",
        "right-managechangetags": "{{doc-right|managechangetags}}",
        "right-applychangetags": "{{doc-right|applychangetags}}",
        "right-changetags": "{{doc-right|changetags}}",
        "rcshowhidepatr-show": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidepatr}}.\n\nSee also:\n* {{msg-mw|rcshowhidepatr-hide}}\n{{Identical|Show}}",
        "rcshowhidepatr-hide": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidepatr}}.\n\nSee also:\n* {{msg-mw|rcshowhidepatr-show}}\n{{Identical|Hide}}",
        "rcshowhidemine": "Option text in [[Special:RecentChanges]]. Parameters:\n* $1 - the \"show/hide\" command, with the text taken from either {{msg-mw|rcshowhidemine-show}} or {{msg-mw|rcshowhidemine-hide}}",
-       "rcshowhidemine-show": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidemine}}.\n\nSee also:\n* {{msg-mw|rcshowhidemine-hide}}\n{{Identical|show}}",
-       "rcshowhidemine-hide": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidemine}}.\n\nSee also:\n* {{msg-mw|rcshowhidemine-show}}\n{{Identical|hide}}",
+       "rcshowhidemine-show": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidemine}}.\n\nSee also:\n* {{msg-mw|rcshowhidemine-hide}}\n{{Identical|Show}}",
+       "rcshowhidemine-hide": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidemine}}.\n\nSee also:\n* {{msg-mw|rcshowhidemine-show}}\n{{Identical|Hide}}",
        "rcshowhidecategorization": "Option text in [[Special:RecentChanges]]. Parameters:\n* $1 - the \"show/hide\" command, with the text taken from either {{msg-mw|rcshowhidecategorization-show}} or {{msg-mw|rcshowhidecategorization-hide}}",
-       "rcshowhidecategorization-show": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidecategorization}}.\n\nSee also:\n* {{msg-mw|rcshowhidecategorization-hide}}\n{{Identical|show}}",
-       "rcshowhidecategorization-hide": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidecategorization}}.\n\nSee also:\n* {{msg-mw|rcshowhidecategorization-show}}\n{{Identical|hide}}",
+       "rcshowhidecategorization-show": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidecategorization}}.\n\nSee also:\n* {{msg-mw|rcshowhidecategorization-hide}}\n{{Identical|Show}}",
+       "rcshowhidecategorization-hide": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidecategorization}}.\n\nSee also:\n* {{msg-mw|rcshowhidecategorization-show}}\n{{Identical|Hide}}",
        "rclinks": "Used on [[Special:RecentChanges]].\n* $1 - a list of different choices with number of pages to be shown.<br />&nbsp;Example: \"''50{{int:pipe-separator}}100{{int:pipe-separator}}250{{int:pipe-separator}}500\".\n* $2 - a list of clickable links with a number of days for which recent changes are to be displayed.<br />&nbsp;Example: \"''1{{int:pipe-separator}}3{{int:pipe-separator}}7{{int:pipe-separator}}14{{int:pipe-separator}}30''\".",
        "diff": "Short form of \"differences\". Used on [[Special:RecentChanges]], [[Special:Watchlist]], ...\n{{Identical|Diff}}",
        "hist": "Short form of \"history\". Used on [[Special:RecentChanges]], [[Special:Watchlist]], ...",
        "mycontris": "In the personal urls page section - right upper corner.\n\nSee also:\n* {{msg-mw|Mycontris}}\n* {{msg-mw|Accesskey-pt-mycontris}}\n* {{msg-mw|Tooltip-pt-mycontris}}\n{{Identical|Contribution}}",
        "anoncontribs": "Same as {{msg-mw|mycontris}} but used for non-logged-in users.\n\nSee also:\n* {{msg-mw|Accesskey-pt-anoncontribs}}\n* {{msg-mw|Tooltip-pt-anoncontribs}}\n{{Identical|Contribution}}",
        "contribsub2": "Contributions for \"user\" (links). Parameters:\n* $1 is an IP address or a username, with a link which points to the user page (if registered user).\n* $2 is list of tool links. The list contains a link which has text {{msg-mw|Sp-contributions-talk}}.\n* $3 is a plain text username used for GENDER.\n{{Identical|For $1}}",
-       "contributions-userdoesnotexist": "This message is used in [[Special:Contributions]]. It is used to tell the user that the name he searched for doesn't exists.\n\nParameters:\n* $1 - a username\n\n{{identical|userdoesnotexist}}",
+       "contributions-userdoesnotexist": "This message is used in [[Special:Contributions]]. It is used to tell the user that the name he searched for doesn't exists.\n\nParameters:\n* $1 - a username\n{{Identical|Userdoesnotexist}}",
        "nocontribs": "Used in [[Special:Contributions]] and [[Special:DeletedContributions]].\n\nSee examples: [[Special:Contributions/x]] and [[Special:DeletedContributions/x]].\n\nParameters:\n* $1 - (Unused) the user name",
        "uctop": "This message is used in [[Special:Contributions]]. It is used to show that a particular edit was the last made to a page. Example: 09:57, 11 February 2008 (hist) (diff) Pagename‎ (edit summary) (current)\n{{Identical|Current}}",
        "month": "Used in [[Special:Contributions]] and history pages ([{{fullurl:Sandbox|action=history}} example]), as label for a dropdown box to select a specific month to view the edits made in that month, and the earlier months. See also {{msg-mw|year}}.",
        "ipb_blocked_as_range": "Used when unblock of a single IP fails. Parameters:\n* $1 - IP address\n* $2 - IP address range",
        "ip_range_invalid": "Used as error message in [[Special:Block]].\n\nSee also:\n* {{msg-mw|Range block disabled}}\n* {{msg-mw|Ip range invalid}}\n* {{msg-mw|Ip range toolarge}}",
        "ip_range_toolarge": "Used as error message in [[Special:Block]]. Parameters:\n* $1 - a number from 0 to 32 for IPv4 (from 0 to 128 for IPv6); a part of CIDR (Classless Inter-Domain Routing) notation.\nSee also:\n* {{msg-mw|Range block disabled}}\n* {{msg-mw|Ip range invalid}}\n* {{msg-mw|Ip range toolarge}}",
-       "ip_range_exceeded": "Used as error message in HTMLUserTextField when an IP range exceeds its maximum amount. See {{mw-msg|ip_range_toolarge}} for parameter.\n/$1 is the width as a number of bits.",
+       "ip_range_exceeded": "Used as error message in HTMLUserTextField when an IP range exceeds its maximum amount. See {{msg-mw|ip_range_toolarge}} for parameter.\n/$1 is the width as a number of bits.",
        "ip_range_toolow": "Used as error message in HTMLUserTextField, if effectively no IP ranges are interpreted as valid (IPv4 CIDR range /32 or IPv6 /128).",
        "proxyblocker": "Used in [[Special:BlockMe]].\n\nSee also:\n* {{msg-mw|proxyblocker-disabled}}\n* {{msg-mw|proxyblockreason}}\n* {{msg-mw|proxyblocksuccess}}",
        "proxyblockreason": "Used as explanation of the reason in [[Special:BlockMe]].\n\nSee also:\n* {{msg-mw|proxyblocker-disabled}}\n* {{msg-mw|proxyblocker}}\n* {{msg-mw|proxyblocksuccess}}",
        "autosumm-new": "The auto summary when creating a new page. $1 are the first X number of characters of the new page.",
        "autosumm-newblank": "The automatic edit summary when creating a blank page. This is not the same as blanking a page.",
        "autoblock_whitelist": "{{notranslate}}",
-       "size-bytes": "Size (of a page, typically) in bytes.",
+       "size-bytes": "Size (of a page, typically) in bytes.\n{{Identical|Byte}}",
        "size-kilobytes": "{{optional}}\nSize (of a page, typically) in kibibytes (1 kibibyte = 1024 bytes).",
        "size-megabytes": "{{optional}}\nSize (of a file, typically) in mebibytes (1 mebibyte = 1024×1024 bytes).",
        "size-gigabytes": "{{optional}}\nSize (of a file, typically) in gibibytes (1 gibibyte = 1024×1024×1024 bytes).",
        "size-exabytes": "{{optional}}\nSize (of a file, typically) in exbibytes (1 exbibytes = 1024×1024×1024×1024×1024×1024 bytes).",
        "size-zetabytes": "{{optional}}\nSize (of a file, typically) in zebibytes (1 zebibytes = 1024×1024×1024×1024×1024×1024×1024 bytes).",
        "size-yottabytes": "{{optional}}\nSize (of a file, typically) in yobibytes (1 yobibytes = 1024×1024×1024×1024×1024×1024×1024×1024 bytes).",
-       "size-pixel": "Size (of a file, typically) in pixel.",
+       "size-pixel": "Size (of a file, typically) in pixel.\n{{Identical|Pixel}}",
        "size-kilopixel": "{{optional}}\nSize (of a file, typically) in kilopixel (1 kilopixel = 1000 pixel).",
        "size-megapixel": "{{optional}}\nSize (of a file, typically) in megapixel (1 megapixel = 1000×1000 pixel).",
        "size-gigapixel": "{{optional}}\nSize (of a file, typically) in gigapixel (1 gigapixel = 1000×1000×1000 pixel).",
index 7df92e7..c898e13 100644 (file)
        "category-article-count": "{{PLURAL:$2|1=Эта категория содержит единственную страницу.|{{PLURAL:$1|Показана $1 страница|Показаны $1 страницы|Показано $1 страниц}} из $2, {{PLURAL:$2|находящейся|находящихся}} в данной категории.}}",
        "category-article-count-limited": "В этой категории {{PLURAL:$1|$1 страница|$1 страницы|$1 страниц|1=только одна страница}}.",
        "category-file-count": "{{PLURAL:$2|1=Эта категория содержит единственный файл.|{{PLURAL:$1|Показан $1 файл|Показано $1 файла|Показаны $1 файлов}} из $2, {{PLURAL:$2|находящегося|находящихся}} в данной категории.}}",
-       "category-file-count-limited": "В этой категории {{PLURAL:$1|1=1 файл|$1 файла|$1 файлов}}.",
+       "category-file-count-limited": "В этой категории {{PLURAL:$1|$1 файл|$1 файла|$1 файлов|1=только один файл}}.",
        "listingcontinuesabbrev": "(продолжение)",
        "index-category": "Индексируемые страницы",
        "noindex-category": "Неиндексируемые страницы",
        "create": "Создать",
        "create-local": "Создать локально",
        "delete": "Удалить",
-       "undelete_short": "Восстановить {{PLURAL:$1|1=$1 правку|$1 правки|$1 правок|1=правку}}",
-       "viewdeleted_short": "Просмотр {{PLURAL:$1|1=$1 удалённой правки|удалённой правки|$1 удалённых правок}}",
+       "undelete_short": "Восстановить {{PLURAL:$1|$1 правку|$1 правки|$1 правок|1=правку}}",
+       "viewdeleted_short": "Просмотр {{PLURAL:$1|1=удалённой правки|$1 удалённой правки|$1 удалённых правок}}",
        "protect": "Защитить",
        "protect_change": "изменить",
        "unprotect": "Изменить защиту",
        "redirectpagesub": "Страница-перенаправление",
        "redirectto": "Перенаправление на:",
        "lastmodifiedat": "Эта страница последний раз была отредактирована $1 в $2.",
-       "viewcount": "К этой странице обращались $1 {{PLURAL:$1|1=раз|раза|раз}}.",
+       "viewcount": "К этой странице обращались $1 {{PLURAL:$1|раз|раза|раз}}.",
        "protectedpage": "Защищённая страница",
        "jumpto": "Перейти к:",
        "jumptonavigation": "навигация",
        "jumptosearch": "поиск",
-       "view-pool-error": "Ð\98звиниÑ\82е, Ð² Ð½Ð°Ñ\81Ñ\82оÑ\8fÑ\89ий Ð¼Ð¾Ð¼ÐµÐ½Ñ\82 Ñ\81еÑ\80веÑ\80Ñ\8b Ð¿ÐµÑ\80егÑ\80Ñ\83женÑ\8b.\nСлиÑ\88ком Ð¼Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ\8cзоваÑ\82елей Ð¿Ñ\8bÑ\82аÑ\8eÑ\82Ñ\81Ñ\8f Ð¿Ñ\80оÑ\81моÑ\82Ñ\80еÑ\82Ñ\8c Ñ\8dÑ\82оÑ\82 Ñ\80еÑ\81Ñ\83Ñ\80Ñ\81.\nÐ\9fожалÑ\83йÑ\81Ñ\82а, Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð¸Ñ\82е Ð¸ Ð¿Ð¾Ð²Ñ\82оÑ\80иÑ\82е Ð¿Ð¾Ð¿Ñ\8bÑ\82кÑ\83 Ð¾Ð±Ñ\80аÑ\89ениÑ\8f Ðº Ð½ÐµÐ¼Ñ\83 Ð¿Ð¾Ð·Ð¶е.\n\n$1",
+       "view-pool-error": "Ð\98звиниÑ\82е, Ð² Ð½Ð°Ñ\81Ñ\82оÑ\8fÑ\89ий Ð¼Ð¾Ð¼ÐµÐ½Ñ\82 Ñ\81еÑ\80веÑ\80Ñ\8b Ð¿ÐµÑ\80егÑ\80Ñ\83женÑ\8b.\nЭÑ\82Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð¿Ñ\8bÑ\82аÑ\8eÑ\82Ñ\81Ñ\8f Ð¾Ð´Ð½Ð¾Ð²Ñ\80еменно Ð¿Ñ\80оÑ\81моÑ\82Ñ\80еÑ\82Ñ\8c Ñ\81лиÑ\88ком Ð¼Ð½Ð¾Ð³Ð¸Ðµ.\nÐ\9fожалÑ\83йÑ\81Ñ\82а, Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð¸Ñ\82е Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ Ð¿ÐµÑ\80ед Ð¿Ð¾Ð²Ñ\82оÑ\80ной Ð¿Ð¾Ð¿Ñ\8bÑ\82кой Ð¾Ð±Ñ\80аÑ\89ениÑ\8f Ðº Ñ\8dÑ\82ой Ñ\81Ñ\82Ñ\80аниÑ\86е.\n\n$1",
        "generic-pool-error": "Извините, в настоящий момент серверы перегружены.\nСлишком много пользователей пытаются просмотреть этот ресурс.\nПожалуйста, подождите и повторите попытку обращения к нему позже.",
        "pool-timeout": "Истекло время ожидания блокировки",
        "pool-queuefull": "Накопитель запросов полон",
        "backlinksubtitle": "← $1",
        "retrievedfrom": "Источник — «$1»",
        "youhavenewmessages": "Вы получили $1 ($2).",
-       "youhavenewmessagesfromusers": "{{PLURAL:$4|Вы получили}} $1 от {{PLURAL:$3|1=$3 участника|$3 участников|1=другого участника}} ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Вы получили}} $1 от {{PLURAL:$3|$3 участника|$3 участников|1=другого участника}} ($2).",
        "youhavenewmessagesmanyusers": "Вы получили $1 от множества пользователей ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|1=новое сообщение|999=новые сообщения}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|1=последнее изменение|999=последние изменения}}",
        "title-invalid-magic-tilde": "Запрашиваемый заголовок страницы содержит недопустимую последовательность тильды (<nowiki>~~~</nowiki>).",
        "title-invalid-too-long": "Запрашиваемый заголовок страницы слишком длинен. Он должен быть не более $1 {{PLURAL:$1|1=байта|байт}} в кодировке UTF-8.",
        "title-invalid-leading-colon": "Запрашиваемое название страницы содержит недопустимое двоеточие в начале.",
-       "perfcached": "Ð\94аннÑ\8bе Ð²Ð·Ñ\8fÑ\82Ñ\8b ÐºÑ\8dÑ\88а; Ð¾Ð½Ð¸ Ð¼Ð¾Ð³Ð»Ð¸ Ñ\83Ñ\81Ñ\82аÑ\80еÑ\82Ñ\8c. Ð\92 ÐºÑ\8dÑ\88е Ñ\85Ñ\80аниÑ\82Ñ\81Ñ\8f Ð½Ðµ Ð±Ð¾Ð»ÐµÐµ $1 {{PLURAL:$1|1=записи|записей}}.",
-       "perfcachedts": "Данные взяты из кэша; последний раз он обновлялся в $1. В кэше хранится не более {{PLURAL:$4|1=$1 записи|$1 записей}}.",
+       "perfcached": "СледÑ\83Ñ\8eÑ\89ие Ð´Ð°Ð½Ð½Ñ\8bе Ð±Ñ\8bли Ð²Ð·Ñ\8fÑ\82Ñ\8b Ð¸Ð· ÐºÑ\8dÑ\88а Ð¸ Ð¼Ð¾Ð³Ñ\83Ñ\82 Ð±Ñ\8bÑ\82Ñ\8c Ñ\83Ñ\81Ñ\82аÑ\80евÑ\88ими. Ð\92 ÐºÑ\8dÑ\88е Ñ\85Ñ\80аниÑ\82Ñ\81Ñ\8f Ð½Ðµ Ð±Ð¾Ð»ÐµÐµ $1 {{PLURAL:$1|записи|записей}}.",
+       "perfcachedts": "Данные взяты из кэша; последний раз он обновлялся в $1. В кэше хранится не более {{PLURAL:$4|1=одной записи|$4 записи|$4 записей}}.",
        "querypage-no-updates": "Обновление этой страницы сейчас отключено.\nПредставленные здесь данные не будут обновляться.",
        "viewsource": "Просмотр вики-текста",
        "viewsource-title": "Просмотр исходного текста страницы $1",
        "virus-badscanner": "Ошибка настройки. Неизвестный сканер вирусов: ''$1''",
        "virus-scanfailed": "ошибка сканирования (код $1)",
        "virus-unknownscanner": "неизвестный антивирус:",
-       "logouttext": "<strong>Вы завершили сеанс работы.</strong>\n\nНекоторые страницы могут продолжить отображаться так, словно вы все еще находитесь в системе. Для борьбы с этим явлением обновите кэш браузера.",
+       "logouttext": "<strong>Вы завершили сеанс работы.</strong>\n\nНекоторые страницы могут продолжить отображаться так, словно вы все ещё не завершили сеанс. Для борьбы с этим явлением обновите кэш браузера.",
        "cannotlogoutnow-title": "Невозможно выйти прямо сейчас",
        "cannotlogoutnow-text": "Нельзя выйти во время использования $1.",
        "welcomeuser": "Добро пожаловать, $1!",
        "createacct-continue-submit": "Продолжить создание учётной записи",
        "createacct-another-continue-submit": "Продолжить создание учётной записи",
        "createacct-benefit-heading": "{{SITENAME}} — совместный труд таких же людей, как вы.",
-       "createacct-benefit-body1": "{{PLURAL:$1|1=$1 правка|$1 правки|$1 правок}}",
-       "createacct-benefit-body2": "{{PLURAL:$1|1=$1 статья|$1 статьи|$1 статей}}",
-       "createacct-benefit-body3": "{{PLURAL:$1|1=$1 участник|$1 участника|$1 участников}} за последнее время",
+       "createacct-benefit-body1": "{{PLURAL:$1|правка|правки|правок}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|страница|страницы|страниц}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|участник|участника|участников}} за последнее время",
        "badretype": "Введённые вами пароли не совпадают.",
        "usernameinprogress": "Создание учётной записи для данного имени участника уже выполняется.\nПожалуйста, подождите.",
        "userexists": "Введённое имя участника уже используется.\nПожалуйста, выберите другое имя.",
        "login-userblocked": "Участник заблокирован. Вход в систему запрещен.",
        "wrongpassword": "Введены неверные имя участника или пароль.\nПопробуйте ещё раз.",
        "wrongpasswordempty": "Пожалуйста, введите непустой пароль.",
-       "passwordtooshort": "Пароль должен состоять не менее, чем из $1 {{PLURAL:$1|1=символа|символов}}.",
+       "passwordtooshort": "Пароль должен состоять не менее, чем из $1 {{PLURAL:$1|символа|символов}}.",
        "passwordtoolong": "Пароль не может содержать более {{PLURAL:$1|1=$1 символа|$1 символов}}.",
        "passwordtoopopular": "Часто выбираемые пароли не могут быть использованы. Пожалуйста, выберите более уникальный пароль.",
        "password-name-match": "Введённый пароль должен отличаться от имени участника.",
        "password-login-forbidden": "Использование этого имени участника и пароля запрещено.",
        "mailmypassword": "Сбросить пароль",
        "passwordremindertitle": "Напоминание пароля участника {{grammar:genitive|{{SITENAME}}}}",
-       "passwordremindertext": "Кто-то (вероятно, вы, с IP-адреса $1) запросил создать\nновый пароль для {{grammar:genitive|{{SITENAME}}}} ($4). Для участника $2\nсоздан временный пароль: $3. Если это был ваш запрос,\nвам следует представиться системе и выбрать новый пароль.\nВаш временный пароль будет действовать в течение $5 {{PLURAL:$5|1=дня|дней}}.\n\nЕсли вы не посылали запроса на смену пароля, или если вы уже вспомнили свой пароль,\nи не желаете его менять, вы можете проигнорировать данное сообщение и\nпродолжить использовать свой старый пароль.",
+       "passwordremindertext": "Кто-то (вероятно, вы, с IP-адреса $1) запросил создать\nновый пароль для {{grammar:genitive|{{SITENAME}}}} ($4). Для участника $2\nсоздан временный пароль: $3. Если это был ваш запрос,\nвам следует представиться системе и выбрать новый пароль.\nВаш временный пароль будет действовать в течение $5 {{PLURAL:$5|дня|дней}}.\n\nЕсли вы не посылали запроса на смену пароля, или если вы уже вспомнили свой пароль,\nи не желаете его менять, вы можете проигнорировать данное сообщение и\nпродолжить использовать свой старый пароль.",
        "noemail": "Для участника с именем $1 электронный адрес указан не был.",
        "noemailcreate": "Вам необходимо указать корректный адрес электронной почты",
        "passwordsent": "Новый пароль был выслан на адрес электронной почты, указанный для участника $1.\n\nПожалуйста, представьтесь системе заново после получения пароля.",
        "blocked-mailpassword": "Редактирование с вашего IP-адреса запрещено. Для предотвращения злоупотреблений для этого IP-адреса заблокирована и функция восстановления пароля.",
        "eauthentsent": "На указанный адрес электронной почты отправлено письмо. \nЧтобы получать письма в дальнейшем, следуйте изложенным там инструкциям для подтверждения, что этот адрес действительно принадлежит вам.",
-       "throttled-mailpassword": "Функция напоминания пароля уже использовалась в течение {{PLURAL:$1|1=последнего часа|последних $1 часов}}.\nДля предотвращения злоупотреблений, разрешено запрашивать не более одного напоминания {{PLURAL:$1|1=за $1 час|за $1 часов|за $1 часа|1=в час}}.",
+       "throttled-mailpassword": "Функция напоминания пароля уже использовалась в течение {{PLURAL:$1|последнего $1 часа|последних $1 часов|1=последнего часа}}.\nДля предотвращения злоупотреблений, разрешено запрашивать не более одного напоминания {{PLURAL:$1|за $1 час|за $1 часа|за $1 часов|1=в час}}.",
        "mailerror": "Ошибка при отправке почты: $1",
        "acct_creation_throttle_hit": "Посетители с вашего IP-адреса {{PLURAL:$1|была создана $1 учётная запись|было создано $1 учётных записей|были созданы $1 учётных записи}} за последние $2 — это предельное количество для данного отрезка времени.\nВ результате, пользователи с этим IP-адресом в данный момент больше не могут создавать новых учётных записей.",
        "emailauthenticated": "Ваш адрес электронной почты подтверждён $2 в $3.",
        "prefs-help-signature": "Комментарии на страницах обсуждений должны быть подписаны с помощью «<nowiki>~~~~</nowiki>», что будет преобразовано в вашу подпись и время.",
        "badsig": "Неверная подпись. Проверьте корректность HTML-тегов.",
        "badsiglength": "Слишком длинная подпись.\nПодпись не должна превышать $1 {{PLURAL:$1|символа|символа|символов}}.",
-       "yourgender": "Ð\9aакое Ð¾Ð¿Ð¸Ñ\81ание Ð¿Ð¾Ð´Ñ\85одиÑ\82 Ð´Ð»Ñ\8f Ð²Ð°Ñ\81 Ð±Ð¾Ð»Ñ\8cÑ\88е Ð²Ñ\81его?",
+       "yourgender": "Ð\9aакое Ð¾Ð¿Ð¸Ñ\81ание Ð²Ñ\8b Ñ\81Ñ\87иÑ\82аеÑ\82е Ð´Ð»Ñ\8f Ñ\81ебÑ\8f Ð±Ð¾Ð»ÐµÐµ Ð¿Ð¾Ð´Ñ\85одÑ\8fÑ\89им?",
        "gender-unknown": "При упоминании вас программное обеспечение будет по возможности использовать гендерно-нейтральные слова",
        "gender-male": "Он редактирует страницы вики",
        "gender-female": "Онa редактирует страницы вики",
-       "prefs-help-gender": "Этот параметр задавать необязательно.\nЗначение будет использовано для того, чтобы обращаться к вам и упоминать вас в правильном грамматическом роде.\nЭта информация будет общедоступной.",
+       "prefs-help-gender": "Этот параметр задавать необязательно.\nЗначение будет использовано для того, чтобы обращаться к вам и упоминать вас в подходящем роде.\nЭта информация будет общедоступной.",
        "email": "Электронная почта",
        "prefs-help-realname": "Вводить настоящее имя необязательно.\nЕсли вы заполните его, оно может быть использовано для указания авторства ваших работ.",
        "prefs-help-email": "Адрес почты не обязателен, но это единственный способ восстановить забытый пароль.",
        "prefs-displaywatchlist": "Настройки отображения",
        "prefs-tokenwatchlist": "Токен",
        "prefs-diffs": "Разница версий",
-       "prefs-help-prefershttps": "ЭÑ\82оÑ\82 Ð¿Ð°Ñ\80амеÑ\82Ñ\80 Ð±Ñ\83деÑ\82 Ð¿Ñ\80именÑ\91н Ñ\82олÑ\8cко Ð¿Ð¾Ñ\81ле Ð¿ÐµÑ\80езахода на сайт.",
+       "prefs-help-prefershttps": "ЭÑ\82оÑ\82 Ð¿Ð°Ñ\80амеÑ\82Ñ\80 Ð±Ñ\83деÑ\82 Ð¿Ñ\80именÑ\91н Ñ\82олÑ\8cко Ð¿Ð¾Ñ\81ле Ð¿Ð¾Ð²Ñ\82оÑ\80ного Ð²хода на сайт.",
        "prefswarning-warning": "Вы внесли в свои настройки изменения, которые ещё не были сохранены.\nЕсли вы покинете эту страницу, не нажав «$1», то настройки обновлены не будут.",
        "prefs-tabs-navigation-hint": "Совет: Вы можете использовать клавиши стрелок влево и вправо для перехода между вкладками в списке вкладок.",
        "userrights": "Права участника",
        "grant-delete": "Удаление страниц, правок и записей журнала",
        "grant-editinterface": "Правка пространства имён MediaWiki и пользовательских CSS/JavaScript",
        "grant-editmycssjs": "Редактирование ваших пользовательских CSS/JavaScript",
-       "grant-editmyoptions": "Редактирование ваших настроек",
+       "grant-editmyoptions": "РедакÑ\82иÑ\80ование Ð²Ð°Ñ\88иÑ\85 Ð¿ÐµÑ\80Ñ\81оналÑ\8cнÑ\8bÑ\85 Ð½Ð°Ñ\81Ñ\82Ñ\80оек",
        "grant-editmywatchlist": "Редактирование вашего списка наблюдения",
        "grant-editpage": "Редактирование существующих страниц",
        "grant-editprotected": "Редактирование защищённых страниц",
index 278d1b1..08d1c7b 100644 (file)
        "newpage": "ᱱᱟᱶᱟ ᱥᱟᱦᱴᱟ",
        "talkpagelinktext": "ᱨᱚᱲ",
        "specialpage": "ᱵᱤᱥᱮᱥ ᱥᱟᱦᱴᱟ",
-       "personaltools": "ᱱᱤᱡᱮᱨá±\9fá±\9c á±¦á±\9fá±¹á±\9bᱤᱭá±\9fᱹᱨᱠᱳ",
+       "personaltools": "ᱱᱤᱡᱮᱨᱟᱜ ᱦᱟᱹᱛᱭᱟᱹᱨᱠᱳ",
        "talk": "ᱜᱟᱞᱢᱟᱨᱟᱣ",
        "views": "ᱧᱮᱞᱚᱜᱚᱜ",
-       "toolbox": "ᱦá±\9fá±¹á±\9bᱤᱭá±\9fᱹᱨ",
+       "toolbox": "ᱦᱟᱹᱛᱭᱟᱹᱨ",
        "imagepage": "ᱨᱮᱫ ᱥᱟᱦᱴᱟ ᱧᱮᱞᱢᱮ",
        "mediawikipage": "ᱠᱷᱚᱵᱚᱨ ᱥᱟᱦᱴᱟ ᱧᱮᱞᱢᱮ",
        "templatepage": "ᱪᱷᱟᱸᱪ ᱥᱟᱦᱴᱟ ᱩᱫᱩᱜᱽ ᱢᱮ",
        "changepassword": "Uku nombor bodolme",
        "resetpass_header": "Ekaunṭ oku namber bodol",
        "oldpassword": "Mare uku nombor",
-       "newpassword": "á±±á±\9fá±£á±\9f á±©á± á±© á±®á±\9eá±¥á±\9aá±\9dᱺ",
+       "newpassword": "á±±á±\9fᱶá±\9f á±«á±\9fá±±á±\9fá±\9dá±¥á±\9fá±µá±\9fᱫᱽᱺ",
        "retypenew": "Doṛhate oku namber olme",
        "resetpass_submit": "Oku namber joṛao ar bhitri bolok",
        "changepassword-success": "Amaḱ oku namber do napayte bodolena!\nNitoḱ do am bhitritem boloḱkana...",
        "botpasswords-label-update": "ᱟᱹᱨᱩ ᱯᱷᱮᱨᱟᱣ",
        "botpasswords-label-cancel": "ᱵᱟᱫᱽ",
        "botpasswords-label-delete": "ᱜᱮᱫ ᱜᱤᱰᱤ",
-       "botpasswords-label-resetpassword": "á±±á±\9fá±£á±\9fá±\9bá±® á±©á± á±© á±®á±\9eá±¥á±\9aá±\9d á±®á±¢á±¢á±®",
+       "botpasswords-label-resetpassword": "á±±á±\9fá±£á±\9fá±\9bá±® á±«á±\9fá±±á±\9fá±\9dá±¥á±\9fá±µá±\9fᱫᱽ á±®á±¢",
        "botpasswords-label-grants-column": "ᱦᱩᱭᱠᱟᱱ",
        "botpasswords-bad-appid": "ᱵᱚᱴ ᱧᱤᱛᱩᱢ \"$1\" ᱵᱟᱝ ᱴᱷᱤᱠᱟ᱾",
        "botpasswords-created-title": "ᱵᱚᱴ ᱩᱠᱩ ᱮᱞᱥᱚᱝ ᱛᱮᱭᱟᱨᱱᱟ",
index fd93bd9..392a55b 100644 (file)
        "searcharticle": "Ēk",
        "history": "Poslapė istuorėjė",
        "history_short": "Istuorėjė",
+       "history_small": "istuorėjė",
        "updatedmarker": "pakeist nug tada, kāp lonkiaus paskotėni sīki",
        "printableversion": "Atmains spausdėnėmou",
        "permalink": "Nūlatėnė nūruoda",
        "views": "Parveizė̄jėmā",
        "toolbox": "Rakondā",
        "tool-link-userrights": "Mainītė {{GENDER:$1|nauduotuoja|nauduotuojės}} gropės",
+       "tool-link-userrights-readonly": "Veizietė {{GENDER:$1|nauduotuojė}} gropės",
        "tool-link-emailuser": "Rašītė gromata {{GENDER:$1|tamou nauduotuojou}}",
        "imagepage": "Veizietė abruozdielė poslapi",
        "mediawikipage": "Ruodītė pranešėma poslapi",
        "jumptonavigation": "naršīms",
        "jumptosearch": "paėiška",
        "view-pool-error": "Atsėprašuom, bat serverē daba īr parkrautė.\nNuognē pardaug nauduotoju skait ton poslapi.\nPrašuom palaukat ė mieginkat i ton poslapi patekt apent.\n\n$1",
-       "generic-pool-error": "Atsėprašuom, ale serverē daba īr parkrautė.\nNuognē pardaug nauduotoju skaita ton poslapi.\nPrašuom palaukat ė mieginkat i ton poslapi patekt apent.\n\n$1",
+       "generic-pool-error": "Atsiprašuom, bet serverē daba īr parkrauti.\nNuognē pardaug nauduotoju miegėn jongtėis.\nPrašuom palaukėt ė mieginkėt i ton poslapi patekt apent.\n\n$1",
        "pool-errorunknown": "Nežėnuoma klaida",
        "poolcounter-usage-error": "Naudojėma soklīdėms: $1",
        "aboutsite": "Aple {{SITENAME}}",
        "mycontris": "Duovis",
        "anoncontribs": "Kūriejē",
        "contribsub2": "Nauduotuojė $1 ($2)",
+       "nocontribs": "Vagol esamus nūstatīmus nieka nerast.",
        "uctop": " (vielībs)",
        "month": "Nug mienėsė (ėr onkstiau):",
        "year": "Nug metu (ėr onkstiau):",
        "pageinfo-watchers": "Kieravuotuoju skaitlios",
        "pageinfo-few-watchers": "Mažiau kap $1 {{PLURAL:$1|kieravuotuos|kieravuotuojē|kieravuotuoju}}",
        "pageinfo-redirects-name": "Nūsokėmu ont ton poslapė skaitlios",
+       "pageinfo-subpages-name": "Poslapie esons poslapė daliū skaitlios.",
        "pageinfo-firstuser": "Poslapė dėrbiejē",
        "pageinfo-firsttime": "Padėrbėma čiesos",
        "pageinfo-lastuser": "Vielībs dėrbies",
index cab90a4..38894c0 100644 (file)
        "sp-contributions-toponly": "ⵎⵍ ⵖⴰⵔ ⵉⵙⵏⴼⵉⵍⵏ ⴳⴰⵏⵉⵏ ⵜⵓⵏⵖⵉⵍⵉⵏ ⵜⵉⵎⵉⵔⴰⵏⵉⵏ",
        "sp-contributions-newonly": "ⵎⵍ ⵖⴰⵔ ⵉⵙⵏⴼⵉⵍⵏ ⴳⴰⵏⵉⵏ ⵉⵙⵏⵓⵍⴼⵓⵜⵏ ⵏ ⵜⴰⵙⵏⵉⵡⵉⵏ",
        "sp-contributions-submit": "ⵙⵉⴳⴳⵍ",
-       "sp-contributions-explain": "↓",
        "whatlinkshere": "ⵎⴰⴷ ⵉⵜⵜⴰⵡⵉⵏ ⵙ ⵖⵉⴷ",
        "whatlinkshere-title": "ⵜⴰⵙⵏⵉⵡⵉⵏ ⵜⵜⴰⵡⵉⵏⵉⵏ ⵙ \"$1\"",
        "whatlinkshere-page": "ⵜⴰⵙⵏⴰ:",
index 0cd765a..6ccd851 100644 (file)
        "right-siteadmin": "Zaklepanje in odklepanje baze podatkov",
        "right-override-export-depth": "Izvoz strani, vključno s povezaimi straneh do globine 5",
        "right-sendemail": "Pošiljanje e-pošte drugim uporabnikom",
+       "right-sendemail-new-users": "Pošlji e-pošto uporabnikom brez zabeleženih dejanj",
        "right-managechangetags": "Ustvarjanje in (dez)aktivacijo [[Special:Tags|oznak]]",
        "right-applychangetags": "Uveljavitev [[Special:Tags|oznak]] skupaj s spremembami",
        "right-changetags": "Dodajanje in odstranjevanje poljubnih [[Special:Tags|oznak]] na posameznih redakcijah in dnevniških vnosih",
index f499863..54c1b2b 100644 (file)
        "tag-list-wrapper": "([[Special:Tags|$1 {{PLURAL:$1|ознака|ознаке|ознака}}]]: $2)",
        "tag-mw-contentmodelchange": "промена модела садржаја",
        "tag-mw-contentmodelchange-description": "Измене које мењају модел садржаја странице",
+       "tag-mw-rollback": "Враћање",
        "tags-title": "Ознаке",
        "tags-intro": "На овој страници је наведен списак ознака с којима програм може да означи измене и његово значење.",
        "tags-tag": "Назив ознаке",
index 73a9c93..ea8f10f 100644 (file)
        "tag-filter-submit": "Filtriraj",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Oznaka|Oznake}}]]: $2)",
        "tag-mw-contentmodelchange-description": "Izmene koje menjaju model sadržaja stranice",
+       "tag-mw-rollback": "Vraćanje",
        "tags-title": "Oznake",
        "tags-intro": "Na ovoj stranici je naveden spisak oznaka s kojima program može da označi izmene i njegovo značenje.",
        "tags-tag": "Naziv oznake",
index dc8f4d2..84ba0f3 100644 (file)
        "right-siteadmin": "Lås och öppna databasen",
        "right-override-export-depth": "Exportera sidor inklusive länkade sidor till ett djup på 5",
        "right-sendemail": "Skicka e-post till andra användare",
+       "right-sendemail-new-users": "Skicka e-post till användare utan loggade handlingar",
        "right-managechangetags": "Skapa och (in)aktivera [[Special:Tags|märken]]",
        "right-applychangetags": "Tillämpa [[Special:Tags|märken]] tillsammans med ens ändringar",
        "right-changetags": "Lägg till och ta bort godtyckliga [[Special:Tags|märken]] på individuella sidversioner och loggposter.",
index 9fd48c8..c7911a0 100644 (file)
        "readonlywarning": "<strong>คำเตือน: ฐานข้อมูลถูกล็อกเพื่อบำรุงรักษา คุณจึงไม่สามารถบันทึกการแก้ไขของคุณได้ในขณะนี้</strong>\nคุณอาจต้องการคัดลอกและวางข้อความของคุณในไฟล์ข้อความ และบันทึกไว้ภายหลัง\n\nผู้ดูแลระบบที่ล็อกฐานข้อมูลให้คำอธิบายดังนี้: $1",
        "protectedpagewarning": "<strong>คำเตือน: หน้านี้ถูกล็อก เพื่อให้เฉพาะผู้ใช้ที่มีสิทธิผู้ดูแลระบบแก้ไขได้เท่านั้น</strong>\nรายการปูมล่าสุดจัดไว้ด้านล่างเพื่อการอ้างอิง:",
        "semiprotectedpagewarning": "<strong>หมายเหตุ:</strong> หน้านี้ถูกล็อก เพื่อให้เฉพาะผู้ใช้ลงทะเบียนสามารถแก้ไขเท่านั้น\nรายการปูมล่าสุดได้จัดไว้ด้านล่างนี้เพื่อการอ้างอิง",
-       "cascadeprotectedwarning": "<strong>คำเตือน:</strong> หน้านี้ถูกล็อก และแก้ไขได้เฉพาะผู้ใช้ที่มี[[Special:ListGroupRights|สิทธิบางประการ]]ที่สามารถแก้ไขได้ เนื่องจากหน้านี้รวมอยู่ในหน้าที่ถูกล็อกแบบต่อเรียงต่อไปนี้:",
+       "cascadeprotectedwarning": "<strong>คำเตือน:</strong> หน้านี้ถูกล็อก และแก้ไขได้เฉพาะผู้ใช้ที่มี[[Special:ListGroupRights|สิทธิบางประการ]]ที่สามารถแก้ไขได้ เนื่องจากหน้านี้รวมอยู่ใน{{PLURAL:$1|หน้า}}ที่ถูกล็อกแบบต่อเรียงต่อไปนี้:",
        "titleprotectedwarning": "<strong>คำเตือน: หน้านี้ได้รับการป้องกัน สร้างได้เฉพาะผู้ใช้ที่มี[[Special:ListGroupRights|สิทธิจำเพาะ]]เท่านั้น</strong>\nรายการปูมล่าสุดถูกแสดงไว้ด้านล่างเพื่อการอ้างอิง",
        "templatesused": "{{PLURAL:$1|แม่แบบ}}ที่ใช้ในหน้านี้:",
        "templatesusedpreview": "{{PLURAL:$1|แม่แบบ}}ที่ใช้ในตัวอย่างนี้:",
        "right-siteadmin": "ล็อกและปลดล็อกฐานข้อมูล",
        "right-override-export-depth": "ส่งออกหน้า รวมหน้าที่เชื่อมโยงกับหน้านี้สูงสุด 5 ลำดับชั้น",
        "right-sendemail": "ส่งอีเมลหาผู้ใช้อื่น",
-       "right-managechangetags": "สรà¹\89าà¸\87à¹\81ละà¹\80à¸\9bิà¸\94/à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99[[Special:Tags|à¸\9bà¹\89ายà¸\8aืà¹\88อ]]",
-       "right-applychangetags": "à¹\83à¸\8aà¹\89[[Special:Tags|à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9a]]ร่วมกับการเปลี่ยนแปลงของผู้ใช้",
-       "right-deletechangetags": "ลà¸\9a[[Special:Tags|à¸\9bà¹\89ายà¸\8aืà¹\88อ]]ออกจากฐานข้อมูล",
+       "right-managechangetags": "สรà¹\89าà¸\87à¹\81ละà¹\80à¸\9bิà¸\94/à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99[[Special:Tags|à¸\9bà¹\89ายระà¸\9aุ]]",
+       "right-applychangetags": "à¹\83à¸\8aà¹\89[[Special:Tags|à¸\9bà¹\89ายระà¸\9aุ]]ร่วมกับการเปลี่ยนแปลงของผู้ใช้",
+       "right-deletechangetags": "ลà¸\9a[[Special:Tags|à¸\9bà¹\89ายระà¸\9aุ]]ออกจากฐานข้อมูล",
        "grant-group-page-interaction": "โต้ตอบกับหน้า",
        "grant-group-file-interaction": "โต้ตอบกับสื่อ",
        "grant-group-watchlist-interaction": "โต้ตอบกับรายการเฝ้าดูของคุณ",
        "action-viewmyprivateinfo": "ดูสารสนเทศส่วนตัวของคุณ",
        "action-editmyprivateinfo": "แก้ไขสารสนเทศส่วนตัวของคุณ",
        "action-editcontentmodel": "แก้ไขตัวแบบเนื้อหาของหน้า",
-       "action-deletechangetags": "ลà¸\9aà¸\9bà¹\89ายà¸\8aืà¹\88อออกจากฐานข้อมูล",
+       "action-deletechangetags": "ลà¸\9aà¸\9bà¹\89ายระà¸\9aุออกจากฐานข้อมูล",
        "action-purge": "ล้างหน้านี้",
        "nchanges": "$1 การเปลี่ยนแปลง",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|ตั้งแต่การเยี่ยมชมครั้งสุดท้าย}}",
        "recentchanges-legend": "ตัวเลือกการปรับปรุงล่าสุด",
        "recentchanges-summary": "ติดตามการเปลี่ยนแปลงล่าสุดบนวิกินี้ได้ทางหน้านี้",
        "recentchanges-noresult": "ไม่มีการเปลี่ยนแปลงในช่วงที่กำหนดซึ่งตรงกับเกณฑ์เหล่านี้",
+       "recentchanges-timeout": "การค้นหานี้หมดเวลาแล้ว คุณอาจต้องการลองตัวแปรเสริมค้นหาอื่น",
+       "recentchanges-network": "เนื่องจากข้อผิดพลาดทางเทคนิค จึงไม่สามารถโหลดผลลัพธ์ได้ กรุณาลองรีเฟรชหน้า",
        "recentchanges-notargetpage": "กรอกชื่อหน้าด้านบนเพื่อดูการเปลี่ยนแปลงที่สัมพันธ์กับหน้านั้น",
        "recentchanges-feed-description": "ติดตามการปรับปรุงล่าสุดในวิกินี้ในฟีดนี้",
        "recentchanges-label-newpage": "การแก้ไขนี้สร้างหน้าใหม่",
        "rcfilters-highlightmenu-help": "เลือกสีสำหรับเน้นการแสดงคุณสมบัตินี้",
        "rcfilters-filterlist-noresults": "ไม่พบตัวกรองใด ๆ",
        "rcfilters-noresults-conflict": "ไม่พบผลลัพธ์ เนื่องจากเงื่อนไขการค้นขัดแย้งกัน",
+       "rcfilters-state-message-subset": "ตัวกรองนี้ไม่มีผล เนื่องจากผลลัพธ์ของมันรวมอยู่ในผลลัพธ์ของ{{PLURAL:$2|ตัวกรอง}}ที่กว้างกว่าต่อไปนี้ (ลองเน้นเพื่อแยกแยะ) : $1",
+       "rcfilters-state-message-fullcoverage": "การเลือกตัวกรองในกลุ่มนี้มีค่าเท่ากับไม่เลือก ฉะนั้นตัวกรองนี้จึงไม่มีผล กลุ่มนี้มี: $1",
+       "rcfilters-filtergroup-authorship": "การประพันธ์มีส่วนร่วม",
        "rcfilters-filter-editsbyself-label": "การแก้ไขของคุณ",
        "rcfilters-filter-editsbyself-description": "การแก้ไขของคุณเอง",
        "rcfilters-filter-editsbyother-label": "การแก้ไขของผู้อื่น",
        "rcfilters-filter-categorization-description": "ประวัติเพิ่มเข้าหรือลบออกซึ่งหน้าหมวดหมู่",
        "rcfilters-filter-logactions-label": "การกระทำที่ลงบันทึก",
        "rcfilters-filter-logactions-description": "การกระทำของผู้ดูแลระบบ การสร้างบัญชี การลบหน้า การอัปโหลด...",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "ตัวกรอง \"แก้ไขเล็กน้อย\" ขัดแย้งกับชนิดตัวกรองการเปลี่ยนแปลงตั้งแต่หนึ่งตัวกรอง เพราะการเปลี่ยนแปลงบางประเภทไม่สามารถตั้งให้เป็น \"เล็กน้อย\" ตัวกรองที่ขัดแย้งนี้มีการทำเครื่องหมายไว้ในพื้นที่ตัวกรองที่กำลังเปิดใช้งานด้านบน",
+       "rcfilters-hideminor-conflicts-typeofchange": "การเปลี่ยนแปลงบางประเภทไม่สามารถตั้งให้เป็น \"เล็กน้อย\" ฉะนั้นตัวกรองนี้จึงขัดแย้งกับตัวกรองชนิดการเปลี่ยนแปลงต่อไปนี้: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "ตัวกรองชนิดการเปลี่ยนแปลงนี้ขัดแย้งกับตัวกรอง \"เล็กน้อย\" การเปลี่ยนแปลงบางประเภทไม่สามารถตั้งให้เป็น \"เล็กน้อย\"",
        "rcfilters-filtergroup-lastRevision": "รุ่นล่าสุด",
        "rcfilters-filter-lastrevision-label": "รุ่นล่าสุด",
        "rcfilters-filter-lastrevision-description": "เฉพาะการเปลี่ยนแปลงล่าสุดของหน้า",
        "rcfilters-view-namespaces-tooltip": "กรองผลลัพธ์ตามเนมสเปซ",
        "rcfilters-view-tags-tooltip": "กรองผลลัพธ์โดยใช้ป้ายระบุการแก้ไข",
        "rcfilters-view-return-to-default-tooltip": "กลับรายการเลือกตัวกรองหลัก",
+       "rcfilters-view-tags-help-icon-tooltip": "เรียนรู้เพิ่มเกี่ยวกับการแก้ไขที่ติดป้ายระบุ",
        "rcfilters-liveupdates-button": "การปรับสด",
        "rcfilters-liveupdates-button-title-on": "ปิดการปรับสด",
        "rcfilters-liveupdates-button-title-off": "แสดงการเปลี่ยนแปลงใหม่ทันที",
        "tooltip-pt-mycontris": "รายการหน้าที่{{GENDER:|คุณ}}เขียน",
        "tooltip-pt-anoncontribs": "รายการการแก้ไขจากเลขที่อยู่ไอพีนี้",
        "tooltip-pt-login": "สนับสนุนให้คุณล็อกอิน แต่ไม่บังคับ",
+       "tooltip-pt-login-private": "คุณต้องล็อกอินจึงจะใช้วิกินี้ได้",
        "tooltip-pt-logout": "ล็อกเอาต์",
        "tooltip-pt-createaccount": "สนับสนุนให้คุณสร้างบัญชีและล็อกอิน แต่ไม่บังคับ",
        "tooltip-ca-talk": "อภิปรายเกี่ยวกับหน้าเนื้อหา",
        "tooltip-feed-rss": "ฟีดชนิดอาร์เอสเอส (RSS) ของหน้านี้",
        "tooltip-feed-atom": "ฟีดอะตอม (Atom) ของหน้านี้",
        "tooltip-t-contributions": "รายการเรื่องที่{{GENDER:$1|ผู้ใช้นี้}}เขียน",
-       "tooltip-t-emailuser": "ส่งอีเมลถึงผู้ใช้นี้",
+       "tooltip-t-emailuser": "ส่งอีเมลถึง{{GENDER:$1|ผู้ใช้นี้}}",
        "tooltip-t-info": "สารสนเทศเพิ่มเติมเกี่ยวกับหน้านี้",
        "tooltip-t-upload": "อัปโหลดไฟล์",
        "tooltip-t-specialpages": "รายการหน้าพิเศษทั้งหมด",
        "tooltip-ca-nstab-category": "ดูหน้าหมวดหมู่",
        "tooltip-minoredit": "ทำเครื่องหมายเป็นการแก้ไขเล็กน้อย",
        "tooltip-save": "บันทึกการแก้ไขของคุณ",
+       "tooltip-publish": "เผยแพร่การเปลี่ยนแปลงของคุณ",
        "tooltip-preview": "แสดงตัวอย่างการเปลี่ยนแปลงของคุณ กรุณาใช้คำสั่งนี้ก่อนบันทึก!",
        "tooltip-diff": "แสดงการเปลี่ยนแปลงที่คุณทำต่อข้อความ",
        "tooltip-compareselectedversions": "แสดงความแตกต่างระหว่างสองรุ่นที่เลือกของหน้านี้",
        "lastmodifiedatby": "แก้ไขหน้านี้ล่าสุดเมื่อเวลา $2, $1 โดย $3",
        "othercontribs": "พัฒนาจากงานเขียนของ $1",
        "others": "ผู้อื่น",
-       "siteusers": "{{PLURAL:$2|ผู้ใช้|ผู้ใช้}}จาก {{SITENAME}} $1",
+       "siteusers": "{{PLURAL:$2|{{GENDER:$1|ผู้ใช้}}}}จาก {{SITENAME}} $1",
        "anonusers": "{{PLURAL:$2|ผู้ใช้|ผู้ใช้}}นิรนามจาก {{SITENAME}} $1",
        "creditspage": "เกียรติแก่ผู้ร่วมสร้าง",
        "nocredits": "ไม่มีรายชื่อผู้เป็นเกียรติที่ร่วมสร้างหน้านี้",
        "blankpage": "หน้าว่าง",
        "intentionallyblankpage": "หน้านี้ถูกปล่อยว่างโดยเจตนา",
        "external_image_whitelist": "  #เว้นบรรทัดนี้ไว้จากการแก้ไข<pre>\n#ใส่คำอธิบายปกติ (เฉพาะในส่วนที่อยู่ระหว่างสัญลักษณ์ //) ด้านล่างนี้\n#ซึ่งคำอธิบายดังกล่าวจะถูกจับคู่กับ URL ของรูปถ่ายภายนอก\n#ถ้าตรงกันจะปรากฏเป็นภาพออกมา หรือมิเช่นนั้นจะปรากฏเป็นลิงก์ไปยังรูปภาพนั้น\n#บรรทัดที่ขึ้นต้นด้วย # จะถูกกำหนดเป็นหมายเหตุเพิ่มเติม\n#กรุณาพิมพ์ตัวพิมพ์เล็ก-ใหญ่ตามชื่อไฟล์ให้ตรงกัน\n\n#ใส่ส่วนของคำอธิบายด้านบนของบรรทัดนี้และเว้นบรรทัดนี้จากการแก้ไข</pre>",
-       "tags": "à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9aà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87 (à¸\97ีà¹\88สามารà¸\96à¹\83à¸\8aà¹\89à¹\84à¸\94à¹\89)",
+       "tags": "à¸\9bà¹\89ายระà¸\9aุà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\97ีà¹\88สมà¹\80หà¸\95ุสมà¸\9cล",
        "tag-filter": "ตัวกรอง[[Special:Tags|ป้ายระบุ]]:",
        "tag-filter-submit": "กรอง",
-       "tag-list-wrapper": "([[Special:Tags|ป้ายระบุ]]: $2)",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ป้ายระบุ}}]]: $2)",
        "tag-mw-new-redirect": "เปลี่ยนทางใหม่",
        "tag-mw-new-redirect-description": "การแก้ไขที่สร้างหน้าเปลี่ยนทางใหม่หรือเปลี่ยนแปลงหน้าเป็นหน้าเปลี่ยนทาง",
        "tag-mw-removed-redirect": "ลบหน้าเปล่ี่ยนทาง",
        "tag-mw-removed-redirect-description": "การแก้ไขี่เปลี่ยนหน้าเปลีี่ยนทางเดิมให้มิใช่หน้าเปลี่ยนทาง",
+       "tag-mw-changed-redirect-target": "เปลี่ยนเป้าหมายหน้าเปลี่ยนทาง",
+       "tag-mw-changed-redirect-target-description": "การแก้ไขที่เปลี่ยนเป้าหมายของหน้าเปลี่ยนทาง",
        "tag-mw-blank": "ทำหน้าว่าง",
+       "tag-mw-blank-description": "การแก้ไขที่ทำหน้าว่าง",
+       "tag-mw-replace": "ถูกแทน",
+       "tag-mw-replace-description": "การแก้ไขซึ่งลบเนื้อหากว่า 90% ของหน้า",
        "tag-mw-rollback": "ย้อนกลับ",
-       "tags-title": "ป้ายกำกับ",
-       "tags-intro": "หน้านี้แสดงรายการและความหมายของป้ายกำกับต่างๆ ที่ซอฟต์แวร์อาจจะใช้ทำเครื่องหมายกำกับการแก้ไข",
+       "tag-mw-rollback-description": "การแก้ไขซึ่งย้อนการแก้ไขก่อนหน้าโดยใช้ลิงก์ย้อนกลับฉุกเฉิน",
+       "tags-title": "ป้ายระบุ",
+       "tags-intro": "หน้านี้แสดงรายการและความหมายของป้ายระบุที่ซอฟต์แวร์อาจใช้ทำเครื่องหมายกำกับการแก้ไข",
        "tags-tag": "ชื่อป้ายกำกับ",
        "tags-display-header": "สิ่งที่แสดงในรายการการเปลี่ยนแปลง",
        "tags-description-header": "คำอธิบายความหมายโดยละเอียด",
        "tags-source-header": "แหล่งที่มา",
        "tags-active-header": "เปิดใช้งานหรือไม่",
-       "tags-hitcount-header": "à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\97ีà¹\88มีà¸\9bà¹\89ายà¸\99ีà¹\89à¸\81ำà¸\81ัà¸\9a",
+       "tags-hitcount-header": "à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\97ีà¹\88à¸\95ิà¸\94à¸\9bà¹\89ายระà¸\9aุ",
        "tags-actions-header": "ปฏิบัติการ",
        "tags-active-yes": "ใช่",
        "tags-active-no": "ไม่",
        "tags-activate": "เปิดใช้งาน",
        "tags-deactivate": "ปิดใช้งาน",
        "tags-hitcount": "$1 การเปลี่ยนแปลง",
+       "tags-manage-no-permission": "คุณไม่ได้รับอนุญาตให้จัดการเปลี่ยนป้ายระบุ",
+       "tags-manage-blocked": "คุณไม่สามารถจัดการป้ายระบุเปลี่ยนแปลงระหว่าง{{GENDER:$1|คุณ}}กำลังถูกบล็อก",
+       "tags-create-heading": "สร้างป้ายระบุใหม่",
+       "tags-create-explanation": "ป้ายระบุที่สร้างใหม่สามารถใช้ได้ทั้งผู้ใช้และบอตโดยปริยาย",
+       "tags-create-tag-name": "ชื่อป้ายระบุ:",
+       "tags-create-reason": "เหตุผล:",
+       "tags-create-submit": "สร้าง",
+       "tags-create-no-name": "คุณต้องเจาะจงชื่อป้ายระบุ",
+       "tags-create-invalid-chars": "ชื่อป้ายระบุต้องไม่มีจุลภาค (<code>,</code>) ไปป์ (<code>|</code>) หรือทับ (<code>/</code>)",
+       "tags-create-invalid-title-chars": "ชื่อป้ายระบุต้องไม่มีอักขระที่ไม่สามารถใช้ในชื่อหน้า",
+       "tags-create-already-exists": "มีป้ายระบุ \"$1\" แล้ว",
+       "tags-create-warnings-above": "พบ{{PLURAL:$2|คำเตือน}}ต่อไปนี้เมื่อพยายามสร้างป้ายระบุ \"$1\"",
+       "tags-create-warnings-below": "คุณยังต้องการสร้างป้ายระบุนี้ต่อหรือไม่",
+       "tags-delete-title": "ลบป้ายระบุ",
+       "tags-delete-explanation-initial": "คุณกำลังลบป้ายระบุ \"$1\" จากฐานข้อมูล",
+       "tags-delete-explanation-in-use": "การนี้จะลบ $2 รุ่นทั้งหมดและ/หรือหน่วยปูมซึ่งกำลังใช้อยู่",
+       "tags-delete-explanation-warning": "ปฏิบัติการนี้<strong>ผันกลับไม่ได้</strong>และ<strong>ไม่สามารถทำกลับ</strong> แม้แต่ผู้ดูแลระบบฐานข้อมูล ให้แน่ใจว่านี่เป็นป้ายระบุที่คุณตั้งใจลบ",
+       "tags-delete-explanation-active": "<strong>ป้ายระบุ \"$1\" ยังเปิดใช้งานอยู่ และจะยังมีผลใช้ในอนาคต</strong> หากต้องการหยุด ให้ไปยังที่ซึ่งตั้งให้ป้ายระบุนี้มีผลใช้และปิดใช้งานที่นั่น",
+       "tags-delete-reason": "เหตุผล:",
+       "tags-delete-submit": "ลบป้ายระบุนี้แบบผันกลับไม่ได้",
+       "tags-delete-not-allowed": "ลบป้ายระบุที่ส่วนขยายนิยามไม่ได้ยกเว้นส่วนขยายนั้นเจาะจงอนุญาต",
+       "tags-delete-not-found": "ไม่มีป้ายระบุ \"$1\"",
+       "tags-delete-too-many-uses": "ป้ายะรุบ \"$1\" มีผลใช้ในกว่า $2 รุ่น ฉะนั้นจึงไม่สามารถลบ",
        "comparepages": "เปรียบเทียบหน้า",
        "compare-page1": "หน้า 1",
        "compare-page2": "หน้า 2",
        "restore-count-revisions": "$1 รุ่น",
        "restore-count-files": "$1 ไฟล์",
        "logentry-delete-event": "$1 เปลี่ยนทัศนวิสัยของ $5 รายการปูมใน $3: $4",
-       "logentry-delete-revision": "$1 เปลี่ยนทัศนวิสัยของ $5 รุ่นในหน้า $3: $4",
+       "logentry-delete-revision": "$1 {{GENDER:$2|เปลี่ยนทัศนวิสัย}}ของ $5 รุ่นในหน้า $3: $4",
        "logentry-delete-event-legacy": "$1 เปลี่ยนทัศนวิสัยของเหตุการณ์ปูมในหน้า $3",
        "logentry-delete-revision-legacy": "$1 เปลี่ยนทัศนวิสัยของรุ่นในหน้า $3",
        "logentry-suppress-delete": "$1 ระงับหน้า $3",
        "logentry-move-move_redir": "$1 ย้ายหน้า $3 ไปยัง $4 ทับหน้าเปลี่ยนทาง",
        "logentry-move-move_redir-noredirect": "$1 ย้ายหน้า $3 ไปยัง $4 ทับหน้าเปลี่ยนทาง โดยไม่สร้างหน้าเปลี่ยนทางตามมา",
        "logentry-patrol-patrol": "$1 ทำเครื่องหมายว่ารุ่น $4 ของหน้า $3 ได้รับการตรวจสอบแล้ว",
-       "logentry-patrol-patrol-auto": "$1 ทำเครื่องหมายโดยอัตโนมัติว่ารุ่น $4 ของหน้า $3 ได้รับการตรวจสอบแล้ว",
+       "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|ทำเครื่องหมาย}}โดยอัตโนมัติว่ารุ่น $4 ของหน้า $3 ได้รับการตรวจสอบแล้ว",
        "logentry-newusers-newusers": "บัญชีผู้ใช้ $1 ถูกสร้าง",
        "logentry-newusers-create": "บัญชีผู้ใช้ $1 ถูกสร้าง",
        "logentry-newusers-create2": "บัญชีผู้ใช้ $3 ถูกสร้างขึ้นโดย $1",
        "log-action-filter-contentmodel": "ประเภทของการเปลี่ยนตัวแบบเนื้อหา:",
        "log-action-filter-delete": "ประเภทของการลบ:",
        "log-action-filter-import": "ประเภทของการนำเข้า:",
-       "log-action-filter-managetags": "à¸\9bระà¹\80ภà¸\97à¸\82อà¸\87à¸\81ารà¸\81ระà¸\97ำจัดการป้ายระบุ:",
+       "log-action-filter-managetags": "à¸\9bระà¹\80ภà¸\97à¸\82อà¸\87à¸\9bà¸\8fิà¸\9aัà¸\95ิà¸\81ารจัดการป้ายระบุ:",
        "log-action-filter-move": "ประเภทของการย้าย:",
        "log-action-filter-newusers": "ประเภทของการสร้างบัญชี:",
        "log-action-filter-patrol": "ประเภทของการตรวจสอบหน้า:",
        "log-action-filter-import-interwiki": "การนำเข้าข้ามวิกิ",
        "log-action-filter-managetags-create": "การสร้างป้ายระบุ",
        "log-action-filter-managetags-delete": "การลบป้ายระบุ",
-       "log-action-filter-managetags-activate": "การเปิดใช้งานระบุ",
+       "log-action-filter-managetags-activate": "à¸\81ารà¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\9bà¹\89ายระà¸\9aุ",
        "log-action-filter-managetags-deactivate": "การปิดใช้งานระบุ",
        "log-action-filter-move-move": "การย้ายโดยไม่เขียนทับหน้าเปลี่ยนทาง",
        "log-action-filter-move-move_redir": "การย้ายโดยเขียนทับหน้าเปลี่ยนทาง",
index e6f5a51..5082649 100644 (file)
        "sp-contributions-toponly": "Ipakita lang ang mga pamamatnugot na mga huling rebisyon",
        "sp-contributions-newonly": "Ipakita lang ang mga pamamatnugot na mga nalikhang pahina",
        "sp-contributions-submit": "Hanapin",
-       "sp-contributions-explain": "",
        "whatlinkshere": "Mga nakaturo dito",
        "whatlinkshere-title": "Mga pahinang kumakawing sa $1",
        "whatlinkshere-page": "Pahina:",
index 4841bfb..0d2a97f 100644 (file)
@@ -71,7 +71,8 @@
                        "Similartothissimilartothat",
                        "Bunyk",
                        "Choomaq",
-                       "SimondR"
+                       "SimondR",
+                       "Renamerr"
                ]
        },
        "tog-underline": "Підкреслювання посилань:",
        "recentchangesdays-max": "(максимум $1 {{PLURAL:$1|день|дні|днів}})",
        "recentchangescount": "Кількість редагувань для показу за замовчуванням:",
        "prefs-help-recentchangescount": "Це стосується нових редагувань, історій сторінок і журналів.",
-       "prefs-help-watchlist-token2": "Це секретний ключ до веб-каналу вашого списку спостереження.\nБудь-хто, хто його знає, матиме можливість читати ваш список спостереження, тому не поширюйте його.\n[[Special:ResetTokens|Натисніть тут, якщо вам потрібно скинути його]].",
+       "prefs-help-watchlist-token2": "Це секретний ключ до веб-каналу вашого списку спостереження.\nБудь-хто, хто його знає, матиме можливість читати ваш список спостереження, тому не поширюйте його.\nЯкщо вам потрібно, [[Special:ResetTokens|ви можете скинути його]].",
        "savedprefs": "Ваші налаштування збережено.",
        "savedrights": "Групи {{GENDER:$1|користувача $1|користувачки $1}} було збережено.",
        "timezonelegend": "Часовий пояс:",
        "rcfilters-group-results-by-page": "Групувати результати за сторінкою",
        "rcfilters-activefilters": "Активні фільтри",
        "rcfilters-advancedfilters": "Розширені фільтри",
-       "rcfilters-limit-title": "Зміни, які слід показати",
+       "rcfilters-limit-title": "Результати, які треба показати",
+       "rcfilters-limit-and-date-label": "{{PLURAL:$1|одна зміна|$1 змін}}, $2",
+       "rcfilters-date-popup-title": "Період часу для пошуку",
        "rcfilters-days-title": "Останні дні",
        "rcfilters-hours-title": "Останні години",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|день|дні|днів}}",
index 5635c2f..8eada44 100644 (file)
        "exif-referenceblackwhite": "سیاہ و سفید جوالے کی قدروں کی جوڑی",
        "exif-datetime": "فائل کی تبدیلی کی تاریخ اور وقت",
        "exif-imagedescription": "تصویر کا عنوان",
-       "exif-make": "کیمرہ ساز کمپنی",
+       "exif-make": "کیمرا ساز کمپنی",
        "exif-model": "کیمرے کا ماڈل",
        "exif-software": "مستعمل سافٹ ویئر",
        "exif-artist": "مصنف",
index 3f4ed58..9d344ff 100644 (file)
@@ -38,7 +38,8 @@
                        "Asmen",
                        "Stephanecbisson",
                        "Quoclinh94",
-                       "Tmp1109"
+                       "Tmp1109",
+                       "Phjtieudoc"
                ]
        },
        "tog-underline": "Gạch chân liên kết:",
        "nosuchusershort": "Không có thành viên nào có tên “$1”. Xin hãy kiểm tra lại chính tả.",
        "nouserspecified": "Bạn phải chỉ định một tên người dùng.",
        "login-userblocked": "Thành viên này đã bị cấm. Không cho phép đăng nhập.",
-       "wrongpassword": "Mật khẩu sai. Xin vui lòng nhập lại.",
+       "wrongpassword": "Tên đăng nhập hoặc mật khẩu sai. Xin vui lòng nhập lại.",
        "wrongpasswordempty": "Bạn chưa gõ vào mật khẩu. Xin thử lần nữa.",
        "passwordtooshort": "Mật khẩu phải có ít nhất {{PLURAL:$1|1 ký tự|$1 ký tự}}.",
        "passwordtoolong": "Mật khẩu không thể dài hơn {{PLURAL:$1|1 ký tự|$1 ký tự}}.",
        "botpasswords-insert-failed": "Không thể thêm tên bot \"$1\". Nó đã được thêm vào chưa?",
        "botpasswords-update-failed": "Không thể khi cập nhật bot có tên “$1”. Có phải nó đã bị xóa?",
        "botpasswords-created-title": "Mật khẩu bot đã được tạo",
-       "botpasswords-created-body": "Đã tạo mật khẩu cho bot “$1” của người dùng “$2”.",
+       "botpasswords-created-body": "Đã tạo mật khẩu cho bot tên \"$1\" của {{GENDER:$2|thành viên}} \"$2\".",
        "botpasswords-updated-title": "Mật khẩu Bot đã được cập nhật",
-       "botpasswords-updated-body": "Đã cập nhật mật khẩu cho bot “$1” của người dùng “$2”.",
+       "botpasswords-updated-body": "Đã cập nhật mật khẩu cho bot tên \"$1\" của {{GENDER:$2|thành viên}} \"$2\".",
        "botpasswords-deleted-title": "Mật khẩu bot đã bị xóa",
-       "botpasswords-deleted-body": "Đã xóa mật khẩu cho bot “$1” của người dùng “$2”.",
+       "botpasswords-deleted-body": "Đã xóa mật khẩu cho bot tên \"$1\" của {{GENDER:$2|thành viên}} \"$2\".",
        "botpasswords-newpassword": "Mật khẩu mới để đăng nhập như <strong>$1</strong> là <strong>$2</strong>. <em>Xin hãy ghi lại mật khẩu này để mai mốt tham khảo.</em> <br> (Các bot cũ cần tên đăng nhập khớp với tên người dùng cuối cùng có thể sử  dụng tên người dùng <strong>$3</strong> và mật khẩu <strong>$4</strong>.)",
        "botpasswords-no-provider": "BotPasswordsSessionProvider không có sẵn.",
        "botpasswords-restriction-failed": "Mật khẩu bot giới hạn ngăn chặn đăng nhập này.",
index 963b173..24f73ab 100644 (file)
        "right-siteadmin": "锁定和解锁数据库",
        "right-override-export-depth": "导出页面,包括最多5层链接",
        "right-sendemail": "发送电子邮件给其他用户",
+       "right-sendemail-new-users": "发送电子邮件至没有日志记载操作的用户",
        "right-managechangetags": "创建和(取消)激活[[Special:Tags|标签]]",
        "right-applychangetags": "连同某人的更改一起应用[[Special:Tags|标签]]",
        "right-changetags": "在个别修订和日志记录中添加和移除任意[[Special:Tags|标签]]",
        "variantname-zh": "不转换",
        "variantname-gan-hans": "赣语(简体)",
        "variantname-gan-hant": "赣语(繁体)",
-       "variantname-kk-cyrl": "kk-cyrl",
-       "variantname-crh-latn": "克里米亚鞑靼(拉丁)",
-       "variantname-crh-cyrl": "克里米亚鞑靼(西里尔)",
+       "variantname-kk-cyrl": "哈萨克语(西里尔字母)",
+       "variantname-crh-latn": "克里米亚鞑靼(拉丁)",
+       "variantname-crh-cyrl": "克里米亚鞑靼(西里尔)",
        "metadata": "元数据",
        "metadata-help": "此文件中包含有额外的信息。这些信息可能是由数码相机或扫描仪在创建或数字化过程中所添加的。如果文件自初始状态已受到修改,一些详细说明可能无法反映修改后的文件。",
        "metadata-expand": "显示详细资料",
        "metadata-collapse": "隐藏详细资料",
        "metadata-fields": "在本信息中所列出的 EXIF 元数据域将包含在图片显示页面,当元数据表损坏时只显示以下信息。其他的元数据默认为隐藏。\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-langitem": "<strong>$2:</strong>$1",
        "exif-imagewidth": "宽度",
        "exif-imagelength": "高度",
        "exif-bitspersample": "每像素字节数",
        "exif-personinimage": "描绘的人物",
        "exif-originalimageheight": "裁剪前的图像高度",
        "exif-originalimagewidth": "裁剪前的图像宽度",
+       "exif-subjectnewscode-value": "$2($1)",
        "exif-compression-1": "未压缩",
        "exif-compression-2": "CCITT第3组一维修改霍夫曼游程编码",
        "exif-compression-3": "CCITT第3组传真编码",
        "exif-compression-6": "JPEG(旧)",
        "exif-copyrighted-true": "受版权保护",
        "exif-copyrighted-false": "版权状态未设定",
+       "exif-photometricinterpretation-0": "黑白(白为0)",
        "exif-photometricinterpretation-1": "黑白(黑为0)",
        "exif-unknowndate": "未知日期",
        "exif-orientation-1": "标准",
        "imgmultipagenext": "下一页 →",
        "imgmultigo": "提交!",
        "imgmultigoto": "前往第$1页",
+       "img-lang-opt": "$2($1)",
        "img-lang-default": "(默认语言)",
        "img-lang-info": "以$1生成本图像。$2",
        "img-lang-go": "提交",
        "autosumm-changed-redirect-target": "已将重定向目标从[[$1]]更改为[[$2]]",
        "autosumm-new": "创建页面,内容为“$1”",
        "autosumm-newblank": "创建空白页面",
-       "size-bytes": "$1字节",
+       "size-bytes": "$1{{PLURAL:$1|字节}}",
+       "size-pixel": "$1{{PLURAL:$1|像素}}",
        "lag-warn-normal": "过去$1秒内的更改未必会在这个列表中显示。",
        "lag-warn-high": "由于数据库的过度延迟,$1秒内的更改未必会在这个列表中显示。",
        "watchlistedit-normal-title": "编辑监视列表",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2(<strong>已禁用</strong>)",
        "mediastatistics": "媒体统计",
        "mediastatistics-summary": "有关上传文件类型的统计。这只包含文件的最新版本,旧版本或删除版本则不会包括。",
+       "mediastatistics-nfiles": "$1($2%)",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1字节}}($2;$3%)",
        "mediastatistics-bytespertype": "此段落的总文件大小:{{PLURAL:$1|$1字节}}($2;$3%)。",
        "mediastatistics-allbytes": "所有文件的总文件大小:{{PLURAL:$1|$1字节}}($2)。",
        "authmanager-provider-password-domain": "基于密码和域的身份验证",
        "authmanager-provider-temporarypassword": "临时密码",
        "authprovider-confirmlink-message": "基于您最近的登录尝试,以下账户可被链接至您的wiki账户。链接它们会启用通过这些账户的登录。请选择应链接的账户。",
+       "authprovider-confirmlink-option": "$1($2)",
        "authprovider-confirmlink-request-label": "应被链接的账户",
        "authprovider-confirmlink-success-line": "$1:已成功连接。",
+       "authprovider-confirmlink-failed-line": "$1:$2",
        "authprovider-confirmlink-failed": "账户链接未完全成功:$1",
        "authprovider-confirmlink-ok-help": "在显示链接失败消息后继续。",
        "authprovider-resetpass-skip-label": "跳过",
index 9af1c1e..e10dc54 100644 (file)
        "recentchangeslinked-feed": "相關變更",
        "recentchangeslinked-toolbox": "相關變更",
        "recentchangeslinked-title": "與 \"$1\" 相關的變更",
-       "recentchangeslinked-summary": "此頁面列出指定頁面連結到的所有頁面中 (或指定分類中的所有成員) 有做變更的頁面清單。\n有在 [[Special:Watchlist|您的監視清單]] 中的頁面會以 <strong>粗體</strong> 標示。",
+       "recentchangeslinked-summary": "輸入頁面名稱,來查看頁面所連入或連出頁面的變更。(要查看分類成員的話,請輸入 Category:分類名稱)。會對在[[Special:Watchlist|您的監視清單]]上頁面更改為<strong>粗體</strong>顯示。",
        "recentchangeslinked-page": "頁面名稱:",
        "recentchangeslinked-to": "改顯示連結至指定頁面的變更",
        "recentchanges-page-added-to-category": "[[:$1]] 已加入至分類",
        "import": "匯入頁面",
        "importinterwiki": "從其他 wiki 匯入",
        "import-interwiki-text": "請選擇一個 Wiki 與頁面標題以進行匯入。\n會同時記錄修訂日期和編輯者的名稱。\n所有的從跨 Wiki 匯入操作都會被記錄在 [[Special:Log/import|匯入日誌]]。",
-       "import-interwiki-sourcewiki": "來源 Wiki:",
+       "import-interwiki-sourcewiki": "原始 wiki:",
        "import-interwiki-sourcepage": "來源頁面:",
        "import-interwiki-history": "複製此頁面的所有歷史修訂",
        "import-interwiki-templates": "包含所有模板",
        "confirm-purge-title": "清除此頁快取",
        "confirm_purge_button": "確定",
        "confirm-purge-top": "要清除此頁面的快取嗎?",
-       "confirm-purge-bottom": "清除頁面會清除快取紀錄並強制顯示最近的頁面修訂。",
+       "confirm-purge-bottom": "清除頁面會清除快取並強制顯示最近的頁面修訂。",
        "confirm-watch-button": "確定",
        "confirm-watch-top": "新增此頁面至您的監視清單?",
        "confirm-unwatch-button": "確定",
        "tag-list-wrapper": "([[Special:Tags|$1 個標籤]]:$2)",
        "tag-mw-contentmodelchange": "內容模型變更",
        "tag-mw-contentmodelchange-description": "編輯 [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel 更改頁面的內容模型]。",
+       "tag-mw-new-redirect": "新重新導向",
+       "tag-mw-new-redirect-description": "建立新重新導向或更改頁面為重新導向的編輯",
+       "tag-mw-removed-redirect": "移除重新導向",
+       "tag-mw-removed-redirect-description": "將現有重新導向更改為非重新導向的編輯",
+       "tag-mw-changed-redirect-target": "重新導向目標更改",
+       "tag-mw-changed-redirect-target-description": "更改重新導向目標的編輯",
+       "tag-mw-blank": "清空",
+       "tag-mw-blank-description": "清空頁面的編輯",
+       "tag-mw-replace": "替換",
+       "tag-mw-replace-description": "移除超過90%頁面內容的編輯",
+       "tag-mw-rollback": "回退",
+       "tag-mw-rollback-description": "使用回退連結回退上一編輯的編輯",
        "tags-title": "標籤",
        "tags-intro": "此頁面列出所有可用來標示編輯內容的標籤以及這些標籤所代表的意思。",
        "tags-tag": "標籤名稱",
index 0c278bc..bec11a0 100644 (file)
@@ -4,12 +4,14 @@ if ( PHP_SAPI != 'cli' ) {
        die( "This script can only be run from the command line.\n" );
 }
 
+require_once __DIR__ . '/../includes/AutoLoader.php';
 require_once __DIR__ . '/../includes/utils/AutoloadGenerator.php';
 
 // Mediawiki installation directory
 $base = dirname( __DIR__ );
 
 $generator = new AutoloadGenerator( $base, 'local' );
+$generator->setExcludePaths( array_values( AutoLoader::getAutoloadNamespaces() ) );
 $generator->initMediaWikiDefault();
 
 // Write out the autoload
index a63149e..4715cec 100644 (file)
@@ -2682,3 +2682,4 @@ A型肝炎        甲型肝炎
 塑膠袋      塑料袋
 烏龍麵      乌冬面
 披索 比索
+真人騷      真人秀
index b71764a..efcfcb6 100644 (file)
@@ -3053,3 +3053,4 @@ IP地址  IP位址
 人行道      行人路
 塑料袋      膠袋
 烏龍麵      烏冬麵
+真人秀      真人騷
index 16e2751..6b5a857 100644 (file)
@@ -750,6 +750,8 @@ IP地址    IP位址
 數碼技術   數位技術
 数字信号   數位訊號
 數碼訊號   數位訊號
+数字音乐   數位音樂
+數碼音樂   數位音樂
 数字化      數位化
 數碼化      數位化
 移动网络   行動網路
@@ -788,3 +790,4 @@ IP地址    IP位址
 塑料袋      塑膠袋
 触摸屏      觸控螢幕
 乌冬面      烏龍麵
+真人騷      真人秀
index c5d5fd7..ba2f5e8 100644 (file)
 埃及歷史
 大明歷史
 大歷史
+大歷險
 大衍歷史
 太初歷史
 官歷史
 編碼表
 字碼表
 電碼表
+碼碼表
+碼表示
 科斗
 灕水
 這只不
index acf0103..4071a06 100644 (file)
@@ -100,8 +100,12 @@ class CheckStorage {
                        $missingTextRows = array_flip( $this->oldIdMap );
                        $externalRevs = [];
                        $objectRevs = [];
-                       $res = $dbr->select( 'text', [ 'old_id', 'old_flags' ],
-                               'old_id IN (' . implode( ',', $this->oldIdMap ) . ')', __METHOD__ );
+                       $res = $dbr->select(
+                               'text',
+                               [ 'old_id', 'old_flags' ],
+                               [ 'old_id' => $this->oldIdMap ],
+                               __METHOD__
+                       );
                        foreach ( $res as $row ) {
                                /**
                                 * @var $flags int
@@ -158,8 +162,12 @@ class CheckStorage {
                        $externalConcatBlobs = [];
                        $externalNormalBlobs = [];
                        if ( count( $externalRevs ) ) {
-                               $res = $dbr->select( 'text', [ 'old_id', 'old_flags', 'old_text' ],
-                                       [ 'old_id IN (' . implode( ',', $externalRevs ) . ')' ], __METHOD__ );
+                               $res = $dbr->select(
+                                       'text',
+                                       [ 'old_id', 'old_flags', 'old_text' ],
+                                       [ 'old_id' => $externalRevs ],
+                                       __METHOD__
+                               );
                                foreach ( $res as $row ) {
                                        $urlParts = explode( '://', $row->old_text, 2 );
                                        if ( count( $urlParts ) !== 2 || $urlParts[1] == '' ) {
@@ -224,7 +232,7 @@ class CheckStorage {
                                $res = $dbr->select(
                                        'text',
                                        [ 'old_id', 'old_flags', "LEFT(old_text, $headerLength) AS header" ],
-                                       [ 'old_id IN (' . implode( ',', $objectRevs ) . ')' ],
+                                       [ 'old_id' => $objectRevs ],
                                        __METHOD__
                                );
                                foreach ( $res as $row ) {
@@ -283,7 +291,7 @@ class CheckStorage {
                                $res = $dbr->select(
                                        'text',
                                        [ 'old_id', 'old_flags', "LEFT(old_text, $headerLength) AS header" ],
-                                       [ 'old_id IN (' . implode( ',', array_keys( $concatBlobs ) ) . ')' ],
+                                       [ 'old_id' => array_keys( $concatBlobs ) ],
                                        __METHOD__
                                );
                                foreach ( $res as $row ) {
index 3d075e2..b494429 100644 (file)
@@ -2117,6 +2117,7 @@ return [
                        'resources/src/mediawiki.special/mediawiki.special.preferences.convertmessagebox.js',
                        'resources/src/mediawiki.special/mediawiki.special.preferences.tabs.js',
                        'resources/src/mediawiki.special/mediawiki.special.preferences.timezone.js',
+                       'resources/src/mediawiki.special/mediawiki.special.preferences.personalEmail.js',
                ],
                'messages' => [
                        'prefs-tabs-navigation-hint',
index f5bdfd8..27d049e 100644 (file)
@@ -49,7 +49,7 @@
                loadedScripts[ url ] = true;
                s = document.createElement( 'script' );
                s.setAttribute( 'src', url );
-               document.getElementsByTagName( 'head' )[ 0 ].appendChild( s );
+               document.head.appendChild( s );
                return s;
        }
 
@@ -72,7 +72,7 @@
                if ( media ) {
                        l.media = media;
                }
-               document.getElementsByTagName( 'head' )[ 0 ].appendChild( l );
+               document.head.appendChild( l );
                return l;
        }
 
index 15fe334..96b4410 100644 (file)
@@ -4,17 +4,19 @@
         *
         * @mixins OO.EventEmitter
         *
+        * @param {jQuery} $initialFieldset The initial server-generated legacy form content
         * @constructor
         */
-       mw.rcfilters.dm.ChangesListViewModel = function MwRcfiltersDmChangesListViewModel() {
+       mw.rcfilters.dm.ChangesListViewModel = function MwRcfiltersDmChangesListViewModel( $initialFieldset ) {
                // Mixin constructor
                OO.EventEmitter.call( this );
 
                this.valid = true;
                this.newChangesExist = false;
-               this.nextFrom = null;
                this.liveUpdate = false;
                this.unseenWatchedChanges = false;
+
+               this.extractNextFrom( $initialFieldset );
        };
 
        /* Initialization */
@@ -74,7 +76,6 @@
         * @param {jQuery|string} changesListContent
         * @param {jQuery} $fieldset
         * @param {string} noResultsDetails Type of no result error
-        *   timeout.
         * @param {boolean} [isInitialDOM] Using the initial (already attached) DOM elements
         * @param {boolean} [separateOldAndNew] Whether a logical separation between old and new changes is needed
         * @fires update
         */
        mw.rcfilters.dm.ChangesListViewModel.prototype.extractNextFrom = function ( $fieldset ) {
                var data = $fieldset.find( '.rclistfrom > a, .wlinfo' ).data( 'params' );
-               this.nextFrom = data ? data.from : null;
+               if ( data && data.from ) {
+                       this.nextFrom = data.from;
+               }
        };
 
        /**
index 3e1191f..05aa2fc 100644 (file)
         */
        mw.rcfilters.UriProcessor.prototype._normalizeTargetInUri = function ( uri ) {
                var parts,
-                       re = /^((?:\/.+\/)?.+:.+)\/(.+)$/; // matches [namespace:]Title/Subpage
+                       // matches [/wiki/]SpecialNS:RCL/[Namespace:]Title/Subpage/Subsubpage/etc
+                       re = /^((?:\/.+?\/)?.*?:.*?)\/(.*)$/;
 
                // target in title param
                if ( uri.query.title ) {
index 582d25f..100fa0b 100644 (file)
                        var $topSection,
                                mainWrapperWidget,
                                conditionalViews = {},
+                               $initialFieldset = $( 'fieldset.cloptions' ),
                                savedQueriesPreferenceName = mw.config.get( 'wgStructuredChangeFiltersSavedQueriesPreferenceName' ),
                                daysPreferenceName = mw.config.get( 'wgStructuredChangeFiltersDaysPreferenceName' ),
                                limitPreferenceName = mw.config.get( 'wgStructuredChangeFiltersLimitPreferenceName' ),
                                filtersModel = new mw.rcfilters.dm.FiltersViewModel(),
-                               changesListModel = new mw.rcfilters.dm.ChangesListViewModel(),
+                               changesListModel = new mw.rcfilters.dm.ChangesListViewModel( $initialFieldset ),
                                savedQueriesModel = new mw.rcfilters.dm.SavedQueriesModel( filtersModel ),
                                specialPage = mw.config.get( 'wgCanonicalSpecialPageName' ),
                                controller = new mw.rcfilters.Controller(
@@ -82,7 +83,7 @@
                                                '.mw-changeslist-timeout',
                                                '.mw-changeslist-notargetpage'
                                        ].join( ', ' ) ),
-                                       $formContainer: $( 'fieldset.cloptions' )
+                                       $formContainer: $initialFieldset
                                }
                        );
 
@@ -94,7 +95,7 @@
                        controller.initialize(
                                mw.config.get( 'wgStructuredChangeFilters' ),
                                // All namespaces without Media namespace
-                               this.getNamespaces( [ 'Media' ] ),
+                               rcfilters.getNamespaces( [ 'Media' ] ),
                                mw.config.get( 'wgRCFiltersChangeTags' ),
                                conditionalViews
                        );
index 9521a2b..44adbf3 100644 (file)
@@ -55,7 +55,7 @@
 }
 
 /* Absolute positioning to avoid table overlap with floating elements */
-.mw-changeslist-legend.mw-enhanced {
+.mw-changeslist > .mw-changeslist-legend.mw-enhanced {
        background-color: #fff;
        position: absolute;
        right: 0;
diff --git a/resources/src/mediawiki.special/mediawiki.special.preferences.personalEmail.js b/resources/src/mediawiki.special/mediawiki.special.preferences.personalEmail.js
new file mode 100644 (file)
index 0000000..f934d59
--- /dev/null
@@ -0,0 +1,24 @@
+/*!
+ * JavaScript for Special:Preferences: Email preferences better UX
+ */
+( function ( $ ) {
+       $( function () {
+               var allowEmail, allowEmailFromNewUsers;
+
+               allowEmail = $( '#wpAllowEmail' );
+               allowEmailFromNewUsers = $( '#wpAllowEmailFromNewUsers' );
+
+               function toggleDisabled() {
+                       if ( allowEmail.is( ':checked' ) && allowEmail.is( ':enabled' ) ) {
+                               allowEmailFromNewUsers.prop( 'disabled', false );
+                       } else {
+                               allowEmailFromNewUsers.prop( 'disabled', true );
+                       }
+               }
+
+               if ( allowEmail ) {
+                       allowEmail.on( 'change', toggleDisabled );
+                       toggleDisabled();
+               }
+       } );
+}( jQuery ) );
index a661ae5..592fc9e 100644 (file)
                                if ( nextNode && nextNode.parentNode ) {
                                        nextNode.parentNode.insertBefore( s, nextNode );
                                } else {
-                                       document.getElementsByTagName( 'head' )[ 0 ].appendChild( s );
+                                       document.head.appendChild( s );
                                }
 
                                return s;
index b0c1578..8e8463d 100644 (file)
@@ -162,5 +162,5 @@ window.isCompatible = function ( str ) {
                // Callback
                startUp();
        };
-       document.getElementsByTagName( 'head' )[ 0 ].appendChild( script );
+       document.head.appendChild( script );
 }() );
index 7af3a36..72ee550 100644 (file)
@@ -546,15 +546,19 @@ Extra newlines between heading and content are swallowed
 Heading with line break in nowiki
 !! options
 parsoid=wt2html
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! wikitext
 == A <nowiki>B
 C</nowiki> ==
-!! html
-<h2><span class="mw-headline" id="A_B.0AC">A B
+!! html/php
+<h2><span id="A_B.0AC"></span><span class="mw-headline" id="A_B
+C">A B
 C</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: A B&#10;C">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! html/parsoid
-<h2 id="A_B.0AC">A <span typeof="mw:Nowiki">B
+<h2 id="A_B
+C"><span id="A_B.0AC" typeof="mw:FallbackId"></span> A <span typeof="mw:Nowiki">B
 C</span> </h2>
 !! end
 
@@ -4851,8 +4855,8 @@ parsoid=wt2html,wt2wt
 </p>
 !! html/parsoid
 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo"></a></p>
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo">Bar</a></p>
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo"><span>Bar</span></a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo">Bar</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo"><span>Bar</span></a></p>
 !! end
 
 !! test
@@ -6715,9 +6719,9 @@ Don't break on | in extension attribute in template
 
 <references />
 !! html/parsoid
-<p><span about="#mwt2" class="mw-ref" id="cite_ref-hi.7Cho_1-0" rel="dc:references" typeof="mw:Transclusion  mw:Extension/ref" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;ref name=\"hi|ho\">ha&lt;/ref>"}},"i":0}}]}'><a href="./Main_Page#cite_note-hi.7Cho-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></span></p>
+<p><span about="#mwt2" class="mw-ref" id="cite_ref-hi|ho_1-0" rel="dc:references" typeof="mw:Transclusion  mw:Extension/ref" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;ref name=\"hi|ho\">ha&lt;/ref>"}},"i":0}}]}'><a href="./Main_Page#cite_note-hi|ho-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></span></p>
 
-<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-hi.7Cho-1" id="cite_note-hi.7Cho-1"><a href="./Main_Page#cite_ref-hi.7Cho_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-hi.7Cho-1" class="mw-reference-text">ha</span></li></ol>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-hi|ho-1" id="cite_note-hi|ho-1"><a href="./Main_Page#cite_ref-hi|ho_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-hi|ho-1" class="mw-reference-text">ha</span></li></ol>
 !! end
 
 ## We don't support roundtripping of these attributes in Parsoid.
@@ -7825,13 +7829,15 @@ Link with multiple pipes
 
 !! test
 Anchor containing a #. (T65430)
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! wikitext
 [[Main Page#And#Link]]
 !! html/php
-<p><a href="/wiki/Main_Page#And.23Link" title="Main Page">Main Page#And#Link</a>
+<p><a href="/wiki/Main_Page#And#Link" title="Main Page">Main Page#And#Link</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:WikiLink" href="./Main_Page#And.23Link" title="Main Page" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#And.23Link"},"sa":{"href":"Main Page#And#Link"}}'>Main Page#And#Link</a></p>
+<p><a rel="mw:WikiLink" href="./Main_Page#And#Link" title="Main Page" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#And#Link"},"sa":{"href":"Main Page#And#Link"}}'>Main Page#And#Link</a></p>
 !! end
 
 !! test
@@ -7949,13 +7955,27 @@ Link containing % as a double hex sequence interpreted to hex sequence
 ## Example for such a section: == < ==
 !! test
 Link containing "#<" and "#>" % as a hex sequences- these are valid section anchors
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! wikitext
 [[%23%3c]][[%23%3e]]
 !! html/php
-<p><a href="#.3C">#&lt;</a><a href="#.3E">#&gt;</a>
+<p><a href="#&lt;">#&lt;</a><a href="#&gt;">#&gt;</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:WikiLink" href="./Main_Page#.3C" title="Main Page" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#.3C"},"sa":{"href":"%23%3c"}}'>#&lt;</a><a rel="mw:WikiLink" href="./Main_Page#.3E" title="Main Page" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#.3E"},"sa":{"href":"%23%3e"}}'>#></a></p>
+<p><a rel="mw:WikiLink" href="./Main_Page#&lt;" title="Main Page" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#&lt;"},"sa":{"href":"%23%3c"}}'>#&lt;</a><a rel="mw:WikiLink" href="./Main_Page#>" title="Main Page" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#>"},"sa":{"href":"%23%3e"}}'>#></a></p>
+!! end
+
+## Example for such a section: == < ==
+!! test
+Link containing "#<" and "#>" % as a hex sequences- these are valid section anchors (legacy)
+!! config
+wgFragmentMode=[ 'legacy' ]
+!! wikitext
+[[%23%3c]][[%23%3e]]
+!! html/php
+<p><a href="#.3C">#&lt;</a><a href="#.3E">#&gt;</a>
+</p>
 !! end
 
 !! test
@@ -8017,7 +8037,7 @@ Link containing double quotes and spaces
 <p><a href="/index.php?title=Cool_%22Gator%22&amp;action=edit&amp;redlink=1" class="new" title="Cool &quot;Gator&quot; (page does not exist)">Cool "Gator"</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:WikiLink" href="./Cool_%22Gator%22" title='Cool "Gator"'>Cool "Gator"</a></p>
+<p><a rel="mw:WikiLink" href='./Cool_"Gator"' title='Cool "Gator"'>Cool "Gator"</a></p>
 !! end
 
 !! test
@@ -8025,7 +8045,7 @@ File containing double quotes and spaces
 !! wikitext
 [[File:Cool "Gator".png]]
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:Cool_%22Gator%22.png" data-parsoid='{"a":{"href":"./File:Cool_%22Gator%22.png"},"sa":{"href":"File:Cool \"Gator\".png"}}'><img resource='./File:Cool_"Gator".png' src="./Special:FilePath/Cool_%22Gator%22.png" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Cool_\"Gator\".png","height":"220","width":"220","src":"./Special:FilePath/Cool_%22Gator%22.png"},"sa":{"resource":"File:Cool \"Gator\".png","src":"./Special:FilePath/Cool_\"Gator\".png"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:Cool_%22Gator%22.png" data-parsoid='{"a":{"href":"./File:Cool_%22Gator%22.png"},"sa":{"href":"File:Cool \"Gator\".png"}}'><img resource='./File:Cool_"Gator".png' src="./Special:FilePath/Cool_%22Gator%22.png" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Cool_\"Gator\".png","height":"220","width":"220","src":"./Special:FilePath/Cool_%22Gator%22.png"},"sa":{"resource":"File:Cool \"Gator\".png","src":"./Special:FilePath/Cool_\"Gator\".png"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -8073,7 +8093,7 @@ Link with double quotes in title part (literal) and alternate part (interpreted)
 </p><p><a href="/index.php?title=%27%27Pentecoste%27%27&amp;action=edit&amp;redlink=1" class="new" title="&#39;&#39;Pentecoste&#39;&#39; (page does not exist)"><i>Pentecoste</i></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:Denys_Savchenko_''Pentecoste''.jpg"><img resource="./File:Denys_Savchenko_''Pentecoste''.jpg" src="./Special:FilePath/Denys_Savchenko_''Pentecoste''.jpg" height="220" width="220"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:Denys_Savchenko_''Pentecoste''.jpg"><img resource="./File:Denys_Savchenko_''Pentecoste''.jpg" src="./Special:FilePath/Denys_Savchenko_''Pentecoste''.jpg" height="220" width="220"/></a></figure-inline></p>
 <p><a rel="mw:WikiLink" href="./''Pentecoste''" title="''Pentecoste''">''Pentecoste''</a></p>
 <p><a rel="mw:WikiLink" href="./''Pentecoste''" title="''Pentecoste''">Pentecoste</a></p>
 <p><a rel="mw:WikiLink" href="./''Pentecoste''" title="''Pentecoste''"><i>Pentecoste</i></a></p>
@@ -8093,10 +8113,10 @@ Broken image links with HTML captions (T41700)
 <a href="/index.php?title=Special:Upload&amp;wpDestFile=Nonexistent" class="new" title="File:Nonexistent">abc</a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&lt;script>&lt;/script>"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&amp;lt;script>&amp;lt;/script>"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"220","width":"220"},"sa":{"resource":"File:Nonexistent"}}'/></a></span>
-<span typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"100x100px"},{"ck":"caption","ak":"&lt;script>&lt;/script>"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&amp;lt;script>&amp;lt;/script>"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="100" width="100" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"100","width":"100"},"sa":{"resource":"File:Nonexistent"}}'/></a></span>
-<span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&amp;lt;"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&lt;span typeof=\"mw:Entity\" data-parsoid=&#39;{\"src\":\"&amp;amp;lt;\",\"srcContent\":\"&amp;lt;\",\"dsr\":[107,111,null,null]}&#39;>&amp;lt;&lt;/span>"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"220","width":"220"},"sa":{"resource":"File:Nonexistent"}}'/></a></span>
-<span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"a&lt;i>b&lt;/i>c"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"a&lt;i data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[134,142,3,4]}&#39;>b&lt;/i>c"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"220","width":"220"},"sa":{"resource":"File:Nonexistent"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&lt;script>&lt;/script>"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&amp;lt;script>&amp;lt;/script>"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"220","width":"220"},"sa":{"resource":"File:Nonexistent"}}'/></a></figure-inline>
+<figure-inline typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"100x100px"},{"ck":"caption","ak":"&lt;script>&lt;/script>"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&amp;lt;script>&amp;lt;/script>"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="100" width="100" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"100","width":"100"},"sa":{"resource":"File:Nonexistent"}}'/></a></figure-inline>
+<figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&amp;lt;"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&lt;span typeof=\"mw:Entity\" data-parsoid=&#39;{\"src\":\"&amp;amp;lt;\",\"srcContent\":\"&amp;lt;\",\"dsr\":[107,111,null,null]}&#39;>&amp;lt;&lt;/span>"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"220","width":"220"},"sa":{"resource":"File:Nonexistent"}}'/></a></figure-inline>
+<figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"a&lt;i>b&lt;/i>c"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"a&lt;i data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[134,142,3,4]}&#39;>b&lt;/i>c"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"220","width":"220"},"sa":{"resource":"File:Nonexistent"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -8600,13 +8620,26 @@ Parsoid: Scoped parsing should handle mixed transclusions and plain text
 
 !! test
 Link with angle bracket after anchor
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! wikitext
 [[Foo#<bar>]]
 !! html/php
-<p><a href="/wiki/Foo#.3Cbar.3E" title="Foo">Foo#&lt;bar&gt;</a>
+<p><a href="/wiki/Foo#&lt;bar&gt;" title="Foo">Foo#&lt;bar&gt;</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:WikiLink" href="./Foo#.3Cbar.3E" title="Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo#.3Cbar.3E"},"sa":{"href":"Foo#&lt;bar>"}}'>Foo#&lt;bar></a></p>
+<p><a rel="mw:WikiLink" href="./Foo#&lt;bar>" title="Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo#&lt;bar>"},"sa":{"href":"Foo#&lt;bar>"}}'>Foo#&lt;bar></a></p>
+!! end
+
+!! test
+Link with angle bracket after anchor (legacy)
+!! config
+wgFragmentMode=[ 'legacy' ]
+!! wikitext
+[[Foo#<bar>]]
+!! html/php
+<p><a href="/wiki/Foo#.3Cbar.3E" title="Foo">Foo#&lt;bar&gt;</a>
+</p>
 !! end
 
 ###
@@ -8623,7 +8656,7 @@ parsoid=wt2html,wt2wt,html2html
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a></p>
 !! end
 
 !! test
@@ -8636,7 +8669,7 @@ parsoid=wt2html,wt2wt,html2html
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl" class="extiw" title="meatball:">MeatBall:</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?" title="meatball:">MeatBall:</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://www.usemod.com/cgi-bin/mb.pl?" title="meatball:">MeatBall:</a></p>
 !! end
 
 ## html2wt and html2html will fail because we will prefer the :en: interwiki prefix over wikipedia:
@@ -8658,8 +8691,8 @@ parsoid=wt2html,wt2wt
 </ul>
 !! html/parsoid
 <ul>
-<li><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/ro:Olteniţa" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li>
-<li><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/ro:Olteniţa" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li>
+<li><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/ro:Olteniţa" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li>
+<li><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/ro:Olteniţa" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li>
 </ul>
 !! end
 
@@ -8674,6 +8707,27 @@ Interwiki link with fragment (T4130)
 
 !! test
 Link scenarios with escaped fragments
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
+!! wikitext
+[[#Is this great?]]
+[[Foo#Is this great?]]
+[[meatball:Foo#Is this great?]]
+!! html/php
+<p><a href="#Is_this_great?">#Is this great?</a>
+<a href="/wiki/Foo#Is_this_great?" title="Foo">Foo#Is this great?</a>
+<a href="http://www.usemod.com/cgi-bin/mb.pl?Foo#Is_this_great.3F" class="extiw" title="meatball:Foo">meatball:Foo#Is this great?</a>
+</p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="./Main_Page#Is_this_great?" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#Is_this_great?"},"sa":{"href":"#Is this great?"}}'>#Is this great?</a>
+<a rel="mw:WikiLink" href="./Foo#Is_this_great?" title="Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo#Is_this_great?"},"sa":{"href":"Foo#Is this great?"}}'>Foo#Is this great?</a>
+<a rel="mw:WikiLink/Interwiki" href="http://www.usemod.com/cgi-bin/mb.pl?Foo#Is_this_great?" title="meatball:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://www.usemod.com/cgi-bin/mb.pl?Foo#Is_this_great?"},"sa":{"href":"meatball:Foo#Is this great?"},"isIW":true}'>meatball:Foo#Is this great?</a></p>
+!! end
+
+!! test
+Link scenarios with escaped fragments (legacy)
+!! config
+wgFragmentMode=[ 'legacy' ]
 !! wikitext
 [[#Is this great?]]
 [[Foo#Is this great?]]
@@ -8683,10 +8737,6 @@ Link scenarios with escaped fragments
 <a href="/wiki/Foo#Is_this_great.3F" title="Foo">Foo#Is this great?</a>
 <a href="http://www.usemod.com/cgi-bin/mb.pl?Foo#Is_this_great.3F" class="extiw" title="meatball:Foo">meatball:Foo#Is this great?</a>
 </p>
-!! html/parsoid
-<p><a rel="mw:WikiLink" href="./Main_Page#Is_this_great.3F" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#Is_this_great.3F"},"sa":{"href":"#Is this great?"}}'>#Is this great?</a>
-<a rel="mw:WikiLink" href="./Foo#Is_this_great.3F" title="Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo#Is_this_great.3F"},"sa":{"href":"Foo#Is this great?"}}'>Foo#Is this great?</a>
-<a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?Foo#Is_this_great.3F" title="meatball:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://www.usemod.com/cgi-bin/mb.pl?Foo#Is_this_great.3F"},"sa":{"href":"meatball:Foo#Is this great?"},"isIW":true}'>meatball:Foo#Is this great?</a></p>
 !! end
 
 # Ideally the wikipedia: prefix here should be proto-relative too
@@ -8711,19 +8761,19 @@ Different interwiki prefixes mapping to the same URL
 
 [[  wikiPEdia :Foo]]
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true}' title="en:Foo">en:Foo</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true}' title="en:Foo">en:Foo</a></p>
 
-<p><a rel="mw:ExtLink" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true}' title="en:Foo">Foo</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true}' title="en:Foo">Foo</a></p>
 
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"wikipedia:Foo"},"isIW":true}' title="wikipedia:Foo">wikipedia:Foo</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"wikipedia:Foo"},"isIW":true}' title="wikipedia:Foo">wikipedia:Foo</a></p>
 
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":":wikipedia:Foo"},"isIW":true}' title="wikipedia:Foo">Foo</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":":wikipedia:Foo"},"isIW":true}' title="wikipedia:Foo">Foo</a></p>
 
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":"wikipedia:en:Foo"},"isIW":true}' title="wikipedia:en:Foo">wikipedia:en:Foo</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":"wikipedia:en:Foo"},"isIW":true}' title="wikipedia:en:Foo">wikipedia:en:Foo</a></p>
 
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":":wikipedia:en:Foo"},"isIW":true}' title="wikipedia:en:Foo">wikipedia:en:Foo</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":":wikipedia:en:Foo"},"isIW":true}' title="wikipedia:en:Foo">wikipedia:en:Foo</a></p>
 
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"  wikiPEdia :Foo"},"isIW":true}' title="wikipedia:Foo">  wikiPEdia :Foo</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"  wikiPEdia :Foo"},"isIW":true}' title="wikipedia:Foo">  wikiPEdia :Foo</a></p>
 !! end
 
 !! test
@@ -8743,9 +8793,9 @@ Interwiki links that cannot be represented in wiki syntax
 <a rel="nofollow" class="external text" href="http://de.wikipedia.org/wiki/#foo">is just fragment</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok" title="meatball:ok">meatball:ok</a>
-<a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok#foo" title="meatball:ok">ok with fragment</a>
-<a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok_as_well?" title="meatball:ok as well?">ok ending with ? mark</a>
+<p><a rel="mw:WikiLink/Interwiki" href="http://www.usemod.com/cgi-bin/mb.pl?ok" title="meatball:ok">meatball:ok</a>
+<a rel="mw:WikiLink/Interwiki" href="http://www.usemod.com/cgi-bin/mb.pl?ok#foo" title="meatball:ok">ok with fragment</a>
+<a rel="mw:WikiLink/Interwiki" href="http://www.usemod.com/cgi-bin/mb.pl?ok_as_well?" title="meatball:ok as well?">ok ending with ? mark</a>
 <a rel="mw:ExtLink" href="http://de.wikipedia.org/wiki/Foo?action=history">has query</a>
 <a rel="mw:ExtLink" href="http://de.wikipedia.org/wiki/#foo">is just fragment</a></p>
 !! end
@@ -8758,7 +8808,7 @@ Interwiki links: trail
 <p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo">Bar</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"wikipedia:Foo"},"isIW":true,"tail":"r"}' title="wikipedia:Foo">Bar</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"wikipedia:Foo"},"isIW":true,"tail":"r"}' title="wikipedia:Foo">Bar</a></p>
 !! end
 
 !! test
@@ -8812,7 +8862,7 @@ parsoid=wt2html,wt2wt,html2html
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?Hello" class="extiw" title="meatball:Hello">local:meatball:Hello</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?Hello" title="meatball:Hello">local:meatball:Hello</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://www.usemod.com/cgi-bin/mb.pl?Hello" title="meatball:Hello">local:meatball:Hello</a></p>
 !! end
 
 !! test
@@ -8910,8 +8960,8 @@ Blah blah blah
 </p>
 !! html/parsoid
 <p>Blah blah blah
-<a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">es:Spanish</a>
-<a rel="mw:ExtLink" href="http://zh.wikipedia.org/wiki/Chinese" title="zh:Chinese"> zh : Chinese </a></p>
+<a rel="mw:WikiLink/Interwiki" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">es:Spanish</a>
+<a rel="mw:WikiLink/Interwiki" href="http://zh.wikipedia.org/wiki/Chinese" title="zh:Chinese"> zh : Chinese </a></p>
 !! end
 
 !! test
@@ -8928,7 +8978,7 @@ parsoid=wt2html
 [[:::es:Spanish]]
 </p>
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">es:Spanish</a>
+<p><a rel="mw:WikiLink/Interwiki" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">es:Spanish</a>
 [[::es:Spanish]]
 [[:::es:Spanish]]</p>
 !! end
@@ -9005,7 +9055,7 @@ parsoid=wt2html,wt2wt,html2html
 Blah blah blah
 [[zh:Chinese]]
 !! html/parsoid
-<p>Blah blah blah <a rel="mw:ExtLink" href="http://zh.wikipedia.org/wiki/Chinese" title="zh:Chinese">zh:Chinese</a></p>
+<p>Blah blah blah <a rel="mw:WikiLink/Interwiki" href="http://zh.wikipedia.org/wiki/Chinese" title="zh:Chinese">zh:Chinese</a></p>
 !! end
 
 ## PHP parser tests script needs an update
@@ -9019,7 +9069,7 @@ parsoid=wt2html,wt2wt,html2html
 Blah blah blah
 [[zh:Chinese]]
 !! html/parsoid
-<p>Blah blah blah <a rel="mw:ExtLink" href="http://zh.wikipedia.org/wiki/Chinese" title="zh:Chinese">zh:Chinese</a></p>
+<p>Blah blah blah <a rel="mw:WikiLink/Interwiki" href="http://zh.wikipedia.org/wiki/Chinese" title="zh:Chinese">zh:Chinese</a></p>
 !! end
 
 !! test
@@ -9106,7 +9156,7 @@ parsoid=wt2html,wt2wt,html2html
 </p><p><a href="/wiki/Ko:" title="Ko:">ko:</a>
 </p>
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/" title="es:">es:</a></p>
+<p><a rel="mw:WikiLink/Interwiki" href="http://es.wikipedia.org/wiki/" title="es:">es:</a></p>
 <p><a rel="mw:WikiLink" href="./Ko:" title="Ko:">ko:</a></p>
 !! end
 
@@ -9134,7 +9184,7 @@ Blah blah blah
 </p>
 !! html/parsoid
 <p>Blah blah blah
-<a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">local:es:Spanish</a></p>
+<a rel="mw:WikiLink/Interwiki" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">local:es:Spanish</a></p>
 !! end
 
 !! test
@@ -9177,10 +9227,12 @@ Blah blah blah
 # This tests the Parsoid bail-out code.
 !! test
 3. Other redirect variants
+!! options
+parsoid=wt2html
 !! wikitext
 #REDIRECT [[<nowiki>[[Bar]]</nowiki>]]
 !! html/parsoid
-<ol><li data-parsoid>REDIRECT [[[[Bar]]]]</li></ol>
+<ol><li>REDIRECT [[<span typeof="mw:Nowiki">[[Bar]]</span>]]</li></ol>
 !! end
 
 !! test
@@ -11989,14 +12041,14 @@ some
 <h3><span class="mw-headline" id="here">here</span></h3>
 
 !! html/parsoid
-<!-- comment --><meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"&lt;noinclude>"}'/><!-- comment --><meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"&lt;/noinclude>"}'/><!-- comment --><h2> hu </h2>
+<!-- comment --><meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"&lt;noinclude>"}'/><!-- comment --><meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"&lt;/noinclude>"}'/><!-- comment --><h2 id="hu"> hu </h2>
 
 <meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"&lt;noinclude>"}'/>
 <p>some</p>
 <meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"&lt;/noinclude>"}'/><ul><li> stuff</li>
 <li> here</li></ul>
 
-<meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"&lt;includeonly>can have stuff&lt;/includeonly>"}'/><meta typeof="mw:Includes/IncludeOnly/End" data-parsoid='{"src":""}'/><h3> here </h3>
+<meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"&lt;includeonly>can have stuff&lt;/includeonly>"}'/><meta typeof="mw:Includes/IncludeOnly/End" data-parsoid='{"src":""}'/><h3 id="here"> here </h3>
 
 !! end
 
@@ -12520,6 +12572,8 @@ Preprocessor precedence 14: broken language converter in comment
 
 !! test
 Preprocessor precedence 15: broken brace markup in headings
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! options
 parsoid=wt2html
 !! wikitext
@@ -12537,32 +12591,31 @@ __NOTOC__ __NOEDITSECTION__
 ===6 foo-{bar 6===
 6
 !! html/php+tidy
-<h3><span class="mw-headline" id="1_foo.5Bbar_1">1 foo[bar 1</span></h3>
+<h3><span id="1_foo.5Bbar_1"></span><span class="mw-headline" id="1_foo[bar_1">1 foo[bar 1</span></h3>
 <p>1</p>
-<h3><span class="mw-headline" id="2_foo.5B.5Bbar_2">2 foo[[bar 2</span></h3>
+<h3><span id="2_foo.5B.5Bbar_2"></span><span class="mw-headline" id="2_foo[[bar_2">2 foo[[bar 2</span></h3>
 <p>2</p>
-<h3><span class="mw-headline" id="3_foo.7Bbar_3">3 foo{bar 3</span></h3>
+<h3><span id="3_foo.7Bbar_3"></span><span class="mw-headline" id="3_foo{bar_3">3 foo{bar 3</span></h3>
 <p>3</p>
-<h3><span class="mw-headline" id="4_foo.7B.7Bbar_4">4 foo{{bar 4</span></h3>
+<h3><span id="4_foo.7B.7Bbar_4"></span><span class="mw-headline" id="4_foo{{bar_4">4 foo{{bar 4</span></h3>
 <p>4</p>
-<h3><span class="mw-headline" id="5_foo.7B.7B.7Bbar_5">5 foo{{{bar 5</span></h3>
+<h3><span id="5_foo.7B.7B.7Bbar_5"></span><span class="mw-headline" id="5_foo{{{bar_5">5 foo{{{bar 5</span></h3>
 <p>5</p>
-<h3><span class="mw-headline" id="6_foo-.7Bbar_6">6 foo-{bar 6</span></h3>
+<h3><span id="6_foo-.7Bbar_6"></span><span class="mw-headline" id="6_foo-{bar_6">6 foo-{bar 6</span></h3>
 <p>6</p>
 !! html/parsoid
-<meta property="mw:PageProp/notoc"/> <meta property="mw:PageProp/noeditsection"/
->
-<h3>1 foo[bar 1</h3>
+<meta property="mw:PageProp/notoc"/> <meta property="mw:PageProp/noeditsection"/>
+<h3 id="1_foo[bar_1"><span id="1_foo.5Bbar_1" typeof="mw:FallbackId"></span>1 foo[bar 1</h3>
 <p>1</p>
-<h3>2 foo[[bar 2</h3>
+<h3 id="2_foo[[bar_2"><span id="2_foo.5B.5Bbar_2" typeof="mw:FallbackId"></span>2 foo[[bar 2</h3>
 <p>2</p>
-<h3>3 foo{bar 3</h3>
+<h3 id="3_foo{bar_3"><span id="3_foo.7Bbar_3" typeof="mw:FallbackId"></span>3 foo{bar 3</h3>
 <p>3</p>
-<h3>4 foo{{bar 4</h3>
+<h3 id="4_foo{{bar_4"><span id="4_foo.7B.7Bbar_4" typeof="mw:FallbackId"></span>4 foo{{bar 4</h3>
 <p>4</p>
-<h3>5 foo{{{bar 5</h3>
+<h3 id="5_foo{{{bar_5"><span id="5_foo.7B.7B.7Bbar_5" typeof="mw:FallbackId"></span>5 foo{{{bar 5</h3>
 <p>5</p>
-<h3>6 foo-{bar 6</h3>
+<h3 id="6_foo-{bar_6"><span id="6_foo-.7Bbar_6" typeof="mw:FallbackId"></span>6 foo-{bar 6</h3>
 <p>6</p>
 !! end
 
@@ -14264,15 +14317,15 @@ parsoid=wt2html,wt2wt,html2html
 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !! end
 
 !! test
-Serialize simple image with figure-inline wrapper
+Serialize simple image with span wrapper
 !! options
 parsoid=html2wt
 !! html/parsoid
-<p><figure-inline class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
+<p><span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
 !! wikitext
 [[File:Foobar.jpg]]
 !! end
@@ -14285,7 +14338,7 @@ Simple image (using File: namespace, now canonical)
 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14402,7 +14455,7 @@ Linktrails should not work for images: [[File:Foobar.jpg]]s
 <p>Linktrails should not work for images: <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>s
 </p>
 !! html/parsoid
-<p>Linktrails should not work for images: <span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span>s</p>
+<p>Linktrails should not work for images: <figure-inline class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline>s</p>
 !! end
 
 !! test
@@ -14448,7 +14501,7 @@ parsoid=wt2html,wt2wt,html2html
 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>
 </p>
 !! html/parsoid
-<p><span typeof="mw:Image mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"width","ak":"{{echo|50px}}"}]}' data-mw='{"attribs":[["width",{"html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=&#39;{\"pi\":[[{\"k\":\"1\"}]],\"dsr\":[18,31,null,null]}&#39; data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"50px\"}},\"i\":0}}]}&#39;>50px&lt;/span>"}]]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline typeof="mw:Image mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"width","ak":"{{echo|50px}}"}]}' data-mw='{"attribs":[["width",{"html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=&#39;{\"pi\":[[{\"k\":\"1\"}]],\"dsr\":[18,31,null,null]}&#39; data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"50px\"}},\"i\":0}}]}&#39;>50px&lt;/span>"}]]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 ## Parsoid does not provide editing support for images where templates produce multiple image attributes.
@@ -14492,7 +14545,7 @@ thumbsize=220
 </div>
 <p>456</p>
 !! html/parsoid
-<p>123<span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span>456</p>
+<p>123<figure-inline class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline>456</p>
 <p>123</p><figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure><p>456</p>
 <p>123</p><figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></figure><p>456</p>
 !! end
@@ -14516,7 +14569,7 @@ Image with multiple widths -- use last
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" width="300" height="34" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" /></a>
 </p>
 !! html/parsoid
-<p><span typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300"/></a></span></p>
+<p><figure-inline typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14533,7 +14586,7 @@ thumbsize=220
 </p>
 !! html/parsoid
 <figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
-<p><span class="mw-default-size mw-valign-middle" typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size mw-valign-middle" typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14566,7 +14619,7 @@ parsoid=wt2html,wt2wt,html2html
 <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg" width="177" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/265px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/353px-Foobar.jpg 2x" /></a>
 </p>
 !! html/parsoid
-<p><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20"/></a></span> <span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="177"/></a></span></p>
+<p><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20"/></a></figure-inline> <figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="177"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14577,7 +14630,7 @@ Image with link parameter, wiki target
 <p><a href="/wiki/Main_Page" title="Main Page"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image"><a href="./Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image"><a href="./Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !! end
 
 # parsoid T51293 (part 1)
@@ -14589,7 +14642,7 @@ Image with link parameter, URL target
 <p><a href="http://example.com/" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !! end
 
 # parsoid T51293 (part 2)
@@ -14601,7 +14654,7 @@ Image with link parameter, protocol-less URL target
 <p><a href="//example.com/" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image"><a href="//example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image"><a href="//example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14673,7 +14726,7 @@ Image with empty link parameter
 <p><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" />
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image"><span><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></span></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image"><span><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></span></figure-inline></p>
 !! end
 
 !! test
@@ -14684,7 +14737,7 @@ Image with link parameter (wiki target) and unnamed parameter
 <p><a href="/wiki/Main_Page" title="Title"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"Title"}'><a href="./Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"Title"}'><a href="./Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14695,7 +14748,7 @@ Image with link parameter (URL target) and unnamed parameter
 <p><a href="http://example.com/" title="Title" rel="nofollow"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"Title"}'><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"Title"}'><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14818,9 +14871,9 @@ Image with wiki markup in implicit alt
 </p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"testing &#39;&#39;&#39;bold&#39;&#39;&#39; in alt"}]}' data-mw='{"caption":"testing &lt;b data-parsoid=&#39;{\"dsr\":[27,37,3,3]}&#39;>bold&lt;/b> in alt"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"testing &#39;&#39;&#39;bold&#39;&#39;&#39; in alt"}]}' data-mw='{"caption":"testing &lt;b data-parsoid=&#39;{\"dsr\":[27,37,3,3]}&#39;>bold&lt;/b> in alt"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a></figure-inline></p>
 
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"alt","ak":"alt=testing &#39;&#39;&#39;bold&#39;&#39;&#39; in alt"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img alt="testing bold in alt" resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"alt":"testing bold in alt","resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"alt":"alt=testing &#39;&#39;&#39;bold&#39;&#39;&#39; in alt","resource":"Image:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"alt","ak":"alt=testing &#39;&#39;&#39;bold&#39;&#39;&#39; in alt"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img alt="testing bold in alt" resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"alt":"testing bold in alt","resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"alt":"alt=testing &#39;&#39;&#39;bold&#39;&#39;&#39; in alt","resource":"Image:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14913,9 +14966,9 @@ parsoid=wt2html,wt2wt,html2html
 </p><p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></span></p>
-<p><span class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></span></p>
-<p><span class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></figure-inline></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></figure-inline></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14980,8 +15033,8 @@ parsoid=wt2html,wt2wt,html2html
 </p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="2000" height="227" class="thumbborder" /></a>
 </p>
 !! html/parsoid
-<p><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="227" width="2000"/></a></span></p>
-<p><span class="mw-image-border" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="227" width="2000"/></a></span></p>
+<p><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="227" width="2000"/></a></figure-inline></p>
+<p><figure-inline class="mw-image-border" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="227" width="2000"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -14997,8 +15050,8 @@ parsoid=wt2html,wt2wt,html2html
 </p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" width="1000" height="113" class="thumbborder" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" /></a>
 </p>
 !! html/parsoid
-<p><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="113" width="1000"/></a></span></p>
-<p><span class="mw-image-border" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="113" width="1000"/></a></span></p>
+<p><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="113" width="1000"/></a></figure-inline></p>
+<p><figure-inline class="mw-image-border" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="113" width="1000"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15041,7 +15094,7 @@ parsoid=wt2html,wt2wt,html2html
 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>
 </p>
 !! html/parsoid
-<p><span typeof="mw:Image/Frameless"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></span></p>
+<p><figure-inline typeof="mw:Image/Frameless"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15057,8 +15110,8 @@ parsoid=wt2html,wt2wt,html2html
 </p><p><a href="/wiki/File:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" width="2000" height="1500" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" /></a>
 </p>
 !! html/parsoid
-<p><span typeof="mw:Image/Frameless"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
-<p><span typeof="mw:Image/Frameless"><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" data-file-width="240" data-file-height="180" data-file-type="drawing" height="1500" width="2000"/></a></span></p>
+<p><figure-inline typeof="mw:Image/Frameless"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
+<p><figure-inline typeof="mw:Image/Frameless"><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" data-file-width="240" data-file-height="180" data-file-type="drawing" height="1500" width="2000"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15116,7 +15169,7 @@ Frameless image caption with a free URL
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="http://example.com"><img alt="http://example.com" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"http://example.com"}]}' data-mw='{"caption":"&lt;a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid=&#39;{\"stx\":\"url\",\"dsr\":[18,36,0,0]}&#39;>http://example.com&lt;/a>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"http://example.com"}]}' data-mw='{"caption":"&lt;a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid=&#39;{\"stx\":\"url\",\"dsr\":[18,36,0,0]}&#39;>http://example.com&lt;/a>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15226,7 +15279,7 @@ T2648: Frameless image caption with a link
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[link]] in it"}]}' data-mw='{"caption":"text with a &lt;a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[30,38,2,2]}&#39;>link&lt;/a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[link]] in it"}]}' data-mw='{"caption":"text with a &lt;a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[30,38,2,2]}&#39;>link&lt;/a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15237,7 +15290,7 @@ T2648: Frameless image caption with a link (suffix)
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a linkfoo in it"><img alt="text with a linkfoo in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[link]]foo in it"}]}' data-mw='{"caption":"text with a &lt;a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[30,41,2,5],\"tail\":\"foo\"}&#39;>linkfoo&lt;/a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[link]]foo in it"}]}' data-mw='{"caption":"text with a &lt;a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[30,41,2,5],\"tail\":\"foo\"}&#39;>linkfoo&lt;/a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15248,7 +15301,7 @@ T2648: Frameless image caption with an interwiki link
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a MeatBall:Link in it"><img alt="text with a MeatBall:Link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[MeatBall:Link]] in it"}]}' data-mw='{"caption":"text with a &lt;a rel=\"mw:ExtLink\" href=\"http://www.usemod.com/cgi-bin/mb.pl?Link\" title=\"meatball:Link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"http://www.usemod.com/cgi-bin/mb.pl?Link\"},\"sa\":{\"href\":\"MeatBall:Link\"},\"isIW\":true,\"dsr\":[30,47,2,2]}&#39;>MeatBall:Link&lt;/a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[MeatBall:Link]] in it"}]}' data-mw='{"caption":"text with a &lt;a rel=\"mw:WikiLink/Interwiki\" href=\"http://www.usemod.com/cgi-bin/mb.pl?Link\" title=\"meatball:Link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"http://www.usemod.com/cgi-bin/mb.pl?Link\"},\"sa\":{\"href\":\"MeatBall:Link\"},\"isIW\":true,\"dsr\":[30,47,2,2]}&#39;>MeatBall:Link&lt;/a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15259,7 +15312,7 @@ T2648: Frameless image caption with a piped interwiki link
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[MeatBall:Link|link]] in it"}]}' data-mw='{"caption":"text with a &lt;a rel=\"mw:ExtLink\" href=\"http://www.usemod.com/cgi-bin/mb.pl?Link\" title=\"meatball:Link\" data-parsoid=&#39;{\"stx\":\"piped\",\"a\":{\"href\":\"http://www.usemod.com/cgi-bin/mb.pl?Link\"},\"sa\":{\"href\":\"MeatBall:Link\"},\"isIW\":true,\"dsr\":[30,52,16,2]}&#39;>link&lt;/a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[MeatBall:Link|link]] in it"}]}' data-mw='{"caption":"text with a &lt;a rel=\"mw:WikiLink/Interwiki\" href=\"http://www.usemod.com/cgi-bin/mb.pl?Link\" title=\"meatball:Link\" data-parsoid=&#39;{\"stx\":\"piped\",\"a\":{\"href\":\"http://www.usemod.com/cgi-bin/mb.pl?Link\"},\"sa\":{\"href\":\"MeatBall:Link\"},\"isIW\":true,\"dsr\":[30,52,16,2]}&#39;>link&lt;/a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15267,7 +15320,7 @@ T107474: Frameless image caption with <nowiki>
 !! wikitext
 [[File:Foobar.jpg|<nowiki>text with a [[MeatBall:Link|link]] in it</nowiki>]]
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&lt;nowiki>text with a [[MeatBall:Link|link]] in it&lt;/nowiki>"}]}' data-mw='{"caption":"&lt;span typeof=\"mw:Nowiki\" data-parsoid=&#39;{\"dsr\":[18,75,8,9]}&#39;>text with a [[MeatBall:Link|link]] in it&lt;/span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&lt;nowiki>text with a [[MeatBall:Link|link]] in it&lt;/nowiki>"}]}' data-mw='{"caption":"&lt;span typeof=\"mw:Nowiki\" data-parsoid=&#39;{\"dsr\":[18,75,8,9]}&#39;>text with a [[MeatBall:Link|link]] in it&lt;/span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15278,7 +15331,7 @@ Escape HTML special chars in image alt text
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="&amp; &lt; &gt; &quot;"><img alt="&amp; &lt; &gt; &quot;" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&amp; &lt; > \""}]}' data-mw='{"caption":"&amp;amp; &amp;lt; > \""}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&amp; &lt; > \""}]}' data-mw='{"caption":"&amp;amp; &amp;lt; > \""}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15291,7 +15344,7 @@ language=zh
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="&amp; &lt; &gt; &quot;"><img alt="&amp; &lt; &gt; &quot;" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&amp; &lt; > \""}]}' data-mw='{"caption":"&amp;amp; &amp;lt; > \""}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&amp; &lt; > \""}]}' data-mw='{"caption":"&amp;amp; &amp;lt; > \""}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15302,7 +15355,7 @@ Entities in file name and attributes
 <p><a href="/index.php?title=Special:Upload&amp;wpDestFile=7%25_solution.gif" class="new" title="File:7% solution.gif">7% solution</a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"bogus","ak":"manualthumb=7%25 solution.gif"},{"ck":"link","ak":"link=7%25 solution"},{"ck":"caption","ak":"[[7%25 solution]]"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&lt;a rel=\"mw:WikiLink\" href=\"./7%25_solution\" title=\"7% solution\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./7%25_solution\"},\"sa\":{\"href\":\"7%25 solution\"},\"dsr\":[74,91,2,2]}&#39;>7% solution&lt;/a>"}'><a href="./7%25_solution" data-parsoid='{"a":{"href":"./7%25_solution"},"sa":{"href":"link=7%25 solution"}}'><img resource="./File:7%25_solution.gif" src="./Special:FilePath/7%25_solution.gif" height="220" width="220" data-parsoid='{"a":{"resource":"./File:7%25_solution.gif","height":"220","width":"220"},"sa":{"resource":"File:7%25 solution.gif"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"bogus","ak":"manualthumb=7%25 solution.gif"},{"ck":"link","ak":"link=7%25 solution"},{"ck":"caption","ak":"[[7%25 solution]]"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&lt;a rel=\"mw:WikiLink\" href=\"./7%25_solution\" title=\"7% solution\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./7%25_solution\"},\"sa\":{\"href\":\"7%25 solution\"},\"dsr\":[74,91,2,2]}&#39;>7% solution&lt;/a>"}'><a href="./7%25_solution" data-parsoid='{"a":{"href":"./7%25_solution"},"sa":{"href":"link=7%25 solution"}}'><img resource="./File:7%25_solution.gif" src="./Special:FilePath/7%25_solution.gif" height="220" width="220" data-parsoid='{"a":{"resource":"./File:7%25_solution.gif","height":"220","width":"220"},"sa":{"resource":"File:7%25 solution.gif"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15313,7 +15366,7 @@ T2499: Alt text should have &#1234;, not &amp;1234;
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="♀"><img alt="♀" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&amp;#9792;"}]}' data-mw='{"caption":"&lt;span typeof=\"mw:Entity\" data-parsoid=&#39;{\"src\":\"&amp;amp;#9792;\",\"srcContent\":\"♀\",\"dsr\":[18,25,null,null]}&#39;>♀&lt;/span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&amp;#9792;"}]}' data-mw='{"caption":"&lt;span typeof=\"mw:Entity\" data-parsoid=&#39;{\"src\":\"&amp;amp;#9792;\",\"srcContent\":\"♀\",\"dsr\":[18,25,null,null]}&#39;>♀&lt;/span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15337,7 +15390,7 @@ Image caption containing another image
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is a caption with another <a href="/wiki/File:Thumb.png" class="image" title="image"><img alt="image" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" /></a> inside it!</div></div></div>
 
 !! html/parsoid
-<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>This is a caption with another <span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"image"}'><a href="./File:Thumb.png"><img resource="./File:Thumb.png" src="//example.com/images/e/ea/Thumb.png" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135"/></a></span> inside it!</figcaption></figure>
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>This is a caption with another <figure-inline class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"image"}'><a href="./File:Thumb.png"><img resource="./File:Thumb.png" src="//example.com/images/e/ea/Thumb.png" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135"/></a></figure-inline> inside it!</figcaption></figure>
 !! end
 
 !! test
@@ -15349,7 +15402,7 @@ Image: caption containing a newline
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="This *is some text"><img alt="This *is some text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"This\n*is some text"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"This\n*is some text"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !!end
 
 !!test
@@ -15410,7 +15463,7 @@ parsoid=wt2html,wt2wt,html2html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="a"><img alt="a" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="b" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size b" typeof="mw:Image" data-mw='{"caption":"a"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><figure-inline class="mw-default-size b" typeof="mw:Image" data-mw='{"caption":"a"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15464,7 +15517,7 @@ parsoid=wt2html,wt2wt,html2html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="extra thumbborder" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size mw-image-border extra" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></span></p>
+<p><figure-inline class="mw-default-size mw-image-border extra" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></figure-inline></p>
 !! end
 
 # Note that 'right' is the default alignment, despite the misspelled 'righ' below
@@ -15517,7 +15570,7 @@ wgEnableUploads=0
 <p><a href="/wiki/File:Foobaz.jpg" title="File:Foobaz.jpg">File:Foobaz.jpg</a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:Foobaz.jpg"><img resource="./File:Foobaz.jpg" src="./Special:FilePath/Foobaz.jpg" height="220" width="220"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:Foobaz.jpg"><img resource="./File:Foobaz.jpg" src="./Special:FilePath/Foobaz.jpg" height="220" width="220"/></a></figure-inline></p>
 !! end
 
 # Parsoid-specific testing for images
@@ -15532,7 +15585,7 @@ Parsoid-specific image handling - simple image with size and middle alignment
 !! wikitext
 [[File:Foobar.jpg|middle|50px]]
 !! html/parsoid
-<p><span class="mw-valign-middle" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></span></p>
+<p><figure-inline class="mw-valign-middle" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15543,7 +15596,7 @@ parsoid=wt2wt,wt2html,html2html
 !! wikitext
 [[Image:Foobar.jpg|middle|50px]]
 !! html/parsoid
-<p><span class="mw-valign-middle" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></span></p>
+<p><figure-inline class="mw-valign-middle" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15552,7 +15605,7 @@ Parsoid-specific image handling - simple image with size and middle alignment
 !! wikitext
 [[File:Foobar.jpg|50px|middle]]
 !! html/parsoid
-<p><span class="mw-valign-middle" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"middle","ak":"middle"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-valign-middle" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"middle","ak":"middle"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15563,7 +15616,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[Image:Foobar.jpg|50px|middle]]
 !! html/parsoid
-<p><span class="mw-valign-middle" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></span></p>
+<p><figure-inline class="mw-valign-middle" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15571,7 +15624,7 @@ Parsoid-specific image handling - simple image with both sizes, a baseline align
 !! wikitext
 [[File:Foobar.jpg|500x10px|baseline|caption]]
 !! html/parsoid
-<p><span class="mw-valign-baseline" typeof="mw:Image" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"500x10px"},{"ck":"baseline","ak":"baseline"},{"ck":"caption","ak":"caption"}],"size":"500x10"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/89px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="10" width="89" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"10","width":"89"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-valign-baseline" typeof="mw:Image" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"500x10px"},{"ck":"baseline","ak":"baseline"},{"ck":"caption","ak":"caption"}],"size":"500x10"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/89px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="10" width="89" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"10","width":"89"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15579,7 +15632,7 @@ Parsoid-specific image handling - simple image with border and size spec
 !! wikitext
 [[File:Foobar.jpg|50px|border|caption]]
 !! html/parsoid
-<p><span class="mw-image-border" typeof="mw:Image" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-image-border" typeof="mw:Image" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15643,7 +15696,7 @@ Parsoid-specific image handling - frameless image with specific size, border, an
 !! wikitext
 [[File:Foobar.jpg|frameless|442x50px|border|caption]]
 !! html/parsoid
-<p><span class="mw-image-border" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"frameless","ak":"frameless"},{"ck":"width","ak":"442x50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}],"size":"442x50"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="50" width="442" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"50","width":"442"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-image-border" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"frameless","ak":"frameless"},{"ck":"width","ak":"442x50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}],"size":"442x50"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="50" width="442" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"50","width":"442"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15651,7 +15704,7 @@ Parsoid-specific image handling - simple image with a formatted caption
 !! wikitext
 [[File:Foobar.jpg|<table><tr><td>a</td><td>b</td></tr><tr><td>c</td></tr></table>]]
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&lt;table>&lt;tr>&lt;td>a&lt;/td>&lt;td>b&lt;/td>&lt;/tr>&lt;tr>&lt;td>c&lt;/td>&lt;/tr>&lt;/table>"}]}' data-mw='{"caption":"&lt;table data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[18,81,7,8]}&#39;>&lt;tbody data-parsoid=&#39;{\"dsr\":[25,73,0,0]}&#39;>&lt;tr data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[25,54,4,5]}&#39;>&lt;td data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[29,39,4,5]}&#39;>a&lt;/td>&lt;td data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[39,49,4,5]}&#39;>b&lt;/td>&lt;/tr>&lt;tr data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[54,73,4,5]}&#39;>&lt;td data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[58,68,4,5]}&#39;>c&lt;/td>&lt;/tr>&lt;/tbody>&lt;/table>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&lt;table>&lt;tr>&lt;td>a&lt;/td>&lt;td>b&lt;/td>&lt;/tr>&lt;tr>&lt;td>c&lt;/td>&lt;/tr>&lt;/table>"}]}' data-mw='{"caption":"&lt;table data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[18,81,7,8]}&#39;>&lt;tbody data-parsoid=&#39;{\"dsr\":[25,73,0,0]}&#39;>&lt;tr data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[25,54,4,5]}&#39;>&lt;td data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[29,39,4,5]}&#39;>a&lt;/td>&lt;td data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[39,49,4,5]}&#39;>b&lt;/td>&lt;/tr>&lt;tr data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[54,73,4,5]}&#39;>&lt;td data-parsoid=&#39;{\"stx\":\"html\",\"dsr\":[58,68,4,5]}&#39;>c&lt;/td>&lt;/tr>&lt;/tbody>&lt;/table>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -15721,7 +15774,7 @@ foo
 bar
 !! html/parsoid
 <p>foo
-<span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" lang="de" data-file-width="240" data-file-height="180" data-file-type="drawing" height="180" width="240"/></a></span>
+<figure-inline class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" lang="de" data-file-width="240" data-file-height="180" data-file-type="drawing" height="180" width="240"/></a></figure-inline>
 bar</p>
 !! end
 
@@ -15745,7 +15798,7 @@ T93580: 2. <ref> inside inline images
 
 <references />
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"Undisplayed caption in inline image with ref: &lt;ref>foo&lt;/ref>"}]}' data-mw='{"caption":"Undisplayed caption in inline image with ref: &lt;span about=\"#mwt2\" class=\"mw-ref\" id=\"cite_ref-1\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"dsr\":[64,78,5,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-1\"},\"attrs\":{}}&#39;>&lt;a href=\"./Main_Page#cite_note-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\">&lt;span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]&lt;/span>&lt;/a>&lt;/span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{"href":"File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"Undisplayed caption in inline image with ref: &lt;ref>foo&lt;/ref>"}]}' data-mw='{"caption":"Undisplayed caption in inline image with ref: &lt;span about=\"#mwt2\" class=\"mw-ref\" id=\"cite_ref-1\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"dsr\":[64,78,5,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-1\"},\"attrs\":{}}&#39;>&lt;a href=\"./Main_Page#cite_note-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\">&lt;span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]&lt;/span>&lt;/a>&lt;/span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{"href":"File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 
 <ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
 !! end
@@ -15757,7 +15810,7 @@ T93580: 3. Templated <ref> inside inline images
 
 <references />
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"Undisplayed caption in inline image with ref: {{echo|&lt;ref>{{echo|foo}}&lt;/ref>}}"}]}' data-mw='{"caption":"Undisplayed caption in inline image with ref: &lt;span about=\"#mwt2\" class=\"mw-ref\" id=\"cite_ref-1\" rel=\"dc:references\" typeof=\"mw:Transclusion  mw:Extension/ref\" data-parsoid=&#39;{\"dsr\":[64,96,null,null],\"pi\":[[{\"k\":\"1\"}]]}&#39; data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"&amp;lt;ref>{{echo|foo}}&amp;lt;/ref>\"}},\"i\":0}}]}&#39;>&lt;a href=\"./Main_Page#cite_note-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\">&lt;span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]&lt;/span>&lt;/a>&lt;/span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{"href":"File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"Undisplayed caption in inline image with ref: {{echo|&lt;ref>{{echo|foo}}&lt;/ref>}}"}]}' data-mw='{"caption":"Undisplayed caption in inline image with ref: &lt;span about=\"#mwt2\" class=\"mw-ref\" id=\"cite_ref-1\" rel=\"dc:references\" typeof=\"mw:Transclusion  mw:Extension/ref\" data-parsoid=&#39;{\"dsr\":[64,96,null,null],\"pi\":[[{\"k\":\"1\"}]]}&#39; data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"&amp;lt;ref>{{echo|foo}}&amp;lt;/ref>\"}},\"i\":0}}]}&#39;>&lt;a href=\"./Main_Page#cite_note-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\">&lt;span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]&lt;/span>&lt;/a>&lt;/span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{"href":"File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 
 <ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
 !! end
@@ -16585,8 +16638,11 @@ __FORCETOC__
 !! end
 
 # perl -e 'print "="x$_," Level $_ heading","="x$_,"\n" for 1..10'
+# Parsoid html2wt direction adds <nowiki> for level 7 and up.
 !! test
 Handling of sections up to level 6 and beyond
+!! options
+parsoid=wt2html
 !! wikitext
 = Level 1 Heading=
 == Level 2 Heading==
@@ -16598,7 +16654,7 @@ Handling of sections up to level 6 and beyond
 ======== Level 8 Heading========
 ========= Level 9 Heading=========
 ========== Level 10 Heading==========
-!! html
+!! html/php
 <div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Level_1_Heading"><span class="tocnumber">1</span> <span class="toctext">Level 1 Heading</span></a>
@@ -16640,6 +16696,17 @@ Handling of sections up to level 6 and beyond
 <h6><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=9" title="Edit section: === Level 9 Heading===">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
 <h6><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=10" title="Edit section: ==== Level 10 Heading====">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
 
+!! html/parsoid
+<h1 id="Level_1_Heading" data-parsoid='{}'> Level 1 Heading</h1>
+<h2 id="Level_2_Heading" data-parsoid='{}'> Level 2 Heading</h2>
+<h3 id="Level_3_Heading" data-parsoid='{}'> Level 3 Heading</h3>
+<h4 id="Level_4_Heading" data-parsoid='{}'> Level 4 Heading</h4>
+<h5 id="Level_5_Heading" data-parsoid='{}'> Level 5 Heading</h5>
+<h6 id="Level_6_Heading" data-parsoid='{}'> Level 6 Heading</h6>
+<h6 id="=_Level_7_Heading=" data-parsoid='{}'><span id=".3D_Level_7_Heading.3D" typeof="mw:FallbackId"></span>= Level 7 Heading=</h6>
+<h6 id="==_Level_8_Heading==" data-parsoid='{}'><span id=".3D.3D_Level_8_Heading.3D.3D" typeof="mw:FallbackId"></span>== Level 8 Heading==</h6>
+<h6 id="===_Level_9_Heading===" data-parsoid='{}'><span id=".3D.3D.3D_Level_9_Heading.3D.3D.3D" typeof="mw:FallbackId"></span>=== Level 9 Heading===</h6>
+<h6 id="====_Level_10_Heading====" data-parsoid='{}'><span id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D" typeof="mw:FallbackId"></span>==== Level 10 Heading====</h6>
 !! end
 
 !! test
@@ -16863,24 +16930,33 @@ http://example.com [[File:Foobar.jpg]]
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a> <span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a> <figure-inline class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !!end
 
+# Parsoid doesn't wt2wt this cleanly because it adds <nowiki>s.
 !! test
 Short headings with trailing space should match behavior of Parser::doHeadings (T21910)
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 === 
 The line above must have a trailing space!
 === <!--
 --> <!-- -->
 But just in case it doesn't...
-!! html
+!! html/php
 <h1><span class="mw-headline" id=".3D">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p>The line above must have a trailing space!
 </p>
 <h1><span class="mw-headline" id=".3D_2">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p>But just in case it doesn't...
 </p>
+!! html/parsoid
+<h1 id="="><span id=".3D" typeof="mw:FallbackId"></span>=</h1> 
+<p>The line above must have a trailing space!</p>
+<h1 id="=_2"><span id=".3D_2" typeof="mw:FallbackId"></span>=</h1> <!--
+--> <!-- -->
+<p>But just in case it doesn't...</p>
 !! end
 
 !! test
@@ -16902,7 +16978,7 @@ section 4
 
 == text " text ==
 section 5
-!! html
+!! html/php
 <p>The tooltips shall not show entities to the user (ie. be double escaped)
 </p>
 <div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
@@ -16930,6 +17006,23 @@ section 5
 <h2><span class="mw-headline" id="text_.22_text">text " text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: text &quot; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 5
 </p>
+!! html/parsoid
+<p>The tooltips shall not show entities to the user (ie. be double escaped)</p>
+
+<h2 id="text_>_text"><span id="text_.3E_text" typeof="mw:FallbackId"></span> text > text </h2>
+<p>section 1</p>
+
+<h2 id="text_&lt;_text"><span id="text_.3C_text" typeof="mw:FallbackId"></span> text &lt; text </h2>
+<p>section 2</p>
+
+<h2 id="text_&amp;_text"><span id="text_.26_text" typeof="mw:FallbackId"></span> text &amp; text </h2>
+<p>section 3</p>
+
+<h2 id="text_'_text"><span id="text_.27_text" typeof="mw:FallbackId"></span> text ' text </h2>
+<p>section 4</p>
+
+<h2 id='text_"_text'><span id="text_.22_text" typeof="mw:FallbackId"></span> text " text </h2>
+<p>section 5</p>
 !! end
 
 !! test
@@ -16961,7 +17054,7 @@ section 6
 [[#Plus-Entity&#43;between&#43;Text]]
 [[#Underscore_between_Text]]
 [[#Underscore-Entity&#95;between&#95;Text]]
-!! html
+!! html/php
 <p>Id should not contain + for spaces
 </p>
 <div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
@@ -16999,17 +17092,47 @@ section 6
 <a href="#Underscore_between_Text">#Underscore_between_Text</a>
 <a href="#Underscore-Entity_between_Text">#Underscore-Entity&#95;between&#95;Text</a>
 </p>
+!! html/parsoid
+<p>Id should not contain + for spaces</p>
+
+<h2 id="Space_between_Text"> Space between Text </h2>
+<p>section 1</p>
+
+<h2 id="Space-Entity_between_Text"> Space-Entity<span typeof="mw:Entity" data-parsoid='{"src":"&amp;#32;","srcContent":" "}'> </span>between<span typeof="mw:Entity" data-parsoid='{"src":"&amp;#32;","srcContent":" "}'> </span>Text </h2>
+<p>section 2</p>
+
+<h2 id="Plus+between+Text"><span id="Plus.2Bbetween.2BText" typeof="mw:FallbackId"></span> Plus+between+Text </h2>
+<p>section 3</p>
+
+<h2 id="Plus-Entity+between+Text"><span id="Plus-Entity.2Bbetween.2BText" typeof="mw:FallbackId"></span> Plus-Entity<span typeof="mw:Entity" data-parsoid='{"src":"&amp;#43;","srcContent":"+"}'>+</span>between<span typeof="mw:Entity" data-parsoid='{"src":"&amp;#43;","srcContent":"+"}'>+</span>Text </h2>
+<p>section 4</p>
+
+<h2 id="Underscore_between_Text"> Underscore_between_Text </h2>
+<p>section 5</p>
+
+<h2 id="Underscore-Entity_between_Text"> Underscore-Entity<span typeof="mw:Entity" data-parsoid='{"src":"&amp;#95;","srcContent":"_"}'>_</span>between<span typeof="mw:Entity" data-parsoid='{"src":"&amp;#95;","srcContent":"_"}'>_</span>Text </h2>
+<p>section 6</p>
+
+<p><a rel="mw:WikiLink" href="./Main_Page#Space_between_Text" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#Space_between_Text"},"sa":{"href":"#Space between Text"}}'>#Space between Text</a>
+<a rel="mw:WikiLink" href="./Main_Page#Space-Entity_between_Text" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#Space-Entity_between_Text"},"sa":{"href":"#Space-Entity&amp;#32;between&amp;#32;Text"}}'>#Space-Entity between Text</a>
+<a rel="mw:WikiLink" href="./Main_Page#Plus+between+Text" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#Plus+between+Text"},"sa":{"href":"#Plus+between+Text"}}'>#Plus+between+Text</a>
+<a rel="mw:WikiLink" href="./Main_Page#Plus-Entity+between+Text" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#Plus-Entity+between+Text"},"sa":{"href":"#Plus-Entity&amp;#43;between&amp;#43;Text"}}'>#Plus-Entity+between+Text</a>
+<a rel="mw:WikiLink" href="./Main_Page#Underscore_between_Text" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#Underscore_between_Text"},"sa":{"href":"#Underscore_between_Text"}}'>#Underscore_between_Text</a>
+<a rel="mw:WikiLink" href="./Main_Page#Underscore-Entity_between_Text" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#Underscore-Entity_between_Text"},"sa":{"href":"#Underscore-Entity&amp;#95;between&amp;#95;Text"}}'>#Underscore-Entity_between_Text</a></p>
 !! end
 
+# Parsoid html2wt disabled because it adds padding spaces around =
 !! test
 Headers with excess '=' characters
 (Are similar tests necessary beyond the 1st level?)
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 =foo==
 ==foo=
 =''italic'' heading==
 ==''italic'' heading=
-!! html
+!! html/php
 <div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#foo.3D"><span class="tocnumber">1</span> <span class="toctext">foo=</span></a></li>
@@ -17024,6 +17147,11 @@ Headers with excess '=' characters
 <h1><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: italic heading=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <h1><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: =italic heading">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 
+!! html/parsoid
+<h1 id="foo="><span id="foo.3D" typeof="mw:FallbackId"></span>foo=</h1>
+<h1 id="=foo"><span id=".3Dfoo" typeof="mw:FallbackId"></span>=foo</h1>
+<h1 id="italic_heading="><span id="italic_heading.3D" typeof="mw:FallbackId"></span><i>italic</i> heading=</h1>
+<h1 id="=italic_heading"><span id=".3Ditalic_heading" typeof="mw:FallbackId"></span>=<i>italic</i> heading</h1>
 !! end
 
 !! test
@@ -17039,7 +17167,7 @@ HTML headers vs TOC (T25393)
 == Header 2.1 ==
 == Header 2.2 ==
 __NOEDITSECTION__
-!! html
+!! html/php
 <div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1"><a href="#Header_1"><span class="tocnumber">1</span> <span class="toctext">Header 1</span></a>
@@ -17064,6 +17192,16 @@ __NOEDITSECTION__
 <h2><span class="mw-headline" id="Header_2.1">Header 2.1</span></h2>
 <h2><span class="mw-headline" id="Header_2.2">Header 2.2</span></h2>
 
+!! html/parsoid
+<h1 id="Header_1" data-parsoid='{"stx":"html"}'>Header 1</h1>
+<h2 id="Header_1.1" data-parsoid='{}'> Header 1.1 </h2>
+<h2 id="Header_1.2" data-parsoid='{}'> Header 1.2 </h2>
+
+<h1 id="Header_2" data-parsoid='{"stx":"html"}'>Header 2
+</h1>
+<h2 id="Header_2.1" data-parsoid='{}'> Header 2.1 </h2>
+<h2 id="Header_2.2" data-parsoid='{}'> Header 2.2 </h2>
+<meta property="mw:PageProp/noeditsection"/>
 !! end
 
 !! test
@@ -17076,11 +17214,17 @@ parsoid=wt2html,wt2wt
 ==baz==<!--
 c2
 c3-->
-!! html
-<h2><span class="mw-headline" id="foo">foo</span></h2>
-<h2><span class="mw-headline" id="bar">bar</span></h2>
-<h2><span class="mw-headline" id="baz">baz</span></h2>
+!! html/php
+<h2><span class="mw-headline" id="foo">foo</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: foo">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="bar">bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="baz">baz</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: baz">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
+!! html/parsoid
+<h2 id="foo">foo</h2><!---->
+<h2 id="bar">bar</h2><!--c1-->
+<h2 id="baz">baz</h2><!--
+c2
+c3-->
 !! end
 
 !! test
@@ -17091,7 +17235,7 @@ http://example.com[[File:Foobar.jpg]]
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a><span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
+<p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a><figure-inline class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline></p>
 !!end
 
 !! test
@@ -17187,15 +17331,17 @@ parsoid=wt2html,html2html
 
 !! test
 div with multiple empty attribute values
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! options
 parsoid=wt2html,html2html
 !! wikitext
 <div id= title=>HTML rocks</div>
 !! html/php
-<div id="title.3D">HTML rocks</div>
+<div id="title=">HTML rocks</div>
 
 !! html/parsoid
-<div id="title.3D" data-parsoid='{"stx":"html"}'>HTML rocks</div>
+<div id="title=" data-parsoid='{"stx":"html"}'>HTML rocks</div>
 !! end
 
 !! test
@@ -17521,7 +17667,7 @@ Image link to nonexistent file (T3850 - good)
 <p><a href="/index.php?title=Special:Upload&amp;wpDestFile=No_such.jpg" class="new" title="File:No such.jpg">File:No such.jpg</a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:No_such.jpg"><img resource="./File:No_such.jpg" src="./Special:FilePath/No_such.jpg" height="220" width="220"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:No_such.jpg"><img resource="./File:No_such.jpg" src="./Special:FilePath/No_such.jpg" height="220" width="220"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -17773,9 +17919,11 @@ T4304: HTML attribute safety (unsafe breakout parameter 2; 2309)
 T4304: HTML attribute safety (link)
 !! wikitext
 <div title="[[Main Page]]"></div>
-!! html
+!! html/php
 <div title="&#91;&#91;Main Page&#93;&#93;"></div>
 
+!! html/parsoid
+<div title="[[Main Page]]"></div>
 !! end
 
 !! test
@@ -17836,9 +17984,11 @@ T4304: HTML attribute safety (web link)
 T4304: HTML attribute safety (named web link)
 !! wikitext
 <div title="[http://example.com/ link]"></div>
-!! html
+!! html/php
 <div title="&#91;http&#58;//example.com/ link&#93;"></div>
 
+!! html/parsoid
+<div title="[http://example.com/ link]"></div>
 !! end
 
 !! test
@@ -18447,13 +18597,26 @@ Table not started</td></tr></table>
 
 !! test
 Sanitizer: Escaping of spaces, multibyte characters, colons & other stuff in id=""
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! wikitext
 <span id="æ: v">byte</span>[[#æ: v|backlink]]
 !! html/php
-<p><span id=".C3.A6:_v">byte</span><a href="#.C3.A6:_v">backlink</a>
+<p><span id="æ:_v">byte</span><a href="#æ:_v">backlink</a>
 </p>
 !! html/parsoid
-<p><span id=".C3.A6:_v" data-parsoid='{"stx":"html","a":{"id":".C3.A6:_v"},"sa":{"id":"æ: v"}}'>byte</span><a rel="mw:WikiLink" href="./Main_Page#.C3.A6:_v" data-parsoid='{"stx":"piped","a":{"href":"./Main_Page#.C3.A6:_v"},"sa":{"href":"#æ: v"}}'>backlink</a></p>
+<p><span id="æ:_v" data-parsoid='{"stx":"html","a":{"id":"æ:_v"},"sa":{"id":"æ: v"}}'>byte</span><a rel="mw:WikiLink" href="./Main_Page#æ:_v" data-parsoid='{"stx":"piped","a":{"href":"./Main_Page#æ:_v"},"sa":{"href":"#æ: v"}}'>backlink</a></p>
+!! end
+
+!! test
+Sanitizer: Escaping of spaces, multibyte characters, colons & other stuff in id="" (legacy)
+!! config
+wgFragmentMode=[ 'legacy' ]
+!! wikitext
+<span id="æ: v">byte</span>[[#æ: v|backlink]]
+!! html/php
+<p><span id=".C3.A6:_v">byte</span><a href="#.C3.A6:_v">backlink</a>
+</p>
 !! end
 
 # In HTML5, the restrictions are that id must contain at least one character,
@@ -18516,6 +18679,37 @@ parsoid=wt2html,wt2wt
 <p><span style="margin: -0.125em -0.45em;  rgba(255, 0, 0, 0.3)">2013</span></p>
 !! end
 
+!! test
+Sanitizer: Avoid unnecessary percent encoded characters in interwiki links
+!! wikitext
+[[meatball:Soft"Security]]
+!! html/php
+<p><a href="http://www.usemod.com/cgi-bin/mb.pl?Soft%22Security" class="extiw" title="meatball:Soft&quot;Security">meatball:Soft"Security</a>
+</p>
+!! html/parsoid
+<p><a rel="mw:WikiLink/Interwiki" href='http://www.usemod.com/cgi-bin/mb.pl?Soft"Security' title='meatball:Soft"Security'>meatball:Soft"Security</a></p>
+!! end
+
+!! test
+Sanitizer: angle brackets are invalid, even in interwiki links (T182338)
+!! wikitext
+[[meatball:Foo<Bar]]
+[[meatball:Foo>Bar]]
+[[meatball:Foo&lt;bar]]
+[[meatball:Foo&gt;bar]]
+!! html/php
+<p>[[meatball:Foo&lt;Bar]]
+[[meatball:Foo&gt;Bar]]
+[[meatball:Foo&lt;bar]]
+[[meatball:Foo&gt;bar]]
+</p>
+!! html/parsoid
+<p>[[meatball:Foo&lt;Bar]]
+[[meatball:Foo>Bar]]
+[[meatball:Foo<span typeof="mw:Entity" data-parsoid='{"src":"&amp;lt;","srcContent":"&lt;"}'>&lt;</span>bar]]
+[[meatball:Foo<span typeof="mw:Entity" data-parsoid='{"src":"&amp;gt;","srcContent":">"}'>></span>bar]]</p>
+!! end
+
 !! test
 Language converter: output gets cut off unexpectedly (T7757)
 !! options
@@ -18877,12 +19071,15 @@ Fuzz testing: Parser13
 
 !! end
 
+# Note that Parsoid output differs from the PHP parser here: the PHP
+# parser breaks the URL for the magic word, while in Parsoid the URL
+# production takes precedence.
 !! test
 Fuzz testing: Parser14
 !! wikitext
 == onmouseover= ==
 http://__TOC__
-!! html
+!! html/php
 <h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 http://<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
 <ul>
@@ -18891,7 +19088,7 @@ http://<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
 </div>
 
 
-!! html+tidy
+!! html/php+tidy
 <h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>http://</p>
 <div id="toc" class="toc">
@@ -18903,6 +19100,9 @@ http://<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
 </ul>
 </div>
 <p></p>
+!! html/parsoid
+<h2 id="onmouseover="><span id="onmouseover.3D" typeof="mw:FallbackId"></span> onmouseover= </h2>
+<p><a rel="mw:ExtLink" href="http://__TOC__" data-parsoid='{"stx":"url"}'>http://__TOC__</a></p>
 !! end
 
 !! test
@@ -18926,7 +19126,7 @@ parsoid=wt2html,html2html
 </tr>
 </table>
 !! html/parsoid
-<h2>a</h2>
+<h2 id="a">a</h2>
 <table style="__TOC__"></table>
 !! end
 
@@ -19101,15 +19301,45 @@ Fuzz testing: image with bogus manual thumbnail
 <figure class="mw-default-size" typeof="mw:Error mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"manualthumb","ak":"thumbnail= "}]}' data-mw='{"errors":[{"key":"apierror-invalidtitle","message":"Invalid thumbnail title.","params":{"name":""}}],"thumb":""}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{"href":"Image:foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="./Special:FilePath/Foobar.jpg" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"220"},"sa":{"resource":"Image:foobar.jpg"}}'/></a></figure>
 !! end
 
+# Parsoid will emit the newline literally in wt2wt; see next test case.
 !! test
 Fuzz testing: encoded newline in generated HTML replacements (T8577)
+!! options
+parsoid=wt2html
 !! wikitext
 <pre dir="&#10;"></pre>
 !! html/php
 <pre dir="&#10;"></pre>
 
 !! html/parsoid
-<pre typeof="mw:Extension/pre" about="#mwt2" dir="&amp;#10;" data-mw='{"name":"pre","attrs":{"dir":"&amp;#10;"},"body":{"extsrc":""}}'></pre>
+<pre typeof="mw:Extension/pre" about="#mwt2" dir="
+" data-mw='{"name":"pre","attrs":{"dir":"\n"},"body":{"extsrc":""}}'></pre>
+!! end
+
+!! test
+Fuzz testing: encoded newline in generated HTML replacements, html2wt (T8577)
+!! options
+parsoid=html2wt
+!! html/parsoid
+<pre typeof="mw:Extension/pre" about="#mwt2" dir="
+" data-mw='{"name":"pre","attrs":{"dir":"\n"},"body":{"extsrc":""}}'></pre>
+!! wikitext
+<pre dir="
+"></pre>
+!! html/php
+<pre dir=""></pre>
+
+!! end
+
+!! test
+Templates in extension attributes are not expanded
+!! wikitext
+<pre dir="{{echo|ltr}}"></pre>
+!! html/php
+<pre dir="{{echo|ltr}}"></pre>
+
+!! html/parsoid
+<pre typeof="mw:Extension/pre" about="#mwt2" dir="{{echo|ltr}}" data-mw='{"name":"pre","attrs":{"dir":"{{echo|ltr}}"},"body":{"extsrc":""}}'></pre>
 !! end
 
 !! test
@@ -20263,7 +20493,7 @@ File:File:Foobar.jpg
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" type="123" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{"type":"123","summary":"345"},"body":{"extsrc":"\nFile:File:Foobar.jpg\n"}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:File:Foobar.jpg"><img resource="./File:File:Foobar.jpg" src="./Special:FilePath/File:Foobar.jpg" height="120" width="120"/></a></span></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:File:Foobar.jpg"><img resource="./File:File:Foobar.jpg" src="./Special:FilePath/File:Foobar.jpg" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
 </ul>
 !! end
 
@@ -20326,12 +20556,12 @@ image4    |300px| centre
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:Image1.png"><img resource="./File:Image1.png" src="./Special:FilePath/Image1.png" height="120" width="120"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:Image2.gif"><img resource="./File:Image2.gif" src="./Special:FilePath/Image2.gif" height="120" width="120"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:Image3"><img resource="./File:Image3" src="./Special:FilePath/Image3" height="120" width="120"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:Image4"><img resource="./File:Image4" src="./Special:FilePath/Image4" height="300" width="300"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:Image5.svg"><img resource="./File:Image5.svg" src="./Special:FilePath/Image5.svg" height="120" width="120"/></a></span></div><div class="gallerytext"> <a rel="mw:ExtLink" href="http://///////">http://///////</a></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:*_image6"><img resource="./File:*_image6" src="./Special:FilePath/*_image6" height="120" width="120"/></a></span></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Image1.png"><img resource="./File:Image1.png" src="./Special:FilePath/Image1.png" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Image2.gif"><img resource="./File:Image2.gif" src="./Special:FilePath/Image2.gif" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Image3"><img resource="./File:Image3" src="./Special:FilePath/Image3" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Image4"><img resource="./File:Image4" src="./Special:FilePath/Image4" height="300" width="300"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Image5.svg"><img resource="./File:Image5.svg" src="./Special:FilePath/Image5.svg" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"> <a rel="mw:ExtLink" href="http://///////">http://///////</a></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:*_image6"><img resource="./File:*_image6" src="./Special:FilePath/*_image6" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
 </ul>
 !! end
 
@@ -20389,11 +20619,11 @@ image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla.
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" style="max-width: 226px; _width: 226px;" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{"widths":"70px","heights":"40px","perrow":"2"},"body":{}}'>
 <li class="gallerycaption">Foo <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="40" width="70"/></a></span></div><div class="gallerytext">caption</div></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="40" width="70"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></span></div><div class="gallerytext">some <b>caption</b> <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></div></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="This is a foo-bar." resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></span></div><div class="gallerytext">blabla.</div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="40" width="70"/></a></figure-inline></div><div class="gallerytext">caption</div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="40" width="70"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></figure-inline></div><div class="gallerytext">some <b>caption</b> <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="This is a foo-bar." resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></figure-inline></div><div class="gallerytext">blabla.</div></li>
 </ul>
 !! end
 
@@ -20450,11 +20680,11 @@ image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla.
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" style="max-width: 226px; _width: 226px;" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{"widths":"70px","heights":"40px","perrow":"2","caption":"Foo [[Main Page]]"},"body":{"extsrc":"\nFile:Nonexistent.jpg|caption\nFile:Nonexistent.jpg\nimage:foobar.jpg|some &#39;&#39;&#39;caption&#39;&#39;&#39; [[Main Page]]\nimage:foobar.jpg\nimage:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla.\n"}}'>
 <li class="gallerycaption">Foo <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="40" width="70"/></a></span></div><div class="gallerytext">caption</div></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="40" width="70"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></span></div><div class="gallerytext">some <b>caption</b> <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></div></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="This is a foo-bar." resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></span></div><div class="gallerytext">blabla.</div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="40" width="70"/></a></figure-inline></div><div class="gallerytext">caption</div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="40" width="70"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></figure-inline></div><div class="gallerytext">some <b>caption</b> <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="This is a foo-bar." resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70"/></a></figure-inline></div><div class="gallerytext">blabla.</div></li>
 </ul>
 !! end
 
@@ -20494,9 +20724,9 @@ image:foobar.jpg|link=Main Page#section|caption
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./Main_Page#section"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./Main_Page#section"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext">caption</div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./Main_Page#section"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./Main_Page#section"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext">caption</div></li>
 </ul>
 !! end
 
@@ -20526,7 +20756,7 @@ File:Foobar.jpg|{{echo|ho}}
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt6" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
 <li class="gallerycaption"><span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"hi"}},"i":0}}]}'>hi</span></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"><span about="#mwt5" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"ho"}},"i":0}}]}'>ho</span></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"><span about="#mwt5" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"ho"}},"i":0}}]}'>ho</span></div></li>
 </ul>
 !! end
 
@@ -20561,8 +20791,8 @@ File:Foobar.jpg|alt=galleryalt|{{Test|unamedParam|alt=param}}
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt6" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"><span typeof="mw:Image" data-mw='{"caption":"desc"}'><a href="./File:Foobar.jpg"><img alt="inneralt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20"/></a></span></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"><span about="#mwt4" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"Test","href":"./Template:Test"},"params":{"1":{"wt":"unamedParam"},"alt":{"wt":"param"}},"i":0}}]}'>This is a test template</span></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"><figure-inline typeof="mw:Image" data-mw='{"caption":"desc"}'><a href="./File:Foobar.jpg"><img alt="inneralt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20"/></a></figure-inline></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"><span about="#mwt4" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"Test","href":"./Template:Test"},"params":{"1":{"wt":"unamedParam"},"alt":{"wt":"param"}},"i":0}}]}'>This is a test template</span></div></li>
 </ul>
 !! end
 
@@ -20615,10 +20845,10 @@ some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{"showfilename":""},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="120" width="120"/></a></span></div><div class="gallerytext"><a href="./File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">File:Nonexistent.jpg</a>caption</div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="120" width="120"/></a></span></div><div class="gallerytext"><a href="./File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">File:Nonexistent.jpg</a></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"><a href="./File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">File:Foobar.jpg</a>some <b>caption</b> <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"><a href="./File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">File:Foobar.jpg</a></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"><a href="./File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">File:Nonexistent.jpg</a>caption</div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"><a href="./File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">File:Nonexistent.jpg</a></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"><a href="./File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">File:Foobar.jpg</a>some <b>caption</b> <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"><a href="./File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">File:Foobar.jpg</a></div></li>
 </ul>
 !! end
 
@@ -20663,27 +20893,27 @@ foobar.jpg
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="120" width="120"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="120" width="120"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"></div></li>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Error mw:Image"><a href="./File:Nonexistent.jpg"><img resource="./File:Nonexistent.jpg" src="./Special:FilePath/Nonexistent.jpg" height="120" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
 </ul>
 !! end
 
 !! test
-Gallery override link with WikiLink (T36852)
+Gallery override link with wikilink (T36852)
 !! options
 parsoid={
   "nativeGallery": true
 }
 !! wikitext
 <gallery>
-File:Foobar.jpg|alt=galleryalt|link=InterWikiLink
+File:Foobar.jpg|alt=galleryalt|link=Wikilink
 </gallery>
 !! html/php
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/InterWikiLink"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
+                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Wikilink"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
                        </div>
                </div></li>
@@ -20691,7 +20921,7 @@ File:Foobar.jpg|alt=galleryalt|link=InterWikiLink
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-parsoid='{"dsr":[0,70,2,2]}' data-mw='{"name":"gallery","attrs":{},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./InterWikiLink"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./Wikilink"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
 </ul>
 !! end
 
@@ -20716,7 +20946,7 @@ File:Foobar.jpg|alt=galleryalt|link=http://www.example.org
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="http://www.example.org"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="http://www.example.org"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
 </ul>
 !! end
 
@@ -20763,7 +20993,7 @@ File:Foobar.jpg|alt=galleryalt|link=" onclick="alert('malicious javascript code!
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./%22_onclick=%22alert('malicious_javascript_code!');"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./%22_onclick=%22alert('malicious_javascript_code!');"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
 </ul>
 !! end
 
@@ -20790,7 +21020,7 @@ File:Foobar.jpg|link=<
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext">link=&lt;</div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext">link=&lt;</div></li>
 </ul>
 !! end
 
@@ -20833,7 +21063,7 @@ File:Foobar.jpg
 
 !! html/parsoid
 <ul class="gallery mw-gallery-traditional center" style="text-align: center;" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{"class":"center","style":"text-align: center;"},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
 </ul>
 !! end
 
@@ -20858,7 +21088,7 @@ File:Foobar.jpg
 
 !! html/parsoid
 <ul class="gallery mw-gallery-slideshow" data-showthumbnails="1" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{"mode":"slideshow","showthumbnails":""},"body":{}}'>
-<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px;"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
 </ul>
 !! end
 
@@ -21120,7 +21350,7 @@ djvu
 <p><a href="/index.php?title=File:LoremIpsum.djvu&amp;page=2" class="image"><img alt="LoremIpsum.djvu" src="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-2480px-LoremIpsum.djvu.jpg" width="2480" height="3508" srcset="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-3720px-LoremIpsum.djvu.jpg 1.5x, http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-4960px-LoremIpsum.djvu.jpg 2x" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"page","ak":"page=2"}]}' data-mw='{"page":"2"}'><a href="./File:LoremIpsum.djvu" data-parsoid='{"a":{"href":"./File:LoremIpsum.djvu"},"sa":{"href":"File:LoremIpsum.djvu"}}'><img resource="./File:LoremIpsum.djvu" src="//example.com/images/5/5f/LoremIpsum.djvu" data-file-width="2480" data-file-height="3508" data-file-type="bitmap" height="3508" width="2480" data-parsoid='{"a":{"resource":"./File:LoremIpsum.djvu","height":"3508","width":"2480"},"sa":{"resource":"File:LoremIpsum.djvu"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"page","ak":"page=2"}]}' data-mw='{"page":"2"}'><a href="./File:LoremIpsum.djvu" data-parsoid='{"a":{"href":"./File:LoremIpsum.djvu"},"sa":{"href":"File:LoremIpsum.djvu"}}'><img resource="./File:LoremIpsum.djvu" src="//example.com/images/5/5f/LoremIpsum.djvu" data-file-width="2480" data-file-height="3508" data-file-type="bitmap" height="3508" width="2480" data-parsoid='{"a":{"resource":"./File:LoremIpsum.djvu","height":"3508","width":"2480"},"sa":{"resource":"File:LoremIpsum.djvu"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -21478,47 +21708,94 @@ ISBN 1 234 56789 0 - 2006
 
 !! test
 anchorencode
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! wikitext
 {{anchorencode:foo bar©#%n}}
-!! html
+!! html/php
+<p>foo_bar©#%n
+</p>
+!! html/parsoid
+<p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"anchorencode:foo bar©#%n","function":"anchorencode"},"params":{},"i":0}}]}'>foo_bar©#%n</p>
+!! end
+
+!! test
+anchorencode (legacy)
+!! config
+wgFragmentMode=[ 'legacy' ]
+!! wikitext
+{{anchorencode:foo bar©#%n}}
+!! html/php
 <p>foo_bar.C2.A9.23.25n
 </p>
 !! end
 
 !! test
 anchorencode trims spaces
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! wikitext
 {{anchorencode: __pretty__please__}}
-!! html
+!! html/php
 <p>pretty_please
 </p>
+!! html/parsoid
+<p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"anchorencode: __pretty__please__","function":"anchorencode"},"params":{},"i":0}}]}'>pretty_please</p>
 !! end
 
 !! test
 anchorencode deals with links
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! wikitext
 {{anchorencode: [[hello|world]] [[hi]]}}
-!! html
+!! html/php
 <p>world_hi
 </p>
+!! html/parsoid
+<p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"anchorencode: [[hello|world]] [[hi]]","function":"anchorencode"},"params":{},"i":0}}]}'>world_hi</p>
 !! end
 
 !! test
 anchorencode deals with templates
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! wikitext
-{{anchorencode: {{Foo}} }}
-!! html
-<p>FOO
+{{anchorencode: {{Foo}} x}}
+!! html/php
+<p>FOO_x
 </p>
+!! html/parsoid
+<p about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"anchorencode: {{Foo}} x","function":"anchorencode"},"params":{},"i":0}}]}'>FOO_x</p>
 !! end
 
 !! test
 anchorencode encodes like the TOC generator: (T20431)
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
+!! wikitext
+=== _ +:.3A%3A _ &&amp;]] x ===
+{{anchorencode: _ +:.3A%3A _ &&amp;]] x}}
+__NOEDITSECTION__
+!! html/php
+<h3><span id=".2B:.3A.253A_.26.26.5D.5D_x"></span><span class="mw-headline" id="+:.3A%3A_&amp;&amp;]]_x">_ +:.3A%3A _ &amp;&amp;]] x</span></h3>
+<p>+:.3A%3A_&amp;&amp;&#93;&#93;_x
+</p>
+!! html/parsoid
+<h3 id="+:.3A%3A_&amp;&amp;]]_x"><span id=".2B:.3A.253A_.26.26.5D.5D_x" typeof="mw:FallbackId"></span> _ +:.3A%3A _ &amp;<span typeof="mw:Entity" data-parsoid='{"src":"&amp;amp;","srcContent":"&amp;","dsr":[18,23,null,null]}'>&amp;</span>]] x </h3>
+<p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"anchorencode: _ +:.3A%3A _ &amp;&amp;amp;]] x","function":"anchorencode"},"params":{},"i":0}}]}'>+:.3A%3A_&amp;&amp;<span typeof="mw:Entity">]</span><span typeof="mw:Entity">]</span>_x</p>
+<meta property="mw:PageProp/noeditsection"/>
+!! end
+
+!! test
+anchorencode encodes like the TOC generator: (T20431) (legacy)
+!! config
+wgFragmentMode=[ 'legacy' ]
 !! wikitext
 === _ +:.3A%3A&&amp;]] ===
 {{anchorencode: _ +:.3A%3A&&amp;]] }}
 __NOEDITSECTION__
-!! html
+!! html/php
 <h3><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&amp;&amp;]]</span></h3>
 <p>.2B:.3A.253A.26.26.5D.5D
 </p>
@@ -21794,6 +22071,8 @@ language=sr variant=sr-ec
 
 !! test
 -{}- tags within headlines (within html for parserConvert())
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! options
 language=sr variant=sr-ec
 !! wikitext
@@ -21804,14 +22083,14 @@ conversion:
 
 == Latinski ==
 !! html/php
-<h2><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Уреди одељак „Naslov“">уреди</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span id="-.7BNaslov.7D-"></span><span class="mw-headline" id="-{Naslov}-">Naslov</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Уреди одељак „Naslov“">уреди</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>Ноте тхат евен ан унпротецтед хеадлине ИД ис нот аффецтед бy лангуаге
 цонверсион:
 </p>
 <h2><span class="mw-headline" id="Latinski">Латински</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Уреди одељак „Латински“">уреди</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! html/parsoid
-<h2 id="-.7BNaslov.7D-"><span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"Naslov"}}'></span></h2>
+<h2 id="-{Naslov}-"><span id="-.7BNaslov.7D-" typeof="mw:FallbackId"></span> <span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"Naslov"}}'></span> </h2>
 
 <p>Note that even an unprotected headline ID is not affected by language
 conversion:</p>
@@ -22624,15 +22903,9 @@ File:foobar.jpg|{{Test|unamedParam|alt=-{R|param}-}}|alt=galleryalt
 </ul>
 
 !! html/parsoid
-<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" data-mw='{"name":"gallery","attrs":{},"body":{"extsrc":"\nFile:foobar.jpg|[[File:foobar.jpg|20px|desc|alt=-{R|foo}-|-{R|bar}-]]|alt=-{R|bat}-\nFile:foobar.jpg|{{Test|unamedParam|alt=-{R|param}-}}|alt=galleryalt\n"}}'>
-<li class="gallerybox">
-<div class="thumb"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div>
-<div class="gallerytext"><span typeof="mw:Image" data-mw='{"caption":"&lt;span typeof=\"mw:LanguageVariant\" data-mw-variant=&#39;{\"disabled\":{\"t\":\"bar\"}}&#39; data-parsoid=&#39;{\"fl\":[\"R\"],\"dsr\":[68,77,null,2]}&#39;>&lt;/span>"}'><a href="./File:Foobar.jpg"><img alt="" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20"/></a></span></div>
-</li>
-<li class="gallerybox">
-<div class="thumb"><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div>
-<div class="gallerytext"><span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"Test","href":"./Template:Test"},"params":{"1":{"wt":"unamedParam"},"alt":{"wt":"-{R|param}-"}},"i":0}}]}'>This is a test template</span></div>
-</li>
+<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt6" data-mw='{"name":"gallery","attrs":{},"body":{"extsrc":"\nFile:foobar.jpg|[[File:foobar.jpg|20px|desc|alt=-{R|foo}-|-{R|bar}-]]|alt=-{R|bat}-\nFile:foobar.jpg|{{Test|unamedParam|alt=-{R|param}-}}|alt=galleryalt\n"}}'>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"><figure-inline typeof="mw:Image" data-mw='{"caption":"&lt;span typeof=\"mw:LanguageVariant\" data-mw-variant=&#39;{\"disabled\":{\"t\":\"bar\"}}&#39; data-parsoid=&#39;{\"fl\":[\"R\"],\"dsr\":[68,77,null,2]}&#39;>&lt;/span>"}'><a href="./File:Foobar.jpg"><img alt="" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20"/></a></figure-inline></div></li>
+<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="galleryalt" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"><span about="#mwt4" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"Test","href":"./Template:Test"},"params":{"1":{"wt":"unamedParam"},"alt":{"wt":"-{R|param}-"}},"i":0}}]}'>This is a test template</span></div></li>
 </ul>
 !! end
 
@@ -23817,7 +24090,7 @@ percent-encoding and + signs in internal links (T28410)
 !! html/parsoid
 <p><a rel="mw:WikiLink" href="./User:+%25" title="User:+%" data-parsoid='{"stx":"simple","a":{"href":"./User:+%25"},"sa":{"href":"User:+%"}}'>User:+%</a> <a rel="mw:WikiLink" href="./Page+title%25" title="Page+title%" data-parsoid='{"stx":"simple","a":{"href":"./Page+title%25"},"sa":{"href":"Page+title%"}}'>Page+title%</a>
 <a rel="mw:WikiLink" href="./%25+" title="%+" data-parsoid='{"stx":"simple","a":{"href":"./%25+"},"sa":{"href":"%+"}}'>%+</a> <a rel="mw:WikiLink" href="./%25+" title="%+" data-parsoid='{"stx":"piped","a":{"href":"./%25+"},"sa":{"href":"%+"}}'>%20</a> <a rel="mw:WikiLink" href="./%25+" title="%+" data-parsoid='{"stx":"simple","a":{"href":"./%25+"},"sa":{"href":"%+ "}}'>%+ </a> <a rel="mw:WikiLink" href="./%25+r" title="%+r" data-parsoid='{"stx":"simple","a":{"href":"./%25+r"},"sa":{"href":"%+r"}}'>%+r</a>
-<a rel="mw:WikiLink" href="./%25" title="%" data-parsoid='{"stx":"simple","a":{"href":"./%25"},"sa":{"href":"%"}}'>%</a> <a rel="mw:WikiLink" href="./+" title="+" data-parsoid='{"stx":"simple","a":{"href":"./+"},"sa":{"href":"+"}}'>+</a> <span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"bogus","ak":"foo"},{"ck":"caption","ak":"[[bar]]"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&lt;a rel=\"mw:WikiLink\" href=\"./Bar\" title=\"Bar\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Bar\"},\"sa\":{\"href\":\"bar\"},\"dsr\":[94,101,2,2]}&#39;>bar&lt;/a>"}'><a href="./File:%25+abc9" data-parsoid='{"a":{"href":"./File:%25+abc9"},"sa":{}}'><img resource="./File:%25+abc9" src="./Special:FilePath/%25+abc9" height="220" width="220" data-parsoid='{"a":{"resource":"./File:%25+abc9","height":"220","width":"220"},"sa":{"resource":"File:%+abc%39"}}'/></a></span>
+<a rel="mw:WikiLink" href="./%25" title="%" data-parsoid='{"stx":"simple","a":{"href":"./%25"},"sa":{"href":"%"}}'>%</a> <a rel="mw:WikiLink" href="./+" title="+" data-parsoid='{"stx":"simple","a":{"href":"./+"},"sa":{"href":"+"}}'>+</a> <figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"bogus","ak":"foo"},{"ck":"caption","ak":"[[bar]]"}]}' data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"&lt;a rel=\"mw:WikiLink\" href=\"./Bar\" title=\"Bar\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Bar\"},\"sa\":{\"href\":\"bar\"},\"dsr\":[94,101,2,2]}&#39;>bar&lt;/a>"}'><a href="./File:%25+abc9" data-parsoid='{"a":{"href":"./File:%25+abc9"},"sa":{}}'><img resource="./File:%25+abc9" src="./Special:FilePath/%25+abc9" height="220" width="220" data-parsoid='{"a":{"resource":"./File:%25+abc9","height":"220","width":"220"},"sa":{"resource":"File:%+abc%39"}}'/></a></figure-inline>
 <a rel="mw:WikiLink" href="./3E" title="3E" data-parsoid='{"stx":"simple","a":{"href":"./3E"},"sa":{"href":"%33%45"}}'>3E</a> <a rel="mw:WikiLink" href="./3E+" title="3E+" data-parsoid='{"stx":"simple","a":{"href":"./3E+"},"sa":{"href":"%33%45+"}}'>3E+</a></p>
 !! end
 
@@ -23831,8 +24104,8 @@ Special characters in embedded file links (T29679)
 <a href="/index.php?title=Special:Upload&amp;wpDestFile=Does_not_exist.jpg" class="new" title="File:Does not exist.jpg">Title with &amp; ampersand</a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:Contains_&amp;_ampersand.jpg"><img resource="./File:Contains_&amp;_ampersand.jpg" src="./Special:FilePath/Contains_&amp;_ampersand.jpg" height="220" width="220"/></a></span>
-<span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"Title with &amp;amp; ampersand"}'><a href="./File:Does_not_exist.jpg"><img resource="./File:Does_not_exist.jpg" src="./Special:FilePath/Does_not_exist.jpg" height="220" width="220"/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./File:Contains_&amp;_ampersand.jpg"><img resource="./File:Contains_&amp;_ampersand.jpg" src="./Special:FilePath/Contains_&amp;_ampersand.jpg" height="220" width="220"/></a></figure-inline>
+<figure-inline class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}],"caption":"Title with &amp;amp; ampersand"}'><a href="./File:Does_not_exist.jpg"><img resource="./File:Does_not_exist.jpg" src="./Special:FilePath/Does_not_exist.jpg" height="220" width="220"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -23979,7 +24252,7 @@ __TOC__
 
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> <i>Lost</i> episodes </h2>
+<h2 id="Lost_episodes" data-parsoid='{}'> <i>Lost</i> episodes </h2>
 !! end
 
 !! test
@@ -24000,7 +24273,7 @@ __TOC__
 
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> <b>should be bold</b> then normal text </h2>
+<h2 id="should_be_bold_then_normal_text" data-parsoid='{}'> <b>should be bold</b> then normal text </h2>
 !! end
 
 !! test
@@ -24021,7 +24294,7 @@ __TOC__
 
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> Image <span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"Image:foobar.jpg"}}'/></a></span> </h2>
+<h2 id="Image" data-parsoid='{}'> Image <figure-inline class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"Image:foobar.jpg"}}'/></a></figure-inline> </h2>
 !! end
 
 !! test
@@ -24058,11 +24331,13 @@ __TOC__
 <p><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Quote">edit</a><span class="mw-editsection-bracket">]</span></span></p>
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> <blockquote>Quote</blockquote> </h2>
+<h2 id="Quote" data-parsoid='{}'> <blockquote>Quote</blockquote> </h2>
 !! end
 
 !! test
 Unclosed tags in TOC
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
 !! options
 title=[[Main Page]]
 !! wikitext
@@ -24073,17 +24348,17 @@ QED
 !! html/php
 <div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
 <ul>
-<li class="toclevel-1 tocsection-1"><a href="#Proof:_2_.3C_3"><span class="tocnumber">1</span> <span class="toctext">Proof: 2 &lt; 3</span></a></li>
+<li class="toclevel-1 tocsection-1"><a href="#Proof:_2_&lt;_3"><span class="tocnumber">1</span> <span class="toctext">Proof: 2 &lt; 3</span></a></li>
 </ul>
 </div>
 
-<h2><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 &lt; 3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Proof: 2 &lt; 3">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span id="Proof:_2_.3C_3"></span><span class="mw-headline" id="Proof:_2_&lt;_3">Proof: 2 &lt; 3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Proof: 2 &lt; 3">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p><small>Hanc marginis exiguitas non caperet.</small>
 QED
 </p>
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> Proof: 2 &lt; 3 </h2>
+<h2 id="Proof:_2_&lt;_3" data-parsoid='{}'><span id="Proof:_2_.3C_3" typeof="mw:FallbackId"></span> Proof: 2 &lt; 3 </h2>
 <p><small>Hanc marginis exiguitas non caperet.</small>
 QED</p>
 !! end
@@ -24126,8 +24401,9 @@ __TOC__
 <p><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></p>
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> <i data-parsoid='{"stx":"html"}'>Foo</i> <b data-parsoid='{"stx":"html"}'>Bar</b> </h2>
-<h2> <i data-parsoid='{"stx":"html"}'>Foo</i> <blockquote>Bar</blockquote> </h2>
+<h2 id="Foo_Bar" data-parsoid='{}'> <i data-parsoid='{"stx":"html"}'>Foo</i> <b data-parsoid='{"stx":"html"}'>Bar</b> </h2>
+
+<h2 id="Foo_Bar_2" data-parsoid='{}'> <i data-parsoid='{"stx":"html"}'>Foo</i> <blockquote>Bar</blockquote> </h2>
 !! end
 
 # Don't expect Parsoid to roundtrip this until the php parser comes closer to
@@ -24154,9 +24430,9 @@ __TOC__
 
 !! html/parsoid
 <meta property="mw:PageProp/toc" />
-<h2> <sup class="in-h2" data-parsoid='{"stx":"html"}'>Hello</sup> </h2>
+<h2 id="Hello"> <sup class="in-h2" data-parsoid='{"stx":"html"}'>Hello</sup> </h2>
 
-<h2> <sup class="a " data-parsoid='{"stx":"html"}'> b">Evilbye</sup> </h2>
+<h2 id='b">Evilbye'><span id="b.22.3EEvilbye" typeof="mw:FallbackId"></span> <sup class="a " data-parsoid='{"stx":"html"}'> b">Evilbye</sup> </h2>
 !! end
 
 !! test
@@ -24191,11 +24467,11 @@ __TOC__
 
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> <span dir="ltr">C++</span> </h2>
-<h2> <span dir="rtl">זבנג!</span> </h2>
-<h2> <span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span> </h2>
-<h2> <span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span> </h2>
-<h2> <span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span> </h2>
+<h2 id="C++" data-parsoid='{}'><span id="C.2B.2B" typeof="mw:FallbackId"></span> <span dir="ltr">C++</span> </h2>
+<h2 id="זבנג!"><span id=".D7.96.D7.91.D7.A0.D7.92.21" typeof="mw:FallbackId"></span> <span dir="rtl">זבנג!</span> </h2>
+<h2 id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"> <span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span> </h2>
+<h2 id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"> <span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span> </h2>
+<h2 id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"> <span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span> </h2>
 !! end
 
 !! test
@@ -24214,7 +24490,7 @@ __TOC__
 
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> <bdi>test</bdi> </h2>
+<h2 id="test" data-parsoid='{}'> <bdi>test</bdi> </h2>
 !! end
 
 !! test
@@ -24233,7 +24509,7 @@ __TOC__
 
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> <s>test</s> test <strike>test</strike> </h2>
+<h2 id="test_test_test" data-parsoid='{}'> <s>test</s> test <strike>test</strike> </h2>
 !! end
 
 # Note that the html output does not have the <p></p>, but the
@@ -24267,7 +24543,7 @@ __TOC__
 <h2><span class="mw-headline" id="x">x</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: x">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 data-parsoid='{}'> x </h2>
+<h2 id="x" data-parsoid='{}'> x </h2>
 !! end
 
 !! article
@@ -24390,9 +24666,11 @@ Strip marker in padright
 Strip marker in anchorencode
 !! wikitext
 {{anchorencode:x<nowiki/>y}}
-!! html
+!! html/php
 <p>xy
 </p>
+!! html/parsoid
+<p about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"anchorencode:x&lt;nowiki/>y","function":"anchorencode"},"params":{},"i":0}}]}'>xy</p>
 !! end
 
 !! test
@@ -24851,16 +25129,59 @@ Headings: 4b. No escaping needed (inside p-tags)
 !! options
 parsoid=html2wt
 !! html/parsoid
-<p>===
-=foo= x
+<p>=foo= x
 =foo= <s></s>
 </p>
 !! wikitext
-===
 =foo= x
 =foo= <s></s>
+!! html/php
+<p>=foo= x
+=foo= <s></s>
+</p>
 !!end
 
+!! test
+Headings: 4c. Short headings (1)
+!! options
+parsoid=html2wt
+!! html/parsoid
+<p>===
+</p>
+!! wikitext
+<nowiki>===</nowiki>
+!! html/php
+<p>===
+</p>
+!! end
+
+# in the html2wt direction we emit '= = =' or '=<nowiki>=</nowiki>='
+!! test
+Headings: 4d. Short headings (2)
+!! options
+parsoid=wt2html,html2html
+!! wikitext
+=
+==
+===
+====
+=====
+!! html/php
+<p>=
+==
+</p>
+<h1><span class="mw-headline" id=".3D">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id=".3D.3D">==</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: ==">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h2><span class="mw-headline" id=".3D_2">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+
+!! html/parsoid
+<p>=
+==</p>
+<h1 id="="><span id=".3D" typeof="mw:FallbackId"></span>=</h1>
+<h1 id="=="><span id=".3D.3D" typeof="mw:FallbackId"></span>==</h1>
+<h2 id="=_2"><span id=".3D_2" typeof="mw:FallbackId"></span>=</h2>
+!! end
+
 !! test
 Headings: 5. Empty headings
 !! options
@@ -27447,7 +27768,7 @@ Image: upright option is ignored on inline and frame images (parsoid)
 !! wikitext
 [[File:Foobar.jpg|500x500px|upright=0.5|caption]]
 !! html/parsoid
-<p><span typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/500px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="57" width="500"/></a></span></p>
+<p><figure-inline typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/500px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="57" width="500"/></a></figure-inline></p>
 !! end
 
 !! test
@@ -27455,7 +27776,7 @@ Image: in template parameter with empty parameter
 !! wikitext
 {{echo|[[File:Foobar.jpg|link=]]}}
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Transclusion mw:Image" about="#mwt1" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[File:Foobar.jpg|link=]]"}},"i":0}}]}'><span><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></span></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Transclusion mw:Image" about="#mwt1" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[File:Foobar.jpg|link=]]"}},"i":0}}]}'><span><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></span></figure-inline></p>
 !! end
 
 !! test
@@ -27508,7 +27829,7 @@ Image: Invalid title as link
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="link=&lt;"><img alt="link=&lt;" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! html/parsoid
-<p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"link","ak":"link=&lt;"}]}' data-mw='{"caption":"link=&amp;lt;"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+<p><figure-inline class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"link","ak":"link=&lt;"}]}' data-mw='{"caption":"link=&amp;lt;"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure-inline></p>
 !! end
 
 !! test
@@ -28534,6 +28855,14 @@ parsoid=wt2html
 <p><span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"hi"}},"i":0}}]}'>hi</span><a rel="mw:ExtLink" href="http://example.com"></a><a rel="mw:WikiLink" href="./Ho" title="Ho" data-parsoid='{"misnested":true}'>ho</a></p>
 !! end
 
+!! test
+Catch regression when unpacking with trailing content
+!! wikitext
+{{echo|Foo <references/> bar}}
+!! html/parsoid
+<p about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"Foo &lt;references/> bar"}},"i":0}}]}'>Foo </p><ol class="mw-references references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol><p about="#mwt2"> bar</p>
+!! end
+
 !! test
 Use data-parsoid.firstWikitextNode to compute newline constraints for template content
 !! options
@@ -29535,6 +29864,24 @@ wgRawHtml=1
 
 !! test
 Decoding of HTML entities in headings and links for IDs and link fragments (T103714)
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
+!! wikitext
+== A&B&amp;C&amp;amp;D&amp;amp;amp;E ==
+[[#A&B&amp;C&amp;amp;D&amp;amp;amp;E]]
+!! html/php
+<h2><span id="A.26B.26C.26amp.3BD.26amp.3Bamp.3BE"></span><span class="mw-headline" id="A&amp;B&amp;C&amp;amp;D&amp;amp;amp;E">A&amp;B&amp;C&amp;amp;D&amp;amp;amp;E</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: A&amp;B&amp;C&amp;amp;D&amp;amp;amp;E">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<p><a href="#A&amp;B&amp;C&amp;amp;D&amp;amp;amp;E">#A&amp;B&amp;C&amp;amp;D&amp;amp;amp;E</a>
+</p>
+!! html/parsoid
+<h2 id="A&amp;B&amp;C&amp;amp;D&amp;amp;amp;E"><span id="A.26B.26C.26amp.3BD.26amp.3Bamp.3BE" typeof="mw:FallbackId" data-parsoid="{}"></span> A&amp;B<span typeof="mw:Entity" data-parsoid='{"src":"&amp;amp;","srcContent":"&amp;"}'>&amp;</span>C<span typeof="mw:Entity" data-parsoid='{"src":"&amp;amp;","srcContent":"&amp;"}'>&amp;</span>amp;D<span typeof="mw:Entity" data-parsoid='{"src":"&amp;amp;","srcContent":"&amp;"}'>&amp;</span>amp;amp;E </h2>
+<p><a rel="mw:WikiLink" href="./Main_Page#A&amp;B&amp;C&amp;amp;D&amp;amp;amp;E" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#A&amp;B&amp;C&amp;amp;D&amp;amp;amp;E"},"sa":{"href":"#A&amp;B&amp;amp;C&amp;amp;amp;D&amp;amp;amp;amp;E"}}'>#A&amp;B&amp;C&amp;amp;D&amp;amp;amp;E</a></p>
+!! end
+
+!! test
+Decoding of HTML entities in headings and links for IDs and link fragments (T103714) (legacy)
+!! config
+wgFragmentMode=[ 'legacy' ]
 !! wikitext
 == A&B&amp;C&amp;amp;D&amp;amp;amp;E ==
 [[#A&B&amp;C&amp;amp;D&amp;amp;amp;E]]
@@ -29544,17 +29891,46 @@ Decoding of HTML entities in headings and links for IDs and link fragments (T103
 </p>
 !! end
 
+!! test
+Decoding of HTML entities in embedded HTML tags
+!! wikitext
+<table class="1&2&amp;3&amp;amp;4&amp;amp;amp;5"><tr><td>x</td></tr></table>
+!! html/php
+<table class="1&amp;2&amp;3&amp;amp;4&amp;amp;amp;5"><tr><td>x</td></tr></table>
+
+!! html/parsoid
+<table class="1&amp;2&amp;3&amp;amp;4&amp;amp;amp;5" data-parsoid='{"stx":"html","a":{"class":"1&amp;2&amp;3&amp;amp;4&amp;amp;amp;5"},"sa":{"class":"1&amp;2&amp;amp;3&amp;amp;amp;4&amp;amp;amp;amp;5"}}'><tbody><tr data-parsoid='{"stx":"html"}'><td data-parsoid='{"stx":"html"}'>x</td></tr></tbody></table>
+!! end
+
 !! test
 Decoding of HTML entities in indicator names for IDs (T104196)
 !! options
+parsoid=wt2html,html2html
 showindicators
 !! wikitext
 <indicator name="1&2&amp;3&amp;amp;4&amp;amp;amp;5">Indicator</indicator>
 !! html/php
 1&2&3&amp;4&amp;amp;5=Indicator
 
+!! html/parsoid
+<p><span typeof="mw:Extension/indicator" about="#mwt3" data-mw='{"name":"indicator","attrs":{"name":"1&amp;2&amp;3&amp;amp;4&amp;amp;amp;5"},"body":{"extsrc":"Indicator"}}'></span></p>
+!! end
+
+# this version of the test strips out the ambiguity so Parsoid rts cleanly
+!! test
+Decoding of HTML entities in indicator names for IDs (unambiguous) (T104196)
+!! options
+showindicators
+!! wikitext
+<indicator name="1&2&3&amp;amp;4&amp;amp;amp;5">Indicator</indicator>
+!! html/php
+1&2&3&amp;4&amp;amp;5=Indicator
+
+!! html/parsoid
+<p><span typeof="mw:Extension/indicator" about="#mwt3" data-mw='{"name":"indicator","attrs":{"name":"1&amp;2&amp;3&amp;amp;4&amp;amp;amp;5"},"body":{"extsrc":"Indicator"}}'></span></p>
 !! end
 
+# This fragment mode is what Parsoid supports.
 !! test
 HTML5 ids: fallback to legacy
 !! config
@@ -29600,8 +29976,27 @@ wgFragmentMode=[ 'html5', 'legacy' ]
 </p><p>💩 <span id="💩"></span>
 </p><p><a href="#啤酒">#啤酒</a> <a href="#啤酒">#啤酒</a>
 </p>
+!! html/parsoid
+<h2 id="Foo_bar"> Foo bar </h2>
+
+<h2 id="foo_Bar_2"> foo Bar </h2>
+
+<h2 id="Тест"><span id=".D0.A2.D0.B5.D1.81.D1.82" typeof="mw:FallbackId"></span> Тест </h2>
+
+<h2 id="Тест_2"><span id=".D0.A2.D0.B5.D1.81.D1.82_2" typeof="mw:FallbackId"></span> Тест </h2>
+
+<h2 id="тест"><span id=".D1.82.D0.B5.D1.81.D1.82" typeof="mw:FallbackId"></span> тест </h2>
+
+<h2 id="Hey_&lt;_#_&quot;_>_%_:_'"><span id="Hey_.3C_.23_.22_.3E_.25_:_.27" typeof="mw:FallbackId"></span> Hey &lt; # " > %<span typeof="mw:DisplaySpace mw:Placeholder" data-parsoid='{"src":" ","isDisplayHack":true}'> </span>: ' </h2>
+<p><a rel="mw:WikiLink" href="./Main_Page#Foo_bar">#Foo bar</a> <a rel="mw:WikiLink" href="./Main_Page#foo_Bar">#foo Bar</a> <a rel="mw:WikiLink" href="./Main_Page#Тест">#Тест</a> <a rel="mw:WikiLink" href="./Main_Page#тест">#тест</a> <a rel="mw:WikiLink" href="./Main_Page#Hey_&lt;_#_&quot;_>_%_:_'" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#Hey_&lt;_#_\"_>_%_:_&#39;"},"sa":{"href":"#Hey &lt; # \" > % : &#39;"}}'>#Hey &lt; # " > % : '</a></p>
+
+<p><span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"anchorencode:💩","function":"anchorencode"},"params":{},"i":0}}]}'>💩</span> <span id="💩" about="#mwt3" typeof="mw:ExpandedAttrs" data-mw='{"attribs":[[{"txt":"id"},{"html":"&lt;span about=\"#mwt2\" typeof=\"mw:Transclusion\" data-parsoid=&#39;{\"pi\":[[]],\"dsr\":[190,209,null,null]}&#39; data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"anchorencode:💩\",\"function\":\"anchorencode\"},\"params\":{},\"i\":0}}]}&#39;>💩&lt;/span>"}]]}'></span></p>
+
+<!-- These two links should produce identical HTML -->
+<p><a rel="mw:WikiLink" href="./Main_Page#啤酒">#啤酒</a> <a rel="mw:WikiLink" href="./Main_Page#啤酒" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#啤酒"},"sa":{"href":"#%E5%95%A4%E9%85%92"}}'>#啤酒</a></p>
 !! end
 
+# Parsoid doesn't support this mode
 !! test
 HTML5 ids: legacy with a fallback to modern
 !! config
@@ -29649,6 +30044,7 @@ wgFragmentMode=[ 'legacy', 'html5' ]
 </p>
 !! end
 
+# Parsoid doesn't support this mode.
 !! test
 HTML5 ids: no legacy
 !! config
@@ -29720,6 +30116,9 @@ T51672: Test for brackets in attributes of elements in external link texts
 <p><a rel="nofollow" class="external text" href="http://example.com/">link <span title="title with &#91;brackets&#93;">span</span></a>
 <a rel="nofollow" class="external text" href="http://example.com/">link <span title="title with &#91;brackets&#93;">span</span></a>
 </p>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://example.com/">link <span title="title with [brackets]">span</span></a>
+<a rel="mw:ExtLink" href="http://example.com/">link <span title="title with [brackets]" data-parsoid='{"stx":"html","a":{"title":"title with [brackets]"},"sa":{"title":"title with &amp;#91;brackets&amp;#93;"}}'>span</span></a></p>
 !! end
 
 !! test
@@ -29732,6 +30131,9 @@ T72875: Test for brackets in attributes of elements in internal link texts
 <p><a href="/wiki/Foo" title="Foo">link <span title="title with &#91;&#91;double brackets&#93;&#93;">span</span></a>
 <a href="/wiki/Foo" title="Foo">link <span title="title with &#91;&#91;double brackets&#93;&#93;">span</span></a>
 </p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="./Foo" title="Foo">link <span title="title with [[double brackets]]">span</span></a>
+<a rel="mw:WikiLink" href="./Foo" title="Foo">link <span title="title with [[double brackets]]" data-parsoid='{"stx":"html","a":{"title":"title with [[double brackets]]"},"sa":{"title":"title with &amp;#91;&amp;#91;double brackets&amp;#93;&amp;#93;"}}'>span</span></a></p>
 !! end
 
 !! test
@@ -29743,6 +30145,8 @@ wgFragmentMode=[ 'html5' ]
 !! html/php
 <p><span id="&#91;foo&#93;"></span><a href="#[foo]">#&#91;foo&#93;</a>
 </p>
+!! html/parsoid
+<p><span id="[foo]" about="#mwt3" typeof="mw:ExpandedAttrs" data-parsoid='{"stx":"html","a":{"id":"[foo]"},"sa":{"id":"{{anchorencode:[foo]}}"}}' data-mw='{"attribs":[[{"txt":"id"},{"html":"&lt;span typeof=\"mw:Transclusion mw:Entity\" about=\"#mwt1\" data-parsoid=&apos;{\"srcContent\":\"[\",\"dsr\":[10,32,null,null],\"pi\":[[]]}&apos; data-mw=&apos;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"anchorencode:[foo]\",\"function\":\"anchorencode\"},\"params\":{},\"i\":0}}]}&apos;>[&lt;/span>&lt;span about=\"#mwt1\" data-parsoid=\"{}\">foo&lt;/span>&lt;span typeof=\"mw:Entity\" about=\"#mwt1\" data-parsoid=&apos;{\"src\":\"&amp;amp;#x5D;\",\"srcContent\":\"]\"}&apos;>]&lt;/span>"}]]}'></span><a typeof="mw:ExpandedAttrs" about="#mwt4" rel="mw:WikiLink" href="./Main_Page#[foo]" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page#[foo]"},"sa":{"href":"#{{anchorencode:[foo]}}"}}' data-mw='{"attribs":[[{"txt":"href"},{"html":"#&lt;span typeof=\"mw:Transclusion mw:Entity\" about=\"#mwt2\" data-parsoid=&apos;{\"srcContent\":\"[\",\"dsr\":[44,66,null,null],\"pi\":[[]]}&apos; data-mw=&apos;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"anchorencode:[foo]\",\"function\":\"anchorencode\"},\"params\":{},\"i\":0}}]}&apos;>[&lt;/span>&lt;span about=\"#mwt2\" data-parsoid=\"{}\">foo&lt;/span>&lt;span typeof=\"mw:Entity\" about=\"#mwt2\" data-parsoid=&apos;{\"src\":\"&amp;amp;#x5D;\",\"srcContent\":\"]\"}&apos;>]&lt;/span>"}]]}'>#[foo]</a></p>
 !! end
 
 ## ------------------------------
 = 3 =
 f
 !! html/parsoid
-<section data-mw-section-id="1"><h1 id="1"> 1 </h1>
+<section data-mw-section-id="0"></section><section data-mw-section-id="1"><h1 id="1"> 1 </h1>
 <p>a</p>
 
 </section><section data-mw-section-id="2"><h1 id="2"> 2 </h1>
 = 2 =
 d
 !! html/parsoid
-<section data-mw-section-id="1"><h1 id="1"> 1 </h1>
+<section data-mw-section-id="0"></section><section data-mw-section-id="1"><h1 id="1"> 1 </h1>
 <p>a</p>
 
 <section data-mw-section-id="-1"><h2 about="#mwt1" typeof="mw:Transclusion" id="1.1" data-parsoid='{"dsr":[9,33,null,null],"pi":[[{"k":"1","named":true,"spc":["","","\n","\n"]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"== 1.1 ==\nb"}},"i":0}}]}'> 1.1 </h2><span about="#mwt1">
 = 2 =
 e
 !! html/parsoid
-<section data-mw-section-id="1"><h1 id="1"> 1 </h1>
+<section data-mw-section-id="0"></section><section data-mw-section-id="1"><h1 id="1"> 1 </h1>
 <p>a</p>
 
 <section data-mw-section-id="-1"><h2 about="#mwt1" typeof="mw:Transclusion" id="1.1" data-parsoid='{"dsr":[9,50,null,null],"pi":[[{"k":"1","named":true,"spc":["","","\n","\n"]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"== 1.1 ==\nb\n=== 1.1.1 ===\nd"}},"i":0}},"\n"]}'> 1.1 </h2><span about="#mwt1">
 = 2 =
 e
 !! html/parsoid
-<section data-mw-section-id="1" data-parsoid="{}"><h1 id="1"> 1 </h1>
+<section data-mw-section-id="0"></section><section data-mw-section-id="1" data-parsoid="{}"><h1 id="1"> 1 </h1>
 <p>a</p>
 
 <p about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"dsr":[9,60,0,0],"pi":[[{"k":"1","named":true,"spc":["","","\n","\n"]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"x\n== 1.1 ==\nb\n==1.2==\nc\n===1.2.1===\nd"}},"i":0}},"\n"]}'>x</p><span about="#mwt1">
 # Because of section-wrapping and template-wrapping interactions,
 # the scope of the template is expanded so that the template markup
 # is valid in the presence of <section> tags.
+# This exercises the s1 is null scenario in the wrapSections code
 !! test
 Section wrapping with template-generated sections (bad nesting 1)
 !! options
@@ -29949,6 +30354,40 @@ parsoid={
   "wrapSections": true
 }
 !! wikitext
+<div>
+a
+
+{{echo|
+= 1 =
+b
+}}
+
+c
+</div>
+!! html/parsoid
+<section data-mw-section-id="-1"></section><section data-mw-section-id="-2"><div data-parsoid='{"stx":"html"}'>
+<p>a</p>
+
+<span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"\n= 1 =\nb\n"}},"i":0}},"\n\nc\n"]}'>
+</span><section data-mw-section-id="-1" about="#mwt1"><h1 about="#mwt1" id="1"> 1 </h1><span about="#mwt1">
+</span><p about="#mwt1">b
+</p><span about="#mwt1">
+
+</span><p about="#mwt1">c</p><span about="#mwt1">
+</span></section></div></section>
+!! end
+
+# Because of section-wrapping and template-wrapping interactions,
+# the scope of the template is expanded so that the template markup
+# is valid in the presence of <section> tags.
+# This exercises the s1 is ancestor of s2 scenario in the wrapSections code
+!! test
+Section wrapping with template-generated sections (bad nesting 2)
+!! options
+parsoid={
+  "wrapSections": true
+}
+!! wikitext
 = 1 =
 a
 
 = 3 =
 e
 !! html/parsoid
-<section data-mw-section-id="1"><h1 id="1"> 1 </h1>
+<section data-mw-section-id="0"></section><section data-mw-section-id="1"><h1 id="1"> 1 </h1>
 <p>a</p>
 
 </section><section data-mw-section-id="-1"><h1 about="#mwt1" typeof="mw:Transclusion" id="2" data-parsoid='{"dsr":[9,45,null,null],"pi":[[{"k":"1","named":true,"spc":["","","\n","\n"]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"= 2 =\nb\n== 2.1 ==\nc"}},"i":0}},"\n\nd\n\n"]}'> 2 </h1><span about="#mwt1">
 # so that template wrapping semantics are valid whether section
 # tags are retained or stripped. But, the template scope can expand
 # greatly when accounting for section tags.
+# This exercises the s1 and s2 are in different subtrees scenario
 !! test
-Section wrapping with template-generated sections (bad nesting 2)
+Section wrapping with template-generated sections (bad nesting 3)
 !! options
 parsoid={
   "wrapSections": true,
 = 3 =
 e
 !! html/parsoid
-<section data-mw-section-id="1" about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["= 1 =\na\n\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"== 1.2 ==\nb\n= 2 =\nc"}},"i":0}},"\n\nd\n\n"]}'><h1 id="1"> 1 </h1>
+<section data-mw-section-id="0"></section><section data-mw-section-id="1" about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["= 1 =\na\n\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"== 1.2 ==\nb\n= 2 =\nc"}},"i":0}},"\n\nd\n\n"]}'><h1 id="1"> 1 </h1>
 <p>a</p>
 
 <section data-mw-section-id="-1"><h2 about="#mwt1" typeof="mw:Transclusion" id="1.2" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"== 1.2 ==\nb\n= 2 =\nc"}},"i":0}}]}'> 1.2 </h2><span about="#mwt1">
@@ -30144,3 +30584,27 @@ foo
 
 </section><section data-mw-section-id="2"><h1 id="d"> d </h1></section>
 !! end
+
+!! test
+Lead section containing only whitespace and comments.
+!! options
+parsoid={
+  "wrapSections": true
+}
+!! wikitext
+
+<!-- this is a comment, presumably significant to editors -->
+= 1 =
+a
+
+= 2 =
+b
+!! html/parsoid
+<section data-mw-section-id="0" data-parsoid="{}">
+<!-- this is a comment, presumably significant to editors -->
+</section><section data-mw-section-id="1"><h1 id="1"> 1 </h1>
+<p>a</p>
+
+</section><section data-mw-section-id="2"><h1 id="2"> 2 </h1>
+<p>b</p></section>
+!! end
index 89fd6e0..c96d987 100644 (file)
@@ -7,7 +7,7 @@
  * @group medium
  *     ^--- tell phpunit that these test cases may take longer than 2 seconds.
  */
-class TestPageProps extends MediaWikiLangTestCase {
+class PagePropsTest extends MediaWikiLangTestCase {
 
        /**
         * @var Title $title1
index 02935a5..31eebe3 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-class TestSample extends MediaWikiLangTestCase {
+class SampleTest extends MediaWikiLangTestCase {
 
        /**
         * Anything that needs to happen before your tests should go here.
index 29e97eb..c2bc73e 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * @group Xml
  */
-class XmlJs extends PHPUnit_Framework_TestCase {
+class XmlJsTest extends PHPUnit_Framework_TestCase {
 
        /**
         * @covers XmlJsCode::__construct
index ebe1972..3e70a07 100644 (file)
@@ -2,7 +2,7 @@
 
 use Wikimedia\TestingAccessWrapper;
 
-class EtcConfigTest extends PHPUnit_Framework_TestCase {
+class EtcdConfigTest extends PHPUnit_Framework_TestCase {
 
        private function createConfigMock( array $options = [] ) {
                return $this->getMockBuilder( EtcdConfig::class )
index 33e3a25..99bea68 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @covers HTMLAutoCompleteSelectField
  */
-class HtmlAutoCompleteSelectFieldTest extends MediaWikiTestCase {
+class HTMLAutoCompleteSelectFieldTest extends MediaWikiTestCase {
 
        public $options = [
                'Bulgaria'     => 'BGR',
index f97716b..c1aa1d7 100644 (file)
@@ -4,7 +4,7 @@
  * Unit tests for the HTMLCheckMatrix
  * @covers HTMLCheckMatrix
  */
-class HtmlCheckMatrixTest extends MediaWikiTestCase {
+class HTMLCheckMatrixTest extends MediaWikiTestCase {
        static private $defaultOptions = [
                'rows' => [ 'r1', 'r2' ],
                'columns' => [ 'c1', 'c2' ],
index 64f4960..742eb95 100644 (file)
@@ -3,7 +3,7 @@
  * @group Media
  * @covers MimeAnalyzer
  */
-class MimeMagicTest extends PHPUnit_Framework_TestCase {
+class MimeAnalyzerTest extends PHPUnit_Framework_TestCase {
        /** @var MimeAnalyzer */
        private $mimeAnalyzer;
 
index 9fd640f..b68dd0e 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * @group Media
  */
-class SvgTest extends MediaWikiMediaTestCase {
+class SVGTest extends MediaWikiMediaTestCase {
 
        /**
         * @var SvgHandler
index 06fe272..7e31cba 100644 (file)
@@ -28,7 +28,7 @@
  * @covers PPNode_Hash_Array
  * @covers PPNode_Hash_Attr
  */
-class TagHookTest extends MediaWikiTestCase {
+class TagHooksTest extends MediaWikiTestCase {
        public static function provideValidNames() {
                return [
                        [ 'foo' ],
index f7275e1..385dd50 100644 (file)
@@ -4,6 +4,7 @@ use MediaWiki\Shell\Command;
 use Wikimedia\TestingAccessWrapper;
 
 /**
+ * @covers \MediaWiki\Shell\Command
  * @group Shell
  */
 class CommandTest extends PHPUnit_Framework_TestCase {
index 7c96c3c..2f68dbd 100644 (file)
@@ -3,6 +3,7 @@
 use MediaWiki\Shell\Shell;
 
 /**
+ * @covers \MediaWiki\Shell\Shell
  * @group Shell
  */
 class ShellTest extends PHPUnit_Framework_TestCase {
index d81e8c6..d45a58c 100644 (file)
@@ -161,6 +161,7 @@ class AutoLoaderTest extends MediaWikiTestCase {
                $path = realpath( __DIR__ . '/../../..' );
                $oldAutoload = file_get_contents( $path . '/autoload.php' );
                $generator = new AutoloadGenerator( $path, 'local' );
+               $generator->setExcludePaths( array_values( AutoLoader::getAutoloadNamespaces() ) );
                $generator->initMediaWikiDefault();
                $newAutoload = $generator->getAutoload( 'maintenance/generateLocalAutoload.php' );
 
index 674bf07..a234d1a 100644 (file)
                                        output: 'http://host/wiki/Special:RecentChangesLinked?target=Moai',
                                        message: 'Target as subpage in path'
                                },
+                               {
+                                       input: 'http://host/wiki/Special:RecentChangesLinked/Moai/Sub1',
+                                       output: 'http://host/wiki/Special:RecentChangesLinked?target=Moai/Sub1',
+                                       message: 'Target as subpage also has a subpage'
+                               },
                                {
                                        input: 'http://host/wiki/Special:RecentChangesLinked/Category:Foo',
                                        output: 'http://host/wiki/Special:RecentChangesLinked?target=Category:Foo',
                                        message: 'Target as subpage in path (with namespace)'
                                },
+                               {
+                                       input: 'http://host/wiki/Special:RecentChangesLinked/Category:Foo/Bar',
+                                       output: 'http://host/wiki/Special:RecentChangesLinked?target=Category:Foo/Bar',
+                                       message: 'Target as subpage in path also has a subpage (with namespace)'
+                               },
                                {
                                        input: 'http://host/w/index.php?title=Special:RecentChangesLinked/Moai',
                                        output: 'http://host/w/index.php?title=Special:RecentChangesLinked&target=Moai',
                                        message: 'Target as subpage in title param'
                                },
+                               {
+                                       input: 'http://host/w/index.php?title=Special:RecentChangesLinked/Moai/Sub1',
+                                       output: 'http://host/w/index.php?title=Special:RecentChangesLinked&target=Moai/Sub1',
+                                       message: 'Target as subpage in title param also has a subpage'
+                               },
+                               {
+                                       input: 'http://host/w/index.php?title=Special:RecentChangesLinked/Category:Foo/Bar',
+                                       output: 'http://host/w/index.php?title=Special:RecentChangesLinked&target=Category:Foo/Bar',
+                                       message: 'Target as subpage in title param also has a subpage (with namespace)'
+                               },
                                {
                                        input: 'http://host/wiki/Special:Watchlist',
                                        output: 'http://host/wiki/Special:Watchlist',