Merge "Change EnqueueJob docs to discourage obsolete use-cases"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 14 Dec 2017 03:22:29 +0000 (03:22 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 14 Dec 2017 03:22:29 +0000 (03:22 +0000)
200 files changed:
.travis.yml
HISTORY
RELEASE-NOTES-1.30 [deleted file]
autoload.php
docs/extension.schema.v1.json
docs/extension.schema.v2.json
includes/AutoLoader.php
includes/CategoryFinder.php
includes/DefaultSettings.php
includes/Feed.php
includes/GitInfo.php
includes/Linker.php
includes/Preferences.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiQueryBase.php
includes/api/ApiQuerySearch.php
includes/api/i18n/de.json
includes/api/i18n/en.json
includes/api/i18n/es.json
includes/api/i18n/fr.json
includes/api/i18n/mk.json
includes/api/i18n/nb.json
includes/api/i18n/nl.json
includes/api/i18n/pt.json
includes/api/i18n/qqq.json
includes/collation/Collation.php
includes/collation/NorthernSamiUppercaseCollation.php [new file with mode: 0644]
includes/content/ContentHandler.php
includes/content/WikitextContent.php
includes/editpage/TextConflictHelper.php
includes/export/ExportProgressFilter.php [new file with mode: 0644]
includes/htmlform/fields/HTMLTextAreaField.php
includes/htmlform/fields/HTMLTextField.php
includes/htmlform/fields/HTMLUsersMultiselectField.php
includes/installer/Installer.php
includes/installer/LocalSettingsGenerator.php
includes/installer/i18n/cs.json
includes/installer/i18n/eu.json
includes/installer/i18n/fr.json
includes/installer/i18n/mk.json
includes/installer/i18n/nb.json
includes/installer/i18n/zh-hant.json
includes/libs/objectcache/WANObjectCache.php
includes/media/FormatMetadata.php
includes/parser/LinkHolderArray.php
includes/parser/Parser.php
includes/registration/ExtensionRegistry.php
includes/skins/SkinTemplate.php
includes/specialpage/ChangesListSpecialPage.php
includes/specials/SpecialEmailuser.php
includes/specials/SpecialListgrouprights.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialWatchlist.php
includes/specials/pagers/ImageListPager.php
includes/templates/AtomHeader.mustache [new file with mode: 0644]
includes/templates/AtomItem.mustache [new file with mode: 0644]
includes/templates/RSSHeader.mustache [new file with mode: 0644]
includes/templates/RSSItem.mustache [new file with mode: 0644]
includes/user/User.php
includes/utils/AutoloadGenerator.php
includes/widget/search/FullSearchResultWidget.php
includes/widget/search/SimpleSearchResultWidget.php
languages/Language.php
languages/data/ZhConversion.php
languages/i18n/af.json
languages/i18n/ar.json
languages/i18n/atj.json
languages/i18n/az.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/cs.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/et.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/hu.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/lv.json
languages/i18n/lzh.json
languages/i18n/map-bms.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mr.json
languages/i18n/mt.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 [new file with mode: 0644]
languages/i18n/pl.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/roa-tara.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/tt-cyrl.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/vi.json
languages/i18n/war.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/Maintenance.php
maintenance/backup.inc
maintenance/cleanupBlocks.php
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/migrateUserGroup.php
maintenance/orphans.php
maintenance/populateBacklinkNamespace.php
maintenance/populateIpChanges.php
maintenance/populateLogSearch.php
maintenance/populateLogUsertext.php
maintenance/populateRecentChangesSource.php
maintenance/populateRevisionSha1.php
maintenance/rebuildFileCache.php
maintenance/recountCategories.php
maintenance/storage/checkStorage.php
maintenance/updateRestrictions.php
resources/Resources.php
resources/src/mediawiki.legacy/wikibits.js
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ChangesListViewModel.js
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterGroup.js
resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js
resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ChangesListWrapperWidget.less
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MainWrapperWidget.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MenuSelectWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclTargetPageWidget.js
resources/src/mediawiki.special/mediawiki.special.changeslist.css
resources/src/mediawiki.special/mediawiki.special.css
resources/src/mediawiki.special/mediawiki.special.preferences.personalEmail.js [new file with mode: 0644]
resources/src/mediawiki.special/mediawiki.special.upload.js
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/debug/MWDebugTest.php
tests/phpunit/includes/htmlform/HTMLAutoCompleteSelectFieldTest.php
tests/phpunit/includes/htmlform/HTMLCheckMatrixTest.php
tests/phpunit/includes/libs/mime/MimeAnalyzerTest.php
tests/phpunit/includes/media/FormatMetadataTest.php
tests/phpunit/includes/media/SVGTest.php
tests/phpunit/includes/page/WikiPageDbTestBase.php
tests/phpunit/includes/parser/TagHooksTest.php
tests/phpunit/includes/shell/CommandTest.php
tests/phpunit/includes/shell/ShellTest.php
tests/phpunit/languages/LanguageTest.php
tests/phpunit/structure/AutoLoaderTest.php
tests/qunit/suites/resources/mediawiki.rcfilters/UriProcessor.test.js

index 78a2b7d..64414b5 100644 (file)
@@ -35,6 +35,8 @@ matrix:
       php: 7
     - env: dbtype=mysql dbuser=root
       php: 7.1
+    - env: dbtype=mysql dbuser=root
+      php: 7.2
 
 services:
   - mysql
diff --git a/HISTORY b/HISTORY
index 1f30b70..244d681 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -1,4 +1,267 @@
-Change notes from older releases. For current info see RELEASE-NOTES-1.30.
+Change notes from older releases. For current info see RELEASE-NOTES-1.31.
+
+= MediaWiki 1.30 =
+
+== MediaWiki 1.30.0 ==
+
+=== Changes since MediaWiki 1.30.0-rc.0 ===
+* Upgraded Moment.js from v2.15.0 to v2.19.3.
+* Add ip_changes to postgres/tables.sql.
+* Skip null shell parameters.
+* Add wfWaitForSlaves() to maintenance/migrateComments.php.
+* (T182245) Fix join conditions in ImageListPager.
+* (T178626) Revert #contentSub and #jump-to-nav margin changes.
+
+=== MySQL version requirement in 1.30 ===
+As of 1.30, MediaWiki now requires MySQL 5.5.8 or higher (see Compatibility
+section).
+
+=== Configuration changes in 1.30 ===
+* The "C.UTF-8" locale should be used for $wgShellLocale, if available, to avoid
+  unexpected behavior when code uses locale-sensitive string comparisons. For
+  example, the Scribunto extension considers "bar" < "Foo" in most locales
+  since it ignores case.
+* $wgShellLocale now affects LC_ALL rather than only LC_CTYPE. See
+  documentation of $wgShellLocale for details.
+* $wgShellLocale is now applied for all requests. wfInitShellLocale() is
+  deprecated and a no-op, as it is no longer needed.
+* $wgJobClasses may now specify callback functions as an alternative to plain
+  class names. This is intended for extensions that want control over the
+  instantiation of their jobs, to allow for proper dependency injection.
+* $wgResourceModules may now specify callback functions as an alternative
+  to plain class names, using the 'factory' key in the module description
+  array. This allows dependency injection to be used for ResourceLoader modules.
+* $wgExceptionHooks has been removed.
+* (T163562) $wgRangeContributionsCIDRLimit was introduced to control the size
+  of IP ranges that can be queried at Special:Contributions.
+* (T45547) $wgUsePigLatinVariant added (off by default).
+* (T152540) MediaWiki now supports a section ID escaping style that allows to display
+  non-Latin characters verbatim on many modern browsers. This is controlled by the
+  new configuration setting, $wgFragmentMode.
+* $wgExperimentalHtmlIds is now deprecated and will be removed in a future version,
+  use $wgFragmentMode to migrate off it to a modern alternative.
+* $wgExternalInterwikiFragmentMode was introduced to control how fragments in
+  sinterwikis going outside of current wiki farm are encoded.
+* (T120333) Soft-deprecated the use of PHP extension 'mysql' in favor of 'mysqli'.
+  This PHP extension was deprecated in PHP 5.5 and removed in PHP 7.0. MediaWiki
+  auto-selects the 'mysqli' driver since MediaWiki 1.22, except if explicitly
+  requested through the configuration parameter $wgDBservers.
+* $wgOOUIEditPage was removed, as it is now the default. This was documented as a
+  temporary variable during the migration period.
+
+=== New features in 1.30 ===
+* (T37247) Output from Parser::parse() will now be wrapped in a div with
+  class="mw-parser-output" by default. This may be changed or disabled using
+  ParserOptions::setWrapOutputClass().
+* (T163562) Added ability to search for contributions within an IP ranges
+  at Special:Contributions.
+* Added 'ChangeTagsAllowedAdd' hook, enabling extensions to allow software-
+  specific tags to be added by users.
+* Added a 'ParserOptionsRegister' hook to allow extensions to register
+  additional parser options.
+* (T45547) Included Pig Latin, a language game in English, as a
+  LanguageConverter variant.  This allows English-speaking developers
+  to develop and test LanguageConverter more easily.  Pig Latin can be
+  enabled by setting $wgUsePigLatinVariant to true.
+* Added RecentChangesPurgeRows hook to allow extensions to purge data that
+  depends on the recentchanges table.
+* Added JS config values wgDiffOldId/wgDiffNewId to the output of diff pages.
+* (T2424) Added direct unwatch links to entries in Special:Watchlist (if the
+  'watchlistunwatchlinks' preference option is enabled). With JavaScript
+  enabled, these links toggle so the user can also re-watch pages that have
+  just been unwatched.
+* Added $wgParserTestMediaHandlers, where mock media handlers can be passed to
+  MediaHandlerFactory for parser tests.
+* Edit summaries, block reasons, and other "comments" are now stored in a
+  separate database table. Use the CommentFormatter class to access them.
+** This is currently gated by $wgCommentTableSchemaMigrationStage. Most wikis
+   can set this to MIGRATION_NEW and run maintenance/migrateComments.php as
+   soon as any necessary extensions are updated.
+* (T138166) Added ability for users to prohibit other users from sending them
+  emails with Special:Emailuser. Can be enabled by setting
+  $wgEnableUserEmailBlacklist to true.
+* (T67297) $wgBrowserBlacklist is deprecated, and changing it will have no effect.
+  Instead, users using browsers that do not support Unicode will be unable to edit
+  and should upgrade to a modern browser instead.
+
+=== External library changes in 1.30 ===
+
+==== Upgraded external libraries ====
+* Updated justinrainbow/json-schema from v3.0 to v5.2.
+* Updated mediawiki/mediawiki-codesniffer from v0.7.2 to v0.12.0.
+* Updated wikimedia/composer-merge-plugin from v1.4.0 to v1.4.1.
+* Updated wikimedia/relpath from v1.0.3 to v2.0.0.
+* Updated OOjs from v2.0.0 to v2.1.0.
+* Updated OOUI from v0.21.1 to v0.23.0.
+* Updated QUnit from v1.23.1 to v2.4.0.
+* Updated phpunit/phpunit from v4.8.35 to v4.8.36.
+* Upgraded Moment.js from v2.15.0 to v2.19.3.
+
+==== New external libraries ====
+* The class \TestingAccessWrapper has been moved to the external library
+  wikimedia/testing-access-wrapper and renamed \Wikimedia\TestingAccessWrapper.
+* Purtle, a fast, lightweight RDF generator.
+
+==== Removed and replaced external libraries ====
+* …
+
+=== Bug fixes in 1.30 ===
+* (T151633) Ordered list items use now Devanagari digits in Nepalese
+  (thanks to Sfic)
+
+=== Action API changes in 1.30 ===
+* (T37247) action=parse output will be wrapped in a div with
+  class="mw-parser-output" by default. This may be changed or disabled using
+  the new 'wrapoutputclass' parameter.
+* When errorformat is not 'bc', abort reasons from action=login will be
+  formatted as specified by the error formatter parameters.
+* action=compare can now handle arbitrary text, deleted revisions, and
+  returning users and edit comments.
+* (T164106) The 'rvdifftotext', 'rvdifftotextpst', 'rvdiffto',
+  'rvexpandtemplates', 'rvgeneratexml', 'rvparse', and 'rvprop=parsetree'
+  parameters to prop=revisions are deprecated, as are the similarly named
+  parameters to prop=deletedrevisions, list=allrevisions, and
+  list=alldeletedrevisions. Use action=compare, action=parse, or
+  action=expandtemplates instead.
+
+=== Action API internal changes in 1.30 ===
+* ApiBase::getDescriptionMessage() and the "apihelp-*-description" messages are
+  deprecated. The existing message should be split between "apihelp-*-summary"
+  and "apihelp-*-extended-description".
+* (T123931) Individual values of multi-valued parameters can now be marked as
+  deprecated.
+
+=== Languages updated in 1.30 ===
+MediaWiki supports over 350 languages. Many localisations are updated
+regularly. Below only new and removed languages are listed, as well as
+changes to languages because of Phabricator reports.
+
+* Added: kbp (Kabɩyɛ / Kabiyè)
+* Added: skr (Saraiki, سرائیکی)
+* Added: tay (Tayal / Atayal)
+* Removed: tokipona (Toki Pona)
+
+==== Pig Latin added ====
+* (T45547) Added Pig Latin, a made-up English variant (en-x-piglatin),
+  for easier variant development and testing. Disabled by default. It can be
+  enabled by setting $wgUsePigLatinVariant to true.
+
+=== Other changes in 1.30 ===
+* The use of an associative array for $wgProxyList, where the IP address is in
+  the key instead of the value, is deprecated (e.g. [ '127.0.0.1' => 'value' ]).
+  Please convert these arrays to indexed/sequential ones (e.g. [ '127.0.0.1' ]).
+* mw.user.bucket (deprecated in 1.23) was removed.
+* LoadBalancer::getServerInfo() and LoadBalancer::setServerInfo() are
+  deprecated. There are no known callers.
+* File::getStreamHeaders() was deprecated.
+* MediaHandler::getStreamHeaders() was deprecated.
+* Title::canTalk() was deprecated. The new Title::canHaveTalkPage() should be
+  used instead.
+* MWNamespace::canTalk() was deprecated. The new MWNamespace::hasTalkNamespace()
+  should be used instead.
+* The ExtractThumbParameters hook (deprecated in 1.21) was removed.
+* The OutputPage::addParserOutputNoText and ::getHeadLinks methods (both
+  deprecated in 1.24) were removed.
+* wfMemcKey() and wfGlobalCacheKey() were deprecated. BagOStuff::makeKey() and
+  BagOStuff::makeGlobalKey() should be used instead.
+* (T146304) Preprocessor handling of LanguageConverter markup has been improved.
+  As a result of the new uniform handling, '-{' may need to be escaped
+  (for example, as '-<nowiki/>{') where it occurs inside template arguments
+  or wikilinks.
+* (T163966) Page moves are now counted as edits for the purposes of
+  autopromotion, i.e., they increment the user_editcount field in the database.
+* Two new hooks, LogEventsListLineEnding and NewPagesLineEnding, were added for
+  manipulating Special:Log and Special:NewPages lines.
+* The OldChangesListRecentChangesLine, EnhancedChangesListModifyLineData,
+  PageHistoryLineEnding, ContributionsLineEnding and DeletedContributionsLineEnding
+  hooks have an additional parameter, for manipulating HTML data attributes of
+  RC/history lines. EnhancedChangesListModifyBlockLineData can do that via the
+  $data['attribs'] subarray.
+* (T130632) The OutputPage::enableTOC() method was removed.
+* WikiPage::getParserOutput() will now throw an exception if passed
+  ParserOptions that would pollute the parser cache. Callers should use
+  WikiPage::makeParserOptions() to create the ParserOptions object and only
+  change options that affect the parser cache key.
+* Article::viewRedirect() is deprecated.
+* IP::isValidBlock() was deprecated. Use the equivalent IP::isValidRange().
+* DeprecatedGlobal no longer supports passing in a direct value, it requires a
+  callable factory function or a class name.
+* The $parserMemc global, wfGetParserCacheStorage(), and ParserCache::singleton()
+  are all deprecated. The main ParserCache instance should be obtained from
+  MediaWikiServices instead. Access to the underlying BagOStuff is possible
+  through the new ParserCache::getCacheStorage() method.
+* .mw-ui-constructive CSS class (deprecated in 1.27) was removed.
+* Sanitizer::escapeId() was deprecated, use escapeIdForAttribute(),
+  escapeIdForLink() or escapeIdForExternalInterwiki() instead.
+* Title::escapeFragmentForURL() was deprecated, use one of the aforementioned
+  Sanitizer functions or, if possible, Title::getFragmentForURL().
+* Second parameter to Sanitizer::escapeIdReferenceList() ($options) now does
+  nothing and is deprecated.
+* mw.util.escapeId() was deprecated, use escapeIdForAttribute() or
+  escapeIdForLink().
+* MagicWord::replaceMultiple() (deprecated in 1.25) was removed.
+* WikiImporter now requires the second parameter to be an instance of the Config,
+  class. Prior to that, the Config parameter was optional (a behavior deprecated in
+  1.25).
+* Removed 'jquery.mwExtension' module. (deprecated since 1.26)
+* mediawiki.ui: Deprecate greys, which are not part of WikimediaUI color palette
+  any more.
+* CdbReader, CdbWriter, CdbException classes (deprecated in 1.25) were removed.
+  The namespaced classes in the Cdb namespace should be used instead.
+* IPSet class (deprecated in 1.26) was removed. The namespaced IPSet\IPSet
+  should be used instead.
+* RunningStat class (deprecated in 1.27) was removed. The namespaced
+  RunningStat\RunningStat should be used instead.
+* MWMemcached and MemCachedClientforWiki classes (deprecated in 1.27) were removed.
+  The MemcachedClient class should be used instead.
+* EditPage underwent some refactoring and deprecations:
+  * EditPage::isOouiEnabled() is deprecated and will always return true.
+  * EditPage::getSummaryInput() and ::getSummaryInputOOUI() are deprecated. Please
+    use ::getSummaryInputWidget() instead.
+  * EditPage::getCheckboxes() and ::getCheckboxesOOUI() are deprecated. Please
+    use ::getCheckboxesWidget() instead.
+  * Creating an EditPage instance without calling EditPage::setContextTitle() should
+    be avoided and will be deprecated in a future release.
+  * EditPage::safeUnicodeInput() and ::safeUnicodeOutput() are deprecated and no-ops.
+  * EditPage::$isCssJsSubpage, ::$isCssSubpage, and ::$isJsSubpage are deprecated. The
+    corresponding methods from Title should be used instead.
+  * EditPage::$isWrongCaseCssJsPage is deprecated. There is no replacement.
+  * EditPage::$mArticle and ::$mTitle are deprecated for public usage. The getters
+    ::getArticle() and ::getTitle() should be used instead.
+  * Trying to control or fake EditPage context by overriding $wgUser, $wgRequest, $wgOut,
+    and $wgLang is no longer supported and won't work. The IContextSource returned from
+    EditPage::getContext() must be modified instead.
+* Parser::getRandomString() (deprecated in 1.26) was removed.
+* Parser::uniqPrefix() (deprecated in 1.26) was removed.
+* Parser::extractTagsAndParams() now only accepts three arguments. The fourth,
+  $uniq_prefix was deprecated in 1.26 and has now been removed.
+* (T172514) The following tables have had their UNIQUE indexes turned into proper
+  PRIMARY KEYs for increased maintainability: categorylinks, imagelinks, iwlinks,
+  langlinks, log_search, module_deps, objectcache, pagelinks, query_cache, site_stats,
+  templatelinks, text, transcache, user_former_groups, user_properties.
+* IDatabase::nextSequenceValue() is no longer needed by any database backends
+  (formerly it was needed by PostgreSQL and Oracle), and is now deprecated.
+* (T146591) The lc_lang_key index on the l10n_cache table has been changed into a
+  PRIMARY KEY.
+* (T157227) bot_password.bp_user, change_tag.ct_log_id, change_tag.ct_rev_id,
+  page_restrictions.pr_user, tag_summary.ts_log_id, tag_summary.ts_rev_id and
+  user_properties.up_user have all been made unsigned on MySQL.
+* DB_SLAVE is deprecated. DB_REPLICA should be used instead.
+* wfUsePHP() is deprecated.
+* wfFixSessionID() was removed.
+* wfShellExec() and related functions are deprecated, use Shell::command(). This also
+  slightly changes the behavior of how execution time limits are calculated when only
+  some of defaults are overridden per-call. When in doubt, always override both wall
+  clock and CPU time.
+* (T138166) SpecialEmailUser::getTarget() now requires a second argument, the sending
+  user object. Using the method without the second argument is deprecated.
+* (T67297) Browsers that don't support Unicode will have their edits rejected.
+* (T178450) The module 'jquery.badge' is deprecated and will be removed in a future
+  release. For notifying the user of an event, the Notifications ("Echo") system
+  should be used instead.
+* (T178451) SECURITY: Potential XSS when $wgShowExceptionDetails = false and browser
+  sends non-standard url escaping.
+* (T165846) SECURITY: BotPassword login attempts weren't throttled.
 
 = MediaWiki 1.29 =
 
diff --git a/RELEASE-NOTES-1.30 b/RELEASE-NOTES-1.30
deleted file mode 100644 (file)
index 1449dab..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-== MediaWiki 1.30 ==
-
-THIS IS NOT A RELEASE YET
-
-MediaWiki 1.30 is an alpha-quality branch and is not recommended for use in
-production.
-
-=== MySQL version requirement in 1.30 ===
-As of 1.30, MediaWiki now requires MySQL 5.5.8 or higher (see Compatibility
-section).
-
-=== Configuration changes in 1.30 ===
-* The "C.UTF-8" locale should be used for $wgShellLocale, if available, to avoid
-  unexpected behavior when code uses locale-sensitive string comparisons. For
-  example, the Scribunto extension considers "bar" < "Foo" in most locales
-  since it ignores case.
-* $wgShellLocale now affects LC_ALL rather than only LC_CTYPE. See
-  documentation of $wgShellLocale for details.
-* $wgShellLocale is now applied for all requests. wfInitShellLocale() is
-  deprecated and a no-op, as it is no longer needed.
-* $wgJobClasses may now specify callback functions as an alternative to plain
-  class names. This is intended for extensions that want control over the
-  instantiation of their jobs, to allow for proper dependency injection.
-* $wgResourceModules may now specify callback functions as an alternative
-  to plain class names, using the 'factory' key in the module description
-  array. This allows dependency injection to be used for ResourceLoader modules.
-* $wgExceptionHooks has been removed.
-* (T163562) $wgRangeContributionsCIDRLimit was introduced to control the size
-  of IP ranges that can be queried at Special:Contributions.
-* (T45547) $wgUsePigLatinVariant added (off by default).
-* (T152540) MediaWiki now supports a section ID escaping style that allows to display
-  non-Latin characters verbatim on many modern browsers. This is controlled by the
-  new configuration setting, $wgFragmentMode.
-* $wgExperimentalHtmlIds is now deprecated and will be removed in a future version,
-  use $wgFragmentMode to migrate off it to a modern alternative.
-* $wgExternalInterwikiFragmentMode was introduced to control how fragments in
-  sinterwikis going outside of current wiki farm are encoded.
-* (T120333) Soft-deprecated the use of PHP extension 'mysql' in favor of 'mysqli'.
-  This PHP extension was deprecated in PHP 5.5 and removed in PHP 7.0. MediaWiki
-  auto-selects the 'mysqli' driver since MediaWiki 1.22, except if explicitly
-  requested through the configuration parameter $wgDBservers.
-* $wgOOUIEditPage was removed, as it is now the default. This was documented as a
-  temporary variable during the migration period.
-
-=== New features in 1.30 ===
-* (T37247) Output from Parser::parse() will now be wrapped in a div with
-  class="mw-parser-output" by default. This may be changed or disabled using
-  ParserOptions::setWrapOutputClass().
-* (T163562) Added ability to search for contributions within an IP ranges
-  at Special:Contributions.
-* Added 'ChangeTagsAllowedAdd' hook, enabling extensions to allow software-
-  specific tags to be added by users.
-* Added a 'ParserOptionsRegister' hook to allow extensions to register
-  additional parser options.
-* (T45547) Included Pig Latin, a language game in English, as a
-  LanguageConverter variant.  This allows English-speaking developers
-  to develop and test LanguageConverter more easily.  Pig Latin can be
-  enabled by setting $wgUsePigLatinVariant to true.
-* Added RecentChangesPurgeRows hook to allow extensions to purge data that
-  depends on the recentchanges table.
-* Added JS config values wgDiffOldId/wgDiffNewId to the output of diff pages.
-* (T2424) Added direct unwatch links to entries in Special:Watchlist (if the
-  'watchlistunwatchlinks' preference option is enabled). With JavaScript
-  enabled, these links toggle so the user can also re-watch pages that have
-  just been unwatched.
-* Added $wgParserTestMediaHandlers, where mock media handlers can be passed to
-  MediaHandlerFactory for parser tests.
-* Edit summaries, block reasons, and other "comments" are now stored in a
-  separate database table. Use the CommentFormatter class to access them.
-** This is currently gated by $wgCommentTableSchemaMigrationStage. Most wikis
-   can set this to MIGRATION_NEW and run maintenance/migrateComments.php as
-   soon as any necessary extensions are updated.
-* (T138166) Added ability for users to prohibit other users from sending them
-  emails with Special:Emailuser. Can be enabled by setting
-  $wgEnableUserEmailBlacklist to true.
-* (T67297) $wgBrowserBlacklist is deprecated, and changing it will have no effect.
-  Instead, users using browsers that do not support Unicode will be unable to edit
-  and should upgrade to a modern browser instead.
-
-=== External library changes in 1.30 ===
-
-==== Upgraded external libraries ====
-* Updated justinrainbow/json-schema from v3.0 to v5.2.
-* Updated mediawiki/mediawiki-codesniffer from v0.7.2 to v0.12.0.
-* Updated wikimedia/composer-merge-plugin from v1.4.0 to v1.4.1.
-* Updated wikimedia/relpath from v1.0.3 to v2.0.0.
-* Updated OOjs from v2.0.0 to v2.1.0.
-* Updated OOUI from v0.21.1 to v0.23.0.
-* Updated QUnit from v1.23.1 to v2.4.0.
-* Updated phpunit/phpunit from v4.8.35 to v4.8.36.
-
-==== New external libraries ====
-* The class \TestingAccessWrapper has been moved to the external library
-  wikimedia/testing-access-wrapper and renamed \Wikimedia\TestingAccessWrapper.
-* Purtle, a fast, lightweight RDF generator.
-
-==== Removed and replaced external libraries ====
-* …
-
-=== Bug fixes in 1.30 ===
-* (T151633) Ordered list items use now Devanagari digits in Nepalese
-  (thanks to Sfic)
-
-=== Action API changes in 1.30 ===
-* (T37247) action=parse output will be wrapped in a div with
-  class="mw-parser-output" by default. This may be changed or disabled using
-  the new 'wrapoutputclass' parameter.
-* When errorformat is not 'bc', abort reasons from action=login will be
-  formatted as specified by the error formatter parameters.
-* action=compare can now handle arbitrary text, deleted revisions, and
-  returning users and edit comments.
-* (T164106) The 'rvdifftotext', 'rvdifftotextpst', 'rvdiffto',
-  'rvexpandtemplates', 'rvgeneratexml', 'rvparse', and 'rvprop=parsetree'
-  parameters to prop=revisions are deprecated, as are the similarly named
-  parameters to prop=deletedrevisions, list=allrevisions, and
-  list=alldeletedrevisions. Use action=compare, action=parse, or
-  action=expandtemplates instead.
-
-=== Action API internal changes in 1.30 ===
-* ApiBase::getDescriptionMessage() and the "apihelp-*-description" messages are
-  deprecated. The existing message should be split between "apihelp-*-summary"
-  and "apihelp-*-extended-description".
-* (T123931) Individual values of multi-valued parameters can now be marked as
-  deprecated.
-
-=== Languages updated in 1.30 ===
-MediaWiki supports over 350 languages. Many localisations are updated
-regularly. Below only new and removed languages are listed, as well as
-changes to languages because of Phabricator reports.
-
-* Added: kbp (Kabɩyɛ / Kabiyè)
-* Added: skr (Saraiki, سرائیکی)
-* Added: tay (Tayal / Atayal)
-* Removed: tokipona (Toki Pona)
-
-==== Pig Latin added ====
-* (T45547) Added Pig Latin, a made-up English variant (en-x-piglatin),
-  for easier variant development and testing. Disabled by default. It can be
-  enabled by setting $wgUsePigLatinVariant to true.
-
-=== Other changes in 1.30 ===
-* The use of an associative array for $wgProxyList, where the IP address is in
-  the key instead of the value, is deprecated (e.g. [ '127.0.0.1' => 'value' ]).
-  Please convert these arrays to indexed/sequential ones (e.g. [ '127.0.0.1' ]).
-* mw.user.bucket (deprecated in 1.23) was removed.
-* LoadBalancer::getServerInfo() and LoadBalancer::setServerInfo() are
-  deprecated. There are no known callers.
-* File::getStreamHeaders() was deprecated.
-* MediaHandler::getStreamHeaders() was deprecated.
-* Title::canTalk() was deprecated. The new Title::canHaveTalkPage() should be
-  used instead.
-* MWNamespace::canTalk() was deprecated. The new MWNamespace::hasTalkNamespace()
-  should be used instead.
-* The ExtractThumbParameters hook (deprecated in 1.21) was removed.
-* The OutputPage::addParserOutputNoText and ::getHeadLinks methods (both
-  deprecated in 1.24) were removed.
-* wfMemcKey() and wfGlobalCacheKey() were deprecated. BagOStuff::makeKey() and
-  BagOStuff::makeGlobalKey() should be used instead.
-* (T146304) Preprocessor handling of LanguageConverter markup has been improved.
-  As a result of the new uniform handling, '-{' may need to be escaped
-  (for example, as '-<nowiki/>{') where it occurs inside template arguments
-  or wikilinks.
-* (T163966) Page moves are now counted as edits for the purposes of
-  autopromotion, i.e., they increment the user_editcount field in the database.
-* Two new hooks, LogEventsListLineEnding and NewPagesLineEnding, were added for
-  manipulating Special:Log and Special:NewPages lines.
-* The OldChangesListRecentChangesLine, EnhancedChangesListModifyLineData,
-  PageHistoryLineEnding, ContributionsLineEnding and DeletedContributionsLineEnding
-  hooks have an additional parameter, for manipulating HTML data attributes of
-  RC/history lines. EnhancedChangesListModifyBlockLineData can do that via the
-  $data['attribs'] subarray.
-* (T130632) The OutputPage::enableTOC() method was removed.
-* WikiPage::getParserOutput() will now throw an exception if passed
-  ParserOptions that would pollute the parser cache. Callers should use
-  WikiPage::makeParserOptions() to create the ParserOptions object and only
-  change options that affect the parser cache key.
-* Article::viewRedirect() is deprecated.
-* IP::isValidBlock() was deprecated. Use the equivalent IP::isValidRange().
-* DeprecatedGlobal no longer supports passing in a direct value, it requires a
-  callable factory function or a class name.
-* The $parserMemc global, wfGetParserCacheStorage(), and ParserCache::singleton()
-  are all deprecated. The main ParserCache instance should be obtained from
-  MediaWikiServices instead. Access to the underlying BagOStuff is possible
-  through the new ParserCache::getCacheStorage() method.
-* .mw-ui-constructive CSS class (deprecated in 1.27) was removed.
-* Sanitizer::escapeId() was deprecated, use escapeIdForAttribute(),
-  escapeIdForLink() or escapeIdForExternalInterwiki() instead.
-* Title::escapeFragmentForURL() was deprecated, use one of the aforementioned
-  Sanitizer functions or, if possible, Title::getFragmentForURL().
-* Second parameter to Sanitizer::escapeIdReferenceList() ($options) now does
-  nothing and is deprecated.
-* mw.util.escapeId() was deprecated, use escapeIdForAttribute() or
-  escapeIdForLink().
-* MagicWord::replaceMultiple() (deprecated in 1.25) was removed.
-* WikiImporter now requires the second parameter to be an instance of the Config,
-  class. Prior to that, the Config parameter was optional (a behavior deprecated in
-  1.25).
-* Removed 'jquery.mwExtension' module. (deprecated since 1.26)
-* mediawiki.ui: Deprecate greys, which are not part of WikimediaUI color palette
-  any more.
-* CdbReader, CdbWriter, CdbException classes (deprecated in 1.25) were removed.
-  The namespaced classes in the Cdb namespace should be used instead.
-* IPSet class (deprecated in 1.26) was removed. The namespaced IPSet\IPSet
-  should be used instead.
-* RunningStat class (deprecated in 1.27) was removed. The namespaced
-  RunningStat\RunningStat should be used instead.
-* MWMemcached and MemCachedClientforWiki classes (deprecated in 1.27) were removed.
-  The MemcachedClient class should be used instead.
-* EditPage underwent some refactoring and deprecations:
-  * EditPage::isOouiEnabled() is deprecated and will always return true.
-  * EditPage::getSummaryInput() and ::getSummaryInputOOUI() are deprecated. Please
-    use ::getSummaryInputWidget() instead.
-  * EditPage::getCheckboxes() and ::getCheckboxesOOUI() are deprecated. Please
-    use ::getCheckboxesWidget() instead.
-  * Creating an EditPage instance without calling EditPage::setContextTitle() should
-    be avoided and will be deprecated in a future release.
-  * EditPage::safeUnicodeInput() and ::safeUnicodeOutput() are deprecated and no-ops.
-  * EditPage::$isCssJsSubpage, ::$isCssSubpage, and ::$isJsSubpage are deprecated. The
-    corresponding methods from Title should be used instead.
-  * EditPage::$isWrongCaseCssJsPage is deprecated. There is no replacement.
-  * EditPage::$mArticle and ::$mTitle are deprecated for public usage. The getters
-    ::getArticle() and ::getTitle() should be used instead.
-  * Trying to control or fake EditPage context by overriding $wgUser, $wgRequest, $wgOut,
-    and $wgLang is no longer supported and won't work. The IContextSource returned from
-    EditPage::getContext() must be modified instead.
-* Parser::getRandomString() (deprecated in 1.26) was removed.
-* Parser::uniqPrefix() (deprecated in 1.26) was removed.
-* Parser::extractTagsAndParams() now only accepts three arguments. The fourth,
-  $uniq_prefix was deprecated in 1.26 and has now been removed.
-* (T172514) The following tables have had their UNIQUE indexes turned into proper
-  PRIMARY KEYs for increased maintainability: categorylinks, imagelinks, iwlinks,
-  langlinks, log_search, module_deps, objectcache, pagelinks, query_cache, site_stats,
-  templatelinks, text, transcache, user_former_groups, user_properties.
-* IDatabase::nextSequenceValue() is no longer needed by any database backends
-  (formerly it was needed by PostgreSQL and Oracle), and is now deprecated.
-* (T146591) The lc_lang_key index on the l10n_cache table has been changed into a
-  PRIMARY KEY.
-* (T157227) bot_password.bp_user, change_tag.ct_log_id, change_tag.ct_rev_id,
-  page_restrictions.pr_user, tag_summary.ts_log_id, tag_summary.ts_rev_id and
-  user_properties.up_user have all been made unsigned on MySQL.
-* DB_SLAVE is deprecated. DB_REPLICA should be used instead.
-* wfUsePHP() is deprecated.
-* wfFixSessionID() was removed.
-* wfShellExec() and related functions are deprecated, use Shell::command(). This also
-  slightly changes the behavior of how execution time limits are calculated when only
-  some of defaults are overridden per-call. When in doubt, always override both wall
-  clock and CPU time.
-* (T138166) SpecialEmailUser::getTarget() now requires a second argument, the sending
-  user object. Using the method without the second argument is deprecated.
-* (T67297) Browsers that don't support Unicode will have their edits rejected.
-* (T178450) The module 'jquery.badge' is deprecated and will be removed in a future
-  release. For notifying the user of an event, the Notifications ("Echo") system
-  should be used instead.
-
-== Compatibility ==
-MediaWiki 1.30 requires PHP 5.5.9 or later. There is experimental support for
-HHVM 3.6.5 or later.
-
-MySQL/MariaDB is the recommended DBMS. PostgreSQL or SQLite can also be used,
-but support for them is somewhat less mature. There is experimental support for
-Oracle and Microsoft SQL Server.
-
-The supported versions are:
-
-* MySQL 5.5.8 or later
-* PostgreSQL 8.3 or later
-* SQLite 3.3.7 or later
-* Oracle 9.0.1 or later
-* Microsoft SQL Server 2005 (9.00.1399)
-
-== Upgrading ==
-1.30 has several database changes since 1.29, and will not work without schema
-updates. Note that due to changes to some very large tables like the revision
-table, the schema update may take a long time (minutes on a medium sized site,
-many hours on a large site).
-
-Don't forget to always back up your database before upgrading!
-
-See the file UPGRADE for more detailed upgrade instructions, including
-important information when upgrading from versions prior to 1.11.
-
-For notes on 1.29.x and older releases, see HISTORY.
-
-== Online documentation ==
-Documentation for both end-users and site administrators is available on
-MediaWiki.org, and is covered under the GNU Free Documentation License (except
-for pages that explicitly state that their contents are in the public domain):
-
-       https://www.mediawiki.org/wiki/Special:MyLanguage/Documentation
-
-== Mailing list ==
-A mailing list is available for MediaWiki user support and discussion:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
-
-A low-traffic announcements-only list is also available:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
-
-It's highly recommended that you sign up for one of these lists if you're
-going to run a public MediaWiki, so you can be notified of security fixes.
-
-== IRC help ==
-There's usually someone online in #mediawiki on irc.freenode.net.
index 2661fd7..5580bed 100644 (file)
@@ -449,7 +449,7 @@ $wgAutoloadLocalClasses = [
        'Exif' => __DIR__ . '/includes/media/Exif.php',
        'ExifBitmapHandler' => __DIR__ . '/includes/media/ExifBitmap.php',
        'ExplodeIterator' => __DIR__ . '/includes/libs/ExplodeIterator.php',
-       'ExportProgressFilter' => __DIR__ . '/maintenance/backup.inc',
+       'ExportProgressFilter' => __DIR__ . '/includes/export/ExportProgressFilter.php',
        'ExportSites' => __DIR__ . '/maintenance/exportSites.php',
        'ExtensionJsonValidationError' => __DIR__ . '/includes/registration/ExtensionJsonValidationError.php',
        'ExtensionJsonValidator' => __DIR__ . '/includes/registration/ExtensionJsonValidator.php',
@@ -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',
@@ -1040,6 +1037,7 @@ $wgAutoloadLocalClasses = [
        'NewPagesPager' => __DIR__ . '/includes/specials/pagers/NewPagesPager.php',
        'NewUsersLogFormatter' => __DIR__ . '/includes/logging/NewUsersLogFormatter.php',
        'NolinesImageGallery' => __DIR__ . '/includes/gallery/NolinesImageGallery.php',
+       'NorthernSamiUppercaseCollation' => __DIR__ . '/includes/collation/NorthernSamiUppercaseCollation.php',
        'NotRecursiveIterator' => __DIR__ . '/includes/libs/iterators/NotRecursiveIterator.php',
        'NukeNS' => __DIR__ . '/maintenance/nukeNS.php',
        'NukePage' => __DIR__ . '/maintenance/nukePage.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 c17bf7e..e50b7a7 100644 (file)
@@ -1806,7 +1806,7 @@ $wgDBtype = 'mysql';
 /**
  * Whether to use SSL in DB connection.
  *
- * This setting is only used $wgLBFactoryConf['class'] is set to
+ * This setting is only used if $wgLBFactoryConf['class'] is set to
  * 'LBFactorySimple' and $wgDBservers is an empty array; otherwise
  * the DBO_SSL flag must be set in the 'flags' option of the database
  * connection to achieve the same functionality.
@@ -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 35f2ce9..0e715df 100644 (file)
@@ -84,13 +84,23 @@ class FeedItem {
        }
 
        /**
-        * Get the unique id of this item
-        *
+        * Get the unique id of this item; already xml-encoded
+        * @return string
+        */
+       public function getUniqueID() {
+               $id = $this->getUniqueIDUnescaped();
+               if ( $id ) {
+                       return $this->xmlEncode( $id );
+               }
+       }
+
+       /**
+        * Get the unique id of this item, without any escaping
         * @return string
         */
-       public function getUniqueId() {
+       public function getUniqueIdUnescaped() {
                if ( $this->uniqueId ) {
-                       return $this->xmlEncode( wfExpandUrl( $this->uniqueId, PROTO_CURRENT ) );
+                       return wfExpandUrl( $this->uniqueId, PROTO_CURRENT );
                }
        }
 
@@ -123,6 +133,14 @@ class FeedItem {
                return $this->xmlEncode( $this->url );
        }
 
+       /** Get the URL of this item without any escaping
+        *
+        * @return string
+        */
+       public function getUrlUnescaped() {
+               return $this->url;
+       }
+
        /**
         * Get the description of this item; already xml-encoded
         *
@@ -132,6 +150,14 @@ class FeedItem {
                return $this->xmlEncode( $this->description );
        }
 
+       /**
+        * Get the description of this item without any escaping
+        *
+        */
+       public function getDescriptionUnescaped() {
+               return $this->description;
+       }
+
        /**
         * Get the language of this item
         *
@@ -160,6 +186,15 @@ class FeedItem {
                return $this->xmlEncode( $this->author );
        }
 
+       /**
+        * Get the author of this item without any escaping
+        *
+        * @return string
+        */
+       public function getAuthorUnescaped() {
+               return $this->author;
+       }
+
        /**
         * Get the comment of this item; already xml-encoded
         *
@@ -169,6 +204,15 @@ class FeedItem {
                return $this->xmlEncode( $this->comments );
        }
 
+       /**
+        * Get the comment of this item without any escaping
+        *
+        * @return string
+        */
+       public function getCommentsUnescaped() {
+               return $this->comments;
+       }
+
        /**
         * Quickie hack... strip out wikilinks to more legible form from the comment.
         *
@@ -187,6 +231,23 @@ class FeedItem {
  * @ingroup Feed
  */
 abstract class ChannelFeed extends FeedItem {
+
+       /** @var TemplateParser */
+       protected $templateParser;
+
+       /**
+        * @param string|Title $title Feed's title
+        * @param string $description
+        * @param string $url URL uniquely designating the feed.
+        * @param string $date Feed's date
+        * @param string $author Author's user name
+        * @param string $comments
+        */
+       function __construct( $title, $description, $url, $date = '', $author = '', $comments = '' ) {
+               parent::__construct( $title, $description, $url, $date, $author, $comments );
+               $this->templateParser = new TemplateParser();
+       }
+
        /**
         * Generate Header of the feed
         * @par Example:
@@ -279,13 +340,15 @@ abstract class ChannelFeed extends FeedItem {
 class RSSFeed extends ChannelFeed {
 
        /**
-        * Format a date given a timestamp
+        * Format a date given a timestamp. If a timestamp is not given, nothing is returned
         *
-        * @param int $ts Timestamp
-        * @return string Date string
+        * @param int|null $ts Timestamp
+        * @return string|null Date string
         */
        function formatTime( $ts ) {
-               return gmdate( 'D, d M Y H:i:s \G\M\T', wfTimestamp( TS_UNIX, $ts ) );
+               if ( $ts ) {
+                       return gmdate( 'D, d M Y H:i:s \G\M\T', wfTimestamp( TS_UNIX, $ts ) );
+               }
        }
 
        /**
@@ -295,15 +358,17 @@ class RSSFeed extends ChannelFeed {
                global $wgVersion;
 
                $this->outXmlHeader();
-               ?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
-       <channel>
-               <title><?php print $this->getTitle() ?></title>
-               <link><?php print wfExpandUrl( $this->getUrl(), PROTO_CURRENT ) ?></link>
-               <description><?php print $this->getDescription() ?></description>
-               <language><?php print $this->getLanguage() ?></language>
-               <generator>MediaWiki <?php print $wgVersion ?></generator>
-               <lastBuildDate><?php print $this->formatTime( wfTimestampNow() ) ?></lastBuildDate>
-<?php
+               // Manually escaping rather than letting Mustache do it because Mustache
+               // uses htmlentities, which does not work with XML
+               $templateParams = [
+                       'title' => $this->getTitle(),
+                       'url' => $this->xmlEncode( wfExpandUrl( $this->getUrlUnescaped(), PROTO_CURRENT ) ),
+                       'description' => $this->getDescription(),
+                       'language' => $this->xmlEncode( $this->getLanguage() ),
+                       'version' => $this->xmlEncode( $wgVersion ),
+                       'timestamp' => $this->xmlEncode( $this->formatTime( wfTimestampNow() ) )
+               ];
+               print $this->templateParser->processTemplate( 'RSSHeader', $templateParams );
        }
 
        /**
@@ -311,28 +376,30 @@ class RSSFeed extends ChannelFeed {
         * @param FeedItem $item Item to be output
         */
        function outItem( $item ) {
-               // @codingStandardsIgnoreStart Ignore long lines and formatting issues.
-       ?>
-               <item>
-                       <title><?php print $item->getTitle(); ?></title>
-                       <link><?php print wfExpandUrl( $item->getUrl(), PROTO_CURRENT ); ?></link>
-                       <guid<?php if ( !$item->rssIsPermalink ) { print ' isPermaLink="false"'; } ?>><?php print $item->getUniqueId(); ?></guid>
-                       <description><?php print $item->getDescription() ?></description>
-                       <?php if ( $item->getDate() ) { ?><pubDate><?php print $this->formatTime( $item->getDate() ); ?></pubDate><?php } ?>
-                       <?php if ( $item->getAuthor() ) { ?><dc:creator><?php print $item->getAuthor(); ?></dc:creator><?php }?>
-                       <?php if ( $item->getComments() ) { ?><comments><?php print wfExpandUrl( $item->getComments(), PROTO_CURRENT ); ?></comments><?php }?>
-               </item>
-<?php
-               // @codingStandardsIgnoreEnd
+               // Manually escaping rather than letting Mustache do it because Mustache
+               // uses htmlentities, which does not work with XML
+               $templateParams = [
+                       "title" => $item->getTitle(),
+                       "url" => $this->xmlEncode( wfExpandUrl( $item->getUrlUnescaped(), PROTO_CURRENT ) ),
+                       "permalink" => $item->rssIsPermalink,
+                       "uniqueID" => $item->getUniqueId(),
+                       "description" => $item->getDescription(),
+                       "date" => $this->xmlEncode( $this->formatTime( $item->getDate() ) ),
+                       "author" => $item->getAuthor()
+               ];
+               $comments = $item->getCommentsUnescaped();
+               if ( $comments ) {
+                       $commentsEscaped = $this->xmlEncode( wfExpandUrl( $comments, PROTO_CURRENT ) );
+                       $templateParams["comments"] = $commentsEscaped;
+               }
+               print $this->templateParser->processTemplate( 'RSSItem', $templateParams );
        }
 
        /**
         * Output an RSS 2.0 footer
         */
        function outFooter() {
-       ?>
-       </channel>
-</rss><?php
+               print "</channel></rss>";
        }
 }
 
@@ -343,14 +410,16 @@ class RSSFeed extends ChannelFeed {
  */
 class AtomFeed extends ChannelFeed {
        /**
-        * Format a date given timestamp.
+        * Format a date given timestamp, if one is given.
         *
-        * @param string|int $timestamp
-        * @return string
+        * @param string|int|null $timestamp
+        * @return string|null
         */
        function formatTime( $timestamp ) {
-               // need to use RFC 822 time format at least for rss2.0
-               return gmdate( 'Y-m-d\TH:i:s', wfTimestamp( TS_UNIX, $timestamp ) );
+               if ( $timestamp ) {
+                       // need to use RFC 822 time format at least for rss2.0
+                       return gmdate( 'Y-m-d\TH:i:s', wfTimestamp( TS_UNIX, $timestamp ) );
+               }
        }
 
        /**
@@ -358,20 +427,20 @@ class AtomFeed extends ChannelFeed {
         */
        function outHeader() {
                global $wgVersion;
-
                $this->outXmlHeader();
-               // @codingStandardsIgnoreStart Ignore long lines and formatting issues.
-               ?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="<?php print $this->getLanguage() ?>">
-               <id><?php print $this->getFeedId() ?></id>
-               <title><?php print $this->getTitle() ?></title>
-               <link rel="self" type="application/atom+xml" href="<?php print wfExpandUrl( $this->getSelfUrl(), PROTO_CURRENT ) ?>"/>
-               <link rel="alternate" type="text/html" href="<?php print wfExpandUrl( $this->getUrl(), PROTO_CURRENT ) ?>"/>
-               <updated><?php print $this->formatTime( wfTimestampNow() ) ?>Z</updated>
-               <subtitle><?php print $this->getDescription() ?></subtitle>
-               <generator>MediaWiki <?php print $wgVersion ?></generator>
-
-<?php
-               // @codingStandardsIgnoreEnd
+               // Manually escaping rather than letting Mustache do it because Mustache
+               // uses htmlentities, which does not work with XML
+               $templateParams = [
+                       'language' => $this->xmlEncode( $this->getLanguage() ),
+                       'feedID' => $this->getFeedID(),
+                       'title' => $this->getTitle(),
+                       'url' => $this->xmlEncode( wfExpandUrl( $this->getUrlUnescaped(), PROTO_CURRENT ) ),
+                       'selfUrl' => $this->getSelfUrl(),
+                       'timestamp' => $this->xmlEncode( $this->formatTime( wfTimestampNow() ) ),
+                       'description' => $this->getDescription(),
+                       'version' => $this->xmlEncode( $wgVersion ),
+               ];
+               print $this->templateParser->processTemplate( 'AtomHeader', $templateParams );
        }
 
        /**
@@ -401,30 +470,24 @@ class AtomFeed extends ChannelFeed {
         */
        function outItem( $item ) {
                global $wgMimeType;
-               // @codingStandardsIgnoreStart Ignore long lines and formatting issues.
-       ?>
-       <entry>
-               <id><?php print $item->getUniqueId(); ?></id>
-               <title><?php print $item->getTitle(); ?></title>
-               <link rel="alternate" type="<?php print $wgMimeType ?>" href="<?php print wfExpandUrl( $item->getUrl(), PROTO_CURRENT ); ?>"/>
-               <?php if ( $item->getDate() ) { ?>
-               <updated><?php print $this->formatTime( $item->getDate() ); ?>Z</updated>
-               <?php } ?>
-
-               <summary type="html"><?php print $item->getDescription() ?></summary>
-               <?php if ( $item->getAuthor() ) { ?><author><name><?php print $item->getAuthor(); ?></name></author><?php }?>
-       </entry>
-
-<?php /* @todo FIXME: Need to add comments
-       <?php if( $item->getComments() ) { ?><dc:comment><?php print $item->getComments() ?></dc:comment><?php }?>
-         */
+               // Manually escaping rather than letting Mustache do it because Mustache
+               // uses htmlentities, which does not work with XML
+               $templateParams = [
+                       "uniqueID" => $item->getUniqueId(),
+                       "title" => $item->getTitle(),
+                       "mimeType" => $this->xmlEncode( $wgMimeType ),
+                       "url" => $this->xmlEncode( wfExpandUrl( $item->getUrlUnescaped(), PROTO_CURRENT ) ),
+                       "date" => $this->xmlEncode( $this->formatTime( $item->getDate() ) ),
+                       "description" => $item->getDescription(),
+                       "author" => $item->getAuthor()
+               ];
+               print $this->templateParser->processTemplate( 'AtomItem', $templateParams );
        }
 
        /**
         * Outputs the footer for Atom 1.0 feed (basically '\</feed\>').
         */
-       function outFooter() {?>
-       </feed><?php
-               // @codingStandardsIgnoreEnd
+       function outFooter() {
+               print "</feed>";
        }
 }
index f170a02..fb75c25 100644 (file)
@@ -37,6 +37,11 @@ class GitInfo {
         */
        protected $basedir;
 
+       /**
+        * Location of the repository
+        */
+       protected $repoDir;
+
        /**
         * Path to JSON cache file for pre-computed git information.
         */
@@ -58,6 +63,7 @@ class GitInfo {
         * @see precomputeValues
         */
        public function __construct( $repoDir, $usePrecomputed = true ) {
+               $this->repoDir = $repoDir;
                $this->cacheFile = self::getCacheFilePath( $repoDir );
                wfDebugLog( 'gitinfo',
                        "Computed cacheFile={$this->cacheFile} for {$repoDir}"
@@ -230,10 +236,11 @@ class GitInfo {
                                        '--format=format:%ct',
                                        'HEAD',
                                ];
+                               $gitDir = realpath( $this->basedir );
                                $result = Shell::command( $cmd )
-                                       ->environment( [ 'GIT_DIR' => $this->basedir ] )
+                                       ->environment( [ 'GIT_DIR' => $gitDir ] )
                                        ->restrict( Shell::RESTRICT_DEFAULT | Shell::NO_NETWORK )
-                                       ->whitelistPaths( [ $this->basedir ] )
+                                       ->whitelistPaths( [ $gitDir, $this->repoDir ] )
                                        ->execute();
 
                                if ( $result->getExitCode() === 0 ) {
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 cab1e1f..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,
                                        ];
                                }
                        }
@@ -1171,21 +1179,31 @@ class Preferences {
                # Only show skins that aren't disabled in $wgSkipSkins
                $validSkinNames = Skin::getAllowedSkins();
 
-               # Sort by UI skin name. First though need to update validSkinNames as sometimes
-               # the skinkey & UI skinname differ (e.g. "standard" skinkey is "Classic" in the UI).
                foreach ( $validSkinNames as $skinkey => &$skinname ) {
                        $msg = $context->msg( "skinname-{$skinkey}" );
                        if ( $msg->exists() ) {
                                $skinname = htmlspecialchars( $msg->text() );
                        }
                }
-               asort( $validSkinNames );
 
                $config = $context->getConfig();
                $defaultSkin = $config->get( 'DefaultSkin' );
                $allowUserCss = $config->get( 'AllowUserCss' );
                $allowUserJs = $config->get( 'AllowUserJs' );
 
+               # Sort by the internal name, so that the ordering is the same for each display language,
+               # especially if some skin names are translated to use a different alphabet and some are not.
+               uksort( $validSkinNames, function ( $a, $b ) use ( $defaultSkin ) {
+                       # Display the default first in the list by comparing it as lesser than any other.
+                       if ( strcasecmp( $a, $defaultSkin ) === 0 ) {
+                               return -1;
+                       }
+                       if ( strcasecmp( $b, $defaultSkin ) === 0 ) {
+                               return 1;
+                       }
+                       return strcasecmp( $a, $b );
+               } );
+
                $foundDefault = false;
                foreach ( $validSkinNames as $skinkey => $sn ) {
                        $linkTools = [];
index e3a757f..db15032 100644 (file)
@@ -215,10 +215,7 @@ class ApiFeedWatchlist extends ApiBase {
                        preg_match( '!(.*)/\*\s*(.*?)\s*\*/(.*)!', $comment, $matches )
                ) {
                        global $wgParser;
-
-                       $sectionTitle = $wgParser->stripSectionName( $matches[2] );
-                       $sectionTitle = Sanitizer::normalizeSectionNameWhitespace( $sectionTitle );
-                       $titleUrl .= Title::newFromText( '#' . $sectionTitle )->getFragmentForURL();
+                       $titleUrl .= $wgParser->guessSectionNameFromWikiText( $matches[ 2 ] );
                }
 
                $timestamp = $info['timestamp'];
index 8e9b1b4..179e6f7 100644 (file)
@@ -262,7 +262,7 @@ abstract class ApiQueryBase extends ApiBase {
         * @param string|string[] $value Value; ignored if null or empty array;
         */
        protected function addWhereFld( $field, $value ) {
-               if ( $value !== null && count( $value ) ) {
+               if ( $value !== null && !( is_array( $value ) && !$value ) ) {
                        $this->where[$field] = $value;
                }
        }
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 ba8d2f9..85b65cf 100644 (file)
        "apihelp-query+search-param-prop": "Eigenschaften zur Rückgabe:",
        "apihelp-query+search-param-qiprofile": "Zu verwendendes anfrageunabhängiges Profil (wirkt sich auf den Ranking-Algorithmus aus).",
        "apihelp-query+search-paramvalue-prop-wordcount": "Ergänzt den Wortzähler der Seite.",
+       "apihelp-query+search-paramvalue-prop-extensiondata": "Ergänzt zusätzliche von Erweiterungen erzeugte Daten.",
        "apihelp-query+search-param-limit": "Wie viele Seiten insgesamt zurückgegeben werden sollen.",
        "apihelp-query+search-example-simple": "Nach <kbd>meaning</kbd> suchen.",
        "apihelp-query+search-example-text": "Texte nach <kbd>meaning</kbd> durchsuchen.",
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 b84057e..ef5f50d 100644 (file)
        "apihelp-query+search-paramvalue-prop-sectiontitle": "Añade el título de la sección correspondiente.",
        "apihelp-query+search-paramvalue-prop-categorysnippet": "Añade un fragmento analizado de la categoría correspondiente.",
        "apihelp-query+search-paramvalue-prop-isfilematch": "Añade un booleano que indica si la búsqueda corresponde al contenido del archivo.",
+       "apihelp-query+search-paramvalue-prop-extensiondata": "Añade datos adicionales generados por las extensiones.",
        "apihelp-query+search-paramvalue-prop-score": "Ignorado.",
        "apihelp-query+search-paramvalue-prop-hasrelated": "Ignorado",
        "apihelp-query+search-param-limit": "Cuántas páginas en total se devolverán.",
index a56b42f..67e051a 100644 (file)
@@ -28,7 +28,8 @@
                        "Pols12",
                        "The RedBurn",
                        "Umherirrender",
-                       "Thibaut120094"
+                       "Thibaut120094",
+                       "KATRINE1992"
                ]
        },
        "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Documentation]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Liste de diffusion]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annonces de l’API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bogues et demandes]\n</div>\n<strong>État :</strong> Toutes les fonctionnalités affichées sur cette page devraient fonctionner, mais l’API est encore en cours de développement et peut changer à tout moment. Inscrivez-vous à [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la liste de diffusion mediawiki-api-announce] pour être informé des mises à jour.\n\n<strong>Requêtes erronées :</strong> Si des requêtes erronées sont envoyées à l’API, un entête HTTP sera renvoyé avec la clé « MediaWiki-API-Error ». La valeur de cet entête et le code d’erreur renvoyé prendront la même valeur. Pour plus d’information, voyez [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Errors and warnings]].\n\n<strong>Test :</strong> Pour faciliter le test des requêtes de l’API, voyez [[Special:ApiSandbox]].",
        "apihelp-query+search-paramvalue-prop-sectiontitle": "Ajoute le titre de la section correspondante.",
        "apihelp-query+search-paramvalue-prop-categorysnippet": "Ajoute un extrait analysé de la catégorie correspondante.",
        "apihelp-query+search-paramvalue-prop-isfilematch": "Ajoute un booléen indiquant si la recherche correspond au contenu du fichier.",
+       "apihelp-query+search-paramvalue-prop-extensiondata": "Va ajouter des donnees generees extra par extensions.",
        "apihelp-query+search-paramvalue-prop-score": "Ignoré.",
        "apihelp-query+search-paramvalue-prop-hasrelated": "Ignoré.",
        "apihelp-query+search-param-limit": "Combien de pages renvoyer au total.",
index 10934b4..a012900 100644 (file)
@@ -26,9 +26,9 @@
        "apihelp-block-param-autoblock": "Автоматски блокирај ја последно употребената IP-адреса и сите понатамошни IP-адреси од кои лицето ќе се обиде да се најави.",
        "apihelp-block-param-noemail": "Оневозможи му на корисникот да испаќа е-пошта преку викито. (Го бара правото code>blockemail</code>).",
        "apihelp-block-param-hidename": "Скриј го корисничкото име од дневникот на блокирања. (Го бара правото <code>hideuser</code>)",
-       "apihelp-block-param-allowusertalk": "Ð\9eвозможи Ð¼Ñ\83 Ð½Ð° ÐºÐ¾Ñ\80иÑ\81никоÑ\82 Ð´Ð° Ñ\81и Ñ\98а Ñ\83Ñ\80едÑ\83ва Ñ\81опÑ\81Ñ\82венаÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 (завиÑ\81и Ð¾Ð´ <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
+       "apihelp-block-param-allowusertalk": "Ð\9eвозможи Ð¼Ñ\83 Ð½Ð° ÐºÐ¾Ñ\80иÑ\81никоÑ\82 Ð´Ð° Ñ\98а Ñ\83Ñ\80едÑ\83ва Ð½ÐµÐ³Ð¾Ð²Ð°Ñ\82а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а (завиÑ\81и Ð¾Ð´ <var>[[mw:Special:MyLanguage/Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Ако корисникот е веќе блокиран, наметни врз постоечкиот блок.",
-       "apihelp-block-param-watchuser": "Ð\9dабÑ\99Ñ\83дÑ\83ваÑ\98 Ñ\98а ÐºÐ¾Ñ\80иÑ\81ниÑ\87каÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ð·Ð° Ñ\80азговоÑ\80 на овој корисник или IP-адреса",
+       "apihelp-block-param-watchuser": "Ð\9dабÑ\99Ñ\83дÑ\83ваÑ\98 Ñ\98а ÐºÐ¾Ñ\80иÑ\81ниÑ\87каÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸ Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а на овој корисник или IP-адреса",
        "apihelp-block-example-ip-simple": "Блокирај ја IP-адресата <kbd>192.0.2.5</kbd> три дена со причината <kbd>Прва опомена</kbd>.",
        "apihelp-block-example-user-complex": "Блокирај го корисникот <kbd>Vandal</kbd> (Вандал) бесконечно со причината <kbd>Vandal</kbd> (Вандализам) и оневозможи создавање на нови сметки и праќање е-пошта.",
        "apihelp-checktoken-summary": "Проверка на полноважноста на шифрата од <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
        "apihelp-move-param-fromid": "Назнака на страницата што треба да се премести. Не може да се користи заедно со <var>$1from</var>.",
        "apihelp-move-param-to": "Како да гласи новата страница.",
        "apihelp-move-param-reason": "Причина за преименувањето.",
-       "apihelp-move-param-movetalk": "Ð\9fÑ\80еименÑ\83ваÑ\98 Ñ\98а Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ð·Ð° Ñ\80азговоÑ\80, ако ја има.",
+       "apihelp-move-param-movetalk": "Ð\9fÑ\80еименÑ\83ваÑ\98 Ñ\98а Ð¸ Ñ\80азговоÑ\80наÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а, ако ја има.",
        "apihelp-move-param-movesubpages": "Преименувај потстраници, ако има.",
        "apihelp-move-param-noredirect": "Не прави пренасочување.",
        "apihelp-move-param-watch": "Додај ги страницата и пренасочувањето во набљудуваните на тековниот корисник.",
index 2e89ea3..f2ba86a 100644 (file)
        "apihelp-parse-paramvalue-prop-categorieshtml": "Gir HTML-versjonen av kategoriene.",
        "apihelp-parse-paramvalue-prop-headitems": "Gir elementer som skal puttes i <code>&lt;head&gt;</code>-taggen til siden.",
        "apihelp-patrol-summary": "Patruljer en side eller revisjon.",
+       "apihelp-query+allfileusages-param-prop": "Hvilken informasjon som skal inkluderes:",
        "apihelp-query+allfileusages-paramvalue-prop-title": "Legger til filens tittel.",
        "apihelp-query+allfileusages-param-limit": "Hvor mange elementer som skal returneres totalt.",
        "apihelp-query+allfileusages-param-dir": "Retningen det skal listes opp i.",
+       "apihelp-query+allfileusages-example-unique": "List opp unike filtitler.",
+       "apihelp-query+allfileusages-example-unique-generator": "Hent alle filtitler og marker de som mangler.",
+       "apihelp-query+allfileusages-example-generator": "Hent sider som inneholder filene.",
+       "apihelp-query+allimages-param-sort": "Egenskap det skal sorteres etter.",
+       "apihelp-query+allimages-param-dir": "Retningen det skal sorteres i.",
+       "apihelp-query+allimages-param-minsize": "Begrens til bilder med minst dette antallet byte.",
+       "apihelp-query+allimages-param-maxsize": "Begrens til bilder med minst dette antallet byte.",
+       "apihelp-query+allimages-param-sha1": "SHA1-hash for bildet. Setter til side $1sha1base36.",
+       "apihelp-query+allimages-param-sha1base36": "SHA1-hash av bildet i base 36 (brukes i MediaWiki).",
+       "apihelp-query+allimages-param-user": "Returner bare filer lastet opp av denne brukeren. Kan kun brukes med $1sort=timestamp. Kan ikke brukes med $1filterbots.",
+       "apihelp-query+allimages-param-filterbots": "Hvordan opplastinger av roboter skal filtreres. Kan kun brukes med $1sort=timestamp. Kan ikke brukes sammen med $1user.",
+       "apihelp-query+allimages-param-mime": "Hvilke MIME-typer det skal søkes etter, f.eks. <kbd>image/jpeg</kbd>.",
+       "apihelp-query+allimages-param-limit": "Hvor mange bilder som skal returneres totalt.",
+       "apihelp-query+allimages-example-B": "Viser en liste over filer som begynner med bokstaven <kbd>B</kbd>.",
+       "apihelp-query+allimages-example-recent": "Viser en liste over nylig opplastede filer på samme måte som [[Special:NewFiles]].",
+       "apihelp-query+allimages-example-mimetypes": "Viser en liste over filer med MIME-typen <kbd>image/png</kbd> eller <kbd>image/gif</kbd>",
+       "apihelp-query+allimages-example-generator": "Viser informasjon om 4 filer fra og med bokstaven <kbd>T</kbd>.",
+       "apihelp-query+alllinks-param-prefix": "Søk etter alle lenkede titler som begynner med denne verdien.",
+       "apihelp-query+alllinks-param-prop": "Hvilken informasjon som skal inkluderes:",
+       "apihelp-query+alllinks-paramvalue-prop-title": "Legger til tittelen til lenka.",
+       "apihelp-query+alllinks-param-limit": "Hvor mange elementer som skal returneres totalt.",
+       "apihelp-query+alllinks-param-dir": "Retningen det skal listes i.",
+       "apihelp-query+alllinks-example-unique": "List opp unike lenkede titler.",
+       "apihelp-query+alllinks-example-unique-generator": "Henter alle lenkede titler og markerer de som mangler.",
+       "apihelp-query+alllinks-example-generator": "Hent sider som inneholder lenkene.",
+       "apihelp-query+allmessages-summary": "Returnerer meldinger fra denne siden.",
+       "apihelp-query+allmessages-param-prop": "Hvilke egenskaper som skal hentes.",
+       "apihelp-query+allmessages-param-filter": "Returner kun meldinger med navn som inneholder denne strengen.",
+       "apihelp-query+allmessages-param-lang": "Returner meldinger på dette språket.",
+       "apihelp-query+allmessages-param-title": "Sidenavn å bruke som kontekst når meldingen tolkes (for alternativet $1enableparser).",
+       "apihelp-query+allmessages-param-prefix": "Returner meldinger med dette prefikset.",
+       "apihelp-query+allmessages-example-ipb": "Vis meldinger som starter med <kbd>ipb-</kbd>.",
+       "apihelp-query+allmessages-example-de": "Vis meldingene <kbd>august</kbd> og <kbd>mainpage</kbd> på tysk.",
+       "apihelp-query+allpages-param-filterredir": "Hvilke sider som skal listes opp.",
+       "apihelp-query+allpages-param-minsize": "Begrens til sider med dette antallet byte.",
+       "apihelp-query+allpages-param-maxsize": "Begrens til sider med maksimalt dette antallet byte.",
+       "apihelp-query+allpages-param-prtype": "Begrens til beskyttede sider.",
+       "apihelp-query+allpages-param-limit": "Hvor mange sider som skal returneres totalt.",
+       "apihelp-query+allpages-param-dir": "Retningen det skal listes opp i.",
+       "apihelp-query+allpages-example-generator-revisions": "Vis innholdet til de to første ikke-omdirigeringssidene som begynner med <kbd>Re</kbd>.",
+       "apihelp-query+allredirects-summary": "Lister opp alle omdirigeringer til et navnerom.",
+       "apihelp-query+allredirects-param-prefix": "Søk etter alle målsider som begynner med denne verdien.",
+       "apihelp-query+allredirects-param-prop": "Hvilken informasjon som skal inkluderes:",
+       "apihelp-query+allredirects-paramvalue-prop-ids": "Legger til side-ID-en til den omdirigerende siden (kan ikke brukes med <var>$1unique</var>).",
+       "apihelp-query+allredirects-paramvalue-prop-title": "Legger til tittelen til omdirigeringen.",
+       "apihelp-query+allredirects-paramvalue-prop-fragment": "Legger til fragmentet fra omdirigeringen, om det er et (kan ikke brukes med <var>$1unique</var>).",
+       "apihelp-query+allredirects-paramvalue-prop-interwiki": "Legger til interwikiprefikset fra omdirigeringen, om det er et (kan ikke brukes med <var>$1unique</var>).",
+       "apihelp-query+allredirects-param-limit": "Hvor mange elementer som skal returneres totalt.",
+       "apihelp-query+allredirects-param-dir": "Retningen det skal listes opp i.",
+       "apihelp-query+allredirects-example-B": "List opp målsider, inkludert de som mangler, med side-ID-ene de kommer fra, begynner på <kbd>B</kbd>.",
+       "apihelp-query+allredirects-example-unique": "List opp unike målsider.",
+       "apihelp-query+allredirects-example-unique-generator": "Henter alle målsider, markerer de som mangler.",
+       "apihelp-query+allredirects-example-generator": "Henter sider som inneholder omdirigeringene.",
+       "apihelp-query+allrevisions-summary": "List opp alle revisjoner.",
+       "apihelp-query+allrevisions-param-user": "List bare opp revisjoner av denne brukeren.",
+       "apihelp-query+allrevisions-param-excludeuser": "Ikke list opp revisjoner av denne brukeren.",
+       "apihelp-query+allrevisions-param-namespace": "List kun opp sider i dette navnerommet.",
+       "apihelp-query+allrevisions-param-generatetitles": "Når denne brukes som generator, generer titler i stedet for revisjons-ID-er.",
+       "apihelp-query+allrevisions-example-user": "List opp de siste 50 bidragene fra brukeren <kbd>Example</kbd>.",
+       "apihelp-query+allrevisions-example-ns-main": "List opp de første 50 revisjonene i hovednavnerommet.",
+       "apihelp-query+mystashedfiles-param-prop": "Hvilke egenskaper som skal hentes for filene.",
+       "apihelp-query+mystashedfiles-paramvalue-prop-size": "Hent filstørrelse og bildedimensjoner.",
+       "apihelp-query+mystashedfiles-paramvalue-prop-type": "Hent filas MIME-type og medietype.",
+       "apihelp-query+mystashedfiles-param-limit": "Hvor mange filer som skal hentes.",
+       "apihelp-query+alltransclusions-param-prop": "Hvilken informasjon som skal inkluderes:",
+       "apihelp-query+allusers-param-prop": "Hvilken informasjon som skal inkluderes:",
+       "apihelp-query+categorymembers-param-prop": "Hvilken informasjon som skal inkluderes:",
+       "apihelp-query+exturlusage-param-prop": "Hvilken informasjon som skal inkluderes:",
+       "apihelp-query+pageswithprop-param-prop": "Hvilken informasjon som skal inkluderes:",
+       "apihelp-query+userinfo-param-prop": "Hvilken informasjon som skal inkluderes:",
+       "apihelp-query+users-param-prop": "Hvilken informasjon som skal inkluderes:",
        "apihelp-json-summary": "Resultatdata i JSON-format.",
        "apihelp-none-summary": "Ingen resultat.",
        "api-help-flag-readrights": "Denne modulen krever lesetilgang.",
index 2faf2a8..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-paramvalue-prop-user": "Voegt de gebruikernaam van de geblokeerde gebruiker toe.",
-       "apihelp-query+blocks-paramvalue-prop-userid": "Voegt de gebruiker-ID van de geblokkeerde gebruiker 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 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 geblokeerd, 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 b85ddc9..bbc83c0 100644 (file)
        "apihelp-query+search-paramvalue-prop-sectiontitle": "Adiciona o título da secção correspondente.",
        "apihelp-query+search-paramvalue-prop-categorysnippet": "Adiciona um fragmento de código com a categoria correspondente, após análise sintática.",
        "apihelp-query+search-paramvalue-prop-isfilematch": "Adiciona um valor booleano que indica se a pesquisa encontrou correspondência no conteúdo de ficheiros.",
+       "apihelp-query+search-paramvalue-prop-extensiondata": "Acrescenta dados adicionais gerados por extensões.",
        "apihelp-query+search-paramvalue-prop-score": "Ignorado.",
        "apihelp-query+search-paramvalue-prop-hasrelated": "Ignorado.",
        "apihelp-query+search-param-limit": "O número total de páginas a serem devolvidas.",
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 d009168..7171a21 100644 (file)
@@ -67,6 +67,8 @@ abstract class Collation {
                                return new CollationFa;
                        case 'uppercase-ba':
                                return new BashkirUppercaseCollation;
+                       case 'uppercase-se':
+                               return new NorthernSamiUppercaseCollation;
                        default:
                                $match = [];
                                if ( preg_match( '/^uca-([A-Za-z@=-]+)$/', $collationName, $match ) ) {
diff --git a/includes/collation/NorthernSamiUppercaseCollation.php b/includes/collation/NorthernSamiUppercaseCollation.php
new file mode 100644 (file)
index 0000000..d373749
--- /dev/null
@@ -0,0 +1,83 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @since 1.31
+ *
+ * @file
+ */
+
+/**
+ * Temporary workaround for incorrect collation of Northern Sami
+ * language ('se') in Wikimedia servers (see bug T181503).
+ *
+ * When the ICU's 'se' collation has been included in PHP-intl and Wikimedia
+ * servers updated to that new version of PHP, this file should be deleted
+ * and the collation for 'se' set to 'uca-se'.
+ *
+ * @since 1.31
+ */
+
+class NorthernSamiUppercaseCollation extends CustomUppercaseCollation {
+
+       public function __construct() {
+               parent::__construct( [
+                       'A',
+                       'Á',
+                       'B',
+                       'C',
+                       'Č',
+                       'Ʒ', // Not part of modern alphabet, but part of ICU
+                       'Ǯ', // Not part of modern alphabet, but part of ICU
+                       'D',
+                       'Đ',
+                       'E',
+                       'F',
+                       'G',
+                       'Ǧ', // Not part of modern alphabet, but part of ICU
+                       'Ǥ', // Not part of modern alphabet, but part of ICU
+                       'H',
+                       'I',
+                       'J',
+                       'K',
+                       'Ǩ', // Not part of modern alphabet, but part of ICU
+                       'L',
+                       'M',
+                       'N',
+                       'Ŋ',
+                       'O',
+                       'P',
+                       'Q',
+                       'R',
+                       'S',
+                       'Š',
+                       'T',
+                       'Ŧ',
+                       'U',
+                       'V',
+                       'W',
+                       'X',
+                       'Y',
+                       'Z',
+                       'Ž',
+                       'Ø', // Not part of native alphabet, but part of ICU
+                       'Æ', // Not part of native alphabet, but part of ICU
+                       'Å', // Not part of native alphabet, but part of ICU
+                       'Ä', // Not part of native alphabet, but part of ICU
+                       'Ö', // Not part of native alphabet, but part of ICU
+               ], Language::factory( 'se' ) );
+       }
+}
index a7b97a5..50cc9b5 100644 (file)
@@ -855,7 +855,7 @@ abstract class ContentHandler {
                                );
 
                                return wfMessage( 'autoredircomment', $newTarget->getFullText() )
-                                       ->rawParams( $truncatedtext )->inContentLanguage()->text();
+                                       ->plaintextParams( $truncatedtext )->inContentLanguage()->text();
                        case 'changed-redirect-target':
                                $oldTarget = $oldContent->getRedirectTarget();
                                $newTarget = $newContent->getRedirectTarget();
index 942390f..bc20aa0 100644 (file)
@@ -87,7 +87,7 @@ class WikitextContent extends TextContent {
                if ( $sectionId === 'new' ) {
                        # Inserting a new section
                        $subject = $sectionTitle ? wfMessage( 'newsectionheaderdefaultlevel' )
-                                       ->rawParams( $sectionTitle )->inContentLanguage()->text() . "\n\n" : '';
+                                       ->plaintextParams( $sectionTitle )->inContentLanguage()->text() . "\n\n" : '';
                        if ( Hooks::run( 'PlaceNewSection', [ $this, $oldtext, $subject, &$text ] ) ) {
                                $text = strlen( trim( $oldtext ) ) > 0
                                        ? "{$oldtext}\n\n{$subject}{$text}"
index b1eaa4b..6e7e7ee 100644 (file)
@@ -140,6 +140,15 @@ class TextConflictHelper {
         */
        public function incrementResolvedStats() {
                $this->stats->increment( 'edit.failures.conflict.resolved' );
+               // Only include 'standard' namespaces to avoid creating unknown numbers of statsd metrics
+               if (
+                       $this->title->getNamespace() >= NS_MAIN &&
+                       $this->title->getNamespace() <= NS_CATEGORY_TALK
+               ) {
+                       $this->stats->increment(
+                               'edit.failures.conflict.resolved.byNamespaceId.' . $this->title->getNamespace()
+                       );
+               }
        }
 
        /**
diff --git a/includes/export/ExportProgressFilter.php b/includes/export/ExportProgressFilter.php
new file mode 100644 (file)
index 0000000..9b1571f
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright © 2005 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * @ingroup Dump
+ */
+class ExportProgressFilter extends DumpFilter {
+       /**
+        * @var BackupDumper
+        */
+       private $progress;
+
+       function __construct( &$sink, &$progress ) {
+               parent::__construct( $sink );
+               $this->progress = $progress;
+       }
+
+       function writeClosePage( $string ) {
+               parent::writeClosePage( $string );
+               $this->progress->reportPage();
+       }
+
+       function writeRevision( $rev, $string ) {
+               parent::writeRevision( $rev, $string );
+               $this->progress->revCount();
+       }
+}
index e6963d5..466a251 100644 (file)
@@ -16,7 +16,7 @@ class HTMLTextAreaField extends HTMLFormField {
                parent::__construct( $params );
 
                if ( isset( $params['placeholder-message'] ) ) {
-                       $this->mPlaceholder = $this->getMessage( $params['placeholder-message'] )->parse();
+                       $this->mPlaceholder = $this->getMessage( $params['placeholder-message'] )->text();
                } elseif ( isset( $params['placeholder'] ) ) {
                        $this->mPlaceholder = $params['placeholder'];
                }
index 1c5a43d..b2e4f2a 100644 (file)
@@ -31,7 +31,7 @@ class HTMLTextField extends HTMLFormField {
                parent::__construct( $params );
 
                if ( isset( $params['placeholder-message'] ) ) {
-                       $this->mPlaceholder = $this->getMessage( $params['placeholder-message'] )->parse();
+                       $this->mPlaceholder = $this->getMessage( $params['placeholder-message'] )->text();
                } elseif ( isset( $params['placeholder'] ) ) {
                        $this->mPlaceholder = $params['placeholder'];
                }
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 bdaeaca..b4ef49d 100644 (file)
@@ -185,7 +185,7 @@ class LocalSettingsGenerator {
                        $jsonFile = 'skin.json';
                        $function = 'wfLoadSkin';
                } else {
-                       throw new InvalidArgumentException( '$dir was not "extensions" or "skins' );
+                       throw new InvalidArgumentException( '$dir was not "extensions" or "skins"' );
                }
 
                $encName = self::escapePhpString( $name );
index 2ff49fc..5ac35c8 100644 (file)
        "config-install-mainpage-failed": "Nepodařilo se vložit hlavní stranu: $1",
        "config-install-done": "<strong>Gratulujeme!</strong>\nNainstalovali jste MediaWiki.\n\nInstalátor vytvořil soubor <code>LocalSettings.php</code>.\nTen obsahuje veškerou vaši konfiguraci.\n\nBudete si ho muset stáhnout a uložit do základního adresáře vaší instalace wiki (do stejného adresáře jako soubor index.php). Stažení souboru se mělo spustit automaticky.\n\nPokud se vám stažení nenabídlo nebo jste ho zrušili, můžete ho spustit znovu kliknutím na následující odkaz:\n\n$3\n\n<strong>Poznámka</strong>: Pokud to neuděláte hned, tento vygenerovaný konfigurační soubor nebude později dostupný, pokud instalaci opustíte, aniž byste si ho stáhli.\n\nAž to dokončíte, můžete <strong>[$2 vstoupit do své wiki]</strong>.",
        "config-install-done-path": "<strong>Gratulujeme!</strong>\nNainstalovali jste MediaWiki.\n\nInstalátor vytvořil soubor <code>LocalSettings.php</code>.\nTen obsahuje veškerou vaši konfiguraci.\n\nBudete si ho muset stáhnout a uložit do <code>$4</code>. Stažení souboru se mělo spustit automaticky.\n\nPokud se vám stažení nenabídlo nebo jste ho zrušili, můžete ho spustit znovu kliknutím na následující odkaz:\n\n$3\n\n<strong>Poznámka:</strong> Pokud to neuděláte hned, tento vygenerovaný konfigurační soubor nebude později dostupný, pokud instalaci opustíte, aniž byste si ho stáhli.\n\nAž to dokončíte, můžete <strong>[$2 vstoupit do své wiki]</strong>.",
+       "config-install-success": "MediaWiki byla úspěšně nainstalována. Nyní můžete\nnavštívit <$1$2>, abyste si prohlédli svou novou wiki.\nPokud máte dotazy, podívejte se do našeho seznamu často kladených otázek:\n<https://www.mediawiki.org/wiki/Manual:FAQ> nebo použijte jedno\nz tam odkazovaných diskusních fór.",
        "config-download-localsettings": "Stáhnout <code>LocalSettings.php</code>",
        "config-help": "nápověda",
        "config-help-tooltip": "rozbalíte kliknutím",
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 0988546..1ad2cbd 100644 (file)
        "config-env-bad": "L’environnement a été vérifié.\nVous ne pouvez pas installer MediaWiki.",
        "config-env-php": "PHP $1 est installé.",
        "config-env-hhvm": "HHVM $1 est installé.",
-       "config-unicode-using-intl": "Utilisation de [http://pecl.php.net/intl l'extension PECL intl] pour la normalisation Unicode.",
-       "config-unicode-pure-php-warning": "<strong>Attention :</strong> L’[http://pecl.php.net/intl extension PECL intl] n’est pas disponible pour la normalisation d’Unicode, retour à la version lente implémentée en PHP.\nSi votre site web sera très fréquenté, vous devriez lire ceci : [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ''Unicode normalization''] (en anglais).",
-       "config-unicode-update-warning": "<strong>Attention</strong>: La version installée du normalisateur Unicode utilise une ancienne version de la [http://site.icu-project.org/ bibliothèque logicielle ''ICU Project''].\nVous devriez faire une [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations mise à jour] si vous êtes concerné par l'usage d'Unicode.",
+       "config-unicode-using-intl": "Utilisation de [http://pecl.php.net/intl lextension PECL intl] pour la normalisation Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Attention :</strong> L’[http://pecl.php.net/intl extension PECL intl] n’est pas disponible pour la normalisation d’Unicode, retour à la version lente implémentée en PHP seulement.\nSi votre site web sera très fréquenté, vous devriez lire ceci : [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ''Unicode normalization''] (en anglais).",
+       "config-unicode-update-warning": "<strong>Attention :</strong> la version installée du normalisateur Unicode utilise une ancienne version de la bibliothèque logicielle du [http://site.icu-project.org/ ''Projet ICU''].\nVous devriez faire une [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations mise à jour] si vous êtes concerné par l’usage d’Unicode.",
        "config-no-db": "Impossible de trouver un pilote de base de données approprié ! Vous devez installer un pilote de base de données pour PHP. {{PLURAL:$2|Le type suivant|Les types suivants}} de bases de données {{PLURAL:$2|est reconnu|sont reconnus}} : $1.\n\nSi vous avez compilé PHP vous-même, reconfigurez-le avec un client de base de données actif, par exemple en utilisant <code>./configure --with-mysqli</code>. Si vous avez installé PHP depuis un paquet Debian ou Ubuntu, alors vous devrez aussi installer, par exemple, le paquet <code>php5-mysql</code>.",
-       "config-outdated-sqlite": "'''Attention''': vous avez SQLite $1, qui est inférieur à la version minimale requise $2. SQLite sera indisponible.",
-       "config-no-fts3": "'''Attention :''' SQLite est compilé sans le module [//sqlite.org/fts3.html FTS3] ; les fonctions de recherche ne seront pas disponibles sur ce moteur.",
-       "config-pcre-old": "'''Fatal :''' PCRE $1 ou ultérieur est nécessaire.\nVotre binaire PHP est lié avec PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Plus d’information sur PCRE].",
-       "config-pcre-no-utf8": "<strong>Erreur fatale</strong>: le module PCRE de PHP semble être compilé sans la prise en charge de PCRE_UTF8.\nMédiaWiki a besoin de la gestion d’UTF-8 pour fonctionner correctement.",
+       "config-outdated-sqlite": "<strong>Attention :</strong> vous avez SQLite $1, qui est inférieur à la version minimale requise $2. SQLite sera indisponible.",
+       "config-no-fts3": "<strong>Attention :</strong> SQLite est compilé sans le module [//sqlite.org/fts3.html FTS3] ; les fonctions de recherche ne seront pas disponibles sur ce moteur.",
+       "config-pcre-old": "<strong>Erreur fatale :</strong> PCRE $1 ou ultérieur est nécessaire.\nVotre binaire PHP est lié avec PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Plus d’information sur PCRE].",
+       "config-pcre-no-utf8": "<strong>Erreur fatale :</strong> le module PCRE de PHP semble être compilé sans la prise en charge de PCRE_UTF8.\nMediaWiki a besoin de la gestion d’UTF-8 pour fonctionner correctement.",
        "config-memory-raised": "Le paramètre <code>memory_limit</code> de PHP était à $1, porté à $2.",
-       "config-memory-bad": "'''Attention :''' Le paramètre <code>memory_limit</code> de PHP est à $1.\nCette valeur est probablement trop faible.\nIl est possible que l’installation échoue !",
+       "config-memory-bad": "<strong>Attention :</strong> Le paramètre <code>memory_limit</code> de PHP est à $1.\nCette valeur est probablement trop faible.\nIl est possible que l’installation échoue !",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] est installé",
        "config-apc": "[http://www.php.net/apc APC] est installé",
        "config-apcu": "[http://www.php.net/apcu APCu] est installé",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] est installé",
-       "config-no-cache-apcu": "<strong>Attention :</strong> Impossible de trouver [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nLa mise en cache d'objets n'est pas activée.",
-       "config-mod-security": "'''Attention''': Votre serveur web a [http://modsecurity.org/ mod_security] activé. S’il est mal configuré, cela peut poser des problèmes à MediaWiki ou à d’autres applications qui permettent aux utilisateurs de publier un contenu quelconque.\nReportez-vous à [http://modsecurity.org/documentation/ la documentation de mod_security] ou contactez le soutien de votre hébergeur si vous rencontrez des erreurs aléatoires.",
+       "config-no-cache-apcu": "<strong>Attention :</strong> impossible de trouver [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nLa mise en cache d’objets n’est pas activée.",
+       "config-mod-security": "<strong>Attention :</strong> votre serveur web a [http://modsecurity.org/ mod_security] activé. S’il est mal configuré, cela peut poser des problèmes à MediaWiki ou à d’autres applications qui permettent aux utilisateurs de publier un contenu quelconque. Si possible, ceci devrait être désactivé. Sinon, reportez-vous à [http://modsecurity.org/documentation/ la documentation de mod_security] ou contactez l’assistance de votre hébergeur si vous rencontrez des erreurs aléatoires.",
        "config-diff3-bad": "GNU diff3 introuvable.",
        "config-git": "Logiciel de contrôle de version Git trouvé : <code>$1</code>.",
        "config-git-bad": "Logiciel de contrôle de version Git non trouvé.",
-       "config-imagemagick": "ImageMagick trouvé : <code>$1</code>.\nLa miniaturisation d'images sera activée si vous activez le téléversement de fichiers.",
+       "config-imagemagick": "ImageMagick trouvé : <code>$1</code>.\nLa génération de vignettes d’images sera activée si vous activez les téléversements.",
        "config-gd": "La bibliothèque graphique GD intégrée a été trouvée.\nLa miniaturisation d'images sera activée si vous activez le téléversement de fichiers.",
-       "config-no-scaling": "Impossible de trouver la bibliothèque GD ou ImageMagick.\nLa miniaturisation d'images sera désactivée.",
-       "config-no-uri": "'''Erreur :''' Impossible de déterminer l'URI du script actuel.\nInstallation interrompue.",
-       "config-no-cli-uri": "'''Attention''': Aucun <code>--scriptpath</code> n'a été spécifié; <code>$1</code> sera utilisé par défaut",
-       "config-using-server": "Utilisation du nom de serveur \"<nowiki>$1</nowiki>\".",
+       "config-no-scaling": "Impossible de trouver la bibliothèque GD ou ImageMagick.\nLa miniaturisation dimages sera désactivée.",
+       "config-no-uri": "<strong>Erreur :</strong> impossible de déterminer l’URI du script actuel.\nInstallation interrompue.",
+       "config-no-cli-uri": "<strong>Attention :</strong> Aucun <code>--scriptpath</code> n’a été spécifié ; <code>$1</code> sera utilisé par défaut",
+       "config-using-server": "Utilisation du nom de serveur « <nowiki>$1</nowiki> ».",
        "config-using-uri": "Utilisation de l'URL de serveur \"<nowiki>$1$2</nowiki>\".",
        "config-uploads-not-safe": "<strong>Attention :</strong> Votre répertoire par défaut pour les téléversements, <code>$1</code>, est vulnérable, car il peut exécuter n’importe quel script.\nBien que MediaWiki vérifie tous les fichiers téléversés, il est fortement recommandé de [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security fermer cette faille de sécurité] (texte en anglais) avant d’activer les téléversements.",
        "config-no-cli-uploads-check": "'''Attention:''' Votre répertoire par défaut pour les imports(<code>$1</code>) n'est pas contrôlé concernant la vulnérabilité d'exécution de scripts arbitraires lors de l'installation CLI.",
index f3f40b6..ee5bb8d 100644 (file)
        "config-email-user": "Овозможи е-пошта од корисник до корисник",
        "config-email-user-help": "Дозволи сите корисници да можат да си праќаат е-пошта ако ја имаат овозможено во нагодувањата.",
        "config-email-usertalk": "Овозможи известувања за промени во кориснички страници за разговор",
-       "config-email-usertalk-help": "Ð\9eвозможи ÐºÐ¾Ñ\80иÑ\81ниÑ\86иÑ\82е Ð´Ð° Ð´Ð¾Ð±Ð¸Ð²Ð°Ð°Ñ\82 Ð¸Ð·Ð²ÐµÑ\81Ñ\82Ñ\83ваÑ\9aа Ð·Ð° Ð¿Ñ\80омени Ð²Ð¾ Ð½Ð¸Ð²Ð½Ð¸Ñ\82е ÐºÐ¾Ñ\80иÑ\81ниÑ\87ки Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80 ако ги имаат овозможено во нагодувањата.",
+       "config-email-usertalk-help": "Ð\9eвозможи ÐºÐ¾Ñ\80иÑ\81ниÑ\86иÑ\82е Ð´Ð° Ð´Ð¾Ð±Ð¸Ð²Ð°Ð°Ñ\82 Ð¸Ð·Ð²ÐµÑ\81Ñ\82Ñ\83ваÑ\9aа Ð·Ð° Ð¿Ñ\80омени Ð²Ð¾ Ð½Ð¸Ð²Ð½Ð¸Ñ\82е ÐºÐ¾Ñ\80иÑ\81ниÑ\87ки Ñ\80азговоÑ\80ни Ñ\81Ñ\82Ñ\80аниÑ\86и ако ги имаат овозможено во нагодувањата.",
        "config-email-watchlist": "Овозможи известувања за список на набљудувања",
        "config-email-watchlist-help": "Овозможи корисниците да добиваат известувања за нивните набљудувани страници ако ги имаат овозможено во нагодувањата.",
        "config-email-auth": "Овозможи потврдување на е-пошта",
index 1325d9d..c271a90 100644 (file)
@@ -52,7 +52,7 @@
        "config-copyright": "=== Opphavsrett og vilkår ===\n\n$1\n\nMediaWiki er fri programvare; du kan redistribuere det og/eller modifisere det under betingelsene i GNU General Public License som publisert av Free Software Foundation; enten versjon 2 av lisensen, eller (etter eget valg) enhver senere versjon.\n\nDette programmet er distribuert i håp om at det vil være nyttig, men '''uten noen garanti'''; ikke engang implisitt garanti av '''salgbarhet''' eller '''egnethet for et bestemt formål'''.\nSe GNU General Public License for flere detaljer.\n\nDu skal ha mottatt <doclink href=Copying>en kopi av GNU General Public License</doclink> sammen med dette programmet; hvis ikke, skriv til Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA eller [http://www.gnu.org/copyleft/gpl.html les det på nettet].",
        "config-sidebar": "* [https://www.mediawiki.org MediaWiki hjem]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Brukerguide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratorguide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ OSS]\n----\n* <doclink href=Readme>Les meg</doclink>\n* <doclink href=ReleaseNotes>Utgivelsesnotater</doclink>\n* <doclink href=Copying>Kopiering</doclink>\n* <doclink href=UpgradeDoc>Oppgradering</doclink>",
        "config-env-good": "Miljøet har blitt sjekket.\nDu kan installere MediaWiki.",
-       "config-env-bad": "Miljøet har blitt sjekket.\nDu kan installere MediaWiki.",
+       "config-env-bad": "Miljøet har blitt sjekket.\nDu kan ikke installere MediaWiki.",
        "config-env-php": "PHP $1 er installert.",
        "config-env-hhvm": "HHVM $1 er installert.",
        "config-unicode-using-intl": "Bruker [http://pecl.php.net/intl intl PECL-utvidelsen] for Unicode-normalisering.",
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 6661965..b008a22 100644 (file)
@@ -740,8 +740,13 @@ class FormatMetadata extends ContextSource {
 
                                        case 'Software':
                                                if ( is_array( $val ) ) {
-                                                       // if its a software, version array.
-                                                       $val = $this->msg( 'exif-software-version-value', $val[0], $val[1] )->text();
+                                                       if ( count( $val ) > 1 ) {
+                                                               // if its a software, version array.
+                                                               $val = $this->msg( 'exif-software-version-value', $val[0], $val[1] )->text();
+                                                       } else {
+                                                               // https://phabricator.wikimedia.org/T178130
+                                                               $val = $this->exifMsg( $tag, '', $val[0] );
+                                                       }
                                                } else {
                                                        $val = $this->exifMsg( $tag, '', $val );
                                                }
index bc5182c..816f7f7 100644 (file)
@@ -134,7 +134,7 @@ class LinkHolderArray {
                                $maxId = $newKey > $maxId ? $newKey : $maxId;
                        }
                }
-               $texts = preg_replace_callback( '/(<!--LINK \d+:)(\d+)(-->)/',
+               $texts = preg_replace_callback( '/(<!--LINK\'" \d+:)(\d+)(-->)/',
                        [ $this, 'mergeForeignCallback' ], $texts );
 
                # Renumber interwiki links
@@ -143,7 +143,7 @@ class LinkHolderArray {
                        $this->interwikis[$newKey] = $entry;
                        $maxId = $newKey > $maxId ? $newKey : $maxId;
                }
-               $texts = preg_replace_callback( '/(<!--IWLINK )(\d+)(-->)/',
+               $texts = preg_replace_callback( '/(<!--IWLINK\'" )(\d+)(-->)/',
                        [ $this, 'mergeForeignCallback' ], $texts );
 
                # Set the parent link ID to be beyond the highest used ID
@@ -172,7 +172,7 @@ class LinkHolderArray {
                # Internal links
                $pos = 0;
                while ( $pos < strlen( $text ) ) {
-                       if ( !preg_match( '/<!--LINK (\d+):(\d+)-->/',
+                       if ( !preg_match( '/<!--LINK\'" (\d+):(\d+)-->/',
                                $text, $m, PREG_OFFSET_CAPTURE, $pos )
                        ) {
                                break;
@@ -186,7 +186,7 @@ class LinkHolderArray {
                # Interwiki links
                $pos = 0;
                while ( $pos < strlen( $text ) ) {
-                       if ( !preg_match( '/<!--IWLINK (\d+)-->/', $text, $m, PREG_OFFSET_CAPTURE, $pos ) ) {
+                       if ( !preg_match( '/<!--IWLINK\'" (\d+)-->/', $text, $m, PREG_OFFSET_CAPTURE, $pos ) ) {
                                break;
                        }
                        $key = $m[1][0];
@@ -249,12 +249,12 @@ class LinkHolderArray {
                                // Use a globally unique ID to keep the objects mergable
                                $key = $this->parent->nextLinkID();
                                $this->interwikis[$key] = $entry;
-                               $retVal = "<!--IWLINK $key-->{$trail}";
+                               $retVal = "<!--IWLINK'\" $key-->{$trail}";
                        } else {
                                $key = $this->parent->nextLinkID();
                                $ns = $nt->getNamespace();
                                $this->internals[$ns][$key] = $entry;
-                               $retVal = "<!--LINK $ns:$key-->{$trail}";
+                               $retVal = "<!--LINK'\" $ns:$key-->{$trail}";
                        }
                        $this->size++;
                }
@@ -374,7 +374,7 @@ class LinkHolderArray {
                                $title = $entry['title'];
                                $query = isset( $entry['query'] ) ? $entry['query'] : [];
                                $key = "$ns:$index";
-                               $searchkey = "<!--LINK $key-->";
+                               $searchkey = "<!--LINK'\" $key-->";
                                $displayText = $entry['text'];
                                if ( isset( $entry['selflink'] ) ) {
                                        $replacePairs[$searchkey] = Linker::makeSelfLinkObj( $title, $displayText, $query );
@@ -408,7 +408,7 @@ class LinkHolderArray {
 
                # Do the thing
                $text = preg_replace_callback(
-                       '/(<!--LINK .*?-->)/',
+                       '/(<!--LINK\'" .*?-->)/',
                        $replacer->cb(),
                        $text
                );
@@ -437,7 +437,7 @@ class LinkHolderArray {
                $replacer = new HashtableReplacer( $replacePairs, 1 );
 
                $text = preg_replace_callback(
-                       '/<!--IWLINK (.*?)-->/',
+                       '/<!--IWLINK\'" (.*?)-->/',
                        $replacer->cb(),
                        $text );
        }
@@ -612,7 +612,7 @@ class LinkHolderArray {
         */
        public function replaceText( $text ) {
                $text = preg_replace_callback(
-                       '/<!--(LINK|IWLINK) (.*?)-->/',
+                       '/<!--(LINK|IWLINK)\'" (.*?)-->/',
                        [ $this, 'replaceTextCallback' ],
                        $text );
 
index 3548da9..2b03a70 100644 (file)
@@ -3944,7 +3944,7 @@ class Parser {
                        $this->mForceTocPosition = true;
 
                        # Set a placeholder. At the end we'll fill it in with the TOC.
-                       $text = $mw->replace( '<!--MWTOC-->', $text, 1 );
+                       $text = $mw->replace( '<!--MWTOC\'"-->', $text, 1 );
 
                        # Only keep the first one.
                        $text = $mw->replace( '', $text );
@@ -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 );
@@ -4390,7 +4390,7 @@ class Parser {
                $full .= implode( '', $sections );
 
                if ( $this->mForceTocPosition ) {
-                       return str_replace( '<!--MWTOC-->', $toc, $full );
+                       return str_replace( '<!--MWTOC\'"-->', $toc, $full );
                } else {
                        return $full;
                }
@@ -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 6cb56d4..b6d1028 100644 (file)
@@ -1778,7 +1778,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        return true;
                }
 
-               return self::checkStructuredFilterUiEnabled(
+               return static::checkStructuredFilterUiEnabled(
                        $this->getConfig(),
                        $this->getUser()
                );
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 0b0bbc0..f821eff 100644 (file)
@@ -465,11 +465,11 @@ class SpecialUndelete extends SpecialPage {
 
                if ( $isText ) {
                        // source view for textual content
-                       $sourceView = new OOUI\MultilineTextInputWidget( [
-                               'readOnly' => true,
-                               'rows' => 25,
-                               'value' => $content->getNativeData() . "\n"
-                       ] );
+                       $sourceView = Xml::element( 'textarea', [
+                               'readonly' => 'readonly',
+                               'cols' => 80,
+                               'rows' => 25
+                       ], $content->getNativeData() . "\n" );
 
                        $buttonFields[] = new OOUI\ButtonInputWidget( [
                                'type' => 'submit',
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 1c46f4c..008573b 100644 (file)
@@ -288,7 +288,7 @@ class ImageListPager extends TablePager {
 
                        $columnlist = preg_grep( '/^img/', array_keys( $this->getFieldNames() ) );
                        $options = [ 'GROUP BY' => array_merge( [ 'img_user' ], $columnlist ) ];
-                       $join_conds = [ 'oldimage' => [ 'LEFT JOIN', 'oi_name = img_name' ] ];
+                       $join_conds['oldimage'] = [ 'LEFT JOIN', 'oi_name = img_name' ];
                }
 
                return [
diff --git a/includes/templates/AtomHeader.mustache b/includes/templates/AtomHeader.mustache
new file mode 100644 (file)
index 0000000..60ab75e
--- /dev/null
@@ -0,0 +1,8 @@
+<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="{{{language}}}">
+       <id>{{{feedID}}}</id>
+       <title>{{{title}}}</title>
+       <link rel="self" type="application/atom+xml" href="{{{selfUrl}}}"/>
+       <link rel="alternate" type="text/html" href="{{{url}}}"/>
+       <updated>{{{timestamp}}}Z</updated>
+       <subtitle>{{{description}}}</subtitle>
+       <generator>MediaWiki {{{version}}}</generator>
diff --git a/includes/templates/AtomItem.mustache b/includes/templates/AtomItem.mustache
new file mode 100644 (file)
index 0000000..32d2f01
--- /dev/null
@@ -0,0 +1,10 @@
+       <entry>
+               <id>{{{uniqueID}}}</id>
+               <title>{{{title}}}</title>
+               <link rel="alternate" type="{{{mimeType}}}" href="{{{url}}}"/>
+               {{#date}}<updated>{{{.}}}Z</updated>{{/date}}
+
+               <summary type="html">{{{description}}}</summary>
+               {{#author}}<author><name>{{{.}}}</name></author>{{/author}}
+               {{! FIXME: Need to add comments }}
+       </entry>
diff --git a/includes/templates/RSSHeader.mustache b/includes/templates/RSSHeader.mustache
new file mode 100644 (file)
index 0000000..385369d
--- /dev/null
@@ -0,0 +1,8 @@
+<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
+       <channel>
+               <title>{{{title}}}</title>
+               <link>{{{url}}}</link>
+               <description>{{{description}}}</description>
+               <language>{{{language}}}</language>
+               <generator>MediaWiki {{{version}}}</generator>
+               <lastBuildDate>{{{timestamp}}}</lastBuildDate>
diff --git a/includes/templates/RSSItem.mustache b/includes/templates/RSSItem.mustache
new file mode 100644 (file)
index 0000000..d00c100
--- /dev/null
@@ -0,0 +1,9 @@
+               <item>
+                       <title>{{{title}}}</title>
+                       <link>{{{url}}}</link>
+                       <guid{{^permalink}} isPermaLink="false"{{/permalink}}>{{{uniqueID}}}</guid>
+                       <description>{{{description}}}</description>
+                       {{#date}}<pubDate>{{{.}}}</pubDate>{{/date}}
+                       {{#author}}<dc:creator>{{{.}}}</dc:creator>{{/author}}
+                       {{#comments}}<comments>{{{.}}}</comments>{{/comments}}
+               </item>
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 5e45c63..af1e027 100644 (file)
@@ -163,7 +163,7 @@ class FullSearchResultWidget implements SearchResultWidget {
                        : $this->linkRenderer->makeLink( $title, $text ? new HtmlArmor( $text ) : null );
 
                return "<span class='searchalttitle'>" .
-                               $this->specialPage->msg( $msgKey )->rawParams( $inner )->text()
+                               $this->specialPage->msg( $msgKey )->rawParams( $inner )->parse()
                        . "</span>";
        }
 
index 8190442..fa07563 100644 (file)
@@ -51,7 +51,7 @@ class SimpleSearchResultWidget implements SearchResultWidget {
                                "<span class='searchalttitle'>" .
                                        $this->specialSearch->msg( 'search-redirect' )->rawParams(
                                                $this->linkRenderer->makeLink( $redirectTitle, $redirectText )
-                                       )->text() .
+                                       )->parse() .
                                "</span>";
                }
 
index 81564ab..8d3984d 100644 (file)
@@ -3268,7 +3268,7 @@ class Language {
                        }
                }
 
-               return $number;
+               return (string)$number;
        }
 
        /**
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 b28deeb..7751439 100644 (file)
        "newarticle": "(Nuut)",
        "newarticletext": "Hierdie bladsy bestaan nie.\nTik iets in die invoerboks hier onder om 'n nuwe bladsy te skep. Meer inligting is op die [$1 hulpbladsy] beskikbaar.\nAs u per ongeluk hier uitgekom het, gebruik u blaaier se '''terug'''-knoppie.",
        "anontalkpagetext": "----\n<em>Hierdie is die besprekingsblad vir 'n anonieme gebruiker wat nog nie 'n rekening geskep het nie, of wat dit nie gebruik nie.</em>\nDaarom moet ons sy/haar numeriese IP-adres vir identifikasie gebruik.\nSó 'n adres kan deur verskeie gebruikers gedeel word.\nIndien u 'n anonieme gebruiker is wat voel dat ontoepaslike kommentaar teen u gerig is, [[Special:CreateAccount|skep gerus 'n rekening]] of [[Special:UserLogin|meld aan]] om verwarring met ander anonieme gebruikers te voorkom.",
-       "noarticletext": "Hierdie bladsy bevat geen teks nie.\nU kan [[Special:Search/{{PAGENAME}}|vir die bladsytitel in ander bladsye soek]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} die verwante logboeke deursoek]\nof [{{fullurl:{{FULLPAGENAME}}|action=edit}} hierdie bladsy wysig]</span>.",
+       "noarticletext": "Hierdie bladsy bevat geen teks nie.\nU kan [[Special:Search/{{PAGENAME}}|vir die bladsytitel in ander bladsye soek]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} die verwante logboeke deursoek]\nof [{{fullurl:{{FULLPAGENAME}}|action=edit}} hierdie bladsy skep]</span>.",
        "noarticletext-nopermission": "Hierdie bladsy bevat geen teks nie.\nU kan vir die term [[Special:Search/{{PAGENAME}}|in ander bladsye soek]] of\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} die verwante logboeke deursoek]</span>, maar u kan nie die bladsy skep nie.",
        "missing-revision": "Die weergawe #$1 van die bladsy \"{{FULLPAGENAME}} bestaan nie.\n\nDit word meestal veroorsaak deur die volg van 'n verouderde verwysing na 'n bladsy wat verwyder is.\nMeer gegewens kan moontlik in die [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} skraplogboek] gevind word.",
        "userpage-userdoesnotexist": "U is besig om 'n gebruikersblad wat nie bestaan nie te wysig (gebruiker \"<nowiki>$1</nowiki>\"). Maak asseblief seker of u die bladsy wil skep/ wysig.",
        "rcfilters-activefilters": "Aktiewe filters",
        "rcfilters-advancedfilters": "Gevorderde filters",
        "rcfilters-limit-title": "Wysigings om te wys",
+       "rcfilters-limit-and-date-label": "{{PLURAL:$1|wysiging|$1 wysigings}}, $2",
+       "rcfilters-date-popup-title": "Tydperk om te deursoek",
        "rcfilters-days-title": "Afgelope dae",
        "rcfilters-hours-title": "Afgelope ure",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|dag|dae}}",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|uur|ure}}",
        "rcfilters-highlighted-filters-list": "Bekleurklem: $1",
        "rcfilters-quickfilters": "Gestoorde filters",
-       "rcfilters-quickfilters-placeholder-title": "Geen gestoorde skakels",
+       "rcfilters-quickfilters-placeholder-title": "Geen gestoorde filters",
        "rcfilters-quickfilters-placeholder-description": "Om instellings te stoor en later weer te gebruik, kliek op die bladwyser-piktogram in die Aktiewe Filter-gebied onder.",
        "rcfilters-savedqueries-defaultlabel": "Gestoorde filters",
        "rcfilters-savedqueries-rename": "Hernoem",
        "rcfilters-restore-default-filters": "Stel filters terug",
        "rcfilters-clear-all-filters": "Verwyder alle filters",
        "rcfilters-show-new-changes": "Wys nuutste wysigings",
-       "rcfilters-search-placeholder": "Filter onlangse wysigings (blaai of begin tik)",
+       "rcfilters-search-placeholder": "Filter wysigings (blaai of begin tik)",
        "rcfilters-invalid-filter": "Ongeldig filter",
        "rcfilters-empty-filter": "Geen aktiewe filters. Alle wysigings word gewys.",
        "rcfilters-filterlist-title": "Filters",
        "rcfilters-filter-watchlist-notwatched-label": "Nie in dophoulys",
        "rcfilters-filter-watchlist-notwatched-description": "Alles behalwe wysigings aan bladsye op u dophoulys.",
        "rcfilters-filtergroup-watchlistactivity": "Dophoulys-bedrywighede",
+       "rcfilters-filter-watchlistactivity-unseen-label": "Nie-besigtigde wysigings",
+       "rcfilters-filter-watchlistactivity-unseen-description": "Wysigings aan blaaie wat u nog nie sedert die wysiging besoek het nie.",
+       "rcfilters-filter-watchlistactivity-seen-description": "Wysigings aan blaaie wat u reeds sedert die wysiging besoek het.",
        "rcfilters-filtergroup-changetype": "Soort wysiging",
        "rcfilters-filter-pageedits-label": "Bladsywysigings",
        "rcfilters-filter-pageedits-description": "Wysigings aan wiki-inhoud, besprekings en kategoriebeskrywings…",
        "rcfilters-view-tags": "Geëtiketteerde wysigings",
        "rcfilters-view-namespaces-tooltip": "Filtreer resultate volgens naamruimte",
        "rcfilters-view-tags-tooltip": "Filter resultate volgens wysigingsetikette",
+       "rcfilters-liveupdates-button": "Monitor bywerkings",
+       "rcfilters-liveupdates-button-title-off": "Wys nuwe wysigings soos hulle inrol.",
        "rcfilters-preference-label": "Versteek die verbeter weergawe van 'Onlangse wysigings'",
        "rcnotefrom": "{{PLURAL:$5|Wysiging|Wysigings}} sedert <strong>$3 om $4</strong> (maksimum van <strong>$1</strong> word gewys).",
        "rclistfrom": "Vertoon wysigings vanaf $3 $2",
index 4ff5a8e..d49835e 100644 (file)
        "botpasswords-insert-failed": "فشل في إضافة  اسم البوت \"$1\".هل أضيف بالفعل؟",
        "botpasswords-update-failed": "فشل في تحديث اسم بوت \"$1\". هل تم حذفه؟",
        "botpasswords-created-title": "تم إنشاء كلمة سر بوت",
-       "botpasswords-created-body": "تم إنشاء كلمة سر بوت \"$1\" للمستخدم \"$2\".",
+       "botpasswords-created-body": "كلمة سر البوت للبوت \"$1\" الخاص {{GENDER:$2|بالمستخدم|بالمستخدمة}} \"$2\" تم إنشاؤها.",
        "botpasswords-updated-title": "تم تحديث كلمة سر البوت",
-       "botpasswords-updated-body": "كلمة سر البوت \"$1\" للمستخدم \"$2\" تم تحديثها.",
+       "botpasswords-updated-body": "كلمة سر البوت \"$1\" {{GENDER:$2|للمستخدم|للمستخدمة}} \"$2\" تم تحديثها.",
        "botpasswords-deleted-title": "كلمة سر البوت حذفت",
-       "botpasswords-deleted-body": "كلمة سر البوت \"$1\" لمستخدم \"$2\" قد حذفت.",
+       "botpasswords-deleted-body": "كلمة سر البوت \"$1\" {{GENDER:$2|للمستخدم|للمستخدمة}} \"$2\" قد حذفت.",
        "botpasswords-newpassword": "كلمة السر الجديدة لتسجيل الدخول ب <strong>$1</strong> هي <strong>$2</strong>. <em>من فضلك سجل هذه كمرجع في المستقبل .</em><br> (للبوتات القديمة التي تتطلب أن يكون اسم تسجيل الدخول مثل اسم المستخدم النهائي، يمكنك أيضا استخدام <strong>$3</strong> كاسم مستخدم و <strong>$4</strong> ككلمة سر.)",
        "botpasswords-no-provider": "BotPasswordsSessionProvider غير متاح.",
        "botpasswords-restriction-failed": "قيود كلمة مرور البوت تمنع هذا الولوج.",
        "recentchangesdays-max": "الحد الأقصى {{PLURAL:$1|أقل من يوم|يوم واحد|يومان|$1 أيام|$1 يوما|$1 يوم}}",
        "recentchangescount": "عدد التعديلات الظاهرة مبدئيا:",
        "prefs-help-recentchangescount": "بما في ذلك أحدث التغييرات وتاريخ الصفحات والسجلات.",
-       "prefs-help-watchlist-token2": "هذا هو المفتاح السري لتغذية الويب لقائمة مراقبتك.\nيمكن لأي شخص يعرفه أن يقرأ قائمة مراقبتك، ولذا لا تتشاركه مع أحد. [[Special:ResetTokens|انقر هنا إذا أردت إعادة ضبطه]].",
+       "prefs-help-watchlist-token2": "هذا هو المفتاح السري لتغذية الويب لقائمة مراقبتك.\nيمكن لأي شخص يعرفه أن يقرأ قائمة مراقبتك، ولذا لا تتشاركه مع أحد.\nإذا احتجت، [[Special:ResetTokens|يمكنك إعادة ضبطه]].",
        "savedprefs": "تم حفظ تفضيلاتك.",
        "savedrights": "حُفظت المجموعات الجديدة {{GENDER:$1|للمستخدم|للمستخدمة}} $1.",
        "timezonelegend": "المنطقة الزمنية:",
        "timezoneregion-indian": "المحيط الهندي",
        "timezoneregion-pacific": "المحيط الهادي",
        "allowemail": "اسمح للمستخدمين الآخرين بإرسال بريد إلكتروني إلي",
+       "email-allow-new-users-label": "اسمح بالبريد الإلكتروني من المستخدمين الجدد تمامًا",
        "email-blacklist-label": "امنع هؤلاء المستخدمين من إرسال بريد إلكتروني لي:",
        "prefs-searchoptions": "البحث",
        "prefs-namespaces": "أسماء النطاقات",
        "recentchanges-noresult": "لا توجد تغييرات خلال الفترة المحددة تطابق هذه المعايير.",
        "recentchanges-timeout": "البحث انتهى بدون نتائج. ربما تحب تجربة مدخلات بحث مختلفة.",
        "recentchanges-network": "نتيجة لخطأ تقني، لم يمكن تحميل أي نتائج. من فضلك حاول إعادة تحديث الصفحة.",
+       "recentchanges-notargetpage": "أدخل اسم صفحة بالأعلى لرؤية التغييرات المرتبطة بهذه الصفحة.",
        "recentchanges-feed-description": "تابع أحدث التغييرات للويكي عبر هذه التلقيمة.",
        "recentchanges-label-newpage": "أنشأ هذا التعديل صفحة جديدة",
        "recentchanges-label-minor": "هذا تعديل طفيف",
        "rcfilters-days-title": "عدد الأيام الأخيرة",
        "rcfilters-hours-title": "عدد الساعات الأخيرة",
        "rcfilters-days-show-days": "{{PLURAL:$1|يوما واحدا|يومان|$1 أيام|$1 يوما}}",
-       "rcfilters-days-show-hours": "{{PLURAL:$1|ساعة واحدة|ساعتان|$1 ساعات|$1 ساعة}}",
+       "rcfilters-days-show-hours": "{{PLURAL:$1||ساعة واحدة|ساعتان|$1 ساعات|$1 ساعة}}",
        "rcfilters-highlighted-filters-list": "معلمة: $1",
        "rcfilters-quickfilters": "المرشحات المحفوظة",
        "rcfilters-quickfilters-placeholder-title": "لا مرشحات تم حفظها بعد",
        "rcfilters-watchlist-showupdated": "التغييرات للصفحات التي لم تزرها منذ حدوث التغييرات تكون <strong>بالخط العريض</strong>، مع علامات صلبة.",
        "rcfilters-preference-label": "أخف النسخة المحسنة من أحدث التغييرات",
        "rcfilters-preference-help": "يسترجع عملية إعادة تصميم الواجهة لعام 2017 وكل الأدوات التي أضيفت منذ ذلك الوقت.",
-       "rcfilters-filter-showlinkedto-label": "أظهر التغييرات في الصفحات الموصولة بصفحة:",
-       "rcfilters-target-page-placeholder": "اختر صفحة",
+       "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>$2</strong> (إلى <strong>$1</strong> معروضة).",
        "rclistfromreset": "إعادة ضبط خيار التاريخ",
        "rclistfrom": "أظهر التغييرات بدء من $3 $2",
        "recentchangeslinked-feed": "تغييرات ذات علاقة",
        "recentchangeslinked-toolbox": "تغييرات ذات علاقة",
        "recentchangeslinked-title": "التغييرات المرتبطة بصفحة «$1»",
-       "recentchangeslinked-summary": "هذه قائمة بالتغييرات التي تمت حديثاً للصفحات الموصولة من صفحة معينة (أو إلى الأعضاء ضمن تصنيف معين).\nالصفحات في [[Special:Watchlist|قائمة مراقبتك]] '''عريضة'''",
+       "recentchangeslinked-summary": "أدخل اسم صفحة لرؤية التغييرات في الصفحات الموصولة من أو إلى تلك الصفحة. (لرؤية أعضاء تصنيف، أدخل تصنيف:الاسم الخاص بالتصنيف). التغييرات في الصفحات في [[Special:Watchlist|قائمة مراقبتك]] <strong>عريضة</strong>.",
        "recentchangeslinked-page": "اسم الصفحة:",
        "recentchangeslinked-to": "أظهر التغييرات للصفحات الموصولة للصفحة المعطاة عوضاً عن ذلك",
        "recentchanges-page-added-to-category": "[[:$1]] أضيفت إلى التصنيف",
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 c1d9294..379c774 100644 (file)
        "mergehistory-from": "Mənbə səhifəsi:",
        "mergehistory-into": "Hədəf səhifəsi:",
        "mergehistory-list": "Birləşdirilə bilən redaktə keçmişi",
+       "mergehistory-merge": "[[:$1]] məqaləsindəki aşağıdakı redaktələr [[:$2]] məqaləsinə birləşdirilə bilər.\nRadio düymələrindən istifadə edərək göstərilən tarixdəki və ya daha əvvəlki redaktələri birləşdirin.\nNəzərə alın ki, naviqasiya keçidlərindən istifadə etməyiniz bu sütunu poza bilər.",
        "mergehistory-go": "Birləşdirilə bilən redaktələri göstər",
        "mergehistory-submit": "Qarışıq düzəlişlər",
        "mergehistory-empty": "Birləşdiriləcək redaktələr tapılmamışdır.",
index a0a5bcc..092647e 100644 (file)
        "timezoneregion-indian": "Індыйскі акіян",
        "timezoneregion-pacific": "Ціхі акіян",
        "allowemail": "Дазволіць іншым удзельнікам і ўдзельніцам дасылаць мне лісты электроннай поштай",
+       "email-allow-new-users-label": "Дазволіць лісты электроннай пошты ад зусім новых удзельнікаў",
        "email-blacklist-label": "Забараніць гэтым удзельнікам дасылаць мне лісты электроннай поштай:",
        "prefs-searchoptions": "Пошук",
        "prefs-namespaces": "Прасторы назваў",
        "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|меткі]] да асобных вэрсіяў і запісаў у журнале падзеяў",
        "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": "Адкатвае рэдызайн інтэрфэйсу 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",
        "recentchangeslinked-feed": "Зьвязаныя праўкі",
        "recentchangeslinked-toolbox": "Зьвязаныя праўкі",
        "recentchangeslinked-title": "Зьвязаныя праўкі для «$1»",
-       "recentchangeslinked-summary": "Ð\93Ñ\8dÑ\82а Ñ\81Ñ\8cпÑ\96Ñ\81 Ð°Ð¿Ð¾Ñ\88нÑ\96Ñ\85 Ð·Ñ\8cменаÑ\9e Ñ\81Ñ\82аÑ\80онак, Ð½Ð° Ñ\8fкÑ\96Ñ\8f Ñ\81паÑ\81Ñ\8bлаеÑ\86Ñ\86а Ð°Ð·Ð½Ð°Ñ\87анаÑ\8f Ñ\81Ñ\82аÑ\80онка (Ñ\86Ñ\96 Ñ\9eÑ\81Ñ\96Ñ\85 Ñ\81Ñ\82аÑ\80онак, Ñ\8fкÑ\96Ñ\8f Ð½Ð°Ð»ÐµÐ¶Ð°Ñ\86Ñ\8c Ð°Ð·Ð½Ð°Ñ\87анай ÐºÐ°Ñ\82Ñ\8dгоÑ\80Ñ\8bÑ\96).\nСÑ\82аÑ\80онкÑ\96 Ð· [[Special:Watchlist|Ð\92ашага сьпісу назіраньня]] пазначаныя <strong>тоўстым шрыфтам</strong>.",
+       "recentchangeslinked-summary": "УвÑ\8fдзÑ\96Ñ\86е Ð½Ð°Ð·Ð²Ñ\83 Ñ\81Ñ\82аÑ\80онкÑ\96, ÐºÐ°Ð± Ð¿Ð°Ð±Ð°Ñ\87Ñ\8bÑ\86Ñ\8c Ð·Ñ\8cменÑ\8b Ñ\81Ñ\82аÑ\80онак, Ð½Ð° Ñ\8fкÑ\96Ñ\8f Ñ\8fна Ñ\81паÑ\81Ñ\8bлаеÑ\86Ñ\86а Ð°Ð±Ð¾ Ñ\8fкÑ\96Ñ\8f Ñ\81паÑ\81Ñ\8bлаÑ\8eÑ\86Ñ\86а Ð½Ð° Ñ\8fе (каб Ð¿Ð°Ð±Ð°Ñ\87Ñ\8bÑ\86Ñ\8c Ñ\81Ñ\82аÑ\80онкÑ\96 Ð· ÐºÐ°Ñ\82Ñ\8dгоÑ\80Ñ\8bÑ\96, Ñ\83вÑ\8fдзÑ\96Ñ\86е Ð\9aаÑ\82Ñ\8dгоÑ\80Ñ\8bÑ\8f\9dазва). Ð\97Ñ\8cменÑ\8b Ñ\81Ñ\82аÑ\80онак Ð· [[Special:Watchlist|вашага сьпісу назіраньня]] пазначаныя <strong>тоўстым шрыфтам</strong>.",
        "recentchangeslinked-page": "Назва старонкі:",
        "recentchangeslinked-to": "Замест гэтага паказваць зьмены на старонках, што спасылаюцца на гэтую старонку",
        "recentchanges-page-added-to-category": "[[:$1]] дададзеная да катэгорыі",
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 fad0987..e3d1c4b 100644 (file)
        "nosuchusershort": "Не съществува потребител с името „$1“.\nПроверете изписването.",
        "nouserspecified": "Необходимо е да се посочи потребителско име.",
        "login-userblocked": "Този потребител е блокиран. Влизането в системата не е позволено.",
-       "wrongpassword": "Ð\92Ñ\8aведенаÑ\82а Ð¿Ð°Ñ\80ола Ðµ Ð½ÐµÐ²Ð°Ð»Ð¸Ð´Ð½а.\nОпитайте отново.",
+       "wrongpassword": "Ð\9dавалидно Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82елÑ\81ко Ð¸Ð¼Ðµ Ð¸/или Ð¿Ð°Ñ\80ола.\nОпитайте отново.",
        "wrongpasswordempty": "Не е въведена парола.\nОпитайте отново.",
        "passwordtooshort": "Необходимо е паролата да съдържа поне {{PLURAL:$1|1 знак|$1 знака}}.",
        "passwordtoolong": "Паролата не може да бъде по-дългa от {{PLURAL:$1|1 знак|$1 знака}}.",
        "botpasswords-insert-failed": "Неуспешно добавяне на име на бота „$1“. Дали не е добавяно вече?",
        "botpasswords-update-failed": "Неуспешно подновяване на името на бота „$1“. Дали не е изтрито?",
        "botpasswords-created-title": "Паролата на бота е създадена",
-       "botpasswords-created-body": "Паролата на бот „$1“ на потребител „$2“ е създадена.",
+       "botpasswords-created-body": "Паролата на бот „$1“ на {{GENDER:$2|потребител}} „$2“ е създадена.",
        "botpasswords-updated-title": "Паролата на бота е обновена",
-       "botpasswords-updated-body": "Паролата на бот „$1“ на потребител „$2“ е обновена.",
+       "botpasswords-updated-body": "Паролата на бот „$1“ на потребител {{GENDER:$2|„$2“}} е обновена.",
        "botpasswords-deleted-title": "Паролата на бота е изтрита",
-       "botpasswords-deleted-body": "Паролата на бот „$1“ на потребител „$2“ е премахната.",
+       "botpasswords-deleted-body": "Паролата на бот „$1“ на {{GENDER:$2|потребител}} „$2“ е премахната.",
        "resetpass_forbidden": "Не е разрешена промяна на паролата",
        "resetpass_forbidden-reason": "Паролите не могат да се променят: $1",
        "resetpass-no-info": "За да имате директен достъп до тази страница е необходимо да влезете в системата.",
        "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 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 dd07784..f8eb1cc 100644 (file)
        "group-autoconfirmed-member": "{{GENDER:$1|automatski potvrđen korisnik|automatski potvrđena korisnica}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|administrator|administratorica}}",
-       "group-bureaucrat-member": "{{GENDER:$1|birokrat|birokratica}}",
+       "group-bureaucrat-member": "{{GENDER:$1|birokrat|birokratkinja}}",
        "group-suppress-member": "{{GENDER:$1|skrivač|skrivačica}}",
        "grouppage-user": "{{ns:project}}:Korisnici",
        "grouppage-autoconfirmed": "{{ns:project}}:Automatski potvrđeni korisnici",
index ef5eabd..98ce04f 100644 (file)
        "rcfilters-activefilters": "Filtres actius",
        "rcfilters-advancedfilters": "Filtres avançats",
        "rcfilters-limit-title": "Canvis a mostrar",
+       "rcfilters-date-popup-title": "Període de temps per cercar",
        "rcfilters-days-title": "Darrers dies",
        "rcfilters-hours-title": "Hores recents",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|dia|dies}}",
        "rcfilters-view-namespaces-tooltip": "Filtrar resultats per l'espai de noms",
        "rcfilters-view-tags-tooltip": "Filtrar resultats usant etiquetes d'edició",
        "rcfilters-view-return-to-default-tooltip": "Torna al menú de filtres principal",
+       "rcfilters-view-tags-help-icon-tooltip": "Més informació sobre les modificacions etiquetades",
        "rcfilters-liveupdates-button": "Actualitzacions en viu",
        "rcfilters-liveupdates-button-title-on": "Apaga les actualitzacions en viu",
        "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": "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",
        "uploadstash-errclear": "S'estan netejant els fitxers que han fallat.",
        "uploadstash-refresh": "Actualitza la llista de fitxers",
        "uploadstash-thumbnail": "mostra una miniatura",
+       "uploadstash-bad-path": "El camí no existeix.",
+       "uploadstash-bad-path-invalid": "El camí no és vàlid.",
        "invalid-chunk-offset": "El desplaçament del fragment no és vàlid",
        "img-auth-accessdenied": "Accés denegat",
        "img-auth-nopathinfo": "Hi manca PATH_INFO.\nEl servidor no està configurat per passar aquesta informació.\nPot estar basat en CGI i no ser compatible amb img_auth.\nConsulteu https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization",
index 22b466f..641f216 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 ac6f15f..59e0b37 100644 (file)
        "addwatch": "بیخە سەر لیستی چاودێری",
        "addedwatchtext": "پەڕەی «[[:$1]]» خرایە ژێر [[Special:Watchlist|پێرستی چاودێری]]یەکەت.\nگۆڕانکارییەکانی داھاتووی ئەم پەڕەیە و پەڕەی وتووێژەکەی، لەوێدا پێرست دەکرێت.",
        "removewatch": "لەلیستی چاودێری لایبە",
-       "removedwatchtext": "Ù¾Û\95Ú\95Û\95Û\8c Â«[[:$1]]» Ù\84Û\95 [[Special:Watchlist|Ù\84Û\8cستÛ\8c Ú\86اÙ\88دÛ\8eرÛ\8cÛ\95Ú©Û\95ت]] Ù\84ابرا.",
+       "removedwatchtext": "Ù¾Û\95Ú\95Û\95Û\8c Â«[[:$1]]» Ù\88 Ù\84Û\8eدÙ\88اÙ\86Û\95Ú©Û\95Û\8c Ù\84Û\95 [[Special:Watchlist|Ù\84Û\8cستÛ\8c Ú\86اÙ\88دÛ\8eرÛ\8cÛ\95Ú©Û\95ت]] Ù\84ابراÙ\86.",
        "removedwatchtext-short": "پەڕەی «$1» لە پێڕستی چاودێریت لابرا.",
        "watch": "چاودێری بکە",
        "watchthispage": "ئەم پەڕەیە بخە ژێر چاودێری",
        "tags-actions-header": "کردەوەکان",
        "tags-active-yes": "بەڵێ",
        "tags-active-no": "نا",
+       "tags-source-extension": "پێناسی نەرمامێر",
        "tags-edit": "دەستکاری",
        "tags-delete": "سڕینەوە",
        "tags-activate": "کارپێکردن",
index ba32050..ab589f0 100644 (file)
        "rcfilters-watchlist-showupdated": "Změny stránek, které jste od provedení změn nenavštívili, jsou zobrazeny <strong>tučně</strong> s vyplněnou značkou.",
        "rcfilters-preference-label": "Skrýt vylepšenou verzi posledních změn",
        "rcfilters-preference-help": "Zruší novou podobu rozhraní zavedenou v roce 2017 a všechny nástroje přidané od té doby.",
+       "rcfilters-filter-showlinkedfrom-label": "Zobrazit změny stránek, na které se odkazuje",
+       "rcfilters-filter-showlinkedfrom-option-label": "Zobrazit změny stránek odkazovaných <strong>ZE</strong> stránky",
+       "rcfilters-filter-showlinkedto-label": "Zobrazit změny stránek, které sem odkazují",
+       "rcfilters-filter-showlinkedto-option-label": "Zobrazit změny stránek odkazujících <strong>NA</strong> stránku",
+       "rcfilters-target-page-placeholder": "Zadejte název stránky",
        "rcnotefrom": "Níže {{PLURAL:$5|je změna|jsou změny}} od <strong>$3, $4</strong> ({{PLURAL:$1|zobrazena|zobrazeny|zobrazeno}} nejvýše <strong>$1</strong>).",
        "rclistfromreset": "Obnovit výběr data",
        "rclistfrom": "Ukázat nové změny, počínaje od $2, $3",
        "autosumm-blank": "Stránka vyprázdněna",
        "autosumm-replace": "Obsah stránky nahrazen textem „$1“",
        "autoredircomment": "Přesměrování na [[$1]]",
+       "autosumm-removed-redirect": "Zrušeno přesměrování na [[$1]]",
+       "autosumm-changed-redirect-target": "Cíl přesměrování změněn z [[$1]] na [[$2]]",
        "autosumm-new": "Založena nová stránka s textem „$1“",
        "autosumm-newblank": "Založena prázdná stránka",
        "size-bytes": "$1 {{PLURAL:$1|bajt|bajty|bajtů}}",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Značka|Značky}}]]: $2)",
        "tag-mw-contentmodelchange": "změna modelu obsahu",
        "tag-mw-contentmodelchange-description": "Editace, které [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel mění obsah modelu] stránky",
+       "tag-mw-new-redirect": "Nové přesměrování",
+       "tag-mw-new-redirect-description": "Editace, které zakládají nové přesměrování nebo mění stránku na přesměrování",
+       "tag-mw-removed-redirect": "Zrušeno přesměrování",
+       "tag-mw-removed-redirect-description": "Editace, které mění dosavadní přesměrování na nepřesměrování",
+       "tag-mw-changed-redirect-target": "Změněn cíl přesměrování",
+       "tag-mw-changed-redirect-target-description": "Editace, které mění cíl přesměrování",
        "tag-mw-blank": "Vyprázdnění",
        "tag-mw-blank-description": "Editace, které vyprázdní stránku",
        "tag-mw-replace": "Nahrazeno",
+       "tag-mw-replace-description": "Editace, které odstraňují více než 90 % obsahu stránky",
+       "tag-mw-rollback": "Rychlý revert",
        "tags-title": "Značky",
        "tags-intro": "Tato stránka obsahuje seznam značek, kterými může software označovat jednotlivé editace, a jejich významy.",
        "tags-tag": "Název značky",
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 ade8fed..348672e 100644 (file)
@@ -64,7 +64,8 @@
                        "SimmeD",
                        "BoBrandt",
                        "R12ntech",
-                       "Joedalton"
+                       "Joedalton",
+                       "EeveeSylveon"
                ]
        },
        "tog-underline": "Understreg henvisninger:",
        "tag-filter": "[[Special:Tags|Tag]]filter:",
        "tag-filter-submit": "Filtrér",
        "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 0c5c68f..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",
        "recentchanges-noresult": "Keine Änderungen während des angegebenen Zeitraums entsprechen diesen Kriterien.",
        "recentchanges-timeout": "Die Zeit für diese Suche wurde überschritten. Du kannst verschiedene Suchparameter ausprobieren.",
        "recentchanges-network": "Aufgrund eines technischen Fehlers konnten keine Ergebnisse geladen werden. Bitte versuche, die Seite neu zu laden.",
+       "recentchanges-notargetpage": "Gib einen Seitennamen ein, um Änderungen bezüglich dieser Seite zu sehen.",
        "recentchanges-feed-description": "Verfolge mit diesem Feed die letzten Änderungen in {{SITENAME}}.",
        "recentchanges-label-newpage": "Neue Seite",
        "recentchanges-label-minor": "Kleine Änderung",
        "rcfilters-watchlist-showupdated": "Änderungen an Seiten, die du seit ihrem Auftreten nicht besucht hast, sind <strong>fett</strong> markiert.",
        "rcfilters-preference-label": "Die verbesserte Version der Letzten Änderungen ausblenden",
        "rcfilters-preference-help": "Macht die Neugestaltung der Oberfläche aus dem Jahr 2017 und alle seitdem hinzugefügten Werkzeuge wieder rückgängig.",
-       "rcfilters-filter-showlinkedfrom-label": "Änderungen auf Seiten anzeigen, die verlinkt sind von:",
-       "rcfilters-filter-showlinkedfrom-option-label": "Änderungen auf Seiten anzeigen, die VON einer Seite verlinkt sind.",
-       "rcfilters-filter-showlinkedto-label": "Änderungen auf Seiten anzeigen, die verlinkt sind auf:",
-       "rcfilters-filter-showlinkedto-option-label": "Änderungen auf Seiten anzeigen, die AUF eine Seite verlinkt sind.",
-       "rcfilters-target-page-placeholder": "Eine Seite auswählen",
+       "rcfilters-filter-showlinkedfrom-label": "Änderungen auf Seiten anzeigen, die verlinkt sind von",
+       "rcfilters-filter-showlinkedfrom-option-label": "Änderungen auf Seiten anzeigen, die <strong>VON</strong> einer Seite verlinkt sind.",
+       "rcfilters-filter-showlinkedto-label": "Änderungen auf Seiten anzeigen, die verlinkt sind auf",
+       "rcfilters-filter-showlinkedto-option-label": "Änderungen auf Seiten anzeigen, die <strong>AUF</strong> eine Seite verlinkt sind.",
+       "rcfilters-target-page-placeholder": "Einen Seitennamen eingeben",
        "rcnotefrom": "Angezeigt {{PLURAL:$5|wird die Änderung|werden die Änderungen}} seit <strong>$3, $4</strong> (max. <strong>$1</strong> Einträge).",
        "rclistfromreset": "Datumsauswahl zurücksetzen",
        "rclistfrom": "Nur Änderungen seit $3, $2 Uhr zeigen.",
        "recentchangeslinked-feed": "Änderungen an verlinkten Seiten",
        "recentchangeslinked-toolbox": "Änderungen an verlinkten Seiten",
        "recentchangeslinked-title": "Änderungen an Seiten, die von „$1“ verlinkt sind",
-       "recentchangeslinked-summary": "Diese Spezialseite listet die letzten Änderungen an den verlinkten Seiten auf (bzw. an in dieser Kategorie enthaltenen Kategorien). Seiten auf deiner [[Special:Watchlist|Beobachtungsliste]] sind <strong>fett</strong> dargestellt.",
+       "recentchangeslinked-summary": "Gib einen Seitennamen ein, um Änderungen auf Seiten zu sehen, die auf oder von dieser Seite verlinkt sind. Um Mitglieder einer Kategorie zu sehen, gib „Kategorie:''Name der Kategorie''“ ein. Änderungen an Seiten auf [[Special:Watchlist|deiner Beobachtungsliste]] sind <strong>fett</strong> hervorgehoben.",
        "recentchangeslinked-page": "Seite:",
        "recentchangeslinked-to": "Zeige nur Änderungen an Seiten, die auf diese Seite verlinken",
        "recentchanges-page-added-to-category": "[[:$1]] zur Kategorie hinzugefügt",
index 7a84fd8..829f5b0 100644 (file)
        "recentchanges-noresult": "Χωρίς αλλαγές κατά τη διάρκεια της συγκεκριμένης χρονικής περιόδου, με αυτά τα κριτήρια.",
        "recentchanges-timeout": "Ο χρόνος της αναζήτησης τελείωσε. Μπορεί να θέλετε να δοκιμάσετε διαφορετικές παραμέτρους αναζήτησης.",
        "recentchanges-network": "Λόγω ενός τεχνικού λάθους, δεν μπόρεσαν να προβληθούν τα αποτελέσματα. Παρακαλώ προσπαθήστε να ανανεώσετε την σελίδα.",
+       "recentchanges-notargetpage": "Ορίστε το όνομα σελίδας παραπάνω για να δείτε τις αλλαγές σχετικά με αυτή την σελίδα.",
        "recentchanges-feed-description": "Παρακολούθηση των πιο πρόσφατων αλλαγών στο wiki σε αυτή τη ροή.",
        "recentchanges-label-newpage": "Αυτή η επεξεργασία δημιούργησε μια νέα σελίδα",
        "recentchanges-label-minor": "Αυτή είναι μια μικροεπεξεργασία",
        "rcfilters-activefilters": "Ενεργά φίλτρα",
        "rcfilters-advancedfilters": "Σύνθετα Φίλτρα",
        "rcfilters-limit-title": "Αλλαγές προς εμφάνιση",
+       "rcfilters-limit-and-date-label": "{{PLURAL:$1|αλλαγή|$1 αλλαγές}}, $2",
        "rcfilters-date-popup-title": "Χρονική περίοδος αναζήτησης",
        "rcfilters-days-title": "Πρόσφατες ημέρες",
        "rcfilters-hours-title": "Πρόσφατες ώρες",
        "rcfilters-filter-watchlist-watched-label": "Στην λίστα παρακολούθησης",
        "rcfilters-filter-watchlist-watched-description": "Αλλαγές σελίδων στην λίστα παρακολούθησης σας",
        "rcfilters-filter-watchlist-watchednew-label": "Νέες αλλαγές λίστας παρακολούθησης",
+       "rcfilters-filter-watchlist-notwatched-label": "Εκτός λίστας παρακολούθησης",
+       "rcfilters-filter-watchlist-notwatched-description": "Τα πάντα εκτός από τις αλλαγές των σελίδων στην λίστα παρακολούθησης σας.",
+       "rcfilters-filtergroup-watchlistactivity": "Δραστηριότητα λίστας παρακολούθησης",
+       "rcfilters-filter-watchlistactivity-unseen-label": "Μη ελεγμένες αλλαγές",
+       "rcfilters-filter-watchlistactivity-seen-label": "Ελεγμένες αλλαγές",
        "rcfilters-filtergroup-changetype": "Τύπος αλλαγής",
        "rcfilters-filter-pageedits-label": "Επεξεργασίες σελίδων",
        "rcfilters-filter-pageedits-description": "Επεξεργασίες σε περιεχόμενο του wiki, συζητήσεις, περιγραφές κατηγοριών…",
        "rcfilters-filter-categorization-description": "Καταγραφές σελίδων που προστίθενται ή αφαιρούνται από κατηγορίες.",
        "rcfilters-filter-logactions-label": "Καταγραφόμενες ενέργειες",
        "rcfilters-filter-logactions-description": "Διαχειριστικές ενέργειες, δημιουργίες λογαριασμών, διαγραφές σελίδων, ανεβάσματα αρχείων…",
+       "rcfilters-filtergroup-lastRevision": "Πρόσφατες αναθεωρήσεις",
+       "rcfilters-filter-lastrevision-label": "Τρέχουσα αναθεώρηση",
+       "rcfilters-filter-lastrevision-description": "Μόνο η πλέον πρόσφατη αλλαγή σε σελίδα.",
+       "rcfilters-filter-previousrevision-label": "Μη πρόσφατη αναθεώρηση",
+       "rcfilters-filter-previousrevision-description": "Όλες οι αλλαγές που δεν αποτελούν την \"πρόσφατη αναθεώρηση\"",
        "rcfilters-exclude-button-off": "Εξαίρεση επιλεγμένων",
        "rcfilters-view-tags": "Επεξεργασίες με ετικέτες",
        "rcfilters-view-namespaces-tooltip": "Φιλτράρισμα αποτελεσμάτων κατά ονοματοχώρο",
        "statistics-edits-average": "Μέσος όρος επεξεργασιών ανά σελίδα",
        "statistics-users": "Εγγεγραμμένοι [[Special:ListUsers|χρήστες]]",
        "statistics-users-active": "Ενεργοί χρήστες",
-       "statistics-users-active-desc": "ΧÏ\81ήÏ\83Ï\84εÏ\82 Ï\80οÏ\85 Î­Ï\87οÏ\85ν ÎºÎ¬Î½ÎµÎ¹ ÎºÎ¬Ï\80οια ÎµÏ\80εξεÏ\81γαÏ\83ία Î¼Î­Ï\83α Ï\83ε {{PLURAL:$1|μέÏ\81α|$1 μέρες}}",
+       "statistics-users-active-desc": "ΧÏ\81ήÏ\83Ï\84εÏ\82 Ï\80οÏ\85 Î­Ï\87οÏ\85ν ÎºÎ¬Î½ÎµÎ¹ ÎºÎ¬Ï\80οια ÎµÏ\80εξεÏ\81γαÏ\83ία Î¼Î­Ï\83α Ï\83ε {{PLURAL:$1|ημέÏ\81α|$1 Î·μέρες}}",
        "pageswithprop": "Σελίδες με ιδιότητα σελίδας",
        "pageswithprop-legend": "Σελίδες με ιδιότητα σελίδας",
        "pageswithprop-text": "Αυτή η σελίδα ταξινομεί σελίδες που χρησιμοποιούν μια συγκεκριμένη ιδιότητα σελίδας.",
        "listusers-noresult": "Δεν βρέθηκε χρήστης.",
        "listusers-blocked": "(υπό φραγή)",
        "activeusers": "Κατάλογος ενεργών χρηστών",
-       "activeusers-intro": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± Î»Î¯Ï\83Ï\84α Î±Ï\80Ï\8c Ï\87Ï\81ήÏ\83Ï\84εÏ\82 Ï\80οÏ\85 ÎµÎ¯Ï\87αν ÎºÎ¬Ï\80οιοÏ\85 ÎµÎ¯Î´Î¿Ï\85Ï\82 Î´Ï\81αÏ\83Ï\84ηÏ\81ιÏ\8cÏ\84ηÏ\84α {{PLURAL:$1|Ï\84ην Ï\84ελεÏ\85Ï\84αία $1 Î¼Î­Ï\81α|Ï\84ιÏ\82 Ï\84ελεÏ\85Ï\84αίεÏ\82 $1 μέρες}}.",
-       "activeusers-count": "$1 {{PLURAL:$1|ενέÏ\81γεια|ενέÏ\81γειεÏ\82}} {{PLURAL:$3|Ï\84ην Ï\84ελεÏ\85Ï\84αία Î¼Î­Ï\81α|Ï\84ιÏ\82 Ï\84ελεÏ\85Ï\84αίεÏ\82 $3 μέρες}}",
+       "activeusers-intro": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± Î»Î¯Ï\83Ï\84α Î±Ï\80Ï\8c Ï\87Ï\81ήÏ\83Ï\84εÏ\82 Ï\80οÏ\85 ÎµÎ¯Ï\87αν ÎºÎ¬Ï\80οιοÏ\85 ÎµÎ¯Î´Î¿Ï\85Ï\82 Î´Ï\81αÏ\83Ï\84ηÏ\81ιÏ\8cÏ\84ηÏ\84α {{PLURAL:$1|Ï\84ην Ï\84ελεÏ\85Ï\84αία $1 Î·Î¼Î­Ï\81α|Ï\84ιÏ\82 Ï\84ελεÏ\85Ï\84αίεÏ\82 $1 Î·μέρες}}.",
+       "activeusers-count": "$1 {{PLURAL:$1|ενέÏ\81γεια|ενέÏ\81γειεÏ\82}} {{PLURAL:$3|Ï\84ην Ï\84ελεÏ\85Ï\84αία Î·Î¼Î­Ï\81α|Ï\84ιÏ\82 Ï\84ελεÏ\85Ï\84αίεÏ\82 $3 Î·μέρες}}",
        "activeusers-from": "Προβολή χρηστών ξεκινώντας από:",
        "activeusers-noresult": "Δεν βρέθηκε χρήστης.",
        "activeusers-submit": "Προβολή ενεργών χρηστών",
        "enotif_lastdiff": "Δείτε το $1 για να εμφανίσετε αυτή την αλλαγή.",
        "enotif_anon_editor": "ανώνυμος χρήστης $1",
        "enotif_body": "{{GENDER:$WATCHINGUSERNAME|Αγαπητέ|Αγαπητή}} $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nΠεριγραφή επεξεργασίας: $PAGESUMMARY $PAGEMINOREDIT\n\nΕπικοινωνία με το χρήστη που έκανε την επεξεργασία:\nδιεύθυνση ηλεκτρονικής αλληλογραφίας: $PAGEEDITOR_EMAIL\nwiki: $PAGEEDITOR_WIKI\n\nΔεν θα υπάρξουν άλλες ειδοποιήσεις σε περίπτωση περαιτέρω δραστηριότητας αν δεν επισκεφθείτε τη σελίδα έχοντας κάνει σύνδεση. Μπορείτε επίσης να επαναφέρετε την επιλογή ειδοποίησης για όλες τις παρακολουθούμενες σελίδες στη λίστα παρακολούθησής σας.\n\nΦιλικά, \nτο σύστημα ειδοποίησης του ιστοχώρου {{SITENAME}}\n\n--\nΓια να αλλάξετε τις προτιμήσεις των ειδοποιήσεων ηλεκτρονικού ταχυδρομείου, επισκεφτείτε το\n{{canonicalurl:{{#special:Preferences}}}}\n\nΓια να αλλάξετε τις προτιμήσεις της λίστας παρακολούθησής σας, επισκεφτείτε το\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nΓια να διαγράψετε την σελίδα από την λίστα παρακολούθησής σας, επισκεφτείτε το\n$UNWATCHURL\n\nΠαρατηρήσεις και περισσότερη βοήθεια:\n$HELPPAGE",
+       "enotif_minoredit": "Αυτή είναι μικροεπεξεργασία",
        "created": "δημιουργήθηκε",
        "changed": "έχει αλλάξει",
        "deletepage": "Διαγραφή σελίδας",
        "unblocked-id": "Η φραγή του $1 έχει τερματιστεί",
        "unblocked-ip": "Έχει αρθεί η φραγή της [[Special:Contributions/$1|$1]].",
        "blocklist": "Αποκλεισμένοι χρήστες",
+       "autoblocklist-submit": "Αναζήτηση",
        "ipblocklist": "Αποκλεισμένοι χρήστες",
        "ipblocklist-legend": "Εύρεση ενός χρήστη που έχει υποστεί φραγή",
        "blocklist-userblocks": "Απόκρυψη φραγών λογαριασμού",
        "pageinfo-length": "Μήκος σελίδας (σε bytes)",
        "pageinfo-article-id": "Αναγνωριστικό σελίδας",
        "pageinfo-language": "Γλώσσα περιεχομένου σελίδας",
+       "pageinfo-language-change": "αλλαγή",
        "pageinfo-content-model": "Μοντέλο περιεχομένου σελίδας",
        "pageinfo-content-model-change": "αλλαγή",
        "pageinfo-robot-policy": "Ευρετηρίαση από ρομπότ",
        "seconds": "{{PLURAL:$1|$1 δευτερόλεπτο|$1 δευτερόλεπτα}}",
        "minutes": "{{PLURAL:$1|$1 λεπτό|$1 λεπτά}}",
        "hours": "{{PLURAL:$1|$1 ώρα|$1 ώρες}}",
-       "days": "{{PLURAL:$1|$1 Î¼Î­Ï\81α|$1 μέρες}}",
+       "days": "{{PLURAL:$1|$1 Î·Î¼Î­Ï\81α|$1 Î·μέρες}}",
        "weeks": "{{PLURAL:$1|$1 εβδομάδα|$1 εβδομάδες}}",
        "months": "{{PLURAL:$1|$1 μήνας|$1 μήνες}}",
        "years": "{{PLURAL:$1|$1 έτος|$1 έτη}}",
        "tag-filter": "Φίλτρο [[Special:Tags|ετικετών]]:",
        "tag-filter-submit": "Φίλτρο",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Ετικέτα|Ετικέτες}}]]: $2)",
+       "tag-mw-new-redirect": "Νέα ανακατεύθυνση",
+       "tag-mw-blank": "Άδειασμα περιεχομένου σελίδας",
+       "tag-mw-blank-description": "Επεξεργασίες που σβήνουν όλο το περιεχόμενο σελίδας",
+       "tag-mw-replace": "Αντικαταστάθηκε",
+       "tag-mw-replace-description": "Επεξεργασίες που αφαιρούν πάνω από 90% του περιεχομένου της σελίδας",
+       "tag-mw-rollback": "Επαναφορά",
        "tags-title": "Ετικέτες",
        "tags-intro": "Η σελίδα καταγράφει τις ετικέτες, καθώς και το τι σημαίνει η κάθε μία, με τις οποίες το λογισμικό μπορεί να μαρκάρει μία επεξεργασία.",
        "tags-tag": "Όνομα ετικέτας",
        "compare-title-not-exists": "Ο τίτλος που καθορίσατε δεν υπάρχει.",
        "compare-revision-not-exists": "Η αναθεώρηση που καθορίσατε δεν υπάρχει.",
        "diff-form": "μια '''φόρμα'''",
+       "permanentlink": "Σταθερός σύνδεσμος",
+       "permanentlink-revid": "Αναγνωριστικό αναθεώρησης",
        "dberr-problems": "Λυπούμαστε! Αυτός ο ιστότοπος αντιμετωπίζει τεχνικές δυσκολίες.",
        "dberr-again": "Δοκιμάστε να περιμενένετε λίγα λεπτά και να ανανεώσετε.",
        "dberr-info": "(Δεν είναι δυνατή η πρόσβαση στη βάση δεδομένων: $1)",
        "mw-widgets-titleinput-description-redirect": "ανακατεύθυνση στο $1",
        "mw-widgets-categoryselector-add-category-placeholder": "Προσθήκη κατηγορίας...",
        "mw-widgets-usersmultiselect-placeholder": "Προσθήκη περισσότερων...",
+       "date-range-from": "Από ημερομηνία:",
+       "date-range-to": "Έως ημερομηνία:",
        "sessionprovider-generic": "$1 συνεδρίες",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "συνεδρίες με βάση τα cookies",
        "sessionprovider-nocookies": "Τα Cookies μπορούν να απενεργοποιηθούν. Βεβαιωθείτε ότι έχετε ενεργοποιημένα τα cookies και ξεκινήστε πάλι.",
        "log-action-filter-import-upload": "Εισαγωγή μέσω ανεβάσματος XML",
        "log-action-filter-managetags-create": "Δημιουργία ετικέτας",
        "log-action-filter-managetags-delete": "Διαγραφή ετικέττας",
+       "log-action-filter-newusers-autocreate": "Αυτόματη δημιουργία",
        "log-action-filter-protect-protect": "Προστασία",
        "log-action-filter-protect-modify": "Τροποποίηση προστασίας",
        "log-action-filter-protect-unprotect": "Άρση προστασίας",
        "log-action-filter-rights-rights": "Χειροκίνητη αλλαγή",
        "log-action-filter-rights-autopromote": "Αυτόματη αλλαγή",
        "authmanager-create-disabled": "Η δημιουργία λογαριασμού έχει απενεργοποιηθεί.",
+       "authmanager-authplugin-setpass-failed-title": "Η αλλαγή κωδικού πρόσβασης απέτυχε",
+       "authmanager-email-label": "Διεύθυνση ηλ. ταχυδρομείου",
        "authmanager-realname-label": "Πραγματικό όνομα",
        "authmanager-realname-help": "Πραγματικό όνομα του χρήστη",
        "authmanager-provider-temporarypassword": "Προσωρινός κωδικός",
        "credentialsform-account": "Όνομα λογαριασμού:",
        "linkaccounts": "Σύνδεση λογαριασμών",
        "linkaccounts-success-text": "Ο λογαριασμός συνδέθηκε",
-       "linkaccounts-submit": "Σύνδεση λογαριασμών"
+       "linkaccounts-submit": "Σύνδεση λογαριασμών",
+       "revid": "αναθεώρηση $1",
+       "pagedata-bad-title": "Μη έγκυρος τίτλος: $1."
 }
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 54a9c3a..64d134b 100644 (file)
        "timezoneregion-indian": "Océano Índico",
        "timezoneregion-pacific": "Océano Pacífico",
        "allowemail": "Permitir que otros usuarios me envíen mensajes de correo",
+       "email-allow-new-users-label": "Permitir mensajes de correo de usuarios nuevos",
        "email-blacklist-label": "Prohibir a estos usuarios enviarme mensajes de correo:",
        "prefs-searchoptions": "Buscar",
        "prefs-namespaces": "Espacios de nombres",
        "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-activefilters": "Filtros activos",
        "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": "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",
        "tooltip-ca-undelete": "Restaurar las ediciones hechas a esta página antes de que fuese borrada",
        "tooltip-ca-move": "Trasladar esta página",
        "tooltip-ca-watch": "Añadir esta página a tu lista de seguimiento",
-       "tooltip-ca-unwatch": "Borrar esta página de su lista de seguimiento",
+       "tooltip-ca-unwatch": "Quitar esta página de tu lista de seguimiento",
        "tooltip-search": "Buscar en {{SITENAME}}",
        "tooltip-search-go": "Ir a la página con este nombre exacto si existe",
        "tooltip-search-fulltext": "Buscar este texto en las páginas",
index 8136065..ef98e7a 100644 (file)
        "recentchangesdays-max": "Ülemmäär $1 {{PLURAL:$1|päev|päeva}}",
        "recentchangescount": "Mitut redaktsiooni vaikimisi näidata:",
        "prefs-help-recentchangescount": "See käib viimaste muudatuste, lehekülgede ajalugude ja logide kohta.",
-       "prefs-help-watchlist-token2": "#REDIRECT [[MediaWiki:Prefs-help-tokenmanagement/et]]",
+       "prefs-help-watchlist-token2": "See on sinu jälgimisloendi veebivoo salavõti.\nIgaüks, kes seda teab, saab lugeda sinu jälgimisloendit. Seega ära jaga seda.\n[[Special:ResetTokens|Klõpsa siia, kui sul on vaja see lähtestada]].",
        "savedprefs": "Sinu eelistused on salvestatud.",
        "savedrights": "Kasutaja $1 rühmad on salvestatud.",
        "timezonelegend": "Ajavöönd:",
        "recentchanges-noresult": "Selles ajavahemikus pole tehtud neile kriteeriumitele vastavaid muudatusi.",
        "recentchanges-timeout": "See otsing aegus. Võid proovida teisi otsiparameetreid.",
        "recentchanges-network": "Tehnilise tõrke tõttu ei õnnestunud tulemusi laadida. Palun proovi lehekülge värskendada.",
+       "recentchanges-notargetpage": "Sisesta ülal lehekülje pealkiri, et näha selle leheküljega seotud muudatusi.",
        "recentchanges-feed-description": "Jälgi vikisse tehtud viimaseid muudatusi.",
        "recentchanges-label-newpage": "Uus lehekülg",
        "recentchanges-label-minor": "Pisiparandus",
        "rcfilters-group-results-by-page": "Rühmita tulemused lehekülje kaupa",
        "rcfilters-activefilters": "Aktiivsed filtrid",
        "rcfilters-advancedfilters": "Täpsemad filtrid",
-       "rcfilters-limit-title": "Näita nii mitut muudatust",
+       "rcfilters-limit-title": "Näita nii mitut tulemust",
+       "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|muudatus|muudatust}}, $2",
+       "rcfilters-date-popup-title": "Otsitav ajavahemik",
        "rcfilters-days-title": "Viimased päevad",
        "rcfilters-hours-title": "Viimased tunnid",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|päev|päeva}}",
        "rcfilters-watchlist-showupdated": "Muudatused lehekülgedel, mida sa pole pärast muudatuste tegemist külastanud, on <strong>rasvases</strong> kirjas ja tähistatud täidetud punktiga.",
        "rcfilters-preference-label": "Peida viimaste muudatuste täiustatud versioon",
        "rcfilters-preference-help": "Pöörab tagasi 2017. aastast alates tehtud muudatused kujunduses ja lisatud tööriistad.",
+       "rcfilters-filter-showlinkedfrom-label": "Näita muudatusi lehekülgedel, millele viidatakse leheküljelt:",
+       "rcfilters-filter-showlinkedfrom-option-label": "Näita muudatusi lehekülgedel, millele viidatakse <strong>leheküljelt</strong>",
+       "rcfilters-filter-showlinkedto-label": "Näita muudatusi lehekülgedel, millel viidatakse leheküljele:",
+       "rcfilters-filter-showlinkedto-option-label": "Näita muudatusi lehekülgedel, mis viitavad <strong>leheküljele</strong>",
+       "rcfilters-target-page-placeholder": "Sisesta lehekülje pealkiri",
        "rcnotefrom": "Allpool on toodud {{PLURAL:$5|muudatus|muudatused}} alates: <strong>$3, kell $4</strong> (näidatakse kuni <strong>$1</strong> muudatust)",
        "rclistfromreset": "Lähtesta kuupäeva valik",
        "rclistfrom": "Näita muudatusi alates: $3, kell $2",
        "recentchangeslinked-feed": "Seotud muudatused",
        "recentchangeslinked-toolbox": "Seotud muudatused",
        "recentchangeslinked-title": "Leheküljega \"$1\" seotud muudatused",
-       "recentchangeslinked-summary": "Siin on loetletud määratud leheküljelt viidatud (või määratud kategooria) lehekülgedel tehtud viimased muudatused.\nSinu [[Special:Watchlist|jälgimisloendi]] leheküljed on  '''rasvaselt''' esile toodud.",
+       "recentchangeslinked-summary": "Sisesta lehekülje pealkri, et näha muudatusi lehekülgedel, mis viitavad sellele leheküljele, või millele viidatakse sellel leheküljel. Et näha kategooria liikmeid, sisesta \"Kategooria:Kategooria pealkiri\". Sinu [[Special:Watchlist|jälgimisloendi]] leheküljed on  <strong>rasvases kirjas</strong>.",
        "recentchangeslinked-page": "Lehekülje nimi:",
        "recentchangeslinked-to": "Näita hoopis muudatusi lehekülgedel, mis sellele lehele lingivad",
        "recentchanges-page-added-to-category": "kategooriasse lisatud \"[[:$1]]\"",
        "autosumm-blank": "Kustutatud kogu lehekülje sisu",
        "autosumm-replace": "Lehekülg asendatud tekstiga '$1'",
        "autoredircomment": "Ümbersuunamine lehele [[$1]]",
+       "autosumm-removed-redirect": "Eemaldatud ümbersuunamine leheküljele [[$1]]",
+       "autosumm-changed-redirect-target": "Muudetud ümbersuunamise sihtkoht: [[$1]] → [[$2]]",
        "autosumm-new": "Uus lehekülg: '$1'",
        "autosumm-newblank": "Alustatud tühja leheküljega",
        "size-bytes": "$1 {{PLURAL:$1|bait|baiti}}",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Märgis|Märgised}}]]: $2)",
        "tag-mw-contentmodelchange": "sisumudeli muudatus",
        "tag-mw-contentmodelchange-description": "Lehekülje [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel sisumudelit muutvad] redaktsioonid",
+       "tag-mw-new-redirect": "Uus ümbersuunamine",
+       "tag-mw-new-redirect-description": "Muudatused, millega luuakse uus ümbersuunamislehekülg või muudetakse lehekülg ümbersuunamiseks",
+       "tag-mw-removed-redirect": "Ümbersuunamine eemaldatud",
+       "tag-mw-removed-redirect-description": "Muudatused, milles asendatakse ümbersuunamine millegi muuga",
+       "tag-mw-changed-redirect-target": "Ümbersuunamise sihtkoht muudetud",
+       "tag-mw-changed-redirect-target-description": "Muudatused, millega muudetakse ümbersuunamise sihtkoht",
+       "tag-mw-blank": "Tühjendamine",
+       "tag-mw-blank-description": "Muudatused, millega lehekülg tühjendatakse",
+       "tag-mw-replace": "Asendatud",
+       "tag-mw-replace-description": "Muudatused, millega asendatakse lehekülje sisust enam kui 90%",
+       "tag-mw-rollback": "Tühistamine",
+       "tag-mw-rollback-description": "Muudatused, millega eelmised muudatused pööratakse tagasi, kasutades tühistuslinki",
        "tags-title": "Märgised",
        "tags-intro": "See lehekülg loetleb märgised, millega tarkvara võib muudatused märgistada, ja nende kirjeldused.",
        "tags-tag": "Märgise nimi",
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 72084d2..dbc52f6 100644 (file)
        "nosuchusershort": "Käyttäjää nimeltä ”$1” ei ole. Kirjoititko nimen oikein?",
        "nouserspecified": "Käyttäjätunnusta ei ole määritelty.",
        "login-userblocked": "Tämä käyttäjä on estetty. Kirjautuminen ei ole sallittua.",
-       "wrongpassword": "Syöttämäsi salasana ei ole oikein. Ole hyvä ja yritä uudelleen.",
+       "wrongpassword": "Virheellinen käyttäjätunnus tai salasana.\nOle hyvä ja yritä uudelleen.",
        "wrongpasswordempty": "Et voi antaa tyhjää salasanaa.",
        "passwordtooshort": "Salasanan täytyy olla vähintään {{PLURAL:$1|yhden merkin pituinen|$1 merkkiä pitkä}}.",
        "passwordtoolong": "Salasanat saavat olla enintään $1 {{PLURAL:$1|merkin}} pituisia.",
        "rcfilters-group-results-by-page": "Ryhmitä tulokset sivujen mukaan",
        "rcfilters-activefilters": "Aktiiviset suodattimet",
        "rcfilters-advancedfilters": "Kehittyneet suodattimet",
-       "rcfilters-limit-title": "Näytettävät muutokset",
+       "rcfilters-limit-title": "Näytettävät tulokset",
+       "rcfilters-limit-and-date-label": "{{PLURAL:$1|muutos|$1 muutosta}}, $2",
        "rcfilters-days-title": "Viimeisimmät päivät",
        "rcfilters-hours-title": "Viimeisimmät tunnit",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|päivä|päivää}}",
        "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 8fc5db2..b6128e6 100644 (file)
        "views": "Affichages",
        "toolbox": "Outils",
        "tool-link-userrights": "Modifier les groupes de l’utilisat{{GENDER:$1|eur|rice}}",
-       "tool-link-userrights-readonly": "Voir les {{GENDER:$1|groupes utilisateur}}",
-       "tool-link-emailuser": "Envoyer un courriel à {{GENDER:$1|l’utilisateur|l’utilisatrice}}",
+       "tool-link-userrights-readonly": "Voir les groupes de l’utilisat{{GENDER:$1|eur|rice}}",
+       "tool-link-emailuser": "Envoyer un courriel à {{GENDER:$1|cet utilisateur|cette utilisatrice}}",
        "imagepage": "Voir la page du fichier",
        "mediawikipage": "Voir la page du message",
        "templatepage": "Voir la page du modèle",
        "currentevents-url": "Project: Actualités",
        "disclaimers": "Avertissements",
        "disclaimerpage": "Project: Avertissements généraux",
-       "edithelp": "Aide pour l'édition",
+       "edithelp": "Aide pour la modification",
        "helppage-top-gethelp": "Aide",
        "mainpage": "Accueil",
        "mainpage-description": "Accueil",
        "sort-descending": "Tri décroissant",
        "sort-ascending": "Tri croissant",
        "nstab-main": "Page",
-       "nstab-user": "Page {{GENDER:{{ROOTPAGENAME}}|utilisateur|utilisatrice}}",
+       "nstab-user": "Page d’{{GENDER:{{ROOTPAGENAME}}|utilisateur|utilisatrice}}",
        "nstab-media": "Média",
        "nstab-special": "Page spéciale",
        "nstab-project": "À propos",
        "botpasswords-not-exist": "L’{{GENDER:$1|utilisateur|utilisatrice}} « $1 » n’a pas de mot de passe de robot nommé « $2 ».",
        "resetpass_forbidden": "Les mots de passe ne peuvent pas être changés",
        "resetpass_forbidden-reason": "Les mots de passe ne peuvent pas être modifiés : $1",
-       "resetpass-no-info": "Vous devez être connecté pour avoir accès directement à cette page.",
+       "resetpass-no-info": "Vous devez être connecté(e) pour accéder directement à cette page.",
        "resetpass-submit-loggedin": "Changer de mot de passe",
        "resetpass-submit-cancel": "Annuler",
        "resetpass-wrong-oldpass": "Mot de passe actuel ou temporaire invalide.\nVous avez peut-être déjà changé votre mot de passe ou demandé un nouveau mot de passe temporaire.",
        "passwordreset-domain": "Domaine :",
        "passwordreset-email": "Adresse de courriel :",
        "passwordreset-emailtitle": "Détails du compte sur {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Quelqu’un (probablement vous, depuis l’adresse IP $1) a demandé une réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. \nVous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou si vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
-       "passwordreset-emailtext-user": "L’utilisateur $1 sur {{SITENAME}} a demandé une réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. \nVous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou si vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
+       "passwordreset-emailtext-ip": "Quelqu’un (probablement vous, depuis l’adresse IP $1) a demandé une réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte de l’{{GENDER:$2|utilisateur suivant|utilisatrice suivante}} est associé|Les comptes des utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. \nVous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou si vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
+       "passwordreset-emailtext-user": "L’{{GENDER:$1|utilisateur|utilisatrice}} $1 sur {{SITENAME}} a demandé une réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte de l’{{GENDER:$2|utilisateur suivant|utilisatrice suivante}} est associé|Les comptes des utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. \nVous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou si vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
        "passwordreset-emailelement": "Nom d’utilisateur : \n$1\n\nMot de passe temporaire : \n$2",
        "passwordreset-emailsentemail": "Si cette adresse de courriel est associée à votre compte, alors un courriel de réinitialisation de mot de passe sera envoyé.",
        "passwordreset-emailsentusername": "S’il y a une adresse de courriel associée à ce nom d’utilisateur, alors un courriel de réinitialisation de mot de passe sera envoyé.",
        "showpreview": "Prévisualiser",
        "showdiff": "Voir les modifications",
        "blankarticle": "<strong>Attention :</strong> la page que vous créez est vide.\nSi vous cliquez de nouveau sur « $1 », la page sera créée sans aucun contenu.",
-       "anoneditwarning": "<strong>Attention :</strong> vous n’êtes pas connecté. Votre adresse IP sera visible de tout le monde si vous faites des modifications. Si vous <strong>[$1 vous connectez]</strong> ou <strong>[$2 créez un compte]</strong>, vos modifications seront attribuées à votre nom d’utilisateur, avec d'autres avantages.",
-       "anonpreviewwarning": "<em>Vous n’êtes pas connecté{{GENDER:||e}}. Sauvegarder enregistrera votre adresse IP dans l’historique des modifications de la page.</em>",
+       "anoneditwarning": "<strong>Attention :</strong> vous n’êtes pas connecté(e). Votre adresse IP sera visible de tout le monde si vous faites des modifications. Si vous <strong>[$1 vous connectez]</strong> ou <strong>[$2 créez un compte]</strong>, vos modifications seront attribuées à votre propre nom d’utilisateur(rice) et vous aurez d’autres avantages.",
+       "anonpreviewwarning": "<em>Vous n’êtes pas connecté(e). Sauvegarder enregistrera votre adresse IP dans l’historique des modifications de la page.</em>",
        "missingsummary": "<strong>Rappel :</strong> vous n’avez pas encore fourni le résumé de votre modification.\nSi vous cliquez de nouveau sur le bouton « $1 », vos modifications seront sauvegardées sans résumé.",
        "selfredirect": "<strong>Attention :</strong> vous êtes en train de rediriger la page vers elle-même.\nIl se peut que vous ayez spécifié la mauvaise cible pour la redirection, ou que vous modifiez peut-être la mauvaise page.\nSi vous cliquez de nouveau sur « $1 », la redirection sera tout de même créée.",
        "missingcommenttext": "Veuillez entrer un commentaire.",
        "subject-preview": "Aperçu du sujet :",
        "previewerrortext": "Une erreur s’est produite lors de la tentative de prévisualisation de vos modifications.",
        "blockedtitle": "L’utilisateur est bloqué.",
-       "blockedtext": "<strong>Votre compte utilisateur ou votre adresse IP a été bloqué.</strong>\n\nLe blocage a été effectué par $1.\nLa raison invoquée est la suivante : <em>$2</em>.\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7.\n\nVous pouvez contacter $1 ou un autre [[{{MediaWiki:Grouppage-sysop}}|administrateur]] pour en discuter.\nVous ne pouvez utiliser la fonction « {{int:emailuser}} » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été bloquée.\nVotre adresse IP actuelle est $3 et votre identifiant de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.",
-       "autoblockedtext": "Votre adresse IP a été bloquée automatiquement car elle a été utilisée par un autre utilisateur, lui-même bloqué par $1.\nLa raison invoquée est :\n\n:<em>$2:</em>\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7\n\nVous pouvez contacter $1 ou l’un des autres [[{{MediaWiki:Grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.\n\nNotez que vous ne pourrez utiliser la fonctionnalité d’envoi de courriel que si vous avez une adresse de courriel validée dans vos [[Special:Preferences|préférences]] et que cette fonctionnalité n’a pas été désactivée.\n\nVotre adresse IP actuelle est $3, et le numéro de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.",
-       "systemblockedtext": "Votre nom d'utilisateur ou votre adresse IP ont été bloqués par MediaWiki.\nLa raison donnée est la suivante:\n\n:<em>$2</em>\n\n* Le début du blocage: $8\n* Expiration d'un délai de blocage: $6\n* Elément concerné: $7\n\nVotre adresse IP actuelle est de $3.\nVeuillez inclure tous les détails ci-dessus dans chacune des requêtes que vous faites.",
+       "blockedtext": "<strong>Votre compte utilisateur ou votre adresse IP a été bloqué.</strong>\n\nLe blocage a été effectué par $1.\nLa raison invoquée est la suivante : <em>$2</em>.\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7.\n\nVous pouvez contacter $1 ou un autre [[{{MediaWiki:Grouppage-sysop}}|administrateur]] pour en discuter.\nVous ne pouvez utiliser la fonction « {{int:emailuser}} » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été bloquée.\nVotre adresse IP actuelle est $3 et votre identifiant de blocage est $5.\nVeuillez inclure tous les détails ci-dessus dans chacune des requêtes que vous ferez.",
+       "autoblockedtext": "Votre adresse IP a été bloquée automatiquement car elle a été utilisée par un autre utilisateur, lui-même bloqué par $1.\nLa raison invoquée est :\n\n: <em>$2</em>.\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7\n\nVous pouvez contacter $1 ou l’un des autres [[{{MediaWiki:Grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.\n\nNotez que vous ne pourrez utiliser la fonctionnalité d’envoi de courriel que si vous avez une adresse de courriel validée dans vos [[Special:Preferences|préférences]] et que cette fonctionnalité n’a pas été désactivée.\n\nVotre adresse IP actuelle est $3, et le numéro de blocage est $5.\nVeuillez inclure tous les détails ci-dessus dans chacune des requêtes que vous ferez.",
+       "systemblockedtext": "Votre nom d'utilisateur ou votre adresse IP ont été bloqués par MediaWiki.\nLa raison donnée est la suivante:\n\n: <em>$2</em>.\n\n* Le début du blocage: $8\n* Expiration d'un délai de blocage: $6\n* Elément concerné: $7\n\nVotre adresse IP actuelle est de $3.\nVeuillez inclure tous les détails ci-dessus dans chacune des requêtes que vous ferez.",
        "blockednoreason": "aucune raison donnée",
        "whitelistedittext": "Vous devez vous $1 pour avoir la permission de modifier le contenu.",
        "confirmedittext": "Vous devez confirmer votre adresse de courriel avant de modifier les pages.\nVeuillez entrer et valider votre adresse de courriel dans vos [[Special:Preferences|préférences]].",
        "searchprofile-articles-tooltip": "Rechercher dans $1",
        "searchprofile-images-tooltip": "Rechercher des fichiers multimédias",
        "searchprofile-everything-tooltip": "Rechercher dans tout le site (y compris dans les pages de discussion)",
-       "searchprofile-advanced-tooltip": "Chercher dans les espaces de noms clients",
+       "searchprofile-advanced-tooltip": "Chercher dans les espaces de noms personnalisés",
        "search-result-size": "$1 ($2 mot{{PLURAL:$2||s}})",
        "search-result-category-size": "$1 membre{{PLURAL:$1||s}} ($2 sous-catégorie{{PLURAL:$2||s}}, $3 fichier{{PLURAL:$3||s}})",
        "search-redirect": "(redirection depuis $1)",
        "skin-preview": "Prévisualiser",
        "datedefault": "Aucune préférence",
        "prefs-labs": "Fonctionnalités « labs »",
-       "prefs-user-pages": "Pages utilisateur",
+       "prefs-user-pages": "Pages d’utilisateurs",
        "prefs-personal": "Informations personnelles",
        "prefs-rc": "Modifications récentes",
        "prefs-watchlist": "Liste de suivi",
        "prefs-help-recentchangescount": "Ceci inclut les modifications récentes, les pages d'historiques et les journaux.",
        "prefs-help-watchlist-token2": "Voici la clé secrète du flux Web de votre liste de suivi.\nToute personne la connaissant pourra lire votre liste de suivi, ne la communiquez donc pas.\nSi nécessaire, [[Special:ResetTokens|vous pouvez la réinitialiser ici]].",
        "savedprefs": "Les préférences ont été sauvegardées.",
-       "savedrights": "Les droits utilisateur de {{GENDER:$1|$1}} ont été enregistrés.",
+       "savedrights": "Les droits d’utilisat{{GENDER:$1|eur|rice}} de $1 ont été enregistrés.",
        "timezonelegend": "Fuseau horaire :",
        "localtime": "Heure locale :",
        "timezoneuseserverdefault": "Utiliser la valeur par défaut du wiki ($1)",
        "timezoneregion-indian": "Océan indien",
        "timezoneregion-pacific": "Océan pacifique",
        "allowemail": "Autoriser les autres utilisateurs à m'envoyer des courriels",
+       "email-allow-new-users-label": "Autoriser les courriels des utilisateurs marqués comme nouveaux",
        "email-blacklist-label": "Empêcher ces utilisateurs de m'envoyer des courriels :",
        "prefs-searchoptions": "Recherche",
        "prefs-namespaces": "Espaces de noms",
        "userrights-user-editname": "Entrez un nom d'utilisateur :",
        "editusergroup": "Afficher les groupes d’utilisateurs",
        "editinguser": "Modification des droits de l’{{GENDER:$1|utilisateur|utilisatrice}} <strong>[[User:$1|$1]]</strong> $2",
-       "viewinguserrights": "Affichage des droits utilisateur de {{GENDER:$1|l’utilisateur|l’utilisatrice}} <strong>[[User:$1|$1]]</strong> $2",
+       "viewinguserrights": "Affichage des droits d’utilisateur de l’utilisat{{GENDER:$1|eur|rice}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Modifier les groupes de l'utilisat{{GENDER:$1|eur|rice}}",
        "userrights-viewusergroup": "Afficher les groupes de l’utilisat{{GENDER:$1|eur|rice}}",
        "saveusergroups": "Enregistrer les groupes de l’utilisat{{GENDER:$1|eur|rice}}",
        "right-minoredit": "Marquer les modifications comme mineures",
        "right-move": "Renommer des pages",
        "right-move-subpages": "Renommer des pages avec leurs sous-pages",
-       "right-move-rootuserpages": "Renommer la page principale d'un utilisateur",
+       "right-move-rootuserpages": "Renommer la page principale dun utilisateur",
        "right-move-categorypages": "Renommer des pages de catégorie",
        "right-movefile": "Renommer des fichiers",
        "right-suppressredirect": "Ne pas créer de redirection depuis le titre d’origine en renommant les pages",
        "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",
        "recentchanges-noresult": "Aucune modification correspondant à ces critères sur la période indiquée.",
        "recentchanges-timeout": "Cette recherche a dépassé le délai imparti. Vous pouvez vouloir essayer avec des paramètres de recherche différents.",
        "recentchanges-network": "Aucun résultat ne peut être affiché du fait d’une erreur technique. Veuillez actualiser la page.",
+       "recentchanges-notargetpage": "Entrer un nom de page ci-dessus pour voir les modifications relatives à cette page.",
        "recentchanges-feed-description": "Suivez les dernières modifications du wiki dans ce flux.",
        "recentchanges-label-newpage": "Cette modification a créé une nouvelle page",
        "recentchanges-label-minor": "Cette modification est mineure.",
        "rcfilters-watchlist-showupdated": "Les modifications faites aux pages que vous n’avez pas visitées depuis qu’elles ont été modifiées sont en <strong>gras</strong>, avec des balises unies.",
        "rcfilters-preference-label": "Masquer la version améliorée des modifications récentes",
        "rcfilters-preference-help": "Désactive la version 2017 de l'interface ainsi que de tous les outils ajoutés alors et depuis.",
-       "rcfilters-filter-showlinkedfrom-label": "Faites montrer les changements sur pages liees de:",
-       "rcfilters-filter-showlinkedfrom-option-label": "Faites montrer les changements sur pages lies D'une page",
-       "rcfilters-filter-showlinkedto-label": "Afficher des changements sur pages liees (connectees) a:",
-       "rcfilters-filter-showlinkedto-option-label": "Afficher des changements sur pages liees A une page.",
-       "rcfilters-target-page-placeholder": "Selecionner una page",
+       "rcfilters-filter-showlinkedfrom-label": "Montrer les modifications des pages liées depuis",
+       "rcfilters-filter-showlinkedfrom-option-label": "Montrer les modifications des pages liées <strong>DEPUIS</strong> une page",
+       "rcfilters-filter-showlinkedto-label": "Montrer les modifications des pages liées vers",
+       "rcfilters-filter-showlinkedto-option-label": "Montrer les modifications des pages liées <strong>VERS</strong> une page",
+       "rcfilters-target-page-placeholder": "Entrer un nom de page",
        "rcnotefrom": "Ci-dessous {{PLURAL:$5|la modification effectuée|les modifications effectuées}} depuis le <strong>$3, $4</strong> (affichées jusqu’à <strong>$1</strong>).",
        "rclistfromreset": "Réinitialiser la sélection de la date",
        "rclistfrom": "Afficher les nouvelles modifications depuis le $3 à $2",
        "recentchangeslinked-feed": "Suivi des pages liées",
        "recentchangeslinked-toolbox": "Suivi des pages liées",
        "recentchangeslinked-title": "Suivi des pages associées à « $1 »",
-       "recentchangeslinked-summary": "Voici les modifications faites récemment sur des pages liées depuis une page spécifique ou vers des membres d'une catégorie spécifique. \nLes pages de [[Special:Watchlist|votre liste de suivi]] sont <strong>en gras</strong>.",
+       "recentchangeslinked-summary": "Entrer un nom de page pour voir les modifications faites récemment sur des pages liées depuis ou vers cette page (pour voir les membres d’une catégorie, entrez Catégorie:Nom de catégorie). Les modifications des pages de [[Special:Watchlist|votre liste de suivi]] sont <strong>en gras</strong>.",
        "recentchangeslinked-page": "Nom de la page :",
        "recentchangeslinked-to": "Afficher les modifications des pages qui comportent un lien vers la page donnée plutôt que l'inverse",
        "recentchanges-page-added-to-category": "[[:$1]] ajouté à la catégorie",
        "tooltip-invert": "Cochez cette case pour cacher les modifications des pages dans l'espace de noms sélectionné (et l'espace de noms associé si coché)",
        "tooltip-whatlinkshere-invert": "Cochez cette case pour cacher les liens des pages dans l'espace de nom sélectionné.",
        "namespace_association": "Espace de noms associé",
-       "tooltip-namespace_association": "Cochez cette case pour inclure également l'espace de noms de discussion ou du sujet, associé à l'espace de noms sélectionné",
+       "tooltip-namespace_association": "Cochez cette case pour inclure également l’espace de noms de discussion ou du sujet, associé à l’espace de noms sélectionné",
        "blanknamespace": "(Principal)",
        "contributions": "Contributions de l’{{GENDER:$1|utilisateur|utilisatrice}}",
        "contributions-title": "Liste des contributions de l’utilisat{{GENDER:$1|eur|rice|eur}} $1",
        "mycontris": "Contributions",
        "anoncontribs": "Contributions",
        "contribsub2": "Pour {{GENDER:$3|$1}} ($2)",
-       "contributions-userdoesnotexist": "Le compte utilisateur « $1 » n’est pas enregistré.",
+       "contributions-userdoesnotexist": "Le compte d’utilisateur « $1 » n’est pas enregistré.",
        "nocontribs": "Aucune modification correspondant à ces critères n'a été trouvée.",
        "uctop": "(actuelle)",
        "month": "À partir du mois (et précédents) :",
        "sp-contributions-uploads": "imports",
        "sp-contributions-logs": "journaux",
        "sp-contributions-talk": "discuter",
-       "sp-contributions-userrights": "gérer les droits {{GENDER:$1|utilisateur}}",
+       "sp-contributions-userrights": "gérer les droits d’utilisat{{GENDER:$1|eur|rice}}",
        "sp-contributions-blocked-notice": "Cet utilisateur est actuellement bloqué. \nLa dernière entrée du journal des blocages est affichée ci-dessous pour référence :",
        "sp-contributions-blocked-notice-anon": "Cette adresse IP est actuellement bloquée.\nLa dernière entrée du journal des blocages est affichée ci-dessous pour référence :",
        "sp-contributions-search": "Rechercher les contributions",
        "ipbother": "Autre durée :",
        "ipboptions": "2 heures:2 hours,1 jour:1 day,3 jours:3 days,1 semaine:1 week,2 semaines:2 weeks,1 mois:1 month,3 mois:3 months,6 mois:6 months,1 an:1 year,indéfiniment:infinite",
        "ipbhidename": "Masquer le nom d'utilisateur des modifications et des listes",
-       "ipbwatchuser": "Suivre les pages utilisateur et de discussion de cet utilisateur",
+       "ipbwatchuser": "Suivre les pages d’utilisateur et de discussion de cet utilisateur",
        "ipb-disableusertalk": "Empêcher l'utilisateur de modifier sa page de discussion pendant le blocage",
        "ipb-change-block": "Bloquer à nouveau l'utilisateur avec ces paramètres",
        "ipb-confirm": "Confirmer le blocage",
        "movepagetalktext": "Si vous cochez cette case, la page de discussion associée sera automatiquement renommée, à moins qu’une page de discussion non vide existe déjà sous ce nouveau nom.\n\nDans ce cas, vous devrez renommer ou fusionner cette page de discussion manuellement si vous le désirez.",
        "moveuserpage-warning": "<strong>Attention :</strong> Vous êtes sur le point de renommer une page d’utilisateur. Veuillez noter que seule la page sera renommée et que l’utilisateur <em>ne</em> sera <em>pas</em> renommé.",
        "movecategorypage-warning": "<strong>Avertissement :</strong> Vous êtes sur le point de renommer une page de catégorie. Veuillez noter que seule la catégorie sera renommée et <em>qu’aucune</em> des pages de l’ancienne catégorie ne sera transférée dans la nouvelle.",
-       "movenologintext": "Pour pouvoir renommer une page, vous devez être [[Special:UserLogin|identifié{{GENDER:||e}}]] avec un compte utilisateur enregistré.",
+       "movenologintext": "Pour pouvoir renommer une page, vous devez être [[Special:UserLogin|identifié{{GENDER:||e}}]] avec un compte d’utilisateur enregistré.",
        "movenotallowed": "Vous n'avez pas la permission de renommer les pages.",
        "movenotallowedfile": "Vous n'avez pas la permission de renommer les fichiers.",
        "cant-move-user-page": "Vous n’avez pas la permission de renommer les pages principales des utilisateurs (sauf les sous-pages).",
-       "cant-move-to-user-page": "Vous n’avez pas la permission de renommer une page vers une page utilisateur (mais vous pouvez le faire vers une sous-page utilisateur).",
+       "cant-move-to-user-page": "Vous n’avez pas la permission de renommer une page vers une page d’utilisateur (mais vous pouvez le faire vers une sous-page d’utilisateur).",
        "cant-move-category-page": "Vous n'avez pas la permission de renommer les pages de catégorie.",
        "cant-move-to-category-page": "Vous n'avez pas la permission de renommer une page vers une page de catégorie.",
        "cant-move-subpages": "Vous n’avez pas le droit de renommer des sous-pages.",
        "javascripttest": "Test de JavaScript",
        "javascripttest-pagetext-unknownaction": "Action « $1 » inconnue.",
        "javascripttest-qunit-intro": "Voir [$1 la documentation de test] sur mediawiki.org.",
-       "tooltip-pt-userpage": "Votre page {{GENDER:|utilisateur|utilisatrice}}",
+       "tooltip-pt-userpage": "Votre page d’{{GENDER:|utilisateur|utilisatrice}}",
        "tooltip-pt-anonuserpage": "La page utilisateur avec l'adresse IP de laquelle vous contribuez",
-       "tooltip-pt-mytalk": "{{GENDER:|Votre}} page de discussion",
+       "tooltip-pt-mytalk": "Votre page de discussion",
        "tooltip-pt-anontalk": "La page de discussion pour les contributions depuis cette adresse IP",
        "tooltip-pt-preferences": "{{GENDER:|Vos}} préférences",
        "tooltip-pt-watchlist": "Une liste des pages dont vous suivez les modifications",
        "tooltip-t-print": "Version imprimable de cette page",
        "tooltip-t-permalink": "Adresse permanente de cette version de la page",
        "tooltip-ca-nstab-main": "Voir le contenu de la page",
-       "tooltip-ca-nstab-user": "Voir la page utilisateur",
+       "tooltip-ca-nstab-user": "Voir la page d’utilisateur",
        "tooltip-ca-nstab-media": "Voir la page du média",
        "tooltip-ca-nstab-special": "Ceci est une page spéciale, et elle ne peut pas être modifiée.",
        "tooltip-ca-nstab-project": "Voir la page du projet",
        "nocredits": "Il n'y a pas d'informations d'attribution disponibles pour cette page.",
        "spamprotectiontitle": "Filtre de protection anti-pourriels",
        "spamprotectiontext": "La page que vous avez voulu sauvegarder a été bloquée par le filtre anti-pourriels. \nCeci est probablement dû à l’introduction d’un lien vers un site externe apparaissant sur la liste noire.",
-       "spamprotectionmatch": "Le texte suivant a déclenché notre filtre de protection anti-pourriels: $1",
+       "spamprotectionmatch": "Le texte suivant a déclenché notre filtre de protection anti-pourriels : $1",
        "spambot_username": "Nettoyage de pourriels par MediaWiki",
        "spam_reverting": "Rétablissement de la dernière version ne contenant pas de lien vers $1",
        "spam_blanking": "Toutes les versions contenant des liens vers $1 sont blanchies",
        "svg-long-desc": "Fichier SVG, résolution de $1 × $2 pixels, taille : $3",
        "svg-long-desc-animated": "Fichier SVG animé, résolution $1 × $2 pixels, taille du fichier : $3",
        "svg-long-error": "Fichier SVG non valide : $1",
-       "show-big-image": "Fichier d'origine",
+       "show-big-image": "Fichier dorigine",
        "show-big-image-preview": "Taille de cet aperçu : $1.",
        "show-big-image-preview-differ": "Taille de cet aperçu $3 de ce fichier $2 : $1.",
        "show-big-image-other": "{{PLURAL:$2|Autre résolution|Autres résolutions}} : $1.",
        "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",
        "htmlform-title-not-exists": "$1 n’existe pas",
        "htmlform-user-not-exists": "<strong>$1</strong> n’existe pas.",
        "htmlform-user-not-valid": "<strong>$1</strong> n’est pas un nom d’utilisateur valide.",
-       "logentry-delete-delete": "$1 {{GENDER:$2|a supprimé}} la page $3",
+       "logentry-delete-delete": "$1 a supprimé la page $3",
        "logentry-delete-delete_redir": "$1 a {{GENDER:$2|supprimé}} la redirection vers $3 par écrasement",
-       "logentry-delete-restore": "$1 {{GENDER:$2|a restauré}} la page $3 ($4)",
+       "logentry-delete-restore": "$1 a restauré la page $3 ($4)",
        "logentry-delete-restore-nocount": "$1 {{GENDER:$2|a restauré}} la page $3",
        "restore-count-revisions": "{{PLURAL:$1|1 révision|$1 révisions}}",
        "restore-count-files": "{{PLURAL:$1|1 fichier|$1 fichiers}}",
        "logentry-import-interwiki": "$1 {{GENDER:$2|a importé}} $3 depuis un autre wiki",
        "logentry-import-interwiki-details": "$1 {{GENDER:$2|a importé}} $3 depuis $5 ($4 {{PLURAL:$4|révision|révisions}})",
        "logentry-merge-merge": "$1 {{GENDER:$2|a fusionné}} $3 en $4 (révisions jusqu’à $5)",
-       "logentry-move-move": "$1 {{GENDER:$2|a déplacé}} la page $3 vers $4",
+       "logentry-move-move": "$1 a déplacé la page $3 vers $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|a déplacé}} la page $3 vers $4 sans laisser de redirection",
        "logentry-move-move_redir": "$1 {{GENDER:$2|a déplacé}} la page $3 vers $4 par-dessus une redirection",
        "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|a déplacé}} la page $3 vers $4 par-dessus une redirection sans laisser de redirection",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|a marqué}} la révision $4 de la page $3 comme relue",
        "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|a automatiquement marqué}} la révision $4 de la page $3 comme relue",
-       "logentry-newusers-newusers": "Le compte utilisateur $1 {{GENDER:$2|a été créé}}",
-       "logentry-newusers-create": "Le compte utilisateur $1 {{GENDER:$2|a été créé}}",
-       "logentry-newusers-create2": "Le compte utilisateur $3 {{GENDER:$2|a été créé}} par $1",
+       "logentry-newusers-newusers": "Le compte de l’utilisat{{GENDER:$2|eur|rice}} $1 a été créé",
+       "logentry-newusers-create": "Le compte d’utilisat{{GENDER:$4|eur|rice}} $1 a été créé",
+       "logentry-newusers-create2": "Le compte utilisateur $3 a été créé par $1",
        "logentry-newusers-byemail": "Le compte utilisateur $3 {{GENDER:$2|a été créé}} par $1 et le mot de passe a été envoyé par courriel",
        "logentry-newusers-autocreate": "Le compte $1 {{GENDER:$2|a été créé}} automatiquement",
        "logentry-protect-move_prot": "$1 {{GENDER:$2|a déplacé}} les paramètres de protection de $4 vers $3",
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 d0f14c5..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|תגיות]] לגרסאות ולרשומות יומן",
        "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": "ביטול של העיצוב מחדש של הממשק (שבוצע בשנת 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>$3, $4</strong> (מוצגים עד <strong>$1</strong>).",
        "rclistfromreset": "איפוס בחירת התאריך",
        "rclistfrom": "הצגת שינויים חדשים החל מ־$2, $3",
        "recentchangeslinked-feed": "שינויים בדפים המקושרים",
        "recentchangeslinked-toolbox": "שינויים בדפים המקושרים",
        "recentchangeslinked-title": "שינויים בדפים המקושרים מהדף \"$1\"",
-       "recentchangeslinked-summary": "×\91×\93×£ ×\9e×\99×\95×\97×\93 ×\96×\94 ×¨×©×\95×\9e×\99×\9d ×\94ש×\99× ×\95×\99×\99×\9d ×\94×\90×\97ר×\95× ×\99×\9d ×\91×\93פ×\99×\9d ×\94×\9eק×\95שר×\99×\9d ×\9eת×\95×\9a ×\94×\93×£ (×\90×\95 ×\91×\93פ×\99×\9d ×\94×\9b×\9c×\95×\9c×\99×\9d ×\91ק×\98×\92×\95ר×\99×\94).\n×\93פ×\99×\9d ×\91[[Special:Watchlist|רש×\99×\9eת ×\94×\9eעק×\91 ×©×\9c×\9b×\9d]] ×\9e×\95צ×\92×\99×\9d ×\91'''×\94×\93×\92ש×\94'''.",
+       "recentchangeslinked-summary": "×\99ש ×\9c×\94ק×\9c×\99×\93 ×©×\9d ×\93×£ ×\9b×\93×\99 ×\9cר×\90×\95ת ×\90ת ×\94ש×\99× ×\95×\99×\99×\9d ×\91×\93פ×\99×\9d ×\94×\9eקשר×\99×\9d ×\9c×\93×£ ×\96×\94 ×\90×\95 ×\94×\9eק×\95שר×\99×\9d ×\9e×\9e× ×\95. (×\9b×\93×\99 ×\9cר×\90×\95ת ×\90ת ×\94×\93פ×\99×\9d ×\94×\97×\91ר×\99×\9d ×\91ק×\98×\92×\95ר×\99×\94, ×\99ש ×\9c×\94ק×\9c×\99×\93 \"ק×\98×\92×\95ר×\99×\94:ש×\9d ×\94ק×\98×\92×\95ר×\99×\94\".) ×©×\99× ×\95×\99×\99×\9d ×\91×\93פ×\99×\9d ×\91[[Special:Watchlist|רש×\99×\9eת ×\94×\9eעק×\91 ×©×\9c×\9a]] ×\9e×\95צ×\92×\99×\9d ×\91<strong>×\94×\93×\92ש×\94</strong>.",
        "recentchangeslinked-page": "שם הדף:",
        "recentchangeslinked-to": "הצגת השינויים בדפים המקשרים לדף הנתון במקום זאת",
        "recentchanges-page-added-to-category": "הדף [[:$1]] נוסף לקטגוריה",
index 107c891..f98d3fe 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",
        "wrongpassword": "Zaporka koju ste unijeli nije ispravna. Molimo Vas, pokušajte ponovo.",
        "wrongpasswordempty": "Niste unijeli zaporku. Pokušajte ponovno.",
        "passwordtooshort": "Zaporka mora sadržavati najmanje {{PLURAL:$1|1 znak|$1 znaka|$1 znakova}}.",
+       "passwordtoolong": "Zaporke ne mogu biti duže od {{PLURAL:$1|jednoga znaka|$1 znaka|$1 znakova}}.",
+       "passwordtoopopular": "Uobičajeno upotrebljavane zaporke ne može se koristiti. Molimo Vas da izaberete što jedinstveniju zaporku.",
        "password-name-match": "Vaša zaporka mora biti različita od Vašeg suradničkog imena.",
        "password-login-forbidden": "Uporaba ovog suradničkog imena i lozinke nije dozvoljena.",
        "mailmypassword": "Pošalji mi novu zaporku",
        "action-userrights-interwiki": "uređivanje suradničkih prava suradnika na drugim wikijima",
        "action-siteadmin": "zaključavanje ili otključavanje baze podataka",
        "action-sendemail": "pošalji e-poštu",
+       "action-editmyoptions": "uređujete vlastite postavke",
        "action-editmywatchlist": "uredite svoj popis praćenih stranica",
        "action-viewmywatchlist": "pregled popisa Vaših praćenih stranica",
        "action-viewmyprivateinfo": "pregled Vaših privatnih podataka",
        "rcfilters-group-results-by-page": "Grupiranje rezultata po stranici",
        "rcfilters-activefilters": "Aktivni filtri",
        "rcfilters-advancedfilters": "Napredni filtri",
-       "rcfilters-limit-title": "Prikaz izmjena",
+       "rcfilters-limit-title": "Rezultata za prikaz",
+       "rcfilters-limit-and-date-label": "{{PLURAL:$1|$1 izmjena|$1 izmjene|$1 izmjena}}, $2",
+       "rcfilters-date-popup-title": "Vremensko razdoblje za pretragu",
        "rcfilters-days-title": "Nedavnih dana",
        "rcfilters-hours-title": "Nedavnih sati",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|dan|dana}}",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|sat|sata|sati}}",
+       "rcfilters-highlighted-filters-list": "Istaknuto: $1",
        "rcfilters-quickfilters": "Spremljeni filtri",
        "rcfilters-quickfilters-placeholder-title": "Još nema spremljenih poveznica",
        "rcfilters-quickfilters-placeholder-description": "Da biste spremili postavke filtra i rabili ih poslije, kliknite ispod na oznaku dočitnice u polju Aktivni filtri.",
        "defemailsubject": "{{SITENAME}} e-mail od suradnika \"$1\"",
        "usermaildisabled": "Suradnička e-pošta je onemogućena",
        "usermaildisabledtext": "Ne možete slati e-poštu drugim suradnicima na ovom wikiju",
-       "noemailtitle": "Nema adrese primaoca",
+       "noemailtitle": "Nema adrese e-pošte",
        "noemailtext": "Ovaj suradnik nije odredio valjanu adresu e-pošte.",
        "nowikiemailtext": "Ovaj suradnik je odlučio ne primati e-mail od drugih suradnika.",
        "emailnotarget": "Nepostojeće ili nevažeće suradničko ime za primatelja.",
        "rollbacklink": "ukloni",
        "rollbacklinkcount": "ukloni $1 {{PLURAL:$1|uređivanje|uređivanja}}",
        "rollbacklinkcount-morethan": "ukloni više od $1 {{PLURAL:$1|uređivanje|uređivanja}}",
-       "rollbackfailed": "Uklanjanje neuspješno",
+       "rollbackfailed": "Brzo uklanjanje nije uspjelo",
        "cantrollback": "Ne mogu ukloniti posljednju promjenu, postoji samo jedna promjena.",
        "alreadyrolled": "Ne mogu ukloniti posljednju promjenu članka [[:$1]] koju je napravio [[User:$2|$2]] ([[User talk:$2|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); netko je već promijenio stranicu ili uklonio promjenu.\n\nPosljednju promjenu napravio je [[User:$3|$3]] ([[User talk:$3|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Sažetak promjene je bio: <em>$1</em>.",
        "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.",
        "tags-tag": "Naziv oznake",
index abf5268..88dbec0 100644 (file)
        "recentchanges-summary": "Ezen a lapon a wikiben történt legutóbbi fejleményeket lehet nyomon követni.",
        "recentchanges-noresult": "A megadott időszakban nincs a feltételeknek megfelelő szerkesztés.",
        "recentchanges-timeout": "A keresés időtúllépés miatt leállt. Próbálkozz más keresési paraméterekkel.",
+       "recentchanges-network": "Technikai hiba miatt nem sikerült betölteni semmilyen eredményt. Próbáld frissíteni az oldalt.",
+       "recentchanges-notargetpage": "Írj be egy lapcímet fentebb a kapcsolódó változások megtekintéséhez.",
        "recentchanges-feed-description": "Kövesd a wiki friss változtatásait ezzel a hírcsatornával.",
        "recentchanges-label-newpage": "Ezzel a szerkesztéssel egy új lap jött létre",
        "recentchanges-label-minor": "Ez egy apró szerkesztés",
        "rcfilters-group-results-by-page": "Csoportosítás eredményei lapok szerint",
        "rcfilters-activefilters": "Aktív szűrők",
        "rcfilters-advancedfilters": "Haladó szűrők",
-       "rcfilters-limit-title": "Megjelenítendő változtatások",
+       "rcfilters-limit-title": "Megjelenítendő találatok száma",
+       "rcfilters-limit-and-date-label": "$1 változtatás, $2",
+       "rcfilters-date-popup-title": "A keresés időkerete",
        "rcfilters-days-title": "Legutóbbi napok",
        "rcfilters-hours-title": "Legutóbbi órák",
        "rcfilters-days-show-days": "$1 nap",
        "rcfilters-savedqueries-apply-and-setdefault-label": "Alapértelmezett szűrő készítése",
        "rcfilters-savedqueries-cancel-label": "Mégse",
        "rcfilters-savedqueries-add-new-title": "Szűrők mentése gyors hivatkozásként",
-       "rcfilters-savedqueries-already-saved": "Ezek a szűrők már el lettek mentve",
+       "rcfilters-savedqueries-already-saved": "Ezek a szűrők már el lettek mentve. Módosítsd a beállításokat egy új mentett szűrő készítéséhez.",
        "rcfilters-restore-default-filters": "Alapértelmezett szűrők visszaállítása",
        "rcfilters-clear-all-filters": "Összes szűrő kikapcsolása",
        "rcfilters-show-new-changes": "Legfrissebb változtatások megtekintése",
        "rcfilters-watchlist-showupdated": "Az újabb változtatások amiket még nem néztél meg, <strong>vastaggal jelöltük</strong>",
        "rcfilters-preference-label": "A friss változtatások fejlesztett változatának elrejtése",
        "rcfilters-preference-help": "A 2017-es felületátdolgozás és minden azóta hozzáadott eszköz visszaállítása.",
+       "rcfilters-filter-showlinkedfrom-label": "A következő lapra hivatkozó lapok változtatásainak megjelenítése",
+       "rcfilters-filter-showlinkedto-label": "A következő lapról hivatkozott lapok változtatásainak megjelenítése",
+       "rcfilters-target-page-placeholder": "Adj meg egy oldal nevét",
        "rcnotefrom": "Alább a <strong>$3 $4</strong> óta történt változtatások láthatóak (legfeljebb <b>$1</b> db).",
        "rclistfromreset": "Dátumválasztás visszaállítása",
        "rclistfrom": "$3, $2 után történt változtatások megtekintése",
        "uploaded-script-svg": "A feltöltött SVG fájlodban szkriptelemet találtunk: \"$1\".",
        "uploaded-hostile-svg": "Nem biztonságos CSS kódot találtunk a feltöltött SVG fájlod stíluselemei között.",
        "uploaded-event-handler-on-svg": "Az alábbi eseménykezelő-attribútum beállítása nem megengedett az SVG fájlokban: <code>$1=$2</code>.",
-       "uploaded-href-attribute-svg": "href attribútumok SVG fájlokban csak http:// vagy https:// protokollal engedélyezettek, <code>&lt;$1 $2=\"$3\"&gt;</code> található.",
+       "uploaded-href-attribute-svg": "<a> elemek hivatkozásai (href) csak data: (beágyazott fájl), http://, https:// protokollú vagy dokumentumon belüli (#, töredék) célpontra mutathatnak. Más elemek (például <image>) csak data: és dokumentumon belüli célpontra mutathatnak. Próbáld beágyazni a képeket az SVG exportálásakor. <code>&lt;$1 $2=\"$3\"&gt;</code> található.",
        "uploaded-href-unsafe-target-svg": "Nem biztonságos adatra mutató href-et találtunk a feltöltött SVG-fájlban: URI-cél <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploaded-animate-svg": "A feltöltött SVG fájlban \"animate\" taget találtam, ami az alábbi \"from\" attribútumával megváltoztathat egy href-et: <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploaded-setting-event-handler-svg": "Eseménykezelő attribútumok beállítása blokkolva van, <code>&lt;$1 $2=\"$3\"&gt;</code> található a feltöltendő SVG fájlban.",
        "uploadstash-bad-path": "Útvonal nem létezik",
        "uploadstash-bad-path-invalid": "Érvénytelen útvonal",
        "uploadstash-bad-path-unknown-type": "Ismeretlen típus: „$1”",
+       "uploadstash-bad-path-unrecognized-thumb-name": "Ismeretlen bélyegképnév.",
+       "uploadstash-bad-path-no-handler": "Nem található kezelő a(z) $1 MIME-típusú $2 fájlhoz.",
+       "uploadstash-bad-path-bad-format": "A(z) „$1” kulcs nem megfelelő formátumú.",
+       "uploadstash-file-not-found-no-thumb": "A bélyegkép lekérése sikertelen.",
+       "uploadstash-file-not-found-no-local-path": "Nincs helyi útvonal az átméretezett elemhez.",
+       "uploadstash-file-not-found-no-object": "A bélyegkép helyi fájlobjektumának létrehozása sikertelen.",
+       "uploadstash-file-not-found-no-remote-thumb": "A bélyegkép lekérése sikertelen: $1\nURL: $2",
+       "uploadstash-file-not-found-missing-content-type": "A Content-Type (tartalomtípus) fejléc hiányzik.",
+       "uploadstash-file-not-found-not-exists": "Az útvonal nem található, vagy nem egy egyszerű fájl.",
+       "uploadstash-file-too-large": "$1 bájtnál nagyobb fájlok kiszolgálása nem lehetséges.",
+       "uploadstash-not-logged-in": "Nincs bejelentkezett felhasználó. A fájloknak felhasználókhoz kell tartozniuk.",
+       "uploadstash-wrong-owner": "Ez a fájl ($1) nem a jelenlegi felhasználóhoz tartozik.",
+       "uploadstash-no-such-key": "Nincs ilyen kulcs ($1), nem lehet eltávolítani.",
+       "uploadstash-no-extension": "Nincs kiterjesztés.",
+       "uploadstash-zero-length": "A fájl nulla méretű.",
        "invalid-chunk-offset": "Érvénytelen darab eltolás",
        "img-auth-accessdenied": "Hozzáférés megtagadva",
        "img-auth-nopathinfo": "Hiányzó PATH_INFO.\nA szerver nincs beállítva, hogy továbbítsa ezt az információt.\nLehet, hogy CGI-alapú, és nem támogatja az img_auth-ot.\nLásd https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization!",
        "pageswithprop-legend": "Lap tulajdonsággal rendelkező lapok",
        "pageswithprop-text": "Ez a lap azokat a lapokat listázza, amelyek egy adott lap tulajdonsággal rendelkeznek.",
        "pageswithprop-prop": "Tulajdonságnév:",
-       "pageswithprop-reverse": "Rendezze fordított sorrendbe",
+       "pageswithprop-reverse": "Rendezés fordított sorrendben",
+       "pageswithprop-sortbyvalue": "Rendezés a tulajdonság értéke szerint",
        "pageswithprop-submit": "Ugrás",
        "pageswithprop-prophidden-long": "hosszú szöveg tulajdonság elrejtve ($1)",
        "pageswithprop-prophidden-binary": "bináris tulajdonság érték rejtett ($1)",
        "ipb_blocked_as_range": "Hiba: a(z) $1 IP-cím nem blokkolható közvetlenül, és nem lehet feloldani. A(z) $2 tartomány részeként van blokkolva, amely feloldható.",
        "ip_range_invalid": "Érvénytelen IP-tartomány.",
        "ip_range_toolarge": "Nem engedélyezettek azok a tartományblokkok, melyek nagyobbak mint /$1.",
+       "ip_range_exceeded": "Az IP-cím-tartomány nagyobb a megengedettnél. Engedélyezett tartomány: /$1.",
        "proxyblocker": "Proxyblokkoló",
        "proxyblockreason": "Az IP-címeden ''nyílt proxy'' üzemel. Amennyiben nem használsz proxyt, vedd fel a kapcsolatot egy informatikussal vagy az internetszolgáltatóddal ezen súlyos biztonsági probléma ügyében.",
        "sorbsreason": "Az IP-címed nyitott proxyként szerepel e webhely által használt DNSBL listán.",
        "import-mapping-namespace": "Importálás ebbe a névtérbe:",
        "import-mapping-subpage": "Importálás a következő lap allapjaként:",
        "import-upload-filename": "Fájlnév:",
+       "import-upload-username-prefix": "Wikiközi előtag:",
+       "import-assign-known-users": "A szerkesztések helyi felhasználókhoz rendelése, ha létezik helyileg az adott nevű felhasználó",
        "import-comment": "Megjegyzés:",
        "importtext": "Exportáld a fájlt a forráswikiből az [[Special:Export|exportáló eszköz]] segítségével.\nMentsd el a számítógépedre, majd töltsd fel ide.",
        "importstart": "Lapok importálása...",
        "imported-log-entries": "Importálva $1 logbejegyzés.",
        "importfailed": "Az importálás nem sikerült: $1",
        "importunknownsource": "Ismeretlen import forrástípus",
+       "importnoprefix": "Nincs megadva nyelvközi előtag",
        "importcantopen": "Nem nyitható meg az importfájl",
        "importbadinterwiki": "Rossz wikiközi hivatkozás",
        "importsuccess": "Az importálás befejeződött!",
        "autosumm-blank": "Eltávolította a lap teljes tartalmát",
        "autosumm-replace": "A lap tartalmának cseréje erre: $1",
        "autoredircomment": "Átirányítás ide: [[$1]]",
+       "autosumm-changed-redirect-target": "Az átirányítás célja módosítva: [[$1]]→[[$2]]",
        "autosumm-new": "Új oldal, tartalma: „$1”",
        "autosumm-newblank": "Üres oldal létrehozva",
        "lag-warn-normal": "{{PLURAL:$1|Az egy|A(z) $1}} másodpercnél frissebb szerkesztések nem biztos, hogy megjelennek ezen a listán.",
        "tag-mw-contentmodelchange": "tartalommodell-változtatás",
        "tag-mw-contentmodelchange-description": "Szerkesztések, amelyek [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel megváltoztatják egy lap tartalommodelljét].",
        "tag-mw-new-redirect": "Új átirányítás",
+       "tag-mw-new-redirect-description": "Szerkesztések, amelyek új átirányítást hoztak létre vagy egy oldalt azzá tettek",
+       "tag-mw-removed-redirect": "Megszüntetett átirányítás",
+       "tag-mw-removed-redirect-description": "Szerkesztések, amelyek egy átirányítást megszüntetve tartalmi lapot hoztak létre",
+       "tag-mw-changed-redirect-target": "Átirányítás célja módosult",
+       "tag-mw-changed-redirect-target-description": "Szerkesztések, amelyek megváltoztatták az átirányítás célját (ahova irányított a lap)",
+       "tag-mw-blank": "Oldal egésze eltávolítva",
+       "tag-mw-blank-description": "Szerkesztések, amelyek eltávolították egy oldal teljes tartalmát",
+       "tag-mw-replace": "Oldal nagy része eltávolítva",
+       "tag-mw-replace-description": "Szerkesztések, amelyet egy oldal tartalmának több mint 90%-át törölték",
        "tag-mw-rollback": "Visszaállítás",
+       "tag-mw-rollback-description": "Szerkesztések, amelyek visszaállítottak szerkesztéseket a „visszavonás” gombra kattintva",
        "tags-title": "Címkék",
        "tags-intro": "Ez a lap azokat a címkéket és jelentéseiket tartalmazza, amikkel a szoftver megjelölhet egy szerkesztést.",
        "tags-tag": "Címke neve",
        "compare-title-not-exists": "A megadott cím nem létezik.",
        "compare-revision-not-exists": "A megadott lapváltozat nem létezik.",
        "diff-form": "Eltérések",
+       "diff-form-oldid": "Régi lapváltozat-azonosító (opcionális)",
+       "diff-form-revid": "A változtatás változatazonosítója",
        "diff-form-submit": "Változtatások megjelenítése",
        "permanentlink": "Állandó hivatkozás",
        "permanentlink-revid": "Változat azonosító",
+       "permanentlink-submit": "Ugrás a változatra",
        "dberr-problems": "Sajnáljuk, de az oldallal technikai problémák vannak.",
        "dberr-again": "Várj néhány percet, majd frissítsd az oldalt.",
        "dberr-info": "(Nem sikerült kapcsolódni az adatbázishoz: $1)",
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 44103f6..4697462 100644 (file)
        "mergehistory-go": "Revelar modificationes fusionabile",
        "mergehistory-submit": "Fusionar versiones",
        "mergehistory-empty": "Nulle versiones pote esser fusionate.",
-       "mergehistory-done": "$3 {{PLURAL:$3|version|versiones}} de $1 fusionate in [[:$2]] con successo.",
+       "mergehistory-done": "$3 {{PLURAL:$3|version|versiones}} de $1 ha essite fusionate in [[:$2]].",
        "mergehistory-fail": "Impossibile executar le fusion del historia. Per favor reverifica le parametros del pagina e del tempore.",
        "mergehistory-fail-bad-timestamp": "Data e hora non valide.",
        "mergehistory-fail-invalid-source": "Pagina de origine non valide.",
        "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",
        "recentchanges-noresult": "Nulle modification facite in le periodo specificate que corresponde a iste criterios.",
        "recentchanges-timeout": "Iste recerca ha expirate. Considera essayar con altere parametros de recerca.",
        "recentchanges-network": "A causa de un error technic, nulle resultatos poteva esser cargate. Per favor, tenta de recargar le pagina.",
+       "recentchanges-notargetpage": "Entra le nomine de un pagina pro vider le modificationes associate a illo.",
        "recentchanges-feed-description": "Seque le modificationes le plus recente al wiki in iste syndication.",
        "recentchanges-label-newpage": "Iste modification creava un nove pagina",
        "recentchanges-label-minor": "Isto es un modification minor",
        "rcfilters-watchlist-showupdated": "Le modificationes del paginas que tu non ha visitate post que illos ha essite apportate se monstra in <strong>grasse</strong>, con marcatores solide.",
        "rcfilters-preference-label": "Celar le version meliorate del Modificationes recente",
        "rcfilters-preference-help": "Disface le nove interfacie de 2017 e tote le instrumentos addite alora e posta.",
+       "rcfilters-filter-showlinkedfrom-label": "Monstrar modificationes sur paginas ligate ab",
+       "rcfilters-filter-showlinkedfrom-option-label": "Monstrar modificationes sur paginas ligate <strong>AB</strong> un pagina",
+       "rcfilters-filter-showlinkedto-label": "Monstrar modificationes sur paginas que liga a",
+       "rcfilters-filter-showlinkedto-option-label": "Monstrar modificationes sur paginas con ligamines <strong>VERSO</strong> un pagina",
+       "rcfilters-target-page-placeholder": "Entra un nomine de pagina",
        "rcnotefrom": "Ecce le {{PLURAL:$5|modification|modificationes}} a partir del <strong>$3 a $4</strong> (usque a <strong>$1</strong> entratas monstrate).",
        "rclistfromreset": "Reinitialisar selection de data",
        "rclistfrom": "Monstrar nove modificationes a partir del $3 a $2",
        "recentchangeslinked-feed": "Modificationes ligate",
        "recentchangeslinked-toolbox": "Modificationes ligate",
        "recentchangeslinked-title": "Modificationes associate a \"$1\"",
-       "recentchangeslinked-summary": "Isto es un lista de modificationes facite recentemente in paginas ligate ab un pagina specific (o in membros de un categoria specific).\nLe paginas presente in [[Special:Watchlist|tu observatorio]] appare in litteras '''grasse'''.",
+       "recentchangeslinked-summary": "Entra le nomine de un pagina pro vider le modificationes facite in paginas ligate ab o verso ille pagina. (Pro vider le membros de un categoria, entra Categoria:Nomine del categoria.)\nLe paginas presente in [[Special:Watchlist|tu observatorio]] appare in litteras <strong>grasse</strong>.",
        "recentchangeslinked-page": "Nomine del pagina:",
        "recentchangeslinked-to": "Monstrar modificationes in paginas con ligamines al pagina specificate",
        "recentchanges-page-added-to-category": "[[:$1]] addite al categoria",
        "uploadstash-bad-path-bad-format": "Le clave \"$1\" non es in un formato correcte.",
        "uploadstash-file-not-found": "Le clave \"$1\" non se trova in reserva.",
        "uploadstash-file-not-found-no-thumb": "Non poteva obtener le miniatura.",
+       "uploadstash-file-not-found-no-local-path": "Il non ha cammino local pro le objecto redimensionate.",
+       "uploadstash-file-not-found-no-object": "Non poteva un objecto de file local pro le miniatura.",
+       "uploadstash-file-not-found-no-remote-thumb": "Recuperation de miniatura fallite: $1\nURL = $2",
+       "uploadstash-file-not-found-missing-content-type": "Capite content-type mancante.",
+       "uploadstash-file-not-found-not-exists": "Non pote trovar le cammino, o non es un file simple.",
+       "uploadstash-file-too-large": "Non pote servir un file plus grande que $1 bytes.",
+       "uploadstash-not-logged-in": "Nulle usator es in session. Le files debe pertiner a usatores.",
+       "uploadstash-wrong-owner": "Iste file ($1) non pertine al usator actual.",
+       "uploadstash-no-such-key": "Le clave ($1) non existe; impossibile remover lo.",
+       "uploadstash-no-extension": "Le extension es nulle.",
+       "uploadstash-zero-length": "Le file ha un grandor de zero.",
        "invalid-chunk-offset": "Position de segmento invalide",
        "img-auth-accessdenied": "Accesso refusate",
        "img-auth-nopathinfo": "PATH_INFO manca.\nLe servitor non ha essite configurate pro passar iste information.\nIllo pote esser basate super CGI e non pote supportar img_auth.\nVide https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
        "proxyblockreason": "Tu adresse IP ha essite blocate proque illo es un proxy aperte.\nPer favor contacta tu providitor de servicio internet o supporto technic e informa les de iste problema grave de securitate.",
        "sorbsreason": "Tu adresse IP es listate como proxy aperte in le DNSBL usate per {{SITENAME}}.",
        "sorbs_create_account_reason": "Tu adresse IP es listate como proxy aperte in le DNSBL usate per {{SITENAME}}.\nTu non pote crear un conto",
-       "softblockrangesreason": "Contributiones anonime non son permittite de vostre adresse de IP ($1). Si il vos place, identifica vos.",
+       "softblockrangesreason": "Contributiones anonyme non es permittite de tu adresse IP ($1). Per favor, aperi session.",
        "xffblockreason": "Un adresse IP presente in le capite X-Forwarded-For, o le tue o illo de un servitor proxy que tu usa, ha essite blocate. Le motivo original pro le blocada es: $1",
        "cant-see-hidden-user": "Le usator que tu tenta blocar ha ja essite blocate e celate. Post que tu non ha le derecto hideuser, tu non pote vider o modificar le blocada del usator.",
        "ipbblocked": "Tu non pote blocar o disblocar altere usatores, proque tu mesme es blocate",
        "import-mapping-namespace": "Importar in un spatio de nomines:",
        "import-mapping-subpage": "Importar como subpaginas del pagina sequente:",
        "import-upload-filename": "Nomine del file:",
+       "import-upload-username-prefix": "Prefixo interwiki:",
+       "import-assign-known-users": "Assignar modificationes a usatores local quando le usator in question existe localmente",
        "import-comment": "Commento:",
        "importtext": "Per favor exporta le file del wiki de origine con le [[Special:Export|facilitate de exportation]].\nSalveguarda lo in tu computator e incarga lo hic.",
        "importstart": "Importation de paginas in curso…",
        "imported-log-entries": "$1 {{PLURAL:$1|entrata|entratas}} del registro importate.",
        "importfailed": "Importation fallite: <nowiki>$1</nowiki>",
        "importunknownsource": "Typo del origine de importation non cognoscite",
+       "importnoprefix": "Nulle prefixo interwiki ha essite fornite",
        "importcantopen": "Impossibile aperir le file de importation",
        "importbadinterwiki": "Ligamine interwiki invalide",
        "importsuccess": "Importation complete!",
        "file-no-thumb-animation": "'''Note: A causa de limitationes technic, le miniaturas de iste file non essera animate.'''",
        "file-no-thumb-animation-gif": "'''Nota: A causa de limitationes technic, le miniaturas de imagines GIF in alte resolution como iste non essera animate.'''",
        "newimages": "Galeria de nove files",
-       "imagelisttext": "Infra es un lista de '''$1''' {{PLURAL:$1|imagine|imagines}} ordinate $2.",
+       "imagelisttext": "Infra es un lista de <strong>$1</strong> {{PLURAL:$1|file|files}} ordinate $2.",
        "newimages-summary": "Iste pagina special detalia le recente files incargate.",
        "newimages-legend": "Filtro",
        "newimages-label": "Nomine del file (o un parte de illo):",
        "autosumm-blank": "Pagina vacuate",
        "autosumm-replace": "Contento reimplaciate per '$1'",
        "autoredircomment": "Pagina redirigite verso [[$1]]",
+       "autosumm-removed-redirect": "Redirection a [[$1]] removite",
+       "autosumm-changed-redirect-target": "Destination del redirection cambiate de [[$1]] a [[$2]]",
        "autosumm-new": "Pagina create con '$1'",
        "autosumm-newblank": "Pagina vacue create",
        "lag-warn-normal": "Le modificationes plus nove que $1 {{PLURAL:$1|secunda|secundas}} possibilemente non se revela in iste lista.",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Etiquetta|Etiquettas}}]]: $2)",
        "tag-mw-contentmodelchange": "cambiamento de modello de contento",
        "tag-mw-contentmodelchange-description": "Modificationes que [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel cambia le modello de contento] de un pagina",
+       "tag-mw-new-redirect": "Nove redirection",
+       "tag-mw-new-redirect-description": "Modificationes que crea un nove redirection o cambia le pagina a un redirection",
+       "tag-mw-removed-redirect": "Redirection removite",
+       "tag-mw-removed-redirect-description": "Modificationes que cambia un redirection existente a un non-redirection",
+       "tag-mw-changed-redirect-target": "Destination del redirection modificate",
+       "tag-mw-changed-redirect-target-description": "Modificationes que cambia le destination de un redirection",
+       "tag-mw-blank": "Vacuation",
+       "tag-mw-blank-description": "Modificationes que vacua un pagina",
+       "tag-mw-replace": "Reimplaciate",
+       "tag-mw-replace-description": "Modificationes que elimina plus de 90% del contento de un pagina",
+       "tag-mw-rollback": "Revocation",
+       "tag-mw-rollback-description": "Modificationes que disface previe modificationes usante le ligamine \"revocar\"",
        "tags-title": "Etiquettas",
        "tags-intro": "Iste pagina lista le etiquettas con le quales le software pote marcar un modification, e lor significato.",
        "tags-tag": "Nomine del etiquetta",
        "pagelang-language": "Lingua",
        "pagelang-use-default": "Usar lingua predefinite",
        "pagelang-select-lang": "Selige lingua",
-       "pagelang-reason": "Ration",
+       "pagelang-reason": "Motivo",
        "pagelang-submit": "Submitter",
        "pagelang-nonexistent-page": "Le pagina $1 non existe.",
        "pagelang-unchanged-language": "Le pagina $1 es jam fixate sur le lingua $2.",
        "special-characters-group-cyrillic": "Cyrillic",
        "special-characters-group-arabic": "Arabe",
        "special-characters-group-arabicextended": "Arabe extendite",
-       "special-characters-group-persian": "Persiano",
+       "special-characters-group-persian": "Persa",
        "special-characters-group-hebrew": "Hebreo",
        "special-characters-group-bangla": "Bengali",
        "special-characters-group-tamil": "Tamil",
        "special-characters-group-telugu": "Telugu",
        "special-characters-group-sinhala": "Sinhala",
        "special-characters-group-gujarati": "Gujarati",
-       "special-characters-group-devanagari": "Devanāgarī",
+       "special-characters-group-devanagari": "Devanagari",
        "special-characters-group-thai": "Thailandese",
        "special-characters-group-lao": "Laotiano",
-       "special-characters-group-khmer": "Cambodgiano",
+       "special-characters-group-khmer": "Khmer",
        "special-characters-group-canadianaboriginal": "Aborigine canadian",
        "special-characters-title-endash": "lineetta en",
        "special-characters-title-emdash": "lineetta em",
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 a9c806f..e5ae975 100644 (file)
                        "Pequod76",
                        "Greis",
                        "Pierpao",
-                       "Sakretsu"
+                       "Sakretsu",
+                       "Yiyi"
                ]
        },
        "tog-underline": "Sottolinea i collegamenti:",
        "userlogin-helplink2": "Aiuto con l'accesso",
        "userlogin-loggedin": "Sei già connesso come {{GENDER:$1|$1}}.\nUsa il modulo sottostante per accedere come altro utente.",
        "userlogin-reauth": "Devi accedere di nuovo per verificare che sei {{GENDER:$1|$1}}.",
-       "userlogin-createanother": "Crea un'altra utenza",
+       "userlogin-createanother": "Crea unaltra utenza",
        "createacct-emailrequired": "Indirizzo email",
        "createacct-emailoptional": "Indirizzo di posta elettronica (opzionale)",
        "createacct-email-ph": "Inserisci il tuo indirizzo email",
        "yourtext": "Il tuo testo",
        "storedversion": "La versione memorizzata",
        "editingold": "<strong>Attenzione: si sta modificando una versione non aggiornata della pagina.</strong>\nSalvandola così, tutti i cambiamenti apportati dopo questa versione saranno sovrascritti.",
+       "unicode-support-fail": "Sembra che il tuo browser non supporti Unicode. Essendo richiesto per modificare le pagine, la tua modifica non sarà salvata.",
        "yourdiff": "Differenze",
        "copyrightwarning": "Per favore tieni presente che tutti i contributi a {{SITENAME}} si considerano pubblicati nei termini d'uso della licenza $2 (vedi $1 per maggiori dettagli).\nSe non desideri che i tuoi testi possano essere modificati e ridistribuiti da chiunque senza alcuna limitazione, non inviarli qui.<br />\nInviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scritto da te personalmente oppure è stato copiato da una fonte di pubblico dominio o similarmente libera.\n'''Non inviare materiale protetto da copyright senza autorizzazione!'''",
        "copyrightwarning2": "Per favore tieni presente che tutti i contributi a {{SITENAME}} possono essere modificati, stravolti o cancellati da altri contributori.\nSe non vuoi che i tuoi testi possano essere alterati, allora non inserirli.<br />\nInviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scritto da te personalmente oppure è stato copiato da una fonte di pubblico dominio o similarmente libera (vedi $1 per maggiori dettagli).\n'''Non inviare materiale protetto da copyright senza autorizzazione!'''",
        "parser-template-loop-warning": "Rilevato loop del template: [[$1]]",
        "template-loop-category": "Pagine con template che richiamano sé stessi",
        "template-loop-category-desc": "La pagina contiene un template che richiama sé stesso, cioè un template in cui è incluso lo stesso template.",
+       "template-loop-warning": "<strong>Attenzione:</strong> questa pagina richiama [[:$1]] che provoca un loop (una chiamata ricorsiva infinita del template).",
        "parser-template-recursion-depth-warning": "È stato raggiunto il limite di ricorsione nel template ($1)",
        "language-converter-depth-warning": "Limite di profondità del convertitore di lingua superato ($1)",
        "node-count-exceeded-category": "Pagine che superano il numero di nodi",
        "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 e8aa974..e7298a7 100644 (file)
@@ -87,7 +87,8 @@
                        "Delim",
                        "Hinaloe",
                        "Phantomize",
-                       "Suzukaze-c"
+                       "Suzukaze-c",
+                       "Kkairri"
                ]
        },
        "tog-underline": "リンクの下線:",
        "timezoneregion-indian": "インド洋",
        "timezoneregion-pacific": "太平洋",
        "allowemail": "他の利用者からのメールを受け取る",
+       "email-blacklist-label": "次のユーザーからのメールを受け取らない:",
        "prefs-searchoptions": "検索",
        "prefs-namespaces": "名前空間",
        "default": "既定",
        "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": "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 7478269..04e37e8 100644 (file)
        "timezoneregion-indian": "인도양",
        "timezoneregion-pacific": "태평양",
        "allowemail": "다른 사용자가 내게 이메일을 보낼 수 있게 허용",
+       "email-allow-new-users-label": "처음 온 사용자들로부터 오는 이메일 허용",
        "email-blacklist-label": "이 사용자들이 내게 이메일을 보내는 것을 금지합니다:",
        "prefs-searchoptions": "검색",
        "prefs-namespaces": "이름공간",
        "recentchanges-noresult": "지정한 조건과 일치하는 주어진 기간 동안 바뀜이 없습니다.",
        "recentchanges-timeout": "이 검색의 시간이 초과되었습니다. 다른 검색 변수를 사용할 수 있습니다.",
        "recentchanges-network": "기술적인 문제로 결과를 불러올 수 없습니다. 페이지를 다시 새로 고침해 주십시오.",
+       "recentchanges-notargetpage": "해당 문서에 관한 변경사항을 보려면 상단에 문서 제목을 입력하십시오.",
        "recentchanges-feed-description": "이 피드에 위키의 최근 바뀜을 추적합니다.",
        "recentchanges-label-newpage": "새 문서",
        "recentchanges-label-minor": "사소한 편집",
        "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-label": "신 사용자",
        "rcfilters-filter-user-experience-level-newcomer-description": "10회 미만의 편집 또는 4일 미만의 활동을 한 등록된 편집자.",
        "rcfilters-filter-user-experience-level-learner-label": "학습자",
-       "rcfilters-filter-user-experience-level-learner-description": "\"신규 사용자\" 보다 경험이 더 많지만 \"능숙한 사용자\" 보다는 적습니다.",
+       "rcfilters-filter-user-experience-level-learner-description": "\"신입 사용자\"보다 경험이 더 많지만 \"능숙한 사용자\"보다는 적습니다.",
        "rcfilters-filter-user-experience-level-experienced-label": "능숙한 사용자",
        "rcfilters-filter-user-experience-level-experienced-description": "30일 이상의 활동 및 500개 이상의 편집.",
        "rcfilters-filtergroup-automated": "자동으로 된 기여",
        "rcfilters-watchlist-showupdated": "변경이 발생한 이후로 방문한 적이 없는 문서의 변경사항은 <strong>굵게</strong> 표시됩니다.",
        "rcfilters-preference-label": "개선된 버전의 최근 바뀜 숨기기",
        "rcfilters-preference-help": "2017년 인터페이스 재설계 부분과 그 당시와 그 이후에 추가된 모든 도구를 되돌립니다.",
+       "rcfilters-target-page-placeholder": "문서 이름을 입력하세요",
        "rcnotefrom": "아래는 <strong>$3, $4</strong>부터 시작하는 {{PLURAL:$5|바뀜이 있습니다}}. (최대 <strong>$1</strong>개가 표시됨)",
        "rclistfromreset": "날짜 선택 초기화",
        "rclistfrom": "$3 $2부터 시작하는 새로 바뀐 문서 보기",
        "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 dcecadc..e106cb0 100644 (file)
        "grant-highvolume": "Liela apjoma labošana",
        "grant-patrol": "Patrulēt lapu izmaiņas",
        "grant-privateinfo": "Piekļūt privātai informācijai",
+       "grant-rollback": "Atcelt izmaiņas lapās",
        "grant-sendemail": "Sūtīt e-pastu citiem dalībniekiem",
        "grant-uploadeditmovefile": "Augšupielādēt, aizvietot un pārvietot failus",
        "grant-uploadfile": "Augšupielādēt jaunus failus",
        "rcfilters-activefilters": "Aktīvie filtri",
        "rcfilters-advancedfilters": "Paplašinātie filtri",
        "rcfilters-limit-title": "Rādāmās izmaiņas",
+       "rcfilters-limit-and-date-label": "{{PLURAL:$1|$1 izmaiņas|$1 izmaiņa|$1 izmaiņas}}, $2",
        "rcfilters-days-title": "Pēdējās dienas",
        "rcfilters-hours-title": "Pēdējās stundas",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|dienas|diena|dienas}}",
        "rcfilters-savedqueries-apply-and-setdefault-label": "Izveidot noklusēto filtru",
        "rcfilters-savedqueries-cancel-label": "Atcelt",
        "rcfilters-savedqueries-add-new-title": "Saglabāt esošos filtra iestatījumus",
-       "rcfilters-savedqueries-already-saved": "Šie filtri jau ir saglabāti",
+       "rcfilters-savedqueries-already-saved": "Šie filtri jau ir saglabāti. Izmaini savus iestatījumus, lai izveidotu jaunu saglabāto filtru.",
        "rcfilters-restore-default-filters": "Atjaunot noklusētos filtrus",
        "rcfilters-clear-all-filters": "Noņemt visus filtrus",
        "rcfilters-show-new-changes": "Skatīt jaunās izmaiņas",
        "rcfilters-filter-logactions-description": "Administratīvās darbības, kontu veidošana, lapu dzēšana, augšupielādes...",
        "rcfilters-filtergroup-lastRevision": "Pašreizējās versijas",
        "rcfilters-filter-lastrevision-label": "Pašreizējā versija",
-       "rcfilters-filter-lastrevision-description": "Nesenākā lapas izmaiņa.",
+       "rcfilters-filter-lastrevision-description": "Tikai nesenākā lapas izmaiņa.",
        "rcfilters-filter-previousrevision-label": "Agrākas versijas",
-       "rcfilters-filter-previousrevision-description": "Visas izmaiņas, kuras nav pēdējā lapas izmaiņa.",
+       "rcfilters-filter-previousrevision-description": "Visas izmaiņas, kas nav lapas pēdējā izmaiņa.",
        "rcfilters-view-tags": "Iezīmētie labojumi",
        "rcfilters-view-namespaces-tooltip": "Filtrēt rezultātus pēc vārdtelpas",
        "rcfilters-view-tags-help-icon-tooltip": "Uzzināt vairāk par iezīmētajiem labojumiem",
        "rcfilters-liveupdates-button": "Tūlītēji atjauninājumi",
        "rcfilters-liveupdates-button-title-on": "Atslēgt tūlītējos atjauninājumus",
+       "rcfilters-liveupdates-button-title-off": "Rādīt jaunās izmaiņas, tiklīdz tās tiek veiktas",
        "rcfilters-watchlist-markseen-button": "Atzīmēt visas izmaiņas kā apskatītas",
        "rcfilters-watchlist-edit-watchlist-button": "Labot manu uzraugāmo lapu sarakstu",
        "rcfilters-preference-label": "Paslēpt uzlaboto pēdējo izmaiņu versiju",
        "pageinfo-length": "Lapas garums (baitos)",
        "pageinfo-article-id": "Lapas ID",
        "pageinfo-language": "Lappuses satura valoda",
+       "pageinfo-language-change": "izmainīt",
        "pageinfo-content-model": "Lapas satura modelis",
        "pageinfo-content-model-change": "mainīt",
        "pageinfo-robot-policy": "Indeksācija ar robotiem",
        "markedaspatrollederror": "Nevar atzīmēt kā pārbaudītu",
        "markedaspatrollederrortext": "Jums jānorāda versija, ko atzīmēt kā pārbaudītu.",
        "markedaspatrollederror-noautopatrol": "Jums nav atļaujas atzīmēt savas izmaiņas kā pārbaudītas.",
+       "markedaspatrollednotify": "Šī izmaiņa lapā \"$1\" ir atzīmēta kā patrulēta.",
        "patrol-log-page": "Pārbaudes reģistrs",
        "patrol-log-header": "Šis ir pārbaudīto versiju reģistrs.",
        "log-show-hide-patrol": "$1 pārbaudes reģistrs",
        "expand_templates_ok": "Labi",
        "expand_templates_remove_nowiki": "Cenzēt <nowiki> iezīmes rezultātā",
        "expand_templates_preview": "Pirmskats",
+       "pagelanguage": "Mainīt lapas valodu",
        "pagelang-name": "Lapa",
        "pagelang-language": "Valoda",
        "pagelang-select-lang": "Izvēlieties valodu",
index 4d3ce93..0b8cc8c 100644 (file)
        "imgfile": "檔",
        "listfiles": "見檔",
        "listfiles_thumb": "縮",
-       "listfiles_date": "時",
+       "listfiles_date": "時",
        "listfiles_name": "名",
        "listfiles_user": "簿",
        "listfiles_size": "幅(位元組)",
        "filehist-deleteone": "刪",
        "filehist-revert": "還",
        "filehist-current": "今",
-       "filehist-datetime": "時",
+       "filehist-datetime": "æ\97¥æ\99\82",
        "filehist-thumb": "縮",
        "filehist-thumbtext": "於$1之縮",
        "filehist-nothumb": "無縮",
        "wlheader-enotif": "*准報信。",
        "wlheader-showupdated": "*易者'''粗體'''。",
        "wlnote": "近<b>$2</b>時有$1者易。",
-       "wlshowlast": "見近$1時、$2天易",
+       "wlshowlast": "凡最近$1小時、$2日所更易皆示之",
        "watchlist-options": "哨項",
        "watching": "出陣…",
        "unwatching": "收兵…",
        "protect-otherreason-op": "它理",
        "protect-dropdown": "*通錮之理\n** 多破\n** 多灌\n** 反產之戰纂\n** 高量之頁",
        "protect-edit-reasonlist": "纂護之理",
-       "protect-expiry-options": "半時:1 hour,一日:1 day,一週:1 week,兩週:2 weeks,一月:1 month,三月:3 months,六月:6 months,一年:1 year,永久:infinite",
+       "protect-expiry-options": "半小時:1 hour,一日:1 day,一週:1 week,兩週:2 weeks,一月:1 month,三月:3 months,六月:6 months,一年:1 year,恆久:infinite",
        "restriction-type": "准",
        "restriction-level": "緘捆",
        "minimum-size": "幅越",
        "ipbenableautoblock": "屢禁此簿,新IP址、後繼亦如也。",
        "ipbsubmit": "禁簿",
        "ipbother": "別期",
-       "ipboptions": "二時:2 hours,一日:1 day,三日:3 days,一週:1 week,二週:2 weeks,一月:1 month,三月:3 months,六月:6 months,一年:1 year,永如:infinite",
+       "ipboptions": "二小時:2 hours,一日:1 day,三日:3 days,一週:1 week,二週:2 weeks,一月:1 month,三月:3 months,六月:6 months,一年:1 year,恆久:infinite",
        "ipbhidename": "簿名隱乎纂與表",
        "ipbwatchuser": "哨該簿之齋與議",
        "ipb-change-block": "用此設重禁此簿",
        "ipblocklist-submit": "尋",
        "ipblocklist-localblock": "本禁",
        "ipblocklist-otherblocks": "他{{PLURAL:$1|禁|禁}}",
-       "infiniteblock": "æ°¸å¦\82",
+       "infiniteblock": "æ\81\86ä¹\85",
        "expiringblock": "屆$1 $2",
        "anononlyblock": "惟匿者",
        "noautoblockblock": "止自禁",
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 6eb6d58..d835015 100644 (file)
@@ -45,7 +45,7 @@
        "tog-previewontop": "Прикажи го прегледот пред кутијата за уредување",
        "tog-previewonfirst": "Прикажи преглед на првото уредување",
        "tog-enotifwatchlistpages": "Испраќај ми е-пошта при промена на страница или податотека од мојот список на набљудувања",
-       "tog-enotifusertalkpages": "Ð\98Ñ\81пÑ\80аÑ\9cаÑ\98 Ð¼Ð¸ Ðµ-поÑ\88Ñ\82а Ð¿Ñ\80и Ð¿Ñ\80омена Ð½Ð° Ð¼Ð¾Ñ\98аÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80",
+       "tog-enotifusertalkpages": "Ð\98Ñ\81пÑ\80аÑ\9cаÑ\98 Ð¼Ð¸ Ðµ-поÑ\88Ñ\82а Ð¿Ñ\80и Ð¿Ñ\80омена Ð½Ð° Ð¼Ð¾Ñ\98аÑ\82а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а",
        "tog-enotifminoredits": "Испраќај ми е-пошта и за ситни промени во страниците и податотеките",
        "tog-enotifrevealaddr": "Откриј ја мојата е-поштенска адреса во пораките за известување",
        "tog-shownumberswatching": "Прикажи го бројот на корисници кои набљудуваат",
        "title-invalid-empty": "Бараниот наслов е празен или го содржи само називот на именскиот простор.",
        "title-invalid-utf8": "Бараниот наслов содржи неважечка UTF-8-низа.",
        "title-invalid-interwiki": "Бараниот наслов содржи меѓујазична врска што не може да се користи во наслови.",
-       "title-invalid-talk-namespace": "Ð\91аÑ\80аниоÑ\82 Ð½Ð°Ñ\81лов Ñ\81е Ð¾Ð´Ð½ÐµÑ\81Ñ\83ва Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 што не може да постои.",
+       "title-invalid-talk-namespace": "Ð\91аÑ\80аниоÑ\82 Ð½Ð°Ñ\81лов Ñ\81е Ð¾Ð´Ð½ÐµÑ\81Ñ\83ва Ð½Ð° Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а што не може да постои.",
        "title-invalid-characters": "Бараниот наслов содржи неважечки знаци: „$1“.",
        "title-invalid-relative": "Насловот има односна патека. Односните наслови (./, ../) се неважечки бидејќи честопати се недостапни за прелистувачот.",
        "title-invalid-magic-tilde": "Побараниот наслов содржи низа неважечки тилди (<nowiki>~~~</nowiki>).",
        "accmailtext": "На $2 е спратена е случајно создадена лозинка за [[User talk:$1|$1]] е испратена. Истата може да се смени на страницата ''[[Special:ChangePassword|Менување на лозинка]]'' откако ќе се најавите.",
        "newarticle": "(нова)",
        "newarticletext": "Дојдовте на врска до страница што не постои.\nЗа да ја создадете страницата, напишете текст во полето подолу ([$1 помош]). Ако сте овде по грешка, само систнете на копчето '''назад''' во вашиот прелистувач.",
-       "anontalkpagetext": "----\n<em>Ð\9eва Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 со анонимен корисник кој сè уште не регистрирал корисничка сметка или не ја користи.<em>\nЗатоа мораме да ја користиме неговата бројчена IP-адреса за да го препознаеме.\nЕдна ваква IP-адреса може да ја делат повеќе корисници.\nАко сте анонимен корисник и сметате дека кон вас се упатени нерелевантни коментари, тогаш [[Special:CreateAccount|создајте корисничка сметка]] или [[Special:UserLogin|најавете се]] за да избегнете поистоветување со други анонимни корисници во иднина.''",
+       "anontalkpagetext": "----\n<em>Ð\9eва Ðµ Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а со анонимен корисник кој сè уште не регистрирал корисничка сметка или не ја користи.<em>\nЗатоа мораме да ја користиме неговата бројчена IP-адреса за да го препознаеме.\nЕдна ваква IP-адреса може да ја делат повеќе корисници.\nАко сте анонимен корисник и сметате дека кон вас се упатени нерелевантни коментари, тогаш [[Special:CreateAccount|создајте корисничка сметка]] или [[Special:UserLogin|најавете се]] за да избегнете поистоветување со други анонимни корисници во иднина.''",
        "noarticletext": "Таква страница сè уште не постои.\nМожете да проверите [[Special:Search/{{PAGENAME}}|дали насловот се споменува]] во други статии,\nда ги <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} пребарате дневниците],\nили да [{{fullurl:{{FULLPAGENAME}}|action=edit}} ја создадете]</span>.",
        "noarticletext-nopermission": "Таква страница сè уште не постои.\nМожете да проверите [[Special:Search/{{PAGENAME}}|дали насловот се споменува]] во други статии или пак да <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} пребарате поврзаните дневници]</span>, но немате дозвола да ја создадете страницата.",
        "missing-revision": "Не ја пронајдов преработката бр. $1 на страницата со наслов „{{FULLPAGENAME}}“.\n\nОва обично се должи на застарена врска за разлики што води кон избришана страница.\nПовеќе подробности ќе најдете во [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дневникот на бришења].",
        "searchprofile-advanced": "Напредно",
        "searchprofile-articles-tooltip": "Пребарување во $1",
        "searchprofile-images-tooltip": "Пребарување на податотеки",
-       "searchprofile-everything-tooltip": "Ð\9fÑ\80ебаÑ\80Ñ\83ваÑ\9aе Ð¿Ð¾ Ñ\81еÑ\82а Ñ\81одÑ\80жина (вклÑ\83Ñ\87Ñ\83ваÑ\98Ñ\9cи Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80)",
+       "searchprofile-everything-tooltip": "Ð\9fÑ\80ебаÑ\80Ñ\83ваÑ\9aе Ð¿Ð¾ Ñ\81еÑ\82а Ñ\81одÑ\80жина (вклÑ\83Ñ\87Ñ\83ваÑ\98Ñ\9cи Ñ\80азговоÑ\80ни Ñ\81Ñ\82Ñ\80аниÑ\86и)",
        "searchprofile-advanced-tooltip": "Пребарување во именски простори по избор",
        "search-result-size": "$1 ({{PLURAL:$2|еден збор|$2 збора}})",
        "search-result-category-size": "{{PLURAL:$1|1 член|$1 членови}} ({{PLURAL:$2|1 поткатегорија|$2 поткатегории}}, {{PLURAL:$3|1 податотека|$3 податотеки}})",
        "timezoneregion-indian": "Индиски Океан",
        "timezoneregion-pacific": "Тихи Океан",
        "allowemail": "Дозволи е-пошта од други корисници",
+       "email-allow-new-users-label": "Дозволи е-пошта од сосем нови корисници",
        "email-blacklist-label": "Забрани е-пошта од следниве корисници:",
        "prefs-searchoptions": "Пребарување",
        "prefs-namespaces": "Именски простори",
        "yourvariant": "Јазична варијанта на содржината:",
        "prefs-help-variant": "Вашата претпочитана варијанта или правопис за приказ на содржинските страници на ова вики.",
        "yournick": "Потпис:",
-       "prefs-help-signature": "Ð\9aоменÑ\82аÑ\80иÑ\82е Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86иÑ\82е Ð·Ð° Ñ\80азговоÑ\80 треба да се потпишуваат со „<nowiki>~~~~</nowiki>“ кое ќе се претвори во вашиот потпис и време.",
+       "prefs-help-signature": "Ð\9aоменÑ\82аÑ\80иÑ\82е Ð½Ð° Ñ\80азговоÑ\80ниÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86и треба да се потпишуваат со „<nowiki>~~~~</nowiki>“ кое ќе се претвори во вашиот потпис и време.",
        "badsig": "Грешка во потписот.\nПроверете ги HTML ознаките.",
        "badsiglength": "Вашиот потпис е премногу долг.\nМора да биде со помалку од $1 {{PLURAL:$1|знак|знаци}}.",
        "yourgender": "Пол",
        "grouppage-suppress": "{{ns:project}}:Притајување",
        "right-read": "Читање страници",
        "right-edit": "Уредување страници",
-       "right-createpage": "СоздаваÑ\9aе Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86и (кои Ð½Ðµ Ñ\81е Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80)",
-       "right-createtalk": "СоздаваÑ\9aе Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80",
+       "right-createpage": "СоздаваÑ\9aе Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86и (кои Ð½Ðµ Ñ\81е Ñ\80азговоÑ\80ни Ñ\81Ñ\82Ñ\80аниÑ\86и)",
+       "right-createtalk": "СоздаваÑ\9aе Ð½Ð° Ñ\80азговоÑ\80ни Ñ\81Ñ\82Ñ\80аниÑ\86и",
        "right-createaccount": "Создавање на нови кориснички сметки",
        "right-autocreateaccount": "Автоматска најава со надворешна корисничка сметка",
        "right-minoredit": "Означување на уредувањата како ситни",
        "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|ознаки]] во поединечни преработки и дневнички записи",
        "action-read": "читање на оваа страница",
        "action-edit": "уредување на оваа страница",
        "action-createpage": "создавање страници",
-       "action-createtalk": "Ñ\81оздаваÑ\9aе Ð½Ð° Ð¾Ð²Ð°Ð° Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80",
+       "action-createtalk": "Ñ\81оздаваÑ\9aе Ð½Ð° Ð¾Ð²Ð°Ð° Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а",
        "action-createaccount": "создај ја оваа корисничка сметка",
        "action-autocreateaccount": "автоматско создавање на оваа надворешна корисничка сметка",
        "action-history": "преглед на историјата на оваа страница",
        "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": "Го отповикува преуредувањето на околината од 2017 г. и сите алатки додадени оттогаш.",
-       "rcfilters-filter-showlinkedfrom-label": "Прикажи промени во страници кои водат од:",
-       "rcfilters-filter-showlinkedfrom-option-label": "Прикажи промени во страници кои водат ОД страница",
-       "rcfilters-filter-showlinkedto-label": "Прикажи промени во страници кои водат кон:",
-       "rcfilters-filter-showlinkedto-option-label": "Прикажи промени во страници кои водат КОН страница",
-       "rcfilters-target-page-placeholder": "Ð\98збеÑ\80ете страница",
+       "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": "Ð\92неÑ\81ете страница",
        "rcnotefrom": "Подолу {{PLURAL:$5|е прикажана промената|се прикажани промените}} почнувајќи од <strong>$3, $4</strong>  (се прикажуваат до <b>$1</b>).",
        "rclistfromreset": "Нов избор на датуми",
        "rclistfrom": "Прикажи нови промени почнувајќи од $3 $2",
        "recentchangeslinked-feed": "Поврзани промени",
        "recentchangeslinked-toolbox": "Поврзани промени",
        "recentchangeslinked-title": "Промени поврзани со „$1“",
-       "recentchangeslinked-summary": "Ð\9eва Ðµ Ñ\81пиÑ\81ок Ð½Ð° Ð¿Ñ\80омени Ð½Ð°Ð¿Ñ\80авени Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86иÑ\82е Ð¿Ð¾Ð²Ñ\80зани Ð¿Ñ\80екÑ\83 Ð½Ð°Ð·Ð½Ð°Ñ\87енаÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а (или Ð´Ð¾ Ñ\87ленови Ð½Ð° Ð½Ð°Ð·Ð½Ð°Ñ\87енаÑ\82а ÐºÐ°Ñ\82егоÑ\80иÑ\98а).\nСÑ\82Ñ\80аниÑ\86иÑ\82е Ð½Ð° [[Special:Watchlist|ваÑ\88иоÑ\82 Ñ\81пиÑ\81ок Ð½Ð° Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83ваÑ\9aа]] Ñ\81е Ð¿Ñ\80икажани '''задебелено'''.",
+       "recentchangeslinked-summary": "Ð\92неÑ\81еÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ð´Ð° Ð³Ð¸ Ð²Ð¸Ð´Ð¸Ñ\82е Ð¿Ñ\80омениÑ\82е ÐºÐ¾Ð¸ Ð²Ð¾Ð´Ð°Ñ\82 ÐºÐ¾Ð½ Ð¸Ð»Ð¸ Ð¾Ð´ Ð½ÐµÐ°. (Ð\97а Ð´Ð° Ð³Ð¸ Ð²Ð¸Ð´Ð¸Ñ\82е Ñ\87леновиÑ\82е Ð½Ð° ÐºÐ°Ñ\82егоÑ\80иÑ\98а, Ð²Ð½ÐµÑ\81еÑ\82е Ð\9aаÑ\82егоÑ\80иÑ\98а:Ð\98ме Ð½Ð° ÐºÐ°Ñ\82егоÑ\80иÑ\98аÑ\82а). Ð\9fÑ\80омениÑ\82е Ð²Ð¾ Ñ\81Ñ\82Ñ\80аниÑ\86иÑ\82е Ð²Ð¾ [[Special:Watchlist|набÑ\99Ñ\83дÑ\83ваÑ\9aаÑ\82а]] Ñ\81е <strong>задебелени</strong>.",
        "recentchangeslinked-page": "Име на страницата:",
        "recentchangeslinked-to": "Прикажи ги промените на страниците поврзани со дадената страница",
        "recentchanges-page-added-to-category": "[[:$1]] ставена во категорија",
        "statistics-header-hooks": "Други статистики",
        "statistics-articles": "Статии",
        "statistics-pages": "Страници",
-       "statistics-pages-desc": "СиÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86и Ð½Ð° Ð²Ð¸ÐºÐ¸Ñ\82о, Ð²ÐºÐ»Ñ\83Ñ\87Ñ\83ваÑ\98Ñ\9cи Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80, пренасочувања и тн.",
+       "statistics-pages-desc": "СиÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86и Ð½Ð° Ð²Ð¸ÐºÐ¸Ñ\82о, Ð²ÐºÐ»Ñ\83Ñ\87Ñ\83ваÑ\98Ñ\9cи Ñ\80азговоÑ\80ни Ñ\81Ñ\82Ñ\80аниÑ\86и, пренасочувања и тн.",
        "statistics-files": "Подигнати податотеки",
        "statistics-edits": "Број на уредувања од започнувањето на {{SITENAME}}",
        "statistics-edits-average": "Просечен број на уредувања по страница",
        "watchlistanontext": "Најавете се за да можете да го прегледувате и уредувате набљудуваните.",
        "watchnologin": "Не сте најавени",
        "addwatch": "Додај во набљудувани",
-       "addedwatchtext": "â\80\9e[[:$1]]â\80\9c Ð¸ Ð½ÐµÑ\98зинаÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 се додадени во вашите [[Special:Watchlist|набљудувања]].",
+       "addedwatchtext": "â\80\9e[[:$1]]â\80\9c Ð¸ Ð½ÐµÑ\98зинаÑ\82а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а се додадени во вашите [[Special:Watchlist|набљудувања]].",
        "addedwatchtext-talk": "„[[:$1]]“ и нејзината поврзана страница се додадени во вашите [[Special:Watchlist|набљудувања]].",
        "addedwatchtext-short": "Страницата „$1“ е додадена во вашите набљудувања.",
        "removewatch": "Отстрани набљудуваните",
-       "removedwatchtext": "â\80\9e[[:$1]]â\80\9c Ð¸ Ð½ÐµÑ\98зинаÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 се отстранети од вашите [[Special:Watchlist|набљудувања]].",
+       "removedwatchtext": "â\80\9e[[:$1]]â\80\9c Ð¸ Ð½ÐµÑ\98зинаÑ\82а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а се отстранети од вашите [[Special:Watchlist|набљудувања]].",
        "removedwatchtext-talk": "„[[:$1]]“ и нејзината поврзана страница се отстранети од вашите [[Special:Watchlist|набљудувања]].",
        "removedwatchtext-short": "Страницата „$1“ е отстранета од вашите набљудувања.",
        "watch": "Набљудувај",
        "unwatchthispage": "Престани набљудување",
        "notanarticle": "Не е статија",
        "notvisiblerev": "Преработката била избришана",
-       "watchlist-details": "Ð\92о Ð²Ð°Ñ\88иÑ\82е Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83вани Ð¸Ð¼Ð°Ñ\82е {{PLURAL:$1|$1 Ñ\81Ñ\82Ñ\80аниÑ\86а|$1 Ñ\81Ñ\82Ñ\80аниÑ\86и}} (не Ð±Ñ\80оеÑ\98Ñ\9cи Ð³Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86иÑ\82е Ð·Ð° Ñ\80азговоÑ\80).",
+       "watchlist-details": "Ð\92о Ð²Ð°Ñ\88иÑ\82е Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83вани Ð¸Ð¼Ð°Ñ\82е {{PLURAL:$1|$1 Ñ\81Ñ\82Ñ\80аниÑ\86а|$1 Ñ\81Ñ\82Ñ\80аниÑ\86и}} (не Ð±Ñ\80оеÑ\98Ñ\9cи Ð³Ð¸ Ñ\80азговоÑ\80ниÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86и).",
        "wlheader-enotif": "Известувањето по е-пошта е вклучено.",
        "wlheader-showupdated": "Страниците што се изменети од вашата последна посета се прикажани со '''задебелени''' букви",
        "wlnote": "Подолу {{PLURAL:$1|е прикажана последната промена|се прикажани последните <strong>$1</strong> промени}} во {{PLURAL:$2|последниов час|последниве <strong>$2</strong> часа}}, заклучно со $3, $4 ч.",
        "ipbother": "Друг рок:",
        "ipboptions": "2 часа:2 hours,1 ден:1 day,3 дена:3 days,1 недела:1 week,2 недели:2 weeks,1 месец:1 month,3 месеци:3 months,6 месеци:6 months,1 година:1 year,бесконечно:infinite",
        "ipbhidename": "Скриј го корисничкото име во уредувањата и списоците",
-       "ipbwatchuser": "Ð\9dабÑ\99Ñ\83дÑ\83ваÑ\98 Ñ\98а ÐºÐ¾Ñ\80иÑ\81ниÑ\87каÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ð·Ð° Ñ\80азговоÑ\80 на овој корисник",
-       "ipb-disableusertalk": "СпÑ\80еÑ\87и Ð³Ð¾ ÐºÐ¾Ñ\80иÑ\81ников Ð´Ð° Ñ\98а Ñ\83Ñ\80едÑ\83ва Ð½ÐµÐ³Ð¾Ð²Ð°Ñ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 додека е блокиран",
+       "ipbwatchuser": "Ð\9dабÑ\99Ñ\83дÑ\83ваÑ\98 Ñ\98а ÐºÐ¾Ñ\80иÑ\81ниÑ\87каÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸ Ñ\80азговоÑ\80наÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а на овој корисник",
+       "ipb-disableusertalk": "СпÑ\80еÑ\87и Ð³Ð¾ ÐºÐ¾Ñ\80иÑ\81ников Ð´Ð° Ñ\98а Ñ\83Ñ\80едÑ\83ва Ð½ÐµÐ³Ð¾Ð²Ð°Ñ\82а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а додека е блокиран",
        "ipb-change-block": "Преблокирај го корисникот со овие нагодувања",
        "ipb-confirm": "Потврди блок",
        "badipaddress": "Неважечка IP-адреса",
        "noautoblockblock": "оневозможено автоблокирање",
        "createaccountblock": "создавањето на кориснички сметки е блокирано",
        "emailblock": "блокирана е-пошта",
-       "blocklist-nousertalk": "без Ð¼Ð¾Ð¶Ð½Ð¾Ñ\81Ñ\82 Ð·Ð° Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81воÑ\98аÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80",
+       "blocklist-nousertalk": "без Ð¼Ð¾Ð¶Ð½Ð¾Ñ\81Ñ\82 Ð·Ð° Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81воÑ\98аÑ\82а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а",
        "ipblocklist-empty": "Списокот на блокирања е празен.",
        "ipblocklist-no-results": "Бараната IP-адреса или корисничка сметка не е блокирана.",
        "blocklink": "блокирај",
        "block-log-flags-nocreate": "оневозможено создавање кориснички сметки",
        "block-log-flags-noautoblock": "автоблокирање исклучено",
        "block-log-flags-noemail": "блокирана е-поштенска адреса",
-       "block-log-flags-nousertalk": "без Ð¼Ð¾Ð¶Ð½Ð¾Ñ\81Ñ\82 Ð·Ð° Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81воÑ\98аÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80",
+       "block-log-flags-nousertalk": "без Ð¼Ð¾Ð¶Ð½Ð¾Ñ\81Ñ\82 Ð·Ð° Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81воÑ\98аÑ\82а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а",
        "block-log-flags-angry-autoblock": "овозможено проширено автоблокирање",
        "block-log-flags-hiddenname": "сокриено корисничко име",
        "range_block_disabled": "Администраторската можност да блокираат IP групи е исклучена.",
        "move-page-legend": "Премести страница",
        "movepagetext": "Со користењето на овој образец можете да преименувате страница, преместувајќи ја целата нејзина историја под ново име.\nСтариот наслов ќе стане пренасочувачка страница кон новиот наслов.\nАвтоматски можете да ги подновите пренасочувањата кои покажуваат кон првобитниот наслов.\nАко не изберете автоматско подновување, проверете на [[Special:DoubleRedirects|двојни]] или [[Special:BrokenRedirects|прекинати пренасочувања]].\nНа вас е одговорноста да се осигурате дека врските ќе продолжат да насочуваат таму за каде се предвидени.\n\nИмајте предвид дека страницата '''нема''' да биде преместена ако веќе постои страница со новиот наслов, освен ако е не е пренасочување и нема историја на минати уредувања. Тоа значи дека можете да ја преименувате страницата како што била претходно доколку сте направиле грешка без да ја прекриете постоечката страница.\n\n'''Напомена:'''\nОва може да биде драстична и неочекувана промена за популарна страница;\nосигурајте се дека сте ги разбрале последиците од ова пред да продолжите.",
        "movepagetext-noredirectfixer": "Со користењето на овој образец можете да преименувате страница, преместувајќи ја целата нејзина историја под ново име.\nСтариот наслов ќе стане пренасочувачка страница кон новиот наслов.\nАвтоматски можете да ги подновите пренасочувањата кои покажуваат кон првобитниот наслов.\nНе заборавајте да проверите [[Special:DoubleRedirects|двојни]] и [[Special:BrokenRedirects|прекинати пренасочувања]].\nНа вас е одговорноста да се осигурате дека врските ќе продолжат да насочуваат таму за каде се предвидени.\n\nИмајте предвид дека страницата '''НЕМА''' да биде преместена ако веќе постои страница со новиот наслов, освен ако е празна или ако е пренасочување и нема историја на минати уредувања. Тоа значи дека можете да ја преименувате страницата како што била претходно доколку сте направиле грешка без да ја прекриете постоечката страница.\n\n'''Напомена:'''\nОва може да биде драстична и неочекувана промена за популарна страница;\nосигурајте се дека сте ги разбрале последиците од ова пред да продолжите.",
-       "movepagetalktext": "Ð\90ко Ð³Ð¾ Ñ\88Ñ\82иклиÑ\80аÑ\82е ÐºÑ\83Ñ\82ивÑ\87ево, Ñ\81оодвеÑ\82наÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 Ñ\9cе Ð±Ð¸Ð´Ðµ Ð°Ð²Ñ\82омаÑ\82Ñ\81ки Ð¿Ñ\80емеÑ\81Ñ\82ена Ð½Ð° Ð½Ð¾Ð² Ð½Ð°Ñ\81лов, Ð¾Ñ\81вен Ð°ÐºÐ¾ Ñ\82амÑ\83 Ð²ÐµÑ\9cе Ð¿Ð¾Ñ\81Ñ\82ои Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 што не е празна.\n\nВо тој случај, ќе треба да ја преместите или споите страницата рачно, доколку сакате.",
+       "movepagetalktext": "Ð\90ко Ð³Ð¾ Ñ\88Ñ\82иклиÑ\80аÑ\82е ÐºÑ\83Ñ\82ивÑ\87ево, Ñ\81оодвеÑ\82наÑ\82а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\9cе Ð±Ð¸Ð´Ðµ Ð°Ð²Ñ\82омаÑ\82Ñ\81ки Ð¿Ñ\80емеÑ\81Ñ\82ена Ð½Ð° Ð½Ð¾Ð² Ð½Ð°Ñ\81лов, Ð¾Ñ\81вен Ð°ÐºÐ¾ Ñ\82амÑ\83 Ð²ÐµÑ\9cе Ð¿Ð¾Ñ\81Ñ\82ои Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а  што не е празна.\n\nВо тој случај, ќе треба да ја преместите или споите страницата рачно, доколку сакате.",
        "moveuserpage-warning": "'''Предупредување:''' На пат сте да преместите корисничка страница. Имајте предвид дека само страницата ќе биде преместена, а самиот корисник ''нема'' да биде преименуван.",
        "movecategorypage-warning": "<strong>Предупредување:</strong> Преместувате категориска страница. Имајте предвид дека ќе се премести само страницата, а страниците во старата категорија <em>нема</em> да се прекатегоризираат во новата.",
        "movenologintext": "Мора да бидете регистриран корисник и да сте [[Special:UserLogin|најавени]] за да можете да преместувате страници.",
        "movepage-moved-noredirect": "Создавањето на пренасочување е оневозможено.",
        "articleexists": "Веќе постои страница со тоа име, или името што го одбравте е неважечко.\nИзберете друго име.",
        "cantmove-titleprotected": "Не може да ја преместите страницата на тоа место бидејќи саканиот наслов е заштитен од создавање.",
-       "movetalk": "Ð\9fÑ\80емеÑ\81Ñ\82и Ñ\98а Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ð·Ð° Ñ\80азговоÑ\80, ако е возможно.",
+       "movetalk": "Ð\9fÑ\80емеÑ\81Ñ\82и Ñ\98а Ð¸ Ñ\80азговоÑ\80наÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а, ако е возможно.",
        "move-subpages": "Премести ги и потстраниците (највеќе до $1)",
-       "move-talk-subpages": "Ð\9fÑ\80емеÑ\81Ñ\82и Ð¿Ð¾Ñ\82Ñ\81Ñ\82Ñ\80аниÑ\86и Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80 (највеќе до $1)",
+       "move-talk-subpages": "Ð\9fÑ\80емеÑ\81Ñ\82и Ð¿Ð¾Ñ\82Ñ\81Ñ\82Ñ\80аниÑ\86и Ð½Ð° Ñ\80азговоÑ\80ни Ñ\81Ñ\82Ñ\80аниÑ\86и (највеќе до $1)",
        "movepage-page-exists": "Страницата $1 веќе постои и не може автоматски да биде заменета.",
        "movepage-page-moved": "Страницата $1 е преместена на $2.",
        "movepage-page-unmoved": "Страницата $1 не може да биде преместена во $2.",
        "javascripttest-qunit-intro": "Вид. [$1 документација на испробувањето] на mediawiki.org.",
        "tooltip-pt-userpage": "{{GENDER:|Вашата}} корисничка страница",
        "tooltip-pt-anonuserpage": "Корисничка страница за IP-адресата од која уредувате",
-       "tooltip-pt-mytalk": "{{GENDER:|Ð\92аÑ\88аÑ\82а}} Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80",
+       "tooltip-pt-mytalk": "{{GENDER:|Ð\92аÑ\88аÑ\82а}} Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а",
        "tooltip-pt-anontalk": "Разговор за уредувањата од оваа IP-адреса",
        "tooltip-pt-preferences": "{{GENDER:|Ваши}} нагодувања",
        "tooltip-pt-watchlist": "Список на страници кои сте избрале да ги набљудувате.",
        "tooltip-pt-login-private": "Ќе треба да се најавите за да го користите викито",
        "tooltip-pt-logout": "Одјавување",
        "tooltip-pt-createaccount": "Ви препорачуваме да направите сметка и да се најавите, иако тоа не е задолжително",
-       "tooltip-ca-talk": "Разговор за страницата",
+       "tooltip-ca-talk": "Разговор за содржинската страница",
        "tooltip-ca-edit": "Уредете ја страницава",
        "tooltip-ca-addsection": "Започни нов пасус",
        "tooltip-ca-viewsource": "Оваа страница е заштитена. Можете да го видите изворниот код.",
index 515f4cc..51db50d 100644 (file)
        "rcfilters-activefilters": "സജീവ അരിപ്പകൾ",
        "rcfilters-advancedfilters": "വിപുല അരിപ്പകൾ",
        "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": "{{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസം}}",
        "rcfilters-days-show-hours": "{{PLURAL:$1|ഒരു മണിക്കൂർ|$1 മണിക്കൂർ}}",
        "rcfilters-highlighted-filters-list": "പ്രമുഖമാക്കിയവ: $1",
        "rcfilters-quickfilters": "സേവ് ചെയ്തിട്ടുള്ള അരിപ്പകൾ",
-       "rcfilters-quickfilters-placeholder-title": "à´\95à´£àµ\8dണികളൊന്നും ഇതുവരെ സേവ് ചെയ്തിട്ടില്ല",
+       "rcfilters-quickfilters-placeholder-title": "à´\85à´°à´¿à´ªàµ\8dà´ªകളൊന്നും ഇതുവരെ സേവ് ചെയ്തിട്ടില്ല",
        "rcfilters-quickfilters-placeholder-description": "താങ്കളുടെ അരിപ്പകളുടെ സജ്ജീകരണം സേവ് ചെയ്ത് പിന്നീടുപയോഗിക്കാനായി, താഴെയുള്ള സജീവ അരിപ്പകളുടെ ഭാഗത്തെ ബുക്ക്‌മാർക്ക് ഐകോണിൽ അമർത്തുക.",
        "rcfilters-savedqueries-defaultlabel": "സേവ് ചെയ്തിട്ടുള്ള അരിപ്പകൾ",
        "rcfilters-savedqueries-rename": "പേരുമാറ്റുക",
        "rcfilters-exclude-button-on": "തിരഞ്ഞെടുത്തവ ഒഴിവാക്കുക",
        "rcfilters-view-tags": "ടാഗ് ചെയ്തിട്ടുള്ള തിരുത്തുകൾ",
        "rcfilters-view-namespaces-tooltip": "നാമമേഖല അനുസരിച്ച് ഫലങ്ങൾ അരിച്ചെടുക്കുക",
+       "rcfilters-view-tags-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> കാണിച്ചിരിക്കുന്നു.",
        "rcnotefrom": "<strong>$3, $4</strong> മുതലുള്ള {{PLURAL:$5|മാറ്റം|മാറ്റങ്ങൾ}} ആണ് താഴെയുള്ളത്  (<strong>$1</strong> എണ്ണം വരെ കൊടുക്കുന്നതാണ്).",
        "rclistfromreset": "തീയതി എടുത്തത് പുനഃസജ്ജീകരിക്കുക",
        "rclistfrom": "$3 $2 മുതലുള്ള മാറ്റങ്ങൾ പ്രദർശിപ്പിക്കുക",
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 35e35ee..5202c2e 100644 (file)
        "minoredit": "Din hija modifika minuri",
        "watchthis": "Segwi din il-paġna",
        "savearticle": "Salva l-paġna",
+       "publishpage": "Ippubblika l-paġna",
        "publishchanges": "Ippubblika l-modifiki",
        "preview": "Dehra proviżorja",
        "showpreview": "Dehra proviżorja",
index da11043..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>).",
        "uploadnewversion-linktext": "Cargar ua nuoba berson deste fexeiro",
        "shared-repo-from": "de $1",
        "upload-disallowed-here": "Nun puode sustituir este fexeiro.",
-       "filerevert-comment": "Motibo:",
+       "filerevert-comment": "Rezon:",
        "filedelete": "Apagar $1",
        "filedelete-legend": "Apagar fexeiro",
        "filedelete-submit": "Apagar",
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 c19ad1c..aa9636f 100644 (file)
        "timezoneregion-indian": "Indiahavet",
        "timezoneregion-pacific": "Stillehavet",
        "allowemail": "Tillat andre å sende meg e-post",
+       "email-allow-new-users-label": "Tillat e-poster fra helt nyregistrerte brukere",
        "email-blacklist-label": "Forhindre disse brukerne fra å sende meg e-post:",
        "prefs-searchoptions": "Søk",
        "prefs-namespaces": "Navnerom",
        "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",
        "recentchanges-noresult": "Ingen endringer i perioden passer med kriteriene.",
        "recentchanges-timeout": "Tidsfristen for søket har løpt ut. Du bør prøve andre søkeparametere.",
        "recentchanges-network": "På grunn av en teknisk feil kunne ikke resultatene lastes. Prøv å oppdatere siden.",
+       "recentchanges-notargetpage": "Skriv inn et sidenavn ovenfor for å se endringer som er relatert til den siden.",
        "recentchanges-feed-description": "Følg med på siste endringer i denne wikien med denne matingen.",
        "recentchanges-label-newpage": "Denne redigeringen opprettet en ny side",
        "recentchanges-label-minor": "Dette er en mindre endring",
        "rcfilters-watchlist-showupdated": "Endringer til sider du ikke har besøkt siden endringene ble gjort vises med <strong>fet</strong> skrift.",
        "rcfilters-preference-label": "Skjul den forbedrede versjonen av siste endringer",
        "rcfilters-preference-help": "Fjerner grensesnittendringen fra 2017 og alle verktøyene som ble lagt fra og med da.",
+       "rcfilters-filter-showlinkedfrom-label": "Vis endringer på sider som lenkes fra",
+       "rcfilters-filter-showlinkedfrom-option-label": "Vis endringer på sider som lenkes <strong>FRA</strong> en side",
+       "rcfilters-filter-showlinkedto-label": "Vis endringer på sider som lenker til",
+       "rcfilters-filter-showlinkedto-option-label": "Vis endringer på sider som lenker <strong>TIL</strong> en side",
+       "rcfilters-target-page-placeholder": "Skriv inn et sidenavn",
        "rcnotefrom": "Nedenfor er vist {{PLURAL:$5|endringen|endringene}} som er gjort siden <strong>$3, $4</strong> (frem til <strong>$1</strong>).",
        "rclistfromreset": "Nullstill datovalg",
        "rclistfrom": "Vis nye endringer fra og med $3 $2",
        "recentchangeslinked-feed": "Relaterte endringer",
        "recentchangeslinked-toolbox": "Relaterte endringer",
        "recentchangeslinked-title": "Endringer relatert til «$1»",
-       "recentchangeslinked-summary": "Dette er en liste over de siste endringene på sidene som eer lenket fra en angitt side (eller til medlemmer av en angitt kategori).\nSider på [[Special:Watchlist|overvåkningslisten din]] er i '''fet skrift'''.",
+       "recentchangeslinked-summary": "Skriv inn et sidenavn for å se endringer på sider som lenker til eller lenkes fra den siden. (For å se medlemmene av en kategori, skriv inn Kategori:Kategorinavn.) Endringer på sider som er på [[Special:Watchlist|overvåkningslista di]] er i <strong>fet skrift</strong>.",
        "recentchangeslinked-page": "Sidenavn:",
        "recentchangeslinked-to": "Vis endringer på sider som lenker til den gitte siden istedet",
        "recentchanges-page-added-to-category": "[[:$1]] ble lagt til i kategorien",
        "weeks": "{{PLURAL:$1|$1 uke|$1 uker}}",
        "months": "{{PLURAL:$1|$1 måned|$1 måneder}}",
        "years": "{{PLURAL:$1|$1 år}}",
-       "ago": "$1 siden",
+       "ago": "for $1 siden",
        "just-now": "nettopp",
        "hours-ago": "$1 {{PLURAL:$1|time|timer}} siden",
        "minutes-ago": "$1 {{PLURAL:$1|minutt|minutter}} siden",
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 68cfcae..7358dfd 100644 (file)
        "createacct-email-ph": "Geef uw e-mailadres op",
        "createacct-another-email-ph": "Geef een e-mailadres op",
        "createaccountmail": "Gebruik een tijdelijk willekeurig wachtwoord en stuur het naar het opgegeven e-mailadres",
-       "createaccountmail-help": "Kan worden gebruikt voor het aanmaken van een account voor een andere persoon zonder het wachtwoord te leren.",
+       "createaccountmail-help": "Kan worden gebruikt voor het aanmaken van een account voor een andere persoon zonder het wachtwoord te vernemen.",
        "createacct-realname": "Echte naam (optioneel)",
        "createacct-reason": "Reden",
        "createacct-reason-ph": "Waarom u een ander account aanmaakt",
        "createacct-reason-help": "Weergegeven bericht in het logbestand van aangemaakte gebruikers",
-       "createacct-submit": "Account aanmaken",
+       "createacct-submit": "Uw account aanmaken",
        "createacct-another-submit": "Account aanmaken",
-       "createacct-continue-submit": "Doorgaan met het maken van een account",
-       "createacct-another-continue-submit": "Doorgaan met het maken van een account",
+       "createacct-continue-submit": "Doorgaan met het aanmaken van een account",
+       "createacct-another-continue-submit": "Doorgaan met het aanmaken van een account",
        "createacct-benefit-heading": "{{SITENAME}} wordt gemaakt door mensen zoals u.",
        "createacct-benefit-body1": "bewerking{{PLURAL:$1||en}}",
        "createacct-benefit-body2": "pagina{{PLURAL:$1||'s}}",
        "createacct-benefit-body3": "recente bijdrager{{PLURAL:$1||s}}",
        "badretype": "De ingevoerde wachtwoorden verschillen van elkaar.",
-       "usernameinprogress": "Het aanmaken van een account met die naam is al bezig.\nEven geduld alstublieft.",
+       "usernameinprogress": "Het aanmaken van een account met die naam is al in behandeling.\nEven geduld alstublieft.",
        "userexists": "De gekozen gebruikersnaam is al in gebruik.\nKies een andere naam.",
        "loginerror": "Aanmeldfout",
        "createacct-error": "Fout tijdens aanmaken account",
        "eauthentsent": "Er is ter bevestiging een e-mail naar het opgegeven e-mailadres gezonden.\nVolg de aanwijzingen in de e-mail om te bevestigen dat het uw account is.\nTot die tijd wordt er geen andere e-mail naar het account gezonden.",
        "throttled-mailpassword": "In {{PLURAL:$1|het laatste uur|de laatste $1 uur}} is al een wachtwoordherinnering verzonden.\nOm misbruik te voorkomen wordt er slechts één wachtwoordherinnering per {{PLURAL:$1|uur|$1 uur}} verzonden.",
        "mailerror": "Fout bij het verzenden van e-mail: $1",
-       "acct_creation_throttle_hit": "Bezoekers van deze wiki hebben vanaf uw IP-adres de afgelopen $2 al {{PLURAL:$1|1 account|$1 accounts}} aangemaakt, wat het maximale toegestane aantal is voor deze periode.\nDaarom kunt u momenteel vanaf dit IP-adres geen nieuwe accounts aanmaken.",
+       "acct_creation_throttle_hit": "Bezoekers van deze wiki hebben vanaf uw IP-adres de afgelopen $2 al {{PLURAL:$1|een account|$1 accounts}} aangemaakt, wat het maximaal toegestane aantal is voor deze periode.\nDaarom kunt u momenteel vanaf dit IP-adres geen nieuwe accounts aanmaken.",
        "emailauthenticated": "Uw e-mailadres is bevestigd op $2 om $3.",
        "emailnotauthenticated": "Uw e-mailadres is niet bevestigd.\nDe volgende functies verzenden nog geen e-mail.",
        "noemailprefs": "Geef een e-mailadres op in uw voorkeuren om deze functies te gebruiken.",
        "createaccount-text": "Iemand heeft een account voor uw e-mailadres op {{SITENAME}} ($4) aangemaakt genaamd \"$2\", met wachtwoord \"$3\".\nMeld u aan en wijzig uw wachtwoord.\n\nU kunt dit bericht negeren als dit account zonder uw medeweten is aangemaakt.",
        "login-throttled": "U heeft recentelijk te veel aanmeldpogingen gedaan.\nWacht alstublieft $1 voordat u het opnieuw probeert.",
        "login-abort-generic": "Uw aanmelding is mislukt - Afgebroken",
-       "login-migrated-generic": "Uw gebruikersnaam is hernoemd, en uw gebruikersnaam bestaat niet langer op deze wiki.",
+       "login-migrated-generic": "Uw account is hernoemd, en uw gebruikersnaam bestaat niet langer op deze wiki.",
        "loginlanguagelabel": "Taal: $1",
        "suspicious-userlogout": "Uw verzoek om af te melden is genegeerd, omdat het lijkt alsof het verzoek is verzonden door een browser of cacheproxy die stuk is.",
        "createacct-another-realname-tip": "Een echte naam is optioneel.\nAls u een naam opgeeft, wordt deze gebruikt ter erkenning voor diens werk.",
        "changepassword-success": "Uw wachtwoord is gewijzigd!",
        "changepassword-throttled": "U heeft recentelijk te veel mislukte aanmeldpogingen gedaan.\nWacht alstublieft $1 voordat u het opnieuw probeert.",
        "botpasswords": "Botwachtwoorden",
-       "botpasswords-summary": "<em>Botwachtwoorden</em> zorgen voor toegang tot de API via een gebruikersaccount zonder gebruik te maken van de aanmeldgegevens van dat account. De gebruikersrechten die beschikbaar zijn kunnen afwijken indien er aangemeld is met een botwachtwoord.\n\nAls u niet weet wat de gevolgen hiervan zijn, is het handiger om dit ook dan niet te doen. Niemand hoort u te vragen om een botwachtwoord aan te maken en deze vervolgens aan hem of haar te geven.",
+       "botpasswords-summary": "<em>Botwachtwoorden</em> zorgen voor toegang tot een gebruikersaccount via de API, zonder gebruik te maken van de aanmeldgegevens van dat account. De beschikbare gebruikersrechten zijn mogelijk beperkt wanneer er met een botwachtwoord is aangemeld.\n\nAls u niet weet waarom u een botwachtwoord zou willen aanmaken, is het raadzaam het niet te doen. Niemand hoort u te vragen om een botwachtwoord aan te maken en dit aan hem of haar te geven.",
        "botpasswords-disabled": "Botwachtwoorden zijn uitgeschakeld.",
-       "botpasswords-no-central-id": "Om botwachtwoorden te gebruiken, moet u ingelogd zijn met een gecentraliseerd account",
+       "botpasswords-no-central-id": "Om botwachtwoorden te gebruiken, moet u ingelogd zijn met een gecentraliseerd account.",
        "botpasswords-existing": "Bestaande botwachtwoorden",
        "botpasswords-createnew": "Een nieuw botwachtwoord aanmaken",
        "botpasswords-editexisting": "Een bestaand botwachtwoord bewerken",
        "botpasswords-label-delete": "Verwijderen",
        "botpasswords-label-resetpassword": "Het wachtwoord opnieuw instellen",
        "botpasswords-label-grants": "Van toepassing zijnde rechten:",
-       "botpasswords-help-grants": "Toestemmingen geven toegang tot gebruikersrechten die u al heeft. Het geven van een toestemming op deze plek geeft u geen toegang tot gebruikersrechten die u anders niet zou hebben. Zie het [[Special:ListGrants|overzicht van toestemmingen]] voor meer informatie.",
+       "botpasswords-help-grants": "Toestemmingen geven toegang tot rechten die uw gebruikersaccount al heeft. Het geven van een toestemming op deze plek geeft geen toegang tot rechten die uw gebruikersaccount anders niet zou hebben. Zie het [[Special:ListGrants|overzicht van toestemmingen]] voor meer informatie.",
        "botpasswords-label-grants-column": "Toegewezen",
        "botpasswords-bad-appid": "De botnaam \"$1\" is niet geldig.",
        "botpasswords-insert-failed": "Toevoegen van botnaam \"$1\" mislukt. Is deze misschien al toegevoegd?",
        "passwordreset-domain": "Domein:",
        "passwordreset-email": "E-mailadres:",
        "passwordreset-emailtitle": "Accountgegevens op {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Iemand (waarschijnlijk u, vanaf IP-adres $1) heeft een aanvraag gedaan om uw wachtwoord voor {{SITENAME}} ($4) opnieuw in te stellen. {{PLURAL:$3|Het volgende gebruikersaccount is|De volgende gebruikersaccounts zijn}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tijdelijke wachtwoord vervalt|Deze tijdelijke wachtwoorden vervallen}} over {{PLURAL:$5|een dag|$5 dagen}}. Meld u aan en wijzig het wachtwoord nu. Als u dit verzoek niet zelf heeft gedaan, of als u het oorspronkelijke wachtwoord nog kent en het niet wilt wijzigen, negeer dit bericht dan en blijf uw oude wachtwoord gebruiken.",
+       "passwordreset-emailtext-ip": "Iemand (waarschijnlijk u, vanaf IP-adres $1) heeft een aanvraag gedaan om uw wachtwoord voor {{SITENAME}} ($4) opnieuw in te stellen. {{PLURAL:$3|Het volgende gebruikersaccount is|De volgende gebruikersaccounts zijn}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tijdelijke wachtwoord vervalt|Deze tijdelijke wachtwoorden vervallen}} over {{PLURAL:$5|een dag|$5 dagen}}. Meld u aan en wijzig het wachtwoord nu. Als u dit verzoek niet zelf heeft gedaan, of als u het oorspronkelijke wachtwoord herinnert en het niet wilt wijzigen, negeer dit bericht dan en blijf uw oude wachtwoord gebruiken.",
        "passwordreset-emailtext-user": "Gebruiker $1 op {{SITENAME}} heeft een aanvraag gedaan om uw wachtwoord voor {{SITENAME}} ($4) opnieuw in te stellen. {{PLURAL:$3|Het volgende gebruikersaccount is|De volgende gebruikersaccounts zijn}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tijdelijke wachtwoord vervalt|Deze tijdelijke wachtwoorden vervallen}} over {{PLURAL:$5|een dag|$5 dagen}}.\nMeld u aan en wijzig het wachtwoord nu. Als u dit verzoek niet zelf heeft gedaan, of als u het oorspronkelijke wachtwoord nog kent en het niet wilt wijzigen, negeer dit bericht dan en blijf uw oude wachtwoord gebruiken.",
        "passwordreset-emailelement": "Gebruikersnaam: \n$1\n\nTijdelijk wachtwoord: \n$2",
        "passwordreset-emailsentemail": "Als dit e-mailadres aan uw account gekoppeld is, dan wordt er een e-mail verzonden om uw wachtwoord opnieuw in te stellen.",
        "passwordreset-invalidemail": "Ongeldig e-mailadres",
        "passwordreset-nodata": "Er is geen gebruikersnaam of e-mailadres opgegeven",
        "changeemail": "E-mailadres wijzigen of verwijderen",
-       "changeemail-header": "Vul dit formulier in om uw e-mailadres te wijzigen. Als u het e-mailadres wilt ontkoppelen van uw account, laat het e-mailadres dan leeg als u het formulier opslaat.",
+       "changeemail-header": "Vul dit formulier in om uw e-mailadres te wijzigen. Als u geen enkel e-mailadres aan uw account gekoppeld wilt hebben, laat het veld voor het nieuwe e-mailadres dan leeg.",
        "changeemail-no-info": "U moet aangemeld zijn om rechtstreeks toegang te hebben tot deze pagina.",
        "changeemail-oldemail": "Huidig e-mailadres:",
        "changeemail-newemail": "Nieuw e-mailadres:",
-       "changeemail-newemail-help": "Laat dit veld leeg als u uw e-mailadres wilt verwijderen. Na het verwijderen kunt u niet langer een vergeten wachtwoord opnieuw instellen en u ontvangt geen e-mails van deze wiki meer.",
+       "changeemail-newemail-help": "Laat dit veld leeg als u uw e-mailadres wilt verwijderen. Zonder gekoppeld e-mailadres kunt u een vergeten wachtwoord niet opnieuw instellen en ontvangt u geen e-mails van deze wiki meer.",
        "changeemail-none": "(geen)",
        "changeemail-password": "Uw wachtwoord voor {{SITENAME}}:",
        "changeemail-submit": "E-mailadres wijzigen",
        "changeemail-throttled": "U heeft recentelijk te veel mislukte aanmeldpogingen gedaan.\nWacht alstublieft $1 voordat u het opnieuw probeert.",
        "changeemail-nochange": "Geef een ander e-mailadres op.",
        "resettokens": "Tokens opnieuw instellen",
-       "resettokens-text": "U kunt tokens opnieuw instellen die toegang geven tot bepaalde persoonlijke gegevens die aan uw account zijn verbonden.\n\nU zou dit moeten doen als u ze per ongeluk gedeeld heeft met anderen of als onbevoegden toegang tot uw account hebben gehad.",
+       "resettokens-text": "U kunt hier tokens die toegang geven tot bepaalde aan uw account gekoppelde privégegevens opnieuw instellen.\n\nU zou dit moeten doen als u ze per ongeluk met anderen hebt gedeeld of als onbevoegden toegang tot uw account hebben gehad.",
        "resettokens-no-tokens": "Er zijn geen tokens om opnieuw in te stellen.",
        "resettokens-tokens": "Tokens:",
        "resettokens-token-label": "$1 (huidige waarde: $2)",
        "showpreview": "Bewerking ter controle bekijken",
        "showdiff": "Wijzigingen bekijken",
        "blankarticle": "<strong>Waarschuwing:</strong> de pagina die u wilt aanmaken is leeg.\nAls u opnieuw op \"$1\" klikt, wordt de pagina aangemaakt zonder enige inhoud.",
-       "anoneditwarning": "<strong>Waarschuwing:</strong> U bent niet aangemeld.\nUw IP-adres zal voor iedereen zichtbaar zijn als u wijzigingen op deze pagina maakt. Wanneer u <strong>[$1 zich aanmeldt]</strong> of <strong>[$2 een account aanmaakt]</strong>, verschijnen uw bewerkingen onder uw gebruikersnaam, naast andere voordelen.",
+       "anoneditwarning": "<strong>Waarschuwing:</strong> U bent niet aangemeld.\nUw IP-adres zal voor iedereen zichtbaar zijn als u wijzigingen op deze pagina maakt. Wanneer u <strong>[$1 zich aanmeldt]</strong> of <strong>[$2 een account aanmaakt]</strong>, worden uw bewerkingen aan uw gebruikersnaam toegeschreven, naast andere voordelen.",
        "anonpreviewwarning": "<em>U bent niet aangemeld. Door uw bewerking op te slaan wordt uw IP-adres in de paginageschiedenis opgenomen.</em>",
        "missingsummary": "'''Let op:''' u hebt geen bewerkingssamenvatting opgegeven.\nAls u nogmaals op \"$1\" klikt wordt de bewerking zonder samenvatting opgeslagen.",
        "selfredirect": "<strong>Waarschuwing:</strong> U heeft een doorverwijzing gemaakt naar deze pagina. Mogelijk heeft u de verkeerde bestemming voor de doorverwijzing gebruikt, of bewerkt u de verkeerde pagina. Door nogmaals op \"$1\" te klikken word de doorverwijzing alsnog aangemaakt.",
        "noarticletext-nopermission": "Deze pagina bevat geen tekst.\nU kunt [[Special:Search/{{PAGENAME}}|naar deze term zoeken]] in andere pagina's of\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken doorzoeken]</span>, maar u mag de pagina niet aanmaken.",
        "missing-revision": "De versie #$1 van de pagina \"{{FULLPAGENAME}}\" bestaat niet.\n\nDit wordt meestal veroorzaakt door het volgen van een verouderde koppeling naar een pagina die is verwijderd.\nMeer gegevens zijn mogelijk te vinden in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].",
        "userpage-userdoesnotexist": "Gebruikersaccount \"$1\" bestaat niet.\nControleer of u deze pagina wel wilt aanmaken/bewerken.",
-       "userpage-userdoesnotexist-view": "Gebruikersaccount \"$1\" is niet geregistreerd.",
+       "userpage-userdoesnotexist-view": "Gebruikersaccount \"$1\" bestaat niet.",
        "blocked-notice-logextract": "Deze gebruiker is momenteel geblokkeerd.\nDe laatste regel uit het blokkeerlogboek wordt hieronder ter referentie weergegeven:",
        "clearyourcache": "<strong>Opmerking:</strong> nadat u de wijzigingen hebt opgeslagen is het wellicht nodig uw browsercache te legen.\n* <strong>Firefox / Safari:</strong> houd <em>Shift</em> ingedrukt terwijl u op <em>Vernieuwen</em> klikt of druk op <em>Ctrl-F5</em> of <em>Ctrl-R</em> (<em>⌘-Shift-R</em> op een Mac)\n* <strong>Google Chrome:</strong> druk op <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> op een Mac)\n* <strong>Internet Explorer:</strong> houd <em>Ctrl</em> ingedrukt terwijl u op <em>Vernieuwen</em> klikt of druk op <em>Ctrl-F5</em>\n* '''Opera:''' ga naar <em>Menu → Instellingen</em> (<em>Opera → Voorkeuren</em> op een Mac) en daarna naar <em>Privacy & beveiliging → Browsegegevens wissen... →  Tijdelijk opgeslgen afbeeldingen en bestanden</em>.",
        "usercssyoucanpreview": "'''Tip:''' gebruik de knop \"{{int:showpreview}}\" om uw nieuwe CSS te testen alvorens op te slaan.",
        "prefs-namespaces": "Naamruimten",
        "default": "standaard",
        "prefs-files": "Bestanden",
-       "prefs-custom-css": "aangepaste CSS",
-       "prefs-custom-js": "aangepaste JavaScript",
+       "prefs-custom-css": "Aangepaste CSS",
+       "prefs-custom-js": "Aangepast JavaScript",
        "prefs-common-css-js": "Gedeelde CSS/JavaScript voor elke vormgeving:",
        "prefs-reset-intro": "Gebruik deze functie om uw voorkeuren te herstellen naar de standaardinstellingen.\nDeze handeling kan niet ongedaan gemaakt worden.",
        "prefs-emailconfirm-label": "E-mailbevestiging:",
        "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",
        "recentchanges-noresult": "Er zijn in deze periode geen wijzigingen gemaakt die aan de criteria voldoen.",
        "recentchanges-timeout": "Deze zoekopdracht kost te veel tijd. U kunt het opnieuw proberen met andere zoekparameters.",
        "recentchanges-network": "Vanwege een technische fout kunnen er geen resultaten worden geladen. U kunt proberen de pagina te verversen.",
+       "recentchanges-notargetpage": "Voer hierboven een paginanaam in om wijzigingen gerelateerd aan die pagina te zien.",
        "recentchanges-feed-description": "Met deze feed kunt u de recentste wijzigingen in deze wiki bekijken.",
        "recentchanges-label-newpage": "Met deze bewerking is een nieuwe pagina aangemaakt",
        "recentchanges-label-minor": "Dit is een kleine bewerking",
        "rcfilters-advancedfilters": "Geavanceerde filters",
        "rcfilters-limit-title": "Resultaten om te tonen",
        "rcfilters-limit-and-date-label": "{{PLURAL:$1|wijziging|$1 wijzigingen}}, $2",
+       "rcfilters-date-popup-title": "Tijdsperiode om te doorzoeken",
        "rcfilters-days-title": "Afgelopen dagen",
        "rcfilters-hours-title": "Afgelopen uren",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|dag|dagen}}",
        "rcfilters-watchlist-showupdated": "Wijzigingen aan pagina's die u nog niet heeft bezocht worden <strong>vet</strong> en met gevulde opsommingstekens weergeven.",
        "rcfilters-preference-label": "Verberg de verbeterde versie van recente wijzigingen",
        "rcfilters-preference-help": "Zet het oude uiterlijk van de recente wijzigingen-pagina terug, inclusief alle hulpmiddelen die sindsdien zijn toegevoegd.",
+       "rcfilters-filter-showlinkedfrom-label": "Toon wijzigingen op pagina's gekoppeld aan",
+       "rcfilters-filter-showlinkedfrom-option-label": "Toon wijzigingen op paginas gekoppeld <strong>AAN</strong> een pagina",
+       "rcfilters-filter-showlinkedto-label": "Toon wijzigingen op pagina's gekoppeld naar",
+       "rcfilters-filter-showlinkedto-option-label": "Toon wijzigingen op pagina's gekoppeld <strong>NAAR</strong> een pagina",
+       "rcfilters-target-page-placeholder": "Voer een paginanaam in",
        "rcnotefrom": "Wijzigingen sinds <strong>$3 om $4</strong> (maximaal <strong>$1</strong> {{PLURAL:$1|wijziging|wijzigingen}}).",
        "rclistfromreset": "Datum selectie opnieuw instellen",
        "rclistfrom": "Wijzigingen bekijken vanaf $3 $2",
        "recentchangeslinked-feed": "Verwante wijzigingen",
        "recentchangeslinked-toolbox": "Verwante wijzigingen",
        "recentchangeslinked-title": "Wijzigingen verwant aan \"$1\"",
-       "recentchangeslinked-summary": "Deze speciale pagina geeft de laatste bewerkingen weer op pagina's waarheen verwezen wordt vanaf een opgegeven pagina of op pagina's in een opgegeven categorie.\nPagina's die op [[Special:Watchlist|uw volglijst]] staan worden '''vet''' weergegeven.",
+       "recentchangeslinked-summary": "Voer een paginanaam in om bewerkingen te zien van pagina's waarheen vanaf die pagina verwezen wordt of die ernaar verwijzen. (Om leden van een categorie te zien, voert u <kbd>Categorie:''Naam van categorie''</kbd> in.) Bewerkingen van pagina's op [[Special:Watchlist|uw volglijst]] worden <strong>vet</strong> weergegeven.",
        "recentchangeslinked-page": "Paginanaam:",
        "recentchangeslinked-to": "Wijzigingen aan pagina's met koppelingen naar deze pagina bekijken",
        "recentchanges-page-added-to-category": "[[:$1]] aan categorie toegevoegd",
        "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.",
        "listfiles-delete": "verwijderen",
        "listfiles-summary": "Op deze speciale pagina zijn alle toegevoegde bestanden te bekijken.",
        "listfiles_search_for": "Zoeken naar bestand:",
-       "listfiles-userdoesnotexist": "Het gebruikersaccount \"$1\" bestaat niet.",
+       "listfiles-userdoesnotexist": "Gebruikersaccount \"$1\" bestaat niet.",
        "imgfile": "bestand",
        "listfiles": "Bestandslijst",
        "listfiles_thumb": "Miniatuur",
        "listgrouprights-removegroup": "Gebruikers uit de volgende {{PLURAL:$2|groep|groepen}} verwijderen: $1",
        "listgrouprights-addgroup-all": "Gebruikers aan alle groepen toevoegen",
        "listgrouprights-removegroup-all": "Gebruikers uit alle groepen verwijderen",
-       "listgrouprights-addgroup-self": "De volgende {{PLURAL:$2|groep|groepen}} toevoegen aan eigen gebruiker: $1",
+       "listgrouprights-addgroup-self": "De volgende {{PLURAL:$2|groep|groepen}} toevoegen aan eigen account: $1",
        "listgrouprights-removegroup-self": "De volgende {{PLURAL:$2|groep|groepen}} verwijderen van eigen gebruiker: $1",
        "listgrouprights-addgroup-self-all": "Alle groepen toevoegen aan eigen account",
        "listgrouprights-removegroup-self-all": "Alle groepen verwijderen van eigen account",
        "listgrouprights-namespaceprotection-namespace": "Naamruimte",
        "listgrouprights-namespaceprotection-restrictedto": "Recht(en) waardoor gebruiker kan bewerken",
        "listgrants": "Toestemmingen",
-       "listgrants-summary": "Hieronder staat een lijst met toestemmingen en de bijbehorende gebruikersrechten. Gebruikers kunnen toepassingen machtigen voor toegang tot hun account, maar met beperkte rechten gebaseerd op de toestemmingen die de gebruiker aan de toepassing heeft gegeven. Een toepassing die namens een gebruiker handelt, kan nooit rechten gebruiken die een gebruiker niet heeft.\nEr zijn mogelijk [[{{MediaWiki:Listgrouprights-helppage}}|aanvullende  gegevens]] over individuele rechten.",
+       "listgrants-summary": "Hieronder staat een lijst met toestemmingen en de bijbehorende gebruikersrechten. Gebruikers kunnen toepassingen machtigen hun account te gebruiken, maar met beperkte rechten gebaseerd op de toestemmingen die de gebruiker aan de toepassing heeft gegeven. Een toepassing die namens een gebruiker handelt, kan echter geen rechten gebruiken die de gebruiker niet heeft.\nEr is mogelijk [[{{MediaWiki:Listgrouprights-helppage}}|aanvullende informatie]] over individuele rechten.",
        "listgrants-grant": "Toestemming",
        "listgrants-rights": "Rechten",
        "trackingcategories": "Volgcategorieën",
        "protect-text": "Hier kunt u het beveiligingsniveau voor de pagina '''$1''' bekijken en wijzigen.",
        "protect-locked-blocked": "U kunt het beveiligingsniveau niet wijzigen terwijl u geblokkeerd bent.\nDit zijn de huidige instellingen voor de pagina '''$1''':",
        "protect-locked-dblock": "Het beveiligingsniveau kan niet worden gewijzigd, omdat de database gesloten is.\nHier zijn de huidige instellingen voor de pagina '''$1''':",
-       "protect-locked-access": "U hebt geen rechten om het beveiligingsniveau te wijzigen.\nDit zijn de huidige instellingen voor de pagina '''$1''':",
+       "protect-locked-access": "Uw account heeft geen rechten om het beveiligingsniveau van pagina's te wijzigen.\nDit zijn de huidige instellingen voor de pagina <strong>$1</strong>:",
        "protect-cascadeon": "Deze pagina is beveiligd, omdat die in de volgende {{PLURAL:$1|pagina|pagina's}} is opgenomen, die beveiligd {{PLURAL:$1|is|zijn}} met de cascade-optie.\nWijzigingen aan beveiligingsniveau hebben geen invloed op de cascadebeveiliging.",
        "protect-default": "Toestaan voor alle gebruikers",
        "protect-fallback": "Alleen gebruikers met het recht \"$1\" toestaan",
        "mycontris": "Bijdragen",
        "anoncontribs": "Bijdragen",
        "contribsub2": "Voor {{GENDER:$3|$1}} ($2)",
-       "contributions-userdoesnotexist": "De account \"$1\" is niet geregistreerd.",
+       "contributions-userdoesnotexist": "Gebruikersaccount \"$1\" bestaat niet.",
        "nocontribs": "Geen wijzigingen gevonden die aan de gestelde criteria voldoen.",
        "uctop": "(laatste wijziging)",
        "month": "Van maand (en eerder):",
        "year": "Van jaar (en eerder):",
-       "sp-contributions-newbies": "Alleen de bijdragen van nieuwe gebruikers bekijken",
+       "sp-contributions-newbies": "Alleen bijdragen van nieuwe accounts bekijken",
        "sp-contributions-newbies-sub": "Voor nieuwelingen",
-       "sp-contributions-newbies-title": "Bijdragen van nieuwe gebruikers",
+       "sp-contributions-newbies-title": "Gebruikersbijdragen van nieuwe accounts",
        "sp-contributions-blocklog": "blokkeerlogboek",
        "sp-contributions-suppresslog": "onderdrukte {{GENDER:$1|gebruikersbijdragen}}",
        "sp-contributions-deleted": "verwijderde {{GENDER:$1|gebruiker}}sbijdragen",
        "ipaddressorusername": "IP-adres of gebruikersnaam:",
        "ipbexpiry": "Vervalt (maak een keuze):",
        "ipbreason": "Reden:",
-       "ipbreason-dropdown": "*Veelvoorkomende redenen voor blokkades\n** Foutieve informatie invoeren\n** Verwijderen van informatie uit pagina's\n** Spamkoppeling naar externe websites\n** Invoegen van nonsens in pagina's\n** Intimiderend gedrag\n** Misbruik door meerdere gebruikers\n** Onaanvaardbare gebruikersnaam",
+       "ipbreason-dropdown": "*Veelvoorkomende redenen voor blokkades\n** Foutieve informatie invoeren\n** Informatie uit pagina's verwijderen\n** Veelvuldig koppelingen naar externe websites plaatsen\n** Nonsens/gebrabbel in pagina's opnemen\n** Intimiderend gedragen/anderen lastigvallen\n** Van meerdere accounts misbruik maken\n** Een onaanvaardbare gebruikersnaam kiezen",
        "ipb-hardblock": "Aangemelde gebruikers de mogelijkheid ontnemen om vanaf dit IP-adres te bewerken",
        "ipbcreateaccount": "Registreren accounts blokkeren",
        "ipbemailban": "Gebruiker de mogelijkheid ontnemen om e-mail te versturen",
        "ipb_expiry_invalid": "Ongeldige duur.",
        "ipb_expiry_old": "Vervaldatum is in het verleden.",
        "ipb_expiry_temp": "Blokkades voor verborgen gebruikers moeten permanent zijn.",
-       "ipb_hide_invalid": "Het is niet mogelijk dit account te verbergen; het heeft meer dan {{PLURAL:$1|een bewerking|$1 bewerkingen}}.",
+       "ipb_hide_invalid": "Het is niet mogelijk dit account te verbergen; het heeft meer dan {{PLURAL:$1|één bewerking|$1 bewerkingen}}.",
        "ipb_already_blocked": "\"$1\" is al geblokkeerd",
        "ipb-needreblock": "$1 is al geblokkeerd.\nWilt u de instellingen wijzigen?",
        "ipb-otherblocks-header": "Andere {{PLURAL:$1|blokkade|blokkades}}",
        "newimages-legend": "Bestandsnaam",
        "newimages-label": "Bestandsnaam (of deel daarvan):",
        "newimages-user": "IP-adres of gebruikersnaam",
-       "newimages-newbies": "Alleen de bijdragen van nieuwe gebruikers bekijken",
+       "newimages-newbies": "Alleen bijdragen van nieuwe accounts bekijken",
        "newimages-showbots": "Uploads door bots weergeven",
        "newimages-hidepatrolled": "Gecontroleerde uploads verbergen",
        "newimages-mediatype": "Mediatype:",
        "tag-mw-removed-redirect-description": "Bewerkingen die een bestaande doorverwijzing veranderen in een niet-doorverwijzing",
        "tag-mw-changed-redirect-target": "Doorverwijzingsdoel gewijzigd",
        "tag-mw-changed-redirect-target-description": "Bewerkingen die het doel van een doorverwijzing veranderen",
+       "tag-mw-blank": "Leeghalen",
        "tag-mw-blank-description": "Bewerkingen die een pagina leegmaken",
        "tag-mw-replace": "Vervangen",
        "tag-mw-replace-description": "Bewerkingen die meer dan 90% van de pagina verwijderen",
        "tag-mw-rollback": "Terugdraaiing",
-       "tag-mw-rollback-description": "Bewerkingen die eerdere bewerkingen terugdraaien door middel van de terugdraaien koppeling.",
+       "tag-mw-rollback-description": "Bewerkingen die eerdere bewerkingen terugdraaien door middel van de koppeling \"terugdraaien\"",
        "tags-title": "Labels",
        "tags-intro": "Op deze pagina staan de labels waarmee de software iedere bewerking kan markeren, en hun betekenis.",
        "tags-tag": "Labelnaam",
        "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|heeft}} pagina $3 naar $4 hernoemd over een doorverwijzing zonder een doorverwijzing achter te laten",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|heeft}} versie $4 van pagina $3 gemarkeerd als gecontroleerd",
        "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|heeft}} versie $4 van pagina $3 automatisch gemarkeerd als gecontroleerd",
-       "logentry-newusers-newusers": "Gebruikersaccount $1 {{GENDER:$2|is}} aangemaakt",
+       "logentry-newusers-newusers": "Gebruikersaccount $1 is {{GENDER:$2|aangemaakt}}",
        "logentry-newusers-create": "Gebruikersaccount $1 {{GENDER:$2|is}} aangemaakt",
        "logentry-newusers-create2": "Gebruikersaccount $3 is {{GENDER:$2|aangemaakt}} door $1",
        "logentry-newusers-byemail": "Gebruikersaccount $3 is {{GENDER:$2|aangemaakt}} door $1 en het wachtwoord is per e-mail verzonden",
-       "logentry-newusers-autocreate": "Gebruikersaccount $1 {{GENDER:$2|is}} automatisch aangemaakt",
+       "logentry-newusers-autocreate": "Gebruikersaccount $1 is automatisch {{GENDER:$2|aangemaakt}}",
        "logentry-protect-move_prot": "$1 heeft de beveiligingsinstellingen {{GENDER:$2|verplaatst}} van $4 naar $3",
        "logentry-protect-unprotect": "$1 heeft de beveiliging {{GENDER:$2|opgeheven}} van $3",
        "logentry-protect-protect": "$1 heeft $3 {{GENDER:$2|beveiligd}} $4",
        "authmanager-provider-password-domain": "Wachtwoord- en domeingebaseerde authentificatie",
        "authmanager-provider-temporarypassword": "Tijdelijk wachtwoord",
        "authprovider-confirmlink-message": "Op basis van uw recente aanmeldpogingen kunnen de volgende accounts aan uw wiki-account worden gekoppeld. Het koppelen stelt u in staat in te loggen via deze accounts. Selecteer welke accounts gekoppeld moeten worden.",
-       "authprovider-confirmlink-request-label": "Accounts die aan elkaar moeten worden gekoppeld.",
+       "authprovider-confirmlink-request-label": "Accounts die aan elkaar gekoppeld moeten worden.",
        "authprovider-confirmlink-success-line": "$1: Succesvol gekoppeld.",
-       "authprovider-confirmlink-failed": "Account koppelen is niet volledig gelukt: $1",
+       "authprovider-confirmlink-failed": "Het koppelen van accounts is niet volledig gelukt: $1",
        "authprovider-confirmlink-ok-help": "Doorgaan na het weergeven van de storingsmeldingen over het koppelen.",
        "authprovider-resetpass-skip-label": "Overslaan",
        "authprovider-resetpass-skip-help": "Sla het resetten van het wachtwoord over.",
        "specialpage-securitylevel-not-allowed": "Sorry, het is u niet toegestaan gebruik te maken van deze pagina omdat uw identiteit niet kon worden geverifieerd.",
        "authpage-cannot-login": "Niet in staat om aan te melden.",
        "authpage-cannot-login-continue": "Niet in staat om in te loggen. Uw sessie is waarschijnlijk verlopen.",
-       "authpage-cannot-create": "Kon het account aanmaken niet starten.",
-       "authpage-cannot-create-continue": "Niet in staat het account aan te maken. Uw sessie is waarschijnlijk verlopen.",
-       "authpage-cannot-link": "Niet in staat om het account te koppelen.",
-       "authpage-cannot-link-continue": "Niet in staat het account te koppelen. Uw sessie is waarschijnlijk verlopen.",
+       "authpage-cannot-create": "Niet in staat het aanmaken van het account te starten.",
+       "authpage-cannot-create-continue": "Niet in staat het aanmaken van het account voort te zetten. Uw sessie is waarschijnlijk verlopen.",
+       "authpage-cannot-link": "Niet in staat het koppelen van de accounts te starten.",
+       "authpage-cannot-link-continue": "Niet in staat het koppelen van de accounts voort te zetten. Uw sessie is waarschijnlijk verlopen.",
        "cannotauth-not-allowed-title": "Geen toegang",
        "cannotauth-not-allowed": "U hebt geen toestemming om deze pagina te gebruiken",
        "changecredentials": "Authenticatiegegevens wijzigen",
        "removecredentials-invalidsubpage": "$1 is geen geldig identificatietype.",
        "removecredentials-success": "Uw authenticatiegegevens zijn verwijderd.",
        "credentialsform-provider": "Soort authenticatiegegevens:",
-       "credentialsform-account": "Gebruikersnaam:",
+       "credentialsform-account": "Accountnaam:",
        "cannotlink-no-provider-title": "Er zijn geen accounts om te koppelen",
        "cannotlink-no-provider": "Er zijn geen accounts om te koppelen.",
        "linkaccounts": "Accounts koppelen",
index 4dd7fcb..fd101a9 100644 (file)
        "rcfilters-activefilters": "Aktive filter",
        "rcfilters-advancedfilters": "Avanserte filter",
        "rcfilters-limit-title": "Tal endringar som skal visast",
+       "rcfilters-limit-and-date-label": "{{PLURAL:$1|éi endring|$1 endringar}}, $2",
+       "rcfilters-date-popup-title": "Søk i tidsperioden",
        "rcfilters-days-title": "Dei siste dagane",
        "rcfilters-hours-title": "Dei siste timane",
        "rcfilters-days-show-days": "{{PLURAL:$1|Éin dag|$1 dagar}}",
        "rcfilters-savedqueries-add-new-title": "Lagra gjeldande filterinnstillingar",
        "rcfilters-clear-all-filters": "Fjern alle filter",
        "rcfilters-show-new-changes": "Sjå dei nyaste endringane",
-       "rcfilters-search-placeholder": "Filtrer siste endringar (gå gjennom liste eller skriv filternamn)",
+       "rcfilters-search-placeholder": "Filtrer endringar (nytt meny eller søk etter filternamn)",
        "rcfilters-invalid-filter": "Ugyldig filter",
        "rcfilters-empty-filter": "Ingen aktive filter. Alle bidrag er viste.",
        "rcfilters-filterlist-title": "Filter",
        "tag-filter": "[[Special:Tags|Merke]]filter:",
        "tag-filter-submit": "Filtrer",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Merke}}]]: $2)",
+       "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",
diff --git a/languages/i18n/nys.json b/languages/i18n/nys.json
new file mode 100644 (file)
index 0000000..a575d20
--- /dev/null
@@ -0,0 +1,644 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Gnangarra"
+               ]
+       },
+       "underline-never": "Warra",
+       "sunday": "Sunday",
+       "monday": "Monday",
+       "tuesday": "Tuesday",
+       "wednesday": "Wednesday",
+       "thursday": "Thursday",
+       "friday": "Friday",
+       "saturday": "Saturday",
+       "sun": "Sun",
+       "mon": "Mon",
+       "tue": "Tue",
+       "wed": "Wed",
+       "thu": "Thu",
+       "fri": "Fri",
+       "sat": "Sat",
+       "january": "January",
+       "february": "February",
+       "march": "March",
+       "april": "April",
+       "may_long": "May",
+       "june": "June",
+       "july": "July",
+       "august": "August",
+       "september": "September",
+       "october": "October",
+       "november": "November",
+       "december": "December",
+       "january-gen": "January",
+       "february-gen": "February",
+       "march-gen": "March",
+       "april-gen": "April",
+       "may-gen": "May",
+       "june-gen": "June",
+       "july-gen": "July",
+       "august-gen": "August",
+       "september-gen": "September",
+       "october-gen": "October",
+       "november-gen": "November",
+       "december-gen": "December",
+       "jan": "Jan",
+       "feb": "Feb",
+       "mar": "Mar",
+       "apr": "Apr",
+       "may": "May",
+       "jun": "Jun",
+       "jul": "Jul",
+       "aug": "Aug",
+       "sep": "Sep",
+       "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",
+       "category-media-header": "Media warrangan \"$1\"",
+       "category-empty": "<em>Nidja warrangan yeye bibol ka media.</em>",
+       "hidden-categories": "{{PLURAL:$1|Kopin Warrangan}}",
+       "category-subcat-count": "{{PLURAL:$2|Nidja warrangan ken-y ngawaliny warrangan.|Nidja warrangan ken-y ngawaliny {{PLURAL:$1|warrangan}}, ung $2 bandang.}}",
+       "category-article-count": "{{PLURAL:$2|Nidja warrangan ken-y ngawaliny bibol.|Ngawaliny {{PLURAL:$1|bibol|$1 bibol-ung}} il nidja warrangan, ung $2 bandang.}}",
+       "category-file-count": "{{PLURAL:$2|Nidja warrangan kore ken-y file.|Ngawaliny {{PLURAL:$1|file be|$1 files be}} bura nidja warrangan, winnir barnder-yuck $2.}}",
+       "listingcontinuesabbrev": "koorliny",
+       "noindex-category": "Uart gwabbanijow bibol",
+       "broken-file-category": "Bibol nidja bunga-nginnaga file beda",
+       "about": "Nartj nitja",
+       "newwindow": "(yalgaranan yyinang window)",
+       "cancel": "nanap",
+       "mypage": "Bibol",
+       "mytalk": "Waarnk",
+       "navigation": "waardiny biirt",
+       "and": "&#32;wer",
+       "namespaces": "kwel-le-up",
+       "variants": "Waaminy",
+       "navigation-heading": "Waardiny biirt",
+       "returnto": "uarl-koorl $1",
+       "tagline": "Winjang {{SITENAME}}",
+       "help": "Mar yirra",
+       "search": "genunniny",
+       "searchbutton": "genuniny",
+       "searcharticle": "Koorl",
+       "history": "Bibol kooralang",
+       "history_short": "Kura",
+       "printableversion": "willgi-iny dum-bart",
+       "permalink": "Kalyakoorl beda",
+       "view": "Genuny",
+       "view-foreign": "djinang il $1",
+       "edit": "wallak",
+       "create": "Yeye-quadga",
+       "create-local": "ngatti nidja waagnkin birnup",
+       "delete": "Barranginy",
+       "newpage": "Milgar bibol",
+       "talkpagelinktext": "waarnk",
+       "personaltools": "nyuny kootoo burrongain birniny",
+       "talk": "waangelanginy",
+       "views": "genuny",
+       "toolbox": "kootoo burrongain birniny",
+       "tool-link-emailuser": "Email nidja {{GENDER:$1|niall}}",
+       "otherlanguages": "wam wanga",
+       "redirectedfrom": "(Dtallangiritch $1)",
+       "redirectpagesub": "Dtallangiritch bibol",
+       "redirectto": "Dtallangiritch",
+       "lastmodifiedat": "Yuttok wallak nidja bibol $1, il $2",
+       "jumpto": "bardang nginnow",
+       "jumptonavigation": "waardiny biirt",
+       "jumptosearch": "genuniny",
+       "aboutsite": "nartj nitja {{SITENAME}}",
+       "aboutpage": "Project:nartj nitja",
+       "copyright": "Content is available under $1 unless otherwise noted.",
+       "copyrightpage": "{{ns:project}}:Copyrights",
+       "currentevents": "Yeye events",
+       "currentevents-url": "Project:Yeye events",
+       "disclaimers": "Disclaimers",
+       "disclaimerpage": "Project:General disclaimer",
+       "edithelp": "wallakiny yira mar",
+       "mainpage": "Keny mia",
+       "mainpage-description": "Keny mia",
+       "portal": "Nyungar djarbiny",
+       "portal-url": "Project:Nyungar djarbiny",
+       "privacy": "Privacy policy",
+       "privacypage": "Project:Privacy policy",
+       "retrievedfrom": "kuttukang $1",
+       "youhavenewmessages": "{{PLURAL:$3|Noonook nganan}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Noonook nganan}} $1 {{PLURAL:$3|niall-ang}} ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|yy-inang waangkin|999=borrna yy-inang waangkin}}",
+       "newmessagesdifflinkplural": "Yuttok {{PLURAL:$1|wallak|999=wallak}}",
+       "editsection": "wallak",
+       "editold": "wallak",
+       "viewsourceold": "djinang birnup",
+       "editlink": "wallak",
+       "viewsourcelink": "djinang birnup",
+       "editsectionhint": "wallak quanyartign $1",
+       "toc": "Katitjiny",
+       "site-atom-feed": "$1 Atom feed",
+       "page-atom-feed": "\"$1\" Atom feed",
+       "red-link-title": "$1 (yuwart bibol)",
+       "nstab-main": "Bibol",
+       "nstab-user": "Niall bibol",
+       "nstab-special": "birdarra bibol",
+       "nstab-project": "Project bibol",
+       "nstab-image": "File",
+       "nstab-mediawiki": "Mar waangkin",
+       "nstab-template": "Birnup",
+       "nstab-category": "Warrangan",
+       "mainpage-nstab": "Keny mia",
+       "nosuchspecialpage": "Yuwart birdarra bibol",
+       "nospecialpagetext": "<strong>Noonook burung waangkininy warra brid-iya bibol.</strong>\n\nGwabbanijow-ung kwop brid-iya bibol quadgabe [[Special:SpecialPages|{{int:specialpages}}]].",
+       "badtitle": "Yuwart katta wir-iny",
+       "badtitletext": "Gurdu-bakkin-yugow bibol katta wir-iny warra, bal-yure, ka beda-warra inter-language ka interwiki katta wir-iny.\nBal kuttuck ken-y ka boolah characters ally-uart nidja bura katta wir-iny.",
+       "viewsource": "djinang birnup",
+       "viewsource-title": "Djinang birnup $1",
+       "viewsourcetext": "Noonook djinang wer ngaran uran uran nidja bibol",
+       "yourname": "Niall kwel-le:",
+       "userlogin-yourname": "Ngun-ya Kwel-le",
+       "userlogin-yourname-ph": "djarbiny niall-kwel-le",
+       "userlogin-yourpassword": "Ban-a-warryn",
+       "userlogin-yourpassword-ph": "Djarbiny noonook ban-a-warryn",
+       "createacct-yourpassword-ph": "Djarbiny ban-a-warryn",
+       "createacct-yourpasswordagain": "Kaya ban-a-warryn",
+       "createacct-yourpasswordagain-ph": "Djarbiny ban-a-warryn nitj",
+       "userlogin-remembermypassword": "Burung yalguer nguny yaarlkoorl",
+       "login": "Yaarlkoorl",
+       "userlogin-noaccount": "Uart wer gaduk",
+       "userlogin-joinproject": "Mitchee-yuop {{SITENAME}}",
+       "createaccount": "Walbirniny gaduk",
+       "userlogin-resetpassword-link": "Kaatich burt noonook ban-a-warryn",
+       "userlogin-helplink2": "Mar yira yaarlkoorliny",
+       "createacct-emailoptional": "Email karlup (optional)",
+       "createacct-email-ph": "Djarbiny noonook email karlup",
+       "createacct-submit": "Wallak noonook Ngun-ya gaduk",
+       "createacct-benefit-heading": "{{SITENAME}} wallak nyungar mokin noonook.",
+       "createacct-benefit-body1": "{{PLURAL:$1|wallak}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|bibol}}",
+       "createacct-benefit-body3": "yeye {{PLURAL:$1|niall}}",
+       "loginlanguagelabel": "Wanga: $1",
+       "pt-login": "yaarlkoorl",
+       "pt-login-button": "Yaarlkoorl",
+       "pt-createaccount": "Walbirniny gaduk",
+       "pt-userlogout": "woort koorl",
+       "passwordreset": "Wallakiny ban-a-warryn",
+       "passwordreset-username": "Niall kwel-le",
+       "bold_sample": "Moorn text",
+       "bold_tip": "Moorn text",
+       "italic_sample": "Italic text",
+       "italic_tip": "Italic text",
+       "link_sample": "Beda katta wir-iny",
+       "link_tip": "Bura beda",
+       "extlink_sample": "http://www.example.com beda kat-ta-biddi",
+       "extlink_tip": "Ban-dak beda (katta-rah http:// prefix)",
+       "headline_sample": "Kat-ta-biddi text",
+       "headline_tip": "Katta-wiring 2",
+       "nowiki_sample": "Ijow boko non-formatted text nidjak",
+       "nowiki_tip": "Meeyal-boort wiki formatting",
+       "image_tip": "Bal-ya-ta file",
+       "media_tip": "File beda",
+       "sig_tip": "Noonook ban-a with timestamp",
+       "hr_tip": "Yambor (use sparingly)",
+       "summary": "Koorada waangkininy:",
+       "minoredit": "neyp-nopb wallak",
+       "watchthis": "djinang nidja bibol",
+       "savearticle": "Burung dordak-anan bibol",
+       "preview": "Nun-gow",
+       "showpreview": "Yong-a gwytch-ang-at",
+       "showdiff": "Yong-a wallak",
+       "anoneditwarning": "<strong>Warning:</strong> You are not logged in. Noonook IP-karl-up will be publicly djinang il noonook wallak. Noonook-il <strong>[$1 log in]</strong> or <strong>[$2 create an gudak]</strong>, noonook wallak will be attributed to noonook niall-kwel-le, along with other benefits.",
+       "blockedtitle": "Niall be nap-nap",
+       "blockedtext": "<strong>Your username or IP address has been blocked.</strong>\n\nThe block was made by $1.\nThe reason given is <em>$2</em>.\n\n* Start of block: $8\n* Expiration of block: $6\n* Intended blockee: $7\n\nYou can contact $1 or another [[{{MediaWiki:Grouppage-sysop}}|administrator]] to discuss the block.\nYou cannot use the \"email this user\" feature unless a valid email address is specified in your [[Special:Preferences|account preferences]] and you have not been blocked from using it.\nYour current IP address is $3, and the block ID is #$5.\nPlease include all above details in any queries you make.",
+       "loginreqlink": "yaarlkoorl",
+       "newarticletext": "Noonook ngwaliny beda bibol uart-yogow yeye.\nWallak bibol qadgin mar waangkin ngardal (djinang [$1 mar yira bibol] ngatta katitjiny)\nWarra bainya noonook nidja, click noonook bowser's <strong>woort koorl</strong>button",
+       "anontalkpagetext": "----\n<em>Nidja waangkininy bibol for an anonymous niall uart-quadga gudak, or who does not use it.</em>\nWe therefore have to use the numerical IP-karl-up to identify him/her.\nSuch an IP-karl-up can be shared by several niall.\nIf noonook anonymous niall and feel that irrelevant waangkin have been directed at noonook, please [[Special:CreateAccount|quadga gudak]] or [[Special:UserLogin|log in]] to avoid future confusion with other anonymous niall.",
+       "noarticletext": "There is currently no text in this page.\nYou can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} create this page]</span>.",
+       "noarticletext-nopermission": "Nidja yeye uart text il nidja bibol.\nNoonook [[Special:Search/{{PAGENAME}}|genuniny-ung nidja bibol katta wir-iny]] bura wam bibol, ka <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} genuniny boonadairn]</span>, noonook uart kaya ijow walbirniny nidja bibol.",
+       "userpage-userdoesnotexist-view": "Niall gaduk $1 be uart yeye-quadga",
+       "clearyourcache": "<strong>Note:</strong> After saving, you may have to bypass your browser's cache to see the changes.\n* <strong>Firefox / Safari:</strong> Hold <em>Shift</em> while clicking <em>Reload</em>, or press either <em>Ctrl-F5</em> or <em>Ctrl-R</em> (<em>⌘-R</em> on a Mac)\n* <strong>Google Chrome:</strong> Press <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> on a Mac)\n* <strong>Internet Explorer:</strong> Hold <em>Ctrl</em> while clicking <em>Refresh</em>, or press <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Go to <em>Menu → Settings</em> (<em>Opera → Preferences</em> on a Mac) and then to <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
+       "previewnote": "<strong>Katich nidja be djinang-kura\nNoonook wallak uart burung yeye burunginy",
+       "continue-editing": "Koorl wallakiny-up",
+       "editing": "Wallak $1",
+       "creating": "Wallakiny $1",
+       "editingsection": "wallakiny $1 (quanyartign)",
+       "templatesused": "{{PLURAL:$1|Birnup}} il nidja bibol:",
+       "templatesusedpreview": "{{PLURAL:$1|Birnup}} nidja kura djinang:",
+       "template-protected": "(nap-nap)",
+       "template-semiprotected": "(bun-ga nap-nap)",
+       "hiddencategories": "Nidja bibol bunga il {{PLURAL:$1|Kopin Warrangan}}:",
+       "permissionserrors": "Kaya warra",
+       "permissionserrorstext-withaction": "Noonook uart kaya ijow $2 ngawaliny-ung {{PLURAL:$1|niat-juk}}",
+       "recreate-moveddeleted-warn": "<strong>Warning: You are recreating a page that was previously deleted.</strong>\n\nYou should consider whether it is appropriate to continue editing this page.\nThe deletion and move log for this page are provided here for convenience:",
+       "moveddeleted-notice": "Nidja bibol barranginy\nBarranginy, protection and ngatti boonadairn ngardal",
+       "content-model-wikitext": "wikitext",
+       "undo-failure": "uart nidja wallak bukadjee bura-didara wallak",
+       "viewpagelogs": "Djinang boonadairn nidja bibol",
+       "currentrev-asof": "Yuttock wallak nun o-luk $1",
+       "revisionasof": "Revision as of $1",
+       "revision-info": "Yumbarng nune o-luk $1 borduck {{GENDER:$6|$2}}$7",
+       "previousrevision": "← ngatti kura djinang",
+       "nextrevision": "ngolango mar waangkin",
+       "currentrevisionlink": "Yuttock wallak",
+       "cur": "yeye",
+       "last": "kura",
+       "histlegend": "Diff selection: Mark the radio boxes of the revisions to compare and hit enter or the button at the bottom.<br />\nLegend: <strong>({{int:cur}})</strong> = difference with latest revision, <strong>({{int:last}})</strong> = difference with preceding revision, <strong>{{int:minoreditletter}}</strong> = minor edit.",
+       "history-fieldset-title": "Djinanginy wer revisions",
+       "histfirst": "kura",
+       "histlast": "yeye",
+       "history-feed-title": "Kura djinang",
+       "history-feed-description": "Djinang kooralan wer nidja bibol il wiki",
+       "history-feed-item-nocomment": "$1 ally-war $2",
+       "rev-delundel": "wallak djinanyiny",
+       "mergelog": "Mitchee-youp boonadairn",
+       "history-title": "Djinang kooralang $1",
+       "difference-title": "kura nidja wallak nidja ken-y il \"$1\"",
+       "lineno": "biritt $1",
+       "compareselectedversions": "Nidja ka nidja kura wallak",
+       "editundo": "yowal",
+       "diff-empty": "(Uart ngatti-ngatti)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Ken-y bura-didara ngatti-ngatti|$1 bura-didara ngatti-ngatti}} niall-ang kopin)",
+       "diff-multi-otherusers": "({{PLURAL:$1|Ken- bura-didara ngatti-ngatti|$1 bura-didara ngatti-ngatti}} borduck {{PLURAL:$2|ken-y niall|$2 niall}} uart yong-a)",
+       "searchresults": "genunniny natj",
+       "searchresults-title": "genunniny natj $1",
+       "prevn": "Gwytch-ang-at {{PLURAL:$1|$1}}",
+       "nextn": "warnign {{PLURAL:$1|$1}}",
+       "prevn-title": "Yuttock keny $1 {{PLURAL:$1|nidjak nam-nam}}",
+       "nextn-title": "Warnign $1 {{PLURAL:$1|nam-nam}}",
+       "shown-title": "Yong-a $1 {{PLURAL:$1|nam-nam}} bibol",
+       "viewprevnext": "Genuny ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-exists": "<strong>Bokojee bibol kwel-le \"[[:$1]]\" bura nidja wiki</strong>{{PLURAL:$2|djinang warrba nam-nam}}",
+       "searchmenu-new": "<strong>Walbirniny bibol \"[[:$1]]\" il nidja wiki!</strong> {{PLURAL:$2|0=|Djinang-ung nam-nam quadgabe mokininy.}}",
+       "searchprofile-articles": "Katitjiny bibol",
+       "searchprofile-images": "yual wonga",
+       "searchprofile-everything": "Bulyaru",
+       "searchprofile-advanced": "Koorl koorliny",
+       "searchprofile-articles-tooltip": "Yumbarng $1",
+       "searchprofile-images-tooltip": "Genunniny files",
+       "searchprofile-everything-tooltip": "Djinang yennar katitjiny (wer waarnk bibol)",
+       "searchprofile-advanced-tooltip": "Djinang uart bura yennar kwel-le-up",
+       "search-result-size": "$1 ({{PLURAL:$2|1 word|$2 words}})",
+       "search-result-category-size": "{{PLURAL:$1|bunga il}} ({{PLURAL:$2|Kopin Warrangan}}, {{PLURAL:$3|1 file|$3 files}})",
+       "search-redirect": "(Dtallangiritchang $1)",
+       "search-section": "(quanyartign $1)",
+       "search-file-match": "(mokin file waangkiny)",
+       "search-suggest": "Quadga bornign noonook:$1",
+       "searchall": "bandang",
+       "search-showingresults": "{{PLURAL:$4|Yuul-man-waangk-in <strong>$1</strong> ung <strong>$3</strong>|Yuul-man-waangk-in <strong>$1 – $2</strong> ung <strong>$3</strong>}}",
+       "search-nonefound": "uart katitjiny",
+       "mypreferences": "Nidj-wer-nidja",
+       "prefs-user-pages": "Niall bibol",
+       "group-user": "Niall",
+       "group-bot": "Balyat",
+       "group-sysop": "Brid-iya",
+       "group-user-member": "{{GENDER:$1|niall}}",
+       "grouppage-user": "{{ns:project}}:Niall",
+       "grouppage-bot": "{{ns:project}}:Balyat",
+       "grouppage-sysop": "{{ns:project}}:Brid-iya",
+       "right-writeapi": "Ngarlark il mar-waangkininy API",
+       "newuserlogpage": "Niall quadga boonadairn",
+       "rightslog": "Niall gaduk boonadairn",
+       "action-edit": "dookeniny bibol",
+       "action-createaccount": "quadga nidja niall gaduk",
+       "action-move-rootuserpages": "ngatta birnup niall bibol",
+       "action-block": "nap-nap nidja niall-ang wallak-iny",
+       "enhancedrc-history": "kura",
+       "recentchanges": "Yeye wallak",
+       "recentchanges-legend": "Yeye wallak ngatti-ngatti",
+       "recentchanges-summary": "Yeye wallak balgang nidja bibol il wiki",
+       "recentchanges-noresult": "Uart wallak kura-yeye mokin nidja katitjiny",
+       "recentchanges-feed-description": "balgang yeye wallak ijow wiki nidja ngan-iny",
+       "recentchanges-label-newpage": "Nidja wallak yyinang bibol",
+       "recentchanges-label-minor": "Nidja neyp-nopb wallak",
+       "recentchanges-label-bot": "Nidja balyat wallak",
+       "recentchanges-label-unpatrolled": "nidja wallak uart djinang brid-iya",
+       "recentchanges-label-plusminus": "Bibol boola wallak nidja ngarnan bytes",
+       "recentchanges-legend-heading": "<strong>Bun-ga:</strong>",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (djinang [[Special:NewPages|gwabbanijow-ung milgar bibol]])",
+       "rcnotefrom": "Ngardal {{PLURAL:$5|wallak}} kura <strong>$3, $4</strong> (yira ijow <strong>$1</strong> yong-a).",
+       "rclistfrom": "Yong-a yy-inang wallak quadgin-ang $2 $3",
+       "rcshowhideminor": "$1 neyp-nopb wallak",
+       "rcshowhideminor-show": "Yong-a",
+       "rcshowhideminor-hide": "Kwib-idj-ee",
+       "rcshowhidebots": "$1 balyat",
+       "rcshowhidebots-show": "Yong-a",
+       "rcshowhidebots-hide": "Kwib-idj-ee",
+       "rcshowhideliu": "$1 yeye-quadga Niall",
+       "rcshowhideliu-show": "Yong-a",
+       "rcshowhideliu-hide": "Kwib-idj-ee",
+       "rcshowhideanons": "$1 Ngeern Niall",
+       "rcshowhideanons-show": "Yong-a",
+       "rcshowhideanons-hide": "Kwib-idj-ee",
+       "rcshowhidepatr": "$1 kaya wallak",
+       "rcshowhidemine": "$1 ngun-ya wallak",
+       "rcshowhidemine-show": "Yong-a",
+       "rcshowhidemine-hide": "Kwib-idj-ee",
+       "rclinks": "Yong-a yuttok $1 wallak bura yuttok $2 bi-ryt",
+       "diff": "wallak ijow",
+       "hist": "kura",
+       "hide": "Kwib-idj-ee",
+       "show": "Yong-a",
+       "minoreditletter": "n",
+       "newpageletter": "M",
+       "boteditletter": "b",
+       "number_of_watching_users_pageview": "[$1 djinang-iny {{PLURAL:$1|niall}}]",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} mila wallak",
+       "rc-old-title": "goryat quadga jin $1",
+       "recentchangeslinked": "Noyyang wallak",
+       "recentchangeslinked-feed": "Noyyang wallak",
+       "recentchangeslinked-toolbox": "Noyyang wallak",
+       "recentchangeslinked-title": "Wallak noyyanging $1",
+       "recentchangeslinked-summary": "Nidga list-ang wallak yeye bibol beda wer-ang ngela bibol (or il ngela warrangan)\n\nBibol il [[Special:Watchlist|noonook djinanglist]] be <strong>moorn</strong>",
+       "recentchangeslinked-page": "Bibol kwel-le:",
+       "recentchangeslinked-to": "Yong-a wallak bibol beda nitja bibol",
+       "upload": "Yirra file",
+       "uploadlogpage": "Bil-lang boonadairn",
+       "filedesc": "koorada waangkininy",
+       "license": "Licensing:",
+       "license-header": "Licensing",
+       "imgfile": "file",
+       "listfiles": "File list",
+       "listfiles_user": "Niall",
+       "file-anchor-link": "File",
+       "filehist": "File kooralang",
+       "filehist-help": "Click il date/time djinang file jin-bal dundak ally-war time.",
+       "filehist-revert": "yuttock",
+       "filehist-current": "yalga",
+       "filehist-datetime": "Date/Time",
+       "filehist-thumb": "ngank-biri",
+       "filehist-thumbtext": "nidja ngank-biri win-nere $1",
+       "filehist-nothumb": "Uart ngank-biri",
+       "filehist-user": "Niall",
+       "filehist-dimensions": "Nidja-boola",
+       "filehist-comment": "Waarnkiny",
+       "imagelinks": "File malyn",
+       "linkstoimage": "Ngawaliny {{PLURAL:$1|bibol beda}} nidja file:",
+       "linkstoimage-more": "Bool $1 {{PLURAL:$1|bibol beda}} nidja file.\nNgawaliny gwabbaninijow yong-a {{PLURAL:$1|keny bibol beda}} bura nidja file.\nGaign [[Special:WhatLinksHere/$2|gwabbanijow bulyaru]] mila.",
+       "nolinkstoimage": "Uart bibol beda nitja file",
+       "linkstoimage-redirect": "$1 (file Dtallangiritch) $2",
+       "sharedupload-desc-here": "Nidja file winjang $1 wer kaya malyn uame-projects.\n\nWarrang-an it [$2 file Warrang-an bibol] yong-a yal-lal-la begoory",
+       "filepage-nofile": "Uart file il nidja kwel-le",
+       "upload-disallowed-here": "Noonook uart wallak nidja file",
+       "randompage": "alia bibol",
+       "statistics": "Bula-wer-bula",
+       "statistics-header-users": "Niall bula-wer-bula",
+       "double-redirect-fixer": "Dtallangiritch fixer",
+       "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
+       "nmembers": "$1 {{PLURAL:$1|Noonook}}",
+       "prefixindex": "Boola bibol wer prefix",
+       "listusers": "Niall list",
+       "newpages": "Milgar bibol",
+       "newpages-username": "Niall kwel-le:",
+       "move": "Ngatta",
+       "pager-newer-n": "{{PLURAL:$1|ngolango $1}}",
+       "pager-older-n": "{{PLURAL:$1|kura}}",
+       "booksources": "Boola bibol birnup",
+       "booksources-search-legend": "Djinanginy boola bibol birnup",
+       "booksources-search": "genuniny",
+       "specialloguserlabel": "Ngunynilan",
+       "speciallogtitlelabel": "djuno (Katta-wiriny ka {{ns:user}}:Niall-kewl-le wer niall):",
+       "log": "Boonadairn",
+       "all-logs-page": "Bulyaru yong-a boorna",
+       "alllogstext": "Bulyaru yong-a il bundung bulyaru boorna nidja {{SITENAME}}\nNoonook djinanginy nulu-borak toyntch-wung boonadairn, niall kwel-le, ka bibol",
+       "logempty": "Uart mokininy yallabel bura boonadairn",
+       "allpages": "Bandang bibol",
+       "allarticles": "Bandang bibol",
+       "allpagessubmit": "Koorl",
+       "allpages-hide-redirects": "Kwib-idj-ee dtallangiritch",
+       "categories": "Warrangan",
+       "listgrouprights-members": "(listang bunga il)",
+       "emailuser": "Email nidja niall",
+       "usermessage-editor": "System waagnkin",
+       "watchlist": "Djinanglist",
+       "mywatchlist": "Djinanglist",
+       "watchlistfor2": "Ung $1 $2",
+       "watch": "Djinang",
+       "unwatch": "Uart djinang",
+       "watchlist-details": "{{PLURAL:$1|$1 bibol}} noonook Djinanglist (wer waangkin bibol).",
+       "wlheader-showupdated": "Bibol yallabel wallak kura noonook djinang balgup be yong-a bura <strong>moorn</strong>",
+       "wlnote": "Ngardal  {{PLURAL:$1|yuttock wallak|nidja yuttock <strong>$1</strong> wallak}} il yuttock {{PLURAL:$2|hour|<strong>$2</strong> hours}}, nun o-luk $3, $4.",
+       "wlshowlast": "Yong-a yeye $1 hours $2 biryt",
+       "watchlist-options": "djinanglist nidj-ka-nidja",
+       "enotif_reset": "djiler yennar bibol nyiny",
+       "dellogpage": "Barranginy boonadairn",
+       "rollbacklink": "yowal",
+       "rollbacklinkcount": "yowal $1 {{PLURAL:$1|wallak}}",
+       "protectlogpage": "Nap-nap boonadairn",
+       "protectedarticle": "nap-nap \"[[$1]]\"",
+       "modifiedarticleprotection": "wallak nap-nap-ang \"[[$1]]\"",
+       "protect-default": "kaya yennar niall",
+       "restriction-edit": "Doonkeniny",
+       "restriction-move": "Ngatta",
+       "namespace": "kwel-el-up",
+       "invert": "mudjardo",
+       "tooltip-invert": "Djiler nidja kuta ijow kwib-idj-ee wallak ijow bibol bura toyntch-wung kwel-leup (and noyyang kwel-leup il djiler)",
+       "namespace_association": "Gabbyn kwel-le-up",
+       "tooltip-namespace_association": "Djiler nidja kuta ijow wer waangkin or bibol kwel-leup noyyang kwel-leup",
+       "blanknamespace": "(Keny)",
+       "contributions": "{{GENDER:$1|Niall}} wallak",
+       "contributions-title": "Niall wallak-ang   $1",
+       "mycontris": "Ngun-ya katitjiny",
+       "anoncontribs": "Nguny katitiny",
+       "contribsub2": "Natj {{GENDER:$3|$1}} ($2)",
+       "nocontribs": "uart wallak quadgabe mokininy nidja katitjiny",
+       "uctop": "(yeye)",
+       "month": "Month-ang (wer gwytch-ang-at)",
+       "year": "Year-ang (wer gwytch-ang-at)",
+       "sp-contributions-newbies": "Yong-a wallak il ngolango gaduk",
+       "sp-contributions-blocklog": "nap-nap boonadairn",
+       "sp-contributions-uploads": "irak",
+       "sp-contributions-logs": "boonadairn",
+       "sp-contributions-talk": "waarnk",
+       "sp-contributions-search": "djinanginy ngun-ya katitiny",
+       "sp-contributions-username": "IP karl-up ka niall-kwel-le",
+       "sp-contributions-toponly": "Yong-a wallak yeye kura-wallak",
+       "sp-contributions-newonly": "Yong-a wallak yallabel bibol quadga",
+       "sp-contributions-submit": "genunniny",
+       "whatlinkshere": "natj beda nitja",
+       "whatlinkshere-title": "Bibol beda $1",
+       "whatlinkshere-page": "Bibol:",
+       "linkshere": "Ngawaliny bibol beda-ang <strong>[[:$1]]</strong>",
+       "nolinkshere": "Uart bibol beda <strong>[[:$1]]</strong>.",
+       "isredirect": "Dtallangiritch bibol",
+       "istemplate": "transclusion",
+       "isimage": "file beda",
+       "whatlinkshere-prev": "{{PLURAL:$1|Gwytch-ang-at $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|warnign $1}}",
+       "whatlinkshere-links": "← beda",
+       "whatlinkshere-hideredirs": "$1 dtallangiritch",
+       "whatlinkshere-hidetrans": "$1 transclusions",
+       "whatlinkshere-hidelinks": "$1 beda",
+       "whatlinkshere-hideimages": "$1 file beda",
+       "whatlinkshere-filters": "Uart nidj kia nidj",
+       "ipboptions": "2 hours:2 hours,1 day:1 day,3 days:3 days,1 week:1 week,2 weeks:2 weeks,1 month:1 month,3 months:3 months,6 months:6 months,1 year:1 year,indefinite:infinite",
+       "infiniteblock": "kal-ya-kool",
+       "blocklink": "nap-nap",
+       "contribslink": "ngunya katitjiny",
+       "blocklogpage": "Nap-nap boonadairn",
+       "blocklogentry": "nap-nap [[$1]] borduck dan-dee-deenang time $2 $3",
+       "reblock-logentry": "wallak nap-nap-ang [[$1]] borduck dan-dee-deenang time $2 $3",
+       "block-log-flags-nocreate": "gaduk quadga warra",
+       "proxyblocker": "Proxy blocker",
+       "movelogpage": "Ngatta boonadairn",
+       "export": "Export bibol",
+       "thumbnail-more": "Koom-bariny",
+       "importlogpage": "Yal-burrung boorn",
+       "tooltip-pt-userpage": "{{GENDER:|Noonook Niall}} bibol",
+       "tooltip-pt-mytalk": "{{GENDER:|Noonook}} waangkin bibol",
+       "tooltip-pt-preferences": "{{GENDER:|Noonook}} Nidj-wer-nidja",
+       "tooltip-pt-watchlist": "Ken-y list-ang bibol noonook djinanginy wer wallak",
+       "tooltip-pt-mycontris": "List-ang {{GENDER:|noonook}} wallak",
+       "tooltip-pt-login": "noonar koorlaliny nitja bridi noonar kwel nyuny koorl",
+       "tooltip-pt-logout": "woort koorl",
+       "tooltip-pt-createaccount": "Walbirniny noonar gaduk woort koorliny",
+       "tooltip-ca-talk": "waankalaliny bibol",
+       "tooltip-ca-edit": "wallak nitja bibol",
+       "tooltip-ca-addsection": "quadgin yy-inang quanyartign",
+       "tooltip-ca-viewsource": "Nidja bibol nap-nap\nNoonook djinang birnup",
+       "tooltip-ca-history": "Kura wallak nidja bibol",
+       "tooltip-ca-protect": "Nap-nap nidja bibol",
+       "tooltip-ca-delete": "Nidja bibol barranginy",
+       "tooltip-ca-move": "Ngatta nidja bibol",
+       "tooltip-ca-watch": "noonook watchlist wer bibol",
+       "tooltip-ca-unwatch": "Moon gnarng nidja bibol-ang noonook djinanglist",
+       "tooltip-search": "genuniny {{SITENAME}}",
+       "tooltip-search-go": "koorliny bibol noonar kwel-le kanna",
+       "tooltip-search-fulltext": "genuniny biblowaarn warryn",
+       "tooltip-p-logo": "Koorl keny mia",
+       "tooltip-n-mainpage": "Koorl keny mia",
+       "tooltip-n-mainpage-description": "Koorl keny mia",
+       "tooltip-n-portal": "katitjiny kitt-kitt, ngearn noonar walbirniny, winji katitjiny cienan-an",
+       "tooltip-n-currentevents": "djinang kadadinj echena yeye",
+       "tooltip-n-recentchanges": "kitt-kitt koorliny yeye wallak",
+       "tooltip-n-randompage": "buranyiny alia bibol",
+       "tooltip-n-help": "Katitjiny birritup",
+       "tooltip-t-whatlinkshere": "beda bibol waanginy nitja",
+       "tooltip-t-recentchangeslinked": "Yeye wallak bibol beda nidja bibol",
+       "tooltip-feed-atom": "Atom feed for nidja bibol",
+       "tooltip-t-contributions": "ngun-ya wallak {{GENDER:$1|nidja niall}}",
+       "tooltip-t-emailuser": "Email dtallangiritch {{GENDER:$1|niall}}",
+       "tooltip-t-upload": "Yirra files",
+       "tooltip-t-specialpages": "List-boola birdarra bibol",
+       "tooltip-t-print": "walbirniny bibol bibol",
+       "tooltip-t-permalink": "Kalyakoorl beda nidja revision of bibol",
+       "tooltip-ca-nstab-main": "djinanginy katitjiny bibol",
+       "tooltip-ca-nstab-user": "djinang niall bibol",
+       "tooltip-ca-nstab-special": "Nidja birdarra bibol, uart wallakiny",
+       "tooltip-ca-nstab-project": "Djinanginy project bibol",
+       "tooltip-ca-nstab-image": "Genuny file bibol",
+       "tooltip-ca-nstab-mediawiki": "Djinang system waagnkin",
+       "tooltip-ca-nstab-template": "Djinang birnup",
+       "tooltip-ca-nstab-category": "Genuny warrangan bibol",
+       "tooltip-minoredit": "Djiler nidja wallak kardidi",
+       "tooltip-save": "Burung noonook wallak",
+       "tooltip-preview": "Djaning gwytch-ang-at barranginy noonook wallak.",
+       "tooltip-diff": "Yong-a wallak noonook maar waangkininy",
+       "tooltip-compareselectedversions": "Djinang nidja wallak nidja koogal kura djinang-ung nidja bibol",
+       "tooltip-watch": "noonook watchlist wer bibol",
+       "tooltip-rollback": "\"Yowal\" wallak ijow yuttock niall wallak nidja bibol ken-y-click",
+       "tooltip-undo": "\"Undo\" yowal nidja wallak and yalgaranan nidja wallak bibol bura nun-gow-iny. Kaya wer-iny niat-juk bura koorada waangkiny.",
+       "tooltip-summary": "Djarbiny koo-ra-da waangkininy",
+       "simpleantispam-label": "Anti-spam check.\nDo <strong>not</strong> fill this in!",
+       "pageinfo-title": "Kadadjiny nitja \"$1\"",
+       "pageinfo-header-basic": "Katitjin yaga",
+       "pageinfo-header-edits": "Wallak kura",
+       "pageinfo-header-restrictions": "Bibol nap-nap",
+       "pageinfo-header-properties": "Bibol properties",
+       "pageinfo-display-title": "Yong-a katta wir-iny",
+       "pageinfo-default-sort": "Kalyakoorliny sort key",
+       "pageinfo-length": "bibol wur-ree (bura bytes)",
+       "pageinfo-article-id": "Bibol ID",
+       "pageinfo-language": "Bibol wallak waagnkin",
+       "pageinfo-content-model": "Bibol katitininy birnup",
+       "pageinfo-robot-policy": "Gwabbanijow borduck balyat-ta",
+       "pageinfo-robot-index": "Kaya",
+       "pageinfo-robot-noindex": "Uart",
+       "pageinfo-watchers": "Bula-ang bibol djinanging",
+       "pageinfo-few-watchers": "Ngar-ral yallabel $1 {{PLURAL:$1|noonook djinanginy}}",
+       "pageinfo-redirects-name": "Boola nidja bibol dtallangiritch",
+       "pageinfo-subpages-name": "Bula culang bibol-ung nidja bibol",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|Dtallangiritch|Boola dtallangiritch}}; $3 {{PLURAL:$3|Uart dtallangiritch}})",
+       "pageinfo-firstuser": "Bibol quadga",
+       "pageinfo-firsttime": "date il bibol quadga",
+       "pageinfo-lastuser": "Gwytch niall",
+       "pageinfo-lasttime": "Date yeye wallak",
+       "pageinfo-edits": "Ngarnan wallak",
+       "pageinfo-authors": "Ngarnan-ung wallakwallak niall",
+       "pageinfo-recent-edits": "yeye bula-ang wallakang (winji kura $1)",
+       "pageinfo-recent-authors": "yeye bula-ang wallakwallak niall",
+       "pageinfo-magic-words": "Mulga {{PLURAL:$1|waangkin}} ($1)",
+       "pageinfo-hidden-categories": "Kopin {{PLURAL:$1|Waaragan}}",
+       "pageinfo-templates": "Transcluded {{PLURAL:$1|birnup}} ($1)",
+       "pageinfo-toolboxlink": "bibol kadadjiny",
+       "pageinfo-contentpage": "kaya jin katitiny bibol",
+       "pageinfo-contentpage-yes": "Kaya",
+       "patrol-log-page": "Patrol boorn",
+       "previousdiff": "← kura wallak",
+       "nextdiff": "yy-inang wallak →",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|bibol}}",
+       "file-info-size": "$1 × $2 pixels, file size: $3, MIME type: $4",
+       "file-info-size-pages": "$1 × $2 pixels, file size: $3, MIME type: $4, $5 {{PLURAL:$5|bibol}}",
+       "file-nohires": "Uart yira nidja bool-ak nidja",
+       "svg-long-desc": "SVG file, nominally $1 × $2 pixels, file size: $3",
+       "show-big-image": "Goryat file",
+       "show-big-image-preview": "Nidja-boola nidja booram-djinang: $1",
+       "show-big-image-other": "Wam {{PLURAL:$2|nidja-boola}}: $1.",
+       "show-big-image-size": "$1 × $2 pixels",
+       "metadata": "Metadata",
+       "metadata-help": "This file contains additional information, probably added from the digital camera or scanner used to create or digitize it.\nIf the file has been modified from its original state, some details may not fully reflect the modified file.",
+       "metadata-fields": "Image metadata fields listed in this message will be included on image page display when the metadata table is collapsed.\nOthers will be hidden by default.\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",
+       "exif-orientation": "Winje koorliny",
+       "exif-xresolution": "I-jow nidja-boola",
+       "exif-yresolution": "yira-yarkiny nidja-boola",
+       "exif-datetime": "File wallak date wer time",
+       "exif-make": "Camera manufacturer",
+       "exif-model": "Camera model",
+       "exif-software": "Software used",
+       "exif-exifversion": "Exif version",
+       "exif-colorspace": "Walgen-up",
+       "exif-datetimeoriginal": "Date wer time il data allyquadga",
+       "exif-datetimedigitized": "Date wer time il digitizing",
+       "exif-orientation-1": "kwop",
+       "namespacesall": "bandang",
+       "monthsall": "bandang",
+       "imgmultipagenext": "warnign bibol →",
+       "imgmultigo": "Koorl",
+       "imgmultigoto": "Koorl bibol $1",
+       "watchlisttools-clear": "Barranginy djinanglist",
+       "watchlisttools-view": "Djinang wallak",
+       "watchlisttools-edit": "Djinang wer wallak djinanglist",
+       "watchlisttools-raw": "Wallak dalyar djinanglist",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|niall waarnk]])",
+       "redirect": "Dtallangiritch borduck file, niall, bibol, kura djinang, ka boonadairn ID",
+       "redirect-summary": "This special page redirects to a file (given the filename), a page (given a revision ID or page ID), a user page (given a numeric user ID), or a log entry (given the log ID). Usage: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], or [[{{#Special:Redirect}}/logid/186]].",
+       "redirect-submit": "Koorl",
+       "redirect-lookup": "Djinang yira:",
+       "redirect-value": "Value:",
+       "redirect-user": "Niall ID",
+       "redirect-page": "Bibol ID",
+       "redirect-revision": "Bibol kura djinang",
+       "redirect-file": "File kwel-le",
+       "specialpages": "birdarra bibol",
+       "tag-filter": "[[Special:Tags|Tag]] Uart nidj kia nidj:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
+       "tags-active-yes": "Kaya",
+       "tags-active-no": "Uart",
+       "tags-hitcount": "$1 {{PLURAL:$1|wallak}}",
+       "logentry-delete-delete": "$1 {{GENDER:$2|Barrangin}} bibol $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|garro-yual}} bibol $3 ($4)",
+       "logentry-delete-revision": "$1 {{GENDER:$2|wallak}} djinang-ung {{PLURAL:$5|kura djinang}} il bibol $3: $4",
+       "revdelete-content-hid": "Kopin mar waangkin",
+       "logentry-move-move": "$1 {{GENDER:$2|ngatta}} bibol $3 il $4",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|ngatta}} bibol $3 il $4 borduckang dtallangiritch",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|ngatta}} bibol $3 il $4 bockech dtallangiritch",
+       "logentry-patrol-patrol-auto": "$1 eche-na {{GENDER:$2|djiler}} kura djinang $4 il bibol $3 kaya wallak",
+       "logentry-newusers-create": "Niall gaduk $1 {{GENDER:$2|ally-quadga}}",
+       "logentry-newusers-autocreate": "Niall gaduk  $1 {{GENDER:$2|ally-quadga}} eche-na",
+       "logentry-upload-upload": "$1 {{GENDER:$2|irak}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|bil-lang}} yyinang dum-bart-ang $3",
+       "searchsuggest-search": "genuniny {{SITENAME}}",
+       "duration-days": "$1 {{PLURAL:$1|biryt}}",
+       "randomrootpage": "Alia bibol birnup"
+}
index cfe95f2..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-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Znacznik|Znaczniki}}]]: $2)",
        "tag-mw-contentmodelchange": "zmiana modelu zawartości",
        "tag-mw-contentmodelchange-description": "Edycje, które [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel zmieniają model zawartości] strony",
+       "tag-mw-new-redirect": "Nowe przekierowanie",
+       "tag-mw-new-redirect-description": "Edycja, która tworzy nowe przekierowanie albo zmienia istniejącą stronę (nie-przekierowanie) na przekierowanie",
+       "tag-mw-removed-redirect": "Usunięto przekierowanie",
+       "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.",
        "tags-tag": "Nazwa znacznika",
index bfa021d..4f3a68f 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": "ښکاره کول",
        "recentchangeslinked-feed": "اړونده بدلونونه",
        "recentchangeslinked-toolbox": "اړونده بدلونونه",
        "recentchangeslinked-title": "\"$1\" ته اړونده بدلونونه",
-       "recentchangeslinked-summary": "دا د هغه بدلونونو لړليک دی چې وروستۍ ځل په تړن لرونکيو مخونو کې د يوه ځانگړي مخ (او يا هم د يوې ځانگړې وېشنيزې غړو) نه رامېنځ ته شوي.\n[[Special:Watchlist|ستاسې د کتنلړ]] مخونه په '''زغرد ليک''' کې ښکاري.",
+       "recentchangeslinked-summary": "دا د هغه بدلونونو لړليک دی چې وروستۍ ځل په تړن لرونکيو مخونو کې د يوه ځانگړي مخ (او يا هم د يوې ځانگړې وېشنيزې غړو) نه رامېنځ ته شوي. [[Special:Watchlist|ستاسې د کتنلړ]] مخونه په <strong>زغرد ليک</strong> کې ښکاري.",
        "recentchangeslinked-page": "د مخ نوم:",
        "recentchangeslinked-to": "د ورکړل شوي مخ پر ځای د اړونده تړلي مخونو بدلونونه ښکاره کول",
        "recentchanges-page-added-to-category": "[[:$1]] وېشنيزې کې ورگډ شو",
        "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-recent-authors": "د بېلابېلو ليکوالو وروستنی شمېر",
        "pageinfo-magic-words": "کوډگريز {{PLURAL:$1|ويي|وييونه}} ($1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|پټه وېشنيزه|پټې وېشنيزې}} ($1)",
-       "pageinfo-templates": "ترجمه {{PLURAL:$1|کينډۍ|کينډۍ}} ($1)",
+       "pageinfo-templates": "ترجمه {{PLURAL:$1|template|کينډۍ}} ($1)",
        "pageinfo-toolboxlink": "د مخ مالومات",
        "pageinfo-redirectsto": "مخ گرځونې و",
        "pageinfo-redirectsto-info": "مالومات",
        "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": "د نوو دوتنو انځورتون",
        "ilsubmit": "پلټل",
        "bydate": "د نېټې له مخې",
        "sp-newimages-showfrom": "هغه نوې دوتنې چې په $1 په $2 بجو پيلېږي ښکاره کول",
+       "minutes-abbrev": "$1 دقیقي",
        "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 84f04df..4832e91 100644 (file)
        "timezoneregion-indian": "Oceano Índico",
        "timezoneregion-pacific": "Oceano Pacífico",
        "allowemail": "Permitir que outros utilizadores me enviem correio eletrónico",
+       "email-allow-new-users-label": "Permitir mensagens de correio de utilizadores novos",
        "email-blacklist-label": "Proibir estes utilizadores de me enviarem correio eletrónico:",
        "prefs-searchoptions": "Pesquisa",
        "prefs-namespaces": "Domínios",
        "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 <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": "Introduzir o nome de 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",
        "rclistfrom": "Mostrar as novas mudanças a partir das $2 de $3",
        "recentchangeslinked-feed": "Alterações relacionadas",
        "recentchangeslinked-toolbox": "Alterações relacionadas",
        "recentchangeslinked-title": "Alterações relacionadas com \"$1\"",
-       "recentchangeslinked-summary": "Esta é uma lista de mudanças recentes a todas as páginas para as quais a página fornecida contém hiperligações (ou de todas as que pertencem à categoria fornecida).\nAs suas [[Special:Watchlist|páginas vigiadas]] aparecem a <strong>negrito</strong>.",
+       "recentchangeslinked-summary": "Introduza o nome de uma página para ver as mudanças a todas as páginas que contêm hiperligações para ela ou para as quais a página fornecida contém hiperligações (para ver as que pertencem a uma categoria, introduza Categoria:Nome da categoria). As mudanças às suas [[Special:Watchlist|páginas vigiadas]] aparecem a <strong>negrito</strong>.",
        "recentchangeslinked-page": "Nome da página:",
        "recentchangeslinked-to": "Inversamente, mostrar mudanças às páginas que contêm hiperligações para esta",
        "recentchanges-page-added-to-category": "[[:$1]] foi adicionada à categoria",
index 072a93c..209838e 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]], ...",
        "uploadstash-bad-path-invalid": "Error message when the upload stash path is invalid.",
        "uploadstash-bad-path-unknown-type": "Error message when the upload stash key is of an invalid type.\n\nParameters:\n* $1 - the type",
        "uploadstash-bad-path-unrecognized-thumb-name": "Error message when the upload stash key is of an unrecognized thumbnail",
-       "uploadstash-bad-path-no-handler": "Error message when no handler can be found for the given upload stash key.\n\nParameters:\n* $1 - the mine type\n* $2 - the file path",
+       "uploadstash-bad-path-no-handler": "Error message when no handler can be found for the given upload stash key.\n\nParameters:\n* $1 - the MIME type\n* $2 - the file path",
        "uploadstash-bad-path-bad-format": "Error message when the upload stash key if formatted incorrectly.\n\nParameters:\n* $1 - the stash key",
        "uploadstash-file-not-found": "Error message when a stashed file can't be found.\n\nParameters:\n* $1 - the stash key",
        "uploadstash-file-not-found-no-thumb": "Error message when no thumbnail could be generated.",
        "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 exist.\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 a19cd09..d85313f 100644 (file)
        "rcshowhidemine": "$1 cangiaminde mie",
        "rcshowhidemine-show": "Fà vedè",
        "rcshowhidemine-hide": "Scunne",
+       "rcshowhidecategorization": "$1 categorizzazzione d'a pàgene",
        "rcshowhidecategorization-show": "Fà 'ndrucà",
        "rcshowhidecategorization-hide": "Scunne",
        "rclinks": "Vide l'urteme $1 cangiaminde jndr'à l'urteme $2 sciurne",
index 652359a..a34c159 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": "Права участника",
        "right-purge": "очистка кэша страниц без подтверждения",
        "right-autoconfirmed": "обход ограничений скорости на IP-адрес",
        "right-bot": "автоматический процесс",
-       "right-nominornewtalk": "оÑ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вие Ð¼Ð°Ð»Ñ\8bÑ\85 Ð¿Ñ\80авок Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\85 Ð¾Ð±Ñ\81Ñ\83ждений Ð²ÐºÐ»Ñ\8eÑ\87аеÑ\82 Ñ\80ежим Ð½Ð¾Ð²Ñ\8bÑ\85 Ñ\81ообÑ\89ений",
+       "right-nominornewtalk": "малÑ\8bе Ð¿Ñ\80авки Ð½Ð° Ð¡Ð\9e Ñ\83Ñ\87аÑ\81Ñ\82ников Ð½Ðµ Ñ\81оздаÑ\8eÑ\82 Ð´Ð»Ñ\8f Ð½Ð¸Ñ\85 Ñ\83ведомление Ð¾ Ð½Ð¾Ð²Ð¾Ð¼ Ñ\81ообÑ\89ении",
        "right-apihighlimits": "уменьшение ограничений на выполнение API-запросов",
        "right-writeapi": "использование API для записи",
        "right-delete": "удаление страниц",
        "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": "Редактирование защищённых страниц",
        "tag-mw-blank-description": "Правки, которые очищают страницу",
        "tag-mw-replace": "Заменено",
        "tag-mw-replace-description": "Правки, которые удаляют более 90 % содержимого страницы",
-       "tag-mw-rollback": "Ð\9eткат",
+       "tag-mw-rollback": "откат",
        "tag-mw-rollback-description": "Правки, которые откатывают предыдущие правки по нажатию ссылки отката",
        "tags-title": "Метки",
        "tags-intro": "На этой странице приведён список меток, которыми программное обеспечение отмечает правки, а также значения этих меток.",
index bc2270b..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": "ᱵᱚᱴ ᱩᱠᱩ ᱮᱞᱥᱚᱝ ᱛᱮᱭᱟᱨᱱᱟ",
        "powersearch-togglelabel": "Sendra",
        "powersearch-toggleall": "Sanamaḱ",
        "powersearch-togglenone": "Okaṭaḱ hõ baṅ",
-       "preferences": "Pạsindko",
-       "mypreferences": "Pạsindko",
+       "preferences": "ᱠᱩᱥᱤᱠᱚ",
+       "mypreferences": "ᱠᱩᱥᱤᱠᱚ",
        "prefs-edits": "ᱥᱟᱯᱲᱟᱣᱟᱜ ᱮᱞ:",
        "prefs-skin": "Harta",
        "skin-preview": "Ńel, Unuduḱ",
        "tooltip-watch": "ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱟᱢᱟᱜ ᱧᱮᱞᱚᱜ ᱛᱟᱹᱞᱠᱟᱹᱨᱮ ᱡᱚᱲᱟᱣᱢᱮ",
        "tooltip-rollback": "ᱫᱚᱲᱦᱟᱛᱮ ᱢᱤᱫ ᱫᱷᱟᱣ ᱞᱤᱱ ᱛᱮ contributor ᱟᱜ ᱢᱩᱪᱟᱹᱫ ᱥᱟᱯᱲᱟᱣ \"ᱜᱷᱩᱨᱞᱟᱹ ᱟᱹᱪᱩᱨ\" ᱢᱮ",
        "tooltip-undo": "Noa joṛao kạmire ulṭao \"bạgiyaḱme\" ar ńeloḱ lekate noa joṛao jhicme. Noa do am guḍ karon joṛaoe ektiyariye emama.",
-       "tooltip-preferences-save": "Pạsindko rukhiyaymẽ",
+       "tooltip-preferences-save": "ᱠᱩᱥᱤᱠᱚ ᱨᱩᱠᱷᱤᱭᱟᱹᱭᱢᱮ",
        "tooltip-summary": "Khaṭote guṭ katha bhoraome",
        "others": "Eṭagaḱko",
        "simpleantispam-label": "Enṭi espam ńel\nDo <strong>not</strong> noa purạome!",
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 a726127..978fcdd 100644 (file)
        "timezoneregion-indian": "Indijski ocean",
        "timezoneregion-pacific": "Tihi ocean",
        "allowemail": "Drugim uporabnikom omogoči pošiljanje e-pošte",
+       "email-allow-new-users-label": "Dovoli e-pošto od čisto novih uporabnikov",
        "email-blacklist-label": "Prepreči naslednjim uporabnikom, da mi pošiljajo e-pošto:",
        "prefs-searchoptions": "Iskanje",
        "prefs-namespaces": "Imenski prostori",
        "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",
        "recentchanges-noresult": "V danem obdobju nobena sprememba ne ustreza tem merilom.",
        "recentchanges-timeout": "Čas iskanja je potekel. Poskusite uporabiti drugačne parametre iskanja.",
        "recentchanges-network": "Zaradi tehnične napake rezultatov ne moremo naložiti. Prosimo, poskusite osvežiti stran.",
+       "recentchanges-notargetpage": "Zgoraj vnesite ime strani, da vidite spremembe, povezane s to stranjo.",
        "recentchanges-feed-description": "Spremljajte zadnje spremembe wikija prek tega vira.",
        "recentchanges-label-newpage": "To urejanje je ustvarilo novo stran",
        "recentchanges-label-minor": "To je manjše urejanje",
        "rcfilters-watchlist-showupdated": "Spremembe strani, ki jih niste obiskali od zadnje spremembe, so prikazane <strong>krepko</strong>, z močnimi oznakami.",
        "rcfilters-preference-label": "Skrij izboljšano različico Zadnjih sprememb",
        "rcfilters-preference-help": "Povrne preoblikovanje vmesnika leta 2017 in vsa takrat in od takrat dodana orodja.",
+       "rcfilters-filter-showlinkedfrom-label": "Pokaži spremembe na straneh, na katere se povezuje",
+       "rcfilters-filter-showlinkedfrom-option-label": "Pokaži spremembe na straneh, povezanih <strong>S</strong> strani",
+       "rcfilters-filter-showlinkedto-label": "Pokaži spremembe na straneh, povezane na",
+       "rcfilters-filter-showlinkedto-option-label": "Pokaži spremembe na straneh, povezanih <strong>NA</strong> stran",
+       "rcfilters-target-page-placeholder": "Vnesite ime strani",
        "rcnotefrom": "{{PLURAL:$5|Navedena je sprememba|Navedeni sta spremembi|Navedene so spremembe}} od <strong>$3 $4</strong> dalje (prikazujem jih do <strong>$1</strong>).",
        "rclistfromreset": "Ponastavi izbiro datuma",
        "rclistfrom": "Prikaži spremembe od $3 $2 naprej",
        "recentchangeslinked-feed": "Sorodne spremembe",
        "recentchangeslinked-toolbox": "Sorodne spremembe",
        "recentchangeslinked-title": "Spremembe, povezane z \"$1\"",
-       "recentchangeslinked-summary": "To je seznam nedavnih sprememb strani povezanih na določeno stran (ali iz določene kategorije).\nStrani iz [[Special:Watchlist|vašega spiska nadzorov]] so '''odebeljene'''.",
+       "recentchangeslinked-summary": "Vnesite ime strani, da vidite spremembe strani, povezanih na ali s te strani. (Da vidite člane kategorije, vnesite Kategorija:Ime kategorije.)\nStrani z [[Special:Watchlist|vašega spiska nadzorov]] so <strong>odebeljene</strong>.",
        "recentchangeslinked-page": "Naslov strani:",
        "recentchangeslinked-to": "Prikaži spremembe na določeno stran povezanih strani",
        "recentchanges-page-added-to-category": "[[:$1]] dodano v kategorijo",
index 15416bd..54c1b2b 100644 (file)
        "group-autoconfirmed-member": "{{GENDER:$1|аутоматски потврђен корисник|аутоматски потврђена корисница}}",
        "group-bot-member": "{{GENDER:$1|бот}}",
        "group-sysop-member": "{{GENDER:$1|администратор|администраторка|администратор}}",
-       "group-bureaucrat-member": "{{GENDER:$1|бирократа}}",
+       "group-bureaucrat-member": "{{GENDER:$1|бирократа|бирократкиња}}",
        "group-suppress-member": "{{GENDER:$1|брисач измена}}",
        "grouppage-user": "{{ns:project}}:Корисници",
        "grouppage-autoconfirmed": "{{ns:project}}:Аутоматски потврђени корисници",
        "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 32874e0..ea8f10f 100644 (file)
        "group-autoconfirmed-member": "{{GENDER:$1|automatski potvrđen korisnik|automatski potvrđena korisnica}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|administrator|administratorka}}",
-       "group-bureaucrat-member": "{{GENDER:$1|birokrata}}",
+       "group-bureaucrat-member": "{{GENDER:$1|birokrata|birokratkinja}}",
        "group-suppress-member": "{{GENDER:$1|brisač izmena}}",
        "grouppage-user": "{{ns:project}}:Korisnici",
        "grouppage-autoconfirmed": "{{ns:project}}:Automatski potvrđeni korisnici",
        "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 3277d16..84ba0f3 100644 (file)
        "recentchangesdays-max": "Maximalt $1 {{PLURAL:$1|dygn}}",
        "recentchangescount": "Antal redigeringar som visas som standard:",
        "prefs-help-recentchangescount": "Detta inkluderar senaste ändringarna, sidhistorik och loggar.",
-       "prefs-help-watchlist-token2": "Detta är den hemliga nyckeln till webbflödet i din bevakningslista.\nNågon som vet den kommer att kunna läsa din bevakningslista, så dela inte ut den.\n[[Special:ResetTokens|Klicka här om du behöver återställa den]].",
+       "prefs-help-watchlist-token2": "Detta är den hemliga nyckeln till webbflödet i din bevakningslista.\nNågon som vet den kommer att kunna läsa din bevakningslista, så dela inte ut den.\nOm du behöver [[Special:ResetTokens|kan du återställa den]].",
        "savedprefs": "Dina inställningar har sparats",
        "savedrights": "Användargrupperna för {{GENDER:$1|$1}} har sparats.",
        "timezonelegend": "Tidszon:",
        "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.",
        "recentchanges-noresult": "Inga ändringar under den angivna perioden matchar dessa kriterier.",
        "recentchanges-timeout": "Tidsgränsen för denna sökning har gått ut. Du kan prova andra sökparametrar.",
        "recentchanges-network": "På grund av ett tekniskt fel kunde inga resultat läsas in. Försök att uppdatera sidan.",
+       "recentchanges-notargetpage": "Ange namnet på en sida ovan för att se ändringar som är relaterade till denna sida.",
        "recentchanges-feed-description": "Följ de senaste ändringarna i wikin genom detta flöde",
        "recentchanges-label-newpage": "Denna redigering skapade en ny sida",
        "recentchanges-label-minor": "Detta är en mindre ändring",
        "rcfilters-watchlist-showupdated": "Sidor som har ändrats sedan ditt senaste besök visas i <strong>fetstil</strong> med färgmarkering.",
        "rcfilters-preference-label": "Dölj den förbättrade versionen av Senaste ändringar",
        "rcfilters-preference-help": "Stänger det nydesignade gränssnittet från 2017 och alla verktyg som lades till från och med då.",
+       "rcfilters-filter-showlinkedfrom-label": "Visa ändringar på sidor som länkas från",
+       "rcfilters-filter-showlinkedfrom-option-label": "Visa ändringar på sidor som länkas <strong>FRÅN</strong> en sida",
+       "rcfilters-filter-showlinkedto-label": "Visa ändringar på sidor som länkas till",
+       "rcfilters-filter-showlinkedto-option-label": "Visa ändringar på sidor som länkas <strong>TILL</strong> en sida",
+       "rcfilters-target-page-placeholder": "Ange namnet på en sida",
        "rcnotefrom": "Nedan visas {{PLURAL:$5|ändringen|ändringar}} sedan <strong>$3, $4</strong> (upp till <strong>$1</strong> ändringar visas).",
        "rclistfromreset": "Återställ datumval",
        "rclistfrom": "Visa nya ändringar från och med $2 $3",
        "recentchangeslinked-feed": "Relaterade ändringar",
        "recentchangeslinked-toolbox": "Relaterade ändringar",
        "recentchangeslinked-title": "Ändringar relaterade till $1",
-       "recentchangeslinked-summary": "Detta är en lista över de senaste ändringarna på sidor som länkas till från en given sida (eller på sidor som hör till en viss kategori).\nSidor på [[Special:Watchlist|din bevakningslista]] är markerade med '''fetstil'''.",
+       "recentchangeslinked-summary": "Ange namnet på en sida för att se ändringar på sidor som länkas till eller från denna sida. (För att se medlemmar i en kategori, skriv Kategori:Namnet på kategorin). Ändringar på sidor i [[Special:Watchlist|sin bevakningslista]] är <strong>fetstilade</strong>.",
        "recentchangeslinked-page": "Sidnamn:",
        "recentchangeslinked-to": "Visa ändringar på sidor med länkar till den givna sidan istället",
        "recentchanges-page-added-to-category": "[[:$1]] lades till i kategorin",
index 9855c38..c7911a0 100644 (file)
        "tog-shownumberswatching": "แสดงจำนวนผู้ใช้ที่เฝ้าดู",
        "tog-oldsig": "ลายเซ็นที่คุณมีอยู่:",
        "tog-fancysig": "ถือลายเซ็นเป็นข้อความวิกิ (โดยไม่มีลิงก์อัตโนมัติ)",
-       "tog-uselivepreview": "à¹\83à¸\8aà¹\89à¸\81ารà¹\81สà¸\94à¸\87à¸\95ัวอยà¹\88าà¸\87à¹\81à¸\9aà¸\9aสà¸\94",
+       "tog-uselivepreview": "à¹\81สà¸\94à¸\87à¸\95ัวอยà¹\88าà¸\87à¹\82à¸\94ยà¹\84มà¹\88à¹\82หลà¸\94หà¸\99à¹\89าà¹\83หมà¹\88",
        "tog-forceeditsummary": "เตือนเมื่อช่องคำอธิบายอย่างย่อว่าง",
        "tog-watchlisthideown": "ซ่อนการแก้ไขของฉันจากรายการเฝ้าดู",
        "tog-watchlisthidebots": "ซ่อนการแก้ไขของบอตจากรายการเฝ้าดู",
        "tog-watchlisthideminor": "ซ่อนการแก้ไขเล็กน้อยจากรายการเฝ้าดู",
        "tog-watchlisthideliu": "ซ่อนการแก้ไขโดยผู้ใช้ล็อกอินจากรายการเฝ้าดู",
        "tog-watchlistreloadautomatically": "โหลดรายการเฝ้าดูใหม่อัตโนมัติเมื่อใดที่มีการเปลี่ยนตัวกรอง (ต้องการจาวาสคริปต์)",
+       "tog-watchlistunwatchlinks": "เพิ่มลิงก์เลิกเฝ้าดู/เฝ้าดูโดยตรงเข้าหน่วยรายการเฝ้าดู (ต้องการจาวาสคริปต์เพื่อเปิดปิดการใช้งาน)",
        "tog-watchlisthideanons": "ซ่อนการแก้ไขโดยผู้ใช้นิรนามจากรายการเฝ้าดู",
        "tog-watchlisthidepatrolled": "ซ่อนการแก้ไขที่ตรวจสอบแล้วจากรายการเฝ้าดู",
        "tog-watchlisthidecategorization": "ซ่อนการจัดหมวดหมู่หน้า",
        "history": "ประวัติหน้า",
        "history_short": "ประวัติ",
        "history_small": "ประวัติ",
-       "updatedmarker": "à¸\96ูà¸\81à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\95ัà¹\89à¸\87à¹\81à¸\95à¹\88à¸\81ารà¹\80ยีà¹\88ยมชมครั้งล่าสุดของฉัน",
+       "updatedmarker": "มีà¸\81ารà¸\9bรัà¸\9aà¸\95ัà¹\89à¸\87à¹\81à¸\95à¹\88à¸\81ารชมครั้งล่าสุดของฉัน",
        "printableversion": "รุ่นพร้อมพิมพ์",
        "permalink": "ลิงก์ถาวร",
        "print": "พิมพ์",
        "create": "สร้าง",
        "create-local": "เพิ่มคำอธิบายท้องถิ่น",
        "delete": "ลบ",
-       "undelete_short": "กู้คืนการแก้ไข $1 ครั้ง",
+       "undelete_short": "กู้คืน $1 การแก้ไข",
        "viewdeleted_short": "ดู $1 การแก้ไขที่ถูกลบ",
        "protect": "ล็อก",
        "protect_change": "เปลี่ยน",
        "viewhelppage": "ดูหน้าวิธีใช้",
        "categorypage": "ดูหน้าหมวดหมู่",
        "viewtalkpage": "ดูการพูดคุย",
-       "otherlanguages": "ในภาษาอื่น",
+       "otherlanguages": "ในภาษาอื่น",
        "redirectedfrom": "(เปลี่ยนทางจาก $1)",
        "redirectpagesub": "หน้าเปลี่ยนทาง",
        "redirectto": "เปลี่ยนทางไป:",
        "createacct-reason-help": "ข้อความที่แสดงในล็อกการสร้างบัญชี",
        "createacct-submit": "สร้างบัญชีของคุณ",
        "createacct-another-submit": "สร้างบัญชี",
-       "createacct-continue-submit": "à¸\97ำà¸\81ารสรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีà¸\95à¹\88อà¹\84à¸\9b",
-       "createacct-another-continue-submit": "à¸\97ำà¸\81ารสรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีà¸\95à¹\88อà¹\84à¸\9b",
+       "createacct-continue-submit": "สรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีà¸\95à¹\88อ",
+       "createacct-another-continue-submit": "สรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีà¸\95à¹\88อ",
        "createacct-benefit-heading": "{{SITENAME}}สร้างจากคนเช่นคุณ",
        "createacct-benefit-body1": "$1 การแก้ไข",
        "createacct-benefit-body2": "$1 หน้า",
        "nosuchusershort": "ไม่มีผู้ใช้ชื่อ \"$1\" \nกรุณาตรวจสอบการสะกด",
        "nouserspecified": "คุณต้องระบุชื่อผู้ใช้",
        "login-userblocked": "ผู้ใช้นี้ถูกบล็อก ไม่อนุญาตให้ล็อกอิน",
-       "wrongpassword": "รหัสà¸\9cà¹\88าà¸\99à¸\97ีà¹\88à¸\81รอà¸\81ไม่ถูกต้อง \nโปรดลองอีกครั้ง",
+       "wrongpassword": "à¸\81รอà¸\81à¸\8aืà¹\88อà¸\9cูà¹\89à¹\83à¸\8aà¹\89หรือรหัสà¸\9cà¹\88าà¸\99ไม่ถูกต้อง \nโปรดลองอีกครั้ง",
        "wrongpasswordempty": "รหัสผ่านที่กรอกว่าง\nโปรดลองอีกครั้ง",
        "passwordtooshort": "รหัสผ่านต้องมีอย่างน้อย $1 อักขระ",
        "passwordtoolong": "รหัสผ่านยาวกว่า $1 อักขระไม่ได้",
        "botpasswords-insert-failed": "การเพิ่มชื่อบอต \"$1\" ล้มเหลว คุณได้เพิ่มมันไว้แล้วหรือเปล่า?",
        "botpasswords-update-failed": "การอัปเดตชื่อบอต \"$1\" ล้มเหลว คุณลบมันออกไปหรือเปล่า?",
        "botpasswords-created-title": "สร้างรหัสผ่านบอตแล้ว",
-       "botpasswords-created-body": "รหัสà¸\9cà¹\88าà¸\99à¸\9aอà¸\95สำหรัà¸\9aà¸\8aืà¹\88อà¸\9aอà¸\95 \"$1\" à¸\82อà¸\87à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\8aืà¹\88อ \"$2\" à¸\96ูà¸\81สรà¹\89าà¸\87à¸\82ึà¹\89à¸\99แล้ว",
+       "botpasswords-created-body": "สรà¹\89าà¸\87รหัสà¸\9cà¹\88าà¸\99à¸\9aอà¸\95สำหรัà¸\9aà¸\8aืà¹\88อà¸\9aอà¸\95 \"$1\" à¸\82อà¸\87à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\8aืà¹\88อ \"$2\" แล้ว",
        "botpasswords-updated-title": "อัปเดตรหัสผ่านบอตแล้ว",
-       "botpasswords-updated-body": "รหัสà¸\9cาà¸\99à¸\9aอà¸\95สำหรัà¸\9aà¸\8aืà¹\88อà¸\9aอà¸\95 \"$1\" à¸\82อà¸\87à¸\9cูà¹\89à¹\83à¸\8aà¹\89 \"$2\" à¸\96ูà¸\81อัà¸\9bà¹\80à¸\94à¸\95แล้ว",
+       "botpasswords-updated-body": "à¸\9bรัà¸\9aรหัสà¸\9cาà¸\99à¸\9aอà¸\95สำหรัà¸\9aà¸\8aืà¹\88อà¸\9aอà¸\95 \"$1\" à¸\82อà¸\87à¸\9cูà¹\89à¹\83à¸\8aà¹\89 \"$2\" แล้ว",
        "botpasswords-deleted-title": "ลบรหัสผ่านบอตแล้ว",
-       "botpasswords-deleted-body": "รหัสà¸\9cà¹\88าà¸\99à¸\9aอà¸\95สำหรัà¸\9aà¸\8aืà¹\88อà¸\9aอà¸\95 \"$1\" à¸\82อà¸\87à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\8aืà¹\88อ \"$2\" à¸\96ูà¸\81ลà¸\9aออà¸\81แล้ว",
+       "botpasswords-deleted-body": "ลà¸\9aรหัสà¸\9cà¹\88าà¸\99à¸\9aอà¸\95สำหรัà¸\9aà¸\8aืà¹\88อà¸\9aอà¸\95 \"$1\" à¸\82อà¸\87à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\8aืà¹\88อ \"$2\" แล้ว",
        "botpasswords-newpassword": "รหัสผ่านใหม่ที่จะใช้กับ <strong>$1</strong> คือ <strong>$2</strong> <em>โปรดเก็บบันทึกข้อมูลนี้ไว้ เพื่อให้สามารถนำไปใช้อ้างอิงในภายหลังได้</em> <br> (ในกรณีที่เป็นบอตเก่าซึ่งต้องใช้ชื่อล็อกอินเหมือนกับชื่อผู้ใช้ โปรดใช้ <strong>$3</strong> เป็นชื่อผู้ใช้และ <strong>$4</strong> เป็นรหัสผ่าน)",
        "botpasswords-no-provider": "BotPasswordsSessionProvider ไม่พร้อมใช้งาน",
        "botpasswords-restriction-failed": "ข้อจำกัดของรหัสผ่านบอตห้ามไม่ให้ล็อกอินครั้งนี้",
        "passwordreset-emailelement": "ชื่อผู้ใช้: \n$1\n\nรหัสผ่านชั่วคราว: \n$2",
        "passwordreset-emailsentemail": "หากที่อยู่อีเมลนี้สัมพันธ์กับบัญชีของคุณ เช่นนั้นจะส่งอีเมลตั้งรหัสผ่านใหม่",
        "passwordreset-emailsentusername": "หากมีที่อยู่อีเมลที่ลงทะเบียนไว้ด้วยกับชื่อผู้ใช้นี้ เช่นนั้นจะส่งอีเมลตั้งรหัสผ่านใหม่",
+       "passwordreset-nocaller": "ต้องระบุผู้เรียก",
+       "passwordreset-nosuchcaller": "ไม่มีผู้เรียก: $1",
        "passwordreset-invalidemail": "ที่อยู่อีเมลไม่ถูกต้อง",
        "passwordreset-nodata": "ไม่ได้ระบุชื่อผู้ใช้และรหัสผ่านไว้",
        "changeemail": "เปลี่ยนหรือลบที่อยู่อีเมล",
        "anonpreviewwarning": "<em>คุณมิได้ล็อกอิน การบันทึกจะเก็บเลขที่อยู่ไอพีของคุณในประวัติการแก้ไขของหน้านี้</em>",
        "missingsummary": "<strong>อย่าลืม:</strong> คุณยังไม่ได้ให้คำอธิบายการแก้ไข \nถ้าคุณคลิก \"$1\" อีก จะบันทึกการแก้ไขของคุณโดยไม่มีคำอธิบายการแก้ไข",
        "selfredirect": "<strong>คำเตือน:</strong> คุณกำลังสร้างการเปลี่ยนทางไปบทความเดียวกัน\nคุณอาจระบุเป้าหมายของการเปลี่ยนทางผิด หรือคถณอาจแก้ไขหน้าผิด \nหากคุณคลิก \"$1\" อีกครั้ง จะสร้างการเปลี่ยนทาง",
-       "missingcommenttext": "กรุณากรอกความเห็นด้านล่าง",
+       "missingcommenttext": "กรุณากรอกความเห็น",
        "missingcommentheader": "<strong>อย่าลืม:</strong> คุณยังไม่ได้ใส่เรื่องสำหรับความเห็นนี้ \nถ้าคุณคลิก \"$1\" อีก จะบันทึกการแก้ไขของคุณโดยไม่ระบุเรื่อง",
        "summary-preview": "ตัวอย่างคำอธิบายการแก้ไข:",
        "subject-preview": "ตัวอย่างชื่อเรื่อง:",
        "readonlywarning": "<strong>คำเตือน: ฐานข้อมูลถูกล็อกเพื่อบำรุงรักษา คุณจึงไม่สามารถบันทึกการแก้ไขของคุณได้ในขณะนี้</strong>\nคุณอาจต้องการคัดลอกและวางข้อความของคุณในไฟล์ข้อความ และบันทึกไว้ภายหลัง\n\nผู้ดูแลระบบที่ล็อกฐานข้อมูลให้คำอธิบายดังนี้: $1",
        "protectedpagewarning": "<strong>คำเตือน: หน้านี้ถูกล็อก เพื่อให้เฉพาะผู้ใช้ที่มีสิทธิผู้ดูแลระบบแก้ไขได้เท่านั้น</strong>\nรายการปูมล่าสุดจัดไว้ด้านล่างเพื่อการอ้างอิง:",
        "semiprotectedpagewarning": "<strong>หมายเหตุ:</strong> หน้านี้ถูกล็อก เพื่อให้เฉพาะผู้ใช้ลงทะเบียนสามารถแก้ไขเท่านั้น\nรายการปูมล่าสุดได้จัดไว้ด้านล่างนี้เพื่อการอ้างอิง",
-       "cascadeprotectedwarning": "<strong>คำเตือน:</strong> หน้านี้ถูกล็อก และแก้ไขได้เฉพาะผู้ใช้ที่มีสิทธิผู้ดูแลระบบ เนื่องจากหน้านี้รวมอยู่ใน{{PLURAL:$1|หน้า}}ที่ถูกล็อกแบบต่อเรียงต่อไปนี้:",
+       "cascadeprotectedwarning": "<strong>คำเตือน:</strong> หน้านี้ถูกล็อก และแก้ไขได้เฉพาะผู้ใช้ที่มี[[Special:ListGroupRights|สิทธิบางประการ]]ที่สามารถแก้ไขได้ เนื่องจากหน้านี้รวมอยู่ใน{{PLURAL:$1|หน้า}}ที่ถูกล็อกแบบต่อเรียงต่อไปนี้:",
        "titleprotectedwarning": "<strong>คำเตือน: หน้านี้ได้รับการป้องกัน สร้างได้เฉพาะผู้ใช้ที่มี[[Special:ListGroupRights|สิทธิจำเพาะ]]เท่านั้น</strong>\nรายการปูมล่าสุดถูกแสดงไว้ด้านล่างเพื่อการอ้างอิง",
        "templatesused": "{{PLURAL:$1|แม่แบบ}}ที่ใช้ในหน้านี้:",
        "templatesusedpreview": "{{PLURAL:$1|แม่แบบ}}ที่ใช้ในตัวอย่างนี้:",
        "permissionserrorstext": "คุณไม่มีสิทธิทำเช่นนั้น เนื่องจาก{{PLURAL:$1|เหตุผล|เหตุผล}}ต่อไปนี้:",
        "permissionserrorstext-withaction": "คุณไม่มีสิทธิ$2 ด้วย{{PLURAL:$1|เหตุ|เหตุ}}ต่อไปนี้:",
        "recreate-moveddeleted-warn": "<strong>คำเตือน: คุณกำลังสร้างหน้าซึ่งได้ถูกลบไปก่อนหน้านี้แล้วอีกครั้ง</strong>\n\nคุณควรพิจารณาว่าการแก้ไขหน้านี้ต่อไปเหมาะสมหรือไม่\nปูมการลบและเปลี่ยนชื่อหน้านี้จัดไว้ด้านล่างเพื่อความสะดวก:",
-       "moveddeleted-notice": "หà¸\99à¹\89าà¸\99ีà¹\89à¸\96ูà¸\81ลà¸\9aà¹\81ลà¹\89ว\nà¸\9bูมà¸\81ารลà¸\9aà¹\81ละà¹\80à¸\9bลีà¹\88ยà¸\99à¸\8aืà¹\88อà¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89à¹\81สà¸\94à¸\87à¹\84วà¹\89à¸\94à¹\89าà¸\99ลà¹\88าà¸\87à¹\80à¸\9eืà¹\88ออ้างอิง",
-       "moveddeleted-notice-recent": "ขออภัย หน้านี้เพิ่งถูกลบ (ใน 24 ชั่วโมงล่าสุด)\nปูมการลบและย้ายสำหรับหน้านี้อยู่ด้านล่างเพื่อการอ้างอิง",
+       "moveddeleted-notice": "ลà¸\9aหà¸\99à¹\89าà¸\99ีà¹\89à¹\81ลà¹\89ว\nà¹\81สà¸\94à¸\87à¸\9bูมà¸\81ารลà¸\9a à¸\81ารà¸\9bà¹\89อà¸\87à¸\81ัà¸\99 à¹\81ละà¸\81ารยà¹\89ายสำหรัà¸\9aหà¸\99à¹\89าà¸\99ีà¹\89à¹\84วà¹\89à¸\94à¹\89าà¸\99ลà¹\88าà¸\87à¹\80à¸\9eืà¹\88อà¸\81ารอ้างอิง",
+       "moveddeleted-notice-recent": "ขออภัย หน้านี้เพิ่งถูกลบ (ใน 24 ชั่วโมงล่าสุด)\nปูมการลบ การล็อกและย้ายสำหรับหน้านี้อยู่ด้านล่างเพื่อการอ้างอิง",
        "log-fulllog": "ดูปูมแบบเต็ม",
        "edit-hook-aborted": "การแก้ไขถูกฮุกยกเลิก\nไม่ได้ให้คำอธิบาย",
        "edit-gone-missing": "ไม่สามารถปรับหน้าดังกล่าวได้\nดูเหมือนถูกลบแล้ว",
        "post-expand-template-argument-category": "หน้าที่มีอาร์กิวเมนต์แม่แบบถูกสละ",
        "parser-template-loop-warning": "ตรวจพบวงวนแม่แบบ: [[$1]]",
        "template-loop-category": "หน้าที่มีแม่แบบวน",
+       "template-loop-category-desc": "หน้านี้มีวงวนแม่แบบ คือ แม่แบบที่เรียกตัวเองซ้ำ",
+       "template-loop-warning": "<strong>Warning:</strong> หน้านี้เรียก [[:$1]] ซึ่งทำให้เกิดวงวนแม่แบบ (การเรียกซ้ำแบบไม่สิ้นสุด)",
        "parser-template-recursion-depth-warning": "เกินขีดจำกัดความลึกการเรียกแม่แบบซ้ำ ($1)",
        "language-converter-depth-warning": "เกินขีดจำกัดความลึกตัวแปลงผันภาษา ($1)",
        "node-count-exceeded-category": "หน้าที่จำนวนปมเกิน",
        "rev-deleted-user": "(ชื่อผู้ใช้ถูกลบออก)",
        "rev-deleted-event": "(รายละเอียดปูมถูกลบ)",
        "rev-deleted-user-contribs": "[นำชื่อผู้ใช้หรือเลขที่อยู่ไอพีออกแล้ว - การแก้ไขถูกซ่อนจากรายการแก้ไข]",
-       "rev-deleted-text-permission": "รุ่นหน้านี้ <strong>ถูกลบ</strong>.\nพบรายละเอียดได้ใน[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ปูมการลบ]",
+       "rev-deleted-text-permission": "รุ่นหน้านี้ <strong>ถูกลบ</strong>\nพบรายละเอียดได้ใน[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ปูมการลบ]",
        "rev-suppressed-text-permission": "รุ่นหน้านี้ถูก<strong>ยับยั้ง</strong> \nพบรายละเอียดได้ใน[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} ปูมการยับยั้ง]",
        "rev-deleted-text-unhide": "รุ่นหน้านี้<strong>ถูกลบ</strong>\nพบรายละเอียดได้ใน[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ปูมการลบ]\nคุณยังสามารถ[$1 ดูรุ่นนี้]ได้ถ้าคุณต้องการดำเนินต่อ",
        "rev-suppressed-text-unhide": "รุ่นหน้านี้<strong>ถูกยับยั้ง</strong>\nพบรายละเอียดพบใน[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} ปูมการยับยั้ง]\nคุณยังสามารถ[$1 ดูรุ่นนี้]ได้ถ้าคุณต้องการดำเนินต่อ",
        "diff-multi-sameuser": "(ไม่แสดง $1 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน)",
        "diff-multi-otherusers": "(ไม่แสดง $1 รุ่นระหว่างกลางโดยผู้ใช้ $2 คน)",
        "diff-multi-manyusers": "(ไม่แสดง $1 รุ่นระหว่างกลางโดยผู้ใช้กว่า $2 คน)",
+       "diff-paragraph-moved-tonew": "ย้ายย่อหน้าแล้ว คลิกเพื่อไปตำแหน่งใหม่",
+       "diff-paragraph-moved-toold": "ย้ายย่อหน้าแล้ว คลิกเพื่อไปตำแหน่งเดิม",
        "difference-missing-revision": "ไม่พบ{{PLURAL:$2|รุ่น| $2 รุ่น}}ของผลต่างนี้ ($1)\n\nโดยปกติเกิดจากการเข้าลิงก์ผลต่างของหน้าที่ถูกลบแล้ว \nดูรายละเอียดได้ที่[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ปูมการลบ]",
        "searchresults": "ผลการค้นหา",
        "searchresults-title": "ผลการค้นหาสำหรับ \"$1\"",
        "search-interwiki-caption": "ผลการค้นหาจากโครงการพี่น้อง",
        "search-interwiki-default": "ผลลัพธ์จาก $1:",
        "search-interwiki-more": "(เพิ่มเติม)",
-       "search-interwiki-more-results": "à¸\94ูà¸\9cลà¸\81ารà¸\84à¹\89à¸\99หาà¹\80à¸\9eิà¹\88ม",
+       "search-interwiki-more-results": "ผลการค้นหาเพิ่ม",
        "search-relatedarticle": "สัมพันธ์",
        "searchrelated": "สัมพันธ์",
        "searchall": "ทั้งหมด",
        "datedefault": "ไม่ตั้งค่า",
        "prefs-labs": "คุณสมบัติทดลอง",
        "prefs-user-pages": "หน้าผู้ใช้",
-       "prefs-personal": "à¸\82à¹\89อมูลผู้ใช้",
+       "prefs-personal": "à¹\82à¸\9eรà¹\84à¸\9fลà¹\8cผู้ใช้",
        "prefs-rc": "ปรับปรุงล่าสุด",
        "prefs-watchlist": "รายการเฝ้าดู",
        "prefs-editwatchlist": "แก้ไขรายการเฝ้าดู",
-       "prefs-editwatchlist-label": "à¹\81à¸\81à¹\89à¹\84à¸\82รายà¸\81ารในรายการเฝ้าดูของคุณ:",
+       "prefs-editwatchlist-label": "à¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\88วยในรายการเฝ้าดูของคุณ:",
        "prefs-editwatchlist-edit": "ดูและลบชื่อเรื่องในรายการเฝ้าดูของคุณ",
        "prefs-editwatchlist-raw": "แก้ไขรายการเฝ้าดูดิบ",
        "prefs-editwatchlist-clear": "ลบล้างรายการเฝ้าดูของคุณ",
        "prefs-watchlist-days": "จำนวนวันที่แสดงในรายการเฝ้าดู:",
        "prefs-watchlist-days-max": "มากสุด $1 วัน",
-       "prefs-watchlist-edits": "à¸\88ำà¸\99วà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82มาà¸\81สุà¸\94à¸\97ีà¹\88à¹\81สà¸\94à¸\87à¹\83à¸\99รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ูà¸\82ยาย:",
+       "prefs-watchlist-edits": "à¸\88ำà¸\99วà¸\99à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87มาà¸\81สุà¸\94à¸\97ีà¹\88à¹\81สà¸\94à¸\87à¹\83à¸\99รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ู:",
        "prefs-watchlist-edits-max": "จำนวนสูงสุด: 1000",
        "prefs-watchlist-token": "โทเค็นรายการเฝ้าดู:",
        "prefs-misc": "เบ็ดเตล็ด",
        "recentchangesdays-max": "มากสุด $1 วัน",
        "recentchangescount": "จำนวนการแก้ไขที่แสดงโดยปริยาย:",
        "prefs-help-recentchangescount": "นี่รวมถึงการปรับปรุงล่าสุด ประวิติหน้า และปูม",
-       "prefs-help-watchlist-token2": "à¸\99ีà¹\88à¸\84ือà¹\81à¸\9bà¹\89à¸\99ลัà¸\9aสำหรัà¸\9aà¹\80à¸\82à¹\89าà¸\81ารà¸\9bà¹\89อà¸\99à¹\80วà¹\87à¸\9aรายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ูà¸\82อà¸\87à¸\84ุà¸\93\nà¹\83à¸\84รà¸\81à¹\87à¸\95ามà¸\97ีà¹\88à¸\97ราà¸\9aà¸\88ะสามารà¸\96อà¹\88าà¸\99รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ูà¸\82อà¸\87à¸\84ุà¸\93à¹\84à¸\94à¹\89 à¸\89ะà¸\99ัà¹\89à¸\99อยà¹\88าà¸\9aอà¸\81à¸\9cูà¹\89อืà¹\88à¸\99\n[[Special:ResetTokens|à¸\84ลิà¸\81à¸\97ีà¹\88à¸\99ีà¹\88หาà¸\81à¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81ารà¸\95ัà¹\89à¸\87à¹\83หมà¹\88]]",
+       "prefs-help-watchlist-token2": "à¸\99ีà¹\88à¸\84ือà¹\81à¸\9bà¹\89à¸\99ลัà¸\9aสำหรัà¸\9aà¹\80à¸\82à¹\89าà¸\81ารà¸\9bà¹\89อà¸\99à¹\80วà¹\87à¸\9aรายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ูà¸\82อà¸\87à¸\84ุà¸\93\nà¸\9cูà¹\89à¹\83à¸\94à¸\97ีà¹\88à¸\97ราà¸\9aà¸\88ะสามารà¸\96อà¹\88าà¸\99รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ูà¸\82อà¸\87à¸\84ุà¸\93à¹\84à¸\94à¹\89 à¸\89ะà¸\99ัà¹\89à¸\99อยà¹\88าà¸\9aอà¸\81à¸\9cูà¹\89อืà¹\88à¸\99\nหาà¸\81à¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81าร [[Special:ResetTokens|à¸\84ุà¸\93สามารà¸\96à¸\95ัà¹\89à¸\87à¹\83หมà¹\88à¹\84à¸\94à¹\89]]",
        "savedprefs": "บันทึกการตั้งค่าของคุณแล้ว",
        "savedrights": "บันทึกกลุ่มผู้ใช้ของ {{GENDER:$1|$1}} แล้ว",
        "timezonelegend": "เขตเวลา:",
        "timezoneregion-europe": "ยุโรป",
        "timezoneregion-indian": "มหาสมุทรอินเดีย",
        "timezoneregion-pacific": "มหาสมุทรแปซิฟิก",
-       "allowemail": "เปิดรับอีเมลจากผู้ใช้อื่น",
+       "allowemail": "อนุญาตให้ผู้ใช้อื่นอีเมลหา",
+       "email-blacklist-label": "ห้ามผู้ใช้เหล่านี้มิให้อีเมลหา:",
        "prefs-searchoptions": "ค้นหา",
        "prefs-namespaces": "เนมสเปซ",
        "default": "ค่าปริยาย",
        "prefs-editor": "ตัวแก้ไข",
        "prefs-preview": "การแสดงตัวอย่าง",
        "prefs-advancedrc": "ตัวเลือกขั้นสูง",
+       "prefs-opt-out": "เลือกไม่ปรับปรุง",
        "prefs-advancedrendering": "ตัวเลือกขั้นสูง",
        "prefs-advancedsearchoptions": "ตัวเลือกขั้นสูง",
        "prefs-advancedwatchlist": "ตัวเลือกขั้นสูง",
        "saveusergroups": "บันทึกกลุ่ม{{GENDER:$1|ผู้ใช้}}",
        "userrights-groupsmember": "สมาชิกของ:",
        "userrights-groupsmember-auto": "สมาชิกโดยปริยายของ:",
-       "userrights-groups-help": "คุณสามารถเปลี่ยนแปลงกลุ่มที่ผู้ใช้รายนี้อยู่:\n* กล่องที่มีเครื่องหมายถูก หมายความว่า ผู้ใช้อยู่ในกลุ่มนั้น\n* กล่องที่ไม่มีเครื่องหมายถูก หมายความว่า ผู้ใช้ไม่ได้อยู่ในกลุ่มนั้น\n* เครื่องหมาย * ชี้ว่าคุณไม่สามารถนำกลุ่มนั้นออกได้เมื่อคุณเพิ่มกลุ่มนั้นไปแล้ว หรือกลับกัน",
+       "userrights-groups-help": "คุณสามารถเปลี่ยนแปลงกลุ่มที่ผู้ใช้รายนี้อยู่:\n* กล่องที่มีเครื่องหมายถูก หมายความว่า ผู้ใช้อยู่ในกลุ่มนั้น\n* กล่องที่ไม่มีเครื่องหมายถูก หมายความว่า ผู้ใช้ไม่ได้อยู่ในกลุ่มนั้น\n* เครื่องหมาย * ชี้ว่าคุณไม่สามารถนำกลุ่มนั้นออกได้เมื่อคุณเพิ่มกลุ่มนั้นไปแล้ว หรือกลับกัน\n* เครื่องหมาย # บี้ว่าคุณสามารถแก้คืนเวลาหมดอายุของสมาชิกภาพกลุ่มนี้เท่านั้น คุณไม่สามารถร่นเวลาหมดอายุได้",
        "userrights-reason": "เหตุผล:",
        "userrights-no-interwiki": "คุณไม่มีสิทธิแก้ไขสิทธิผู้ใช้บนวิกิอื่น",
        "userrights-nodatabase": "ไม่มีฐานข้อมูล $1 หรือฐานข้อมูลอยู่บนเครื่องอื่น",
        "userrights-expiry-current": "หมดอายุ $1",
        "userrights-expiry-none": "ไม่มีวันหมดอายุ",
        "userrights-expiry": "หมดอายุ:",
+       "userrights-expiry-existing": "เวลาหมดอายุที่มีอยู่: $3, $2",
        "userrights-expiry-othertime": "เวลาอื่น:",
        "userrights-expiry-options": "1 วัน:1 day,1 สัปดาห์:1 week,1 เดือน:1 month,3 เดือน:3 months,6 เดือน:6 months,1 ปี:1 year",
+       "userrights-invalid-expiry": "เวลาหมดอายุสำหรับกลุ่ม \"$1\" ไม่สมเหตุสมผล",
+       "userrights-expiry-in-past": "เวลาหมดอายุสำหรับกลุ่ม \"$1\" อยู่ในอดีต",
+       "userrights-cannot-shorten-expiry": "คุณไม่สามารถร่นเวลาหมดอายุของสมาชิกภาพในกลุ่ม \"$1\" ได้ เฉพาะผู้ใช้ที่ได้รับอนุญาตที่สามารถเพิ่มและลบกลุ่มนี้สามารถรุ่นเวลาหมดอายุได้",
        "userrights-conflict": "พบการเปลี่ยนแปลงสิทธิผู้ใช้ขัดกัน! โปรดทบทวนและยืนยันการเปลี่ยนแปลงของคุณ",
        "group": "กลุ่ม:",
        "group-user": "ผู้ใช้",
        "right-siteadmin": "ล็อกและปลดล็อกฐานข้อมูล",
        "right-override-export-depth": "ส่งออกหน้า รวมหน้าที่เชื่อมโยงกับหน้านี้สูงสุด 5 ลำดับชั้น",
        "right-sendemail": "ส่งอีเมลหาผู้ใช้อื่น",
-       "right-managechangetags": "สร้างและเปิด/ปิดใช้งาน[[Special:Tags|ป้ายชื่อ]]",
-       "right-deletechangetags": "ลบ[[Special:Tags|ป้ายชื่อ]]ออกจากฐานข้อมูล",
+       "right-managechangetags": "สร้างและเปิด/ปิดใช้งาน[[Special:Tags|ป้ายระบุ]]",
+       "right-applychangetags": "ใช้[[Special:Tags|ป้ายระบุ]]ร่วมกับการเปลี่ยนแปลงของผู้ใช้",
+       "right-deletechangetags": "ลบ[[Special:Tags|ป้ายระบุ]]ออกจากฐานข้อมูล",
        "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": "การแก้ไขนี้สร้างหน้าใหม่",
        "recentchanges-label-minor": "เป็นการแก้ไขเล็กน้อย",
-       "recentchanges-label-bot": "à¸\9aอà¸\95à¸\81ระทำการแก้ไขนี้",
+       "recentchanges-label-bot": "à¸\9aอà¸\95à¹\80à¸\9bà¹\87à¸\99à¸\9cูà¹\89ทำการแก้ไขนี้",
        "recentchanges-label-unpatrolled": "การแก้ไขนี้ยังไม่ได้ตรวจสอบ",
        "recentchanges-label-plusminus": "ขนาดของหน้าเปลี่ยนไปจำนวนไบต์เท่านี้",
        "recentchanges-legend-heading": "<strong>คำอธิบายสัญลักษณ์:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ดูเพิ่มที่ [[Special:NewPages|รายชื่อหน้าใหม่]])",
        "recentchanges-submit": "แสดง",
+       "rcfilters-tag-remove": "ลบ '$1'",
+       "rcfilters-legend-heading": "<strong>รายการอักษรย่อ:</strong>",
+       "rcfilters-other-review-tools": "เครื่องมือทบทวนอื่น",
+       "rcfilters-group-results-by-page": "จัดกลุ่มผลลัพธ์แบ่งตามหน้า",
        "rcfilters-activefilters": "ตัวกรองที่ทำงาน",
        "rcfilters-advancedfilters": "ตัวกรองขั้นสูง",
+       "rcfilters-limit-title": "ผลลัพธ์ที่แสดง",
+       "rcfilters-limit-and-date-label": "$1 การเปลี่ยนแปลง $2",
+       "rcfilters-date-popup-title": "ระยะเวลาที่ค้นหา",
+       "rcfilters-days-title": "วันล่าสุด",
+       "rcfilters-hours-title": "ชั่วโมงล่าสุด",
        "rcfilters-days-show-days": "$1 วัน",
        "rcfilters-days-show-hours": "$1 ชั่วโมง",
+       "rcfilters-highlighted-filters-list": "เน้น: $1",
        "rcfilters-quickfilters": "ตัวกรองที่บันทึกไว้",
-       "rcfilters-quickfilters-placeholder-title": "ยังไม่มีลิงก์ที่บันทึกไว้",
+       "rcfilters-quickfilters-placeholder-title": "ยังไม่มีตัวกรองที่บันทึกแล้ว",
+       "rcfilters-quickfilters-placeholder-description": "ในการบันทึกการตั้งค่าตัวกรองของคุณแล้วนำกลับมาใช้ภายหลัง คลิกสัญรูปที่คั่นหนังสือในบริเวณตัวกรองที่เปิดใช้งานอยู่ด้านล่าง",
        "rcfilters-savedqueries-defaultlabel": "ตัวกรองที่บันทึกไว้",
        "rcfilters-savedqueries-rename": "เปลี่ยนชื่อ",
        "rcfilters-savedqueries-setdefault": "ตั้งเป็นค่าปริยาย",
        "rcfilters-savedqueries-apply-and-setdefault-label": "สร้างตัวกรองปริยาย",
        "rcfilters-savedqueries-cancel-label": "ยกเลิก",
        "rcfilters-savedqueries-add-new-title": "บันทึกการตั้งค่าตัวกรองปัจจุบัน",
+       "rcfilters-savedqueries-already-saved": "ตัวกรองเหล่านี้บันทุกแล้ว เปลี่ยนการตั้งค่าของคุณเพื่อสร้างตัวกรองที่บันทึกแล้วใหม่",
        "rcfilters-restore-default-filters": "คืนค่าตัวกรองปริยาย",
        "rcfilters-clear-all-filters": "ล้างตัวกรองทั้งหมด",
-       "rcfilters-search-placeholder": "กรองปรับปรุงล่าสุด (เรียกดูหรือเริ่มพิมพ์)",
+       "rcfilters-show-new-changes": "ดูการเปลี่ยนแปลงล่าสุด",
+       "rcfilters-search-placeholder": "กรองการเปลี่ยนแปลง (ใช้รายการเลือกหรือค้นหาชื่อตัวกรอง)",
        "rcfilters-invalid-filter": "ตัวกรองไม่ถูกต้อง",
+       "rcfilters-empty-filter": "ไม่มีตัวกรองเปิดใช้งาน แสดงการแก้ไขทั้งหมด",
        "rcfilters-filterlist-title": "ตัวกรอง",
-       "rcfilters-filterlist-whatsthis": "นี้คืออะไร?",
+       "rcfilters-filterlist-whatsthis": "สิ่งเหล่านี้ทำงานอย่างไร",
+       "rcfilters-filterlist-feedbacklink": "บอกเราว่าคุณคิดอย่างไรเกี่ยวกับอุปกรณ์ตัวกรอง (ใหม่) เหล่านี้",
        "rcfilters-highlightbutton-title": "ผลลัพธ์การเน้นสี",
        "rcfilters-highlightmenu-title": "เลือกสี",
        "rcfilters-highlightmenu-help": "เลือกสีสำหรับเน้นการแสดงคุณสมบัตินี้",
        "rcfilters-filterlist-noresults": "ไม่พบตัวกรองใด ๆ",
        "rcfilters-noresults-conflict": "ไม่พบผลลัพธ์ เนื่องจากเงื่อนไขการค้นขัดแย้งกัน",
-       "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-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-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": "ผู้ใช้ลงทะเบียนที่แก้ไขน้อยกว่า 10 ครั้งหรืออายุน้อยกว่า 4 วัน",
+       "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": "ผู้ใช้ลงทะเบียนที่มีการแก้ไขมากกว่า 500 ครั้งและอายุมากกว่า 30 วัน",
+       "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-minor-description": "การแก้ไขที่ผู้เขียนระบุว่าเล็กน้อย",
        "rcfilters-filter-major-label": "ไม่ใช่การแก้ไขเล็กน้อย",
        "rcfilters-filter-major-description": "การแก้ไขที่ไม่ได้ทำเครื่องหมายเป็นการแก้ไขเล็กน้อย",
        "rcfilters-filtergroup-watchlist": "หน้าในรายการเฝ้าดู",
        "rcfilters-filter-watchlist-watched-label": "ในรายการเฝ้าดู",
        "rcfilters-filter-watchlist-watched-description": "การปรับปรุงของหน้าในรายการเฝ้าดูของคุณ",
+       "rcfilters-filter-watchlist-watchednew-label": "การเปลี่ยนแปลงรายการเฝ้าดูใหม่",
+       "rcfilters-filter-watchlist-watchednew-description": "การเปลี่ยนแปลงหน้าในรายการเฝ้าดูที่คุณยังไม่ได้ชมนับแต่มีการเปลี่ยนแปลง",
        "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-lastrevision-description": "เฉพาะการเปลี่ยนแปลงล่าสุดของหน้า",
+       "rcfilters-filter-previousrevision-label": "ไม่ใช่รุ่นล่าสุด",
+       "rcfilters-filter-previousrevision-description": "การเปลี่ยนแปลงทั้งหมดที่ไม่ใช่ \"รุ่นล่าสุด\" ของหน้า",
+       "rcfilters-filter-excluded": "ไม่รวม",
+       "rcfilters-tag-prefix-namespace-inverted": "<strong>:not</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": "ย้อนกลับการออกแบบอินเตอร์เฟซใหม่ปี 2560 และอุปกรณ์ทั้งหมดที่เพิ่มเข้ามาหลังจากนั้น",
+       "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": "ด้านล่างเป็นการเปลี่ยนแปลงตั้งแต่ <strong>$3, $4</strong> (แสดงมากสุด <strong>$1</strong>)",
        "rclistfromreset": "กลับค่าเดิมของการเลือกวันที่",
        "rclistfrom": "แสดงการเปลี่ยนแปลงใหม่เริ่มตั้งแต่ $2, $3",
        "recentchangeslinked-feed": "ปรับปรุงที่เกี่ยวโยง",
        "recentchangeslinked-toolbox": "การปรับปรุงที่เกี่ยวโยง",
        "recentchangeslinked-title": "การปรับปรุงที่โยงกับ \"$1\"",
-       "recentchangeslinked-summary": "à¸\99ีà¹\88à¸\84ือรายà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87ลà¹\88าสุà¸\94à¸\82อà¸\87หà¸\99à¹\89าà¸\97ีà¹\88à¸\96ูà¸\81ลิà¸\87à¸\81à¹\8cà¸\88าà¸\81หà¸\99à¹\89าà¹\80à¸\89à¸\9eาะ (หรือà¹\84à¸\9bสมาà¸\8aิà¸\81à¸\82อà¸\87หมวà¸\94หมูà¹\88à¹\80à¸\89à¸\9eาะ)\nหน้าใน[[Special:Watchlist|รายการเฝ้าดูของคุณ]]แสดงเป็น<strong>ตัวหนา</strong>",
+       "recentchangeslinked-summary": "à¸\81รอà¸\81à¸\8aืà¹\88อหà¸\99à¹\89าà¹\80à¸\9eืà¹\88อà¸\94ูà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¹\83à¸\99หà¸\99à¹\89าà¸\97ีà¹\88ลิà¸\87à¸\81à¹\8cà¹\84à¸\9bหรือà¸\88าà¸\81หà¸\99à¹\89าà¸\99ัà¹\89à¸\99 (à¹\83สà¹\88หมวà¸\94หมูà¹\88:à¸\8aืà¹\88อหมวà¸\94หมูà¹\88 à¹\80à¸\9eืà¹\88อà¸\94ูสมาà¸\8aิà¸\81à¸\82อà¸\87หมวà¸\94หมูà¹\88)  à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\82อà¸\87หน้าใน[[Special:Watchlist|รายการเฝ้าดูของคุณ]]แสดงเป็น<strong>ตัวหนา</strong>",
        "recentchangeslinked-page": "ชื่อหน้า:",
        "recentchangeslinked-to": "แสดงการเปลี่ยนแปลงไปหน้าซึ่งโยงไปหน้าที่ระบุแทน",
        "recentchanges-page-added-to-category": "[[:$1]] ถูกเพิ่มเข้าหมวดหมู่",
        "uploadbtn": "อัปโหลดไฟล์",
        "reuploaddesc": "ยกเลิกการอัปโหลดและกลับไปยังแบบอัปโหลด",
        "upload-tryagain": "ส่งคำอธิบายไฟล์ที่ดัดแปรแล้ว",
+       "upload-tryagain-nostash": "ส่งไฟล์ที่อัปโหลดใหม่และคำอธิบายที่ดัดแปรแล้ว",
        "uploadnologin": "ไม่ได้ล็อกอิน",
        "uploadnologintext": "โปรด$1เพื่ออัปโหลดไฟล์",
        "upload_directory_missing": "สารบบอัปโหลด ($1) หาย และเว็บเซิร์ฟเวอร์ไม่สามารถสร้างได้",
        "file-thumbnail-no": "ชื่อไฟล์ขึ้นต้นด้วย <strong>$1</strong>\nภาพนี้ดูเหมือนว่าจะเป็นภาพที่ถูกลดขนาด ''(thumbnail)''\nถ้าคุณมีภาพนี้ในความละเอียดเต็ม ให้อัปโหลดภาพนี้ มิฉะนั้นแล้วโปรดเปลี่ยนชื่อไฟล์",
        "fileexists-forbidden": "มีไฟล์ชื่อนี้แล้ว และไม่สามารถเขียนทับได้\nหากคุณยังต้องการอัปโหลดไฟล์ของคุณ กรุณาย้อนกลับและใช้ชื่อใหม่ \n[[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้วในระบบเก็บไฟล์ในส่วนกลาง\nถ้าคุณยังคงต้องการอัปโหลดไฟล์ของคุณ กรุณาย้อนกลับไปตั้งชื่อใหม่\n[[File:$1|thumb|center|$1]]",
+       "fileexists-no-change": "ไฟล์ที่อัปโหลดเป็นคู่พอดีของ <strong>[[:$1]]</strong> รุ่นปัจจุบัน",
+       "fileexists-duplicate-version": "ไฟล์ที่อัปโหลดเป็นคู่พอดีของ <strong>[[:$1]]</strong> รุ่นก่อน",
        "file-exists-duplicate": "ไฟล์นี้ซ้ำกับ{{PLURAL:$1|ไฟล์|ไฟล์}}ต่อไปนี้:",
        "file-deleted-duplicate": "ไฟล์ที่เหมือนไฟล์นี้ ([[:$1]]) เคยถูกลบไปก่อนหน้านี้แล้ว\nคุณควรตรวจสอบว่าประวัติการลบของไฟล์ก่อนดำเนินการอัปโหลดใหม่",
        "file-deleted-duplicate-notitle": "ไฟล์ที่เหมือนกับไฟล์นี้เคยถูกลบมาก่อน และชื่อดังกล่าวถูกห้ามใช้ คุณควรสอบถามผู้ที่สามารถดูข้อมูลไฟล์ที่ถูกระงับเพื่อทบทวนสถานการณ์ก่อนดำเนินการอัปโหลดไฟล์อีกครั้ง",
        "uploadwarning": "คำเตือนการอัปโหลด",
        "uploadwarning-text": "กรุณาแก้ไขคำอธิบายไฟล์ด้านล่างนี้ แล้วลองใหม่อีกครั้ง",
+       "uploadwarning-text-nostash": "กรุณาอัปโหลดไฟล์ใหม่ ดัดแปรคำอธิบายด้านล่างแล้วลองอีกครั้ง",
        "savefile": "บันทึกไฟล์",
        "uploaddisabled": "ปิดใช้งานการอัปโหลด",
        "copyuploaddisabled": "ปิดใช้งานการอัปโหลดโดยยูอาร์แอล",
        "listfiles_size": "ขนาด",
        "listfiles_description": "คำอธิบาย",
        "listfiles_count": "รุ่น",
-       "listfiles-show-all": "รวมภาà¸\9eรุ่นเก่า",
+       "listfiles-show-all": "รวมà¹\84à¸\9fลà¹\8cรุ่นเก่า",
        "listfiles-latestversion": "รุ่นปัจจุบัน",
        "listfiles-latestversion-yes": "ใช่",
        "listfiles-latestversion-no": "ไม่",
        "filerevert-submit": "ย้อน",
        "filerevert-success": "<strong>[[Media:$1|$1]]</strong> ถูกย้อนไปเป็น [รุ่น $4 เมื่อ $2, $3]",
        "filerevert-badversion": "ไม่มีรุ่นท้องถิ่นก่อนหน้าของไฟล์นี้ซึ่งมีตราเวลาที่กำหนด",
+       "filerevert-identical": "ไฟล์รุ่นปัจจุบันเหมือนกับรุ่นที่เลือกอยู่แล้ว",
        "filedelete": "ลบ $1",
        "filedelete-legend": "ลบไฟล์",
        "filedelete-intro": "คุณกำลังลบไฟล์ <strong>[[Media:$1|$1]]</strong> พร้อมประวัติทั้งหมด",
        "apisandbox-examples": "ตัวอย่าง",
        "apisandbox-dynamic-parameters": "ตัวแปรเพิ่มเติม",
        "apisandbox-dynamic-parameters-add-label": "เพิ่มตัวแปร:",
-       "apisandbox-dynamic-error-exists": "à¸\8aืà¹\88อà¸\95ัวà¹\81à¸\9bร",
+       "apisandbox-dynamic-error-exists": "มีà¸\95ัวà¹\81à¸\9bรà¹\80สริมà¸\8aืà¹\88อ \"$1\" à¸­à¸¢à¸¹à¹\88à¹\81ลà¹\89ว",
        "apisandbox-deprecated-parameters": "ตัวแปรที่ไม่แนะนำให้ใช้",
        "apisandbox-results": "ผลลัพธ์",
        "apisandbox-sending-request": "กำลังส่งคำขอ API...",
        "watchnologin": "ยังไม่ได้ล็อกอิน",
        "addwatch": "เพิ่มเข้ารายการเฝ้าดู",
        "addedwatchtext": "เพิ่มหน้า \"[[:$1]]\" และหน้าอภิปรายเข้า[[Special:Watchlist|รายการเฝ้าดู]]ของคุณแล้ว",
+       "addedwatchtext-talk": "เพิ่ม \"[[:$1]]\" และหน้าที่สัมพันธ์เข้า[[Special:Watchlist|รายการเฝ้าดู]]ของคุณแล้ว",
        "addedwatchtext-short": "เพิ่มหน้า \"$1\" เข้ารายการเฝ้าดูของคุณแล้ว",
        "removewatch": "นำออกจากรายการเฝ้าดู",
        "removedwatchtext": "ลบหน้า \"[[:$1]]\" และหน้าอภิปรายออกจาก[[Special:Watchlist|รายการเฝ้าดูของคุณ]]แล้ว",
+       "removedwatchtext-talk": "ลบ \"[[:$1]]\" และหน้าที่สัมพันธ์เข้า[[Special:Watchlist|รายการเฝ้าดู]]ของคุณแล้ว",
        "removedwatchtext-short": "ลบหน้า \"$1\" ออกจากรายการเฝ้าดูของคุณแล้ว",
        "watch": "เฝ้าดู",
        "watchthispage": "เฝ้าดูหน้านี้",
        "unwatchthispage": "เลิกเฝ้าดูหน้านี้",
        "notanarticle": "ไม่ใช่หน้าเนื้อหา",
        "notvisiblerev": "รุ่นล่าสุดโดยผู้ใช้อีกคนถูกลบแล้ว",
-       "watchlist-details": "มี $1 หน้าในรายการเฝ้าดูของคุณ ไม่นับแยกหน้าอภิปราย",
+       "watchlist-details": "มี $1 หน้าในรายการเฝ้าดูของคุณ (รวมหน้าพูดคุย)",
        "wlheader-enotif": "เปิดใช้งานการแจ้งเตือนผ่านอีเมล",
        "wlheader-showupdated": "หน้าที่มีการเปลี่ยนแปลงตั้งแต่คุณเยี่ยมครั้งสุดท้ายแสดงด้วย<strong>ตัวหนา</strong>",
        "wlnote": "ด้านล่างเป็น{{PLURAL:$1|การเปลี่ยนแปลงหลังสุด| <strong>$1</strong> การเปลี่ยนแปลงหลังสุด}} ใน{{PLURAL:$2|ชั่วโมง| <strong>$2</strong> ชั่วโมง}}ที่หลังสุด จนถึง $3, $4",
        "enotif_body_intro_moved": "$2 ย้ายหน้า $1 บน {{SITENAME}} เมื่อ $PAGEEDITDATE ดูรุ่นปัจจุบันที่ $3",
        "enotif_body_intro_restored": "$2 กู้คืนหน้า $1 บน {{SITENAME}} เมื่อ $PAGEEDITDATE ดูรุ่นปัจจุบันที่ $3",
        "enotif_body_intro_changed": "$2 เปลี่ยนแปลงหน้า $1 บน {{SITENAME}} เมื่อ $PAGEEDITDATE ดูรุ่นปัจจุบันที่ $3",
-       "enotif_lastvisited": "à¸\94ู $1 à¸ªà¸³à¸«à¸£à¸±à¸\9aà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\97ัà¹\89à¸\87หมà¸\94à¸\95ัà¹\89à¸\87à¹\81à¸\95à¹\88à¸\84ุà¸\93à¹\80ยีà¹\88ยมà¸\8aมà¸\84รัà¹\89à¸\87สุà¸\94à¸\97à¹\89าย",
+       "enotif_lastvisited": "ดู $1 สำหรับการเปลี่ยนแปลงทั้งหมดตั้งแต่คุณชมครั้งสุดท้าย",
        "enotif_lastdiff": "เพื่อดูการเปลี่ยนแปลงนี้ ให้ดู $1",
        "enotif_anon_editor": "ผู้ใช้นิรนาม $1",
        "enotif_body": "เรียน $WATCHINGUSERNAME\n\n$PAGEINTRO $NEWPAGE\n\nคำอธิบายอย่างย่อของผู้เขียน: $PAGESUMMARY $PAGEMINOREDIT\n\nติดต่อผู้เขียน:\nเมล: $PAGEEDITOR_EMAIL\nวิกิ: $PAGEEDITOR_WIKI\n\nจะไม่มีประกาศอื่นหากมีกิจกรรมเพิ่มเติม เว้นเสียแต่คุณจะเข้าชมหน้านี้ขณะที่กำลังล็อกอินอยู่ คุณยังสามารถตั้งค่าตัวบ่งชี้ประกาศใหม่สำหรับหน้าที่คุณเฝ้าดูทุกหน้าในรายการเฝ้าดูของคุณ\n\nระบบประกาศ {{SITENAME}} ที่เป็นมิตรของคุณ\n\n--\nในการเปลี่ยนการตั้งค่าประกาศอีเมลของคุณ โปรดดู\n{{canonicalurl:{{#special:Preferences}}}}\n\nในการเปลี่ยนการตั้งค่ารายการเฝ้าดูของคุณ โปรดดู\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nในการลบหน้าจากรายการเฝ้าดูของคุณ โปรดดู\n$UNWATCHURL\n\nผลป้อนกลับและความช่วยเหลือเพิ่มเติม:\n$HELPPAGE",
+       "enotif_minoredit": "นี่เป็นการแก้ไขเล็กน้อย",
        "created": "ถูกสร้าง",
        "changed": "ถูกเปลี่ยนแปลง",
        "deletepage": "ลบหน้า",
        "delete-toobig": "หน้านี้มีประวัติการแก้ไขนาดใหญ่ คือ กว่า $1 รุ่น การลบหน้าเช่นนี้ถูกจำกัดเพื่อป้องกันการรบกวน{{SITENAME}}โดยบังเอิญ",
        "delete-warning-toobig": "หน้านี้มีประวัติการแก้ไขขนาดใหญ่ กว่า $1 รุ่น การลบหน้านี้อาจรบกวนการทำงานของฐานข้อมูลของ {{SITENAME}} โปรดดำเนินการด้วยความระมัดระวัง",
        "deleteprotected": "คุณไม่สามารถลบหน้านี้เพราะถูกล็อก",
-       "deleting-backlinks-warning": "'''คำเตือน:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|หน้าอื่น]]เชื่อมโยงมายังหรือดึงข้อมูลจากหน้าที่คุณกำลังจะลบ",
+       "deleting-backlinks-warning": "<strong>คำเตือน:</strong> [[Special:WhatLinksHere/{{FULLPAGENAME}}|หน้าอื่น]]เชื่อมโยงมายังหรือดึงข้อมูลจากหน้าที่คุณกำลังจะลบ",
+       "deleting-subpages-warning": "<strong>คำเตือน:</strong> หน้าที่คุณกำลังจะลบมี[[Special:PrefixIndex/{{FULLPAGENAME}}/|{{PLURAL:$1|หน้าย่อย $ หน้า|51=มากกว่า 50 หน้า}}]]",
        "rollback": "ย้อนการแก้ไขกลับฉุกเฉิน",
        "rollbacklink": "ย้อนกลับฉุกเฉิน",
        "rollbacklinkcount": "ย้อนกลับฉุกเฉิน $1 การแก้ไข",
        "revertpage": "ย้อนการแก้ไขโดย [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) ไปยังรุ่นแก้ไขล่าสุดโดย [[User:$1|$1]]",
        "revertpage-nouser": "ย้อนการแก้ไขโดยผู้ใช้ไม่ระบุชื่อไปยังรุ่นล่าสุดโดย {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "ย้อนการแก้ไขโดย $1; \nเปลี่ยนกลับไปรุ่นล่าสุดโดย $2",
+       "rollback-success-notify": "ย้อนการแก้ไขโดย $1;\nเปลี่ยนกลับไปรุ่นล่าสุดโดย $2 [$3 แสดงการเปลี่ยนแปลง]",
        "sessionfailure-title": "ช่วงเวลาสื่อสารล้มเหลว",
        "sessionfailure": "ดูเหมือนมีปัญหากับช่วงเวลาสื่อสารล็อกอินของคุณ\nการกระทำนี้ถูกยกเลิกเป็นการป้องกันการลักลอบช่วงเวลาสื่อสารไว้ก่อน \nกลับไปหน้าที่แล้ว โหลดหน้าใหม่ แล้วลองอีกครั้ง",
        "changecontentmodel-title-label": "ชื่อหน้า:",
        "modifiedarticleprotection": "เปลี่ยนระดับการล็อกของ \"[[$1]]\"",
        "unprotectedarticle": "ยกเลิกการล็อกจาก \"[[$1]]\"",
        "movedarticleprotection": "ย้ายการตั้งค่าการล็อกจาก \"[[$2]]\" ไป \"[[$1]]\"",
+       "protectedarticle-comment": "ล็อก \"[[$1]]\"",
+       "modifiedarticleprotection-comment": "เปลี่ยนระดับการล็อกสำหรับ \"[[$1]]\"",
+       "unprotectedarticle-comment": "ปลดล็อก \"[[$1]]\"",
        "protect-title": "เปลี่ยนระดับการล็อกสำหรับ \"$1\"",
        "protect-title-notallowed": "ดูระดับการล็อกของ \"$1\"",
        "prot_1movedto2": "เปลี่ยนชื่อ [[$1]] เป็น [[$2]]",
        "undeleteviewlink": "ดู",
        "undeleteinvert": "กลับการเลือก",
        "undeletecomment": "เหตุผล:",
-       "cannotundelete": "การกู้คืนล้มเหลว:\n$1",
+       "cannotundelete": "การกู้คืนล้มเหลวบางส่วนหรือทั้งหมด:\n$1",
        "undeletedpage": "<strong>กู้คืน $1 แล้ว</strong>\n\nดู[[Special:Log/delete|ปูมการลบ]] สำหรับบันทึกรายชื่อการลบและการกู้คืนล่าสุด",
        "undelete-header": "ดู [[Special:Log/delete|ปูมการลบ]] สำหรับหน้าที่ถูกลบล่าสุด",
        "undelete-search-title": "ค้นหาหน้าที่ถูกลบ",
        "undelete-search-box": "ค้นหาหน้าที่ถูกลบ",
        "undelete-search-prefix": "แสดงหน้าที่ขึ้นต้นด้วย:",
+       "undelete-search-full": "แสดงชื่อหน้าที่มี:",
        "undelete-search-submit": "ค้นหา",
        "undelete-no-results": "ไม่พบหน้าตรงกันในหน่วยเก็บถาวรการลบ",
        "undelete-filename-mismatch": "ไม่สามารถกู้คืนรุ่นไฟล์ที่มีตราเวลา $1: ชื่อไฟล์ไม่ตรง",
        "sp-contributions-username": "เลขที่อยู่ไอพีหรือชื่อผู้ใช้:",
        "sp-contributions-toponly": "แสดงเฉพาะการแก้ไขรุ่นล่าสุด",
        "sp-contributions-newonly": "แสดงเฉพาะการแก้ไขที่เป็นการสร้างหน้า",
+       "sp-contributions-hideminor": "ซ่อนการแก้ไขเล็กน้อย",
        "sp-contributions-submit": "ค้นหา",
        "whatlinkshere": "หน้าที่ลิงก์มา",
        "whatlinkshere-title": "หน้าที่ลิงก์มา \"$1\"",
        "ipb-unblock": "ปลดบล็อกผู้ใช้หรือเลขที่อยู่ไอพี",
        "ipb-blocklist": "ดูการบล็อกที่มีอยู่",
        "ipb-blocklist-contribs": "เรื่องที่เขียนโดย $1",
+       "ipb-blocklist-duration-left": "เหลือเวลา $1",
        "unblockip": "ปลดบล็อกผู้ใช้",
        "unblockiptext": "ใช้แบบด้านล่างเพื่อคืนการเข้าถึงการเขียนแก่เลขที่อยู่ไอพี หรือชื่อผู้ใช้ที่เคยถูกบล็อก",
        "ipusubmit": "ยกเลิกการบล็อกนี้",
        "unblocked-id": "เลิกบล็อก $1 แล้ว",
        "unblocked-ip": "ปลดบล็อก [[Special:Contributions/$1|$1]] แล้ว",
        "blocklist": "ผู้ใช้ที่ถูกบล็อก",
+       "autoblocklist": "บล็อกอัตโนมัติ",
+       "autoblocklist-submit": "ค้นหา",
        "ipblocklist": "ผู้ใช้ที่ถูกบล็อก",
        "ipblocklist-legend": "ค้นหาผู้ใช้ที่ถูกบล็อก",
        "blocklist-userblocks": "ซ่อนการบล็อกบัญชี",
        "movelogpagetext": "ด้านล่างเป็นรายการการเปลี่ยนชื่อทั้งหมด",
        "movesubpage": "{{PLURAL:$1|หน้าย่อย|หน้าย่อย}}",
        "movesubpagetext": "หน้านี้มีหน้าย่อย $1 หน้า ดังด้านล่าง",
+       "movesubpagetalktext": "หน้าพูดคุยที่สัมพันธ์มี $1 หน้าย่อย ดังแสดงด้านล่าง",
        "movenosubpage": "หน้านี้ไม่มีหน้าย่อย",
        "movereason": "เหตุผล:",
        "revertmove": "ย้อน",
        "delete_and_move_text": "มีหน้าปลายทาง \"[[:$1]]\" แล้ว \nคุณต้องการลบหน้าดังกล่าวเพื่อสร้างทางสำหรับการย้ายหรือไม่",
        "delete_and_move_confirm": "ใช่ ลบหน้านั้น",
        "delete_and_move_reason": "ถูกลบเพื่อสร้างหนทางสำหรับการย้ายจาก \"[[$1]]\"",
-       "selfmove": "à¸\8aืà¹\88อหà¸\99à¹\89าà¸\95à¹\89à¸\99à¸\97าà¸\87à¹\81ละà¸\9bลายà¸\97าà¸\87à¹\80หมือà¸\99à¸\81ัà¸\99\nà¹\84มà¹\88สามารà¸\96à¹\80à¸\9bลีà¹\88ยà¸\99à¸\8aืà¹\88อมาà¹\83à¸\8aà¹\89ชื่อเดิมได้",
+       "selfmove": "à¸\8aืà¹\88อà¹\80รืà¹\88อà¸\87à¹\80à¸\9bà¹\87à¸\99à¸\8aืà¹\88อà¹\80à¸\94ียวà¸\81ัà¸\99\nà¹\84มà¹\88สามารà¸\96ยà¹\89ายà¸\97ัà¸\9aชื่อเดิมได้",
        "immobile-source-namespace": "ไม่สามารถเปลี่ยนชื่อหน้าในเนมสเปซ \"$1\"",
        "immobile-target-namespace": "ไม่สามารถย้ายหน้าเข้าเนมสเปซ \"$1\" ได้",
        "immobile-target-namespace-iw": "ลิงก์ข้ามโครงการมิใช่เป้าหมายที่ถูกต้องของการเปลี่ยนชื่อหน้า",
        "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": "แสดงความแตกต่างระหว่างสองรุ่นที่เลือกของหน้านี้",
        "anonymous": "{{PLURAL:$1|ผู้ใช้|ผู้ใช้}}นิรนามของ{{SITENAME}}",
        "siteuser": "ผู้ใช้ $1 จาก {{SITENAME}}",
        "anonuser": "ผู้ใช้นิรนามจาก {{SITENAME}} $1",
-       "lastmodifiedatby": "à¸\94ัà¸\94à¹\81à¸\9bรหน้านี้ล่าสุดเมื่อเวลา $2, $1 โดย $3",
+       "lastmodifiedatby": "à¹\81à¸\81à¹\89à¹\84à¸\82หน้านี้ล่าสุดเมื่อเวลา $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": "ไม่มีรายชื่อผู้เป็นเกียรติที่ร่วมสร้างหน้านี้",
        "pageinfo-display-title": "หัวเรื่องของหน้าเมื่อแสดงผล",
        "pageinfo-default-sort": "ค่าปริยายของคำหลักในการเรียงลำดับ",
        "pageinfo-length": "ความยาวหน้า (ไบต์)",
-       "pageinfo-article-id": "หมายà¹\80ลà¸\82à¸\9bระà¸\88ำหน้า",
+       "pageinfo-article-id": "à¹\80ลà¸\82หน้า",
        "pageinfo-language": "ภาษาของเนื้อหาของหน้า",
+       "pageinfo-language-change": "เปลี่ยน",
        "pageinfo-content-model": "รูปแบบเนื้อหาของหน้า",
+       "pageinfo-content-model-change": "เปลี่ยน",
        "pageinfo-robot-policy": "การทำดัชนีโดยบอต",
        "pageinfo-robot-index": "อนุญาต",
        "pageinfo-robot-noindex": "ไม่อนุญาต",
        "patrol-log-header": "หน้านี้คือปูมรุ่นการแก้ไขที่กำหนดว่าตรวจสอบแล้ว",
        "log-show-hide-patrol": "$1 ปูมการตรวจสอบ",
        "log-show-hide-tag": "$1ปูมป้ายระบุ",
+       "confirm-markpatrolled-button": "ตกลง",
+       "confirm-markpatrolled-top": "ทำเครื่องหมายรุ่น $3 ของ $2 ว่าตรวจสอบแล้วหรือไม่",
        "deletedrevision": "รุ่นเก่าที่ถูกลบ $1",
        "filedeleteerror-short": "มีข้อผิดพลาดการลบไฟล์: $1",
        "filedeleteerror-long": "เกิดข้อผิดพลาดขณะลบไฟล์:\n\n$1",
        "newimages-summary": "หน้าพิเศษนี้แสดงไฟล์ที่ถูกอัปโหลดล่าสุด",
        "newimages-legend": "ตัวกรอง",
        "newimages-label": "ชื่อไฟล์ (หรือส่วนหนึ่งของชื่อ):",
+       "newimages-user": "เลขที่อยู่ไอพีหรือชื่อผู้ใช้",
+       "newimages-newbies": "แสดงเฉพาะการมีส่วนร่วมของบัญชีใหม่",
        "newimages-showbots": "แสดงไฟล์ที่บอตอัปโหลด",
        "newimages-hidepatrolled": "ซ่อนการอัปโหลดที่ตรวจสอบแล้ว",
+       "newimages-mediatype": "ชนิดสื่อ:",
        "noimages": "ไม่มีให้ดู",
        "ilsubmit": "สืบค้น",
        "bydate": "ตามวันที่",
        "scarytranscludefailed": "[ไม่สามารถดึงแม่แบบมาได้สำหรับ $1]",
        "scarytranscludetoolong": "[ยูอาร์แอลยาวเกินไป]",
        "deletedwhileediting": "<strong>คำเตือน:</strong>  หน้านี้ถูกลบหลังคุณเริ่มแก้ไข!",
-       "confirmrecreate": "ผู้ใช้ [[User:$1|$1]] ([[User talk:$1|พูดคุย]]) ลบหน้านี้หลังคุณเริ่มแก้ไข ด้วยเหตุผลว่า:\n: <em>$2</em>\nกรุณายืนยันว่า คุณต้องการสร้างหน้านี้ใหม่",
+       "confirmrecreate": "ผู้ใช้ [[User:$1|$1]] ([[User talk:$1|พูดคุย]]) ลบหน้านี้หลังคุณเริ่มแก้ไข ด้วยเหตุผลว่า:\n: <em>$2</em>\nกรุณายืนยันว่า คุณต้องการสร้างหน้านี้ใหม่จริง ๆ",
        "confirmrecreate-noreason": "ผู้ใช้ [[User:$1|$1]] ([[User talk:$1|พูดคุย]]) ลบหน้านี้หลังคุณเริ่มแก้ไข โปรดยืนยันว่าคุณต้องการสร้างหน้านี้ใหม่จริง ๆ",
        "recreate": "สร้างใหม่",
        "confirm-purge-title": "ชะล้างหน้านี้",
        "confirm-watch-top": "เพิ่มหน้านี้เข้าไปยังรายการเฝ้าดูของคุณหรือไม่",
        "confirm-unwatch-button": "ตกลง",
        "confirm-unwatch-top": "ลบหน้านี้ออกจากรายการเฝ้าดูของคุณ",
+       "confirm-rollback-button": "ตกลง",
+       "confirm-rollback-top": "ย้อนการแก้ไขหน้านี้หรือไม่",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← หน้าก่อนหน้า",
        "imgmultipagenext": "หน้าถัดไป →",
        "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 ไบต์",
        "watchlisttools-clear": "ล้างรายการเฝ้าดู",
        "watchlisttools-view": "ดูการเปลี่ยนแปลงที่เกี่ยวข้อง",
        "watchlisttools-edit": "ดูและแก้ไขรายการเฝ้าดู",
-       "watchlisttools-raw": "à¹\81à¸\81à¹\89à¹\84à¸\82รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ูà¸\97ัà¹\89à¸\87หมà¸\94",
+       "watchlisttools-raw": "à¹\81à¸\81à¹\89à¹\84à¸\82รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ูà¸\94ิà¸\9a",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|พูดคุย]])",
+       "timezone-local": "ท้องถิ่น",
        "duplicate-defaultsort": "<strong>คำเตือน:</strong> หลักเรียงลำดับปริยาย \"$2\" ได้ลบล้างหลักเรียงลำดับปริยาย \"$1\" ที่มีอยู่ก่อนหน้า",
        "version": "รุ่น",
        "version-extensions": "ส่วนขยายเพิ่ม (extension) ที่ติดตั้ง",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath เส้นทางบทความ]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath เส้นทางสคริปต์]",
        "redirect": "การเปลี่ยนทางตามชื่อไฟล์ รหัสประจำผู้ใช้ หน้า รุ่นหรือปูม",
-       "redirect-summary": "หน้าพิเศษนี้เปลี่ยนทางไปยังไฟล์ (ระบุเป็นชื่อไฟล์) หน้า (ระบุเป็นรหัสรุ่นหรือรหัสหน้า) หรือหน้าผู้ใช้ (ระบุเป็นรหัสผู้ใช้ตัวเลข) การใช้งาน: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] หรือ [[{{#Special:Redirect}}/user/101]]",
+       "redirect-summary": "หน้าพิเศษนี้เปลี่ยนทางไปยังไฟล์ (ระบุเป็นชื่อไฟล์) หน้า (ระบุเป็นรหัสรุ่นหรือรหัสหน้า) หรือหน้าผู้ใช้ (ระบุเป็นรหัสผู้ใช้ตัวเลข) การใช้งาน: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]] หรือ [[{{#Special:Redirect}}/logid/186]]",
        "redirect-submit": "ไป",
        "redirect-lookup": "ค้นดู:",
        "redirect-value": "ค่า:",
        "redirect-user": "รหัสผู้ใช้",
-       "redirect-page": "รหัสà¸\9bระà¸\88ำหà¸\99à¹\89า",
+       "redirect-page": "รหัสหน้า",
        "redirect-revision": "รุ่นปรับปรุงหน้า",
        "redirect-file": "ชื่อไฟล์",
+       "redirect-logid": "เลขปูม",
        "redirect-not-exists": "ไม่พบค่า",
        "fileduplicatesearch": "ค้นหาไฟล์ซ้ำซ้อน",
        "fileduplicatesearch-summary": "ค้นหาไฟล์ซ้ำกันตามค่าแฮช",
        "fileduplicatesearch-noresults": "ไม่พบไฟล์ที่มีชื่อ \"$1\"",
        "specialpages": "หน้าพิเศษ",
        "specialpages-note-top": "คำอธิบายสัญลักษณ์",
+       "specialpages-note-restricted": "* หน้าพิเศษปกติ\n* <span class=\"mw-specialpagerestricted\">หน้าพิเศษที่ถูกจำกัด</span>",
        "specialpages-group-maintenance": "รายงานการบำรุงรักษา",
        "specialpages-group-other": "หน้าพิเศษอื่น ๆ",
        "specialpages-group-login": "ล็อกอิน / สร้างบัญชี",
        "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)",
-       "tag-filter": "à¸\95ัวà¸\81รอà¸\87[[Special:Tags|à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9a]]:",
+       "tags": "à¸\9bà¹\89ายระà¸\9aุà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\97ีà¹\88สมà¹\80หà¸\95ุสมà¸\9cล",
+       "tag-filter": "à¸\95ัวà¸\81รอà¸\87[[Special:Tags|à¸\9bà¹\89ายระà¸\9aุ]]:",
        "tag-filter-submit": "กรอง",
-       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ป้ายกำกับ}}]]: $2)",
-       "tags-title": "ป้ายกำกับ",
-       "tags-intro": "หน้านี้แสดงรายการและความหมายของป้ายกำกับต่างๆ ที่ซอฟต์แวร์อาจจะใช้ทำเครื่องหมายกำกับการแก้ไข",
+       "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": "ย้อนกลับ",
+       "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-source-extension": "à¸\99ิยามà¹\82à¸\94ยสà¹\88วà¸\99à¸\82ยาย",
+       "tags-source-extension": "à¸\99ิยามà¹\82à¸\94ยà¸\8bอà¸\9fà¸\95à¹\8cà¹\81วรà¹\8c",
        "tags-source-manual": "ใช้ด้วยมือโดยผู้ใช้และบอต",
        "tags-source-none": "เลิกใช้แล้ว",
        "tags-edit": "แก้ไข",
        "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",
        "compare-title-not-exists": "ชื่อเรื่องที่คุณระบุไม่มีอยู่",
        "compare-revision-not-exists": "รุ่นที่คุณระบุไม่มีอยู่",
        "diff-form": "ความแตกต่าง",
+       "diff-form-oldid": "เลขรุ่นปรับปรุงเก่า (เลือกได้)",
+       "diff-form-revid": "เลขรุ่นปรับปรุงของผลต่าง",
+       "diff-form-submit": "แสดงผลต่าง",
+       "permanentlink": "ลิงก์ถาวร",
+       "permanentlink-revid": "เลขรุ่นปรับปรุง",
+       "permanentlink-submit": "ไปรุ่น",
        "dberr-problems": "ขออภัย เว็บไซต์นี้กำลังพบกับข้อผิดพลาดทางเทคนิค",
        "dberr-again": "กรุณารอสักครู่แล้วจึงโหลดใหม่",
        "dberr-info": "(ไม่สามารถเข้าถึงฐานข้อมูล: $1)",
        "htmlform-chosen-placeholder": "เลือกตัวเลือก",
        "htmlform-cloner-create": "เพิ่มอีก",
        "htmlform-cloner-required": "ต้องการอย่างน้อยหนึ่งค่า",
+       "htmlform-date-placeholder": "YYYY-MM-DD",
+       "htmlform-time-placeholder": "HH:MM:SS",
+       "htmlform-datetime-placeholder": "YYYY-MM-DD HH:MM:SS",
        "htmlform-title-badnamespace": "[[:$1]] ไม่อยู่ในเนมสเปซ \"{{ns:$2}}\"",
        "htmlform-title-not-creatable": "\"$1\" มิใช่ชื่อเรื่องหน้าที่สร้างได้",
        "htmlform-title-not-exists": "ไม่มี $1",
        "htmlform-user-not-exists": "ไม่มี <strong>$1</strong>",
        "htmlform-user-not-valid": "<strong>$1</strong> มิใช่ชื่อผู้ใช้ที่สมเหตุสมผล",
        "logentry-delete-delete": "$1 ลบหน้า $3",
-       "logentry-delete-restore": "$1 กู้คืนหน้า $3",
+       "logentry-delete-delete_redir": "$1 ลบหน้าเปลี่ยนทาง $3 โดยการเขียนทับ",
+       "logentry-delete-restore": "$1 กู้คืนหน้า $3 ($4)",
+       "logentry-delete-restore-nocount": "$1 กู้คืนหน้า $3",
+       "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",
        "special-characters-group-ipa": "สัทอักษรสากล",
        "special-characters-group-symbols": "สัญลักษณ์",
        "special-characters-group-greek": "กรีก",
+       "special-characters-group-greekextended": "กรีก (ขยาย)",
        "special-characters-group-cyrillic": "ซีริลลิก",
        "special-characters-group-arabic": "อาหรับ",
+       "special-characters-group-arabicextended": "อารบิก (ขยาย)",
+       "special-characters-group-persian": "เปอร์เซีย",
        "special-characters-group-hebrew": "ฮีบรู",
        "special-characters-group-bangla": "บังคลา",
+       "special-characters-group-tamil": "ทมิฬ",
        "special-characters-group-telugu": "เตลูกู",
        "special-characters-group-sinhala": "สิงหล",
-       "special-characters-group-gujarati": "คุชราต"
+       "special-characters-group-gujarati": "คุชราต",
+       "special-characters-group-devanagari": "เทวนาครี",
+       "special-characters-group-thai": "ไทย",
+       "special-characters-group-lao": "ลาว",
+       "special-characters-group-khmer": "เขมร",
+       "special-characters-group-canadianaboriginal": "แคนาดาพื้นเมืองดั้งเดิม",
+       "special-characters-title-minus": "เครื่องหมายลบ",
+       "mw-widgets-dateinput-no-date": "ไม่เลือกวันที่",
+       "randomrootpage": "สุ่มหน้าราก",
+       "log-action-filter-block": "ประเภทของการบล็อก:",
+       "log-action-filter-contentmodel": "ประเภทของการเปลี่ยนตัวแบบเนื้อหา:",
+       "log-action-filter-delete": "ประเภทของการลบ:",
+       "log-action-filter-import": "ประเภทของการนำเข้า:",
+       "log-action-filter-managetags": "ประเภทของปฏิบัติการจัดการป้ายระบุ:",
+       "log-action-filter-move": "ประเภทของการย้าย:",
+       "log-action-filter-newusers": "ประเภทของการสร้างบัญชี:",
+       "log-action-filter-patrol": "ประเภทของการตรวจสอบหน้า:",
+       "log-action-filter-protect": "ประเภทของการล็อก:",
+       "log-action-filter-rights": "ประเภทของการเปลี่ยนสิทธิ:",
+       "log-action-filter-suppress": "ประเภทของการระงับ:",
+       "log-action-filter-upload": "ประเภทของการอัปโหลด:",
+       "log-action-filter-all": "ทั้งหมด",
+       "log-action-filter-block-block": "บล็อก",
+       "log-action-filter-block-reblock": "การแก้ไขการบล็อก",
+       "log-action-filter-block-unblock": "ปลดบล็อก",
+       "log-action-filter-contentmodel-change": "เปลี่ยนตัวแบบเนื้อหา",
+       "log-action-filter-contentmodel-new": "การสร้างหน้าที่มีตัวแบบเนื้อหามิใช่ค่าโดยปริยาย",
+       "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-managetags-create": "การสร้างป้ายระบุ",
+       "log-action-filter-managetags-delete": "การลบป้ายระบุ",
+       "log-action-filter-managetags-activate": "การเปิดใช้งานป้ายระบุ",
+       "log-action-filter-managetags-deactivate": "การปิดใช้งานระบุ",
+       "log-action-filter-move-move": "การย้ายโดยไม่เขียนทับหน้าเปลี่ยนทาง",
+       "log-action-filter-move-move_redir": "การย้ายโดยเขียนทับหน้าเปลี่ยนทาง",
+       "log-action-filter-newusers-create": "การสร้างโดยผู้ใช้นิรนาม",
+       "log-action-filter-newusers-create2": "การสร้างโดยผู้ใช้ลงทะเบียน",
+       "log-action-filter-newusers-autocreate": "การสร้างอัตโนมัติ",
+       "log-action-filter-newusers-byemail": "การสร้างโดยรหัสผ่านที่ส่งทางอีเมล",
+       "log-action-filter-patrol-patrol": "การตรวจสอบหน้าด้วยมือ",
+       "log-action-filter-patrol-autopatrol": "การตรวจสอบหน้าอัตโนมัติ",
+       "log-action-filter-protect-protect": "การล็อก",
+       "log-action-filter-protect-modify": "การแก้ไขการล็อก",
+       "log-action-filter-protect-unprotect": "ปลดล็อก",
+       "log-action-filter-protect-move_prot": "การล็อกที่ถูกย้าย",
+       "log-action-filter-rights-rights": "การเปลี่ยนด้วยมือ",
+       "log-action-filter-rights-autopromote": "การเปลี่ยนอัตโนมัติ",
+       "log-action-filter-suppress-event": "การระงับปูม",
+       "log-action-filter-upload-upload": "อัปโหลดใหม่",
+       "log-action-filter-upload-overwrite": "อัปโหลดใหม่",
+       "revid": "รุ่น $1",
+       "pageid": "เลขประจำหน้า $1",
+       "gotointerwiki": "กำลังออกจาก {{SITENAME}}",
+       "undelete-cantcreate": "คุณไม่สามารถกู้คืนหน้านี้เพราะไม่มีหน้าชื่อนี้อยู่ และคุณไม่ได้รับอนุญาตให้สร้างหน้านี้",
+       "pagedata-title": "ข้อมูลหน้า"
 }
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 6bd3839..aac0e59 100644 (file)
        "pageinfo-watchers": "Күзәтүчеләр саны",
        "pageinfo-few-watchers": "$1 әзрәк {{PLURAL:$1|күзәтүче}}",
        "pageinfo-redirects-name": "Бу биткә юнәлтүләр саны",
+       "pageinfo-subpages-name": "Бу битнең асбитләре",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|юнәлтү}}; $3 {{PLURAL:$3|гади}})",
        "pageinfo-firstuser": "Битне төзүче",
        "pageinfo-firsttime": "Битне төзү датасы",
        "pageinfo-lastuser": "Соңгы мөхәррирләүче",
        "pageinfo-authors": "Гомуми авторлар саны",
        "pageinfo-recent-edits": "Соңгы вакытта үзгәртүләр ($1 эчендә)",
        "pageinfo-recent-authors": "Кабатланмас авторлар саны",
+       "pageinfo-magic-words": "{{PLURAL:$1|1=Тылсымлы сүз|Тылсымлы сүзләр}} ($1)",
+       "pageinfo-hidden-categories": "{{PLURAL:$1|1=Яшерен төркем|Яшерен төркемнәр}} ($1)",
+       "pageinfo-templates": "{{PLURAL:$1|1=Калып|Калыплар}} ($1)",
        "pageinfo-toolboxlink": "Бит турында мәгълүмат",
        "pageinfo-redirectsto": "Юнәлтү",
        "pageinfo-redirectsto-info": "мәгълүмат",
+       "pageinfo-contentpage": "Эчтәлек бите дип исәпләнә",
        "pageinfo-contentpage-yes": "Әйе",
        "pageinfo-protect-cascading-yes": "Әйе",
        "markaspatrolledtext": "Бу мәкаләне тикшерелгән дип тамгалау",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|бит|битләр|бит}}",
        "file-info": "файл зурлыгы: $1, MIME-тип: $2",
        "file-info-size": "$1 × $2 нокта, файлның зурлыгы: $3, MIME тибы: $4",
+       "file-info-size-pages": "$1 × $2 пиксель, файл күләме: $3, MIME-тибы: $4, $5 {{PLURAL:$5|бит}}",
        "file-nohires": "Югары ачыклык белән юрама юк.",
        "svg-long-desc": "SVG файлы, шартлы $1 × $2 нокта, файлның зурлыгы: $3",
        "show-big-image": "Төп файл",
        "htmlform-time-placeholder": "СС:ММ:СС",
        "htmlform-datetime-placeholder": "ЕЕЕЕ-АА-КК СС:ММ:СС",
        "logentry-delete-delete": "$1 $3 битен {{GENDER:$2|бетерә}}",
+       "logentry-delete-restore": "$1 $3 ($4) битен {{GENDER:$2|торгызды}}",
        "revdelete-content-hid": "эчтәлек яшерелгән",
        "revdelete-summary-hid": "төзәтмәнең тасвирламасы яшерелгән",
        "revdelete-uname-hid": "кулланучының исеме яшерелгән",
        "special-characters-group-lao": "Лаос",
        "special-characters-group-khmer": "Кһмер",
        "special-characters-group-canadianaboriginal": "Канада иҗек язуы",
+       "randomrootpage": "Очраклы төп бит",
        "log-action-filter-all": "Барысы",
        "log-action-filter-block-block": "Тыю",
        "authmanager-email-label": "Электрон почта",
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 979ce43..8eada44 100644 (file)
        "exif-referenceblackwhite": "سیاہ و سفید جوالے کی قدروں کی جوڑی",
        "exif-datetime": "فائل کی تبدیلی کی تاریخ اور وقت",
        "exif-imagedescription": "تصویر کا عنوان",
-       "exif-make": "کیمرہ ساز کمپنی",
+       "exif-make": "کیمرا ساز کمپنی",
        "exif-model": "کیمرے کا ماڈل",
        "exif-software": "مستعمل سافٹ ویئر",
        "exif-artist": "مصنف",
        "autosumm-blank": "تمام مندرجات حذف",
        "autosumm-replace": "\"$1\" سے مواد کی تبدیلی",
        "autoredircomment": "[[$1]] سے رجوع مکرر",
+       "autosumm-removed-redirect": "[[$1]] سے رجوع مکرر ہٹایا",
        "autosumm-new": "«$1» مواد پر مشتمل نیا صفحہ بنایا",
        "autosumm-newblank": "خالی صفحہ بنایا",
        "size-bytes": "$1 بائٹ",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ٹیگ}}]]: $2)",
        "tag-mw-contentmodelchange": "مواد کے ماڈل میں تبدیلی",
        "tag-mw-contentmodelchange-description": "ترامیم جو صفحہ کے [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel مواد کے ماڈل کو تبدیل کرتی ہیں]",
+       "tag-mw-new-redirect": "نیا رجوع مکرر",
+       "tag-mw-removed-redirect": "رجوع مکرر ہٹایا",
+       "tag-mw-blank": "خالیٔ صفحہ",
+       "tag-mw-replace": "مواد کی تبدیلی",
+       "tag-mw-rollback": "استرجع",
        "tags-title": "ٹیگ",
        "tags-intro": "اس صفحہ میں ان تمام ٹیگوں کی فہرست درج ہے، جنہیں سافٹ ویئر کسی ترمیم پر مفہوم کے ساتھ نشان زد کرتا ہے۔",
        "tags-tag": "ٹیگ کا نام",
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 85d11ce..0b8175f 100644 (file)
        "recentchanges-legend-heading": "<strong>Leyenda:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (kitaa gihapon [[Special:NewPages|talaan han mga bag-o nga pakli]])",
        "recentchanges-submit": "Pakit-a",
+       "rcfilters-filter-humans-label": "Tawo (diri bot)",
        "rcnotefrom": "Didi ha ubos amo {{PLURAL:$5|an pagbag-o|an mga pagbabag-o}} tikang<strong>$3, $4</strong> (tubtob <strong>$1</strong> nga ginpakita).",
        "rclistfrom": "Pakit-a an mga ginbag-ohan tikang han $3 $2",
        "rcshowhideminor": "$1 gudti nga mga pagliwat",
index 8fb4a56..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|标签]]",
        "recentchanges-noresult": "在此期间没有符合这些条件的编辑",
        "recentchanges-timeout": "此次搜索已超时。您可以尝试不同的搜索参数。",
        "recentchanges-network": "由于技术错误,没有加载任何结果。请尝试刷新页面。",
+       "recentchanges-notargetpage": "在上方输入页面名以查看与该页面相关的更改。",
        "recentchanges-feed-description": "用这个源跟踪本wiki的最近更改。",
        "recentchanges-label-newpage": "该编辑创建了新页面",
        "recentchanges-label-minor": "该编辑为小编辑",
        "rcfilters-watchlist-showupdated": "自更改发生以来,对您尚未访问的页面做出的更改以<strong>粗体</strong>显示,并带有实心圆形标记。",
        "rcfilters-preference-label": "隐藏改进的最近更改版本",
        "rcfilters-preference-help": "返回到2017年界面重新设计版,并重新添加这以后新增的工具。",
-       "rcfilters-filter-showlinkedfrom-label": "显示链接自该页面的页面上的更改",
-       "rcfilters-filter-showlinkedfrom-option-label": "显示链接某一页面的页面上的更改",
-       "rcfilters-filter-showlinkedto-label": "显示链接到该页面的页面上的更改",
-       "rcfilters-filter-showlinkedto-option-label": "显示链接某一页面的页面上的更改",
-       "rcfilters-target-page-placeholder": "选择页面",
+       "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>$3 $4</strong>之后的更改(最多显示<strong>$1</strong>个)。",
        "rclistfromreset": "重置时间选择",
        "rclistfrom": "显示$3 $2之后的新更改",
        "recentchangeslinked-feed": "相关更改",
        "recentchangeslinked-toolbox": "相关更改",
        "recentchangeslinked-title": "与“$1”有关的更改",
-       "recentchangeslinked-summary": "è¿\99æ\98¯é\93¾æ\8e¥è\87ªæ\8c\87å®\9a页é\9d¢ï¼\88æ\88\96è\87³æ\8c\87å®\9aå\88\86ç±»ç\9a\84æ\88\90å\91\98ï¼\89ç\9a\84页é\9d¢ç\9a\84æ\9c\80è¿\91æ\9b´æ\94¹ç\9a\84å\88\97表ã\80\82[[Special:Watchlist|æ\82¨ç\9a\84ç\9b\91è§\86å\88\97表]]中ç\9a\84页é\9d¢以<strong>粗体</strong>显示。",
+       "recentchangeslinked-summary": "è¾\93å\85¥é¡µé\9d¢å\90\8d称以æ\9f¥ç\9c\8bé\93¾å\85¥ï¼\88æ\88\96é\93¾è\87ªï¼\89ç\9b¸å\85³é¡µé\9d¢ç\9a\84æ\9b´æ\94¹ã\80\82ï¼\88è¦\81æ\9f¥ç\9c\8bå\88\86ç±»ç\9a\84æ\88\90å\91\98ï¼\8c请è¾\93å\85¥Category:å\88\86ç±»å\90\8d称ï¼\89ã\80\82对[[Special:Watchlist|æ\82¨ç\9a\84ç\9b\91è§\86å\88\97表]]ä¸\8a页é\9d¢ç\9a\84æ\9b´æ\94¹以<strong>粗体</strong>显示。",
        "recentchangeslinked-page": "页面名称:",
        "recentchangeslinked-to": "显示链到所给出的页面",
        "recentchanges-page-added-to-category": "[[:$1]]已添加至分类",
        "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 7c527ca..e10dc54 100644 (file)
        "rcfilters-watchlist-edit-watchlist-button": "編輯您的監視頁面列表",
        "rcfilters-watchlist-showupdated": "自更改發生以來,對您尚未訪問的頁面做出的更改以<strong>粗體</strong>顯示,並帶有實心圓形標記。",
        "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>某一頁面的頁面上的更改",
        "rcnotefrom": "以下{{PLURAL:$5|為}}自 <strong>$3 $4</strong> 以來的變更 (最多顯示 <strong>$1</strong> 筆)。",
        "rclistfromreset": "重設日期選擇",
        "rclistfrom": "顯示自 $3 $2 以來的新變更",
        "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 255892b..a3e0ffd 100644 (file)
@@ -662,7 +662,7 @@ abstract class Maintenance {
                global $IP, $wgCommandLineMode, $wgRequestTime;
 
                # Abort if called from a web server
-               if ( isset( $_SERVER ) && isset( $_SERVER['REQUEST_METHOD'] ) ) {
+               if ( PHP_SAPI !== 'cli' ) {
                        $this->fatalError( 'This script must be run from the command line' );
                }
 
index 341a299..00dbd00 100644 (file)
@@ -25,7 +25,6 @@
  */
 
 require_once __DIR__ . '/Maintenance.php';
-require_once __DIR__ . '/../includes/export/DumpFilter.php';
 
 use Wikimedia\Rdbms\LoadBalancer;
 use Wikimedia\Rdbms\IDatabase;
@@ -420,20 +419,3 @@ class BackupDumper extends Maintenance {
                }
        }
 }
-
-class ExportProgressFilter extends DumpFilter {
-       function __construct( &$sink, &$progress ) {
-               parent::__construct( $sink );
-               $this->progress = $progress;
-       }
-
-       function writeClosePage( $string ) {
-               parent::writeClosePage( $string );
-               $this->progress->reportPage();
-       }
-
-       function writeRevision( $rev, $string ) {
-               parent::writeRevision( $rev, $string );
-               $this->progress->revCount();
-       }
-}
index 5c5c88f..41d492d 100644 (file)
@@ -55,8 +55,8 @@ class CleanupBlocks extends Maintenance {
                                'ipblocks',
                                [ 'ipb_user' ],
                                [
-                                       "ipb_user >= $from",
-                                       "ipb_user <= $to",
+                                       "ipb_user >= " . (int)$from,
+                                       "ipb_user <= " . (int)$to,
                                ],
                                __METHOD__,
                                [
@@ -128,8 +128,8 @@ class CleanupBlocks extends Maintenance {
                                [ 'ipb_id', 'user_name' ],
                                [
                                        'ipb_user = user_id',
-                                       "ipb_user >= $from",
-                                       "ipb_user <= $to",
+                                       "ipb_user >= " . (int)$from,
+                                       "ipb_user <= " . (int)$to,
                                        'ipb_address != user_name',
                                ],
                                __METHOD__
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 81c2353..703d97f 100644 (file)
@@ -63,7 +63,7 @@ class MigrateUserGroup extends Maintenance {
                        $dbw->update( 'user_groups',
                                [ 'ug_group' => $newGroup ],
                                [ 'ug_group' => $oldGroup,
-                                       "ug_user BETWEEN $blockStart AND $blockEnd" ],
+                                       "ug_user BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd ],
                                __METHOD__,
                                [ 'IGNORE' ]
                        );
@@ -74,7 +74,7 @@ class MigrateUserGroup extends Maintenance {
                        // user/group is UNIQUE.
                        $dbw->delete( 'user_groups',
                                [ 'ug_group' => $oldGroup,
-                                       "ug_user BETWEEN $blockStart AND $blockEnd" ],
+                                       "ug_user BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd ],
                                __METHOD__
                        );
                        $affected += $dbw->affectedRows();
@@ -86,7 +86,7 @@ class MigrateUserGroup extends Maintenance {
                                // were in the new group and not in the group.
                                $res = $dbw->select( 'user_groups', 'ug_user',
                                        [ 'ug_group' => $newGroup,
-                                               "ug_user BETWEEN $blockStart AND $blockEnd" ],
+                                               "ug_user BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd ],
                                        __METHOD__
                                );
                                if ( $res !== false ) {
index 644fb95..54a68ae 100644 (file)
@@ -202,8 +202,8 @@ class Orphans extends Maintenance {
                        $result2 = $dbw->query( "
                                SELECT MAX(rev_timestamp) as max_timestamp
                                FROM $revision
-                               WHERE rev_page=$row->page_id
-                       );
+                               WHERE rev_page=" . (int)( $row->page_id )
+                       );
                        $row2 = $dbw->fetchObject( $result2 );
                        if ( $row2 ) {
                                if ( $row->rev_timestamp != $row2->max_timestamp ) {
index eb82806..f5f1de6 100644 (file)
@@ -67,7 +67,7 @@ class PopulateBacklinkNamespace extends LoggedUpdateMaintenance {
                $blockEnd = $start + $batchSize - 1;
                while ( $blockEnd <= $end ) {
                        $this->output( "...doing page_id from $blockStart to $blockEnd\n" );
-                       $cond = "page_id BETWEEN $blockStart AND $blockEnd";
+                       $cond = "page_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd;
                        $res = $db->select( 'page', [ 'page_id', 'page_namespace' ], $cond, __METHOD__ );
                        foreach ( $res as $row ) {
                                $db->update( 'pagelinks',
index 4becf6d..2165820 100644 (file)
@@ -87,7 +87,7 @@ TEXT
                        $rows = $dbr->select(
                                'revision',
                                [ 'rev_id', 'rev_timestamp', 'rev_user_text' ],
-                               [ "rev_id BETWEEN $blockStart AND $blockEnd", 'rev_user' => 0 ],
+                               [ "rev_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd, 'rev_user' => 0 ],
                                __METHOD__
                        );
 
index 113cc63..979a28a 100644 (file)
@@ -76,7 +76,7 @@ class PopulateLogSearch extends LoggedUpdateMaintenance {
                $delTypes = [ 'delete', 'suppress' ]; // revisiondelete types
                while ( $blockEnd <= $end ) {
                        $this->output( "...doing log_id from $blockStart to $blockEnd\n" );
-                       $cond = "log_id BETWEEN $blockStart AND $blockEnd";
+                       $cond = "log_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd;
                        $res = $db->select(
                                'logging', [ 'log_id', 'log_type', 'log_action', 'log_params' ], $cond, __FUNCTION__
                        );
index c5c079a..6e8261a 100644 (file)
@@ -64,7 +64,8 @@ class PopulateLogUsertext extends LoggedUpdateMaintenance {
                $blockEnd = $start + $batchSize - 1;
                while ( $blockEnd <= $end ) {
                        $this->output( "...doing log_id from $blockStart to $blockEnd\n" );
-                       $cond = "log_id BETWEEN $blockStart AND $blockEnd AND log_user = user_id";
+                       $cond = "log_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd .
+                               " AND log_user = user_id";
                        $res = $db->select( [ 'logging', 'user' ],
                                [ 'log_id', 'user_name' ], $cond, __METHOD__ );
 
index 04ad255..0a53dd6 100644 (file)
@@ -65,7 +65,7 @@ class PopulateRecentChangesSource extends LoggedUpdateMaintenance {
                                [ $updatedValues ],
                                [
                                        "rc_source = ''",
-                                       "rc_id BETWEEN $blockStart AND $blockEnd"
+                                       "rc_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd
                                ],
                                __METHOD__
                        );
index f3506ec..7ced779 100644 (file)
@@ -93,8 +93,8 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance {
                $blockEnd = $start + $batchSize - 1;
                while ( $blockEnd <= $end ) {
                        $this->output( "...doing $idCol from $blockStart to $blockEnd\n" );
-                       $cond = "$idCol BETWEEN $blockStart AND $blockEnd
-                               AND $idCol IS NOT NULL AND {$prefix}_sha1 = ''";
+                       $cond = "$idCol BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd .
+                               AND $idCol IS NOT NULL AND {$prefix}_sha1 = ''";
                        $res = $db->select(
                                $queryInfo['tables'], $queryInfo['fields'], $cond, __METHOD__, [], $queryInfo['joins']
                        );
index 0b5b9b0..1fc1daf 100644 (file)
@@ -104,7 +104,7 @@ class RebuildFileCache extends Maintenance {
                        $res = $dbr->select( 'page',
                                [ 'page_namespace', 'page_title', 'page_id' ],
                                [ 'page_namespace' => MWNamespace::getContentNamespaces(),
-                                       "page_id BETWEEN $blockStart AND $blockEnd" ],
+                                       "page_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd ],
                                __METHOD__,
                                [ 'ORDER BY' => 'page_id ASC', 'USE INDEX' => 'PRIMARY' ]
                        );
index ed6a357..6a00d57 100644 (file)
@@ -156,7 +156,7 @@ TEXT
                                [ "cat_{$this->mode}" => $row->count ],
                                [
                                        'cat_id' => $row->cat_id,
-                                       "cat_{$this->mode} != {$row->count}",
+                                       "cat_{$this->mode} != " . (int)( $row->count ),
                                ],
                                __METHOD__ );
                        $affectedRows += $dbw->affectedRows();
index acf0103..6348e96 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] == '' ) {
@@ -200,7 +208,9 @@ class CheckStorage {
                                        $blobsTable = $this->dbStore->getTable( $extDb );
                                        $res = $extDb->select( $blobsTable,
                                                [ 'blob_id' ],
-                                               [ 'blob_id IN( ' . implode( ',', $blobIds ) . ')' ], __METHOD__ );
+                                               [ 'blob_id' => $blobIds ],
+                                               __METHOD__
+                                       );
                                        foreach ( $res as $row ) {
                                                unset( $xBlobIds[$row->blob_id] );
                                        }
@@ -224,7 +234,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 +293,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 ) {
@@ -402,7 +412,9 @@ class CheckStorage {
                        $headerLength = strlen( self::CONCAT_HEADER );
                        $res = $extDb->select( $blobsTable,
                                [ 'blob_id', "LEFT(blob_text, $headerLength) AS header" ],
-                               [ 'blob_id IN( ' . implode( ',', $blobIds ) . ')' ], __METHOD__ );
+                               [ 'blob_id' => $blobIds ],
+                               __METHOD__
+                       );
                        foreach ( $res as $row ) {
                                if ( strcasecmp( $row->header, self::CONCAT_HEADER ) ) {
                                        $this->addError(
index c0b7b10..c4dccbc 100644 (file)
@@ -59,7 +59,8 @@ class UpdateRestrictions extends Maintenance {
                $encodedExpiry = 'infinity';
                while ( $blockEnd <= $end ) {
                        $this->output( "...doing page_id from $blockStart to $blockEnd out of $end\n" );
-                       $cond = "page_id BETWEEN $blockStart AND $blockEnd AND page_restrictions !=''";
+                       $cond = "page_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd .
+                               " AND page_restrictions !=''";
                        $res = $db->select(
                                'page',
                                [ 'page_id', 'page_namespace', 'page_restrictions' ],
index fbc4dbb..b494429 100644 (file)
@@ -1792,6 +1792,7 @@ return [
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagItemWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterMenuHeaderWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MenuSelectWidget.js',
+                       'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MainWrapperWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ViewSwitchWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ValuePickerWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesLimitPopupWidget.js',
@@ -2116,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 1950b93..f4cdae3 100644 (file)
                var state = {};
 
                this.getItems().forEach( function ( filterItem ) {
-                       state[ filterItem.getName() ] = filterItem.isSelected();
+                       state[ filterItem.getName() ] = filterItem.getValue();
                } );
 
                return state;
index 8d5b815..7b5e115 100644 (file)
         * @param {Array} filterStructure Filter definition and structure for the model
         * @param {Object} [namespaceStructure] Namespace definition
         * @param {Object} [tagList] Tag definition
+        * @param {Object} [conditionalViews] Conditional view definition
         */
-       mw.rcfilters.Controller.prototype.initialize = function ( filterStructure, namespaceStructure, tagList ) {
+       mw.rcfilters.Controller.prototype.initialize = function ( filterStructure, namespaceStructure, tagList, conditionalViews ) {
                var parsedSavedQueries, pieces,
                        displayConfig = mw.config.get( 'StructuredChangeFiltersDisplayConfig' ),
                        defaultSavedQueryExists = mw.config.get( 'wgStructuredChangeFiltersDefaultSavedQueryExists' ),
                        controller = this,
-                       views = {},
+                       views = $.extend( true, {}, conditionalViews ),
                        items = [],
                        uri = new mw.Uri();
 
                        ]
                };
 
-               views.recentChangesLinked = {
-                       groups: [
-                               {
-                                       name: 'page',
-                                       type: 'any_value',
-                                       title: '',
-                                       hidden: true,
-                                       isSticky: false,
-                                       filters: [
-                                               {
-                                                       name: 'target',
-                                                       'default': ''
-                                               }
-                                       ]
-                               },
-                               {
-                                       name: 'toOrFrom',
-                                       type: 'boolean',
-                                       title: '',
-                                       hidden: true,
-                                       isSticky: false,
-                                       filters: [
-                                               {
-                                                       name: 'showlinkedto',
-                                                       'default': false
-                                               }
-                                       ]
-                               }
-                       ]
-               };
-
                // Before we do anything, we need to see if we require additional items in the
                // groups that have 'AllowArbitrary'. For the moment, those are only single_option
                // groups; if we ever expand it, this might need further generalization:
index 3e1191f..7bb0a22 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 ) {
                }
 
                // target in path
-               parts = uri.path.match( re );
+               parts = mw.Uri.decode( uri.path ).match( re );
                if ( parts ) {
                        uri.path = parts[ 1 ];
                        uri.query.target = parts[ 2 ];
index 2744b8b..100fa0b 100644 (file)
@@ -8,16 +8,17 @@
                 * @private
                 */
                init: function () {
-                       var $topLinks,
-                               topSection,
-                               $watchlistDetails,
-                               namespaces,
+                       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(
                                        filtersModel, changesListModel, savedQueriesModel,
                                        {
                                                daysPreferenceName: daysPreferenceName,
                                                limitPreferenceName: limitPreferenceName
                                        }
-                               ),
-                               $overlay = $( '<div>' )
-                                       .addClass( 'mw-rcfilters-ui-overlay' ),
-                               filtersWidget = new mw.rcfilters.ui.FilterWrapperWidget(
-                                       controller, filtersModel, savedQueriesModel, changesListModel, { $overlay: $overlay } ),
-                               savedLinksListWidget = new mw.rcfilters.ui.SavedLinksListWidget(
-                                       controller, savedQueriesModel, { $overlay: $overlay }
-                               ),
-                               specialPage = mw.config.get( 'wgCanonicalSpecialPageName' ),
-                               $changesListRoot = $( [
-                                       '.mw-changeslist',
-                                       '.mw-changeslist-empty',
-                                       '.mw-changeslist-timeout',
-                                       '.mw-changeslist-notargetpage'
-                               ].join( ', ' ) );
+                               );
 
                        // TODO: The changesListWrapperWidget should be able to initialize
                        // after the model is ready.
 
-                       // eslint-disable-next-line no-new
-                       new mw.rcfilters.ui.ChangesListWrapperWidget(
-                               filtersModel, changesListModel, controller, $changesListRoot );
+                       if ( specialPage === 'Recentchanges' ) {
+                               $topSection = $( '.mw-recentchanges-toplinks' ).detach();
+                       } else if ( specialPage === 'Watchlist' ) {
+                               $( '#contentSub, form#mw-watchlist-resetbutton' ).remove();
+                               $topSection = $( '.watchlistDetails' ).detach().contents();
+                       } else if ( specialPage === 'Recentchangeslinked' ) {
+                               conditionalViews.recentChangesLinked = {
+                                       groups: [
+                                               {
+                                                       name: 'page',
+                                                       type: 'any_value',
+                                                       title: '',
+                                                       hidden: true,
+                                                       isSticky: false,
+                                                       filters: [
+                                                               {
+                                                                       name: 'target',
+                                                                       'default': ''
+                                                               }
+                                                       ]
+                                               },
+                                               {
+                                                       name: 'toOrFrom',
+                                                       type: 'boolean',
+                                                       title: '',
+                                                       hidden: true,
+                                                       isSticky: false,
+                                                       filters: [
+                                                               {
+                                                                       name: 'showlinkedto',
+                                                                       'default': false
+                                                               }
+                                                       ]
+                                               }
+                                       ]
+                               };
+                       }
+
+                       mainWrapperWidget = new mw.rcfilters.ui.MainWrapperWidget(
+                               controller,
+                               filtersModel,
+                               savedQueriesModel,
+                               changesListModel,
+                               {
+                                       $topSection: $topSection,
+                                       $filtersContainer: $( '.rcfilters-container' ),
+                                       $changesListContainer: $( [
+                                               '.mw-changeslist',
+                                               '.mw-changeslist-empty',
+                                               '.mw-changeslist-timeout',
+                                               '.mw-changeslist-notargetpage'
+                                       ].join( ', ' ) ),
+                                       $formContainer: $initialFieldset
+                               }
+                       );
 
                        // Remove the -loading class that may have been added on the server side.
                        // If we are in fact going to load a default saved query, this .initialize()
                        // call will do that and add the -loading class right back.
                        $( 'body' ).removeClass( 'mw-rcfilters-ui-loading' );
 
-                       // Remove Media namespace
-                       namespaces = mw.config.get( 'wgFormattedNamespaces' );
-                       delete namespaces[ mw.config.get( 'wgNamespaceIds' ).media ];
-
                        controller.initialize(
                                mw.config.get( 'wgStructuredChangeFilters' ),
-                               namespaces,
-                               mw.config.get( 'wgRCFiltersChangeTags' )
+                               // All namespaces without Media namespace
+                               rcfilters.getNamespaces( [ 'Media' ] ),
+                               mw.config.get( 'wgRCFiltersChangeTags' ),
+                               conditionalViews
                        );
 
-                       // eslint-disable-next-line no-new
-                       new mw.rcfilters.ui.FormWrapperWidget(
-                               filtersModel, changesListModel, controller, $( 'fieldset.cloptions' ) );
-
-                       $( '.rcfilters-container' ).append( filtersWidget.$element );
-                       $( 'body' )
-                               .append( $overlay )
-                               .addClass( 'mw-rcfilters-ui-initialized' );
-
                        $( 'a.mw-helplink' ).attr(
                                'href',
                                'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:New_filters_for_edit_review'
 
                        controller.replaceUrl();
 
-                       if ( specialPage === 'Recentchanges' ) {
-                               $topLinks = $( '.mw-recentchanges-toplinks' ).detach();
-
-                               topSection = new mw.rcfilters.ui.RcTopSectionWidget(
-                                       savedLinksListWidget, $topLinks
-                               );
-                               filtersWidget.setTopSection( topSection.$element );
-                       } // end Recentchanges
-
-                       if ( specialPage === 'Recentchangeslinked' ) {
-                               topSection = new mw.rcfilters.ui.RclTopSectionWidget(
-                                       savedLinksListWidget, controller,
-                                       filtersModel.getGroup( 'toOrFrom' ).getItemByParamName( 'showlinkedto' ),
-                                       filtersModel.getGroup( 'page' ).getItemByParamName( 'target' )
-                               );
-                               filtersWidget.setTopSection( topSection.$element );
-                       } // end Recentchangeslinked
-
-                       if ( specialPage === 'Watchlist' ) {
-                               $( '#contentSub, form#mw-watchlist-resetbutton' ).detach();
-                               $watchlistDetails = $( '.watchlistDetails' ).detach().contents();
-
-                               topSection = new mw.rcfilters.ui.WatchlistTopSectionWidget(
-                                       controller, changesListModel, savedLinksListWidget, $watchlistDetails
-                               );
-                               filtersWidget.setTopSection( topSection.$element );
-                       } // end Watchlist
+                       mainWrapperWidget.setTopSection( specialPage );
 
                        /**
                         * Fired when initialization of the filtering interface for changes list is complete.
                         * @member mw.hook
                         */
                        mw.hook( 'structuredChangeFilters.ui.initialized' ).fire();
+               },
+
+               /**
+                * Get list of namespaces and remove unused ones
+                *
+                * @member mw.rcfilters
+                * @private
+                *
+                * @param {Array} unusedNamespaces Names of namespaces to remove
+                * @return {Array} Filtered array of namespaces
+                */
+               getNamespaces: function ( unusedNamespaces ) {
+                       var i, length, name, id,
+                               namespaceIds = mw.config.get( 'wgNamespaceIds' ),
+                               namespaces = mw.config.get( 'wgFormattedNamespaces' );
+
+                       for ( i = 0, length = unusedNamespaces.length; i < length; i++ ) {
+                               name = unusedNamespaces[ i ];
+                               id = namespaceIds[ name.toLowerCase() ];
+                               delete namespaces[ id ];
+                       }
+
+                       return namespaces;
                }
        };
 
index ec311df..c379e27 100644 (file)
@@ -12,6 +12,7 @@
 }
 
 .mw-rcfilters-ui-changesListWrapperWidget {
+       position: relative;
 
        &-newChanges {
                min-height: 34px;
        .mw-changeslist-legend {
                background-color: @background-color-base;
                border: 1px solid @colorGray12;
+
+               &:not( .mw-enhanced ) {
+                       // We want to keep the legend accessible when results are overlaid
+                       position: relative;
+               }
+       }
+
+       .mw-changeslist-overlay {
+               position: absolute;
+               display: none;
+               width: 100%;
+               height: 100%;
+       }
+
+       &--overlaid > .mw-changeslist-overlay {
+               display: block;
        }
 
        // Correction for Enhanced RC
index cd0b8ae..e2092dc 100644 (file)
 
                }
 
+               this.$element.prepend( $( '<div>' ).addClass( 'mw-changeslist-overlay' ) );
+
                loaderPromise.done( function () {
                        if ( !isInitialDOM && !isEmpty ) {
                                // Make sure enhanced RC re-initializes correctly
                } );
        };
 
+       /** Toggles overlay class on changes list
+        *
+        * @param {boolean} isVisible True if overlay should be visible
+        */
+       mw.rcfilters.ui.ChangesListWrapperWidget.prototype.toggleOverlay = function ( isVisible ) {
+               this.$element.toggleClass( 'mw-rcfilters-ui-changesListWrapperWidget--overlaid', isVisible );
+       };
+
        /**
         * Map a reason for having no results to its message key
         *
                };
                return reasonMsgKeyMap[ reason ];
        };
+
        /**
         * Emphasize the elements (or groups) newer than the 'from' parameter
         * @param {string} from Anything newer than this is considered 'new'
index a7054e9..91a2d5f 100644 (file)
                if ( !mw.user.isAnon() ) {
                        this.saveQueryButton = new mw.rcfilters.ui.SaveFiltersPopupButtonWidget(
                                this.controller,
-                               this.queriesModel
+                               this.queriesModel,
+                               {
+                                       $overlay: this.$overlay
+                               }
                        );
 
                        this.saveQueryButton.$element.on( 'mousedown', function ( e ) { e.stopPropagation(); } );
index a7d2c82..1cd7bef 100644 (file)
@@ -55,7 +55,8 @@
                        icon: 'reload',
                        framed: false,
                        label: mw.msg( 'rcfilters-show-new-changes' ),
-                       flags: [ 'progressive' ]
+                       flags: [ 'progressive' ],
+                       classes: [ 'mw-rcfilters-ui-filterWrapperWidget-showNewChanges' ]
                } );
 
                // Initialize
@@ -74,6 +75,7 @@
                }
 
                // Events
+               this.filterTagWidget.menu.connect( this, { toggle: [ 'emit', 'menuToggle' ] } );
                this.changesListModel.connect( this, { newChangesExist: 'onNewChangesExist' } );
                this.showNewChangesLink.connect( this, { click: 'onShowNewChangesClick' } );
                this.showNewChangesLink.toggle( false );
diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MainWrapperWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MainWrapperWidget.js
new file mode 100644 (file)
index 0000000..e64ffd8
--- /dev/null
@@ -0,0 +1,125 @@
+( function ( $, mw ) {
+       /**
+        * Wrapper for changes list content
+        *
+        * @extends OO.ui.Widget
+        *
+        * @constructor
+        * @param {mw.rcfilters.Controller} controller Controller
+        * @param {mw.rcfilters.dm.FiltersViewModel} model View model
+        * @param {mw.rcfilters.dm.SavedQueriesModel} savedQueriesModel Saved queries model
+        * @param {mw.rcfilters.dm.ChangesListViewModel} changesListModel
+        * @param {Object} config Configuration object
+        * @cfg {jQuery} $topSection Top section container
+        * @cfg {jQuery} $filtersContainer
+        * @cfg {jQuery} $changesListContainer
+        * @cfg {jQuery} $formContainer
+        */
+       mw.rcfilters.ui.MainWrapperWidget = function MwRcfiltersUiMainWrapperWidget(
+               controller, model, savedQueriesModel, changesListModel, config
+       ) {
+               config = $.extend( {}, config );
+
+               // Parent
+               mw.rcfilters.ui.MainWrapperWidget.parent.call( this, config );
+
+               this.controller = controller;
+               this.model = model;
+               this.changesListModel = changesListModel;
+               this.$topSection = config.$topSection;
+               this.$filtersContainer = config.$filtersContainer;
+               this.$changesListContainer = config.$changesListContainer;
+               this.$formContainer = config.$formContainer;
+               this.$overlay = $( '<div>' ).addClass( 'mw-rcfilters-ui-overlay' );
+
+               this.savedLinksListWidget = new mw.rcfilters.ui.SavedLinksListWidget(
+                       controller, savedQueriesModel, { $overlay: this.$overlay }
+               );
+
+               this.filtersWidget = new mw.rcfilters.ui.FilterWrapperWidget(
+                       controller,
+                       model,
+                       savedQueriesModel,
+                       changesListModel,
+                       {
+                               $overlay: this.$overlay
+                       }
+               );
+
+               this.changesListWidget = new mw.rcfilters.ui.ChangesListWrapperWidget(
+                       model, changesListModel, controller, this.$changesListContainer );
+
+               /* Events */
+
+               // Toggle changes list overlay when filters menu opens/closes. We use overlay on changes list
+               // to prevent users from accidentally clicking on links in results, while menu is opened.
+               // Overlay on changes list is not the same as this.$overlay
+               this.filtersWidget.connect( this, { menuToggle: this.onFilterMenuToggle.bind( this ) } );
+
+               // Initialize
+               this.$filtersContainer.append( this.filtersWidget.$element );
+               $( 'body' )
+                       .append( this.$overlay )
+                       .addClass( 'mw-rcfilters-ui-initialized' );
+               this.initFormWidget();
+       };
+
+       /* Initialization */
+
+       OO.inheritClass( mw.rcfilters.ui.MainWrapperWidget, OO.ui.Widget );
+
+       /* Methods */
+
+       /**
+        * Set the content of the top section, depending on the type of special page.
+        *
+        * @param {string} specialPage
+        */
+       mw.rcfilters.ui.MainWrapperWidget.prototype.setTopSection = function ( specialPage ) {
+               var topSection;
+
+               if ( specialPage === 'Recentchanges' ) {
+                       topSection = new mw.rcfilters.ui.RcTopSectionWidget(
+                               this.savedLinksListWidget, this.$topSection
+                       );
+                       this.filtersWidget.setTopSection( topSection.$element );
+               }
+
+               if ( specialPage === 'Recentchangeslinked' ) {
+                       topSection = new mw.rcfilters.ui.RclTopSectionWidget(
+                               this.savedLinksListWidget, this.controller,
+                               this.model.getGroup( 'toOrFrom' ).getItemByParamName( 'showlinkedto' ),
+                               this.model.getGroup( 'page' ).getItemByParamName( 'target' )
+                       );
+
+                       this.filtersWidget.setTopSection( topSection.$element );
+               }
+
+               if ( specialPage === 'Watchlist' ) {
+                       topSection = new mw.rcfilters.ui.WatchlistTopSectionWidget(
+                               this.controller, this.changesListModel, this.savedLinksListWidget, this.$topSection
+                       );
+
+                       this.filtersWidget.setTopSection( topSection.$element );
+               }
+       };
+
+       /**
+        * Filter menu toggle event listener
+        *
+        * @param {boolean} isVisible
+        */
+       mw.rcfilters.ui.MainWrapperWidget.prototype.onFilterMenuToggle = function ( isVisible ) {
+               this.changesListWidget.toggleOverlay( isVisible );
+       };
+
+       /**
+        * Initialize FormWrapperWidget
+        *
+        * @return {mw.rcfilters.ui.FormWrapperWidget} Form wrapper widget
+        */
+       mw.rcfilters.ui.MainWrapperWidget.prototype.initFormWidget = function () {
+               return new mw.rcfilters.ui.FormWrapperWidget(
+                       this.model, this.changesListModel, this.controller, this.$formContainer );
+       };
+}( jQuery, mediaWiki ) );
index 22c176f..5438589 100644 (file)
         */
        mw.rcfilters.ui.MenuSelectWidget.prototype.onKeyDown = function ( e ) {
                var nextItem,
-                       currentItem = this.getHighlightedItem() || this.getSelectedItem();
+                       currentItem = this.findHighlightedItem() || this.getSelectedItem();
 
                // Call parent
                mw.rcfilters.ui.MenuSelectWidget.parent.prototype.onKeyDown.call( this, e );
index 6673c08..d5c5e26 100644 (file)
@@ -71,6 +71,7 @@
         * Respond to the model being updated
         */
        mw.rcfilters.ui.RclTargetPageWidget.prototype.updateUiBasedOnModel = function () {
-               this.titleSearch.setValue( this.model.getValue() );
+               var title = mw.Title.newFromText( this.model.getValue() );
+               this.titleSearch.setValue( title ? title.toText() : this.model.getValue() );
        };
 }( mediaWiki ) );
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;
index 5d0ec49..c25984c 100644 (file)
        columns: 16em 2;
 }
 
+.mw-specialpages-list ul {
+       margin-top: 0;
+       margin-bottom: 0;
+}
+
 /* Special:Statistics */
 .mw-statistics-numbers {
        text-align: right;
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 0ddf7fe..aa00359 100644 (file)
                        allowCloseWindow.release();
                } );
        } );
+
+       // Add tabindex to mw-editTools
+       $( function () {
+               // Function to change tabindex for all links within mw-editTools
+               function setEditTabindex( $val ) {
+                       $( '.mw-editTools' ).find( 'a' ).each( function () {
+                               $( this ).attr( 'tabindex', $val );
+                       } );
+               }
+
+               // Change tabindex to 0 if user pressed spaced or enter while focused
+               $( '.mw-editTools' ).on( 'keypress', function ( e ) {
+                       // Don't continue if pressed key was not enter or spacebar
+                       if ( e.which !== 13 && e.which !== 32 ) {
+                               return;
+                       }
+
+                       // Change tabindex only when main div has focus
+                       if ( $( this ).is( ':focus' ) ) {
+                               $( this ).find( 'a' ).first().focus();
+                               setEditTabindex( '0' );
+                       }
+               } );
+
+               // Reset tabindex for elements when user focused out mw-editTools
+               $( '.mw-editTools' ).on( 'focusout', function ( e ) {
+                       // Don't continue if relatedTarget is within mw-editTools
+                       if ( e.relatedTarget !== null && $( e.relatedTarget ).closest( '.mw-editTools' ).length > 0 ) {
+                               return;
+                       }
+
+                       // Reset tabindex back to -1
+                       setEditTabindex( '-1' );
+               } );
+
+               // Set initial tabindex for mw-editTools to 0 and to -1 for all links
+               $( '.mw-editTools' ).attr( 'tabindex', '0' );
+               setEditTabindex( '-1' );
+       } );
 }( mediaWiki, jQuery ) );
index a661ae5..393ab4a 100644 (file)
                                        // Cache
                                        marker = document.querySelector( 'meta[name="ResourceLoaderDynamicStyles"]' );
                                        if ( !marker ) {
-                                               mw.log( 'Create <meta name="ResourceLoaderDynamicStyles"> dynamically' );
-                                               marker = $( '<meta>' ).attr( 'name', 'ResourceLoaderDynamicStyles' ).appendTo( 'head' )[ 0 ];
+                                               mw.log( 'Created ResourceLoaderDynamicStyles marker dynamically' );
+                                               marker = document.createElement( 'meta' );
+                                               marker.name = 'ResourceLoaderDynamicStyles';
+                                               document.head.appendChild( marker );
                                        }
                                }
                                return marker;
                                if ( nextNode && nextNode.parentNode ) {
                                        nextNode.parentNode.insertBefore( s, nextNode );
                                } else {
-                                       document.getElementsByTagName( 'head' )[ 0 ].appendChild( s );
+                                       document.head.appendChild( s );
                                }
 
                                return s;
                                                                l = document.createElement( 'link' );
                                                                l.rel = 'stylesheet';
                                                                l.href = modules;
-                                                               $( 'head' ).append( l );
+                                                               document.head.appendChild( l );
                                                                return;
                                                        }
                                                        if ( type === 'text/javascript' || type === undefined ) {
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 5c65483..25cfd3c 100644 (file)
@@ -110,7 +110,7 @@ class MWDebugTest extends MediaWikiTestCase {
                        $this->assertArrayHasKey( $expectedKey, $data['debuginfo'], "debuginfo has $expectedKey" );
                }
 
-               $xml = ApiFormatXml::recXmlPrint( 'help', $data );
+               $xml = ApiFormatXml::recXmlPrint( 'help', $data, null );
 
                // exception not thrown
                $this->assertInternalType( 'string', $xml );
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 e9fc84e..16ae193 100644 (file)
@@ -95,4 +95,50 @@ class FormatMetadataTest extends MediaWikiMediaTestCase {
                        ],
                ];
        }
+
+       /**
+        * @param mixed $input
+        * @param mixed $output
+        * @dataProvider provideGetFormattedData
+        * @covers FormatMetadata::getFormattedData
+        */
+       public function testGetFormattedData( $input, $output ) {
+               $this->assertEquals( $output, FormatMetadata::getFormattedData( $input ) );
+       }
+
+       public function provideGetFormattedData() {
+               return [
+                       [
+                               [ 'Software' => 'Adobe Photoshop CS6 (Macintosh)' ],
+                               [ 'Software' => 'Adobe Photoshop CS6 (Macintosh)' ],
+                       ],
+                       [
+                               [ 'Software' => [ 'FotoWare FotoStation' ] ],
+                               [ 'Software' => 'FotoWare FotoStation' ],
+                       ],
+                       [
+                               [ 'Software' => [ [ 'Capture One PRO', '3.7.7' ] ] ],
+                               [ 'Software' => 'Capture One PRO (Version 3.7.7)' ],
+                       ],
+                       [
+                               [ 'Software' => [ [ 'FotoWare ColorFactory', '' ] ] ],
+                               [ 'Software' => 'FotoWare ColorFactory (Version )' ],
+                       ],
+                       [
+                               [ 'Software' => [ 'x-default' => 'paint.net 4.0.12', '_type' => 'lang' ] ],
+                               [ 'Software' => '<ul class="metadata-langlist">'.
+                                               '<li class="mw-metadata-lang-default">'.
+                                                       '<span class="mw-metadata-lang-value">paint.net 4.0.12</span>'.
+                                               "</li>\n".
+                                       '</ul>'
+                               ],
+                       ],
+                       [
+                               // https://phabricator.wikimedia.org/T178130
+                               // WebMHandler.php turns both 'muxingapp' & 'writingapp' to 'Software'
+                               [ 'Software' => [ [ 'Lavf57.25.100' ], [ 'Lavf57.25.100' ] ] ],
+                               [ 'Software' => "<ul><li>Lavf57.25.100</li>\n<li>Lavf57.25.100</li></ul>" ],
+                       ],
+               ];
+       }
 }
index 9fd640f..b68dd0e 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * @group Media
  */
-class SvgTest extends MediaWikiMediaTestCase {
+class SVGTest extends MediaWikiMediaTestCase {
 
        /**
         * @var SvgHandler
index c4ec4dd..b8480dd 100644 (file)
@@ -1447,8 +1447,8 @@ more stuff
 
        /**
         * @dataProvider provideTestInsertProtectNullRevision
-        * @covers WikiPge::insertProtectNullRevision
-        * @covers WikiPge::protectDescription
+        * @covers WikiPage::insertProtectNullRevision
+        * @covers WikiPage::protectDescription
         *
         * @param string $revCommentMsg
         * @param array $limit
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 cd52366..e39f57e 100644 (file)
@@ -1629,6 +1629,33 @@ class LanguageTest extends LanguageClassesTestCase {
                ];
        }
 
+       /**
+        * @dataProvider testFormatNumProvider
+        * @covers Language::formatNum
+        */
+       public function testFormatNum(
+               $translateNumerals, $langCode, $number, $nocommafy, $expected
+       ) {
+               $this->setMwGlobals( [ 'wgTranslateNumerals' => $translateNumerals ] );
+               $lang = Language::factory( $langCode );
+               $formattedNum = $lang->formatNum( $number, $nocommafy );
+               $this->assertType( 'string', $formattedNum );
+               $this->assertEquals( $expected, $formattedNum );
+       }
+
+       public function testFormatNumProvider() {
+               return [
+                       [ true, 'en', 100, false, '100' ],
+                       [ true, 'en', 101, true, '101' ],
+                       [ false, 'en', 103, false, '103' ],
+                       [ false, 'en', 104, true, '104' ],
+                       [ true, 'en', '105', false, '105' ],
+                       [ true, 'en', '106', true, '106' ],
+                       [ false, 'en', '107', false, '107' ],
+                       [ false, 'en', '108', true, '108' ],
+               ];
+       }
+
        /**
         * @dataProvider parseFormattedNumberProvider
         */
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..fbd159c 100644 (file)
                                        output: 'http://host/wiki/Special:RecentChangesLinked?target=Moai',
                                        message: 'Target as subpage in path'
                                },
+                               {
+                                       input: 'http://host/wiki/Special:RecentChangesLinked/Château',
+                                       output: 'http://host/wiki/Special:RecentChangesLinked?target=Château',
+                                       message: 'Target as subpage in path with special characters'
+                               },
+                               {
+                                       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',